summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-python
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/3to2/3to2-1.0.ebuild23
-rw-r--r--dev-python/3to2/3to2-1.1.1.ebuild25
-rw-r--r--dev-python/3to2/Manifest2
-rw-r--r--dev-python/3to2/metadata.xml12
-rw-r--r--dev-python/APScheduler/APScheduler-3.0.1.ebuild31
-rw-r--r--dev-python/APScheduler/Manifest1
-rw-r--r--dev-python/APScheduler/metadata.xml12
-rw-r--r--dev-python/Babel/Babel-1.3-r1.ebuild48
-rw-r--r--dev-python/Babel/Babel-2.0.ebuild49
-rw-r--r--dev-python/Babel/Manifest2
-rw-r--r--dev-python/Babel/files/Babel-0.9.6-setuptools.patch23
-rw-r--r--dev-python/Babel/metadata.xml16
-rw-r--r--dev-python/BitVector/BitVector-3.3.2.ebuild20
-rw-r--r--dev-python/BitVector/Manifest1
-rw-r--r--dev-python/BitVector/metadata.xml12
-rw-r--r--dev-python/Coffin/Coffin-0.3.8.ebuild27
-rw-r--r--dev-python/Coffin/Coffin-2.0.1.ebuild28
-rw-r--r--dev-python/Coffin/Manifest2
-rw-r--r--dev-python/Coffin/metadata.xml9
-rw-r--r--dev-python/CoverageTestRunner/CoverageTestRunner-1.10.ebuild23
-rw-r--r--dev-python/CoverageTestRunner/CoverageTestRunner-1.9-r1.ebuild23
-rw-r--r--dev-python/CoverageTestRunner/Manifest2
-rw-r--r--dev-python/CoverageTestRunner/metadata.xml8
-rw-r--r--dev-python/Djblets/Djblets-0.7.31.ebuild32
-rw-r--r--dev-python/Djblets/Manifest1
-rw-r--r--dev-python/Djblets/metadata.xml10
-rw-r--r--dev-python/Flask-KVSession/Flask-KVSession-0.6.1.ebuild28
-rw-r--r--dev-python/Flask-KVSession/Flask-KVSession-0.6.2.ebuild28
-rw-r--r--dev-python/Flask-KVSession/Manifest2
-rw-r--r--dev-python/Flask-KVSession/metadata.xml14
-rw-r--r--dev-python/GridDataFormats/GridDataFormats-0.2.2.ebuild23
-rw-r--r--dev-python/GridDataFormats/GridDataFormats-0.2.5.ebuild23
-rw-r--r--dev-python/GridDataFormats/Manifest2
-rw-r--r--dev-python/GridDataFormats/metadata.xml12
-rw-r--r--dev-python/Kivy/Kivy-1.8.0.ebuild47
-rw-r--r--dev-python/Kivy/Kivy-1.9.0.ebuild45
-rw-r--r--dev-python/Kivy/Manifest2
-rw-r--r--dev-python/Kivy/files/Kivy-1.9.0-cython-0.22-backport.patch713
-rw-r--r--dev-python/Kivy/files/cython-0.22.patch139
-rw-r--r--dev-python/Kivy/files/cython-fixes.patch42
-rw-r--r--dev-python/Kivy/metadata.xml18
-rw-r--r--dev-python/Numdifftools/Manifest2
-rw-r--r--dev-python/Numdifftools/Numdifftools-0.6.0.ebuild33
-rw-r--r--dev-python/Numdifftools/Numdifftools-0.7.7.ebuild42
-rw-r--r--dev-python/Numdifftools/metadata.xml12
-rw-r--r--dev-python/PyECLib/Manifest1
-rw-r--r--dev-python/PyECLib/PyECLib-1.0.7.ebuild22
-rw-r--r--dev-python/PyECLib/files/1.0.7-erasurecode_locations.patch11
-rw-r--r--dev-python/PyECLib/metadata.xml15
-rw-r--r--dev-python/PyFoam/Manifest1
-rw-r--r--dev-python/PyFoam/PyFoam-0.5.4-r2.ebuild29
-rw-r--r--dev-python/PyFoam/metadata.xml17
-rw-r--r--dev-python/PyGithub/Manifest3
-rw-r--r--dev-python/PyGithub/PyGithub-1.25.0.ebuild23
-rw-r--r--dev-python/PyGithub/PyGithub-1.25.1.ebuild23
-rw-r--r--dev-python/PyGithub/PyGithub-1.25.2.ebuild23
-rw-r--r--dev-python/PyGithub/metadata.xml8
-rw-r--r--dev-python/PyPDF2/Manifest1
-rw-r--r--dev-python/PyPDF2/PyPDF2-1.24.ebuild22
-rw-r--r--dev-python/PyPDF2/metadata.xml8
-rw-r--r--dev-python/PyQt4/Manifest2
-rw-r--r--dev-python/PyQt4/PyQt4-4.11.1.ebuild211
-rw-r--r--dev-python/PyQt4/PyQt4-4.11.4.ebuild156
-rw-r--r--dev-python/PyQt4/files/PyQt4-4.11.2-phonon.patch25
-rw-r--r--dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch239
-rw-r--r--dev-python/PyQt4/metadata.xml32
-rw-r--r--dev-python/PyQt5/Manifest2
-rw-r--r--dev-python/PyQt5/PyQt5-5.4.2.ebuild176
-rw-r--r--dev-python/PyQt5/PyQt5-5.5.ebuild176
-rw-r--r--dev-python/PyQt5/metadata.xml38
-rw-r--r--dev-python/PyQtMobility/Manifest1
-rw-r--r--dev-python/PyQtMobility/PyQtMobility-1.0.1.ebuild91
-rw-r--r--dev-python/PyQtMobility/metadata.xml26
-rw-r--r--dev-python/PyRSS2Gen/Manifest2
-rw-r--r--dev-python/PyRSS2Gen/PyRSS2Gen-1.0.0-r1.ebuild17
-rw-r--r--dev-python/PyRSS2Gen/PyRSS2Gen-1.1.ebuild17
-rw-r--r--dev-python/PyRSS2Gen/metadata.xml9
-rw-r--r--dev-python/PyZilla/Manifest1
-rw-r--r--dev-python/PyZilla/PyZilla-0.1.0-r1.ebuild21
-rw-r--r--dev-python/PyZilla/metadata.xml10
-rw-r--r--dev-python/RecSQL/Manifest1
-rw-r--r--dev-python/RecSQL/RecSQL-0.7.8.ebuild33
-rw-r--r--dev-python/RecSQL/metadata.xml12
-rw-r--r--dev-python/SaltTesting/Manifest3
-rw-r--r--dev-python/SaltTesting/SaltTesting-2014.8.5.ebuild26
-rw-r--r--dev-python/SaltTesting/SaltTesting-2015.2.16.ebuild29
-rw-r--r--dev-python/SaltTesting/SaltTesting-2015.5.8.ebuild31
-rw-r--r--dev-python/SaltTesting/files/SaltTesting-0.5.2-silence-DepricationWarning.patch17
-rw-r--r--dev-python/SaltTesting/metadata.xml12
-rw-r--r--dev-python/SchemaObject/Manifest1
-rw-r--r--dev-python/SchemaObject/SchemaObject-0.5.3.ebuild41
-rw-r--r--dev-python/SchemaObject/metadata.xml8
-rw-r--r--dev-python/WSME/Manifest1
-rw-r--r--dev-python/WSME/WSME-0.6.2.ebuild28
-rw-r--r--dev-python/WSME/metadata.xml15
-rw-r--r--dev-python/XenAPI/Manifest1
-rw-r--r--dev-python/XenAPI/XenAPI-1.2.ebuild18
-rw-r--r--dev-python/XenAPI/metadata.xml12
-rw-r--r--dev-python/addons/Manifest1
-rw-r--r--dev-python/addons/addons-0.7.ebuild30
-rw-r--r--dev-python/addons/metadata.xml8
-rw-r--r--dev-python/adns-python/Manifest1
-rw-r--r--dev-python/adns-python/adns-python-1.2.1-r1.ebuild20
-rw-r--r--dev-python/adns-python/metadata.xml8
-rw-r--r--dev-python/adodb-py/Manifest1
-rw-r--r--dev-python/adodb-py/adodb-py-2.20-r1.ebuild36
-rw-r--r--dev-python/adodb-py/files/adodb-py_sandbox_violation.patch22
-rw-r--r--dev-python/adodb-py/metadata.xml12
-rw-r--r--dev-python/aioeventlet/Manifest1
-rw-r--r--dev-python/aioeventlet/aioeventlet-0.4.ebuild24
-rw-r--r--dev-python/aioeventlet/metadata.xml16
-rw-r--r--dev-python/aiohttp/Manifest1
-rw-r--r--dev-python/aiohttp/aiohttp-0.14.4-r1.ebuild30
-rw-r--r--dev-python/aiohttp/metadata.xml12
-rw-r--r--dev-python/alabaster/Manifest6
-rw-r--r--dev-python/alabaster/alabaster-0.6.0.ebuild18
-rw-r--r--dev-python/alabaster/alabaster-0.6.3.ebuild18
-rw-r--r--dev-python/alabaster/alabaster-0.7.2.ebuild18
-rw-r--r--dev-python/alabaster/alabaster-0.7.4.ebuild19
-rw-r--r--dev-python/alabaster/alabaster-0.7.5.ebuild19
-rw-r--r--dev-python/alabaster/alabaster-0.7.6.ebuild19
-rw-r--r--dev-python/alabaster/metadata.xml9
-rw-r--r--dev-python/alembic/Manifest4
-rw-r--r--dev-python/alembic/alembic-0.6.7.ebuild49
-rw-r--r--dev-python/alembic/alembic-0.7.4.ebuild46
-rw-r--r--dev-python/alembic/alembic-0.7.6.ebuild46
-rw-r--r--dev-python/alembic/alembic-0.7.7.ebuild46
-rw-r--r--dev-python/alembic/metadata.xml13
-rw-r--r--dev-python/algopy/Manifest3
-rw-r--r--dev-python/algopy/algopy-0.5.1.ebuild30
-rw-r--r--dev-python/algopy/algopy-0.5.2.ebuild30
-rw-r--r--dev-python/algopy/algopy-0.5.3.ebuild30
-rw-r--r--dev-python/algopy/metadata.xml11
-rw-r--r--dev-python/amodem/Manifest3
-rw-r--r--dev-python/amodem/amodem-1.10.ebuild18
-rw-r--r--dev-python/amodem/amodem-1.11.ebuild18
-rw-r--r--dev-python/amodem/amodem-1.9.ebuild18
-rw-r--r--dev-python/amodem/metadata.xml17
-rw-r--r--dev-python/amqplib/Manifest2
-rw-r--r--dev-python/amqplib/amqplib-0.6.1-r1.ebuild43
-rw-r--r--dev-python/amqplib/amqplib-1.0.2-r1.ebuild41
-rw-r--r--dev-python/amqplib/files/amqplib-0.6.1_disable_socket_tests.patch17
-rw-r--r--dev-python/amqplib/files/amqplib-1.0.2-unicode_tests_py3.patch63
-rw-r--r--dev-python/amqplib/metadata.xml16
-rw-r--r--dev-python/aniso8601/Manifest5
-rw-r--r--dev-python/aniso8601/aniso8601-0.82.ebuild25
-rw-r--r--dev-python/aniso8601/aniso8601-0.83.ebuild25
-rw-r--r--dev-python/aniso8601/aniso8601-0.90.ebuild25
-rw-r--r--dev-python/aniso8601/aniso8601-0.92.ebuild22
-rw-r--r--dev-python/aniso8601/aniso8601-1.0.0.ebuild22
-rw-r--r--dev-python/aniso8601/metadata.xml9
-rw-r--r--dev-python/ansi2html/Manifest2
-rw-r--r--dev-python/ansi2html/ansi2html-1.0.7.ebuild37
-rw-r--r--dev-python/ansi2html/ansi2html-1.1.0.ebuild39
-rw-r--r--dev-python/ansi2html/files/ansi2html-0.9.1-fix-0-control-code.patch28
-rw-r--r--dev-python/ansi2html/files/ansi2html-0.9.1-fix-sys-argv-in-tests.patch27
-rw-r--r--dev-python/ansi2html/metadata.xml13
-rw-r--r--dev-python/ansicolor/Manifest2
-rw-r--r--dev-python/ansicolor/ansicolor-0.2.1.ebuild20
-rw-r--r--dev-python/ansicolor/ansicolor-0.2.4.ebuild20
-rw-r--r--dev-python/ansicolor/metadata.xml12
-rw-r--r--dev-python/anyjson/Manifest1
-rw-r--r--dev-python/anyjson/anyjson-0.3.3-r1.ebuild36
-rw-r--r--dev-python/anyjson/metadata.xml9
-rw-r--r--dev-python/anyvc/Manifest1
-rw-r--r--dev-python/anyvc/anyvc-0.3.7.1-r1.ebuild55
-rw-r--r--dev-python/anyvc/metadata.xml12
-rw-r--r--dev-python/apipkg/Manifest2
-rw-r--r--dev-python/apipkg/apipkg-1.2-r1.ebuild32
-rw-r--r--dev-python/apipkg/apipkg-1.4.ebuild30
-rw-r--r--dev-python/apipkg/metadata.xml8
-rw-r--r--dev-python/aplpy/Manifest1
-rw-r--r--dev-python/aplpy/aplpy-0.9.14.ebuild46
-rw-r--r--dev-python/aplpy/metadata.xml15
-rw-r--r--dev-python/appdirs/Manifest2
-rw-r--r--dev-python/appdirs/appdirs-1.2.0-r1.ebuild31
-rw-r--r--dev-python/appdirs/appdirs-1.4.0.ebuild31
-rw-r--r--dev-python/appdirs/metadata.xml17
-rw-r--r--dev-python/apptools/Manifest2
-rw-r--r--dev-python/apptools/apptools-4.2.0-r1.ebuild51
-rw-r--r--dev-python/apptools/apptools-4.2.1.ebuild48
-rw-r--r--dev-python/apptools/files/apptools_test.patch15
-rw-r--r--dev-python/apptools/metadata.xml11
-rw-r--r--dev-python/apse/Manifest1
-rw-r--r--dev-python/apse/apse-0.2-r3.ebuild41
-rw-r--r--dev-python/apse/metadata.xml16
-rw-r--r--dev-python/apsw/Manifest1
-rw-r--r--dev-python/apsw/apsw-3.8.7.1_p1.ebuild55
-rw-r--r--dev-python/apsw/files/apsw-3.6.20.1-fix_tests.patch11
-rw-r--r--dev-python/apsw/metadata.xml13
-rw-r--r--dev-python/aquarium/Manifest1
-rw-r--r--dev-python/aquarium/aquarium-2.3-r1.ebuild20
-rw-r--r--dev-python/aquarium/metadata.xml8
-rw-r--r--dev-python/argcomplete/Manifest3
-rw-r--r--dev-python/argcomplete/argcomplete-0.8.1.ebuild41
-rw-r--r--dev-python/argcomplete/argcomplete-0.8.9.ebuild39
-rw-r--r--dev-python/argcomplete/argcomplete-0.9.0.ebuild39
-rw-r--r--dev-python/argcomplete/metadata.xml11
-rw-r--r--dev-python/argh/Manifest3
-rw-r--r--dev-python/argh/argh-0.25.0.ebuild31
-rw-r--r--dev-python/argh/argh-0.26.0.ebuild30
-rw-r--r--dev-python/argh/argh-0.26.1.ebuild30
-rw-r--r--dev-python/argh/metadata.xml8
-rw-r--r--dev-python/args/Manifest1
-rw-r--r--dev-python/args/args-0.1.0.ebuild20
-rw-r--r--dev-python/args/metadata.xml14
-rw-r--r--dev-python/arrayterator/Manifest1
-rw-r--r--dev-python/arrayterator/arrayterator-1.0.1-r1.ebuild29
-rw-r--r--dev-python/arrayterator/metadata.xml8
-rw-r--r--dev-python/asciitable/Manifest1
-rw-r--r--dev-python/asciitable/asciitable-0.8.0-r1.ebuild26
-rw-r--r--dev-python/asciitable/metadata.xml13
-rw-r--r--dev-python/asset/Manifest1
-rw-r--r--dev-python/asset/asset-0.6.1-r1.ebuild41
-rw-r--r--dev-python/asset/files/asset-0.6.1-broken-test.patch24
-rw-r--r--dev-python/asset/metadata.xml12
-rw-r--r--dev-python/assets/Manifest1
-rw-r--r--dev-python/assets/assets-0.1.1-r1.ebuild28
-rw-r--r--dev-python/assets/metadata.xml23
-rw-r--r--dev-python/astng/Manifest1
-rw-r--r--dev-python/astng/astng-0.24.3.ebuild46
-rw-r--r--dev-python/astng/files/pypy-test.patch36
-rw-r--r--dev-python/astng/metadata.xml19
-rw-r--r--dev-python/astor/Manifest4
-rw-r--r--dev-python/astor/astor-0.3.ebuild19
-rw-r--r--dev-python/astor/astor-0.4.1.ebuild29
-rw-r--r--dev-python/astor/astor-0.4.ebuild29
-rw-r--r--dev-python/astor/astor-0.5.ebuild29
-rw-r--r--dev-python/astor/metadata.xml8
-rw-r--r--dev-python/astroid/Manifest4
-rw-r--r--dev-python/astroid/astroid-1.3.4.ebuild44
-rw-r--r--dev-python/astroid/astroid-1.3.6.ebuild44
-rw-r--r--dev-python/astroid/astroid-1.3.7.ebuild46
-rw-r--r--dev-python/astroid/astroid-1.3.8.ebuild40
-rw-r--r--dev-python/astroid/metadata.xml20
-rw-r--r--dev-python/astropy-helpers/Manifest1
-rw-r--r--dev-python/astropy-helpers/astropy-helpers-0.4.1.ebuild23
-rw-r--r--dev-python/astropy-helpers/metadata.xml13
-rw-r--r--dev-python/astropy/Manifest4
-rw-r--r--dev-python/astropy/astropy-0.3.1.ebuild65
-rw-r--r--dev-python/astropy/astropy-0.3.2.ebuild65
-rw-r--r--dev-python/astropy/astropy-0.4.4.ebuild70
-rw-r--r--dev-python/astropy/astropy-0.4.ebuild70
-rw-r--r--dev-python/astropy/metadata.xml13
-rw-r--r--dev-python/async/Manifest1
-rw-r--r--dev-python/async/async-0.6.2.ebuild30
-rw-r--r--dev-python/async/files/async-0.6.1_libz_link.patch14
-rw-r--r--dev-python/async/metadata.xml9
-rw-r--r--dev-python/asyncio/Manifest2
-rw-r--r--dev-python/asyncio/asyncio-3.4.2.ebuild21
-rw-r--r--dev-python/asyncio/asyncio-3.4.3.ebuild26
-rw-r--r--dev-python/asyncio/metadata.xml16
-rw-r--r--dev-python/atom/Manifest1
-rw-r--r--dev-python/atom/atom-0.3.10.ebuild50
-rw-r--r--dev-python/atom/metadata.xml9
-rw-r--r--dev-python/atpy/Manifest1
-rw-r--r--dev-python/atpy/atpy-0.9.7.ebuild35
-rw-r--r--dev-python/atpy/metadata.xml19
-rw-r--r--dev-python/attrdict/Manifest1
-rw-r--r--dev-python/attrdict/attrdict-2.0.0.ebuild30
-rw-r--r--dev-python/attrdict/metadata.xml14
-rw-r--r--dev-python/audioread/Manifest1
-rw-r--r--dev-python/audioread/audioread-1.0.1.ebuild33
-rw-r--r--dev-python/audioread/files/0001-Use-the-print-function-instead-of-the-print-keyword.patch30
-rw-r--r--dev-python/audioread/metadata.xml17
-rw-r--r--dev-python/authres/Manifest3
-rw-r--r--dev-python/authres/authres-0.701.ebuild24
-rw-r--r--dev-python/authres/authres-0.702.ebuild22
-rw-r--r--dev-python/authres/authres-0.800.ebuild22
-rw-r--r--dev-python/authres/metadata.xml16
-rw-r--r--dev-python/autobahn/Manifest2
-rw-r--r--dev-python/autobahn/autobahn-0.10.4.ebuild46
-rw-r--r--dev-python/autobahn/autobahn-0.9.4.2.ebuild33
-rw-r--r--dev-python/autobahn/metadata.xml11
-rw-r--r--dev-python/autopep8/Manifest4
-rw-r--r--dev-python/autopep8/autopep8-1.0.4.ebuild41
-rw-r--r--dev-python/autopep8/autopep8-1.1.1.ebuild46
-rw-r--r--dev-python/autopep8/autopep8-1.1.ebuild46
-rw-r--r--dev-python/autopep8/autopep8-1.2.ebuild52
-rw-r--r--dev-python/autopep8/autopep8-9999.ebuild28
-rw-r--r--dev-python/autopep8/files/autopep8-0.5.2-issue-10.patch28
-rw-r--r--dev-python/autopep8/metadata.xml10
-rw-r--r--dev-python/axiom/Manifest3
-rw-r--r--dev-python/axiom/axiom-0.6.0-r1.ebuild43
-rw-r--r--dev-python/axiom/axiom-0.7.2.ebuild32
-rw-r--r--dev-python/axiom/axiom-0.7.3.ebuild32
-rw-r--r--dev-python/axiom/files/axiom-0.5.30-sqlite3.patch45
-rw-r--r--dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch36
-rw-r--r--dev-python/axiom/files/axiom-0.6.0-disable-tests.patch89
-rw-r--r--dev-python/axiom/metadata.xml14
-rw-r--r--dev-python/babelfish/Manifest3
-rw-r--r--dev-python/babelfish/babelfish-0.4.0.ebuild26
-rw-r--r--dev-python/babelfish/babelfish-0.5.1.ebuild26
-rw-r--r--dev-python/babelfish/babelfish-0.5.3.ebuild26
-rw-r--r--dev-python/babelfish/babelfish-9999.ebuild26
-rw-r--r--dev-python/babelfish/metadata.xml12
-rw-r--r--dev-python/backports-lzma/Manifest1
-rw-r--r--dev-python/backports-lzma/backports-lzma-0.0.3.ebuild38
-rw-r--r--dev-python/backports-lzma/metadata.xml9
-rw-r--r--dev-python/backports-shutil_get_terminal_size/Manifest1
-rw-r--r--dev-python/backports-shutil_get_terminal_size/backports-shutil_get_terminal_size-1.0.0-r1.ebuild33
-rw-r--r--dev-python/backports-shutil_get_terminal_size/metadata.xml12
-rw-r--r--dev-python/backports-ssl-match-hostname/Manifest1
-rw-r--r--dev-python/backports-ssl-match-hostname/backports-ssl-match-hostname-3.4.0.2.ebuild43
-rw-r--r--dev-python/backports-ssl-match-hostname/metadata.xml8
-rw-r--r--dev-python/backports/Manifest1
-rw-r--r--dev-python/backports/backports-1.0.ebuild18
-rw-r--r--dev-python/backports/metadata.xml12
-rw-r--r--dev-python/bandit/Manifest2
-rw-r--r--dev-python/bandit/bandit-0.12.0.ebuild52
-rw-r--r--dev-python/bandit/bandit-0.13.0.ebuild52
-rw-r--r--dev-python/bandit/metadata.xml14
-rw-r--r--dev-python/basemap/Manifest1
-rw-r--r--dev-python/basemap/basemap-1.0.7-r1.ebuild73
-rw-r--r--dev-python/basemap/metadata.xml13
-rw-r--r--dev-python/bashate/Manifest1
-rw-r--r--dev-python/bashate/bashate-0.3.1.ebuild34
-rw-r--r--dev-python/bashate/metadata.xml15
-rw-r--r--dev-python/bcolz/Manifest3
-rw-r--r--dev-python/bcolz/bcolz-0.10.0.ebuild51
-rw-r--r--dev-python/bcolz/bcolz-0.8.1.ebuild50
-rw-r--r--dev-python/bcolz/bcolz-0.9.0.ebuild51
-rw-r--r--dev-python/bcolz/metadata.xml9
-rw-r--r--dev-python/bcrypt/Manifest3
-rw-r--r--dev-python/bcrypt/bcrypt-1.0.2-r1.ebuild28
-rw-r--r--dev-python/bcrypt/bcrypt-1.1.1.ebuild39
-rw-r--r--dev-python/bcrypt/bcrypt-2.0.0.ebuild32
-rw-r--r--dev-python/bcrypt/metadata.xml10
-rw-r--r--dev-python/beaker/Manifest2
-rw-r--r--dev-python/beaker/beaker-1.6.4-r1.ebuild46
-rw-r--r--dev-python/beaker/beaker-1.7.0-r1.ebuild50
-rw-r--r--dev-python/beaker/metadata.xml9
-rw-r--r--dev-python/beanstalkc/Manifest1
-rw-r--r--dev-python/beanstalkc/beanstalkc-0.4.0-r1.ebuild22
-rw-r--r--dev-python/beanstalkc/beanstalkc-0.4.0.ebuild22
-rw-r--r--dev-python/beanstalkc/metadata.xml9
-rw-r--r--dev-python/beautifulsoup/Manifest6
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-3.1.0.1-r2.ebuild41
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-3.2.1-r1.ebuild29
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-4.1.3-r1.ebuild46
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-4.1.3.ebuild54
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-4.2.0.ebuild48
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-4.3.2.ebuild46
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-4.4.0.ebuild47
-rw-r--r--dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-disable-tests.patch39
-rw-r--r--dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-python-3.patch949
-rw-r--r--dev-python/beautifulsoup/files/bfs-4.2.0-no-lxml.patch67
-rw-r--r--dev-python/beautifulsoup/metadata.xml16
-rw-r--r--dev-python/behave/Manifest2
-rw-r--r--dev-python/behave/behave-1.2.4.ebuild58
-rw-r--r--dev-python/behave/behave-1.2.5.ebuild53
-rw-r--r--dev-python/behave/metadata.xml14
-rw-r--r--dev-python/bicyclerepair/Manifest1
-rw-r--r--dev-python/bicyclerepair/bicyclerepair-0.9-r2.ebuild63
-rw-r--r--dev-python/bicyclerepair/bicyclerepair-0.9-r3.ebuild53
-rw-r--r--dev-python/bicyclerepair/files/50bicyclerepair-gentoo.el10
-rw-r--r--dev-python/bicyclerepair/files/bicyclerepair-0.9-idle.patch41
-rw-r--r--dev-python/bicyclerepair/files/bicyclerepair-0.9-invalid-syntax.patch11
-rw-r--r--dev-python/bicyclerepair/metadata.xml8
-rw-r--r--dev-python/billiard/Manifest3
-rw-r--r--dev-python/billiard/billiard-3.3.0.18.ebuild54
-rw-r--r--dev-python/billiard/billiard-3.3.0.19.ebuild55
-rw-r--r--dev-python/billiard/billiard-3.3.0.20.ebuild55
-rw-r--r--dev-python/billiard/metadata.xml9
-rw-r--r--dev-python/biplist/Manifest2
-rw-r--r--dev-python/biplist/biplist-0.8.ebuild27
-rw-r--r--dev-python/biplist/biplist-0.9.ebuild29
-rw-r--r--dev-python/biplist/metadata.xml13
-rw-r--r--dev-python/bitarray/Manifest1
-rw-r--r--dev-python/bitarray/bitarray-0.8.1.ebuild20
-rw-r--r--dev-python/bitarray/metadata.xml21
-rw-r--r--dev-python/bitstring/Manifest1
-rw-r--r--dev-python/bitstring/bitstring-3.1.1.ebuild29
-rw-r--r--dev-python/bitstring/metadata.xml15
-rw-r--r--dev-python/bjoern/Manifest2
-rw-r--r--dev-python/bjoern/bjoern-1.3.2.ebuild21
-rw-r--r--dev-python/bjoern/bjoern-1.4.2.ebuild21
-rw-r--r--dev-python/bjoern/metadata.xml9
-rw-r--r--dev-python/blaze/Manifest3
-rw-r--r--dev-python/blaze/blaze-0.7.1.ebuild86
-rw-r--r--dev-python/blaze/blaze-0.8.0.ebuild86
-rw-r--r--dev-python/blaze/blaze-0.8.2.ebuild82
-rw-r--r--dev-python/blaze/metadata.xml14
-rw-r--r--dev-python/bleach/Manifest1
-rw-r--r--dev-python/bleach/bleach-1.4.1.ebuild30
-rw-r--r--dev-python/bleach/metadata.xml9
-rw-r--r--dev-python/blessings/Manifest1
-rw-r--r--dev-python/blessings/blessings-1.6.ebuild25
-rw-r--r--dev-python/blessings/metadata.xml12
-rw-r--r--dev-python/blinker/Manifest2
-rw-r--r--dev-python/blinker/blinker-1.3.ebuild33
-rw-r--r--dev-python/blinker/blinker-1.4.ebuild33
-rw-r--r--dev-python/blinker/metadata.xml8
-rw-r--r--dev-python/blockcanvas/Manifest1
-rw-r--r--dev-python/blockcanvas/blockcanvas-4.0.3-r1.ebuild54
-rw-r--r--dev-python/blockcanvas/metadata.xml15
-rw-r--r--dev-python/blosc/Manifest3
-rw-r--r--dev-python/blosc/blosc-1.2.0.ebuild34
-rw-r--r--dev-python/blosc/blosc-1.2.1.ebuild34
-rw-r--r--dev-python/blosc/blosc-1.2.3.ebuild34
-rw-r--r--dev-python/blosc/metadata.xml18
-rw-r--r--dev-python/bluelet/Manifest1
-rw-r--r--dev-python/bluelet/bluelet-0.2.0.ebuild28
-rw-r--r--dev-python/bluelet/metadata.xml15
-rw-r--r--dev-python/blz/Manifest1
-rw-r--r--dev-python/blz/blz-0.6.2.ebuild50
-rw-r--r--dev-python/blz/metadata.xml15
-rw-r--r--dev-python/bokeh/Manifest1
-rw-r--r--dev-python/bokeh/bokeh-0.7.1.ebuild92
-rw-r--r--dev-python/bokeh/files/bokeh-0.7.1-setup.patch17
-rw-r--r--dev-python/bokeh/metadata.xml16
-rw-r--r--dev-python/boto/Manifest5
-rw-r--r--dev-python/boto/boto-2.27.0.ebuild25
-rw-r--r--dev-python/boto/boto-2.31.1.ebuild25
-rw-r--r--dev-python/boto/boto-2.34.0.ebuild25
-rw-r--r--dev-python/boto/boto-2.35.1.ebuild27
-rw-r--r--dev-python/boto/boto-2.38.0.ebuild48
-rw-r--r--dev-python/boto/metadata.xml13
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.1.1.ebuild54
-rw-r--r--dev-python/boto3/metadata.xml13
-rw-r--r--dev-python/botocore/Manifest2
-rw-r--r--dev-python/botocore/botocore-1.1.3.ebuild53
-rw-r--r--dev-python/botocore/botocore-1.1.5.ebuild53
-rw-r--r--dev-python/botocore/metadata.xml13
-rw-r--r--dev-python/bottle/Manifest2
-rw-r--r--dev-python/bottle/bottle-0.12.7.ebuild33
-rw-r--r--dev-python/bottle/bottle-0.12.8.ebuild42
-rw-r--r--dev-python/bottle/metadata.xml8
-rw-r--r--dev-python/bottleneck/Manifest2
-rw-r--r--dev-python/bottleneck/bottleneck-0.8.0.ebuild40
-rw-r--r--dev-python/bottleneck/bottleneck-1.0.0.ebuild41
-rw-r--r--dev-python/bottleneck/metadata.xml12
-rw-r--r--dev-python/bpython/Manifest5
-rw-r--r--dev-python/bpython/bpython-0.13.1.ebuild67
-rw-r--r--dev-python/bpython/bpython-0.13.2.ebuild65
-rw-r--r--dev-python/bpython/bpython-0.14.1.ebuild62
-rw-r--r--dev-python/bpython/bpython-0.14.2.ebuild62
-rw-r--r--dev-python/bpython/bpython-0.14.ebuild65
-rw-r--r--dev-python/bpython/files/bpython-0.13-test_repl.patch34
-rw-r--r--dev-python/bpython/files/bpython-0.14.patch14
-rw-r--r--dev-python/bpython/files/bpython-desktop.patch8
-rw-r--r--dev-python/bpython/metadata.xml16
-rw-r--r--dev-python/bsddb3/Manifest2
-rw-r--r--dev-python/bsddb3/bsddb3-6.0.1.ebuild65
-rw-r--r--dev-python/bsddb3/bsddb3-6.1.0.ebuild74
-rw-r--r--dev-python/bsddb3/metadata.xml8
-rw-r--r--dev-python/buildutils/Manifest1
-rw-r--r--dev-python/buildutils/buildutils-0.3-r1.ebuild51
-rw-r--r--dev-python/buildutils/files/buildutils-0.3-pudge_addcommand.patch12
-rw-r--r--dev-python/buildutils/metadata.xml8
-rw-r--r--dev-python/buzhug/Manifest1
-rw-r--r--dev-python/buzhug/buzhug-1.8-r1.ebuild25
-rw-r--r--dev-python/buzhug/metadata.xml8
-rw-r--r--dev-python/bytecodeassembler/Manifest1
-rw-r--r--dev-python/bytecodeassembler/bytecodeassembler-0.6.ebuild31
-rw-r--r--dev-python/bytecodeassembler/metadata.xml8
-rw-r--r--dev-python/cached-property/Manifest3
-rw-r--r--dev-python/cached-property/cached-property-0.1.5.ebuild29
-rw-r--r--dev-python/cached-property/cached-property-1.0.0.ebuild29
-rw-r--r--dev-python/cached-property/cached-property-1.2.0.ebuild29
-rw-r--r--dev-python/cached-property/metadata.xml15
-rw-r--r--dev-python/cairocffi/Manifest5
-rw-r--r--dev-python/cairocffi/cairocffi-0.5.3-r1.ebuild42
-rw-r--r--dev-python/cairocffi/cairocffi-0.5.4.ebuild42
-rw-r--r--dev-python/cairocffi/cairocffi-0.6-r1.ebuild51
-rw-r--r--dev-python/cairocffi/cairocffi-0.6.ebuild49
-rw-r--r--dev-python/cairocffi/cairocffi-0.7.1.ebuild56
-rw-r--r--dev-python/cairocffi/cairocffi-0.7.2.ebuild56
-rw-r--r--dev-python/cairocffi/files/cairocffi-0.7.1-test.patch58
-rw-r--r--dev-python/cairocffi/files/mapping.patch10
-rw-r--r--dev-python/cairocffi/metadata.xml9
-rw-r--r--dev-python/cangjie/Manifest2
-rw-r--r--dev-python/cangjie/cangjie-1.1.ebuild35
-rw-r--r--dev-python/cangjie/cangjie-1.2.ebuild37
-rw-r--r--dev-python/cangjie/files/cangjie-1.2-cython-022.patch25
-rw-r--r--dev-python/cangjie/metadata.xml14
-rw-r--r--dev-python/carbon/Manifest2
-rw-r--r--dev-python/carbon/carbon-0.9.12-r1.ebuild65
-rw-r--r--dev-python/carbon/carbon-0.9.13.ebuild65
-rw-r--r--dev-python/carbon/files/carbon-0.9.12-no-data-files.patch24
-rw-r--r--dev-python/carbon/files/carbon.confd5
-rw-r--r--dev-python/carbon/files/carbon.initd52
-rw-r--r--dev-python/carbon/files/no-data-files.patch26
-rw-r--r--dev-python/carbon/metadata.xml8
-rw-r--r--dev-python/carrot/Manifest1
-rw-r--r--dev-python/carrot/carrot-0.10.7-r1.ebuild32
-rw-r--r--dev-python/carrot/metadata.xml9
-rw-r--r--dev-python/casuarius/Manifest1
-rw-r--r--dev-python/casuarius/casuarius-1.1.ebuild22
-rw-r--r--dev-python/casuarius/metadata.xml15
-rw-r--r--dev-python/cddb-py/Manifest1
-rw-r--r--dev-python/cddb-py/cddb-py-1.4-r1.ebuild23
-rw-r--r--dev-python/cddb-py/cddb-py-1.4.ebuild26
-rw-r--r--dev-python/cddb-py/metadata.xml8
-rw-r--r--dev-python/celementtree/Manifest1
-rw-r--r--dev-python/celementtree/celementtree-1.0.5-r2.ebuild45
-rw-r--r--dev-python/celementtree/files/celementtree-1.0.5-setuptools.patch12
-rw-r--r--dev-python/celementtree/files/celementtree-1.0.5-use_system_expat.patch44
-rw-r--r--dev-python/celementtree/metadata.xml5
-rw-r--r--dev-python/celery/Manifest2
-rw-r--r--dev-python/celery/celery-3.1.17.ebuild80
-rw-r--r--dev-python/celery/celery-3.1.18.ebuild80
-rw-r--r--dev-python/celery/files/celery-3.0.11-require-python-dateutil-2.1.patch47
-rw-r--r--dev-python/celery/files/celery-3.0.12-require-python-dateutil-2.1.patch47
-rw-r--r--dev-python/celery/files/celery-3.1.10-test.patch33
-rw-r--r--dev-python/celery/files/celery-3.1.11-test.patch16
-rw-r--r--dev-python/celery/files/celery-docs.patch19
-rw-r--r--dev-python/celery/files/celery.confd70
-rw-r--r--dev-python/celery/files/celery.confd-r150
-rw-r--r--dev-python/celery/files/celery.initd268
-rw-r--r--dev-python/celery/files/celery.initd-r1214
-rw-r--r--dev-python/celery/metadata.xml14
-rw-r--r--dev-python/cement/Manifest1
-rw-r--r--dev-python/cement/cement-2.0.2.ebuild46
-rw-r--r--dev-python/cement/files/tests-installation.patch19
-rw-r--r--dev-python/cement/metadata.xml9
-rw-r--r--dev-python/certifi/Manifest2
-rw-r--r--dev-python/certifi/certifi-14.05.14.ebuild20
-rw-r--r--dev-python/certifi/certifi-2015.04.28.ebuild21
-rw-r--r--dev-python/certifi/metadata.xml8
-rw-r--r--dev-python/cffi/Manifest6
-rw-r--r--dev-python/cffi/cffi-0.8.6.ebuild38
-rw-r--r--dev-python/cffi/cffi-0.9.2.ebuild38
-rw-r--r--dev-python/cffi/cffi-1.0.2.ebuild40
-rw-r--r--dev-python/cffi/cffi-1.0.3.ebuild40
-rw-r--r--dev-python/cffi/cffi-1.1.0.ebuild42
-rw-r--r--dev-python/cffi/cffi-1.1.2.ebuild40
-rw-r--r--dev-python/cffi/files/cffi-1.1.0-test-backport.patch44
-rw-r--r--dev-python/cffi/files/issue177_prot_exec.patch79
-rw-r--r--dev-python/cffi/metadata.xml8
-rw-r--r--dev-python/cfgio/Manifest1
-rw-r--r--dev-python/cfgio/cfgio-0.1.2.ebuild24
-rw-r--r--dev-python/cfgio/metadata.xml11
-rw-r--r--dev-python/cfgparse/Manifest1
-rw-r--r--dev-python/cfgparse/cfgparse-1.3-r1.ebuild22
-rw-r--r--dev-python/cfgparse/metadata.xml8
-rw-r--r--dev-python/cgkit/Manifest2
-rw-r--r--dev-python/cgkit/cgkit-2.0.0.ebuild87
-rw-r--r--dev-python/cgkit/files/cgkit-2.0.0-test.patch11
-rw-r--r--dev-python/cgkit/files/cgkit-py2k-pillow.patch82
-rw-r--r--dev-python/cgkit/files/cgkit-py3k-pillow.patch82
-rw-r--r--dev-python/cgkit/metadata.xml12
-rw-r--r--dev-python/cgroup-utils/Manifest1
-rw-r--r--dev-python/cgroup-utils/cgroup-utils-0.6.ebuild19
-rw-r--r--dev-python/cgroup-utils/metadata.xml12
-rw-r--r--dev-python/chaco/Manifest1
-rw-r--r--dev-python/chaco/chaco-4.5.0.ebuild39
-rw-r--r--dev-python/chaco/metadata.xml18
-rw-r--r--dev-python/chameleon/Manifest4
-rw-r--r--dev-python/chameleon/chameleon-2.16.ebuild41
-rw-r--r--dev-python/chameleon/chameleon-2.19.ebuild41
-rw-r--r--dev-python/chameleon/chameleon-2.20.ebuild41
-rw-r--r--dev-python/chameleon/chameleon-2.22.ebuild41
-rw-r--r--dev-python/chameleon/metadata.xml8
-rw-r--r--dev-python/characteristic/Manifest2
-rw-r--r--dev-python/characteristic/characteristic-14.1.0.ebuild42
-rw-r--r--dev-python/characteristic/characteristic-14.3.0.ebuild46
-rw-r--r--dev-python/characteristic/metadata.xml9
-rw-r--r--dev-python/charade/Manifest1
-rw-r--r--dev-python/charade/charade-1.0.3.ebuild19
-rw-r--r--dev-python/charade/metadata.xml9
-rw-r--r--dev-python/chardet/Manifest2
-rw-r--r--dev-python/chardet/chardet-2.2.1.ebuild20
-rw-r--r--dev-python/chardet/chardet-2.3.0.ebuild20
-rw-r--r--dev-python/chardet/metadata.xml9
-rw-r--r--dev-python/cheetah-docs/Manifest1
-rw-r--r--dev-python/cheetah-docs/cheetah-docs-0.9.16_alpha1.ebuild35
-rw-r--r--dev-python/cheetah-docs/metadata.xml8
-rw-r--r--dev-python/cheetah/Manifest1
-rw-r--r--dev-python/cheetah/cheetah-2.4.4-r1.ebuild45
-rw-r--r--dev-python/cheetah/metadata.xml12
-rw-r--r--dev-python/cherrypy/Manifest3
-rw-r--r--dev-python/cherrypy/cherrypy-3.3.0.ebuild53
-rw-r--r--dev-python/cherrypy/cherrypy-3.7.0.ebuild52
-rw-r--r--dev-python/cherrypy/cherrypy-3.8.0.ebuild52
-rw-r--r--dev-python/cherrypy/files/cherrypy-3.3.0-test_config.patch20
-rw-r--r--dev-python/cherrypy/metadata.xml8
-rw-r--r--dev-python/cherrytemplate/Manifest1
-rw-r--r--dev-python/cherrytemplate/cherrytemplate-1.0.0-r1.ebuild25
-rw-r--r--dev-python/cherrytemplate/metadata.xml8
-rw-r--r--dev-python/cliapp/Manifest3
-rw-r--r--dev-python/cliapp/cliapp-1.20130808.ebuild31
-rw-r--r--dev-python/cliapp/cliapp-1.20140315.ebuild31
-rw-r--r--dev-python/cliapp/cliapp-1.20150305.ebuild30
-rw-r--r--dev-python/cliapp/metadata.xml8
-rw-r--r--dev-python/click/Manifest3
-rw-r--r--dev-python/click/click-2.0.ebuild23
-rw-r--r--dev-python/click/click-4.0-r1.ebuild45
-rw-r--r--dev-python/click/click-4.1.ebuild43
-rw-r--r--dev-python/click/files/click-4.0-docbuild.patch12
-rw-r--r--dev-python/click/metadata.xml8
-rw-r--r--dev-python/clientcookie/Manifest1
-rw-r--r--dev-python/clientcookie/clientcookie-1.3.0-r1.ebuild26
-rw-r--r--dev-python/clientcookie/metadata.xml15
-rw-r--r--dev-python/cliff-tablib/Manifest1
-rw-r--r--dev-python/cliff-tablib/cliff-tablib-1.1.ebuild28
-rw-r--r--dev-python/cliff-tablib/metadata.xml9
-rw-r--r--dev-python/cliff/Manifest4
-rw-r--r--dev-python/cliff/cliff-1.10.1.ebuild39
-rw-r--r--dev-python/cliff/cliff-1.12.0.ebuild58
-rw-r--r--dev-python/cliff/cliff-1.13.0.ebuild58
-rw-r--r--dev-python/cliff/cliff-1.8.0.ebuild39
-rw-r--r--dev-python/cliff/metadata.xml18
-rw-r--r--dev-python/clint/Manifest3
-rw-r--r--dev-python/clint/clint-0.3.1-r1.ebuild41
-rw-r--r--dev-python/clint/clint-0.3.7.ebuild38
-rw-r--r--dev-python/clint/clint-0.4.1.ebuild38
-rw-r--r--dev-python/clint/files/clint-setup.patch15
-rw-r--r--dev-python/clint/metadata.xml13
-rw-r--r--dev-python/cloudlib/Manifest1
-rw-r--r--dev-python/cloudlib/cloudlib-0.4.0.ebuild25
-rw-r--r--dev-python/cloudlib/metadata.xml16
-rw-r--r--dev-python/cmd2/Manifest2
-rw-r--r--dev-python/cmd2/cmd2-0.6.7.ebuild34
-rw-r--r--dev-python/cmd2/cmd2-0.6.8.ebuild26
-rw-r--r--dev-python/cmd2/metadata.xml16
-rw-r--r--dev-python/codetools/Manifest1
-rw-r--r--dev-python/codetools/codetools-4.2.0.ebuild36
-rw-r--r--dev-python/codetools/metadata.xml22
-rw-r--r--dev-python/colander/Manifest1
-rw-r--r--dev-python/colander/colander-1.0.ebuild57
-rw-r--r--dev-python/colander/metadata.xml8
-rw-r--r--dev-python/colorama/Manifest2
-rw-r--r--dev-python/colorama/colorama-0.3.2.ebuild22
-rw-r--r--dev-python/colorama/colorama-0.3.3.ebuild22
-rw-r--r--dev-python/colorama/metadata.xml17
-rw-r--r--dev-python/coloredlogs/Manifest1
-rw-r--r--dev-python/coloredlogs/coloredlogs-1.0.1-r1.ebuild31
-rw-r--r--dev-python/coloredlogs/files/coloredlogs-1.0.1-ansi2html.patch17
-rw-r--r--dev-python/coloredlogs/metadata.xml13
-rw-r--r--dev-python/colorlog/Manifest1
-rw-r--r--dev-python/colorlog/colorlog-2.6.0.ebuild34
-rw-r--r--dev-python/colorlog/metadata.xml13
-rw-r--r--dev-python/colout/Manifest1
-rw-r--r--dev-python/colout/colout-0.1.ebuild37
-rw-r--r--dev-python/colout/metadata.xml8
-rw-r--r--dev-python/columnize/Manifest2
-rw-r--r--dev-python/columnize/columnize-0.3.5-r1.ebuild25
-rw-r--r--dev-python/columnize/columnize-0.3.8.ebuild27
-rw-r--r--dev-python/columnize/metadata.xml10
-rw-r--r--dev-python/common/Manifest1
-rw-r--r--dev-python/common/common-0.1.1.ebuild20
-rw-r--r--dev-python/common/metadata.xml11
-rw-r--r--dev-python/compizconfig-python/Manifest1
-rw-r--r--dev-python/compizconfig-python/compizconfig-python-0.8.4-r5.ebuild43
-rw-r--r--dev-python/compizconfig-python/metadata.xml7
-rw-r--r--dev-python/configargparse/Manifest1
-rw-r--r--dev-python/configargparse/configargparse-0.9.3.ebuild21
-rw-r--r--dev-python/configargparse/metadata.xml9
-rw-r--r--dev-python/configclass/Manifest1
-rw-r--r--dev-python/configclass/configclass-0.1.0.ebuild20
-rw-r--r--dev-python/configclass/metadata.xml9
-rw-r--r--dev-python/configobj/Manifest3
-rw-r--r--dev-python/configobj/configobj-4.7.2-r2.ebuild41
-rw-r--r--dev-python/configobj/configobj-5.0.5.ebuild30
-rw-r--r--dev-python/configobj/configobj-5.0.6.ebuild30
-rw-r--r--dev-python/configobj/files/configobj-4.7.2-fix_tests.patch11
-rw-r--r--dev-python/configobj/metadata.xml14
-rw-r--r--dev-python/configparser/Manifest1
-rw-r--r--dev-python/configparser/configparser-3.3.0.2.ebuild19
-rw-r--r--dev-python/configparser/metadata.xml12
-rw-r--r--dev-python/configshell/configshell-9999.ebuild25
-rw-r--r--dev-python/configshell/metadata.xml10
-rw-r--r--dev-python/contextlib2/Manifest1
-rw-r--r--dev-python/contextlib2/contextlib2-0.4.0.ebuild22
-rw-r--r--dev-python/contextlib2/metadata.xml8
-rw-r--r--dev-python/cosmolopy/Manifest1
-rw-r--r--dev-python/cosmolopy/cosmolopy-0.1.104-r1.ebuild42
-rw-r--r--dev-python/cosmolopy/metadata.xml10
-rw-r--r--dev-python/couchdb-python/Manifest3
-rw-r--r--dev-python/couchdb-python/couchdb-python-0.10.ebuild47
-rw-r--r--dev-python/couchdb-python/couchdb-python-0.9.ebuild34
-rw-r--r--dev-python/couchdb-python/couchdb-python-1.0.ebuild44
-rw-r--r--dev-python/couchdb-python/files/0.10-exec-compat.patch87
-rw-r--r--dev-python/couchdb-python/metadata.xml13
-rw-r--r--dev-python/cov-core/Manifest2
-rw-r--r--dev-python/cov-core/cov-core-1.15.0.ebuild20
-rw-r--r--dev-python/cov-core/cov-core-1.7.ebuild20
-rw-r--r--dev-python/cov-core/metadata.xml12
-rw-r--r--dev-python/coverage/Manifest3
-rw-r--r--dev-python/coverage/coverage-3.6.ebuild29
-rw-r--r--dev-python/coverage/coverage-3.7.1.ebuild29
-rw-r--r--dev-python/coverage/coverage-3.7.ebuild29
-rw-r--r--dev-python/coverage/metadata.xml16
-rw-r--r--dev-python/crcmod/Manifest1
-rw-r--r--dev-python/crcmod/crcmod-1.7-r2.ebuild24
-rw-r--r--dev-python/crcmod/metadata.xml14
-rw-r--r--dev-python/crumbs/Manifest3
-rw-r--r--dev-python/crumbs/crumbs-1.2.2-r1.ebuild33
-rw-r--r--dev-python/crumbs/crumbs-2.0.0.ebuild33
-rw-r--r--dev-python/crumbs/crumbs-2.0.1.ebuild32
-rw-r--r--dev-python/crumbs/metadata.xml15
-rw-r--r--dev-python/cryptography-vectors/Manifest12
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.5.4.ebuild23
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.6.1.ebuild23
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.7.1.ebuild23
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.7.2.ebuild23
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.7.ebuild23
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.8.1.ebuild23
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.8.2.ebuild26
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.8.ebuild23
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.9.1.ebuild26
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.9.2.ebuild26
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.9.3.ebuild26
-rw-r--r--dev-python/cryptography-vectors/cryptography-vectors-0.9.ebuild26
-rw-r--r--dev-python/cryptography-vectors/metadata.xml8
-rw-r--r--dev-python/cryptography/Manifest9
-rw-r--r--dev-python/cryptography/cryptography-0.5.4.ebuild36
-rw-r--r--dev-python/cryptography/cryptography-0.6.1.ebuild42
-rw-r--r--dev-python/cryptography/cryptography-0.7.1-r1.ebuild40
-rw-r--r--dev-python/cryptography/cryptography-0.7.2.ebuild38
-rw-r--r--dev-python/cryptography/cryptography-0.8.1.ebuild38
-rw-r--r--dev-python/cryptography/cryptography-0.8.2.ebuild39
-rw-r--r--dev-python/cryptography/cryptography-0.8.ebuild38
-rw-r--r--dev-python/cryptography/cryptography-0.9.2.ebuild43
-rw-r--r--dev-python/cryptography/cryptography-0.9.3.ebuild43
-rw-r--r--dev-python/cryptography/files/0.7-setup.patch22
-rw-r--r--dev-python/cryptography/metadata.xml9
-rw-r--r--dev-python/cssselect/Manifest1
-rw-r--r--dev-python/cssselect/cssselect-0.9.1.ebuild44
-rw-r--r--dev-python/cssselect/metadata.xml8
-rw-r--r--dev-python/cssutils/Manifest2
-rw-r--r--dev-python/cssutils/cssutils-0.9.10-r1.ebuild46
-rw-r--r--dev-python/cssutils/cssutils-1.0.ebuild49
-rw-r--r--dev-python/cssutils/metadata.xml17
-rw-r--r--dev-python/ctypesgen/Manifest1
-rw-r--r--dev-python/ctypesgen/ctypesgen-0_p72-r1.ebuild38
-rw-r--r--dev-python/ctypesgen/ctypesgen-0_p72.ebuild25
-rw-r--r--dev-python/ctypesgen/metadata.xml5
-rw-r--r--dev-python/curtsies/Manifest2
-rw-r--r--dev-python/curtsies/curtsies-0.1.18.ebuild35
-rw-r--r--dev-python/curtsies/curtsies-0.2.3.ebuild35
-rw-r--r--dev-python/curtsies/metadata.xml12
-rw-r--r--dev-python/cvxopt/Manifest1
-rw-r--r--dev-python/cvxopt/cvxopt-1.1.6-r2.ebuild96
-rw-r--r--dev-python/cvxopt/files/cvxopt-1.1.6-glpk.patch889
-rw-r--r--dev-python/cvxopt/files/cvxopt-1.1.6-glpk449.patch1082
-rw-r--r--dev-python/cvxopt/files/cvxopt-1.1.6-setup.patch176
-rw-r--r--dev-python/cvxopt/metadata.xml20
-rw-r--r--dev-python/cx_Freeze/Manifest3
-rw-r--r--dev-python/cx_Freeze/cx_Freeze-4.3.1-r2.ebuild22
-rw-r--r--dev-python/cx_Freeze/cx_Freeze-4.3.2.ebuild22
-rw-r--r--dev-python/cx_Freeze/cx_Freeze-4.3.3.ebuild21
-rw-r--r--dev-python/cx_Freeze/files/cx_Freeze-4.3.2-buildsystem.patch31
-rw-r--r--dev-python/cx_Freeze/metadata.xml12
-rw-r--r--dev-python/cython/Manifest2
-rw-r--r--dev-python/cython/cython-0.22.1.ebuild62
-rw-r--r--dev-python/cython/cython-0.22.ebuild62
-rw-r--r--dev-python/cython/metadata.xml10
-rw-r--r--dev-python/cytoolz/Manifest3
-rw-r--r--dev-python/cytoolz/cytoolz-0.7.1.ebuild26
-rw-r--r--dev-python/cytoolz/cytoolz-0.7.2-r2.ebuild38
-rw-r--r--dev-python/cytoolz/cytoolz-0.7.3.ebuild38
-rw-r--r--dev-python/cytoolz/metadata.xml8
-rw-r--r--dev-python/d2to1/Manifest2
-rw-r--r--dev-python/d2to1/d2to1-0.2.11.ebuild21
-rw-r--r--dev-python/d2to1/d2to1-0.2.12.ebuild20
-rw-r--r--dev-python/d2to1/metadata.xml13
-rw-r--r--dev-python/dap/Manifest1
-rw-r--r--dev-python/dap/dap-2.2.6.7-r1.ebuild35
-rw-r--r--dev-python/dap/metadata.xml16
-rw-r--r--dev-python/datashape/Manifest4
-rw-r--r--dev-python/datashape/datashape-0.4.2.ebuild45
-rw-r--r--dev-python/datashape/datashape-0.4.4.ebuild45
-rw-r--r--dev-python/datashape/datashape-0.4.5.ebuild45
-rw-r--r--dev-python/datashape/datashape-0.4.6.ebuild45
-rw-r--r--dev-python/datashape/metadata.xml12
-rw-r--r--dev-python/dbus-python/Manifest1
-rw-r--r--dev-python/dbus-python/dbus-python-1.2.0-r1.ebuild81
-rw-r--r--dev-python/dbus-python/metadata.xml9
-rw-r--r--dev-python/dbutils/Manifest1
-rw-r--r--dev-python/dbutils/dbutils-1.1-r1.ebuild43
-rw-r--r--dev-python/dbutils/metadata.xml16
-rw-r--r--dev-python/ddt/Manifest1
-rw-r--r--dev-python/ddt/ddt-1.0.0.ebuild21
-rw-r--r--dev-python/ddt/metadata.xml17
-rw-r--r--dev-python/decorator/Manifest3
-rw-r--r--dev-python/decorator/decorator-3.4.0-r1.ebuild31
-rw-r--r--dev-python/decorator/decorator-3.4.2.ebuild28
-rw-r--r--dev-python/decorator/decorator-4.0.2.ebuild30
-rw-r--r--dev-python/decorator/files/decorator-3.4.0-test-failure-exit.patch35
-rw-r--r--dev-python/decorator/metadata.xml12
-rw-r--r--dev-python/decoratortools/Manifest1
-rw-r--r--dev-python/decoratortools/decoratortools-1.8-r1.ebuild35
-rw-r--r--dev-python/decoratortools/metadata.xml9
-rw-r--r--dev-python/deform/Manifest2
-rw-r--r--dev-python/deform/deform-0.9.8.ebuild41
-rw-r--r--dev-python/deform/deform-0.9.9.ebuild41
-rw-r--r--dev-python/deform/metadata.xml9
-rw-r--r--dev-python/defusedxml/Manifest1
-rw-r--r--dev-python/defusedxml/defusedxml-0.4.1-r1.ebuild27
-rw-r--r--dev-python/defusedxml/metadata.xml9
-rw-r--r--dev-python/demjson/Manifest3
-rw-r--r--dev-python/demjson/demjson-1.6.ebuild42
-rw-r--r--dev-python/demjson/demjson-2.2.2.ebuild36
-rw-r--r--dev-python/demjson/demjson-2.2.3.ebuild36
-rw-r--r--dev-python/demjson/metadata.xml5
-rw-r--r--dev-python/dicttoxml/Manifest2
-rw-r--r--dev-python/dicttoxml/dicttoxml-1.5.6.ebuild16
-rw-r--r--dev-python/dicttoxml/dicttoxml-1.6.6.ebuild16
-rw-r--r--dev-python/dicttoxml/metadata.xml13
-rw-r--r--dev-python/diff-match-patch/Manifest1
-rw-r--r--dev-python/diff-match-patch/diff-match-patch-20121119.ebuild25
-rw-r--r--dev-python/diff-match-patch/metadata.xml25
-rw-r--r--dev-python/dingus/Manifest1
-rw-r--r--dev-python/dingus/dingus-0.3.4-r1.ebuild25
-rw-r--r--dev-python/dingus/metadata.xml12
-rw-r--r--dev-python/discogs-client/Manifest2
-rw-r--r--dev-python/discogs-client/discogs-client-2.0.2.ebuild30
-rw-r--r--dev-python/discogs-client/discogs-client-2.2.0.ebuild33
-rw-r--r--dev-python/discogs-client/files/README.patch25
-rw-r--r--dev-python/discogs-client/metadata.xml13
-rw-r--r--dev-python/disqus-python/Manifest1
-rw-r--r--dev-python/disqus-python/disqus-python-0.4.2.ebuild29
-rw-r--r--dev-python/disqus-python/metadata.xml13
-rw-r--r--dev-python/django-annoying/Manifest3
-rw-r--r--dev-python/django-annoying/django-annoying-0.7.6-r1.ebuild20
-rw-r--r--dev-python/django-annoying/django-annoying-0.7.7.ebuild20
-rw-r--r--dev-python/django-annoying/django-annoying-0.8.2.ebuild20
-rw-r--r--dev-python/django-annoying/metadata.xml9
-rw-r--r--dev-python/django-appconf/Manifest1
-rw-r--r--dev-python/django-appconf/django-appconf-0.6.ebuild44
-rw-r--r--dev-python/django-appconf/files/docs.patch16
-rw-r--r--dev-python/django-appconf/metadata.xml8
-rw-r--r--dev-python/django-auth-ldap/Manifest2
-rw-r--r--dev-python/django-auth-ldap/django-auth-ldap-1.2.2.ebuild44
-rw-r--r--dev-python/django-auth-ldap/django-auth-ldap-1.2.6.ebuild42
-rw-r--r--dev-python/django-auth-ldap/files/docs.patch18
-rw-r--r--dev-python/django-auth-ldap/metadata.xml9
-rw-r--r--dev-python/django-baker/Manifest1
-rw-r--r--dev-python/django-baker/django-baker-0.11-r2.ebuild23
-rw-r--r--dev-python/django-baker/files/django-baker-0.11-py3-backport.patch50
-rw-r--r--dev-python/django-baker/files/django-baker-0.11-py3-iter.patch42
-rw-r--r--dev-python/django-baker/metadata.xml12
-rw-r--r--dev-python/django-celery/Manifest1
-rw-r--r--dev-python/django-celery/django-celery-3.1.16.ebuild53
-rw-r--r--dev-python/django-celery/metadata.xml9
-rw-r--r--dev-python/django-compressor/Manifest2
-rw-r--r--dev-python/django-compressor/django-compressor-1.4.ebuild62
-rw-r--r--dev-python/django-compressor/django-compressor-1.5.ebuild62
-rw-r--r--dev-python/django-compressor/files/django-compressor-1.4-test.patch306
-rw-r--r--dev-python/django-compressor/metadata.xml8
-rw-r--r--dev-python/django-crispy-forms/Manifest1
-rw-r--r--dev-python/django-crispy-forms/django-crispy-forms-1.4.0.ebuild31
-rw-r--r--dev-python/django-crispy-forms/metadata.xml13
-rw-r--r--dev-python/django-debug-toolbar/Manifest1
-rw-r--r--dev-python/django-debug-toolbar/django-debug-toolbar-1.3.2.ebuild53
-rw-r--r--dev-python/django-debug-toolbar/metadata.xml8
-rw-r--r--dev-python/django-discover-runner/Manifest2
-rw-r--r--dev-python/django-discover-runner/django-discover-runner-0.4.ebuild21
-rw-r--r--dev-python/django-discover-runner/django-discover-runner-1.0.ebuild22
-rw-r--r--dev-python/django-discover-runner/metadata.xml9
-rw-r--r--dev-python/django-endless-pagination/Manifest1
-rw-r--r--dev-python/django-endless-pagination/django-endless-pagination-2.0.ebuild50
-rw-r--r--dev-python/django-endless-pagination/metadata.xml12
-rw-r--r--dev-python/django-evolution/Manifest3
-rw-r--r--dev-python/django-evolution/django-evolution-0.6.9.ebuild47
-rw-r--r--dev-python/django-evolution/django-evolution-0.7.4.ebuild37
-rw-r--r--dev-python/django-evolution/django-evolution-0.7.5.ebuild37
-rw-r--r--dev-python/django-evolution/metadata.xml12
-rw-r--r--dev-python/django-extensions/Manifest5
-rw-r--r--dev-python/django-extensions/django-extensions-1.4.0.ebuild56
-rw-r--r--dev-python/django-extensions/django-extensions-1.5.0.ebuild63
-rw-r--r--dev-python/django-extensions/django-extensions-1.5.2.ebuild59
-rw-r--r--dev-python/django-extensions/django-extensions-1.5.3.ebuild59
-rw-r--r--dev-python/django-extensions/django-extensions-1.5.5.ebuild60
-rw-r--r--dev-python/django-extensions/metadata.xml17
-rw-r--r--dev-python/django-formtools/Manifest1
-rw-r--r--dev-python/django-formtools/django-formtools-1.0.ebuild30
-rw-r--r--dev-python/django-formtools/metadata.xml12
-rw-r--r--dev-python/django-haystack/Manifest2
-rw-r--r--dev-python/django-haystack/django-haystack-2.2.0.ebuild31
-rw-r--r--dev-python/django-haystack/django-haystack-2.3.1.ebuild51
-rw-r--r--dev-python/django-haystack/metadata.xml8
-rw-r--r--dev-python/django-international/Manifest2
-rw-r--r--dev-python/django-international/django-international-0.0.3.ebuild28
-rw-r--r--dev-python/django-international/django-international-0.0.6.ebuild20
-rw-r--r--dev-python/django-international/metadata.xml9
-rw-r--r--dev-python/django-ldap-groups/Manifest1
-rw-r--r--dev-python/django-ldap-groups/django-ldap-groups-0.1.3-r1.ebuild23
-rw-r--r--dev-python/django-ldap-groups/metadata.xml10
-rw-r--r--dev-python/django-ldapdb/Manifest1
-rw-r--r--dev-python/django-ldapdb/django-ldapdb-0.3.2.ebuild21
-rw-r--r--dev-python/django-ldapdb/metadata.xml13
-rw-r--r--dev-python/django-nose/Manifest3
-rw-r--r--dev-python/django-nose/django-nose-1.3.ebuild29
-rw-r--r--dev-python/django-nose/django-nose-1.4.1.ebuild36
-rw-r--r--dev-python/django-nose/django-nose-1.4.ebuild29
-rw-r--r--dev-python/django-nose/metadata.xml9
-rw-r--r--dev-python/django-oauth-plus/Manifest1
-rw-r--r--dev-python/django-oauth-plus/django-oauth-plus-2.2.8.ebuild35
-rw-r--r--dev-python/django-oauth-plus/metadata.xml8
-rw-r--r--dev-python/django-openid-auth/Manifest1
-rw-r--r--dev-python/django-openid-auth/django-openid-auth-0.5.ebuild25
-rw-r--r--dev-python/django-openid-auth/metadata.xml13
-rw-r--r--dev-python/django-opensearch/Manifest1
-rw-r--r--dev-python/django-opensearch/django-opensearch-0.2.4.ebuild20
-rw-r--r--dev-python/django-opensearch/metadata.xml11
-rw-r--r--dev-python/django-openstack-auth/Manifest3
-rw-r--r--dev-python/django-openstack-auth/django-openstack-auth-1.1.5.ebuild39
-rw-r--r--dev-python/django-openstack-auth/django-openstack-auth-1.2.0.ebuild48
-rw-r--r--dev-python/django-openstack-auth/django-openstack-auth-1.3.1.ebuild68
-rw-r--r--dev-python/django-openstack-auth/metadata.xml15
-rw-r--r--dev-python/django-otp-yubikey/Manifest2
-rw-r--r--dev-python/django-otp-yubikey/django-otp-yubikey-0.2.0.ebuild25
-rw-r--r--dev-python/django-otp-yubikey/django-otp-yubikey-0.3.1.ebuild25
-rw-r--r--dev-python/django-otp-yubikey/metadata.xml12
-rw-r--r--dev-python/django-otp/Manifest2
-rw-r--r--dev-python/django-otp/django-otp-0.2.7.ebuild23
-rw-r--r--dev-python/django-otp/django-otp-0.3.1.ebuild23
-rw-r--r--dev-python/django-otp/metadata.xml12
-rw-r--r--dev-python/django-picklefield/Manifest2
-rw-r--r--dev-python/django-picklefield/django-picklefield-0.3.0.ebuild23
-rw-r--r--dev-python/django-picklefield/django-picklefield-0.3.1.ebuild23
-rw-r--r--dev-python/django-picklefield/metadata.xml9
-rw-r--r--dev-python/django-pipeline/Manifest2
-rw-r--r--dev-python/django-pipeline/django-pipeline-1.3.25.ebuild51
-rw-r--r--dev-python/django-pipeline/django-pipeline-1.3.26.ebuild55
-rw-r--r--dev-python/django-pipeline/files/1.3.26-tests.patch64
-rw-r--r--dev-python/django-pipeline/metadata.xml8
-rw-r--r--dev-python/django-piston/Manifest1
-rw-r--r--dev-python/django-piston/django-piston-0.2.3-r1.ebuild22
-rw-r--r--dev-python/django-piston/django-piston-9999.ebuild24
-rw-r--r--dev-python/django-piston/metadata.xml13
-rw-r--r--dev-python/django-recaptcha/Manifest2
-rw-r--r--dev-python/django-recaptcha/django-recaptcha-1.0.3.ebuild27
-rw-r--r--dev-python/django-recaptcha/django-recaptcha-1.0.4.ebuild27
-rw-r--r--dev-python/django-recaptcha/files/django-recaptcha-fields.patch18
-rw-r--r--dev-python/django-recaptcha/files/django-recaptcha-settings.patch6
-rw-r--r--dev-python/django-recaptcha/files/test_settings.py14
-rw-r--r--dev-python/django-recaptcha/metadata.xml9
-rw-r--r--dev-python/django-registration/Manifest2
-rw-r--r--dev-python/django-registration/django-registration-0.8-r1.ebuild21
-rw-r--r--dev-python/django-registration/django-registration-1.0.ebuild21
-rw-r--r--dev-python/django-registration/metadata.xml12
-rw-r--r--dev-python/django-select2/Manifest4
-rw-r--r--dev-python/django-select2/django-select2-3.2.1.ebuild23
-rw-r--r--dev-python/django-select2/django-select2-4.0.0.ebuild23
-rw-r--r--dev-python/django-select2/django-select2-4.2.2.ebuild23
-rw-r--r--dev-python/django-select2/django-select2-4.3.1.ebuild23
-rw-r--r--dev-python/django-select2/metadata.xml16
-rw-r--r--dev-python/django-setuptest/Manifest1
-rw-r--r--dev-python/django-setuptest/django-setuptest-0.1.6.ebuild24
-rw-r--r--dev-python/django-setuptest/metadata.xml12
-rw-r--r--dev-python/django-social-auth/Manifest1
-rw-r--r--dev-python/django-social-auth/django-social-auth-0.7.28.ebuild44
-rw-r--r--dev-python/django-social-auth/metadata.xml12
-rw-r--r--dev-python/django-tables2/Manifest2
-rw-r--r--dev-python/django-tables2/django-tables2-0.16.0-r1.ebuild25
-rw-r--r--dev-python/django-tables2/django-tables2-0.16.0.ebuild23
-rw-r--r--dev-python/django-tables2/django-tables2-1.0.4.ebuild23
-rw-r--r--dev-python/django-tables2/files/django-tables2-0.16.0-django-1.9-deprecation.patch118
-rw-r--r--dev-python/django-tables2/metadata.xml13
-rw-r--r--dev-python/django-tagging/Manifest3
-rw-r--r--dev-python/django-tagging/django-tagging-0.3.4.ebuild25
-rw-r--r--dev-python/django-tagging/django-tagging-0.3.6.ebuild24
-rw-r--r--dev-python/django-tagging/django-tagging-0.4.ebuild24
-rw-r--r--dev-python/django-tagging/metadata.xml8
-rw-r--r--dev-python/django-tastypie/Manifest1
-rw-r--r--dev-python/django-tastypie/django-tastypie-0.9.15.ebuild61
-rw-r--r--dev-python/django-tastypie/files/runtests.patch46
-rw-r--r--dev-python/django-tastypie/metadata.xml18
-rw-r--r--dev-python/django-tinymce/Manifest1
-rw-r--r--dev-python/django-tinymce/django-tinymce-1.5.3.ebuild27
-rw-r--r--dev-python/django-tinymce/metadata.xml8
-rw-r--r--dev-python/django-two-factor-auth/Manifest2
-rw-r--r--dev-python/django-two-factor-auth/django-two-factor-auth-1.1.1.ebuild42
-rw-r--r--dev-python/django-two-factor-auth/django-two-factor-auth-1.2.0.ebuild42
-rw-r--r--dev-python/django-two-factor-auth/metadata.xml14
-rw-r--r--dev-python/django-xslt/Manifest2
-rw-r--r--dev-python/django-xslt/django-xslt-0.4.5-r1.ebuild36
-rw-r--r--dev-python/django-xslt/metadata.xml12
-rw-r--r--dev-python/django/Manifest5
-rw-r--r--dev-python/django/django-1.4.21.ebuild104
-rw-r--r--dev-python/django/django-1.5.10.ebuild85
-rw-r--r--dev-python/django/django-1.6.11.ebuild106
-rw-r--r--dev-python/django/django-1.7.9.ebuild105
-rw-r--r--dev-python/django/django-1.8.3.ebuild107
-rw-r--r--dev-python/django/django-9999.ebuild105
-rw-r--r--dev-python/django/files/django-1.4.19-bashcomp.patch37
-rw-r--r--dev-python/django/files/django-1.5-py3tests.patch22
-rw-r--r--dev-python/django/files/django-1.5.4-objects.patch31
-rw-r--r--dev-python/django/files/django-1.6-objects.patch18
-rw-r--r--dev-python/django/files/django-1.6.10-bashcomp.patch35
-rw-r--r--dev-python/django/files/django-1.7.6-bashcomp.patch34
-rw-r--r--dev-python/django/metadata.xml8
-rw-r--r--dev-python/dnspython/Manifest3
-rw-r--r--dev-python/dnspython/dnspython-1.11.1.ebuild46
-rw-r--r--dev-python/dnspython/dnspython-1.12.0-r1.ebuild71
-rw-r--r--dev-python/dnspython/dnspython-1.12.0.ebuild35
-rw-r--r--dev-python/dnspython/metadata.xml21
-rw-r--r--dev-python/docker-py/Manifest5
-rw-r--r--dev-python/docker-py/docker-py-1.1.0-r2.ebuild49
-rw-r--r--dev-python/docker-py/docker-py-1.2.2.ebuild44
-rw-r--r--dev-python/docker-py/docker-py-1.2.3.ebuild44
-rw-r--r--dev-python/docker-py/docker-py-1.3.0.ebuild31
-rw-r--r--dev-python/docker-py/docker-py-1.3.1.ebuild44
-rw-r--r--dev-python/docker-py/metadata.xml12
-rw-r--r--dev-python/dockerpty/Manifest3
-rw-r--r--dev-python/dockerpty/dockerpty-0.3.2.ebuild47
-rw-r--r--dev-python/dockerpty/dockerpty-0.3.3.ebuild47
-rw-r--r--dev-python/dockerpty/dockerpty-0.3.4.ebuild47
-rw-r--r--dev-python/dockerpty/metadata.xml13
-rw-r--r--dev-python/docopt/Manifest1
-rw-r--r--dev-python/docopt/docopt-0.6.2.ebuild33
-rw-r--r--dev-python/docopt/metadata.xml12
-rw-r--r--dev-python/docutils-glep/Manifest1
-rw-r--r--dev-python/docutils-glep/docutils-glep-0.4-r1.ebuild46
-rw-r--r--dev-python/docutils-glep/metadata.xml5
-rw-r--r--dev-python/docutils/Manifest5
-rw-r--r--dev-python/docutils/docutils-0.10.ebuild72
-rw-r--r--dev-python/docutils/docutils-0.11.ebuild71
-rw-r--r--dev-python/docutils/docutils-0.12.ebuild69
-rw-r--r--dev-python/docutils/docutils-0.9.1-r1.ebuild93
-rw-r--r--dev-python/docutils/files/docutils-0.10-optparser.patch34
-rw-r--r--dev-python/docutils/files/docutils-0.11-python3.3-odt-writer.patch30
-rw-r--r--dev-python/docutils/files/docutils-0.6-extra_modules.patch24
-rw-r--r--dev-python/docutils/files/docutils-0.7-encoding.patch83
-rw-r--r--dev-python/docutils/files/docutils-0.7-python-3.2-configparser.patch49
-rw-r--r--dev-python/docutils/files/docutils-0.7-python-3.2-xml.etree.ElementTree.patch16
-rw-r--r--dev-python/docutils/metadata.xml11
-rw-r--r--dev-python/dogpile-cache/Manifest3
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-0.5.1.ebuild30
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-0.5.2.ebuild37
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-0.5.4.ebuild38
-rw-r--r--dev-python/dogpile-cache/metadata.xml18
-rw-r--r--dev-python/dogpile-core/Manifest1
-rw-r--r--dev-python/dogpile-core/dogpile-core-0.4.1.ebuild26
-rw-r--r--dev-python/dogpile-core/metadata.xml18
-rw-r--r--dev-python/doit-py/Manifest1
-rw-r--r--dev-python/doit-py/doit-py-0.3.0.ebuild39
-rw-r--r--dev-python/doit-py/metadata.xml8
-rw-r--r--dev-python/doit/Manifest3
-rw-r--r--dev-python/doit/doit-0.23.0-r1.ebuild63
-rw-r--r--dev-python/doit/doit-0.27.0.ebuild63
-rw-r--r--dev-python/doit/doit-0.28.0.ebuild69
-rw-r--r--dev-python/doit/metadata.xml12
-rw-r--r--dev-python/doublex-expects/Manifest1
-rw-r--r--dev-python/doublex-expects/doublex-expects-0.4.0.ebuild30
-rw-r--r--dev-python/doublex-expects/metadata.xml13
-rw-r--r--dev-python/doublex/Manifest2
-rw-r--r--dev-python/doublex/doublex-1.7.ebuild35
-rw-r--r--dev-python/doublex/doublex-1.8.1.ebuild44
-rw-r--r--dev-python/doublex/metadata.xml14
-rw-r--r--dev-python/dpkt/Manifest1
-rw-r--r--dev-python/dpkt/dpkt-1.8-r1.ebuild35
-rw-r--r--dev-python/dpkt/metadata.xml8
-rw-r--r--dev-python/dreampie/Manifest1
-rw-r--r--dev-python/dreampie/dreampie-1.2.1.ebuild23
-rw-r--r--dev-python/dreampie/metadata.xml15
-rw-r--r--dev-python/drpython/Manifest1
-rw-r--r--dev-python/drpython/drpython-3.11.4.ebuild47
-rw-r--r--dev-python/drpython/files/drpython-165-wxversion.patch12
-rw-r--r--dev-python/drpython/metadata.xml17
-rw-r--r--dev-python/dugong/Manifest2
-rw-r--r--dev-python/dugong/dugong-3.4.ebuild30
-rw-r--r--dev-python/dugong/dugong-3.5.ebuild30
-rw-r--r--dev-python/dugong/files/3.2-aborted_write.patch45
-rw-r--r--dev-python/dugong/files/3.2-extract_links.patch26
-rw-r--r--dev-python/dugong/files/3.2-timeout.patch19
-rw-r--r--dev-python/dugong/files/3.3-test-timeout.patch128
-rw-r--r--dev-python/dugong/metadata.xml9
-rw-r--r--dev-python/dulwich/Manifest3
-rw-r--r--dev-python/dulwich/dulwich-0.10.0.ebuild44
-rw-r--r--dev-python/dulwich/dulwich-0.10.1a.ebuild44
-rw-r--r--dev-python/dulwich/dulwich-0.9.9.ebuild44
-rw-r--r--dev-python/dulwich/metadata.xml13
-rw-r--r--dev-python/dynd-python/Manifest2
-rw-r--r--dev-python/dynd-python/dynd-python-0.6.5.ebuild75
-rw-r--r--dev-python/dynd-python/dynd-python-0.6.6.ebuild73
-rw-r--r--dev-python/dynd-python/files/dynd-python-0.6.0-out-of-git-versioning.patch13
-rw-r--r--dev-python/dynd-python/files/dynd-python-0.6.2-out-of-git-versioning.patch14
-rw-r--r--dev-python/dynd-python/metadata.xml13
-rw-r--r--dev-python/ecdsa/Manifest2
-rw-r--r--dev-python/ecdsa/ecdsa-0.11-r1.ebuild19
-rw-r--r--dev-python/ecdsa/ecdsa-0.13.ebuild24
-rw-r--r--dev-python/ecdsa/metadata.xml21
-rw-r--r--dev-python/editobj/Manifest1
-rw-r--r--dev-python/editobj/editobj-0.5.7-r1.ebuild34
-rw-r--r--dev-python/editobj/editobj-0.5.7-r2.ebuild30
-rw-r--r--dev-python/editobj/metadata.xml10
-rw-r--r--dev-python/edpwd/Manifest1
-rw-r--r--dev-python/edpwd/edpwd-0.0.7.ebuild26
-rw-r--r--dev-python/edpwd/metadata.xml11
-rw-r--r--dev-python/egenix-mx-base/Manifest2
-rw-r--r--dev-python/egenix-mx-base/egenix-mx-base-3.2.5.ebuild63
-rw-r--r--dev-python/egenix-mx-base/egenix-mx-base-3.2.8.ebuild67
-rw-r--r--dev-python/egenix-mx-base/files/egenix-mx-base-3.2.6-tests.patch34
-rw-r--r--dev-python/egenix-mx-base/metadata.xml5
-rw-r--r--dev-python/egg-python/Manifest1
-rw-r--r--dev-python/egg-python/egg-python-2.25.3-r1.ebuild35
-rw-r--r--dev-python/egg-python/files/egg-python-2.25.3-python-libs.patch59
-rw-r--r--dev-python/egg-python/metadata.xml6
-rw-r--r--dev-python/elasticsearch-curator/Manifest6
-rw-r--r--dev-python/elasticsearch-curator/elasticsearch-curator-2.1.2.ebuild79
-rw-r--r--dev-python/elasticsearch-curator/elasticsearch-curator-3.0.0.ebuild94
-rw-r--r--dev-python/elasticsearch-curator/elasticsearch-curator-3.2.3.ebuild99
-rw-r--r--dev-python/elasticsearch-curator/metadata.xml16
-rw-r--r--dev-python/elasticsearch-py/Manifest3
-rw-r--r--dev-python/elasticsearch-py/elasticsearch-py-1.4.0.ebuild21
-rw-r--r--dev-python/elasticsearch-py/elasticsearch-py-1.5.0.ebuild54
-rw-r--r--dev-python/elasticsearch-py/elasticsearch-py-1.6.0.ebuild55
-rw-r--r--dev-python/elasticsearch-py/metadata.xml16
-rw-r--r--dev-python/elementtree/Manifest1
-rw-r--r--dev-python/elementtree/elementtree-1.2.6-r3.ebuild39
-rw-r--r--dev-python/elementtree/metadata.xml5
-rw-r--r--dev-python/elib-intl/Manifest1
-rw-r--r--dev-python/elib-intl/elib-intl-0_pre20110711.ebuild21
-rw-r--r--dev-python/elib-intl/metadata.xml21
-rw-r--r--dev-python/eliot/Manifest1
-rw-r--r--dev-python/eliot/eliot-0.4.0.ebuild38
-rw-r--r--dev-python/eliot/metadata.xml12
-rw-r--r--dev-python/embedly/Manifest2
-rw-r--r--dev-python/embedly/embedly-0.4.3-r1.ebuild27
-rw-r--r--dev-python/embedly/embedly-0.5.0.ebuild25
-rw-r--r--dev-python/embedly/metadata.xml9
-rw-r--r--dev-python/empy/Manifest2
-rw-r--r--dev-python/empy/empy-3.3-r1.ebuild45
-rw-r--r--dev-python/empy/empy-3.3.2.ebuild40
-rw-r--r--dev-python/empy/metadata.xml5
-rw-r--r--dev-python/enable/Manifest1
-rw-r--r--dev-python/enable/enable-4.4.1.ebuild64
-rw-r--r--dev-python/enable/files/enable-3.3.0-nofreetype.patch127
-rw-r--r--dev-python/enable/files/enable-4-rogue-tests.patch47
-rw-r--r--dev-python/enable/metadata.xml15
-rw-r--r--dev-python/enaml/Manifest2
-rw-r--r--dev-python/enaml/enaml-0.6.8-r1.ebuild57
-rw-r--r--dev-python/enaml/enaml-0.9.8.ebuild60
-rw-r--r--dev-python/enaml/metadata.xml14
-rw-r--r--dev-python/encore/Manifest3
-rw-r--r--dev-python/encore/encore-0.3.ebuild52
-rw-r--r--dev-python/encore/encore-0.4.0.ebuild50
-rw-r--r--dev-python/encore/encore-0.5.1.ebuild37
-rw-r--r--dev-python/encore/files/encore-0.5.1-pypy-tests.patch36
-rw-r--r--dev-python/encore/metadata.xml15
-rw-r--r--dev-python/enum34/Manifest2
-rw-r--r--dev-python/enum34/enum34-1.0.4.ebuild30
-rw-r--r--dev-python/enum34/enum34-1.0.ebuild30
-rw-r--r--dev-python/enum34/metadata.xml14
-rw-r--r--dev-python/envisage/Manifest1
-rw-r--r--dev-python/envisage/envisage-4.4.0.ebuild36
-rw-r--r--dev-python/envisage/metadata.xml18
-rw-r--r--dev-python/envoy/Manifest1
-rw-r--r--dev-python/envoy/envoy-0.0.3.ebuild25
-rw-r--r--dev-python/envoy/files/test_envoy.py52
-rw-r--r--dev-python/envoy/metadata.xml9
-rw-r--r--dev-python/enzyme/Manifest2
-rw-r--r--dev-python/enzyme/enzyme-0.4.1.ebuild42
-rw-r--r--dev-python/enzyme/enzyme-9999.ebuild42
-rw-r--r--dev-python/enzyme/metadata.xml13
-rw-r--r--dev-python/epsilon/Manifest2
-rw-r--r--dev-python/epsilon/epsilon-0.6.0-r2.ebuild47
-rw-r--r--dev-python/epsilon/epsilon-0.7.0.ebuild56
-rw-r--r--dev-python/epsilon/files/epsilon_plugincache_portagesandbox.patch12
-rw-r--r--dev-python/epsilon/metadata.xml12
-rw-r--r--dev-python/epydoc/Manifest1
-rw-r--r--dev-python/epydoc/epydoc-3.0.1-r2.ebuild47
-rw-r--r--dev-python/epydoc/files/epydoc-docutils-0.6.patch27
-rw-r--r--dev-python/epydoc/files/epydoc-python-2.6.patch60
-rw-r--r--dev-python/epydoc/metadata.xml23
-rw-r--r--dev-python/errorhandler/Manifest1
-rw-r--r--dev-python/errorhandler/errorhandler-1.1.1-r2.ebuild50
-rw-r--r--dev-python/errorhandler/files/docs.patch12
-rw-r--r--dev-python/errorhandler/files/errorhandler-1.1.1-test.patch9
-rw-r--r--dev-python/errorhandler/metadata.xml12
-rw-r--r--dev-python/ets/Manifest1
-rw-r--r--dev-python/ets/ets-4.4.1.ebuild40
-rw-r--r--dev-python/ets/metadata.xml20
-rw-r--r--dev-python/etsdevtools/Manifest1
-rw-r--r--dev-python/etsdevtools/etsdevtools-4.0.2-r1.ebuild49
-rw-r--r--dev-python/etsdevtools/metadata.xml30
-rw-r--r--dev-python/etsproxy/Manifest1
-rw-r--r--dev-python/etsproxy/etsproxy-0.1.2-r1.ebuild39
-rw-r--r--dev-python/etsproxy/metadata.xml11
-rw-r--r--dev-python/eunuchs/Manifest1
-rw-r--r--dev-python/eunuchs/eunuchs-20050320.1-r1.ebuild27
-rw-r--r--dev-python/eunuchs/files/eunuchs-20050320.1-python-2.5.patch11
-rw-r--r--dev-python/eunuchs/metadata.xml14
-rw-r--r--dev-python/eventlet/Manifest4
-rw-r--r--dev-python/eventlet/eventlet-0.13.0.ebuild45
-rw-r--r--dev-python/eventlet/eventlet-0.15.2.ebuild63
-rw-r--r--dev-python/eventlet/eventlet-0.17.1.ebuild64
-rw-r--r--dev-python/eventlet/eventlet-0.17.4.ebuild64
-rw-r--r--dev-python/eventlet/metadata.xml9
-rw-r--r--dev-python/execnet/Manifest2
-rw-r--r--dev-python/execnet/execnet-1.2.0-r2.ebuild48
-rw-r--r--dev-python/execnet/execnet-1.3.0.ebuild49
-rw-r--r--dev-python/execnet/files/1.2.0-tests.patch115
-rw-r--r--dev-python/execnet/metadata.xml14
-rw-r--r--dev-python/expects/Manifest5
-rw-r--r--dev-python/expects/expects-0.2.1.ebuild44
-rw-r--r--dev-python/expects/expects-0.4.2.ebuild41
-rw-r--r--dev-python/expects/expects-0.7.1.ebuild38
-rw-r--r--dev-python/expects/expects-0.7.2.ebuild38
-rw-r--r--dev-python/expects/expects-0.8.0_rc1.ebuild40
-rw-r--r--dev-python/expects/metadata.xml14
-rw-r--r--dev-python/extras/Manifest1
-rw-r--r--dev-python/extras/extras-0.0.3.ebuild26
-rw-r--r--dev-python/extras/metadata.xml9
-rw-r--r--dev-python/extremes/Manifest1
-rw-r--r--dev-python/extremes/extremes-1.1.1.ebuild29
-rw-r--r--dev-python/extremes/metadata.xml8
-rw-r--r--dev-python/eyeD3/Manifest1
-rw-r--r--dev-python/eyeD3/eyeD3-0.7.5.ebuild38
-rw-r--r--dev-python/eyeD3/metadata.xml6
-rw-r--r--dev-python/fabric/Manifest3
-rw-r--r--dev-python/fabric/fabric-1.10.0-r1.ebuild67
-rw-r--r--dev-python/fabric/fabric-1.10.1.ebuild63
-rw-r--r--dev-python/fabric/fabric-1.10.2.ebuild63
-rw-r--r--dev-python/fabric/files/doc-extensions.patch13
-rw-r--r--dev-python/fabric/files/fabric-1.4.2-git_tags_docs.patch21
-rw-r--r--dev-python/fabric/metadata.xml8
-rw-r--r--dev-python/falcon/Manifest4
-rw-r--r--dev-python/falcon/falcon-0.1.6.ebuild43
-rw-r--r--dev-python/falcon/falcon-0.1.7.ebuild44
-rw-r--r--dev-python/falcon/falcon-0.1.8.ebuild48
-rw-r--r--dev-python/falcon/falcon-0.1.9.ebuild48
-rw-r--r--dev-python/falcon/metadata.xml14
-rw-r--r--dev-python/feedgenerator/Manifest2
-rw-r--r--dev-python/feedgenerator/feedgenerator-1.6.ebuild31
-rw-r--r--dev-python/feedgenerator/feedgenerator-1.7.ebuild31
-rw-r--r--dev-python/feedgenerator/metadata.xml8
-rw-r--r--dev-python/feedparser/Manifest1
-rw-r--r--dev-python/feedparser/feedparser-5.1.3-r2.ebuild44
-rw-r--r--dev-python/feedparser/files/feedparser-5.0.1-sgmllib.patch26
-rw-r--r--dev-python/feedparser/files/feedparser-5.1-sgmllib.patch78
-rw-r--r--dev-python/feedparser/files/feedparser-5.1.3-backport_fix_for_chardet-py3.patch32
-rw-r--r--dev-python/feedparser/metadata.xml9
-rw-r--r--dev-python/fexpect/Manifest1
-rw-r--r--dev-python/fexpect/fexpect-0.2.ebuild31
-rw-r--r--dev-python/fexpect/metadata.xml11
-rw-r--r--dev-python/figleaf/Manifest1
-rw-r--r--dev-python/figleaf/figleaf-0.6.1-r1.ebuild27
-rw-r--r--dev-python/figleaf/metadata.xml5
-rw-r--r--dev-python/fixtures/Manifest4
-rw-r--r--dev-python/fixtures/fixtures-0.3.14-r2.ebuild31
-rw-r--r--dev-python/fixtures/fixtures-1.2.0.ebuild28
-rw-r--r--dev-python/fixtures/fixtures-1.3.0.ebuild29
-rw-r--r--dev-python/fixtures/fixtures-1.3.1-r1.ebuild31
-rw-r--r--dev-python/fixtures/metadata.xml20
-rw-r--r--dev-python/flake8/Manifest5
-rw-r--r--dev-python/flake8/flake8-2.0-r1.ebuild32
-rw-r--r--dev-python/flake8/flake8-2.1.0.ebuild38
-rw-r--r--dev-python/flake8/flake8-2.2.5.ebuild37
-rw-r--r--dev-python/flake8/flake8-2.4.0-r1.ebuild41
-rw-r--r--dev-python/flake8/flake8-2.4.0.ebuild37
-rw-r--r--dev-python/flake8/flake8-2.4.1.ebuild41
-rw-r--r--dev-python/flake8/metadata.xml9
-rw-r--r--dev-python/flask-admin/Manifest3
-rw-r--r--dev-python/flask-admin/flask-admin-1.0.6.ebuild47
-rw-r--r--dev-python/flask-admin/flask-admin-1.1.0.ebuild54
-rw-r--r--dev-python/flask-admin/flask-admin-1.2.0.ebuild55
-rw-r--r--dev-python/flask-admin/metadata.xml8
-rw-r--r--dev-python/flask-babel/Manifest2
-rw-r--r--dev-python/flask-babel/flask-babel-0.8-r1.ebuild44
-rw-r--r--dev-python/flask-babel/flask-babel-0.9.ebuild34
-rw-r--r--dev-python/flask-babel/metadata.xml8
-rw-r--r--dev-python/flask-cors/Manifest2
-rw-r--r--dev-python/flask-cors/flask-cors-1.8.0.ebuild42
-rw-r--r--dev-python/flask-cors/flask-cors-1.9.0.ebuild69
-rw-r--r--dev-python/flask-cors/metadata.xml17
-rw-r--r--dev-python/flask-dashed/Manifest1
-rw-r--r--dev-python/flask-dashed/flask-dashed-0.1b_p2.ebuild33
-rw-r--r--dev-python/flask-dashed/metadata.xml8
-rw-r--r--dev-python/flask-evolution/Manifest2
-rw-r--r--dev-python/flask-evolution/flask-evolution-0.5-r1.ebuild28
-rw-r--r--dev-python/flask-evolution/flask-evolution-0.6.ebuild28
-rw-r--r--dev-python/flask-evolution/metadata.xml8
-rw-r--r--dev-python/flask-login/Manifest1
-rw-r--r--dev-python/flask-login/flask-login-0.2.11.ebuild25
-rw-r--r--dev-python/flask-login/metadata.xml8
-rw-r--r--dev-python/flask-mail/Manifest2
-rw-r--r--dev-python/flask-mail/flask-mail-0.9.0.ebuild43
-rw-r--r--dev-python/flask-mail/flask-mail-0.9.1.ebuild43
-rw-r--r--dev-python/flask-mail/metadata.xml8
-rw-r--r--dev-python/flask-migrate/Manifest4
-rw-r--r--dev-python/flask-migrate/flask-migrate-1.2.0.ebuild34
-rw-r--r--dev-python/flask-migrate/flask-migrate-1.3.0.ebuild34
-rw-r--r--dev-python/flask-migrate/flask-migrate-1.3.1.ebuild34
-rw-r--r--dev-python/flask-migrate/flask-migrate-1.4.0.ebuild34
-rw-r--r--dev-python/flask-migrate/metadata.xml8
-rw-r--r--dev-python/flask-mongoengine/Manifest2
-rw-r--r--dev-python/flask-mongoengine/flask-mongoengine-0.7.0.ebuild32
-rw-r--r--dev-python/flask-mongoengine/flask-mongoengine-0.7.1.ebuild41
-rw-r--r--dev-python/flask-mongoengine/metadata.xml8
-rw-r--r--dev-python/flask-openid/Manifest2
-rw-r--r--dev-python/flask-openid/flask-openid-1.2.3.ebuild46
-rw-r--r--dev-python/flask-openid/flask-openid-1.2.4.ebuild46
-rw-r--r--dev-python/flask-openid/metadata.xml8
-rw-r--r--dev-python/flask-peewee/Manifest2
-rw-r--r--dev-python/flask-peewee/flask-peewee-0.6.5.ebuild32
-rw-r--r--dev-python/flask-peewee/flask-peewee-0.6.6.ebuild48
-rw-r--r--dev-python/flask-peewee/metadata.xml8
-rw-r--r--dev-python/flask-principal/Manifest1
-rw-r--r--dev-python/flask-principal/flask-principal-0.4.0.ebuild33
-rw-r--r--dev-python/flask-principal/metadata.xml8
-rw-r--r--dev-python/flask-pymongo/Manifest2
-rw-r--r--dev-python/flask-pymongo/files/docbuild.patch16
-rw-r--r--dev-python/flask-pymongo/flask-pymongo-0.3.0.ebuild45
-rw-r--r--dev-python/flask-pymongo/flask-pymongo-0.3.1.ebuild50
-rw-r--r--dev-python/flask-pymongo/metadata.xml13
-rw-r--r--dev-python/flask-restful/Manifest6
-rw-r--r--dev-python/flask-restful/files/flask-restful-0.2.12-tests.patch21
-rw-r--r--dev-python/flask-restful/flask-restful-0.2.12.ebuild52
-rw-r--r--dev-python/flask-restful/flask-restful-0.3.0.ebuild51
-rw-r--r--dev-python/flask-restful/flask-restful-0.3.1.ebuild51
-rw-r--r--dev-python/flask-restful/flask-restful-0.3.2.ebuild51
-rw-r--r--dev-python/flask-restful/flask-restful-0.3.3.ebuild51
-rw-r--r--dev-python/flask-restful/flask-restful-0.3.4.ebuild51
-rw-r--r--dev-python/flask-restful/metadata.xml11
-rw-r--r--dev-python/flask-restless/Manifest3
-rw-r--r--dev-python/flask-restless/files/docbuild.patch57
-rw-r--r--dev-python/flask-restless/files/mapping.patch13
-rw-r--r--dev-python/flask-restless/flask-restless-0.15.0.ebuild60
-rw-r--r--dev-python/flask-restless/flask-restless-0.16.0.ebuild60
-rw-r--r--dev-python/flask-restless/flask-restless-0.17.0.ebuild60
-rw-r--r--dev-python/flask-restless/metadata.xml8
-rw-r--r--dev-python/flask-script/Manifest1
-rw-r--r--dev-python/flask-script/flask-script-2.0.5.ebuild44
-rw-r--r--dev-python/flask-script/metadata.xml8
-rw-r--r--dev-python/flask-security/Manifest1
-rw-r--r--dev-python/flask-security/flask-security-1.7.4.ebuild47
-rw-r--r--dev-python/flask-security/metadata.xml8
-rw-r--r--dev-python/flask-socketio/Manifest1
-rw-r--r--dev-python/flask-socketio/flask-socketio-0.6.0.ebuild32
-rw-r--r--dev-python/flask-socketio/metadata.xml12
-rw-r--r--dev-python/flask-sqlalchemy/Manifest3
-rw-r--r--dev-python/flask-sqlalchemy/files/mapping.patch16
-rw-r--r--dev-python/flask-sqlalchemy/flask-sqlalchemy-0.16-r1.ebuild36
-rw-r--r--dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0-r1.ebuild51
-rw-r--r--dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0.ebuild32
-rw-r--r--dev-python/flask-sqlalchemy/flask-sqlalchemy-2.0.ebuild47
-rw-r--r--dev-python/flask-sqlalchemy/metadata.xml11
-rw-r--r--dev-python/flask-testing/Manifest2
-rw-r--r--dev-python/flask-testing/files/0.4.2-test-fix.patch17
-rw-r--r--dev-python/flask-testing/flask-testing-0.4.1.ebuild36
-rw-r--r--dev-python/flask-testing/flask-testing-0.4.2.ebuild37
-rw-r--r--dev-python/flask-testing/metadata.xml8
-rw-r--r--dev-python/flask-themes/Manifest1
-rw-r--r--dev-python/flask-themes/files/fixtests.patch23
-rw-r--r--dev-python/flask-themes/flask-themes-0.1.3-r1.ebuild35
-rw-r--r--dev-python/flask-themes/metadata.xml8
-rw-r--r--dev-python/flask-uploads/Manifest1
-rw-r--r--dev-python/flask-uploads/flask-uploads-0.1.3.ebuild31
-rw-r--r--dev-python/flask-uploads/metadata.xml8
-rw-r--r--dev-python/flask-whooshalchemy/Manifest2
-rw-r--r--dev-python/flask-whooshalchemy/flask-whooshalchemy-0.55a.ebuild38
-rw-r--r--dev-python/flask-whooshalchemy/flask-whooshalchemy-0.56.ebuild37
-rw-r--r--dev-python/flask-whooshalchemy/metadata.xml9
-rw-r--r--dev-python/flask-wtf/Manifest4
-rw-r--r--dev-python/flask-wtf/flask-wtf-0.10.2.ebuild52
-rw-r--r--dev-python/flask-wtf/flask-wtf-0.10.3.ebuild52
-rw-r--r--dev-python/flask-wtf/flask-wtf-0.11.ebuild52
-rw-r--r--dev-python/flask-wtf/flask-wtf-0.12.ebuild52
-rw-r--r--dev-python/flask-wtf/metadata.xml8
-rw-r--r--dev-python/flask-xml-rpc/Manifest1
-rw-r--r--dev-python/flask-xml-rpc/flask-xml-rpc-0.1.2-r1.ebuild30
-rw-r--r--dev-python/flask-xml-rpc/metadata.xml8
-rw-r--r--dev-python/flask/Manifest1
-rw-r--r--dev-python/flask/files/flask-0.10.1-is_package.patch13
-rw-r--r--dev-python/flask/files/flask-0.10.1-sort_json.patch54
-rw-r--r--dev-python/flask/files/flask-0.10.1-test_appcontext.patch14
-rw-r--r--dev-python/flask/flask-0.10.1-r1.ebuild43
-rw-r--r--dev-python/flask/flask-0.10.1-r2.ebuild57
-rw-r--r--dev-python/flask/flask-9999.ebuild45
-rw-r--r--dev-python/flask/metadata.xml8
-rw-r--r--dev-python/flup/Manifest1
-rw-r--r--dev-python/flup/flup-1.0.2-r1.ebuild21
-rw-r--r--dev-python/flup/metadata.xml5
-rw-r--r--dev-python/fonttools/Manifest2
-rw-r--r--dev-python/fonttools/fonttools-2.4.ebuild28
-rw-r--r--dev-python/fonttools/fonttools-2.5.ebuild28
-rw-r--r--dev-python/fonttools/metadata.xml10
-rw-r--r--dev-python/foolscap/Manifest3
-rw-r--r--dev-python/foolscap/foolscap-0.6.4-r1.ebuild38
-rw-r--r--dev-python/foolscap/foolscap-0.7.0.ebuild37
-rw-r--r--dev-python/foolscap/foolscap-0.8.0.ebuild56
-rw-r--r--dev-python/foolscap/metadata.xml25
-rw-r--r--dev-python/formencode/Manifest2
-rw-r--r--dev-python/formencode/formencode-1.2.4.ebuild29
-rw-r--r--dev-python/formencode/formencode-1.3.0-r1.ebuild45
-rw-r--r--dev-python/formencode/metadata.xml8
-rw-r--r--dev-python/fpconst/Manifest1
-rw-r--r--dev-python/fpconst/fpconst-0.7.3-r1.ebuild27
-rw-r--r--dev-python/fpconst/metadata.xml8
-rw-r--r--dev-python/freezegun/Manifest1
-rw-r--r--dev-python/freezegun/freezegun-0.3.5.ebuild25
-rw-r--r--dev-python/freezegun/metadata.xml13
-rw-r--r--dev-python/frozen-flask/Manifest1
-rw-r--r--dev-python/frozen-flask/frozen-flask-0.11-r1.ebuild44
-rw-r--r--dev-python/frozen-flask/metadata.xml9
-rw-r--r--dev-python/fudge/Manifest3
-rw-r--r--dev-python/fudge/fudge-0.9.6-r1.ebuild40
-rw-r--r--dev-python/fudge/fudge-1.0.3-r2.ebuild41
-rw-r--r--dev-python/fudge/fudge-1.1.0.ebuild36
-rw-r--r--dev-python/fudge/metadata.xml8
-rw-r--r--dev-python/funcparserlib/Manifest1
-rw-r--r--dev-python/funcparserlib/funcparserlib-0.3.6.ebuild32
-rw-r--r--dev-python/funcparserlib/metadata.xml8
-rw-r--r--dev-python/funcsigs/Manifest1
-rw-r--r--dev-python/funcsigs/funcsigs-0.4.ebuild27
-rw-r--r--dev-python/funcsigs/metadata.xml11
-rw-r--r--dev-python/functest/Manifest1
-rw-r--r--dev-python/functest/functest-0.8.8-r1.ebuild30
-rw-r--r--dev-python/functest/metadata.xml8
-rw-r--r--dev-python/fuse-python/Manifest1
-rw-r--r--dev-python/fuse-python/fuse-python-0.2.1-r1.ebuild21
-rw-r--r--dev-python/fuse-python/metadata.xml10
-rw-r--r--dev-python/fusil/Manifest1
-rw-r--r--dev-python/fusil/files/1.4-python25.patch12
-rw-r--r--dev-python/fusil/fusil-1.5.ebuild37
-rw-r--r--dev-python/fusil/metadata.xml9
-rw-r--r--dev-python/futures/Manifest3
-rw-r--r--dev-python/futures/futures-2.2.0.ebuild39
-rw-r--r--dev-python/futures/futures-3.0.2.ebuild39
-rw-r--r--dev-python/futures/futures-3.0.3.ebuild39
-rw-r--r--dev-python/futures/metadata.xml8
-rw-r--r--dev-python/gconf-python/Manifest1
-rw-r--r--dev-python/gconf-python/gconf-python-2.28.1-r1.ebuild23
-rw-r--r--dev-python/gconf-python/metadata.xml6
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/Manifest3
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.7-use-friendy-version-checks.patch13
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.8-use-friendy-version-checks.patch13
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.7.ebuild33
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8-r1.ebuild32
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8.ebuild32
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.9.ebuild32
-rw-r--r--dev-python/gcs-oauth2-boto-plugin/metadata.xml8
-rw-r--r--dev-python/gdata/Manifest3
-rw-r--r--dev-python/gdata/gdata-2.0.14.ebuild48
-rw-r--r--dev-python/gdata/gdata-2.0.17-r1.ebuild32
-rw-r--r--dev-python/gdata/gdata-2.0.18.ebuild28
-rw-r--r--dev-python/gdata/metadata.xml8
-rw-r--r--dev-python/gdmodule/Manifest1
-rw-r--r--dev-python/gdmodule/files/gdmodule-0.56-fix-libs.patch116
-rw-r--r--dev-python/gdmodule/gdmodule-0.56-r2.ebuild42
-rw-r--r--dev-python/gdmodule/metadata.xml11
-rw-r--r--dev-python/genshi/Manifest1
-rw-r--r--dev-python/genshi/files/genshi-0.6-html_test.patch37
-rw-r--r--dev-python/genshi/genshi-0.7.ebuild40
-rw-r--r--dev-python/genshi/metadata.xml5
-rw-r--r--dev-python/geoip-python/Manifest1
-rw-r--r--dev-python/geoip-python/geoip-python-1.3.2.ebuild44
-rw-r--r--dev-python/geoip-python/metadata.xml8
-rw-r--r--dev-python/geopy/Manifest3
-rw-r--r--dev-python/geopy/files/1.1.3-formatpy3.patch15
-rw-r--r--dev-python/geopy/files/1.1.3-tests-env-vars.patch198
-rw-r--r--dev-python/geopy/files/1.1.3-version-compat.patch12
-rw-r--r--dev-python/geopy/geopy-1.10.0.ebuild63
-rw-r--r--dev-python/geopy/geopy-1.8.1.ebuild60
-rw-r--r--dev-python/geopy/geopy-1.9.1.ebuild63
-rw-r--r--dev-python/geopy/metadata.xml14
-rw-r--r--dev-python/gevent-socketio/Manifest2
-rw-r--r--dev-python/gevent-socketio/gevent-socketio-0.3.5_rc2-r1.ebuild28
-rw-r--r--dev-python/gevent-socketio/gevent-socketio-0.3.6.ebuild29
-rw-r--r--dev-python/gevent-socketio/metadata.xml20
-rw-r--r--dev-python/gevent-websocket/Manifest2
-rw-r--r--dev-python/gevent-websocket/gevent-websocket-0.9.3.ebuild21
-rw-r--r--dev-python/gevent-websocket/gevent-websocket-0.9.5.ebuild21
-rw-r--r--dev-python/gevent-websocket/metadata.xml22
-rw-r--r--dev-python/gevent/Manifest3
-rw-r--r--dev-python/gevent/gevent-1.0.1.ebuild66
-rw-r--r--dev-python/gevent/gevent-1.0.2.ebuild66
-rw-r--r--dev-python/gevent/gevent-1.0.ebuild66
-rw-r--r--dev-python/gevent/metadata.xml12
-rw-r--r--dev-python/ghp-import/Manifest1
-rw-r--r--dev-python/ghp-import/ghp-import-0.4.1-r1.ebuild33
-rw-r--r--dev-python/ghp-import/ghp-import-0.4.1.ebuild20
-rw-r--r--dev-python/ghp-import/metadata.xml14
-rw-r--r--dev-python/git-python/Manifest3
-rw-r--r--dev-python/git-python/git-python-0.3.6.ebuild39
-rw-r--r--dev-python/git-python/git-python-1.0.0.ebuild39
-rw-r--r--dev-python/git-python/git-python-1.0.1.ebuild39
-rw-r--r--dev-python/git-python/metadata.xml9
-rw-r--r--dev-python/git-review/Manifest1
-rw-r--r--dev-python/git-review/git-review-1.24.ebuild25
-rw-r--r--dev-python/git-review/metadata.xml13
-rw-r--r--dev-python/gitdb/Manifest2
-rw-r--r--dev-python/gitdb/gitdb-0.6.3.ebuild30
-rw-r--r--dev-python/gitdb/gitdb-0.6.4.ebuild30
-rw-r--r--dev-python/gitdb/metadata.xml9
-rw-r--r--dev-python/glance_store/Manifest4
-rw-r--r--dev-python/glance_store/glance_store-0.1.10.ebuild34
-rw-r--r--dev-python/glance_store/glance_store-0.4.0.ebuild42
-rw-r--r--dev-python/glance_store/glance_store-0.5.0.ebuild42
-rw-r--r--dev-python/glance_store/glance_store-0.6.0.ebuild42
-rw-r--r--dev-python/glance_store/metadata.xml16
-rw-r--r--dev-python/globre/Manifest1
-rw-r--r--dev-python/globre/globre-0.1.2-r1.ebuild36
-rw-r--r--dev-python/globre/metadata.xml12
-rw-r--r--dev-python/gmpy/Manifest2
-rw-r--r--dev-python/gmpy/gmpy-2.0.4.ebuild60
-rw-r--r--dev-python/gmpy/gmpy-2.0.6.ebuild69
-rw-r--r--dev-python/gmpy/metadata.xml17
-rw-r--r--dev-python/gnome-keyring-python/Manifest1
-rw-r--r--dev-python/gnome-keyring-python/gnome-keyring-python-2.32.0-r1.ebuild23
-rw-r--r--dev-python/gnome-keyring-python/metadata.xml5
-rw-r--r--dev-python/gnome-python-base/Manifest1
-rw-r--r--dev-python/gnome-python-base/gnome-python-base-2.28.1-r1.ebuild42
-rw-r--r--dev-python/gnome-python-base/metadata.xml6
-rw-r--r--dev-python/gnome-python-desktop-base/Manifest1
-rw-r--r--dev-python/gnome-python-desktop-base/gnome-python-desktop-base-2.32.0-r1.ebuild44
-rw-r--r--dev-python/gnome-python-desktop-base/metadata.xml5
-rw-r--r--dev-python/gnome-python-extras-base/Manifest1
-rw-r--r--dev-python/gnome-python-extras-base/files/gnome-python-extras-base-2.25.3-python-libs.patch59
-rw-r--r--dev-python/gnome-python-extras-base/gnome-python-extras-base-2.25.3-r1.ebuild48
-rw-r--r--dev-python/gnome-python-extras-base/metadata.xml6
-rw-r--r--dev-python/gnome-vfs-python/Manifest1
-rw-r--r--dev-python/gnome-vfs-python/gnome-vfs-python-2.28.1-r1.ebuild25
-rw-r--r--dev-python/gnome-vfs-python/metadata.xml6
-rw-r--r--dev-python/gntp/Manifest1
-rw-r--r--dev-python/gntp/gntp-1.0.1.ebuild20
-rw-r--r--dev-python/gntp/metadata.xml12
-rw-r--r--dev-python/gnuplot-py/Manifest1
-rw-r--r--dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch75
-rw-r--r--dev-python/gnuplot-py/gnuplot-py-1.8-r1.ebuild33
-rw-r--r--dev-python/gnuplot-py/metadata.xml18
-rw-r--r--dev-python/google-api-python-client/Manifest2
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-1.1.ebuild26
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-1.3.1.ebuild37
-rw-r--r--dev-python/google-api-python-client/metadata.xml11
-rw-r--r--dev-python/google-apitools/Manifest2
-rw-r--r--dev-python/google-apitools/google-apitools-0.4.6.ebuild29
-rw-r--r--dev-python/google-apitools/google-apitools-0.4.8.ebuild29
-rw-r--r--dev-python/google-apitools/metadata.xml8
-rw-r--r--dev-python/google-apputils/Manifest2
-rw-r--r--dev-python/google-apputils/google-apputils-0.4.0.ebuild43
-rw-r--r--dev-python/google-apputils/google-apputils-0.4.2.ebuild33
-rw-r--r--dev-python/google-apputils/metadata.xml9
-rw-r--r--dev-python/graph-tool/Manifest6
-rw-r--r--dev-python/graph-tool/graph-tool-2.2.36-r1.ebuild91
-rw-r--r--dev-python/graph-tool/graph-tool-2.2.36.ebuild85
-rw-r--r--dev-python/graph-tool/graph-tool-2.2.38.ebuild91
-rw-r--r--dev-python/graph-tool/graph-tool-2.2.40.ebuild92
-rw-r--r--dev-python/graph-tool/graph-tool-2.2.42.ebuild92
-rw-r--r--dev-python/graph-tool/graph-tool-2.2.43.ebuild92
-rw-r--r--dev-python/graph-tool/graph-tool-2.2.44.ebuild92
-rw-r--r--dev-python/graph-tool/graph-tool-9999.ebuild91
-rw-r--r--dev-python/graph-tool/metadata.xml5
-rw-r--r--dev-python/graphcanvas/Manifest1
-rw-r--r--dev-python/graphcanvas/graphcanvas-4.0.2-r1.ebuild31
-rw-r--r--dev-python/graphcanvas/metadata.xml5
-rw-r--r--dev-python/graphy/Manifest1
-rw-r--r--dev-python/graphy/graphy-1.0-r1.ebuild50
-rw-r--r--dev-python/graphy/metadata.xml8
-rw-r--r--dev-python/greenlet/Manifest6
-rw-r--r--dev-python/greenlet/greenlet-0.4.2.ebuild46
-rw-r--r--dev-python/greenlet/greenlet-0.4.3.ebuild46
-rw-r--r--dev-python/greenlet/greenlet-0.4.4.ebuild46
-rw-r--r--dev-python/greenlet/greenlet-0.4.5.ebuild46
-rw-r--r--dev-python/greenlet/greenlet-0.4.6.ebuild48
-rw-r--r--dev-python/greenlet/greenlet-0.4.7.ebuild48
-rw-r--r--dev-python/greenlet/metadata.xml8
-rw-r--r--dev-python/gst-python/Manifest3
-rw-r--r--dev-python/gst-python/files/gst-python-0.10.9-lazy.patch21
-rw-r--r--dev-python/gst-python/gst-python-0.10.22-r1.ebuild88
-rw-r--r--dev-python/gst-python/gst-python-1.2.1.ebuild58
-rw-r--r--dev-python/gst-python/gst-python-1.4.0.ebuild49
-rw-r--r--dev-python/gst-python/metadata.xml5
-rw-r--r--dev-python/gtkspell-python/Manifest1
-rw-r--r--dev-python/gtkspell-python/files/gtkspell-python-2.25.3-python-libs.patch59
-rw-r--r--dev-python/gtkspell-python/gtkspell-python-2.25.3-r1.ebuild33
-rw-r--r--dev-python/gtkspell-python/metadata.xml6
-rw-r--r--dev-python/guessit/Manifest4
-rw-r--r--dev-python/guessit/files/guessit-0.5.4-python3.patch30
-rw-r--r--dev-python/guessit/files/guessit-0.5.4-tests.patch172
-rw-r--r--dev-python/guessit/guessit-0.5.4.ebuild38
-rw-r--r--dev-python/guessit/guessit-0.6.2.ebuild30
-rw-r--r--dev-python/guessit/guessit-0.7.1.ebuild32
-rw-r--r--dev-python/guessit/guessit-0.9.3.ebuild34
-rw-r--r--dev-python/guessit/guessit-9999.ebuild34
-rw-r--r--dev-python/guessit/metadata.xml13
-rw-r--r--dev-python/guppy/Manifest1
-rw-r--r--dev-python/guppy/files/guppy-0.1.9-rm_BrokenTests.patch57
-rw-r--r--dev-python/guppy/guppy-0.1.10-r1.ebuild49
-rw-r--r--dev-python/guppy/metadata.xml13
-rw-r--r--dev-python/guzzle_sphinx_theme/Manifest1
-rw-r--r--dev-python/guzzle_sphinx_theme/guzzle_sphinx_theme-0.7.10.ebuild20
-rw-r--r--dev-python/guzzle_sphinx_theme/metadata.xml14
-rw-r--r--dev-python/h5py/Manifest3
-rw-r--r--dev-python/h5py/h5py-2.3.1.ebuild54
-rw-r--r--dev-python/h5py/h5py-2.4.0.ebuild50
-rw-r--r--dev-python/h5py/h5py-2.5.0.ebuild66
-rw-r--r--dev-python/h5py/metadata.xml19
-rw-r--r--dev-python/hachoir-core/Manifest1
-rw-r--r--dev-python/hachoir-core/hachoir-core-1.3.3-r1.ebuild29
-rw-r--r--dev-python/hachoir-core/metadata.xml13
-rw-r--r--dev-python/hachoir-parser/Manifest1
-rw-r--r--dev-python/hachoir-parser/hachoir-parser-1.3.4-r1.ebuild26
-rw-r--r--dev-python/hachoir-parser/metadata.xml12
-rw-r--r--dev-python/hachoir-regex/Manifest1
-rw-r--r--dev-python/hachoir-regex/hachoir-regex-1.0.5-r1.ebuild31
-rw-r--r--dev-python/hachoir-regex/metadata.xml11
-rw-r--r--dev-python/hacking/Manifest6
-rw-r--r--dev-python/hacking/hacking-0.10.1.ebuild71
-rw-r--r--dev-python/hacking/hacking-0.10.2.ebuild71
-rw-r--r--dev-python/hacking/hacking-0.8.1.ebuild61
-rw-r--r--dev-python/hacking/hacking-0.9.2.ebuild61
-rw-r--r--dev-python/hacking/hacking-0.9.5.ebuild60
-rw-r--r--dev-python/hacking/hacking-0.9.6.ebuild60
-rw-r--r--dev-python/hacking/metadata.xml18
-rw-r--r--dev-python/happydoc/Manifest1
-rw-r--r--dev-python/happydoc/files/happydoc-3.1-python-2.6.patch28
-rw-r--r--dev-python/happydoc/files/happydoc-3.1-setup.py158
-rw-r--r--dev-python/happydoc/happydoc-3.1-r2.ebuild40
-rw-r--r--dev-python/happydoc/metadata.xml8
-rw-r--r--dev-python/hcluster/Manifest1
-rw-r--r--dev-python/hcluster/hcluster-0.2.0-r1.ebuild24
-rw-r--r--dev-python/hcluster/metadata.xml18
-rw-r--r--dev-python/hcs-utils/Manifest2
-rw-r--r--dev-python/hcs-utils/hcs-utils-1.4.ebuild30
-rw-r--r--dev-python/hcs-utils/hcs-utils-1.5.ebuild30
-rw-r--r--dev-python/hcs-utils/metadata.xml14
-rw-r--r--dev-python/hgdistver/Manifest2
-rw-r--r--dev-python/hgdistver/hgdistver-0.22.ebuild25
-rw-r--r--dev-python/hgdistver/hgdistver-0.25.ebuild25
-rw-r--r--dev-python/hgdistver/metadata.xml9
-rw-r--r--dev-python/hglib/Manifest2
-rw-r--r--dev-python/hglib/files/hglib-0.3-tests.patch63
-rw-r--r--dev-python/hglib/files/hglib-0.9-pypy-tests.patch86
-rw-r--r--dev-python/hglib/hglib-1.0.ebuild40
-rw-r--r--dev-python/hglib/hglib-1.5.ebuild38
-rw-r--r--dev-python/hglib/metadata.xml16
-rw-r--r--dev-python/hgtools/Manifest2
-rw-r--r--dev-python/hgtools/files/hgtools-doctest-2.0.2.patch11
-rw-r--r--dev-python/hgtools/hgtools-6.0.ebuild28
-rw-r--r--dev-python/hgtools/hgtools-6.3.ebuild30
-rw-r--r--dev-python/hgtools/metadata.xml16
-rw-r--r--dev-python/hiredis/Manifest2
-rw-r--r--dev-python/hiredis/files/hiredis-0.1.1-system-libs.patch25
-rw-r--r--dev-python/hiredis/files/hiredis-0.2.0-system-libs.patch28
-rw-r--r--dev-python/hiredis/hiredis-0.1.1-r2.ebuild23
-rw-r--r--dev-python/hiredis/hiredis-0.2.0.ebuild29
-rw-r--r--dev-python/hiredis/metadata.xml13
-rw-r--r--dev-python/hp3parclient/Manifest2
-rw-r--r--dev-python/hp3parclient/hp3parclient-2.0.0.ebuild35
-rw-r--r--dev-python/hp3parclient/hp3parclient-3.0.0.ebuild37
-rw-r--r--dev-python/hp3parclient/metadata.xml8
-rw-r--r--dev-python/html2text/Manifest1
-rw-r--r--dev-python/html2text/files/html2text-noinstall-test.patch35
-rw-r--r--dev-python/html2text/files/html2text-rename.patch15
-rw-r--r--dev-python/html2text/html2text-2014.4.5-r1.ebuild30
-rw-r--r--dev-python/html2text/metadata.xml8
-rw-r--r--dev-python/html5lib/Manifest3
-rw-r--r--dev-python/html5lib/html5lib-0.999.ebuild27
-rw-r--r--dev-python/html5lib/html5lib-0.99999.ebuild28
-rw-r--r--dev-python/html5lib/html5lib-0.999999.ebuild28
-rw-r--r--dev-python/html5lib/metadata.xml14
-rw-r--r--dev-python/htmlgen/Manifest1
-rw-r--r--dev-python/htmlgen/files/htmlgen-2.2.2-python-2.5.patch145
-rw-r--r--dev-python/htmlgen/files/htmlgen-pillow.patch53
-rw-r--r--dev-python/htmlgen/htmlgen-2.2.2-r1.ebuild60
-rw-r--r--dev-python/htmlgen/metadata.xml5
-rw-r--r--dev-python/httmock/Manifest1
-rw-r--r--dev-python/httmock/httmock-1.2.2.ebuild25
-rw-r--r--dev-python/httmock/metadata.xml16
-rw-r--r--dev-python/http-parser/Manifest1
-rw-r--r--dev-python/http-parser/files/http-parser-0.7.8-setup.patch22
-rw-r--r--dev-python/http-parser/http-parser-0.8.3.ebuild45
-rw-r--r--dev-python/http-parser/metadata.xml9
-rw-r--r--dev-python/httplib2/Manifest2
-rw-r--r--dev-python/httplib2/httplib2-0.8.ebuild33
-rw-r--r--dev-python/httplib2/httplib2-0.9.1.ebuild33
-rw-r--r--dev-python/httplib2/metadata.xml10
-rw-r--r--dev-python/httpretty/Manifest4
-rw-r--r--dev-python/httpretty/files/httpretty-0.7.0-deps.patch68
-rw-r--r--dev-python/httpretty/httpretty-0.7.0.ebuild52
-rw-r--r--dev-python/httpretty/httpretty-0.7.1.ebuild47
-rw-r--r--dev-python/httpretty/httpretty-0.8.0-r1.ebuild66
-rw-r--r--dev-python/httpretty/httpretty-0.8.0.ebuild46
-rw-r--r--dev-python/httpretty/httpretty-0.8.10.ebuild66
-rw-r--r--dev-python/httpretty/metadata.xml9
-rw-r--r--dev-python/humanfriendly/Manifest6
-rw-r--r--dev-python/humanfriendly/humanfriendly-1.25.ebuild26
-rw-r--r--dev-python/humanfriendly/humanfriendly-1.26.ebuild26
-rw-r--r--dev-python/humanfriendly/humanfriendly-1.27.ebuild26
-rw-r--r--dev-python/humanfriendly/humanfriendly-1.29.ebuild26
-rw-r--r--dev-python/humanfriendly/humanfriendly-1.31.ebuild26
-rw-r--r--dev-python/humanfriendly/humanfriendly-1.33.ebuild26
-rw-r--r--dev-python/humanfriendly/metadata.xml12
-rw-r--r--dev-python/hypothesis/Manifest2
-rw-r--r--dev-python/hypothesis/hypothesis-1.7.1.ebuild20
-rw-r--r--dev-python/hypothesis/hypothesis-1.9.0.ebuild20
-rw-r--r--dev-python/hypothesis/metadata.xml9
-rw-r--r--dev-python/icalendar/Manifest2
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch22
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch30
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch33
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch22
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch30
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch37
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch17
-rw-r--r--dev-python/icalendar/icalendar-3.8.4.ebuild44
-rw-r--r--dev-python/icalendar/icalendar-3.9.0.ebuild51
-rw-r--r--dev-python/icalendar/metadata.xml12
-rw-r--r--dev-python/iconvcodec/Manifest1
-rw-r--r--dev-python/iconvcodec/iconvcodec-1.1.2-r1.ebuild24
-rw-r--r--dev-python/iconvcodec/metadata.xml5
-rw-r--r--dev-python/id3-py/Manifest1
-rw-r--r--dev-python/id3-py/id3-py-1.2-r1.ebuild17
-rw-r--r--dev-python/id3-py/id3-py-1.2.ebuild22
-rw-r--r--dev-python/id3-py/metadata.xml8
-rw-r--r--dev-python/idna/Manifest2
-rw-r--r--dev-python/idna/idna-1.1.ebuild24
-rw-r--r--dev-python/idna/idna-2.0.ebuild24
-rw-r--r--dev-python/idna/metadata.xml13
-rw-r--r--dev-python/ijson/Manifest4
-rw-r--r--dev-python/ijson/ijson-1.1.ebuild20
-rw-r--r--dev-python/ijson/ijson-2.0.ebuild20
-rw-r--r--dev-python/ijson/ijson-2.1.ebuild20
-rw-r--r--dev-python/ijson/ijson-2.2.ebuild24
-rw-r--r--dev-python/ijson/metadata.xml9
-rw-r--r--dev-python/imaging/Manifest1
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-dont-run-multiple-viewers.patch10
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-ft-header-include.patch20
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-giftrans.patch14
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-missing-math.patch20
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-no-host-paths.patch29
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-no-xv.patch18
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-nolcms.patch13
-rw-r--r--dev-python/imaging/files/imaging-1.1.7-sane.patch13
-rw-r--r--dev-python/imaging/imaging-1.1.7-r5.ebuild106
-rw-r--r--dev-python/imaging/metadata.xml5
-rw-r--r--dev-python/imapclient/Manifest2
-rw-r--r--dev-python/imapclient/files/0.12-tests.patch36
-rw-r--r--dev-python/imapclient/imapclient-0.12.ebuild63
-rw-r--r--dev-python/imapclient/imapclient-0.13.ebuild63
-rw-r--r--dev-python/imapclient/metadata.xml8
-rw-r--r--dev-python/imdbpy/Manifest2
-rw-r--r--dev-python/imdbpy/files/imdbpy-4.6-data_location.patch11
-rw-r--r--dev-python/imdbpy/imdbpy-4.9-r1.ebuild42
-rw-r--r--dev-python/imdbpy/imdbpy-5.0.ebuild42
-rw-r--r--dev-python/imdbpy/metadata.xml8
-rw-r--r--dev-python/importing/Manifest1
-rw-r--r--dev-python/importing/importing-1.10.ebuild25
-rw-r--r--dev-python/importing/metadata.xml8
-rw-r--r--dev-python/iniparse/Manifest1
-rw-r--r--dev-python/iniparse/iniparse-0.4-r1.ebuild24
-rw-r--r--dev-python/iniparse/metadata.xml8
-rw-r--r--dev-python/inotifyx/Manifest2
-rw-r--r--dev-python/inotifyx/inotifyx-0.2.0-r1.ebuild28
-rw-r--r--dev-python/inotifyx/inotifyx-0.2.2.ebuild28
-rw-r--r--dev-python/inotifyx/metadata.xml11
-rw-r--r--dev-python/into/Manifest3
-rw-r--r--dev-python/into/into-0.1.3.ebuild19
-rw-r--r--dev-python/into/into-0.2.1.ebuild26
-rw-r--r--dev-python/into/into-0.2.2.ebuild26
-rw-r--r--dev-python/into/metadata.xml8
-rw-r--r--dev-python/ioflo/Manifest2
-rw-r--r--dev-python/ioflo/ioflo-1.0.2.ebuild25
-rw-r--r--dev-python/ioflo/ioflo-1.2.1.ebuild23
-rw-r--r--dev-python/ioflo/metadata.xml12
-rw-r--r--dev-python/ipaddr/Manifest2
-rw-r--r--dev-python/ipaddr/ipaddr-2.1.10-r1.ebuild35
-rw-r--r--dev-python/ipaddr/ipaddr-2.1.11.ebuild32
-rw-r--r--dev-python/ipaddr/metadata.xml17
-rw-r--r--dev-python/ipaddress/Manifest3
-rw-r--r--dev-python/ipaddress/ipaddress-1.0.12.ebuild21
-rw-r--r--dev-python/ipaddress/ipaddress-1.0.14.ebuild25
-rw-r--r--dev-python/ipaddress/ipaddress-1.0.7.ebuild21
-rw-r--r--dev-python/ipaddress/metadata.xml13
-rw-r--r--dev-python/ipcalc/Manifest4
-rw-r--r--dev-python/ipcalc/ipcalc-1.0.0.ebuild17
-rw-r--r--dev-python/ipcalc/ipcalc-1.1.1.ebuild17
-rw-r--r--dev-python/ipcalc/ipcalc-1.1.2.ebuild17
-rw-r--r--dev-python/ipcalc/ipcalc-1.1.3.ebuild17
-rw-r--r--dev-python/ipcalc/metadata.xml12
-rw-r--r--dev-python/ipdb/Manifest2
-rw-r--r--dev-python/ipdb/ipdb-0.8.1.ebuild28
-rw-r--r--dev-python/ipdb/ipdb-0.8.ebuild27
-rw-r--r--dev-python/ipdb/metadata.xml8
-rw-r--r--dev-python/ipdbplugin/Manifest1
-rw-r--r--dev-python/ipdbplugin/ipdbplugin-1.4.ebuild30
-rw-r--r--dev-python/ipdbplugin/ipdbplugin-9999.ebuild30
-rw-r--r--dev-python/ipdbplugin/metadata.xml10
-rw-r--r--dev-python/ipy/Manifest2
-rw-r--r--dev-python/ipy/ipy-0.82a.ebuild41
-rw-r--r--dev-python/ipy/ipy-0.83.ebuild40
-rw-r--r--dev-python/ipy/metadata.xml9
-rw-r--r--dev-python/ipython/Manifest3
-rw-r--r--dev-python/ipython/files/2.1.0-disable-tests.patch32
-rw-r--r--dev-python/ipython/files/2.1.0-substitute-files.patch27
-rw-r--r--dev-python/ipython/files/ipython-2.2.0-login-backport.patch35
-rw-r--r--dev-python/ipython/ipython-2.2.0-r1.ebuild137
-rw-r--r--dev-python/ipython/ipython-3.2.0.ebuild155
-rw-r--r--dev-python/ipython/ipython-3.2.1.ebuild151
-rw-r--r--dev-python/ipython/metadata.xml52
-rw-r--r--dev-python/irc/Manifest1
-rw-r--r--dev-python/irc/irc-11.0.1.ebuild41
-rw-r--r--dev-python/irc/metadata.xml13
-rw-r--r--dev-python/irman-python/Manifest1
-rw-r--r--dev-python/irman-python/irman-python-0.1-r1.ebuild21
-rw-r--r--dev-python/irman-python/metadata.xml5
-rw-r--r--dev-python/iso8601/Manifest1
-rw-r--r--dev-python/iso8601/iso8601-0.1.10.ebuild24
-rw-r--r--dev-python/iso8601/metadata.xml8
-rw-r--r--dev-python/isodate/Manifest2
-rw-r--r--dev-python/isodate/isodate-0.5.0.ebuild33
-rw-r--r--dev-python/isodate/isodate-0.5.1.ebuild33
-rw-r--r--dev-python/isodate/metadata.xml21
-rw-r--r--dev-python/itsdangerous/Manifest4
-rw-r--r--dev-python/itsdangerous/itsdangerous-0.21.ebuild20
-rw-r--r--dev-python/itsdangerous/itsdangerous-0.22.ebuild18
-rw-r--r--dev-python/itsdangerous/itsdangerous-0.23.ebuild28
-rw-r--r--dev-python/itsdangerous/itsdangerous-0.24.ebuild28
-rw-r--r--dev-python/itsdangerous/metadata.xml8
-rw-r--r--dev-python/jaraco-utils/Manifest1
-rw-r--r--dev-python/jaraco-utils/jaraco-utils-10.0.2.ebuild32
-rw-r--r--dev-python/jaraco-utils/metadata.xml8
-rw-r--r--dev-python/jaxml/Manifest1
-rw-r--r--dev-python/jaxml/jaxml-3.02-r1.ebuild20
-rw-r--r--dev-python/jaxml/metadata.xml8
-rw-r--r--dev-python/jdcal/Manifest1
-rw-r--r--dev-python/jdcal/jdcal-1.0.ebuild17
-rw-r--r--dev-python/jdcal/metadata.xml9
-rw-r--r--dev-python/jedi/Manifest2
-rw-r--r--dev-python/jedi/jedi-0.8.1-r2.ebuild43
-rw-r--r--dev-python/jedi/jedi-0.9.0.ebuild40
-rw-r--r--dev-python/jedi/metadata.xml9
-rw-r--r--dev-python/jellyfish/Manifest1
-rw-r--r--dev-python/jellyfish/jellyfish-0.5.1.ebuild17
-rw-r--r--dev-python/jellyfish/metadata.xml10
-rw-r--r--dev-python/jenkins-autojobs/Manifest3
-rw-r--r--dev-python/jenkins-autojobs/files/local_jenkins.patch26
-rw-r--r--dev-python/jenkins-autojobs/jenkins-autojobs-0.14.3.ebuild68
-rw-r--r--dev-python/jenkins-autojobs/metadata.xml16
-rw-r--r--dev-python/jenkins-webapi/Manifest2
-rw-r--r--dev-python/jenkins-webapi/files/local_jenkins_war.patch12
-rw-r--r--dev-python/jenkins-webapi/files/tests_py27.patch7
-rw-r--r--dev-python/jenkins-webapi/jenkins-webapi-0.3.2.ebuild50
-rw-r--r--dev-python/jenkins-webapi/jenkins-webapi-0.4.0-r1.ebuild47
-rw-r--r--dev-python/jenkins-webapi/metadata.xml16
-rw-r--r--dev-python/jenkinsapi/Manifest1
-rw-r--r--dev-python/jenkinsapi/files/local_jenkins_war.patch12
-rw-r--r--dev-python/jenkinsapi/jenkinsapi-0.2.26.ebuild37
-rw-r--r--dev-python/jenkinsapi/metadata.xml16
-rw-r--r--dev-python/jingo/Manifest2
-rw-r--r--dev-python/jingo/jingo-0.7.1.ebuild20
-rw-r--r--dev-python/jingo/jingo-0.7.ebuild20
-rw-r--r--dev-python/jingo/metadata.xml9
-rw-r--r--dev-python/jinja/Manifest2
-rw-r--r--dev-python/jinja/files/jinja-2.6-python3.3.patch15
-rw-r--r--dev-python/jinja/files/jinja-2.7-docs.patch53
-rw-r--r--dev-python/jinja/jinja-2.7.3.ebuild73
-rw-r--r--dev-python/jinja/jinja-2.8.ebuild72
-rw-r--r--dev-python/jinja/metadata.xml8
-rw-r--r--dev-python/jmespath/Manifest2
-rw-r--r--dev-python/jmespath/jmespath-0.5.0.ebuild26
-rw-r--r--dev-python/jmespath/jmespath-0.7.1.ebuild26
-rw-r--r--dev-python/jmespath/metadata.xml14
-rw-r--r--dev-python/joblib/Manifest5
-rw-r--r--dev-python/joblib/joblib-0.8.0.ebuild45
-rw-r--r--dev-python/joblib/joblib-0.8.1.ebuild45
-rw-r--r--dev-python/joblib/joblib-0.8.2.ebuild45
-rw-r--r--dev-python/joblib/joblib-0.8.3.ebuild46
-rw-r--r--dev-python/joblib/joblib-0.8.4.ebuild46
-rw-r--r--dev-python/joblib/metadata.xml18
-rw-r--r--dev-python/jonpy/Manifest2
-rw-r--r--dev-python/jonpy/jonpy-0.10-r1.ebuild26
-rw-r--r--dev-python/jonpy/jonpy-0.11.ebuild23
-rw-r--r--dev-python/jonpy/metadata.xml8
-rw-r--r--dev-python/jsmin/Manifest3
-rw-r--r--dev-python/jsmin/jsmin-2.0.9.ebuild27
-rw-r--r--dev-python/jsmin/jsmin-2.1.1.ebuild25
-rw-r--r--dev-python/jsmin/jsmin-2.1.2.ebuild23
-rw-r--r--dev-python/jsmin/metadata.xml9
-rw-r--r--dev-python/json-rpc/Manifest3
-rw-r--r--dev-python/json-rpc/json-rpc-1.10.1.ebuild28
-rw-r--r--dev-python/json-rpc/json-rpc-1.7.0.ebuild27
-rw-r--r--dev-python/json-rpc/json-rpc-1.9.2.ebuild27
-rw-r--r--dev-python/json-rpc/metadata.xml16
-rw-r--r--dev-python/json-tools/Manifest2
-rw-r--r--dev-python/json-tools/json-tools-0.3.3.ebuild30
-rw-r--r--dev-python/json-tools/json-tools-0.4.0.ebuild32
-rw-r--r--dev-python/json-tools/metadata.xml9
-rw-r--r--dev-python/jsonfield/Manifest1
-rw-r--r--dev-python/jsonfield/jsonfield-1.0.3.ebuild25
-rw-r--r--dev-python/jsonfield/metadata.xml12
-rw-r--r--dev-python/jsonmerge/Manifest1
-rw-r--r--dev-python/jsonmerge/jsonmerge-1.1.0.ebuild26
-rw-r--r--dev-python/jsonmerge/metadata.xml12
-rw-r--r--dev-python/jsonpatch/Manifest2
-rw-r--r--dev-python/jsonpatch/jsonpatch-1.11.ebuild27
-rw-r--r--dev-python/jsonpatch/jsonpatch-1.9.ebuild26
-rw-r--r--dev-python/jsonpatch/metadata.xml17
-rw-r--r--dev-python/jsonpickle/Manifest3
-rw-r--r--dev-python/jsonpickle/files/0.9.0-drop-broken-backend.patch11
-rw-r--r--dev-python/jsonpickle/files/jsonpickle-0.6.1-drop-brocken-backend.patch15
-rw-r--r--dev-python/jsonpickle/jsonpickle-0.8.0.ebuild49
-rw-r--r--dev-python/jsonpickle/jsonpickle-0.9.1.ebuild53
-rw-r--r--dev-python/jsonpickle/jsonpickle-0.9.2.ebuild51
-rw-r--r--dev-python/jsonpickle/metadata.xml9
-rw-r--r--dev-python/jsonpointer/Manifest2
-rw-r--r--dev-python/jsonpointer/jsonpointer-1.7.ebuild24
-rw-r--r--dev-python/jsonpointer/jsonpointer-1.9.ebuild23
-rw-r--r--dev-python/jsonpointer/metadata.xml17
-rw-r--r--dev-python/jsonrpclib/Manifest2
-rw-r--r--dev-python/jsonrpclib/files/jsonrpclib-fix-nested-imports.patch31
-rw-r--r--dev-python/jsonrpclib/jsonrpclib-0_pre20110820-r1.ebuild27
-rw-r--r--dev-python/jsonrpclib/jsonrpclib-0_pre20150305.ebuild27
-rw-r--r--dev-python/jsonrpclib/jsonrpclib-9999.ebuild27
-rw-r--r--dev-python/jsonrpclib/metadata.xml12
-rw-r--r--dev-python/jsonschema/Manifest2
-rw-r--r--dev-python/jsonschema/jsonschema-2.3.0.ebuild25
-rw-r--r--dev-python/jsonschema/jsonschema-2.4.0.ebuild22
-rw-r--r--dev-python/jsonschema/metadata.xml15
-rw-r--r--dev-python/kaa-base/Manifest1
-rw-r--r--dev-python/kaa-base/kaa-base-0.6.0-r1.ebuild42
-rw-r--r--dev-python/kaa-base/metadata.xml19
-rw-r--r--dev-python/kaa-display/Manifest1
-rw-r--r--dev-python/kaa-display/kaa-display-0.1.0-r1.ebuild25
-rw-r--r--dev-python/kaa-display/kaa-display-0.1.0.ebuild28
-rw-r--r--dev-python/kaa-display/metadata.xml8
-rw-r--r--dev-python/kaa-imlib2/Manifest1
-rw-r--r--dev-python/kaa-imlib2/files/kaa-imlib2-remove-png-dep.patch11
-rw-r--r--dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r1.ebuild31
-rw-r--r--dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r2.ebuild25
-rw-r--r--dev-python/kaa-imlib2/metadata.xml11
-rw-r--r--dev-python/kaa-metadata/Manifest1
-rw-r--r--dev-python/kaa-metadata/kaa-metadata-0.7.7-r1.ebuild29
-rw-r--r--dev-python/kaa-metadata/metadata.xml14
-rw-r--r--dev-python/kazoo/Manifest3
-rw-r--r--dev-python/kazoo/kazoo-1.3.1.ebuild48
-rw-r--r--dev-python/kazoo/kazoo-2.0.ebuild44
-rw-r--r--dev-python/kazoo/kazoo-2.2.1.ebuild43
-rw-r--r--dev-python/kazoo/metadata.xml12
-rw-r--r--dev-python/keepassx/Manifest2
-rw-r--r--dev-python/keepassx/keepassx-0.0.3.ebuild33
-rw-r--r--dev-python/keepassx/keepassx-0.1.0.ebuild35
-rw-r--r--dev-python/keepassx/metadata.xml13
-rw-r--r--dev-python/keyczar/Manifest2
-rw-r--r--dev-python/keyczar/keyczar-0.715.ebuild38
-rw-r--r--dev-python/keyczar/keyczar-0.71c.ebuild31
-rw-r--r--dev-python/keyczar/metadata.xml8
-rw-r--r--dev-python/keyring/Manifest7
-rw-r--r--dev-python/keyring/files/setup-1.0.patch32
-rw-r--r--dev-python/keyring/keyring-1.0.ebuild36
-rw-r--r--dev-python/keyring/keyring-1.5-r1.ebuild39
-rw-r--r--dev-python/keyring/keyring-1.5.ebuild39
-rw-r--r--dev-python/keyring/keyring-1.6.1.ebuild39
-rw-r--r--dev-python/keyring/keyring-3.1.ebuild39
-rw-r--r--dev-python/keyring/keyring-3.3.ebuild28
-rw-r--r--dev-python/keyring/keyring-3.7.ebuild28
-rw-r--r--dev-python/keyring/keyring-4.0.ebuild32
-rw-r--r--dev-python/keyring/metadata.xml16
-rw-r--r--dev-python/keystonemiddleware/Manifest2
-rw-r--r--dev-python/keystonemiddleware/files/cve-2015-1852-master-keystonemiddleware.patch63
-rw-r--r--dev-python/keystonemiddleware/keystonemiddleware-1.5.0.ebuild75
-rw-r--r--dev-python/keystonemiddleware/keystonemiddleware-1.5.2.ebuild86
-rw-r--r--dev-python/keystonemiddleware/metadata.xml16
-rw-r--r--dev-python/kid/Manifest1
-rw-r--r--dev-python/kid/kid-0.9.6-r1.ebuild40
-rw-r--r--dev-python/kid/metadata.xml10
-rw-r--r--dev-python/kivy-garden/Manifest1
-rw-r--r--dev-python/kivy-garden/files/remove_bat.patch10
-rw-r--r--dev-python/kivy-garden/kivy-garden-0.1.1.ebuild28
-rw-r--r--dev-python/kivy-garden/metadata.xml14
-rw-r--r--dev-python/kiwi/Manifest2
-rw-r--r--dev-python/kiwi/kiwi-1.9.39.2.ebuild46
-rw-r--r--dev-python/kiwi/kiwi-1.9.40.ebuild48
-rw-r--r--dev-python/kiwi/metadata.xml9
-rw-r--r--dev-python/kiwisolver/Manifest1
-rw-r--r--dev-python/kiwisolver/kiwisolver-0.1.3.ebuild20
-rw-r--r--dev-python/kiwisolver/metadata.xml16
-rw-r--r--dev-python/kombu/Manifest4
-rw-r--r--dev-python/kombu/files/kombu-3.0.26-pymongo-test-fix.patch40
-rw-r--r--dev-python/kombu/files/kombu-NA-tests-fix.patch16
-rw-r--r--dev-python/kombu/kombu-2.5.16.ebuild42
-rw-r--r--dev-python/kombu/kombu-3.0.23.ebuild91
-rw-r--r--dev-python/kombu/kombu-3.0.24.ebuild95
-rw-r--r--dev-python/kombu/kombu-3.0.26.ebuild102
-rw-r--r--dev-python/kombu/metadata.xml14
-rw-r--r--dev-python/larch/Manifest2
-rw-r--r--dev-python/larch/larch-1.20130808.ebuild36
-rw-r--r--dev-python/larch/larch-1.20131130.ebuild36
-rw-r--r--dev-python/larch/metadata.xml8
-rw-r--r--dev-python/ldap3/Manifest4
-rw-r--r--dev-python/ldap3/ldap3-0.9.8.2.ebuild21
-rw-r--r--dev-python/ldap3/ldap3-0.9.8.4.ebuild21
-rw-r--r--dev-python/ldap3/ldap3-0.9.8.6.ebuild21
-rw-r--r--dev-python/ldap3/ldap3-0.9.8.7.ebuild29
-rw-r--r--dev-python/ldap3/metadata.xml13
-rw-r--r--dev-python/ldappool/Manifest1
-rw-r--r--dev-python/ldappool/ldappool-1.0.ebuild24
-rw-r--r--dev-python/ldappool/metadata.xml16
-rw-r--r--dev-python/lesscpy/Manifest2
-rw-r--r--dev-python/lesscpy/lesscpy-0.10.2.ebuild28
-rw-r--r--dev-python/lesscpy/lesscpy-0.9j.ebuild24
-rw-r--r--dev-python/lesscpy/metadata.xml15
-rw-r--r--dev-python/libasyncns-python/Manifest1
-rw-r--r--dev-python/libasyncns-python/libasyncns-python-0.7.1-r1.ebuild29
-rw-r--r--dev-python/libasyncns-python/metadata.xml10
-rw-r--r--dev-python/libbonobo-python/Manifest1
-rw-r--r--dev-python/libbonobo-python/libbonobo-python-2.28.1-r1.ebuild27
-rw-r--r--dev-python/libbonobo-python/metadata.xml6
-rw-r--r--dev-python/libcloud/Manifest3
-rw-r--r--dev-python/libcloud/libcloud-0.14.1.ebuild50
-rw-r--r--dev-python/libcloud/libcloud-0.15.0.ebuild50
-rw-r--r--dev-python/libcloud/libcloud-0.15.1.ebuild50
-rw-r--r--dev-python/libcloud/metadata.xml5
-rw-r--r--dev-python/libextractor-python/Manifest1
-rw-r--r--dev-python/libextractor-python/libextractor-python-0.6-r1.ebuild24
-rw-r--r--dev-python/libextractor-python/metadata.xml10
-rw-r--r--dev-python/libgnome-python/Manifest1
-rw-r--r--dev-python/libgnome-python/libgnome-python-2.28.1-r1.ebuild29
-rw-r--r--dev-python/libgnome-python/metadata.xml6
-rw-r--r--dev-python/libgnomecanvas-python/Manifest1
-rw-r--r--dev-python/libgnomecanvas-python/libgnomecanvas-python-2.28.1-r1.ebuild24
-rw-r--r--dev-python/libgnomecanvas-python/metadata.xml6
-rw-r--r--dev-python/liblarch/Manifest1
-rw-r--r--dev-python/liblarch/liblarch-2.1.0.ebuild28
-rw-r--r--dev-python/liblarch/metadata.xml21
-rw-r--r--dev-python/libnacl/Manifest2
-rw-r--r--dev-python/libnacl/libnacl-1.4.0.ebuild23
-rw-r--r--dev-python/libnacl/libnacl-1.4.3.ebuild23
-rw-r--r--dev-python/libnacl/metadata.xml12
-rw-r--r--dev-python/libnatpmp/Manifest3
-rw-r--r--dev-python/libnatpmp/files/link-against-system-lib.patch12
-rw-r--r--dev-python/libnatpmp/libnatpmp-20130911.ebuild28
-rw-r--r--dev-python/libnatpmp/libnatpmp-20140401-r1.ebuild28
-rw-r--r--dev-python/libnatpmp/libnatpmp-20150609.ebuild28
-rw-r--r--dev-python/libnatpmp/metadata.xml8
-rw-r--r--dev-python/librharris/Manifest1
-rw-r--r--dev-python/librharris/librharris-0.1.14-r1.ebuild25
-rw-r--r--dev-python/librharris/metadata.xml8
-rw-r--r--dev-python/librsvg-python/Manifest1
-rw-r--r--dev-python/librsvg-python/librsvg-python-2.32.0-r1.ebuild24
-rw-r--r--dev-python/librsvg-python/metadata.xml5
-rw-r--r--dev-python/libvirt-python/Manifest3
-rw-r--r--dev-python/libvirt-python/libvirt-python-1.2.15.ebuild44
-rw-r--r--dev-python/libvirt-python/libvirt-python-1.2.17.ebuild44
-rw-r--r--dev-python/libvirt-python/libvirt-python-1.2.18.ebuild44
-rw-r--r--dev-python/libvirt-python/libvirt-python-9999.ebuild41
-rw-r--r--dev-python/libvirt-python/metadata.xml9
-rw-r--r--dev-python/libwnck-python/Manifest1
-rw-r--r--dev-python/libwnck-python/files/libwnck-python-2.30.2-flagsfix.patch30
-rw-r--r--dev-python/libwnck-python/libwnck-python-2.32.0-r1.ebuild29
-rw-r--r--dev-python/libwnck-python/metadata.xml5
-rw-r--r--dev-python/linecache2/Manifest1
-rw-r--r--dev-python/linecache2/linecache2-1.0.0.ebuild31
-rw-r--r--dev-python/linecache2/metadata.xml14
-rw-r--r--dev-python/livereload/Manifest2
-rw-r--r--dev-python/livereload/files/fix-tests.patch77
-rw-r--r--dev-python/livereload/livereload-2.3.2.ebuild42
-rw-r--r--dev-python/livereload/livereload-2.4.0.ebuild39
-rw-r--r--dev-python/livereload/metadata.xml13
-rw-r--r--dev-python/llfuse/Manifest2
-rw-r--r--dev-python/llfuse/llfuse-0.39.ebuild33
-rw-r--r--dev-python/llfuse/llfuse-0.40.ebuild35
-rw-r--r--dev-python/llfuse/metadata.xml8
-rw-r--r--dev-python/llvmlite/Manifest4
-rw-r--r--dev-python/llvmlite/llvmlite-0.2.1.ebuild21
-rw-r--r--dev-python/llvmlite/llvmlite-0.2.2.ebuild21
-rw-r--r--dev-python/llvmlite/llvmlite-0.5.0.ebuild39
-rw-r--r--dev-python/llvmlite/llvmlite-0.6.0.ebuild39
-rw-r--r--dev-python/llvmlite/metadata.xml8
-rw-r--r--dev-python/llvmmath/Manifest1
-rw-r--r--dev-python/llvmmath/llvmmath-0.1.2.ebuild29
-rw-r--r--dev-python/llvmmath/metadata.xml16
-rw-r--r--dev-python/llvmpy/Manifest6
-rw-r--r--dev-python/llvmpy/files/llvmpy-0.12.2-return-type.patch13
-rw-r--r--dev-python/llvmpy/llvmpy-0.12.2.ebuild39
-rw-r--r--dev-python/llvmpy/llvmpy-0.12.3.ebuild39
-rw-r--r--dev-python/llvmpy/llvmpy-0.12.4.ebuild39
-rw-r--r--dev-python/llvmpy/llvmpy-0.12.5.ebuild39
-rw-r--r--dev-python/llvmpy/llvmpy-0.12.6.ebuild49
-rw-r--r--dev-python/llvmpy/llvmpy-0.12.7.ebuild57
-rw-r--r--dev-python/llvmpy/metadata.xml12
-rw-r--r--dev-python/lockfile/Manifest2
-rw-r--r--dev-python/lockfile/files/py3-support.patch107
-rw-r--r--dev-python/lockfile/lockfile-0.10.2.ebuild41
-rw-r--r--dev-python/lockfile/lockfile-0.9.1-r1.ebuild43
-rw-r--r--dev-python/lockfile/metadata.xml8
-rw-r--r--dev-python/locustio/Manifest1
-rw-r--r--dev-python/locustio/locustio-0.7.3.ebuild31
-rw-r--r--dev-python/locustio/metadata.xml9
-rw-r--r--dev-python/log4py/Manifest1
-rw-r--r--dev-python/log4py/log4py-1.3-r1.ebuild33
-rw-r--r--dev-python/log4py/metadata.xml5
-rw-r--r--dev-python/logbook/Manifest2
-rw-r--r--dev-python/logbook/files/logbook-0.4.2-objectsinv.patch11
-rw-r--r--dev-python/logbook/files/logbook-0.5-pypy-test-fix.patch50
-rw-r--r--dev-python/logbook/logbook-0.10.0.ebuild46
-rw-r--r--dev-python/logbook/logbook-0.9.1.ebuild44
-rw-r--r--dev-python/logbook/metadata.xml9
-rw-r--r--dev-python/logilab-common/Manifest4
-rw-r--r--dev-python/logilab-common/files/logilab-common-0.59.1-zipsafe.patch13
-rw-r--r--dev-python/logilab-common/files/logilab-common-0.60.0-skip-doctest.patch13
-rw-r--r--dev-python/logilab-common/logilab-common-0.61.0.ebuild88
-rw-r--r--dev-python/logilab-common/logilab-common-0.62.1.ebuild92
-rw-r--r--dev-python/logilab-common/logilab-common-0.63.2.ebuild71
-rw-r--r--dev-python/logilab-common/logilab-common-1.0.2.ebuild66
-rw-r--r--dev-python/logilab-common/metadata.xml8
-rw-r--r--dev-python/logilab-constraint/Manifest1
-rw-r--r--dev-python/logilab-constraint/logilab-constraint-0.5.0-r1.ebuild35
-rw-r--r--dev-python/logilab-constraint/metadata.xml5
-rw-r--r--dev-python/louie/Manifest1
-rw-r--r--dev-python/louie/louie-1.1-r1.ebuild35
-rw-r--r--dev-python/louie/louie-1.1.ebuild33
-rw-r--r--dev-python/louie/metadata.xml8
-rw-r--r--dev-python/lp_solve/Manifest1
-rw-r--r--dev-python/lp_solve/files/lp_solve-5.5.2.0-setup.patch50
-rw-r--r--dev-python/lp_solve/lp_solve-5.5.2.0-r1.ebuild48
-rw-r--r--dev-python/lp_solve/metadata.xml11
-rw-r--r--dev-python/lupy/Manifest1
-rw-r--r--dev-python/lupy/lupy-0.2.1-r2.ebuild32
-rw-r--r--dev-python/lupy/metadata.xml11
-rw-r--r--dev-python/lxml/Manifest5
-rw-r--r--dev-python/lxml/files/lxml-3.3.x-test_etree.py.patch14
-rw-r--r--dev-python/lxml/files/lxml-3.4.4-cross-compile.patch36
-rw-r--r--dev-python/lxml/lxml-3.3.5.ebuild77
-rw-r--r--dev-python/lxml/lxml-3.4.1.ebuild68
-rw-r--r--dev-python/lxml/lxml-3.4.2.ebuild68
-rw-r--r--dev-python/lxml/lxml-3.4.3.ebuild74
-rw-r--r--dev-python/lxml/lxml-3.4.4.ebuild77
-rw-r--r--dev-python/lxml/metadata.xml11
-rw-r--r--dev-python/lz4/Manifest2
-rw-r--r--dev-python/lz4/lz4-0.6.1.ebuild27
-rw-r--r--dev-python/lz4/lz4-0.7.0.ebuild22
-rw-r--r--dev-python/lz4/metadata.xml12
-rw-r--r--dev-python/m2crypto/Manifest1
-rw-r--r--dev-python/m2crypto/files/0.22.3-Use-swig-generated-python-loader.patch138
-rw-r--r--dev-python/m2crypto/files/0.22.3-packaging.patch69
-rw-r--r--dev-python/m2crypto/m2crypto-0.22.3-r4.ebuild41
-rw-r--r--dev-python/m2crypto/metadata.xml9
-rw-r--r--dev-python/m2secret/Manifest1
-rw-r--r--dev-python/m2secret/m2secret-0.1.1-r1.ebuild21
-rw-r--r--dev-python/m2secret/metadata.xml8
-rw-r--r--dev-python/maintboot/Manifest1
-rw-r--r--dev-python/maintboot/maintboot-0.1.0.ebuild18
-rw-r--r--dev-python/maintboot/metadata.xml12
-rw-r--r--dev-python/mako/Manifest2
-rw-r--r--dev-python/mako/files/test-fix.patch11
-rw-r--r--dev-python/mako/mako-0.7.3-r1.ebuild53
-rw-r--r--dev-python/mako/mako-0.7.3-r2.ebuild72
-rw-r--r--dev-python/mako/mako-1.0.0.ebuild59
-rw-r--r--dev-python/mako/metadata.xml8
-rw-r--r--dev-python/mamba/Manifest4
-rw-r--r--dev-python/mamba/mamba-0.6.ebuild54
-rw-r--r--dev-python/mamba/mamba-0.8.2.ebuild54
-rw-r--r--dev-python/mamba/mamba-0.8.4.ebuild55
-rw-r--r--dev-python/mamba/mamba-0.8.ebuild53
-rw-r--r--dev-python/mamba/metadata.xml13
-rw-r--r--dev-python/mando/Manifest1
-rw-r--r--dev-python/mando/mando-0.3.2.ebuild39
-rw-r--r--dev-python/mando/metadata.xml13
-rw-r--r--dev-python/mantissa/Manifest3
-rw-r--r--dev-python/mantissa/mantissa-0.7.0-r1.ebuild46
-rw-r--r--dev-python/mantissa/mantissa-0.8.0.ebuild52
-rw-r--r--dev-python/mantissa/mantissa-0.8.1.ebuild53
-rw-r--r--dev-python/mantissa/metadata.xml12
-rw-r--r--dev-python/manuel/Manifest1
-rw-r--r--dev-python/manuel/files/manuel-1.7-rm_zope_test.patch92
-rw-r--r--dev-python/manuel/manuel-1.7.1.ebuild33
-rw-r--r--dev-python/manuel/metadata.xml12
-rw-r--r--dev-python/markdown/Manifest3
-rw-r--r--dev-python/markdown/files/markdown-2.2.0-tests.patch80
-rw-r--r--dev-python/markdown/markdown-2.5.1.ebuild45
-rw-r--r--dev-python/markdown/markdown-2.6.1.ebuild45
-rw-r--r--dev-python/markdown/markdown-2.6.2.ebuild48
-rw-r--r--dev-python/markdown/metadata.xml11
-rw-r--r--dev-python/markdown2/Manifest3
-rw-r--r--dev-python/markdown2/markdown2-2.2.1.ebuild32
-rw-r--r--dev-python/markdown2/markdown2-2.2.3.ebuild32
-rw-r--r--dev-python/markdown2/markdown2-2.3.0.ebuild33
-rw-r--r--dev-python/markdown2/metadata.xml18
-rw-r--r--dev-python/markups/Manifest3
-rw-r--r--dev-python/markups/markups-0.2.4-r1.ebuild35
-rw-r--r--dev-python/markups/markups-0.6.1.ebuild38
-rw-r--r--dev-python/markups/markups-0.6.3.ebuild38
-rw-r--r--dev-python/markups/metadata.xml11
-rw-r--r--dev-python/markupsafe/Manifest1
-rw-r--r--dev-python/markupsafe/markupsafe-0.23.ebuild37
-rw-r--r--dev-python/markupsafe/metadata.xml8
-rw-r--r--dev-python/matplotlib/Manifest2
-rw-r--r--dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-agg.patch26
-rw-r--r--dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-pycxx.patch22
-rw-r--r--dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-1.patch50
-rw-r--r--dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-2.patch54
-rw-r--r--dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-3.patch58
-rw-r--r--dev-python/matplotlib/matplotlib-1.4.2.ebuild248
-rw-r--r--dev-python/matplotlib/matplotlib-1.4.3.ebuild258
-rw-r--r--dev-python/matplotlib/matplotlib-9999.ebuild251
-rw-r--r--dev-python/matplotlib/metadata.xml19
-rw-r--r--dev-python/mccabe/Manifest3
-rw-r--r--dev-python/mccabe/mccabe-0.2.1.ebuild22
-rw-r--r--dev-python/mccabe/mccabe-0.3.1.ebuild26
-rw-r--r--dev-python/mccabe/mccabe-0.3.ebuild22
-rw-r--r--dev-python/mccabe/metadata.xml9
-rw-r--r--dev-python/mecab-python/Manifest1
-rw-r--r--dev-python/mecab-python/files/mecab-python-py3.diff11
-rw-r--r--dev-python/mecab-python/mecab-python-0.996.ebuild24
-rw-r--r--dev-python/mecab-python/metadata.xml8
-rw-r--r--dev-python/mechanize/Manifest1
-rw-r--r--dev-python/mechanize/mechanize-0.2.5-r1.ebuild36
-rw-r--r--dev-python/mechanize/mechanize-0.2.5.ebuild40
-rw-r--r--dev-python/mechanize/metadata.xml15
-rw-r--r--dev-python/medusa/Manifest1
-rw-r--r--dev-python/medusa/medusa-0.5.4-r1.ebuild25
-rw-r--r--dev-python/medusa/metadata.xml5
-rw-r--r--dev-python/meld3/Manifest2
-rw-r--r--dev-python/meld3/meld3-1.0.0.ebuild27
-rw-r--r--dev-python/meld3/meld3-1.0.2.ebuild27
-rw-r--r--dev-python/meld3/metadata.xml9
-rw-r--r--dev-python/mergedict/Manifest1
-rw-r--r--dev-python/mergedict/mergedict-0.2.0.ebuild20
-rw-r--r--dev-python/mergedict/metadata.xml9
-rw-r--r--dev-python/metadata.xml45
-rw-r--r--dev-python/micawber/Manifest2
-rw-r--r--dev-python/micawber/files/micawber-0.3.2-remove-examples-from-setup.py.patch20
-rw-r--r--dev-python/micawber/metadata.xml12
-rw-r--r--dev-python/micawber/micawber-0.3.2.ebuild26
-rw-r--r--dev-python/micawber/micawber-0.3.3.ebuild26
-rw-r--r--dev-python/milk/Manifest3
-rw-r--r--dev-python/milk/metadata.xml23
-rw-r--r--dev-python/milk/milk-0.5.1.ebuild23
-rw-r--r--dev-python/milk/milk-0.5.3.ebuild23
-rw-r--r--dev-python/milk/milk-0.6.1.ebuild23
-rw-r--r--dev-python/milksets/Manifest1
-rw-r--r--dev-python/milksets/metadata.xml12
-rw-r--r--dev-python/milksets/milksets-0.1.3-r1.ebuild20
-rw-r--r--dev-python/mimeparse/Manifest1
-rw-r--r--dev-python/mimeparse/metadata.xml13
-rw-r--r--dev-python/mimeparse/mimeparse-0.1.4-r1.ebuild41
-rw-r--r--dev-python/mimerender/Manifest2
-rw-r--r--dev-python/mimerender/metadata.xml8
-rw-r--r--dev-python/mimerender/mimerender-0.5.4.ebuild20
-rw-r--r--dev-python/mimerender/mimerender-0.5.5.ebuild20
-rw-r--r--dev-python/minimock/Manifest1
-rw-r--r--dev-python/minimock/metadata.xml8
-rw-r--r--dev-python/minimock/minimock-1.2.8-r1.ebuild25
-rw-r--r--dev-python/miniupnpc/Manifest1
-rw-r--r--dev-python/miniupnpc/files/0001-Link-Python-module-against-the-shared-library.patch24
-rw-r--r--dev-python/miniupnpc/metadata.xml13
-rw-r--r--dev-python/miniupnpc/miniupnpc-1.8.ebuild28
-rw-r--r--dev-python/misaka/Manifest1
-rw-r--r--dev-python/misaka/metadata.xml8
-rw-r--r--dev-python/misaka/misaka-1.0.2.ebuild21
-rw-r--r--dev-python/mistune/Manifest3
-rw-r--r--dev-python/mistune/files/mistune-0.6-inline-html.patch536
-rw-r--r--dev-python/mistune/metadata.xml12
-rw-r--r--dev-python/mistune/mistune-0.5.1.ebuild28
-rw-r--r--dev-python/mistune/mistune-0.6-r1.ebuild30
-rw-r--r--dev-python/mistune/mistune-0.7.ebuild28
-rw-r--r--dev-python/mkdocs/Manifest3
-rw-r--r--dev-python/mkdocs/files/0.12.2-skip-invalid-test.patch12
-rw-r--r--dev-python/mkdocs/files/skip-invalid-test.patch24
-rw-r--r--dev-python/mkdocs/metadata.xml13
-rw-r--r--dev-python/mkdocs/mkdocs-0.11.1-r1.ebuild58
-rw-r--r--dev-python/mkdocs/mkdocs-0.12.2.ebuild58
-rw-r--r--dev-python/mkdocs/mkdocs-0.14.0.ebuild48
-rw-r--r--dev-python/mkpythonproj/Manifest1
-rw-r--r--dev-python/mkpythonproj/metadata.xml9
-rw-r--r--dev-python/mkpythonproj/mkpythonproj-1.9.ebuild25
-rw-r--r--dev-python/mock/Manifest3
-rw-r--r--dev-python/mock/files/mock-1.0.1-fix-python3.4.patch30
-rw-r--r--dev-python/mock/metadata.xml9
-rw-r--r--dev-python/mock/mock-1.0.1-r1.ebuild36
-rw-r--r--dev-python/mock/mock-1.0.1-r2.ebuild43
-rw-r--r--dev-python/mock/mock-1.2.0.ebuild41
-rw-r--r--dev-python/mock/mock-1.3.0-r1.ebuild41
-rw-r--r--dev-python/mocker/Manifest1
-rw-r--r--dev-python/mocker/files/mocker-1.1.1-pypy_test.patch29
-rw-r--r--dev-python/mocker/metadata.xml8
-rw-r--r--dev-python/mocker/mocker-1.1.1-r1.ebuild26
-rw-r--r--dev-python/mockldap/Manifest4
-rw-r--r--dev-python/mockldap/files/mapping.patch12
-rw-r--r--dev-python/mockldap/files/mockldap-0.1.5-modify_s-backport.patch21
-rw-r--r--dev-python/mockldap/metadata.xml9
-rw-r--r--dev-python/mockldap/mockldap-0.2.2.ebuild47
-rw-r--r--dev-python/mockldap/mockldap-0.2.3.ebuild47
-rw-r--r--dev-python/mockldap/mockldap-0.2.4.ebuild47
-rw-r--r--dev-python/mockldap/mockldap-0.2.5.ebuild47
-rw-r--r--dev-python/mongoengine/Manifest1
-rw-r--r--dev-python/mongoengine/metadata.xml8
-rw-r--r--dev-python/mongoengine/mongoengine-0.8.3.ebuild33
-rw-r--r--dev-python/monotonic/Manifest2
-rw-r--r--dev-python/monotonic/metadata.xml14
-rw-r--r--dev-python/monotonic/monotonic-0.2.ebuild20
-rw-r--r--dev-python/monotonic/monotonic-0.3.ebuild20
-rw-r--r--dev-python/morbid/Manifest1
-rw-r--r--dev-python/morbid/metadata.xml8
-rw-r--r--dev-python/morbid/morbid-0.8.7.3-r1.ebuild24
-rw-r--r--dev-python/morbid/morbid-0.8.7.3.ebuild25
-rw-r--r--dev-python/more-itertools/Manifest1
-rw-r--r--dev-python/more-itertools/metadata.xml8
-rw-r--r--dev-python/more-itertools/more-itertools-2.2.ebuild20
-rw-r--r--dev-python/moto/Manifest3
-rw-r--r--dev-python/moto/metadata.xml13
-rw-r--r--dev-python/moto/moto-0.3.8.ebuild26
-rw-r--r--dev-python/moto/moto-0.4.3.ebuild27
-rw-r--r--dev-python/moto/moto-0.4.8.ebuild27
-rw-r--r--dev-python/mox/Manifest1
-rw-r--r--dev-python/mox/metadata.xml9
-rw-r--r--dev-python/mox/mox-0.5.3-r1.ebuild22
-rw-r--r--dev-python/mox3/Manifest1
-rw-r--r--dev-python/mox3/metadata.xml8
-rw-r--r--dev-python/mox3/mox3-0.7.0-r1.ebuild67
-rw-r--r--dev-python/mox3/mox3-0.7.0.ebuild45
-rw-r--r--dev-python/mpi4py/Manifest1
-rw-r--r--dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch24
-rw-r--r--dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch81
-rw-r--r--dev-python/mpi4py/metadata.xml19
-rw-r--r--dev-python/mpi4py/mpi4py-1.3.1.ebuild50
-rw-r--r--dev-python/mpmath/Manifest2
-rw-r--r--dev-python/mpmath/files/mpmath.patch9
-rw-r--r--dev-python/mpmath/metadata.xml18
-rw-r--r--dev-python/mpmath/mpmath-0.18.ebuild63
-rw-r--r--dev-python/mpmath/mpmath-0.19.ebuild63
-rw-r--r--dev-python/msgpack/Manifest1
-rw-r--r--dev-python/msgpack/metadata.xml9
-rw-r--r--dev-python/msgpack/msgpack-0.4.6.ebuild32
-rw-r--r--dev-python/multipledispatch/Manifest3
-rw-r--r--dev-python/multipledispatch/metadata.xml8
-rw-r--r--dev-python/multipledispatch/multipledispatch-0.4.6.ebuild19
-rw-r--r--dev-python/multipledispatch/multipledispatch-0.4.7.ebuild19
-rw-r--r--dev-python/multipledispatch/multipledispatch-0.4.8.ebuild19
-rw-r--r--dev-python/munkres/Manifest1
-rw-r--r--dev-python/munkres/metadata.xml14
-rw-r--r--dev-python/munkres/munkres-1.0.5.4-r2.ebuild27
-rw-r--r--dev-python/mwlib-ext/Manifest2
-rw-r--r--dev-python/mwlib-ext/files/0.12.4-unbundle-reportlab.patch36
-rw-r--r--dev-python/mwlib-ext/files/0.13.2-unbundle-reportlab.patch35
-rw-r--r--dev-python/mwlib-ext/metadata.xml8
-rw-r--r--dev-python/mwlib-ext/mwlib-ext-0.12.4-r1.ebuild29
-rw-r--r--dev-python/mwlib-ext/mwlib-ext-0.13.2.ebuild29
-rw-r--r--dev-python/mwlib-rl/Manifest2
-rw-r--r--dev-python/mwlib-rl/files/0.14.3-use-system-fonts.patch13
-rw-r--r--dev-python/mwlib-rl/metadata.xml12
-rw-r--r--dev-python/mwlib-rl/mwlib-rl-0.14.5.ebuild61
-rw-r--r--dev-python/mwlib-rl/mwlib-rl-0.14.6.ebuild61
-rw-r--r--dev-python/mwlib/Manifest1
-rw-r--r--dev-python/mwlib/files/mw-qserve.confd14
-rw-r--r--dev-python/mwlib/files/mw-qserve.initd21
-rw-r--r--dev-python/mwlib/files/mw-qserve.logrotate7
-rw-r--r--dev-python/mwlib/files/mwlib-purge-cache.cron-r14
-rw-r--r--dev-python/mwlib/files/nserve.confd20
-rw-r--r--dev-python/mwlib/files/nserve.initd24
-rw-r--r--dev-python/mwlib/files/nserve.logrotate7
-rw-r--r--dev-python/mwlib/files/nslave.confd-r126
-rw-r--r--dev-python/mwlib/files/nslave.initd-r127
-rw-r--r--dev-python/mwlib/files/nslave.logrotate7
-rw-r--r--dev-python/mwlib/files/postman.confd12
-rw-r--r--dev-python/mwlib/files/postman.initd-r121
-rw-r--r--dev-python/mwlib/files/postman.logrotate7
-rw-r--r--dev-python/mwlib/metadata.xml12
-rw-r--r--dev-python/mwlib/mwlib-0.15.15.ebuild132
-rw-r--r--dev-python/myghty/Manifest1
-rw-r--r--dev-python/myghty/metadata.xml8
-rw-r--r--dev-python/myghty/myghty-1.2-r1.ebuild49
-rw-r--r--dev-python/myghtyutils/Manifest1
-rw-r--r--dev-python/myghtyutils/metadata.xml8
-rw-r--r--dev-python/myghtyutils/myghtyutils-0.52-r1.ebuild27
-rw-r--r--dev-python/mygpoclient/Manifest1
-rw-r--r--dev-python/mygpoclient/files/tests.patch34
-rw-r--r--dev-python/mygpoclient/metadata.xml6
-rw-r--r--dev-python/mygpoclient/mygpoclient-1.7-r1.ebuild46
-rw-r--r--dev-python/mypy/Manifest1
-rw-r--r--dev-python/mypy/files/use-which.patch20
-rw-r--r--dev-python/mypy/metadata.xml13
-rw-r--r--dev-python/mypy/mypy-0.2.0-r1.ebuild48
-rw-r--r--dev-python/mypy/mypy-0.2.0.ebuild40
-rw-r--r--dev-python/mysql-connector-python/Manifest2
-rw-r--r--dev-python/mysql-connector-python/metadata.xml8
-rw-r--r--dev-python/mysql-connector-python/mysql-connector-python-2.0.3.ebuild20
-rw-r--r--dev-python/mysql-connector-python/mysql-connector-python-2.1.1.ebuild21
-rw-r--r--dev-python/mysql-python/Manifest2
-rw-r--r--dev-python/mysql-python/metadata.xml8
-rw-r--r--dev-python/mysql-python/mysql-python-1.2.3-r1.ebuild31
-rw-r--r--dev-python/mysql-python/mysql-python-1.2.5-r1.ebuild44
-rw-r--r--dev-python/mysql-python/mysql-python-1.2.5.ebuild44
-rw-r--r--dev-python/mysqlclient/Manifest1
-rw-r--r--dev-python/mysqlclient/metadata.xml12
-rw-r--r--dev-python/mysqlclient/mysqlclient-1.3.6.ebuild36
-rw-r--r--dev-python/natgrid/Manifest1
-rw-r--r--dev-python/natgrid/metadata.xml14
-rw-r--r--dev-python/natgrid/natgrid-0.2.1-r2.ebuild33
-rw-r--r--dev-python/natsort/Manifest2
-rw-r--r--dev-python/natsort/metadata.xml8
-rw-r--r--dev-python/natsort/natsort-3.4.0.ebuild25
-rw-r--r--dev-python/natsort/natsort-4.0.3.ebuild29
-rw-r--r--dev-python/nautilus-python/Manifest1
-rw-r--r--dev-python/nautilus-python/metadata.xml8
-rw-r--r--dev-python/nautilus-python/nautilus-python-1.1-r1.ebuild50
-rw-r--r--dev-python/nautilus-python/nautilus-python-1.1-r2.ebuild52
-rw-r--r--dev-python/ndg-httpsclient/Manifest2
-rw-r--r--dev-python/ndg-httpsclient/metadata.xml9
-rw-r--r--dev-python/ndg-httpsclient/ndg-httpsclient-0.3.2.ebuild24
-rw-r--r--dev-python/ndg-httpsclient/ndg-httpsclient-0.4.0.ebuild26
-rw-r--r--dev-python/neovim-python-client/Manifest1
-rw-r--r--dev-python/neovim-python-client/metadata.xml9
-rw-r--r--dev-python/neovim-python-client/neovim-python-client-0.0.37.ebuild26
-rw-r--r--dev-python/netaddr/Manifest4
-rw-r--r--dev-python/netaddr/metadata.xml19
-rw-r--r--dev-python/netaddr/netaddr-0.7.12.ebuild24
-rw-r--r--dev-python/netaddr/netaddr-0.7.13.ebuild25
-rw-r--r--dev-python/netaddr/netaddr-0.7.14.ebuild25
-rw-r--r--dev-python/netaddr/netaddr-0.7.15.ebuild33
-rw-r--r--dev-python/netcdf4-python/Manifest1
-rw-r--r--dev-python/netcdf4-python/metadata.xml8
-rw-r--r--dev-python/netcdf4-python/netcdf4-python-1.0.4.ebuild33
-rw-r--r--dev-python/netifaces/Manifest2
-rw-r--r--dev-python/netifaces/files/netifaces-0.10.4-remove-osx-fix.patch15
-rw-r--r--dev-python/netifaces/files/netifaces-0.8-remove-osx-fix.patch23
-rw-r--r--dev-python/netifaces/metadata.xml12
-rw-r--r--dev-python/netifaces/netifaces-0.10.4.ebuild23
-rw-r--r--dev-python/netifaces/netifaces-0.8-r2.ebuild23
-rw-r--r--dev-python/netlib/Manifest5
-rw-r--r--dev-python/netlib/metadata.xml12
-rw-r--r--dev-python/netlib/netlib-0.10.1.ebuild30
-rw-r--r--dev-python/netlib/netlib-0.10.ebuild30
-rw-r--r--dev-python/netlib/netlib-0.11.1.ebuild31
-rw-r--r--dev-python/netlib/netlib-0.11.2.ebuild31
-rw-r--r--dev-python/netlib/netlib-0.12.0.ebuild31
-rw-r--r--dev-python/networkx/Manifest2
-rw-r--r--dev-python/networkx/metadata.xml20
-rw-r--r--dev-python/networkx/networkx-1.10.ebuild72
-rw-r--r--dev-python/networkx/networkx-1.9.1.ebuild71
-rw-r--r--dev-python/nevow/Manifest1
-rw-r--r--dev-python/nevow/metadata.xml8
-rw-r--r--dev-python/nevow/nevow-0.11.1-r1.ebuild50
-rw-r--r--dev-python/nevow/nevow-0.11.1.ebuild41
-rw-r--r--dev-python/newt_syrup/Manifest1
-rw-r--r--dev-python/newt_syrup/metadata.xml5
-rw-r--r--dev-python/newt_syrup/newt_syrup-0.1.2-r1.ebuild22
-rw-r--r--dev-python/nltk/Manifest3
-rw-r--r--dev-python/nltk/files/fix-newer-setuptools.patch32
-rw-r--r--dev-python/nltk/metadata.xml18
-rw-r--r--dev-python/nltk/nltk-2.0.4.ebuild31
-rw-r--r--dev-python/nltk/nltk-3.0.3.ebuild23
-rw-r--r--dev-python/nltk/nltk-3.0.4.ebuild22
-rw-r--r--dev-python/nose-cover3/Manifest1
-rw-r--r--dev-python/nose-cover3/metadata.xml9
-rw-r--r--dev-python/nose-cover3/nose-cover3-0.1.0-r1.ebuild22
-rw-r--r--dev-python/nose-exclude/Manifest3
-rw-r--r--dev-python/nose-exclude/metadata.xml16
-rw-r--r--dev-python/nose-exclude/nose-exclude-0.1.9.ebuild19
-rw-r--r--dev-python/nose-exclude/nose-exclude-0.2.0.ebuild25
-rw-r--r--dev-python/nose-exclude/nose-exclude-0.3.0.ebuild25
-rw-r--r--dev-python/nose-testconfig/Manifest1
-rw-r--r--dev-python/nose-testconfig/metadata.xml9
-rw-r--r--dev-python/nose-testconfig/nose-testconfig-0.9.ebuild26
-rw-r--r--dev-python/nose/Manifest3
-rw-r--r--dev-python/nose/files/nose-0.11.0-disable_intersphinx.patch17
-rw-r--r--dev-python/nose/files/nose-1.2.1-skiptest.patch23
-rw-r--r--dev-python/nose/files/nose-1.3.1-doctest.patch45
-rw-r--r--dev-python/nose/files/nose-1.3.1-pypy-test.patch42
-rw-r--r--dev-python/nose/files/nose-1.3.1-python3.4.patch41
-rw-r--r--dev-python/nose/files/nose-1.3.1-version.patch16
-rw-r--r--dev-python/nose/metadata.xml9
-rw-r--r--dev-python/nose/nose-1.3.4.ebuild84
-rw-r--r--dev-python/nose/nose-1.3.6.ebuild89
-rw-r--r--dev-python/nose/nose-1.3.7.ebuild89
-rw-r--r--dev-python/nose/nose-9999.ebuild96
-rw-r--r--dev-python/nose_fixes/Manifest1
-rw-r--r--dev-python/nose_fixes/metadata.xml8
-rw-r--r--dev-python/nose_fixes/nose_fixes-1.3.ebuild38
-rw-r--r--dev-python/nosehtmloutput/Manifest2
-rw-r--r--dev-python/nosehtmloutput/metadata.xml16
-rw-r--r--dev-python/nosehtmloutput/nosehtmloutput-0.0.4-r1.ebuild21
-rw-r--r--dev-python/nosehtmloutput/nosehtmloutput-0.0.5.ebuild21
-rw-r--r--dev-python/nosexcover/Manifest1
-rw-r--r--dev-python/nosexcover/metadata.xml10
-rw-r--r--dev-python/nosexcover/nosexcover-1.0.10.ebuild24
-rw-r--r--dev-python/notify-python/Manifest1
-rw-r--r--dev-python/notify-python/files/notify-python-0.1.1-libnotify-0.7.patch37
-rw-r--r--dev-python/notify-python/metadata.xml9
-rw-r--r--dev-python/notify-python/notify-python-0.1.1-r3.ebuild56
-rw-r--r--dev-python/numba/Manifest3
-rw-r--r--dev-python/numba/files/numba-0.19.2-docbuild.patch17
-rw-r--r--dev-python/numba/metadata.xml17
-rw-r--r--dev-python/numba/numba-0.18.2.ebuild50
-rw-r--r--dev-python/numba/numba-0.19.2.ebuild69
-rw-r--r--dev-python/numba/numba-0.20.0.ebuild69
-rw-r--r--dev-python/numdisplay/Manifest1
-rw-r--r--dev-python/numdisplay/metadata.xml10
-rw-r--r--dev-python/numdisplay/numdisplay-1.6.0-r1.ebuild27
-rw-r--r--dev-python/numexpr/Manifest3
-rw-r--r--dev-python/numexpr/metadata.xml23
-rw-r--r--dev-python/numexpr/numexpr-2.4.1.ebuild48
-rw-r--r--dev-python/numexpr/numexpr-2.4.3.ebuild54
-rw-r--r--dev-python/numexpr/numexpr-2.4.ebuild48
-rw-r--r--dev-python/numpy/Manifest15
-rw-r--r--dev-python/numpy/files/numpy-1.8.0-f2py-insecure-temporary.patch214
-rw-r--r--dev-python/numpy/files/numpy-1.8.0-no-hardcode-blas.patch25
-rw-r--r--dev-python/numpy/files/numpy-1.9.0-OO.patch91
-rw-r--r--dev-python/numpy/files/numpy-1.9.0-no-hardcode-blas.patch25
-rw-r--r--dev-python/numpy/files/numpy-1.9.2-no-hardcode-blas.patch35
-rw-r--r--dev-python/numpy/metadata.xml17
-rw-r--r--dev-python/numpy/numpy-1.8.0-r1.ebuild147
-rw-r--r--dev-python/numpy/numpy-1.8.1.ebuild145
-rw-r--r--dev-python/numpy/numpy-1.8.2.ebuild145
-rw-r--r--dev-python/numpy/numpy-1.9.0-r1.ebuild148
-rw-r--r--dev-python/numpy/numpy-1.9.0.ebuild146
-rw-r--r--dev-python/numpy/numpy-1.9.1.ebuild146
-rw-r--r--dev-python/numpy/numpy-1.9.2.ebuild146
-rw-r--r--dev-python/numpydoc/Manifest2
-rw-r--r--dev-python/numpydoc/metadata.xml8
-rw-r--r--dev-python/numpydoc/numpydoc-0.4-r1.ebuild34
-rw-r--r--dev-python/numpydoc/numpydoc-0.5.ebuild32
-rw-r--r--dev-python/oauth/Manifest1
-rw-r--r--dev-python/oauth/metadata.xml8
-rw-r--r--dev-python/oauth/oauth-1.0.1-r1.ebuild20
-rw-r--r--dev-python/oauth2/Manifest1
-rw-r--r--dev-python/oauth2/files/oauth2-exclude-tests.patch13
-rw-r--r--dev-python/oauth2/metadata.xml8
-rw-r--r--dev-python/oauth2/oauth2-1.5.211-r1.ebuild30
-rw-r--r--dev-python/oauth2client/Manifest2
-rw-r--r--dev-python/oauth2client/metadata.xml8
-rw-r--r--dev-python/oauth2client/oauth2client-1.4.11.ebuild37
-rw-r--r--dev-python/oauth2client/oauth2client-1.4.6.ebuild37
-rw-r--r--dev-python/oauthlib/Manifest2
-rw-r--r--dev-python/oauthlib/metadata.xml9
-rw-r--r--dev-python/oauthlib/oauthlib-0.7.2.ebuild32
-rw-r--r--dev-python/oauthlib/oauthlib-1.0.1.ebuild34
-rw-r--r--dev-python/objgraph/Manifest2
-rw-r--r--dev-python/objgraph/metadata.xml12
-rw-r--r--dev-python/objgraph/objgraph-1.7.2.ebuild27
-rw-r--r--dev-python/objgraph/objgraph-1.8.1.ebuild27
-rw-r--r--dev-python/oct2py/Manifest2
-rw-r--r--dev-python/oct2py/files/oct2py-1.3.0-test.patch21
-rw-r--r--dev-python/oct2py/metadata.xml13
-rw-r--r--dev-python/oct2py/oct2py-0.4.0-r1.ebuild45
-rw-r--r--dev-python/oct2py/oct2py-1.3.0-r1.ebuild63
-rw-r--r--dev-python/oct2py/oct2py-1.3.0.ebuild52
-rw-r--r--dev-python/odfpy/Manifest2
-rw-r--r--dev-python/odfpy/files/odfpy-0.9.4-tests.patch32
-rw-r--r--dev-python/odfpy/metadata.xml8
-rw-r--r--dev-python/odfpy/odfpy-0.9.6-r1.ebuild33
-rw-r--r--dev-python/odfpy/odfpy-1.3.1.ebuild41
-rw-r--r--dev-python/odo/Manifest2
-rw-r--r--dev-python/odo/metadata.xml9
-rw-r--r--dev-python/odo/odo-0.3.2.ebuild50
-rw-r--r--dev-python/odo/odo-0.3.3.ebuild50
-rw-r--r--dev-python/oosuite/Manifest2
-rw-r--r--dev-python/oosuite/metadata.xml23
-rw-r--r--dev-python/oosuite/oosuite-0.45.ebuild109
-rw-r--r--dev-python/oosuite/oosuite-0.50.ebuild109
-rw-r--r--dev-python/openpyxl/Manifest3
-rw-r--r--dev-python/openpyxl/metadata.xml12
-rw-r--r--dev-python/openpyxl/openpyxl-2.1.0.ebuild45
-rw-r--r--dev-python/openpyxl/openpyxl-2.2.3.ebuild33
-rw-r--r--dev-python/openpyxl/openpyxl-2.2.4.ebuild33
-rw-r--r--dev-python/openpyxl/openpyxl-9999.ebuild31
-rw-r--r--dev-python/openstack-nose-plugin/Manifest1
-rw-r--r--dev-python/openstack-nose-plugin/metadata.xml17
-rw-r--r--dev-python/openstack-nose-plugin/openstack-nose-plugin-0.11-r2.ebuild24
-rw-r--r--dev-python/optcomplete/Manifest1
-rw-r--r--dev-python/optcomplete/metadata.xml17
-rw-r--r--dev-python/optcomplete/optcomplete-1.2-r1.ebuild26
-rw-r--r--dev-python/ordereddict/Manifest1
-rw-r--r--dev-python/ordereddict/metadata.xml15
-rw-r--r--dev-python/ordereddict/ordereddict-1.1.ebuild23
-rw-r--r--dev-python/os-diskconfig-python-novaclient-ext/Manifest2
-rw-r--r--dev-python/os-diskconfig-python-novaclient-ext/metadata.xml16
-rw-r--r--dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1-r1.ebuild21
-rw-r--r--dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1.ebuild21
-rw-r--r--dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.2.ebuild21
-rw-r--r--dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-9999.ebuild23
-rw-r--r--dev-python/os-networksv2-python-novaclient-ext/Manifest2
-rw-r--r--dev-python/os-networksv2-python-novaclient-ext/metadata.xml16
-rw-r--r--dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21-r1.ebuild21
-rw-r--r--dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21.ebuild21
-rw-r--r--dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.25.ebuild21
-rw-r--r--dev-python/os-virtual-interfacesv2-python-novaclient-ext/Manifest2
-rw-r--r--dev-python/os-virtual-interfacesv2-python-novaclient-ext/metadata.xml16
-rw-r--r--dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.15.ebuild21
-rw-r--r--dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.19.ebuild21
-rw-r--r--dev-python/oslo-concurrency/Manifest3
-rw-r--r--dev-python/oslo-concurrency/metadata.xml15
-rw-r--r--dev-python/oslo-concurrency/oslo-concurrency-1.8.0.ebuild55
-rw-r--r--dev-python/oslo-concurrency/oslo-concurrency-1.8.1.ebuild61
-rw-r--r--dev-python/oslo-concurrency/oslo-concurrency-1.8.2.ebuild62
-rw-r--r--dev-python/oslo-config/Manifest9
-rw-r--r--dev-python/oslo-config/metadata.xml17
-rw-r--r--dev-python/oslo-config/oslo-config-1.10.0.ebuild58
-rw-r--r--dev-python/oslo-config/oslo-config-1.11.0.ebuild55
-rw-r--r--dev-python/oslo-config/oslo-config-1.12.1.ebuild58
-rw-r--r--dev-python/oslo-config/oslo-config-1.3.0.ebuild45
-rw-r--r--dev-python/oslo-config/oslo-config-1.4.0.ebuild50
-rw-r--r--dev-python/oslo-config/oslo-config-1.6.0.ebuild52
-rw-r--r--dev-python/oslo-config/oslo-config-1.6.1.ebuild53
-rw-r--r--dev-python/oslo-config/oslo-config-1.7.0.ebuild54
-rw-r--r--dev-python/oslo-config/oslo-config-1.9.3.ebuild54
-rw-r--r--dev-python/oslo-context/Manifest3
-rw-r--r--dev-python/oslo-context/metadata.xml15
-rw-r--r--dev-python/oslo-context/oslo-context-0.1.0-r1.ebuild41
-rw-r--r--dev-python/oslo-context/oslo-context-0.1.0.ebuild41
-rw-r--r--dev-python/oslo-context/oslo-context-0.2.0.ebuild41
-rw-r--r--dev-python/oslo-context/oslo-context-0.3.0.ebuild41
-rw-r--r--dev-python/oslo-db/Manifest6
-rw-r--r--dev-python/oslo-db/metadata.xml16
-rw-r--r--dev-python/oslo-db/oslo-db-1.0.2.ebuild72
-rw-r--r--dev-python/oslo-db/oslo-db-1.4.1.ebuild63
-rw-r--r--dev-python/oslo-db/oslo-db-1.7.1.ebuild58
-rw-r--r--dev-python/oslo-db/oslo-db-1.7.2.ebuild58
-rw-r--r--dev-python/oslo-db/oslo-db-1.8.0.ebuild58
-rw-r--r--dev-python/oslo-db/oslo-db-1.9.0.ebuild58
-rw-r--r--dev-python/oslo-i18n/Manifest5
-rw-r--r--dev-python/oslo-i18n/metadata.xml15
-rw-r--r--dev-python/oslo-i18n/oslo-i18n-1.0.0.ebuild58
-rw-r--r--dev-python/oslo-i18n/oslo-i18n-1.3.1.ebuild59
-rw-r--r--dev-python/oslo-i18n/oslo-i18n-1.4.0.ebuild59
-rw-r--r--dev-python/oslo-i18n/oslo-i18n-1.5.0.ebuild59
-rw-r--r--dev-python/oslo-i18n/oslo-i18n-1.6.0.ebuild60
-rw-r--r--dev-python/oslo-log/Manifest3
-rw-r--r--dev-python/oslo-log/metadata.xml18
-rw-r--r--dev-python/oslo-log/oslo-log-0.3.0.ebuild53
-rw-r--r--dev-python/oslo-log/oslo-log-1.0.0.ebuild53
-rw-r--r--dev-python/oslo-log/oslo-log-1.1.0.ebuild54
-rw-r--r--dev-python/oslo-messaging/Manifest8
-rw-r--r--dev-python/oslo-messaging/metadata.xml15
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.10.0.ebuild66
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.4.1.ebuild54
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.5.1.ebuild59
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.7.0.ebuild64
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.8.0.ebuild64
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.8.2.ebuild64
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.8.3.ebuild73
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-1.9.0.ebuild75
-rw-r--r--dev-python/oslo-middleware/Manifest6
-rw-r--r--dev-python/oslo-middleware/metadata.xml15
-rw-r--r--dev-python/oslo-middleware/oslo-middleware-0.4.0.ebuild51
-rw-r--r--dev-python/oslo-middleware/oslo-middleware-0.5.0.ebuild51
-rw-r--r--dev-python/oslo-middleware/oslo-middleware-1.0.0.ebuild51
-rw-r--r--dev-python/oslo-middleware/oslo-middleware-1.1.0.ebuild51
-rw-r--r--dev-python/oslo-middleware/oslo-middleware-1.2.0.ebuild51
-rw-r--r--dev-python/oslo-middleware/oslo-middleware-1.3.0.ebuild51
-rw-r--r--dev-python/oslo-policy/Manifest1
-rw-r--r--dev-python/oslo-policy/metadata.xml15
-rw-r--r--dev-python/oslo-policy/oslo-policy-0.3.2.ebuild42
-rw-r--r--dev-python/oslo-rootwrap/Manifest3
-rw-r--r--dev-python/oslo-rootwrap/metadata.xml15
-rw-r--r--dev-python/oslo-rootwrap/oslo-rootwrap-1.2.0.ebuild40
-rw-r--r--dev-python/oslo-rootwrap/oslo-rootwrap-1.3.0.ebuild44
-rw-r--r--dev-python/oslo-rootwrap/oslo-rootwrap-1.6.0.ebuild44
-rw-r--r--dev-python/oslo-serialization/Manifest4
-rw-r--r--dev-python/oslo-serialization/metadata.xml15
-rw-r--r--dev-python/oslo-serialization/oslo-serialization-1.0.0-r1.ebuild75
-rw-r--r--dev-python/oslo-serialization/oslo-serialization-1.0.0.ebuild75
-rw-r--r--dev-python/oslo-serialization/oslo-serialization-1.3.0-r1.ebuild79
-rw-r--r--dev-python/oslo-serialization/oslo-serialization-1.3.0.ebuild79
-rw-r--r--dev-python/oslo-serialization/oslo-serialization-1.4.0.ebuild79
-rw-r--r--dev-python/oslo-serialization/oslo-serialization-1.5.0.ebuild80
-rw-r--r--dev-python/oslo-sphinx/Manifest3
-rw-r--r--dev-python/oslo-sphinx/metadata.xml15
-rw-r--r--dev-python/oslo-sphinx/oslo-sphinx-2.2.0-r1.ebuild28
-rw-r--r--dev-python/oslo-sphinx/oslo-sphinx-2.5.0.ebuild32
-rw-r--r--dev-python/oslo-sphinx/oslo-sphinx-3.0.0.ebuild42
-rw-r--r--dev-python/oslo-utils/Manifest6
-rw-r--r--dev-python/oslo-utils/metadata.xml15
-rw-r--r--dev-python/oslo-utils/oslo-utils-1.0.0.ebuild74
-rw-r--r--dev-python/oslo-utils/oslo-utils-1.1.0.ebuild85
-rw-r--r--dev-python/oslo-utils/oslo-utils-1.2.1.ebuild85
-rw-r--r--dev-python/oslo-utils/oslo-utils-1.3.0.ebuild84
-rw-r--r--dev-python/oslo-utils/oslo-utils-1.4.0.ebuild84
-rw-r--r--dev-python/oslo-utils/oslo-utils-1.5.0.ebuild85
-rw-r--r--dev-python/oslo-vmware/Manifest3
-rw-r--r--dev-python/oslo-vmware/metadata.xml14
-rw-r--r--dev-python/oslo-vmware/oslo-vmware-0.11.1.ebuild61
-rw-r--r--dev-python/oslo-vmware/oslo-vmware-0.11.2.ebuild74
-rw-r--r--dev-python/oslo-vmware/oslo-vmware-0.7.0.ebuild55
-rw-r--r--dev-python/oslotest/Manifest4
-rw-r--r--dev-python/oslotest/metadata.xml19
-rw-r--r--dev-python/oslotest/oslotest-1.3.0.ebuild72
-rw-r--r--dev-python/oslotest/oslotest-1.5.0.ebuild70
-rw-r--r--dev-python/oslotest/oslotest-1.5.1.ebuild70
-rw-r--r--dev-python/oslotest/oslotest-1.6.0.ebuild70
-rw-r--r--dev-python/osprofiler/Manifest1
-rw-r--r--dev-python/osprofiler/metadata.xml16
-rw-r--r--dev-python/osprofiler/osprofiler-0.3.0.ebuild26
-rw-r--r--dev-python/pSQL/Manifest2
-rw-r--r--dev-python/pSQL/metadata.xml9
-rw-r--r--dev-python/pSQL/pSQL-1.2.0.ebuild31
-rw-r--r--dev-python/pSQL/pSQL-1.2.1.ebuild31
-rw-r--r--dev-python/paisley/Manifest1
-rw-r--r--dev-python/paisley/metadata.xml9
-rw-r--r--dev-python/paisley/paisley-0.3.1-r1.ebuild27
-rw-r--r--dev-python/paisley/paisley-0.3.1.ebuild25
-rw-r--r--dev-python/pandas/Manifest1
-rw-r--r--dev-python/pandas/metadata.xml21
-rw-r--r--dev-python/pandas/pandas-0.16.2.ebuild128
-rw-r--r--dev-python/pandas/pandas-9999.ebuild126
-rw-r--r--dev-python/paramiko/Manifest5
-rw-r--r--dev-python/paramiko/metadata.xml21
-rw-r--r--dev-python/paramiko/paramiko-1.10.1.ebuild33
-rw-r--r--dev-python/paramiko/paramiko-1.12.2.ebuild34
-rw-r--r--dev-python/paramiko/paramiko-1.13.0.ebuild36
-rw-r--r--dev-python/paramiko/paramiko-1.15.1-r1.ebuild38
-rw-r--r--dev-python/paramiko/paramiko-1.15.2.ebuild39
-rw-r--r--dev-python/paramunittest/Manifest1
-rw-r--r--dev-python/paramunittest/metadata.xml14
-rw-r--r--dev-python/paramunittest/paramunittest-0.2.ebuild24
-rw-r--r--dev-python/parse-type/Manifest1
-rw-r--r--dev-python/parse-type/metadata.xml14
-rw-r--r--dev-python/parse-type/parse-type-0.3.4.ebuild39
-rw-r--r--dev-python/parse/Manifest1
-rw-r--r--dev-python/parse/metadata.xml14
-rw-r--r--dev-python/parse/parse-1.6.4.ebuild24
-rw-r--r--dev-python/parsedatetime/Manifest1
-rw-r--r--dev-python/parsedatetime/metadata.xml9
-rw-r--r--dev-python/parsedatetime/parsedatetime-1.5.ebuild23
-rw-r--r--dev-python/parsley/Manifest1
-rw-r--r--dev-python/parsley/metadata.xml11
-rw-r--r--dev-python/parsley/parsley-1.2.ebuild18
-rw-r--r--dev-python/passlib/Manifest2
-rw-r--r--dev-python/passlib/metadata.xml16
-rw-r--r--dev-python/passlib/passlib-1.6.1-r1.ebuild30
-rw-r--r--dev-python/passlib/passlib-1.6.2.ebuild39
-rw-r--r--dev-python/passwordmeter/Manifest1
-rw-r--r--dev-python/passwordmeter/metadata.xml12
-rw-r--r--dev-python/passwordmeter/passwordmeter-0.1.7-r1.ebuild38
-rw-r--r--dev-python/paste/Manifest2
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-email-mime.patch19
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-fix-tests-for-pypy.patch24
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-hmac.patch11
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-python27-lambda.patch12
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-rfc822.patch14
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-types.patch57
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-unbundle-stdlib.patch1211
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-unbundle-tempita.patch1860
-rw-r--r--dev-python/paste/files/paste-1.7.5.1-userdict.patch64
-rw-r--r--dev-python/paste/files/paste-2.0.2-unbundle-tempita.patch36
-rw-r--r--dev-python/paste/metadata.xml17
-rw-r--r--dev-python/paste/paste-1.7.5.1-r1.ebuild69
-rw-r--r--dev-python/paste/paste-1.7.5.1-r2.ebuild82
-rw-r--r--dev-python/paste/paste-2.0.2.ebuild73
-rw-r--r--dev-python/pastedeploy/Manifest1
-rw-r--r--dev-python/pastedeploy/metadata.xml14
-rw-r--r--dev-python/pastedeploy/pastedeploy-1.5.2.ebuild31
-rw-r--r--dev-python/pastescript/Manifest1
-rw-r--r--dev-python/pastescript/files/pastescript-setup.py-exclude-tests.patch19
-rw-r--r--dev-python/pastescript/metadata.xml8
-rw-r--r--dev-python/pastescript/pastescript-2.0.2.ebuild57
-rw-r--r--dev-python/path-py/Manifest2
-rw-r--r--dev-python/path-py/metadata.xml9
-rw-r--r--dev-python/path-py/path-py-7.2.ebuild31
-rw-r--r--dev-python/path-py/path-py-7.3.ebuild31
-rw-r--r--dev-python/pathlib/Manifest1
-rw-r--r--dev-python/pathlib/metadata.xml8
-rw-r--r--dev-python/pathlib/pathlib-1.0.1.ebuild18
-rw-r--r--dev-python/pathtools/Manifest1
-rw-r--r--dev-python/pathtools/metadata.xml11
-rw-r--r--dev-python/pathtools/pathtools-0.1.2.ebuild19
-rw-r--r--dev-python/patsy/Manifest3
-rw-r--r--dev-python/patsy/metadata.xml13
-rw-r--r--dev-python/patsy/patsy-0.2.0.ebuild42
-rw-r--r--dev-python/patsy/patsy-0.2.1.ebuild42
-rw-r--r--dev-python/patsy/patsy-0.3.0-r1.ebuild44
-rw-r--r--dev-python/patsy/patsy-0.3.0.ebuild42
-rw-r--r--dev-python/paver/Manifest2
-rw-r--r--dev-python/paver/files/paver-1.2.0-skip-cog-tests.patch34
-rw-r--r--dev-python/paver/metadata.xml9
-rw-r--r--dev-python/paver/paver-1.2.3.ebuild31
-rw-r--r--dev-python/paver/paver-1.2.4.ebuild33
-rw-r--r--dev-python/pbkdf2/Manifest1
-rw-r--r--dev-python/pbkdf2/metadata.xml16
-rw-r--r--dev-python/pbkdf2/pbkdf2-1.3.ebuild18
-rw-r--r--dev-python/pbr/Manifest8
-rw-r--r--dev-python/pbr/metadata.xml17
-rw-r--r--dev-python/pbr/pbr-0.10.8.ebuild63
-rw-r--r--dev-python/pbr/pbr-0.11.0.ebuild63
-rw-r--r--dev-python/pbr/pbr-0.8.2-r1.ebuild61
-rw-r--r--dev-python/pbr/pbr-0.8.2.ebuild51
-rw-r--r--dev-python/pbr/pbr-1.0.1.ebuild66
-rw-r--r--dev-python/pbr/pbr-1.1.1.ebuild67
-rw-r--r--dev-python/pbr/pbr-1.2.0.ebuild66
-rw-r--r--dev-python/pbr/pbr-1.3.0.ebuild64
-rw-r--r--dev-python/pbr/pbr-1.4.0.ebuild65
-rw-r--r--dev-python/pdfrw/Manifest2
-rw-r--r--dev-python/pdfrw/metadata.xml8
-rw-r--r--dev-python/pdfrw/pdfrw-0.1.ebuild17
-rw-r--r--dev-python/pdfrw/pdfrw-0.2.ebuild17
-rw-r--r--dev-python/peak-rules/Manifest1
-rw-r--r--dev-python/peak-rules/metadata.xml5
-rw-r--r--dev-python/peak-rules/peak-rules-0.5.ebuild44
-rw-r--r--dev-python/peewee/Manifest4
-rw-r--r--dev-python/peewee/metadata.xml8
-rw-r--r--dev-python/peewee/peewee-2.5.1.ebuild38
-rw-r--r--dev-python/peewee/peewee-2.6.0.ebuild39
-rw-r--r--dev-python/peewee/peewee-2.6.1.ebuild39
-rw-r--r--dev-python/peewee/peewee-2.6.2.ebuild39
-rw-r--r--dev-python/pep8/Manifest5
-rw-r--r--dev-python/pep8/metadata.xml9
-rw-r--r--dev-python/pep8/pep8-1.4.5.ebuild27
-rw-r--r--dev-python/pep8/pep8-1.5.6.ebuild35
-rw-r--r--dev-python/pep8/pep8-1.5.7.ebuild35
-rw-r--r--dev-python/pep8/pep8-1.6.1.ebuild35
-rw-r--r--dev-python/pep8/pep8-1.6.2.ebuild35
-rw-r--r--dev-python/peppercorn/Manifest2
-rw-r--r--dev-python/peppercorn/metadata.xml9
-rw-r--r--dev-python/peppercorn/peppercorn-0.4-r1.ebuild40
-rw-r--r--dev-python/peppercorn/peppercorn-0.5.ebuild46
-rw-r--r--dev-python/pexpect/Manifest5
-rw-r--r--dev-python/pexpect/metadata.xml9
-rw-r--r--dev-python/pexpect/pexpect-2.4-r1.ebuild26
-rw-r--r--dev-python/pexpect/pexpect-2.4.ebuild35
-rw-r--r--dev-python/pexpect/pexpect-3.0.ebuild29
-rw-r--r--dev-python/pexpect/pexpect-3.1.ebuild29
-rw-r--r--dev-python/pexpect/pexpect-3.2.ebuild34
-rw-r--r--dev-python/pexpect/pexpect-3.3.ebuild36
-rw-r--r--dev-python/pgasync/Manifest1
-rw-r--r--dev-python/pgasync/metadata.xml6
-rw-r--r--dev-python/pgasync/pgasync-2.01-r1.ebuild32
-rw-r--r--dev-python/pgmagick/Manifest2
-rw-r--r--dev-python/pgmagick/metadata.xml9
-rw-r--r--dev-python/pgmagick/pgmagick-0.5.10.ebuild31
-rw-r--r--dev-python/pgmagick/pgmagick-0.5.11.ebuild31
-rw-r--r--dev-python/pgpdump/Manifest1
-rw-r--r--dev-python/pgpdump/metadata.xml12
-rw-r--r--dev-python/pgpdump/pgpdump-1.5.ebuild18
-rw-r--r--dev-python/piddle/Manifest1
-rw-r--r--dev-python/piddle/metadata.xml26
-rw-r--r--dev-python/piddle/piddle-1.0.15-r1.ebuild22
-rw-r--r--dev-python/piddle/piddle-1.0.15.ebuild24
-rw-r--r--dev-python/pika/Manifest1
-rw-r--r--dev-python/pika/metadata.xml14
-rw-r--r--dev-python/pika/pika-0.9.14.ebuild20
-rw-r--r--dev-python/pillow/Manifest4
-rw-r--r--dev-python/pillow/files/imaging-1.1.7-no-xv.patch18
-rw-r--r--dev-python/pillow/files/pillow-2.0.0-delete_hardcoded_paths.patch178
-rw-r--r--dev-python/pillow/files/pillow-2.0.0-libm_linking.patch20
-rw-r--r--dev-python/pillow/files/pillow-2.8.1-ico-backport.patch36
-rw-r--r--dev-python/pillow/files/pillow-freetype-2.5.1.patch28
-rw-r--r--dev-python/pillow/metadata.xml12
-rw-r--r--dev-python/pillow/pillow-2.5.3-r1.ebuild109
-rw-r--r--dev-python/pillow/pillow-2.8.1.ebuild90
-rw-r--r--dev-python/pillow/pillow-2.8.2.ebuild90
-rw-r--r--dev-python/pillow/pillow-2.9.0.ebuild90
-rw-r--r--dev-python/pip/Manifest7
-rw-r--r--dev-python/pip/files/pip-6.0.2-disable-version-check.patch14
-rw-r--r--dev-python/pip/metadata.xml8
-rw-r--r--dev-python/pip/pip-1.5.6.ebuild37
-rw-r--r--dev-python/pip/pip-6.0.8.ebuild39
-rw-r--r--dev-python/pip/pip-6.1.1.ebuild38
-rw-r--r--dev-python/pip/pip-7.0.0.ebuild39
-rw-r--r--dev-python/pip/pip-7.0.1.ebuild39
-rw-r--r--dev-python/pip/pip-7.0.3.ebuild39
-rw-r--r--dev-python/pip/pip-7.1.0.ebuild39
-rw-r--r--dev-python/pivy/Manifest1
-rw-r--r--dev-python/pivy/metadata.xml9
-rw-r--r--dev-python/pivy/pivy-0.5_alpha20110303-r1.ebuild26
-rw-r--r--dev-python/pivy/pivy-9999.ebuild24
-rw-r--r--dev-python/pkgconfig/Manifest1
-rw-r--r--dev-python/pkgconfig/metadata.xml12
-rw-r--r--dev-python/pkgconfig/pkgconfig-1.1.0.ebuild33
-rw-r--r--dev-python/pkginfo/Manifest2
-rw-r--r--dev-python/pkginfo/metadata.xml12
-rw-r--r--dev-python/pkginfo/pkginfo-1.0.ebuild48
-rw-r--r--dev-python/pkginfo/pkginfo-1.2.1.ebuild51
-rw-r--r--dev-python/pkipplib/Manifest1
-rw-r--r--dev-python/pkipplib/metadata.xml6
-rw-r--r--dev-python/pkipplib/pkipplib-0.07-r1.ebuild21
-rw-r--r--dev-python/placefinder/Manifest1
-rw-r--r--dev-python/placefinder/metadata.xml9
-rw-r--r--dev-python/placefinder/placefinder-0.3.ebuild21
-rw-r--r--dev-python/platinfo/Manifest1
-rw-r--r--dev-python/platinfo/metadata.xml25
-rw-r--r--dev-python/platinfo/platinfo-0.15.0-r1.ebuild21
-rw-r--r--dev-python/ply/Manifest2
-rw-r--r--dev-python/ply/files/3.6-lextab-None.patch49
-rw-r--r--dev-python/ply/files/3.6-picklefile-IOError.patch24
-rw-r--r--dev-python/ply/metadata.xml18
-rw-r--r--dev-python/ply/ply-3.4-r1.ebuild41
-rw-r--r--dev-python/ply/ply-3.6-r1.ebuild45
-rw-r--r--dev-python/plyr/Manifest1
-rw-r--r--dev-python/plyr/metadata.xml17
-rw-r--r--dev-python/plyr/plyr-1.0.6.ebuild58
-rw-r--r--dev-python/pmw/Manifest3
-rw-r--r--dev-python/pmw/files/1.3.2-python2.5.patch54
-rw-r--r--dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch13
-rw-r--r--dev-python/pmw/files/pmw-1.3.3-install-no-docs.patch17
-rw-r--r--dev-python/pmw/metadata.xml8
-rw-r--r--dev-python/pmw/pmw-1.3.3-r2.ebuild57
-rw-r--r--dev-python/pmw/pmw-2.0.0-r2.ebuild60
-rw-r--r--dev-python/pmw/pmw-2.0.1.ebuild53
-rw-r--r--dev-python/polib/Manifest1
-rw-r--r--dev-python/polib/metadata.xml11
-rw-r--r--dev-python/polib/polib-1.0.4.ebuild39
-rw-r--r--dev-python/polygon/Manifest3
-rw-r--r--dev-python/polygon/metadata.xml10
-rw-r--r--dev-python/polygon/polygon-2.0.4.ebuild37
-rw-r--r--dev-python/polygon/polygon-2.0.6.ebuild26
-rw-r--r--dev-python/polygon/polygon-3.0.7.ebuild40
-rw-r--r--dev-python/posix_ipc/Manifest1
-rw-r--r--dev-python/posix_ipc/metadata.xml15
-rw-r--r--dev-python/posix_ipc/posix_ipc-0.9.8.ebuild23
-rw-r--r--dev-python/potr/Manifest1
-rw-r--r--dev-python/potr/metadata.xml15
-rw-r--r--dev-python/potr/potr-1.0.1.ebuild29
-rw-r--r--dev-python/pp/Manifest1
-rw-r--r--dev-python/pp/metadata.xml10
-rw-r--r--dev-python/pp/pp-1.6.4-r1.ebuild29
-rw-r--r--dev-python/pretend/Manifest2
-rw-r--r--dev-python/pretend/metadata.xml9
-rw-r--r--dev-python/pretend/pretend-1.0.7.ebuild19
-rw-r--r--dev-python/pretend/pretend-1.0.8.ebuild19
-rw-r--r--dev-python/pretty-yaml/Manifest2
-rw-r--r--dev-python/pretty-yaml/metadata.xml9
-rw-r--r--dev-python/pretty-yaml/pretty-yaml-14.05.7.ebuild23
-rw-r--r--dev-python/pretty-yaml/pretty-yaml-15.5.7.ebuild28
-rw-r--r--dev-python/prettytable/Manifest2
-rw-r--r--dev-python/prettytable/metadata.xml9
-rw-r--r--dev-python/prettytable/prettytable-0.7.1-r1.ebuild25
-rw-r--r--dev-python/prettytable/prettytable-0.7.2.ebuild25
-rw-r--r--dev-python/processing/Manifest1
-rw-r--r--dev-python/processing/metadata.xml8
-rw-r--r--dev-python/processing/processing-0.52-r1.ebuild33
-rw-r--r--dev-python/progressbar/Manifest1
-rw-r--r--dev-python/progressbar/files/progressbar-2.3-python3.3.patch94
-rw-r--r--dev-python/progressbar/metadata.xml8
-rw-r--r--dev-python/progressbar/progressbar-2.3-r1.ebuild22
-rw-r--r--dev-python/promise/Manifest1
-rw-r--r--dev-python/promise/metadata.xml13
-rw-r--r--dev-python/promise/promise-0.2.2-r1.ebuild31
-rw-r--r--dev-python/prompt_toolkit/Manifest7
-rw-r--r--dev-python/prompt_toolkit/metadata.xml12
-rw-r--r--dev-python/prompt_toolkit/prompt_toolkit-0.37.ebuild34
-rw-r--r--dev-python/prompt_toolkit/prompt_toolkit-0.38.ebuild34
-rw-r--r--dev-python/prompt_toolkit/prompt_toolkit-0.39.ebuild34
-rw-r--r--dev-python/prompt_toolkit/prompt_toolkit-0.41.ebuild34
-rw-r--r--dev-python/prompt_toolkit/prompt_toolkit-0.42.ebuild34
-rw-r--r--dev-python/prompt_toolkit/prompt_toolkit-0.43.ebuild34
-rw-r--r--dev-python/prompt_toolkit/prompt_toolkit-0.45.ebuild34
-rw-r--r--dev-python/protorpc/Manifest1
-rw-r--r--dev-python/protorpc/metadata.xml9
-rw-r--r--dev-python/protorpc/protorpc-0.10.0.ebuild22
-rw-r--r--dev-python/pssi/Manifest1
-rw-r--r--dev-python/pssi/metadata.xml9
-rw-r--r--dev-python/pssi/pssi-1.0-r1.ebuild20
-rw-r--r--dev-python/psutil/Manifest6
-rw-r--r--dev-python/psutil/metadata.xml9
-rw-r--r--dev-python/psutil/psutil-1.2.1.ebuild24
-rw-r--r--dev-python/psutil/psutil-2.1.3.ebuild26
-rw-r--r--dev-python/psutil/psutil-2.2.0.ebuild26
-rw-r--r--dev-python/psutil/psutil-2.2.1.ebuild26
-rw-r--r--dev-python/psutil/psutil-3.0.1.ebuild26
-rw-r--r--dev-python/psutil/psutil-3.1.1.ebuild26
-rw-r--r--dev-python/psycopg/Manifest5
-rw-r--r--dev-python/psycopg/files/psycopg-2.0.9-round-solaris.patch13
-rw-r--r--dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch34
-rw-r--r--dev-python/psycopg/files/psycopg-2.4.2-setup.py.patch13
-rw-r--r--dev-python/psycopg/metadata.xml8
-rw-r--r--dev-python/psycopg/psycopg-1.1.21-r1.ebuild73
-rw-r--r--dev-python/psycopg/psycopg-2.5.3.ebuild68
-rw-r--r--dev-python/psycopg/psycopg-2.5.4.ebuild73
-rw-r--r--dev-python/psycopg/psycopg-2.6.1.ebuild72
-rw-r--r--dev-python/psycopg/psycopg-2.6.ebuild72
-rw-r--r--dev-python/ptpython/Manifest7
-rw-r--r--dev-python/ptpython/metadata.xml12
-rw-r--r--dev-python/ptpython/ptpython-0.10.ebuild31
-rw-r--r--dev-python/ptpython/ptpython-0.11.ebuild31
-rw-r--r--dev-python/ptpython/ptpython-0.12.ebuild31
-rw-r--r--dev-python/ptpython/ptpython-0.15.ebuild31
-rw-r--r--dev-python/ptpython/ptpython-0.16.ebuild31
-rw-r--r--dev-python/ptpython/ptpython-0.18.ebuild31
-rw-r--r--dev-python/ptpython/ptpython-0.20.ebuild31
-rw-r--r--dev-python/ptyprocess/Manifest1
-rw-r--r--dev-python/ptyprocess/metadata.xml13
-rw-r--r--dev-python/ptyprocess/ptyprocess-0.5.ebuild24
-rw-r--r--dev-python/pudb/Manifest6
-rw-r--r--dev-python/pudb/metadata.xml13
-rw-r--r--dev-python/pudb/pudb-2013.3.6.ebuild21
-rw-r--r--dev-python/pudb/pudb-2013.5.1.ebuild21
-rw-r--r--dev-python/pudb/pudb-2014.1.ebuild21
-rw-r--r--dev-python/pudb/pudb-2015.1.ebuild21
-rw-r--r--dev-python/pudb/pudb-2015.2.ebuild21
-rw-r--r--dev-python/pudb/pudb-2015.3.ebuild21
-rw-r--r--dev-python/pudge/Manifest1
-rw-r--r--dev-python/pudge/metadata.xml8
-rw-r--r--dev-python/pudge/pudge-0.1.3-r1.ebuild36
-rw-r--r--dev-python/pupynere/Manifest1
-rw-r--r--dev-python/pupynere/metadata.xml10
-rw-r--r--dev-python/pupynere/pupynere-1.0.15-r1.ebuild28
-rw-r--r--dev-python/pxml/Manifest1
-rw-r--r--dev-python/pxml/metadata.xml12
-rw-r--r--dev-python/pxml/pxml-0.2.11-r1.ebuild39
-rw-r--r--dev-python/py-amqp/Manifest2
-rw-r--r--dev-python/py-amqp/files/py-amqp-1.0.6_disable_socket_tests.patch23
-rw-r--r--dev-python/py-amqp/files/py-amqp-1.3.3-disable_socket_tests.patch15
-rw-r--r--dev-python/py-amqp/metadata.xml13
-rw-r--r--dev-python/py-amqp/py-amqp-1.4.5.ebuild66
-rw-r--r--dev-python/py-amqp/py-amqp-1.4.6.ebuild66
-rw-r--r--dev-python/py-bcrypt/Manifest1
-rw-r--r--dev-python/py-bcrypt/metadata.xml5
-rw-r--r--dev-python/py-bcrypt/py-bcrypt-0.4.ebuild26
-rw-r--r--dev-python/py-notify/Manifest1
-rw-r--r--dev-python/py-notify/metadata.xml6
-rw-r--r--dev-python/py-notify/py-notify-0.3.1-r1.ebuild27
-rw-r--r--dev-python/py-smbpasswd/Manifest1
-rw-r--r--dev-python/py-smbpasswd/metadata.xml5
-rw-r--r--dev-python/py-smbpasswd/py-smbpasswd-1.0.1-r1.ebuild19
-rw-r--r--dev-python/py-smbpasswd/py-smbpasswd-1.0.1.ebuild22
-rw-r--r--dev-python/py-xmlrpc/Manifest2
-rw-r--r--dev-python/py-xmlrpc/files/py-xmlrpc_patch-extra.patch338
-rw-r--r--dev-python/py-xmlrpc/files/py-xmlrpc_rpcBase64.patch16
-rw-r--r--dev-python/py-xmlrpc/files/py-xmlrpc_rpcClient.patch15
-rw-r--r--dev-python/py-xmlrpc/files/py-xmlrpc_rpcDate.patch16
-rw-r--r--dev-python/py-xmlrpc/files/py-xmlrpc_rpcDispatch.patch16
-rw-r--r--dev-python/py-xmlrpc/files/py-xmlrpc_rpcSource.patch16
-rw-r--r--dev-python/py-xmlrpc/files/py-xmlrpc_rpcUtils.patch16
-rw-r--r--dev-python/py-xmlrpc/metadata.xml8
-rw-r--r--dev-python/py-xmlrpc/py-xmlrpc-0.8.8.3-r1.ebuild48
-rw-r--r--dev-python/py-xmlrpc/py-xmlrpc-0.9.ebuild28
-rw-r--r--dev-python/py/Manifest6
-rw-r--r--dev-python/py/metadata.xml8
-rw-r--r--dev-python/py/py-1.4.25.ebuild38
-rw-r--r--dev-python/py/py-1.4.26.ebuild39
-rw-r--r--dev-python/py/py-1.4.27.ebuild44
-rw-r--r--dev-python/py/py-1.4.28.ebuild44
-rw-r--r--dev-python/py/py-1.4.29.ebuild44
-rw-r--r--dev-python/py/py-1.4.30.ebuild44
-rw-r--r--dev-python/py2neo/Manifest2
-rw-r--r--dev-python/py2neo/metadata.xml12
-rw-r--r--dev-python/py2neo/py2neo-2.0.6.ebuild24
-rw-r--r--dev-python/py2neo/py2neo-2.0.7.ebuild24
-rw-r--r--dev-python/py2play/Manifest1
-rw-r--r--dev-python/py2play/metadata.xml6
-rw-r--r--dev-python/py2play/py2play-0.1.10-r1.ebuild24
-rw-r--r--dev-python/pyClamd/Manifest1
-rw-r--r--dev-python/pyClamd/metadata.xml11
-rw-r--r--dev-python/pyClamd/pyClamd-0.3.10.ebuild26
-rw-r--r--dev-python/pyGPG/Manifest1
-rw-r--r--dev-python/pyGPG/metadata.xml16
-rw-r--r--dev-python/pyGPG/pyGPG-0.1.ebuild40
-rw-r--r--dev-python/pyGPG/pyGPG-9999.ebuild46
-rw-r--r--dev-python/pyPdf/Manifest1
-rw-r--r--dev-python/pyPdf/metadata.xml18
-rw-r--r--dev-python/pyPdf/pyPdf-1.13-r1.ebuild16
-rw-r--r--dev-python/pyacoustid/Manifest1
-rw-r--r--dev-python/pyacoustid/metadata.xml13
-rw-r--r--dev-python/pyacoustid/pyacoustid-1.0.0-r1.ebuild27
-rw-r--r--dev-python/pyalsa/Manifest2
-rw-r--r--dev-python/pyalsa/files/pyalsa-1.0.25-no-build-symlinks.patch25
-rw-r--r--dev-python/pyalsa/files/pyalsa-1.0.29-no-build-symlinks.patch24
-rw-r--r--dev-python/pyalsa/metadata.xml6
-rw-r--r--dev-python/pyalsa/pyalsa-1.0.26-r1.ebuild35
-rw-r--r--dev-python/pyalsa/pyalsa-1.0.29.ebuild30
-rw-r--r--dev-python/pyalsaaudio/Manifest2
-rw-r--r--dev-python/pyalsaaudio/metadata.xml9
-rw-r--r--dev-python/pyalsaaudio/pyalsaaudio-0.7-r2.ebuild37
-rw-r--r--dev-python/pyalsaaudio/pyalsaaudio-0.8.2.ebuild40
-rw-r--r--dev-python/pyamazon/Manifest1
-rw-r--r--dev-python/pyamazon/metadata.xml6
-rw-r--r--dev-python/pyamazon/pyamazon-0.65.ebuild42
-rw-r--r--dev-python/pyamf/Manifest1
-rw-r--r--dev-python/pyamf/metadata.xml8
-rw-r--r--dev-python/pyamf/pyamf-0.7.0.ebuild35
-rw-r--r--dev-python/pyamg/Manifest1
-rw-r--r--dev-python/pyamg/files/2.0.0-stencil.patch11
-rw-r--r--dev-python/pyamg/files/pyamg-2.0.4-gcc-4.7.patch16
-rw-r--r--dev-python/pyamg/metadata.xml14
-rw-r--r--dev-python/pyamg/pyamg-2.1.0.ebuild30
-rw-r--r--dev-python/pyao/Manifest1
-rw-r--r--dev-python/pyao/files/pyao-0.82-new_api.patch71
-rw-r--r--dev-python/pyao/metadata.xml5
-rw-r--r--dev-python/pyao/pyao-0.82-r2.ebuild37
-rw-r--r--dev-python/pyao/pyao-0.82-r3.ebuild27
-rw-r--r--dev-python/pyasn1-modules/Manifest3
-rw-r--r--dev-python/pyasn1-modules/metadata.xml8
-rw-r--r--dev-python/pyasn1-modules/pyasn1-modules-0.0.5-r1.ebuild38
-rw-r--r--dev-python/pyasn1-modules/pyasn1-modules-0.0.6.ebuild38
-rw-r--r--dev-python/pyasn1-modules/pyasn1-modules-0.0.7.ebuild38
-rw-r--r--dev-python/pyasn1/Manifest2
-rw-r--r--dev-python/pyasn1/metadata.xml8
-rw-r--r--dev-python/pyasn1/pyasn1-0.1.7.ebuild32
-rw-r--r--dev-python/pyasn1/pyasn1-0.1.8.ebuild32
-rw-r--r--dev-python/pyatspi/Manifest3
-rw-r--r--dev-python/pyatspi/files/pyatspi-2.6.0-examples-python3.patch26
-rw-r--r--dev-python/pyatspi/metadata.xml5
-rw-r--r--dev-python/pyatspi/pyatspi-2.12.0.ebuild58
-rw-r--r--dev-python/pyatspi/pyatspi-2.14.0.ebuild58
-rw-r--r--dev-python/pyatspi/pyatspi-2.16.0.ebuild58
-rw-r--r--dev-python/pyaudio/Manifest1
-rw-r--r--dev-python/pyaudio/metadata.xml9
-rw-r--r--dev-python/pyaudio/pyaudio-0.2.8.ebuild28
-rw-r--r--dev-python/pyavm/Manifest1
-rw-r--r--dev-python/pyavm/metadata.xml12
-rw-r--r--dev-python/pyavm/pyavm-0.9.1.ebuild36
-rw-r--r--dev-python/pybloomfiltermmap/Manifest2
-rw-r--r--dev-python/pybloomfiltermmap/metadata.xml15
-rw-r--r--dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.11-r1.ebuild18
-rw-r--r--dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.14.ebuild25
-rw-r--r--dev-python/pybluez/Manifest1
-rw-r--r--dev-python/pybluez/metadata.xml11
-rw-r--r--dev-python/pybluez/pybluez-0.18-r1.ebuild31
-rw-r--r--dev-python/pycadf/Manifest3
-rw-r--r--dev-python/pycadf/files/CVE-2014-4615.patch29
-rw-r--r--dev-python/pycadf/metadata.xml15
-rw-r--r--dev-python/pycadf/pycadf-0.6.0.ebuild73
-rw-r--r--dev-python/pycadf/pycadf-0.8.0.ebuild67
-rw-r--r--dev-python/pycadf/pycadf-1.0.0.ebuild61
-rw-r--r--dev-python/pycairo/Manifest2
-rw-r--r--dev-python/pycairo/files/py2cairo-1.10.0-ppc-darwin.patch18
-rw-r--r--dev-python/pycairo/files/py2cairo-1.10.0-svg_check.patch126
-rw-r--r--dev-python/pycairo/files/py2cairo-1.10.0-xpyb.patch38
-rw-r--r--dev-python/pycairo/files/pycairo-1.10.0-svg_check.patch126
-rw-r--r--dev-python/pycairo/files/pycairo-1.10.0-waf-py3_4.patch11
-rw-r--r--dev-python/pycairo/files/pycairo-1.10.0-waf-unpack.patch12
-rw-r--r--dev-python/pycairo/files/pycairo-1.10.0-xpyb.patch41
-rw-r--r--dev-python/pycairo/files/pycairo-1.8.10-pkgconfig_dir.patch11
-rw-r--r--dev-python/pycairo/files/pycairo-1.8.8-svg_check.patch116
-rw-r--r--dev-python/pycairo/metadata.xml5
-rw-r--r--dev-python/pycairo/pycairo-1.10.0-r4.ebuild138
-rw-r--r--dev-python/pycallgraph/Manifest1
-rw-r--r--dev-python/pycallgraph/files/python3.3-tests.patch87
-rw-r--r--dev-python/pycallgraph/metadata.xml13
-rw-r--r--dev-python/pycallgraph/pycallgraph-1.0.1.ebuild70
-rw-r--r--dev-python/pycanberra/Manifest1
-rw-r--r--dev-python/pycanberra/metadata.xml10
-rw-r--r--dev-python/pycanberra/pycanberra-0_pre20130515.ebuild32
-rw-r--r--dev-python/pycdf/Manifest1
-rw-r--r--dev-python/pycdf/metadata.xml8
-rw-r--r--dev-python/pycdf/pycdf-0.6.3-r1.ebuild32
-rw-r--r--dev-python/pycdio/Manifest1
-rw-r--r--dev-python/pycdio/metadata.xml11
-rw-r--r--dev-python/pycdio/pycdio-0.20-r1.ebuild44
-rw-r--r--dev-python/pychart/Manifest2
-rw-r--r--dev-python/pychart/metadata.xml5
-rw-r--r--dev-python/pychart/pychart-1.39-r1.ebuild33
-rw-r--r--dev-python/pychecker/Manifest1
-rw-r--r--dev-python/pychecker/files/pychecker-0.8.17-no-data-files.patch15
-rw-r--r--dev-python/pychecker/files/pychecker-0.8.18-pychecker2.patch11
-rw-r--r--dev-python/pychecker/files/pychecker-0.8.19-create_script.patch13
-rw-r--r--dev-python/pychecker/files/pychecker-0.8.19-version.patch12
-rw-r--r--dev-python/pychecker/metadata.xml8
-rw-r--r--dev-python/pychecker/pychecker-0.8.19-r1.ebuild44
-rw-r--r--dev-python/pychef/Manifest2
-rw-r--r--dev-python/pychef/metadata.xml16
-rw-r--r--dev-python/pychef/pychef-0.2.1.ebuild27
-rw-r--r--dev-python/pychef/pychef-0.2.3.ebuild27
-rw-r--r--dev-python/pychm/Manifest1
-rw-r--r--dev-python/pychm/metadata.xml19
-rw-r--r--dev-python/pychm/pychm-0.8.4-r1.ebuild21
-rw-r--r--dev-python/pychm/pychm-0.8.4.ebuild24
-rw-r--r--dev-python/pychroot/Manifest2
-rw-r--r--dev-python/pychroot/metadata.xml12
-rw-r--r--dev-python/pychroot/pychroot-0.9.11.ebuild34
-rw-r--r--dev-python/pychroot/pychroot-0.9.9.ebuild34
-rw-r--r--dev-python/pychroot/pychroot-9999.ebuild47
-rw-r--r--dev-python/pycipher/Manifest1
-rw-r--r--dev-python/pycipher/metadata.xml8
-rw-r--r--dev-python/pycipher/pycipher-0.2.ebuild37
-rw-r--r--dev-python/pyclamav/Manifest1
-rw-r--r--dev-python/pyclamav/files/pyclamav-0.4.1-clamav-0.95.patch126
-rw-r--r--dev-python/pyclamav/metadata.xml5
-rw-r--r--dev-python/pyclamav/pyclamav-0.4.1-r1.ebuild36
-rw-r--r--dev-python/pyclamav/pyclamav-0.4.1-r2.ebuild35
-rw-r--r--dev-python/pyclimate/Manifest1
-rw-r--r--dev-python/pyclimate/metadata.xml20
-rw-r--r--dev-python/pyclimate/pyclimate-1.2.2-r1.ebuild39
-rw-r--r--dev-python/pyclimate/pyclimate-1.2.2-r2.ebuild39
-rw-r--r--dev-python/pycmd/Manifest2
-rw-r--r--dev-python/pycmd/metadata.xml8
-rw-r--r--dev-python/pycmd/pycmd-1.1.ebuild21
-rw-r--r--dev-python/pycmd/pycmd-1.2.ebuild23
-rw-r--r--dev-python/pycollada/Manifest1
-rw-r--r--dev-python/pycollada/metadata.xml8
-rw-r--r--dev-python/pycollada/pycollada-0.4.ebuild64
-rw-r--r--dev-python/pycollada/pycollada-9999.ebuild64
-rw-r--r--dev-python/pyconstruct/Manifest1
-rw-r--r--dev-python/pyconstruct/metadata.xml8
-rw-r--r--dev-python/pyconstruct/pyconstruct-2.5.2.ebuild25
-rw-r--r--dev-python/pycountry/Manifest2
-rw-r--r--dev-python/pycountry/metadata.xml10
-rw-r--r--dev-python/pycountry/pycountry-1.10.ebuild32
-rw-r--r--dev-python/pycountry/pycountry-1.12.ebuild31
-rw-r--r--dev-python/pycparser/Manifest4
-rw-r--r--dev-python/pycparser/metadata.xml9
-rw-r--r--dev-python/pycparser/pycparser-2.10.ebuild32
-rw-r--r--dev-python/pycparser/pycparser-2.12.ebuild34
-rw-r--r--dev-python/pycparser/pycparser-2.13.ebuild34
-rw-r--r--dev-python/pycparser/pycparser-2.14.ebuild34
-rw-r--r--dev-python/pycrypto/Manifest1
-rw-r--r--dev-python/pycrypto/files/pycrypto-2.6.1-cross-compile.patch13
-rw-r--r--dev-python/pycrypto/metadata.xml38
-rw-r--r--dev-python/pycrypto/pycrypto-2.6.1-r1.ebuild70
-rw-r--r--dev-python/pycrypto/pycrypto-2.6.1.ebuild54
-rw-r--r--dev-python/pycryptopp/Manifest1
-rw-r--r--dev-python/pycryptopp/metadata.xml8
-rw-r--r--dev-python/pycryptopp/pycryptopp-0.6.0.ebuild44
-rw-r--r--dev-python/pycuda/Manifest3
-rw-r--r--dev-python/pycuda/metadata.xml8
-rw-r--r--dev-python/pycuda/pycuda-2012.1.ebuild88
-rw-r--r--dev-python/pycuda/pycuda-2013.1.1.ebuild88
-rw-r--r--dev-python/pycuda/pycuda-2014.1.ebuild88
-rw-r--r--dev-python/pycuda/pycuda-9999.ebuild89
-rw-r--r--dev-python/pycups/Manifest2
-rw-r--r--dev-python/pycups/metadata.xml13
-rw-r--r--dev-python/pycups/pycups-1.9.72.ebuild51
-rw-r--r--dev-python/pycups/pycups-1.9.73.ebuild51
-rw-r--r--dev-python/pycurl/Manifest2
-rw-r--r--dev-python/pycurl/files/pycurl-7.19.3.1-ssl-test.patch64
-rw-r--r--dev-python/pycurl/metadata.xml17
-rw-r--r--dev-python/pycurl/pycurl-7.19.3.1-r2.ebuild70
-rw-r--r--dev-python/pycurl/pycurl-7.19.5.1.ebuild64
-rw-r--r--dev-python/pycxx/Manifest2
-rw-r--r--dev-python/pycxx/files/pycxx-6.2.3-installation.patch25
-rw-r--r--dev-python/pycxx/metadata.xml15
-rw-r--r--dev-python/pycxx/pycxx-6.2.5.ebuild37
-rw-r--r--dev-python/pycxx/pycxx-6.2.6.ebuild37
-rw-r--r--dev-python/pydb/Manifest1
-rw-r--r--dev-python/pydb/metadata.xml13
-rw-r--r--dev-python/pydb/pydb-1.26-r1.ebuild56
-rw-r--r--dev-python/pydiff/Manifest1
-rw-r--r--dev-python/pydiff/metadata.xml9
-rw-r--r--dev-python/pydiff/pydiff-0.2.ebuild20
-rw-r--r--dev-python/pydispatcher/Manifest2
-rw-r--r--dev-python/pydispatcher/metadata.xml8
-rw-r--r--dev-python/pydispatcher/pydispatcher-2.0.3-r1.ebuild43
-rw-r--r--dev-python/pydispatcher/pydispatcher-2.0.5.ebuild43
-rw-r--r--dev-python/pydns/Manifest2
-rw-r--r--dev-python/pydns/metadata.xml13
-rw-r--r--dev-python/pydns/pydns-2.3.6-r1.ebuild48
-rw-r--r--dev-python/pydns/pydns-3.1.0.ebuild42
-rw-r--r--dev-python/pyds/Manifest1
-rw-r--r--dev-python/pyds/files/pyds-0.6.5-py2.3.patch19
-rw-r--r--dev-python/pyds/files/pyds-pillow.patch14
-rw-r--r--dev-python/pyds/metadata.xml5
-rw-r--r--dev-python/pyds/pyds-0.7.3-r1.ebuild39
-rw-r--r--dev-python/pyds9/Manifest1
-rw-r--r--dev-python/pyds9/metadata.xml12
-rw-r--r--dev-python/pyds9/pyds9-1.7.ebuild42
-rw-r--r--dev-python/pydvdread/Manifest1
-rw-r--r--dev-python/pydvdread/files/pydvdread-1.0-api-update.patch287
-rw-r--r--dev-python/pydvdread/files/pydvdread-1.0-py3k.patch19
-rw-r--r--dev-python/pydvdread/metadata.xml8
-rw-r--r--dev-python/pydvdread/pydvdread-1.0-r1.ebuild29
-rw-r--r--dev-python/pyechonest/Manifest2
-rw-r--r--dev-python/pyechonest/metadata.xml30
-rw-r--r--dev-python/pyechonest/pyechonest-7.2.1.ebuild38
-rw-r--r--dev-python/pyechonest/pyechonest-9.0.0.ebuild38
-rw-r--r--dev-python/pyelemental/Manifest1
-rw-r--r--dev-python/pyelemental/files/pyelemental-1.2.0-gcc-4.7.patch25
-rw-r--r--dev-python/pyelemental/metadata.xml9
-rw-r--r--dev-python/pyelemental/pyelemental-1.2.0-r1.ebuild28
-rw-r--r--dev-python/pyelftools/Manifest3
-rw-r--r--dev-python/pyelftools/files/pyelftools-0.21-dyntable.patch143
-rw-r--r--dev-python/pyelftools/files/pyelftools-0.22-dyntable.patch153
-rw-r--r--dev-python/pyelftools/files/pyelftools-0.22-grace-string-dyn.patch75
-rw-r--r--dev-python/pyelftools/metadata.xml12
-rw-r--r--dev-python/pyelftools/pyelftools-0.21-r4.ebuild29
-rw-r--r--dev-python/pyelftools/pyelftools-0.22.ebuild35
-rw-r--r--dev-python/pyelftools/pyelftools-0.23-r1.ebuild30
-rw-r--r--dev-python/pyelftools/pyelftools-0.23.ebuild30
-rw-r--r--dev-python/pyemf/Manifest1
-rw-r--r--dev-python/pyemf/metadata.xml16
-rw-r--r--dev-python/pyemf/pyemf-2.0.0.ebuild22
-rw-r--r--dev-python/pyenchant/Manifest1
-rw-r--r--dev-python/pyenchant/files/pyenchant-setup.patch11
-rw-r--r--dev-python/pyenchant/metadata.xml14
-rw-r--r--dev-python/pyenchant/pyenchant-1.6.6.ebuild31
-rw-r--r--dev-python/pyev/Manifest2
-rw-r--r--dev-python/pyev/metadata.xml17
-rw-r--r--dev-python/pyev/pyev-0.8.1.ebuild35
-rw-r--r--dev-python/pyev/pyev-0.9.0.ebuild26
-rw-r--r--dev-python/pyface/Manifest2
-rw-r--r--dev-python/pyface/metadata.xml20
-rw-r--r--dev-python/pyface/pyface-4.3.0-r1.ebuild60
-rw-r--r--dev-python/pyface/pyface-4.4.0.ebuild44
-rw-r--r--dev-python/pyfeyn/Manifest1
-rw-r--r--dev-python/pyfeyn/files/pyfeyn-0.3.4.patch16
-rw-r--r--dev-python/pyfeyn/metadata.xml14
-rw-r--r--dev-python/pyfeyn/pyfeyn-0.3.4-r1.ebuild23
-rw-r--r--dev-python/pyfire/Manifest1
-rw-r--r--dev-python/pyfire/metadata.xml11
-rw-r--r--dev-python/pyfire/pyfire-0.3.4-r1.ebuild23
-rw-r--r--dev-python/pyfits/Manifest2
-rw-r--r--dev-python/pyfits/files/pyfits-3.2-unbundle-cfitsio.patch97
-rw-r--r--dev-python/pyfits/files/pyfits-3.2.1-unbundle-cfitsio.patch98
-rw-r--r--dev-python/pyfits/metadata.xml14
-rw-r--r--dev-python/pyfits/pyfits-2.4.0.ebuild43
-rw-r--r--dev-python/pyfits/pyfits-3.3.ebuild69
-rw-r--r--dev-python/pyflakes/Manifest4
-rw-r--r--dev-python/pyflakes/metadata.xml15
-rw-r--r--dev-python/pyflakes/pyflakes-0.7.2.ebuild27
-rw-r--r--dev-python/pyflakes/pyflakes-0.7.3.ebuild26
-rw-r--r--dev-python/pyflakes/pyflakes-0.8.1.ebuild26
-rw-r--r--dev-python/pyflakes/pyflakes-0.9.2.ebuild24
-rw-r--r--dev-python/pyflann/Manifest2
-rw-r--r--dev-python/pyflann/metadata.xml13
-rw-r--r--dev-python/pyflann/pyflann-1.8.4.ebuild48
-rw-r--r--dev-python/pyfltk/Manifest2
-rw-r--r--dev-python/pyfltk/files/fltk_wrap.patch15
-rw-r--r--dev-python/pyfltk/files/ignore-func.patch11
-rw-r--r--dev-python/pyfltk/files/pyfltk-1.3.0-format-security.patch74
-rw-r--r--dev-python/pyfltk/files/pyfltk-1.3.0-linux-3.x-detection.patch15
-rw-r--r--dev-python/pyfltk/metadata.xml12
-rw-r--r--dev-python/pyfltk/pyfltk-1.3.0-r1.ebuild46
-rw-r--r--dev-python/pyfltk/pyfltk-1.3.0-r2.ebuild50
-rw-r--r--dev-python/pyfltk/pyfltk-1.3.3.ebuild49
-rw-r--r--dev-python/pyformance/Manifest1
-rw-r--r--dev-python/pyformance/metadata.xml12
-rw-r--r--dev-python/pyformance/pyformance-0.3.2.ebuild28
-rw-r--r--dev-python/pyftpdlib/Manifest3
-rw-r--r--dev-python/pyftpdlib/files/pyftpdlib-1-pypy-test.patch20
-rw-r--r--dev-python/pyftpdlib/metadata.xml14
-rw-r--r--dev-python/pyftpdlib/pyftpdlib-1.0.1-r1.ebuild41
-rw-r--r--dev-python/pyftpdlib/pyftpdlib-1.3.0.ebuild40
-rw-r--r--dev-python/pyftpdlib/pyftpdlib-1.4.0.ebuild31
-rw-r--r--dev-python/pygal/Manifest4
-rw-r--r--dev-python/pygal/metadata.xml12
-rw-r--r--dev-python/pygal/pygal-1.5.1.ebuild18
-rw-r--r--dev-python/pygal/pygal-1.6.1.ebuild18
-rw-r--r--dev-python/pygal/pygal-1.7.0.ebuild21
-rw-r--r--dev-python/pygal/pygal-2.0.0.ebuild19
-rw-r--r--dev-python/pygame/Manifest1
-rw-r--r--dev-python/pygame/files/pygame-1.9.2_pre20120101-import-bdist.patch49
-rw-r--r--dev-python/pygame/metadata.xml5
-rw-r--r--dev-python/pygame/pygame-1.9.2_pre20120101-r2.ebuild88
-rw-r--r--dev-python/pygccxml/Manifest1
-rw-r--r--dev-python/pygccxml/metadata.xml12
-rw-r--r--dev-python/pygccxml/pygccxml-1.0.0.ebuild38
-rw-r--r--dev-python/pygene/Manifest1
-rw-r--r--dev-python/pygene/metadata.xml5
-rw-r--r--dev-python/pygene/pygene-0.2.1-r1.ebuild41
-rw-r--r--dev-python/pygeocoder/Manifest1
-rw-r--r--dev-python/pygeocoder/metadata.xml5
-rw-r--r--dev-python/pygeocoder/pygeocoder-1.2.5.ebuild19
-rw-r--r--dev-python/pygit2/Manifest3
-rw-r--r--dev-python/pygit2/metadata.xml12
-rw-r--r--dev-python/pygit2/pygit2-0.20.3.ebuild23
-rw-r--r--dev-python/pygit2/pygit2-0.21.4-r1.ebuild26
-rw-r--r--dev-python/pygit2/pygit2-0.22.1.ebuild29
-rw-r--r--dev-python/pyglet/Manifest3
-rw-r--r--dev-python/pyglet/metadata.xml22
-rw-r--r--dev-python/pyglet/pyglet-1.1.4-r2.ebuild34
-rw-r--r--dev-python/pyglet/pyglet-1.2.2.ebuild43
-rw-r--r--dev-python/pyglet/pyglet-1.2.3.ebuild43
-rw-r--r--dev-python/pygments/Manifest5
-rw-r--r--dev-python/pygments/metadata.xml9
-rw-r--r--dev-python/pygments/pygments-1.6.ebuild49
-rw-r--r--dev-python/pygments/pygments-1.6_p20140324-r1.ebuild64
-rw-r--r--dev-python/pygments/pygments-2.0.1-r1.ebuild51
-rw-r--r--dev-python/pygments/pygments-2.0.1.ebuild62
-rw-r--r--dev-python/pygments/pygments-2.0.2.ebuild51
-rw-r--r--dev-python/pygobject/Manifest5
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.3-fix-codegen-location.patch64
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.3-make_check.patch76
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.3-support_multiple_python_versions.patch103
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.6-disable-failing-tests.patch98
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.6-gio-types-2.32.patch50
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.6-glib-2.36-class_init.patch315
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.6-set_qdata.patch28
-rw-r--r--dev-python/pygobject/files/pygobject-2.28.6-tests-no-introspection.patch33
-rw-r--r--dev-python/pygobject/files/pygobject-3.16.1-unittest.patch15
-rw-r--r--dev-python/pygobject/metadata.xml6
-rw-r--r--dev-python/pygobject/pygobject-2.28.6-r55.ebuild132
-rw-r--r--dev-python/pygobject/pygobject-3.12.2.ebuild99
-rw-r--r--dev-python/pygobject/pygobject-3.14.0.ebuild99
-rw-r--r--dev-python/pygobject/pygobject-3.16.1.ebuild103
-rw-r--r--dev-python/pygobject/pygobject-3.16.2.ebuild115
-rw-r--r--dev-python/pygoocanvas/Manifest1
-rw-r--r--dev-python/pygoocanvas/metadata.xml6
-rw-r--r--dev-python/pygoocanvas/pygoocanvas-0.14.1-r1.ebuild72
-rw-r--r--dev-python/pygooglevoice/Manifest2
-rw-r--r--dev-python/pygooglevoice/files/pygooglevoice-0.5-auth.patch121
-rw-r--r--dev-python/pygooglevoice/metadata.xml8
-rw-r--r--dev-python/pygooglevoice/pygooglevoice-0.5-r2.ebuild35
-rw-r--r--dev-python/pygpgme/Manifest1
-rw-r--r--dev-python/pygpgme/metadata.xml18
-rw-r--r--dev-python/pygpgme/pygpgme-0.3-r1.ebuild33
-rw-r--r--dev-python/pygraphviz/Manifest1
-rw-r--r--dev-python/pygraphviz/files/pygraphviz-1.0-setup.py.patch33
-rw-r--r--dev-python/pygraphviz/files/pygraphviz-1.1-avoid_tests.patch41
-rw-r--r--dev-python/pygraphviz/files/pygraphviz-1.2-avoid_tests.patch47
-rw-r--r--dev-python/pygraphviz/metadata.xml14
-rw-r--r--dev-python/pygraphviz/pygraphviz-1.2.ebuild40
-rw-r--r--dev-python/pygresql/Manifest1
-rw-r--r--dev-python/pygresql/metadata.xml9
-rw-r--r--dev-python/pygresql/pygresql-4.1.1-r1.ebuild74
-rw-r--r--dev-python/pygresql/pygresql-4.1.1-r2.ebuild76
-rw-r--r--dev-python/pygresql/pygresql-4.1.1.ebuild75
-rw-r--r--dev-python/pygsl/Manifest1
-rw-r--r--dev-python/pygsl/metadata.xml12
-rw-r--r--dev-python/pygsl/pygsl-0.9.5-r1.ebuild27
-rw-r--r--dev-python/pygsl/pygsl-0.9.5.ebuild38
-rw-r--r--dev-python/pygtk/Manifest1
-rw-r--r--dev-python/pygtk/files/pygtk-2.13.0-fix-codegen-location.patch11
-rw-r--r--dev-python/pygtk/files/pygtk-2.14.1-libdir-pc.patch12
-rw-r--r--dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch58
-rw-r--r--dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch9
-rw-r--r--dev-python/pygtk/files/pygtk-2.24.0-test_dialog.patch28
-rw-r--r--dev-python/pygtk/metadata.xml17
-rw-r--r--dev-python/pygtk/pygtk-2.24.0-r4.ebuild103
-rw-r--r--dev-python/pygtkglext/Manifest1
-rw-r--r--dev-python/pygtkglext/metadata.xml8
-rw-r--r--dev-python/pygtkglext/pygtkglext-1.1.0-r1.ebuild51
-rw-r--r--dev-python/pygtkhelpers/Manifest1
-rw-r--r--dev-python/pygtkhelpers/metadata.xml8
-rw-r--r--dev-python/pygtkhelpers/pygtkhelpers-0.4.3-r1.ebuild52
-rw-r--r--dev-python/pygtkhelpers/pygtkhelpers-0.4.3.ebuild56
-rw-r--r--dev-python/pygtksourceview/Manifest1
-rw-r--r--dev-python/pygtksourceview/metadata.xml9
-rw-r--r--dev-python/pygtksourceview/pygtksourceview-2.10.1-r1.ebuild56
-rw-r--r--dev-python/pygui/Manifest1
-rw-r--r--dev-python/pygui/files/pygui-2.2-python-2.6.patch18
-rw-r--r--dev-python/pygui/files/pygui-2.2-resources.patch8
-rw-r--r--dev-python/pygui/metadata.xml12
-rw-r--r--dev-python/pygui/pygui-2.5.3-r1.ebuild30
-rw-r--r--dev-python/pyh2o/metadata.xml16
-rw-r--r--dev-python/pyh2o/pyh2o-9999.ebuild32
-rw-r--r--dev-python/pyhamcrest/Manifest3
-rw-r--r--dev-python/pyhamcrest/files/sphinx-rtd.patch20
-rw-r--r--dev-python/pyhamcrest/metadata.xml17
-rw-r--r--dev-python/pyhamcrest/pyhamcrest-1.8.2.ebuild50
-rw-r--r--dev-python/pyhamcrest/pyhamcrest-1.8.3.ebuild62
-rw-r--r--dev-python/pyhamcrest/pyhamcrest-1.8.5.ebuild50
-rw-r--r--dev-python/pyid3lib/Manifest1
-rw-r--r--dev-python/pyid3lib/files/pyid3lib-0.5.1-gcc-4.4.patch20
-rw-r--r--dev-python/pyid3lib/files/pyid3lib-0.5.1-py25.patch57
-rw-r--r--dev-python/pyid3lib/metadata.xml8
-rw-r--r--dev-python/pyid3lib/pyid3lib-0.5.1-r1.ebuild36
-rw-r--r--dev-python/pyid3lib/pyid3lib-0.5.1-r2.ebuild34
-rw-r--r--dev-python/pyifp/Manifest1
-rw-r--r--dev-python/pyifp/files/pyifp-0.2.2-setup-fix.patch11
-rw-r--r--dev-python/pyifp/metadata.xml9
-rw-r--r--dev-python/pyifp/pyifp-0.2.2-r1.ebuild29
-rw-r--r--dev-python/pyinotify/Manifest3
-rw-r--r--dev-python/pyinotify/metadata.xml5
-rw-r--r--dev-python/pyinotify/pyinotify-0.9.4-r1.ebuild25
-rw-r--r--dev-python/pyinotify/pyinotify-0.9.5.ebuild26
-rw-r--r--dev-python/pyinotify/pyinotify-0.9.6.ebuild26
-rw-r--r--dev-python/pyinsane/Manifest1
-rw-r--r--dev-python/pyinsane/metadata.xml20
-rw-r--r--dev-python/pyinsane/pyinsane-1.3.8.ebuild20
-rw-r--r--dev-python/pyjwt/Manifest2
-rw-r--r--dev-python/pyjwt/metadata.xml9
-rw-r--r--dev-python/pyjwt/pyjwt-1.3.0.ebuild49
-rw-r--r--dev-python/pyjwt/pyjwt-1.4.0.ebuild50
-rw-r--r--dev-python/pykerberos/Manifest2
-rw-r--r--dev-python/pykerberos/metadata.xml15
-rw-r--r--dev-python/pykerberos/pykerberos-1.1.5.ebuild22
-rw-r--r--dev-python/pykerberos/pykerberos-1.1.7.ebuild22
-rw-r--r--dev-python/pykit/Manifest2
-rw-r--r--dev-python/pykit/metadata.xml15
-rw-r--r--dev-python/pykit/pykit-0.1.0.ebuild33
-rw-r--r--dev-python/pykit/pykit-0.2.0.ebuild33
-rw-r--r--dev-python/pykka/Manifest1
-rw-r--r--dev-python/pykka/metadata.xml13
-rw-r--r--dev-python/pykka/pykka-1.2.1.ebuild26
-rw-r--r--dev-python/pylast/Manifest2
-rw-r--r--dev-python/pylast/metadata.xml25
-rw-r--r--dev-python/pylast/pylast-0.5.11-r1.ebuild18
-rw-r--r--dev-python/pylast/pylast-1.0.0.ebuild18
-rw-r--r--dev-python/pylibacl/Manifest1
-rw-r--r--dev-python/pylibacl/metadata.xml11
-rw-r--r--dev-python/pylibacl/pylibacl-0.5.0-r1.ebuild36
-rw-r--r--dev-python/pyliblzma/Manifest1
-rw-r--r--dev-python/pyliblzma/metadata.xml9
-rw-r--r--dev-python/pyliblzma/pyliblzma-0.5.3-r1.ebuild28
-rw-r--r--dev-python/pylibmc/Manifest2
-rw-r--r--dev-python/pylibmc/metadata.xml18
-rw-r--r--dev-python/pylibmc/pylibmc-1.4.3.ebuild34
-rw-r--r--dev-python/pylibmc/pylibmc-1.5.0.ebuild34
-rw-r--r--dev-python/pylibpcap/Manifest1
-rw-r--r--dev-python/pylibpcap/metadata.xml8
-rw-r--r--dev-python/pylibpcap/pylibpcap-0.6.4-r1.ebuild25
-rw-r--r--dev-python/pylibpcap/pylibpcap-0.6.4.ebuild33
-rw-r--r--dev-python/pylint/Manifest5
-rw-r--r--dev-python/pylint/files/pylint-0.26.0-gtktest.patch32
-rw-r--r--dev-python/pylint/metadata.xml17
-rw-r--r--dev-python/pylint/pylint-0.25.2.ebuild55
-rw-r--r--dev-python/pylint/pylint-1.4.0.ebuild60
-rw-r--r--dev-python/pylint/pylint-1.4.1.ebuild60
-rw-r--r--dev-python/pylint/pylint-1.4.3.ebuild60
-rw-r--r--dev-python/pylint/pylint-1.4.4.ebuild60
-rw-r--r--dev-python/pylirc/Manifest1
-rw-r--r--dev-python/pylirc/metadata.xml9
-rw-r--r--dev-python/pylirc/pylirc-0.0.5-r1.ebuild20
-rw-r--r--dev-python/pylons/Manifest1
-rw-r--r--dev-python/pylons/metadata.xml12
-rw-r--r--dev-python/pylons/pylons-1.0.1-r1.ebuild54
-rw-r--r--dev-python/pyltxml/Manifest1
-rw-r--r--dev-python/pyltxml/metadata.xml5
-rw-r--r--dev-python/pyltxml/pyltxml-1.3-r1.ebuild36
-rw-r--r--dev-python/pylzma/Manifest4
-rw-r--r--dev-python/pylzma/metadata.xml8
-rw-r--r--dev-python/pylzma/pylzma-0.4.4-r1.ebuild29
-rw-r--r--dev-python/pylzma/pylzma-0.4.5.ebuild29
-rw-r--r--dev-python/pylzma/pylzma-0.4.6.ebuild29
-rw-r--r--dev-python/pylzma/pylzma-0.4.8.ebuild29
-rw-r--r--dev-python/pymad/Manifest1
-rw-r--r--dev-python/pymad/metadata.xml5
-rw-r--r--dev-python/pymad/pymad-0.6-r1.ebuild27
-rw-r--r--dev-python/pymad/pymad-0.6.ebuild29
-rw-r--r--dev-python/pymetar/Manifest1
-rw-r--r--dev-python/pymetar/files/setup.patch14
-rw-r--r--dev-python/pymetar/metadata.xml16
-rw-r--r--dev-python/pymetar/pymetar-0.19-r1.ebuild24
-rw-r--r--dev-python/pyminuit/Manifest2
-rw-r--r--dev-python/pyminuit/metadata.xml8
-rw-r--r--dev-python/pyminuit/pyminuit-1.2.1.ebuild38
-rw-r--r--dev-python/pyml/Manifest2
-rw-r--r--dev-python/pyml/metadata.xml12
-rw-r--r--dev-python/pyml/pyml-0.7.13.2-r1.ebuild35
-rw-r--r--dev-python/pyml/pyml-0.7.13.3.ebuild35
-rw-r--r--dev-python/pymongo/Manifest4
-rw-r--r--dev-python/pymongo/files/pymongo-2.5.1-greenlet.patch17
-rw-r--r--dev-python/pymongo/metadata.xml30
-rw-r--r--dev-python/pymongo/pymongo-2.6.3.ebuild130
-rw-r--r--dev-python/pymongo/pymongo-2.7.2.ebuild128
-rw-r--r--dev-python/pymongo/pymongo-2.8.1.ebuild128
-rw-r--r--dev-python/pymongo/pymongo-3.0.3.ebuild127
-rw-r--r--dev-python/pymountboot/Manifest2
-rw-r--r--dev-python/pymountboot/metadata.xml16
-rw-r--r--dev-python/pymountboot/pymountboot-0.2.1.ebuild20
-rw-r--r--dev-python/pymountboot/pymountboot-0.2.2.ebuild25
-rw-r--r--dev-python/pymountboot/pymountboot-9999.ebuild35
-rw-r--r--dev-python/pympler/Manifest3
-rw-r--r--dev-python/pympler/metadata.xml19
-rw-r--r--dev-python/pympler/pympler-0.3.1.ebuild38
-rw-r--r--dev-python/pympler/pympler-0.4.1.ebuild43
-rw-r--r--dev-python/pympler/pympler-0.4.ebuild43
-rw-r--r--dev-python/pymssql/Manifest1
-rw-r--r--dev-python/pymssql/metadata.xml11
-rw-r--r--dev-python/pymssql/pymssql-1.0.2-r1.ebuild26
-rw-r--r--dev-python/pymtp/Manifest1
-rw-r--r--dev-python/pymtp/metadata.xml6
-rw-r--r--dev-python/pymtp/pymtp-0.0.6.ebuild29
-rw-r--r--dev-python/pymysql/Manifest2
-rw-r--r--dev-python/pymysql/metadata.xml13
-rw-r--r--dev-python/pymysql/pymysql-0.6.3.ebuild30
-rw-r--r--dev-python/pymysql/pymysql-0.6.6.ebuild30
-rw-r--r--dev-python/pyndex/Manifest1
-rw-r--r--dev-python/pyndex/metadata.xml11
-rw-r--r--dev-python/pyndex/pyndex-0.3.2a-r1.ebuild31
-rw-r--r--dev-python/pyndex/pyndex-0.3.2a.ebuild27
-rw-r--r--dev-python/pynotifier/Manifest1
-rw-r--r--dev-python/pynotifier/metadata.xml10
-rw-r--r--dev-python/pynotifier/pynotifier-0.7.0-r2.ebuild28
-rw-r--r--dev-python/pynut/Manifest1
-rw-r--r--dev-python/pynut/metadata.xml5
-rw-r--r--dev-python/pynut/pynut-1.2.ebuild39
-rw-r--r--dev-python/pynzb/Manifest1
-rw-r--r--dev-python/pynzb/metadata.xml8
-rw-r--r--dev-python/pynzb/pynzb-0.1.0-r1.ebuild20
-rw-r--r--dev-python/pyocr/Manifest2
-rw-r--r--dev-python/pyocr/metadata.xml22
-rw-r--r--dev-python/pyocr/pyocr-0.2.4.ebuild24
-rw-r--r--dev-python/pyocr/pyocr-0.3.0.ebuild24
-rw-r--r--dev-python/pyodbc/Manifest1
-rw-r--r--dev-python/pyodbc/metadata.xml12
-rw-r--r--dev-python/pyodbc/pyodbc-3.0.7-r1.ebuild28
-rw-r--r--dev-python/pyode/Manifest1
-rw-r--r--dev-python/pyode/metadata.xml8
-rw-r--r--dev-python/pyode/pyode-1.2.0_p20100322-r1.ebuild44
-rw-r--r--dev-python/pyoembed/Manifest1
-rw-r--r--dev-python/pyoembed/metadata.xml19
-rw-r--r--dev-python/pyoembed/pyoembed-0.1.1.ebuild36
-rw-r--r--dev-python/pyoembed/pyoembed-9999.ebuild36
-rw-r--r--dev-python/pyogg/Manifest1
-rw-r--r--dev-python/pyogg/metadata.xml5
-rw-r--r--dev-python/pyogg/pyogg-1.3-r2.ebuild35
-rw-r--r--dev-python/pyopenal/Manifest1
-rw-r--r--dev-python/pyopenal/files/pyopenal-0.1.6-setup.patch20
-rw-r--r--dev-python/pyopenal/metadata.xml5
-rw-r--r--dev-python/pyopenal/pyopenal-0.1.6-r1.ebuild36
-rw-r--r--dev-python/pyopencl/Manifest2
-rw-r--r--dev-python/pyopencl/metadata.xml8
-rw-r--r--dev-python/pyopencl/pyopencl-2014.1.ebuild47
-rw-r--r--dev-python/pyopencl/pyopencl-2015.1.ebuild47
-rw-r--r--dev-python/pyopencl/pyopencl-9999.ebuild49
-rw-r--r--dev-python/pyopengl/Manifest2
-rw-r--r--dev-python/pyopengl/metadata.xml8
-rw-r--r--dev-python/pyopengl/pyopengl-3.0.2-r1.ebuild32
-rw-r--r--dev-python/pyopengl/pyopengl-3.1.0.ebuild32
-rw-r--r--dev-python/pyopenssl/Manifest3
-rw-r--r--dev-python/pyopenssl/metadata.xml9
-rw-r--r--dev-python/pyopenssl/pyopenssl-0.13.1-r1.ebuild77
-rw-r--r--dev-python/pyopenssl/pyopenssl-0.13.1.ebuild75
-rw-r--r--dev-python/pyopenssl/pyopenssl-0.14.ebuild58
-rw-r--r--dev-python/pyopenssl/pyopenssl-0.15.1.ebuild52
-rw-r--r--dev-python/pyorbit/Manifest1
-rw-r--r--dev-python/pyorbit/metadata.xml6
-rw-r--r--dev-python/pyorbit/pyorbit-2.24.0-r1.ebuild48
-rw-r--r--dev-python/pyosd/Manifest1
-rw-r--r--dev-python/pyosd/metadata.xml5
-rw-r--r--dev-python/pyosd/pyosd-0.2.14-r1.ebuild32
-rw-r--r--dev-python/pyosd/pyosd-0.2.14.ebuild42
-rw-r--r--dev-python/pypam/Manifest1
-rw-r--r--dev-python/pypam/files/PyPAM-0.5.0-dealloc.patch17
-rw-r--r--dev-python/pypam/files/PyPAM-0.5.0-memory-errors.patch128
-rw-r--r--dev-python/pypam/files/PyPAM-0.5.0-nofree.patch60
-rw-r--r--dev-python/pypam/files/PyPAM-0.5.0-return-value.patch57
-rw-r--r--dev-python/pypam/files/PyPAM-python3-support.patch198
-rw-r--r--dev-python/pypam/files/pypam-0.5.0-stricter.patch15
-rw-r--r--dev-python/pypam/metadata.xml5
-rw-r--r--dev-python/pypam/pypam-0.5.0-r3.ebuild47
-rw-r--r--dev-python/pyparsing/Manifest3
-rw-r--r--dev-python/pyparsing/metadata.xml15
-rw-r--r--dev-python/pyparsing/pyparsing-1.5.6-r2.ebuild51
-rw-r--r--dev-python/pyparsing/pyparsing-1.5.6.ebuild41
-rw-r--r--dev-python/pyparsing/pyparsing-2.0.1.ebuild29
-rw-r--r--dev-python/pyparsing/pyparsing-2.0.3.ebuild29
-rw-r--r--dev-python/pyparted/Manifest3
-rw-r--r--dev-python/pyparted/files/pyparted-3.10.3-greater.patch11
-rw-r--r--dev-python/pyparted/files/pyparted-3.10.3-sbin-parted.patch11
-rw-r--r--dev-python/pyparted/metadata.xml5
-rw-r--r--dev-python/pyparted/pyparted-3.10.3-r1.ebuild45
-rw-r--r--dev-python/pyparted/pyparted-3.10.4.ebuild45
-rw-r--r--dev-python/pyparted/pyparted-3.10.5.ebuild43
-rw-r--r--dev-python/pypax/Manifest2
-rw-r--r--dev-python/pypax/metadata.xml14
-rw-r--r--dev-python/pypax/pypax-0.8.4.ebuild38
-rw-r--r--dev-python/pypax/pypax-0.9.0.ebuild38
-rw-r--r--dev-python/pypcap/Manifest2
-rw-r--r--dev-python/pypcap/metadata.xml10
-rw-r--r--dev-python/pypcap/pypcap-1.1.1.ebuild27
-rw-r--r--dev-python/pypcap/pypcap-1.1.3.ebuild27
-rw-r--r--dev-python/pypeg2/Manifest1
-rw-r--r--dev-python/pypeg2/files/pypeg2-2.15.1-test.patch12
-rw-r--r--dev-python/pypeg2/metadata.xml9
-rw-r--r--dev-python/pypeg2/pypeg2-2.15.1.ebuild30
-rw-r--r--dev-python/pypgsql/Manifest1
-rw-r--r--dev-python/pypgsql/metadata.xml8
-rw-r--r--dev-python/pypgsql/pypgsql-2.5.1-r1.ebuild32
-rw-r--r--dev-python/pypgsql/pypgsql-2.5.1.ebuild38
-rw-r--r--dev-python/pyphen/Manifest2
-rw-r--r--dev-python/pyphen/metadata.xml9
-rw-r--r--dev-python/pyphen/pyphen-0.8.ebuild24
-rw-r--r--dev-python/pyphen/pyphen-0.9.1.ebuild24
-rw-r--r--dev-python/pyplusplus/Manifest2
-rw-r--r--dev-python/pyplusplus/files/pyplusplus-1.0.0_p20131206-numpy.patch179
-rw-r--r--dev-python/pyplusplus/metadata.xml15
-rw-r--r--dev-python/pyplusplus/pyplusplus-1.0.0-r1.ebuild39
-rw-r--r--dev-python/pyplusplus/pyplusplus-1.0.0_p20131206.ebuild44
-rw-r--r--dev-python/pyplusplus/pyplusplus-9999.ebuild39
-rw-r--r--dev-python/pyprof2calltree/Manifest2
-rw-r--r--dev-python/pyprof2calltree/metadata.xml8
-rw-r--r--dev-python/pyprof2calltree/pyprof2calltree-1.3.1.ebuild19
-rw-r--r--dev-python/pyprof2calltree/pyprof2calltree-1.3.2.ebuild19
-rw-r--r--dev-python/pyproj/Manifest2
-rw-r--r--dev-python/pyproj/metadata.xml10
-rw-r--r--dev-python/pyproj/pyproj-1.9.3-r1.ebuild24
-rw-r--r--dev-python/pyproj/pyproj-1.9.4.ebuild33
-rw-r--r--dev-python/pyprotocols/Manifest1
-rw-r--r--dev-python/pyprotocols/files/SkipTests.patch26
-rw-r--r--dev-python/pyprotocols/metadata.xml5
-rw-r--r--dev-python/pyprotocols/pyprotocols-1.0_pre2306-r1.ebuild45
-rw-r--r--dev-python/pyptlib/Manifest1
-rw-r--r--dev-python/pyptlib/metadata.xml11
-rw-r--r--dev-python/pyptlib/pyptlib-0.0.6.ebuild30
-rw-r--r--dev-python/pypy-bin/Manifest33
-rw-r--r--dev-python/pypy-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch11
-rw-r--r--dev-python/pypy-bin/files/1.9-scripts-location.patch11
-rw-r--r--dev-python/pypy-bin/files/2.3-21_all_distutils_c++.patch321
-rw-r--r--dev-python/pypy-bin/files/2.5.0_all_distutils_cxx.patch324
-rw-r--r--dev-python/pypy-bin/metadata.xml12
-rw-r--r--dev-python/pypy-bin/pypy-bin-2.3.1-r2.ebuild183
-rw-r--r--dev-python/pypy-bin/pypy-bin-2.4.0.ebuild178
-rw-r--r--dev-python/pypy-bin/pypy-bin-2.5.1.ebuild178
-rw-r--r--dev-python/pypy-bin/pypy-bin-2.6.0.ebuild192
-rw-r--r--dev-python/pypy/Manifest5
-rw-r--r--dev-python/pypy/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch11
-rw-r--r--dev-python/pypy/files/1.9-scripts-location.patch11
-rw-r--r--dev-python/pypy/files/2.3-21_all_distutils_c++.patch321
-rw-r--r--dev-python/pypy/files/2.3.1-shared-lib.patch11
-rw-r--r--dev-python/pypy/files/2.5.0-shared-lib.patch12
-rw-r--r--dev-python/pypy/files/2.5.0_all_distutils_cxx.patch324
-rw-r--r--dev-python/pypy/metadata.xml17
-rw-r--r--dev-python/pypy/pypy-2.3.1-r2.ebuild235
-rw-r--r--dev-python/pypy/pypy-2.4.0.ebuild224
-rw-r--r--dev-python/pypy/pypy-2.5.1.ebuild224
-rw-r--r--dev-python/pypy/pypy-2.6.0.ebuild240
-rw-r--r--dev-python/pypy3-bin/Manifest8
-rw-r--r--dev-python/pypy3-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch11
-rw-r--r--dev-python/pypy3-bin/files/1.9-scripts-location.patch11
-rw-r--r--dev-python/pypy3-bin/files/2.3.1-shared-lib.patch11
-rw-r--r--dev-python/pypy3-bin/metadata.xml12
-rw-r--r--dev-python/pypy3-bin/pypy3-bin-2.4.0.ebuild173
-rw-r--r--dev-python/pypy3/Manifest1
-rw-r--r--dev-python/pypy3/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch11
-rw-r--r--dev-python/pypy3/files/1.9-scripts-location.patch11
-rw-r--r--dev-python/pypy3/files/2.3.1-shared-lib.patch11
-rw-r--r--dev-python/pypy3/metadata.xml14
-rw-r--r--dev-python/pypy3/pypy3-2.4.0.ebuild218
-rw-r--r--dev-python/pyqtgraph/Manifest2
-rw-r--r--dev-python/pyqtgraph/metadata.xml8
-rw-r--r--dev-python/pyqtgraph/pyqtgraph-0.9.10.ebuild50
-rw-r--r--dev-python/pyqtgraph/pyqtgraph-0.9.9.ebuild49
-rw-r--r--dev-python/pyquery/Manifest3
-rw-r--r--dev-python/pyquery/metadata.xml12
-rw-r--r--dev-python/pyquery/pyquery-1.2.4.ebuild44
-rw-r--r--dev-python/pyquery/pyquery-1.2.8.ebuild45
-rw-r--r--dev-python/pyquery/pyquery-1.2.9-r1.ebuild37
-rw-r--r--dev-python/pyquery/pyquery-1.2.9.ebuild36
-rw-r--r--dev-python/pyqwt/Manifest1
-rw-r--r--dev-python/pyqwt/metadata.xml15
-rw-r--r--dev-python/pyqwt/pyqwt-5.2.0-r1.ebuild89
-rw-r--r--dev-python/pyramid/Manifest4
-rw-r--r--dev-python/pyramid/metadata.xml8
-rw-r--r--dev-python/pyramid/pyramid-1.5.1.ebuild46
-rw-r--r--dev-python/pyramid/pyramid-1.5.2.ebuild46
-rw-r--r--dev-python/pyramid/pyramid-1.5.4.ebuild46
-rw-r--r--dev-python/pyramid/pyramid-1.5.7.ebuild46
-rw-r--r--dev-python/pyrax/Manifest3
-rw-r--r--dev-python/pyrax/metadata.xml22
-rw-r--r--dev-python/pyrax/pyrax-1.9.2.ebuild54
-rw-r--r--dev-python/pyrax/pyrax-1.9.3.ebuild53
-rw-r--r--dev-python/pyrax/pyrax-1.9.4.ebuild45
-rw-r--r--dev-python/pyregion/Manifest2
-rw-r--r--dev-python/pyregion/metadata.xml12
-rw-r--r--dev-python/pyregion/pyregion-1.1.2.ebuild32
-rw-r--r--dev-python/pyregion/pyregion-1.1.4.ebuild32
-rw-r--r--dev-python/pyrex/Manifest1
-rw-r--r--dev-python/pyrex/metadata.xml5
-rw-r--r--dev-python/pyrex/pyrex-0.9.9-r1.ebuild37
-rw-r--r--dev-python/pyrfc3339/Manifest1
-rw-r--r--dev-python/pyrfc3339/files/pyrfc3339-0.2-fixdoctests.patch54
-rw-r--r--dev-python/pyrfc3339/metadata.xml9
-rw-r--r--dev-python/pyrfc3339/pyrfc3339-0.2.ebuild32
-rw-r--r--dev-python/pyringe/Manifest1
-rw-r--r--dev-python/pyringe/metadata.xml12
-rw-r--r--dev-python/pyringe/pyringe-1.0.2.ebuild22
-rw-r--r--dev-python/pyro/Manifest2
-rw-r--r--dev-python/pyro/files/4.20-0001-Use-unittest2-for-older-Python-version.patch354
-rw-r--r--dev-python/pyro/metadata.xml12
-rw-r--r--dev-python/pyro/pyro-3.16-r1.ebuild36
-rw-r--r--dev-python/pyro/pyro-4.25.ebuild77
-rw-r--r--dev-python/pyroma/Manifest1
-rw-r--r--dev-python/pyroma/metadata.xml12
-rw-r--r--dev-python/pyroma/pyroma-1.7.ebuild27
-rw-r--r--dev-python/pyrtf/Manifest1
-rw-r--r--dev-python/pyrtf/metadata.xml8
-rw-r--r--dev-python/pyrtf/pyrtf-0.45-r1.ebuild31
-rw-r--r--dev-python/pysaml2/Manifest1
-rw-r--r--dev-python/pysaml2/metadata.xml16
-rw-r--r--dev-python/pysaml2/pysaml2-2.1.0.ebuild32
-rw-r--r--dev-python/pyscard/Manifest1
-rw-r--r--dev-python/pyscard/metadata.xml9
-rw-r--r--dev-python/pyscard/pyscard-1.6.16.ebuild24
-rw-r--r--dev-python/pysctp/Manifest1
-rw-r--r--dev-python/pysctp/metadata.xml16
-rw-r--r--dev-python/pysctp/pysctp-0.6.ebuild26
-rw-r--r--dev-python/pysendfile/Manifest1
-rw-r--r--dev-python/pysendfile/metadata.xml8
-rw-r--r--dev-python/pysendfile/pysendfile-2.0.1.ebuild22
-rw-r--r--dev-python/pyserial/Manifest2
-rw-r--r--dev-python/pyserial/files/mapping.patch13
-rw-r--r--dev-python/pyserial/files/pyserial-2.5-python-3.patch43
-rw-r--r--dev-python/pyserial/files/pyserial-2.6-list_ports.patch15
-rw-r--r--dev-python/pyserial/metadata.xml8
-rw-r--r--dev-python/pyserial/pyserial-2.6-r1.ebuild22
-rw-r--r--dev-python/pyserial/pyserial-2.7-r1.ebuild38
-rw-r--r--dev-python/pyserial/pyserial-2.7.ebuild22
-rw-r--r--dev-python/pysfml/Manifest1
-rw-r--r--dev-python/pysfml/metadata.xml8
-rw-r--r--dev-python/pysfml/pysfml-1.6-r1.ebuild41
-rw-r--r--dev-python/pyshark/Manifest3
-rw-r--r--dev-python/pyshark/metadata.xml9
-rw-r--r--dev-python/pyshark/pyshark-0.3.4.ebuild28
-rw-r--r--dev-python/pyshark/pyshark-0.3.5.ebuild28
-rw-r--r--dev-python/pyshark/pyshark-0.3.6.ebuild28
-rw-r--r--dev-python/pyside-tools/Manifest1
-rw-r--r--dev-python/pyside-tools/files/0.2.13-fix-pysideuic-test-and-install.patch27
-rw-r--r--dev-python/pyside-tools/metadata.xml8
-rw-r--r--dev-python/pyside-tools/pyside-tools-0.2.15-r1.ebuild83
-rw-r--r--dev-python/pyside/Manifest1
-rw-r--r--dev-python/pyside/files/qgtkstyle-1.2.2.patch33
-rw-r--r--dev-python/pyside/files/rpath.cmake10
-rw-r--r--dev-python/pyside/metadata.xml20
-rw-r--r--dev-python/pyside/pyside-1.2.2-r1.ebuild142
-rw-r--r--dev-python/pyside/pyside-1.2.2.ebuild140
-rw-r--r--dev-python/pysnmp-apps/Manifest2
-rw-r--r--dev-python/pysnmp-apps/metadata.xml27
-rw-r--r--dev-python/pysnmp-apps/pysnmp-apps-0.3.2-r1.ebuild21
-rw-r--r--dev-python/pysnmp-apps/pysnmp-apps-0.3.4.ebuild24
-rw-r--r--dev-python/pysnmp-mibs/Manifest2
-rw-r--r--dev-python/pysnmp-mibs/metadata.xml26
-rw-r--r--dev-python/pysnmp-mibs/pysnmp-mibs-0.1.3-r1.ebuild21
-rw-r--r--dev-python/pysnmp-mibs/pysnmp-mibs-0.1.4.ebuild21
-rw-r--r--dev-python/pysnmp/Manifest3
-rw-r--r--dev-python/pysnmp/metadata.xml27
-rw-r--r--dev-python/pysnmp/pysnmp-3.4.4-r1.ebuild36
-rw-r--r--dev-python/pysnmp/pysnmp-4.2.2-r1.ebuild38
-rw-r--r--dev-python/pysnmp/pysnmp-4.2.5.ebuild36
-rw-r--r--dev-python/pysolr/Manifest2
-rw-r--r--dev-python/pysolr/metadata.xml13
-rw-r--r--dev-python/pysolr/pysolr-3.3.0.ebuild23
-rw-r--r--dev-python/pysolr/pysolr-3.3.2.ebuild22
-rw-r--r--dev-python/pyspf/Manifest2
-rw-r--r--dev-python/pyspf/metadata.xml8
-rw-r--r--dev-python/pyspf/pyspf-2.0.10.ebuild35
-rw-r--r--dev-python/pyspf/pyspf-2.0.11.ebuild35
-rw-r--r--dev-python/pysrt/Manifest3
-rw-r--r--dev-python/pysrt/metadata.xml12
-rw-r--r--dev-python/pysrt/pysrt-0.5.1.ebuild43
-rw-r--r--dev-python/pysrt/pysrt-1.0.0.ebuild37
-rw-r--r--dev-python/pysrt/pysrt-1.0.1.ebuild37
-rw-r--r--dev-python/pysrt/pysrt-9999.ebuild34
-rw-r--r--dev-python/pystache/Manifest2
-rw-r--r--dev-python/pystache/metadata.xml14
-rw-r--r--dev-python/pystache/pystache-0.5.3.ebuild27
-rw-r--r--dev-python/pystache/pystache-0.5.4.ebuild28
-rw-r--r--dev-python/pystatgrab/Manifest1
-rw-r--r--dev-python/pystatgrab/metadata.xml5
-rw-r--r--dev-python/pystatgrab/pystatgrab-0.6.ebuild30
-rw-r--r--dev-python/pystdf/Manifest1
-rw-r--r--dev-python/pystdf/metadata.xml10
-rw-r--r--dev-python/pystdf/pystdf-1.3.1-r1.ebuild17
-rw-r--r--dev-python/pysvg/Manifest1
-rw-r--r--dev-python/pysvg/metadata.xml8
-rw-r--r--dev-python/pysvg/pysvg-0.2.1-r1.ebuild21
-rw-r--r--dev-python/pysvn/Manifest2
-rw-r--r--dev-python/pysvn/files/pysvn-1.7.10-respect_flags.patch95
-rw-r--r--dev-python/pysvn/files/pysvn-1.7.9-respect_flags.patch96
-rw-r--r--dev-python/pysvn/metadata.xml5
-rw-r--r--dev-python/pysvn/pysvn-1.7.10.ebuild59
-rw-r--r--dev-python/pysvn/pysvn-1.7.9.ebuild59
-rw-r--r--dev-python/pysyck/Manifest1
-rw-r--r--dev-python/pysyck/metadata.xml13
-rw-r--r--dev-python/pysyck/pysyck-0.61.2-r1.ebuild30
-rw-r--r--dev-python/pytables/Manifest2
-rw-r--r--dev-python/pytables/files/pytables-3.1.1-blosc.patch16
-rw-r--r--dev-python/pytables/files/pytables-3.1.1-cython-backport.patch65
-rw-r--r--dev-python/pytables/files/pytables-3.1.1-numpy19-backport.patch51
-rw-r--r--dev-python/pytables/files/pytables-3.2.0-blosc.patch16
-rw-r--r--dev-python/pytables/metadata.xml17
-rw-r--r--dev-python/pytables/pytables-3.1.1-r2.ebuild75
-rw-r--r--dev-python/pytables/pytables-3.2.0.ebuild73
-rw-r--r--dev-python/pyte/Manifest1
-rw-r--r--dev-python/pyte/metadata.xml12
-rw-r--r--dev-python/pyte/pyte-0.4.9.ebuild27
-rw-r--r--dev-python/pytest-capturelog/Manifest1
-rw-r--r--dev-python/pytest-capturelog/metadata.xml13
-rw-r--r--dev-python/pytest-capturelog/pytest-capturelog-0.7.ebuild19
-rw-r--r--dev-python/pytest-cov/Manifest2
-rw-r--r--dev-python/pytest-cov/metadata.xml12
-rw-r--r--dev-python/pytest-cov/pytest-cov-1.6.ebuild21
-rw-r--r--dev-python/pytest-cov/pytest-cov-1.8.1.ebuild31
-rw-r--r--dev-python/pytest-localserver/Manifest1
-rw-r--r--dev-python/pytest-localserver/metadata.xml12
-rw-r--r--dev-python/pytest-localserver/pytest-localserver-0.3.4.ebuild28
-rw-r--r--dev-python/pytest-runner/Manifest2
-rw-r--r--dev-python/pytest-runner/files/pytest-runner-2.1.2-hgtools.patch17
-rw-r--r--dev-python/pytest-runner/files/pytest-runner.patch12
-rw-r--r--dev-python/pytest-runner/metadata.xml15
-rw-r--r--dev-python/pytest-runner/pytest-runner-2.1.2.ebuild25
-rw-r--r--dev-python/pytest-runner/pytest-runner-2.5.1.ebuild23
-rw-r--r--dev-python/pytest-timeout/Manifest1
-rw-r--r--dev-python/pytest-timeout/metadata.xml8
-rw-r--r--dev-python/pytest-timeout/pytest-timeout-0.4.ebuild25
-rw-r--r--dev-python/pytest/Manifest2
-rw-r--r--dev-python/pytest/metadata.xml8
-rw-r--r--dev-python/pytest/pytest-2.7.1.ebuild61
-rw-r--r--dev-python/pytest/pytest-2.7.2.ebuild61
-rw-r--r--dev-python/python-augeas/Manifest3
-rw-r--r--dev-python/python-augeas/metadata.xml10
-rw-r--r--dev-python/python-augeas/python-augeas-0.4.1.ebuild28
-rw-r--r--dev-python/python-augeas/python-augeas-0.4.2_pre131218.ebuild29
-rw-r--r--dev-python/python-augeas/python-augeas-0.5.0.ebuild28
-rw-r--r--dev-python/python-barbicanclient/Manifest2
-rw-r--r--dev-python/python-barbicanclient/metadata.xml16
-rw-r--r--dev-python/python-barbicanclient/python-barbicanclient-3.0.1.ebuild33
-rw-r--r--dev-python/python-barbicanclient/python-barbicanclient-3.0.3.ebuild37
-rw-r--r--dev-python/python-bibtex/Manifest1
-rw-r--r--dev-python/python-bibtex/files/python-bibtex-1.2.4-fix_tests.patch28
-rw-r--r--dev-python/python-bibtex/metadata.xml9
-rw-r--r--dev-python/python-bibtex/python-bibtex-1.2.7-r1.ebuild35
-rw-r--r--dev-python/python-biggles/Manifest1
-rw-r--r--dev-python/python-biggles/metadata.xml8
-rw-r--r--dev-python/python-biggles/python-biggles-1.6.6-r1.ebuild37
-rw-r--r--dev-python/python-bugzilla/Manifest1
-rw-r--r--dev-python/python-bugzilla/metadata.xml8
-rw-r--r--dev-python/python-bugzilla/python-bugzilla-1.1.0.ebuild23
-rw-r--r--dev-python/python-caja/Manifest1
-rw-r--r--dev-python/python-caja/metadata.xml8
-rw-r--r--dev-python/python-caja/python-caja-1.8.0.ebuild52
-rw-r--r--dev-python/python-catcher/Manifest1
-rw-r--r--dev-python/python-catcher/metadata.xml11
-rw-r--r--dev-python/python-catcher/python-catcher-0.1.7.ebuild28
-rw-r--r--dev-python/python-cdb/Manifest1
-rw-r--r--dev-python/python-cdb/metadata.xml5
-rw-r--r--dev-python/python-cdb/python-cdb-0.34-r1.ebuild26
-rw-r--r--dev-python/python-cdb/python-cdb-0.34.ebuild33
-rw-r--r--dev-python/python-ceilometerclient/Manifest1
-rw-r--r--dev-python/python-ceilometerclient/metadata.xml17
-rw-r--r--dev-python/python-ceilometerclient/python-ceilometerclient-1.0.10.ebuild43
-rw-r--r--dev-python/python-cinderclient/Manifest4
-rw-r--r--dev-python/python-cinderclient/metadata.xml16
-rw-r--r--dev-python/python-cinderclient/python-cinderclient-1.0.9.ebuild45
-rw-r--r--dev-python/python-cinderclient/python-cinderclient-1.1.1.ebuild48
-rw-r--r--dev-python/python-cinderclient/python-cinderclient-1.1.2.ebuild58
-rw-r--r--dev-python/python-cinderclient/python-cinderclient-1.2.1-r1.ebuild54
-rw-r--r--dev-python/python-cinderclient/python-cinderclient-1.2.1.ebuild49
-rw-r--r--dev-python/python-cluster/Manifest1
-rw-r--r--dev-python/python-cluster/files/python-cluster-python3.patch37
-rw-r--r--dev-python/python-cluster/metadata.xml9
-rw-r--r--dev-python/python-cluster/python-cluster-1.2.2.ebuild24
-rw-r--r--dev-python/python-daap/Manifest1
-rw-r--r--dev-python/python-daap/metadata.xml6
-rw-r--r--dev-python/python-daap/python-daap-0.7.1-r1.ebuild31
-rw-r--r--dev-python/python-daemon/Manifest3
-rw-r--r--dev-python/python-daemon/metadata.xml8
-rw-r--r--dev-python/python-daemon/python-daemon-1.6-r1.ebuild28
-rw-r--r--dev-python/python-daemon/python-daemon-2.0.4.ebuild33
-rw-r--r--dev-python/python-daemon/python-daemon-2.0.5.ebuild34
-rw-r--r--dev-python/python-dateutil/Manifest5
-rw-r--r--dev-python/python-dateutil/files/python-dateutil-1.4.1-locale.patch13
-rw-r--r--dev-python/python-dateutil/files/python-dateutil-2.1-open-utf-8.patch21
-rw-r--r--dev-python/python-dateutil/files/python-dateutil-2.4.2-timelex.patch13
-rw-r--r--dev-python/python-dateutil/metadata.xml13
-rw-r--r--dev-python/python-dateutil/python-dateutil-2.1-r1.ebuild58
-rw-r--r--dev-python/python-dateutil/python-dateutil-2.2.ebuild53
-rw-r--r--dev-python/python-dateutil/python-dateutil-2.4.0.ebuild33
-rw-r--r--dev-python/python-dateutil/python-dateutil-2.4.1-r1.ebuild33
-rw-r--r--dev-python/python-dateutil/python-dateutil-2.4.2-r1.ebuild43
-rw-r--r--dev-python/python-dateutil/python-dateutil-2.4.2.ebuild39
-rw-r--r--dev-python/python-debian/Manifest2
-rw-r--r--dev-python/python-debian/files/python-debian-0.1.26-CVE-2015-0840.patch29
-rw-r--r--dev-python/python-debian/files/python-debian-0.1.26-fix-tests.patch24
-rw-r--r--dev-python/python-debian/metadata.xml9
-rw-r--r--dev-python/python-debian/python-debian-0.1.26.ebuild45
-rw-r--r--dev-python/python-debian/python-debian-0.1.27.ebuild46
-rw-r--r--dev-python/python-digest/Manifest1
-rw-r--r--dev-python/python-digest/files/python-digest-1.7-unittest.patch9
-rw-r--r--dev-python/python-digest/metadata.xml13
-rw-r--r--dev-python/python-digest/python-digest-1.7-r1.ebuild28
-rw-r--r--dev-python/python-discid/Manifest1
-rw-r--r--dev-python/python-discid/metadata.xml12
-rw-r--r--dev-python/python-discid/python-discid-1.1.0.ebuild20
-rw-r--r--dev-python/python-distutils-extra/Manifest3
-rw-r--r--dev-python/python-distutils-extra/metadata.xml8
-rw-r--r--dev-python/python-distutils-extra/python-distutils-extra-2.33-r1.ebuild46
-rw-r--r--dev-python/python-distutils-extra/python-distutils-extra-2.33.ebuild49
-rw-r--r--dev-python/python-distutils-extra/python-distutils-extra-2.37-r1.ebuild46
-rw-r--r--dev-python/python-distutils-extra/python-distutils-extra-2.38.ebuild42
-rw-r--r--dev-python/python-djvulibre/Manifest1
-rw-r--r--dev-python/python-djvulibre/metadata.xml11
-rw-r--r--dev-python/python-djvulibre/python-djvulibre-0.3.9.ebuild23
-rw-r--r--dev-python/python-docs/Manifest12
-rw-r--r--dev-python/python-docs/metadata.xml5
-rw-r--r--dev-python/python-docs/python-docs-2.7.3.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-2.7.6-r1.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-2.7.7.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-2.7.8.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-3.2.5.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-3.3.2.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-3.3.3.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-3.3.4.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-3.3.5-r1.ebuild31
-rw-r--r--dev-python/python-docs/python-docs-3.4.0-r1.ebuild39
-rw-r--r--dev-python/python-docs/python-docs-3.4.1.ebuild39
-rw-r--r--dev-python/python-docs/python-docs-3.4.2.ebuild39
-rw-r--r--dev-python/python-dsv/Manifest1
-rw-r--r--dev-python/python-dsv/files/python-dsv-1.4.1-wxversion.patch16
-rw-r--r--dev-python/python-dsv/metadata.xml13
-rw-r--r--dev-python/python-dsv/python-dsv-1.4.1-r1.ebuild29
-rw-r--r--dev-python/python-etcd/Manifest2
-rw-r--r--dev-python/python-etcd/metadata.xml13
-rw-r--r--dev-python/python-etcd/python-etcd-0.3.2.ebuild24
-rw-r--r--dev-python/python-etcd/python-etcd-0.3.3.ebuild24
-rw-r--r--dev-python/python-evdev/Manifest2
-rw-r--r--dev-python/python-evdev/metadata.xml10
-rw-r--r--dev-python/python-evdev/python-evdev-0.4.3.ebuild19
-rw-r--r--dev-python/python-evdev/python-evdev-0.4.5.ebuild19
-rw-r--r--dev-python/python-exconsole/Manifest1
-rw-r--r--dev-python/python-exconsole/metadata.xml12
-rw-r--r--dev-python/python-exconsole/python-exconsole-0.1.5.ebuild18
-rw-r--r--dev-python/python-fastcgi/Manifest1
-rw-r--r--dev-python/python-fastcgi/files/python-fastcgi-1.1-setup.patch15
-rw-r--r--dev-python/python-fastcgi/metadata.xml8
-rw-r--r--dev-python/python-fastcgi/python-fastcgi-1.1-r1.ebuild30
-rw-r--r--dev-python/python-fastimport/Manifest1
-rw-r--r--dev-python/python-fastimport/metadata.xml12
-rw-r--r--dev-python/python-fastimport/python-fastimport-0.9.2-r1.ebuild35
-rw-r--r--dev-python/python-fchksum/Manifest1
-rw-r--r--dev-python/python-fchksum/files/python-fchksum-1.7.1-md5-align.patch26
-rw-r--r--dev-python/python-fchksum/metadata.xml5
-rw-r--r--dev-python/python-fchksum/python-fchksum-1.7.1-r1.ebuild22
-rw-r--r--dev-python/python-geoclue/Manifest1
-rw-r--r--dev-python/python-geoclue/metadata.xml8
-rw-r--r--dev-python/python-geoclue/python-geoclue-0.1.0-r1.ebuild37
-rw-r--r--dev-python/python-gflags/Manifest1
-rw-r--r--dev-python/python-gflags/files/python-gflags-2.0-scripts-install.patch29
-rw-r--r--dev-python/python-gflags/files/python-gflags-2.0-skip-test-as-root.patch28
-rw-r--r--dev-python/python-gflags/files/python-gflags-2.0-tests-python-2.7.patch68
-rw-r--r--dev-python/python-gflags/files/python-gflags-2.0-tests-respect-tmpdir.patch58
-rw-r--r--dev-python/python-gflags/metadata.xml8
-rw-r--r--dev-python/python-gflags/python-gflags-2.0.ebuild38
-rw-r--r--dev-python/python-glanceclient/Manifest7
-rw-r--r--dev-python/python-glanceclient/metadata.xml16
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.13.1.ebuild66
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.14.2.ebuild69
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.17.0.ebuild74
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.17.1.ebuild79
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.17.2.ebuild81
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.18.0.ebuild76
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.19.0-r1.ebuild77
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-0.19.0.ebuild76
-rw-r--r--dev-python/python-gnupg/Manifest1
-rw-r--r--dev-python/python-gnupg/files/python-gnupg-0.3.6-skip-search-keys-tests.patch20
-rw-r--r--dev-python/python-gnupg/files/python-gnupg-0.3.7-msg-handle.patch31
-rw-r--r--dev-python/python-gnupg/metadata.xml9
-rw-r--r--dev-python/python-gnupg/python-gnupg-0.3.7.ebuild26
-rw-r--r--dev-python/python-gtkmvc/Manifest1
-rw-r--r--dev-python/python-gtkmvc/metadata.xml9
-rw-r--r--dev-python/python-gtkmvc/python-gtkmvc-1.99.1.ebuild35
-rw-r--r--dev-python/python-gudev/Manifest1
-rw-r--r--dev-python/python-gudev/files/automake.patch10
-rw-r--r--dev-python/python-gudev/metadata.xml12
-rw-r--r--dev-python/python-gudev/python-gudev-147.2-r1.ebuild46
-rw-r--r--dev-python/python-heatclient/Manifest6
-rw-r--r--dev-python/python-heatclient/metadata.xml15
-rw-r--r--dev-python/python-heatclient/python-heatclient-0.2.12.ebuild129
-rw-r--r--dev-python/python-heatclient/python-heatclient-0.2.9.ebuild57
-rw-r--r--dev-python/python-heatclient/python-heatclient-0.3.0.ebuild97
-rw-r--r--dev-python/python-heatclient/python-heatclient-0.4.0.ebuild102
-rw-r--r--dev-python/python-heatclient/python-heatclient-0.5.0.ebuild98
-rw-r--r--dev-python/python-heatclient/python-heatclient-0.6.0.ebuild97
-rw-r--r--dev-python/python-iptables/Manifest2
-rw-r--r--dev-python/python-iptables/files/python-iptables-0.2.0-tests.patch21
-rw-r--r--dev-python/python-iptables/files/python-iptables-0.3.0-conntrack-fixes.patch182
-rw-r--r--dev-python/python-iptables/files/python-iptables-fix-ctypes.patch70
-rw-r--r--dev-python/python-iptables/metadata.xml22
-rw-r--r--dev-python/python-iptables/python-iptables-0.8.0.ebuild42
-rw-r--r--dev-python/python-iptables/python-iptables-0.9.0.ebuild37
-rw-r--r--dev-python/python-ironicclient/Manifest1
-rw-r--r--dev-python/python-ironicclient/metadata.xml14
-rw-r--r--dev-python/python-ironicclient/python-ironicclient-0.5.1.ebuild71
-rw-r--r--dev-python/python-iwscan/Manifest1
-rw-r--r--dev-python/python-iwscan/files/python-iwscan-20080402-wireless-tools-30.patch14
-rw-r--r--dev-python/python-iwscan/metadata.xml9
-rw-r--r--dev-python/python-iwscan/python-iwscan-20080402-r1.ebuild29
-rw-r--r--dev-python/python-keystoneclient/Manifest7
-rw-r--r--dev-python/python-keystoneclient/files/keystoneclient-1.0.0-cve-2015-1852.patch63
-rw-r--r--dev-python/python-keystoneclient/metadata.xml15
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.0.0-r1.ebuild101
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.1.1.ebuild101
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.3.1.ebuild93
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.3.2.ebuild101
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.4.0.ebuild94
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.5.0.ebuild93
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.6.0-r1.ebuild94
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-1.6.0.ebuild93
-rw-r--r--dev-python/python-ldap/Manifest3
-rw-r--r--dev-python/python-ldap/metadata.xml13
-rw-r--r--dev-python/python-ldap/python-ldap-2.4.15.ebuild66
-rw-r--r--dev-python/python-ldap/python-ldap-2.4.19.ebuild74
-rw-r--r--dev-python/python-ldap/python-ldap-2.4.20.ebuild74
-rw-r--r--dev-python/python-ldap/python-ldap-9999.ebuild74
-rw-r--r--dev-python/python-levenshtein/Manifest4
-rw-r--r--dev-python/python-levenshtein/files/genextdoc.py214
-rw-r--r--dev-python/python-levenshtein/metadata.xml9
-rw-r--r--dev-python/python-levenshtein/python-levenshtein-0.10.2-r1.ebuild38
-rw-r--r--dev-python/python-levenshtein/python-levenshtein-0.11.1.ebuild38
-rw-r--r--dev-python/python-levenshtein/python-levenshtein-0.11.2.ebuild43
-rw-r--r--dev-python/python-levenshtein/python-levenshtein-0.12.0.ebuild43
-rw-r--r--dev-python/python-linux-procfs/Manifest1
-rw-r--r--dev-python/python-linux-procfs/metadata.xml8
-rw-r--r--dev-python/python-linux-procfs/python-linux-procfs-0.4.6.ebuild21
-rw-r--r--dev-python/python-linux-procfs/python-linux-procfs-9999.ebuild21
-rw-r--r--dev-python/python-lzo/Manifest1
-rw-r--r--dev-python/python-lzo/files/lzo2compat.patch13
-rw-r--r--dev-python/python-lzo/metadata.xml5
-rw-r--r--dev-python/python-lzo/python-lzo-1.08-r1.ebuild26
-rw-r--r--dev-python/python-magic/Manifest1
-rw-r--r--dev-python/python-magic/metadata.xml13
-rw-r--r--dev-python/python-magic/python-magic-0.4.6-r1.ebuild21
-rw-r--r--dev-python/python-memcached/Manifest2
-rw-r--r--dev-python/python-memcached/metadata.xml14
-rw-r--r--dev-python/python-memcached/python-memcached-1.53-r1.ebuild43
-rw-r--r--dev-python/python-memcached/python-memcached-1.54.ebuild43
-rw-r--r--dev-python/python-mhash/Manifest1
-rw-r--r--dev-python/python-mhash/metadata.xml12
-rw-r--r--dev-python/python-mhash/python-mhash-1.4-r1.ebuild30
-rw-r--r--dev-python/python-mpd/Manifest2
-rw-r--r--dev-python/python-mpd/metadata.xml13
-rw-r--r--dev-python/python-mpd/python-mpd-0.5.3.ebuild26
-rw-r--r--dev-python/python-mpd/python-mpd-0.5.4.ebuild26
-rw-r--r--dev-python/python-musicbrainz-ngs/Manifest1
-rw-r--r--dev-python/python-musicbrainz-ngs/files/python-musicbrainz-ngs-0.4-fix-package_data-placement.patch20
-rw-r--r--dev-python/python-musicbrainz-ngs/metadata.xml13
-rw-r--r--dev-python/python-musicbrainz-ngs/python-musicbrainz-ngs-0.4.ebuild33
-rw-r--r--dev-python/python-musicbrainz/Manifest1
-rw-r--r--dev-python/python-musicbrainz/metadata.xml6
-rw-r--r--dev-python/python-musicbrainz/python-musicbrainz-0.7.4-r1.ebuild53
-rw-r--r--dev-python/python-nbxmpp/Manifest3
-rw-r--r--dev-python/python-nbxmpp/metadata.xml8
-rw-r--r--dev-python/python-nbxmpp/python-nbxmpp-0.5.1.ebuild22
-rw-r--r--dev-python/python-nbxmpp/python-nbxmpp-0.5.2.ebuild22
-rw-r--r--dev-python/python-nbxmpp/python-nbxmpp-0.5.3.ebuild22
-rw-r--r--dev-python/python-neutronclient/Manifest3
-rw-r--r--dev-python/python-neutronclient/metadata.xml16
-rw-r--r--dev-python/python-neutronclient/python-neutronclient-2.3.6.ebuild82
-rw-r--r--dev-python/python-neutronclient/python-neutronclient-2.4.0.ebuild96
-rw-r--r--dev-python/python-neutronclient/python-neutronclient-2.6.0.ebuild90
-rw-r--r--dev-python/python-novaclient/Manifest5
-rw-r--r--dev-python/python-novaclient/metadata.xml19
-rw-r--r--dev-python/python-novaclient/python-novaclient-2.17.0-r1.ebuild43
-rw-r--r--dev-python/python-novaclient/python-novaclient-2.17.0.ebuild46
-rw-r--r--dev-python/python-novaclient/python-novaclient-2.20.0.ebuild52
-rw-r--r--dev-python/python-novaclient/python-novaclient-2.23.0.ebuild64
-rw-r--r--dev-python/python-novaclient/python-novaclient-2.23.1.ebuild67
-rw-r--r--dev-python/python-novaclient/python-novaclient-2.25.0.ebuild63
-rw-r--r--dev-python/python-nss/Manifest2
-rw-r--r--dev-python/python-nss/files/gentoo_lib_name.patch38
-rw-r--r--dev-python/python-nss/files/python-nss-0.12-rsapssparams.patch25
-rw-r--r--dev-python/python-nss/metadata.xml17
-rw-r--r--dev-python/python-nss/python-nss-0.12-r1.ebuild45
-rw-r--r--dev-python/python-nss/python-nss-0.16.0.ebuild62
-rw-r--r--dev-python/python-oembed/Manifest2
-rw-r--r--dev-python/python-oembed/metadata.xml8
-rw-r--r--dev-python/python-oembed/python-oembed-0.2.1-r1.ebuild25
-rw-r--r--dev-python/python-oembed/python-oembed-0.2.2.ebuild25
-rw-r--r--dev-python/python-openid/Manifest1
-rw-r--r--dev-python/python-openid/files/python-openid-2.0.0-gentoo-test_fetchers.diff11
-rw-r--r--dev-python/python-openid/metadata.xml5
-rw-r--r--dev-python/python-openid/python-openid-2.2.5-r1.ebuild55
-rw-r--r--dev-python/python-openstackclient/Manifest1
-rw-r--r--dev-python/python-openstackclient/metadata.xml16
-rw-r--r--dev-python/python-openstackclient/python-openstackclient-1.0.4.ebuild88
-rw-r--r--dev-python/python-pam/Manifest1
-rw-r--r--dev-python/python-pam/metadata.xml14
-rw-r--r--dev-python/python-pam/python-pam-0.1.4.ebuild20
-rw-r--r--dev-python/python-poppler-qt4/Manifest1
-rw-r--r--dev-python/python-poppler-qt4/files/python-poppler-qt4-0.18.1-update_for_new_PyQt4_build.patch185
-rw-r--r--dev-python/python-poppler-qt4/metadata.xml13
-rw-r--r--dev-python/python-poppler-qt4/python-poppler-qt4-0.18.1.ebuild27
-rw-r--r--dev-python/python-poppler/Manifest1
-rw-r--r--dev-python/python-poppler/files/python-poppler-0.12.1-75_74.diff73
-rw-r--r--dev-python/python-poppler/files/python-poppler-0.12.1-76_75.diff66
-rw-r--r--dev-python/python-poppler/files/python-poppler-0.12.1-79_78.diff52
-rw-r--r--dev-python/python-poppler/files/python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch65
-rw-r--r--dev-python/python-poppler/files/python-poppler-0.12.1-poppler0.15.0-changes.patch66
-rw-r--r--dev-python/python-poppler/metadata.xml8
-rw-r--r--dev-python/python-poppler/python-poppler-0.12.1-r4.ebuild57
-rw-r--r--dev-python/python-prctl/Manifest3
-rw-r--r--dev-python/python-prctl/metadata.xml8
-rw-r--r--dev-python/python-prctl/python-prctl-1.5.0-r1.ebuild25
-rw-r--r--dev-python/python-prctl/python-prctl-1.6.0.ebuild25
-rw-r--r--dev-python/python-prctl/python-prctl-1.6.1.ebuild25
-rw-r--r--dev-python/python-ptrace/Manifest1
-rw-r--r--dev-python/python-ptrace/files/0.8.1-python3.4.patch147
-rw-r--r--dev-python/python-ptrace/metadata.xml9
-rw-r--r--dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild30
-rw-r--r--dev-python/python-saharaclient/Manifest2
-rw-r--r--dev-python/python-saharaclient/metadata.xml16
-rw-r--r--dev-python/python-saharaclient/python-saharaclient-0.7.0.ebuild42
-rw-r--r--dev-python/python-saharaclient/python-saharaclient-0.9.0.ebuild59
-rw-r--r--dev-python/python-scw/Manifest1
-rw-r--r--dev-python/python-scw/metadata.xml5
-rw-r--r--dev-python/python-scw/python-scw-0.4.7-r1.ebuild21
-rw-r--r--dev-python/python-slip/Manifest2
-rw-r--r--dev-python/python-slip/files/python-slip-0.2.20-no-selinux.patch93
-rw-r--r--dev-python/python-slip/files/python-slip-0.4.0-no-selinux.patch93
-rw-r--r--dev-python/python-slip/metadata.xml5
-rw-r--r--dev-python/python-slip/python-slip-0.6.0.ebuild45
-rw-r--r--dev-python/python-slip/python-slip-0.6.1.ebuild45
-rw-r--r--dev-python/python-social-auth/Manifest2
-rw-r--r--dev-python/python-social-auth/metadata.xml8
-rw-r--r--dev-python/python-social-auth/python-social-auth-0.1.26.ebuild57
-rw-r--r--dev-python/python-social-auth/python-social-auth-0.2.10.ebuild58
-rw-r--r--dev-python/python-sqlparse/Manifest5
-rw-r--r--dev-python/python-sqlparse/metadata.xml13
-rw-r--r--dev-python/python-sqlparse/python-sqlparse-0.1.10.ebuild33
-rw-r--r--dev-python/python-sqlparse/python-sqlparse-0.1.13.ebuild48
-rw-r--r--dev-python/python-sqlparse/python-sqlparse-0.1.14.ebuild50
-rw-r--r--dev-python/python-sqlparse/python-sqlparse-0.1.15.ebuild50
-rw-r--r--dev-python/python-sqlparse/python-sqlparse-0.1.16.ebuild50
-rw-r--r--dev-python/python-stdnum/Manifest2
-rw-r--r--dev-python/python-stdnum/metadata.xml17
-rw-r--r--dev-python/python-stdnum/python-stdnum-0.9.ebuild23
-rw-r--r--dev-python/python-stdnum/python-stdnum-1.1.ebuild28
-rw-r--r--dev-python/python-swiftclient/Manifest3
-rw-r--r--dev-python/python-swiftclient/metadata.xml15
-rw-r--r--dev-python/python-swiftclient/python-swiftclient-2.0.3.ebuild55
-rw-r--r--dev-python/python-swiftclient/python-swiftclient-2.1.0.ebuild56
-rw-r--r--dev-python/python-swiftclient/python-swiftclient-2.2.0-r1.ebuild59
-rw-r--r--dev-python/python-systemd/Manifest1
-rw-r--r--dev-python/python-systemd/metadata.xml10
-rw-r--r--dev-python/python-systemd/python-systemd-230.ebuild26
-rw-r--r--dev-python/python-termstyle/Manifest1
-rw-r--r--dev-python/python-termstyle/files/tests-unicode.patch10
-rw-r--r--dev-python/python-termstyle/metadata.xml13
-rw-r--r--dev-python/python-termstyle/python-termstyle-0.1.10.ebuild36
-rw-r--r--dev-python/python-troveclient/Manifest1
-rw-r--r--dev-python/python-troveclient/metadata.xml16
-rw-r--r--dev-python/python-troveclient/python-troveclient-1.0.5.ebuild40
-rw-r--r--dev-python/python-tvrage/Manifest1
-rw-r--r--dev-python/python-tvrage/metadata.xml9
-rw-r--r--dev-python/python-tvrage/python-tvrage-0.4.1.ebuild25
-rw-r--r--dev-python/python-twitter/Manifest1
-rw-r--r--dev-python/python-twitter/metadata.xml8
-rw-r--r--dev-python/python-twitter/python-twitter-1.1.ebuild36
-rw-r--r--dev-python/python-uinput/Manifest3
-rw-r--r--dev-python/python-uinput/metadata.xml8
-rw-r--r--dev-python/python-uinput/python-uinput-0.10.1.ebuild29
-rw-r--r--dev-python/python-uinput/python-uinput-0.10.2.ebuild26
-rw-r--r--dev-python/python-uinput/python-uinput-0.9.ebuild29
-rw-r--r--dev-python/python-urljr/Manifest1
-rw-r--r--dev-python/python-urljr/files/python-urljr-1.0.1-gentoo-test_fetchers.patch11
-rw-r--r--dev-python/python-urljr/metadata.xml6
-rw-r--r--dev-python/python-urljr/python-urljr-1.0.1-r1.ebuild28
-rw-r--r--dev-python/python-virtkey/Manifest1
-rw-r--r--dev-python/python-virtkey/metadata.xml8
-rw-r--r--dev-python/python-virtkey/python-virtkey-0.60.0-r1.ebuild32
-rw-r--r--dev-python/python-wpactrl/Manifest1
-rw-r--r--dev-python/python-wpactrl/metadata.xml9
-rw-r--r--dev-python/python-wpactrl/python-wpactrl-20081102-r1.ebuild21
-rw-r--r--dev-python/python-xlib/Manifest1
-rw-r--r--dev-python/python-xlib/files/defs11
-rw-r--r--dev-python/python-xlib/metadata.xml8
-rw-r--r--dev-python/python-xlib/python-xlib-0.15_rc1-r2.ebuild49
-rw-r--r--dev-python/python-xlib/python-xlib-0.15_rc1.ebuild38
-rw-r--r--dev-python/python-yadis/Manifest1
-rw-r--r--dev-python/python-yadis/files/python-yadis-1.1.0-gentoo-test.patch82
-rw-r--r--dev-python/python-yadis/metadata.xml6
-rw-r--r--dev-python/python-yadis/python-yadis-1.1.0-r2.ebuild31
-rw-r--r--dev-python/python3-openid/Manifest1
-rw-r--r--dev-python/python3-openid/files/django-tests.patch32
-rw-r--r--dev-python/python3-openid/metadata.xml8
-rw-r--r--dev-python/python3-openid/python3-openid-3.0.4_p1.ebuild35
-rw-r--r--dev-python/pythondialog/Manifest2
-rw-r--r--dev-python/pythondialog/metadata.xml8
-rw-r--r--dev-python/pythondialog/pythondialog-3.2.2.ebuild36
-rw-r--r--dev-python/pythondialog/pythondialog-3.3.0.ebuild36
-rw-r--r--dev-python/pythong/Manifest2
-rw-r--r--dev-python/pythong/metadata.xml5
-rw-r--r--dev-python/pythong/pythong-2.1.5-r2.ebuild56
-rw-r--r--dev-python/pythonmagick/Manifest2
-rw-r--r--dev-python/pythonmagick/files/pythonmagick-0.9.10-Makefile.am.patch11
-rw-r--r--dev-python/pythonmagick/files/pythonmagick-0.9.10-ax_boost_python.patch18
-rw-r--r--dev-python/pythonmagick/metadata.xml8
-rw-r--r--dev-python/pythonmagick/pythonmagick-0.9.11.ebuild61
-rw-r--r--dev-python/pythonmagick/pythonmagick-0.9.12.ebuild60
-rw-r--r--dev-python/pythonutils/Manifest1
-rw-r--r--dev-python/pythonutils/metadata.xml5
-rw-r--r--dev-python/pythonutils/pythonutils-0.4.0-r1.ebuild26
-rw-r--r--dev-python/pytools/Manifest1
-rw-r--r--dev-python/pytools/metadata.xml10
-rw-r--r--dev-python/pytools/pytools-2014.3.5.ebuild30
-rw-r--r--dev-python/pytools/pytools-9999.ebuild29
-rw-r--r--dev-python/pytz/Manifest5
-rw-r--r--dev-python/pytz/files/pytz-2009h-zoneinfo-noinstall.patch32
-rw-r--r--dev-python/pytz/files/pytz-2009j-zoneinfo.patch14
-rw-r--r--dev-python/pytz/metadata.xml16
-rw-r--r--dev-python/pytz/pytz-2013d.ebuild33
-rw-r--r--dev-python/pytz/pytz-2014.10.ebuild31
-rw-r--r--dev-python/pytz/pytz-2014.9.ebuild31
-rw-r--r--dev-python/pytz/pytz-2015.2.ebuild31
-rw-r--r--dev-python/pytz/pytz-2015.4.ebuild34
-rw-r--r--dev-python/pyudev/Manifest1
-rw-r--r--dev-python/pyudev/metadata.xml16
-rw-r--r--dev-python/pyudev/pyudev-0.16.1-r1.ebuild70
-rw-r--r--dev-python/pyusb/Manifest2
-rw-r--r--dev-python/pyusb/metadata.xml12
-rw-r--r--dev-python/pyusb/pyusb-0.4.3.ebuild32
-rw-r--r--dev-python/pyusb/pyusb-1.0.0_beta2.ebuild28
-rw-r--r--dev-python/pyutil/Manifest1
-rw-r--r--dev-python/pyutil/metadata.xml24
-rw-r--r--dev-python/pyutil/pyutil-2.0.0.ebuild27
-rw-r--r--dev-python/pyutmp/Manifest1
-rw-r--r--dev-python/pyutmp/metadata.xml12
-rw-r--r--dev-python/pyutmp/pyutmp-0.2.1.ebuild18
-rw-r--r--dev-python/pyvorbis/Manifest1
-rw-r--r--dev-python/pyvorbis/files/pyvorbis-1.4-python25.patch65
-rw-r--r--dev-python/pyvorbis/files/pyvorbisfile.c-1.4.patch20
-rw-r--r--dev-python/pyvorbis/metadata.xml5
-rw-r--r--dev-python/pyvorbis/pyvorbis-1.4-r4.ebuild39
-rw-r--r--dev-python/pyvtk/Manifest1
-rw-r--r--dev-python/pyvtk/files/pyvtk-0.4.74.patch20
-rw-r--r--dev-python/pyvtk/metadata.xml8
-rw-r--r--dev-python/pyvtk/pyvtk-0.4.74.ebuild24
-rw-r--r--dev-python/pywavelets/Manifest1
-rw-r--r--dev-python/pywavelets/metadata.xml16
-rw-r--r--dev-python/pywavelets/pywavelets-0.2.2-r1.ebuild50
-rw-r--r--dev-python/pywcs/Manifest1
-rw-r--r--dev-python/pywcs/files/pywcs-1.11-wcslib.patch126
-rw-r--r--dev-python/pywcs/metadata.xml10
-rw-r--r--dev-python/pywcs/pywcs-1.11-r1.ebuild41
-rw-r--r--dev-python/pywebdav/Manifest1
-rw-r--r--dev-python/pywebdav/metadata.xml11
-rw-r--r--dev-python/pywebdav/pywebdav-0.9.8-r1.ebuild30
-rw-r--r--dev-python/pywebkitgtk/Manifest1
-rw-r--r--dev-python/pywebkitgtk/metadata.xml17
-rw-r--r--dev-python/pywebkitgtk/pywebkitgtk-1.1.8-r1.ebuild51
-rw-r--r--dev-python/pyx/Manifest3
-rw-r--r--dev-python/pyx/metadata.xml14
-rw-r--r--dev-python/pyx/pyx-0.12.1-r1.ebuild47
-rw-r--r--dev-python/pyx/pyx-0.13.ebuild47
-rw-r--r--dev-python/pyx/pyx-0.14.ebuild47
-rw-r--r--dev-python/pyxattr/Manifest2
-rw-r--r--dev-python/pyxattr/files/pyxattr-0.5.1-test-bytes.patch19
-rw-r--r--dev-python/pyxattr/metadata.xml16
-rw-r--r--dev-python/pyxattr/pyxattr-0.5.3.ebuild53
-rw-r--r--dev-python/pyxattr/pyxattr-0.5.5.ebuild56
-rw-r--r--dev-python/pyxattr/pyxattr-9999.ebuild40
-rw-r--r--dev-python/pyxdg/Manifest1
-rw-r--r--dev-python/pyxdg/files/pyxdg-subprocess.patch38
-rw-r--r--dev-python/pyxdg/files/sec-patch-CVE-2014-1624.patch54
-rw-r--r--dev-python/pyxdg/metadata.xml5
-rw-r--r--dev-python/pyxdg/pyxdg-0.25-r1.ebuild28
-rw-r--r--dev-python/pyxenstore/Manifest1
-rw-r--r--dev-python/pyxenstore/metadata.xml15
-rw-r--r--dev-python/pyxenstore/pyxenstore-0.0.2.ebuild20
-rw-r--r--dev-python/pyxenstore/pyxenstore-9999.ebuild22
-rw-r--r--dev-python/pyxml/Manifest1
-rw-r--r--dev-python/pyxml/files/pyxml-0.8.4-python-2.6.patch28
-rw-r--r--dev-python/pyxml/metadata.xml8
-rw-r--r--dev-python/pyxml/pyxml-0.8.4-r3.ebuild75
-rw-r--r--dev-python/pyyaml/Manifest1
-rw-r--r--dev-python/pyyaml/metadata.xml8
-rw-r--r--dev-python/pyyaml/pyyaml-3.11.ebuild41
-rw-r--r--dev-python/pyzmq/Manifest3
-rw-r--r--dev-python/pyzmq/files/pyzmq-2.2.0.1-python3.patch34
-rw-r--r--dev-python/pyzmq/metadata.xml11
-rw-r--r--dev-python/pyzmq/pyzmq-14.4.1.ebuild60
-rw-r--r--dev-python/pyzmq/pyzmq-14.6.0.ebuild65
-rw-r--r--dev-python/pyzmq/pyzmq-14.7.0.ebuild65
-rw-r--r--dev-python/pyzor/Manifest3
-rw-r--r--dev-python/pyzor/files/pyzor-0.5.0-python26_warnings.patch89
-rw-r--r--dev-python/pyzor/files/pyzord_getopt.patch24
-rw-r--r--dev-python/pyzor/metadata.xml14
-rw-r--r--dev-python/pyzor/pyzor-0.5.0-r2.ebuild66
-rw-r--r--dev-python/pyzor/pyzor-0.7.0.ebuild57
-rw-r--r--dev-python/pyzor/pyzor-1.0.0.ebuild67
-rw-r--r--dev-python/qpid-python/Manifest1
-rw-r--r--dev-python/qpid-python/metadata.xml8
-rw-r--r--dev-python/qpid-python/qpid-python-0.20.ebuild45
-rw-r--r--dev-python/qrcode/Manifest2
-rw-r--r--dev-python/qrcode/metadata.xml8
-rw-r--r--dev-python/qrcode/qrcode-5.0.1.ebuild30
-rw-r--r--dev-python/qrcode/qrcode-5.1.ebuild38
-rw-r--r--dev-python/qscintilla-python/Manifest2
-rw-r--r--dev-python/qscintilla-python/metadata.xml14
-rw-r--r--dev-python/qscintilla-python/qscintilla-python-2.8.4.ebuild70
-rw-r--r--dev-python/qscintilla-python/qscintilla-python-2.9.ebuild69
-rw-r--r--dev-python/qserve/Manifest1
-rw-r--r--dev-python/qserve/metadata.xml14
-rw-r--r--dev-python/qserve/qserve-0.2.8-r1.ebuild28
-rw-r--r--dev-python/queuelib/Manifest1
-rw-r--r--dev-python/queuelib/metadata.xml8
-rw-r--r--dev-python/queuelib/queuelib-1.1.1.ebuild32
-rw-r--r--dev-python/quixote/Manifest1
-rw-r--r--dev-python/quixote/metadata.xml6
-rw-r--r--dev-python/quixote/quixote-2.8.ebuild46
-rw-r--r--dev-python/rackspace-auth-openstack/Manifest2
-rw-r--r--dev-python/rackspace-auth-openstack/metadata.xml17
-rw-r--r--dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.0.ebuild19
-rw-r--r--dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.3.ebuild19
-rw-r--r--dev-python/rackspace-auth-openstack/rackspace-auth-openstack-9999.ebuild21
-rw-r--r--dev-python/rackspace-monitoring-cli/Manifest2
-rw-r--r--dev-python/rackspace-monitoring-cli/metadata.xml16
-rw-r--r--dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.10.ebuild29
-rw-r--r--dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.9.ebuild29
-rw-r--r--dev-python/rackspace-monitoring/Manifest1
-rw-r--r--dev-python/rackspace-monitoring/metadata.xml16
-rw-r--r--dev-python/rackspace-monitoring/rackspace-monitoring-0.6.5.ebuild34
-rw-r--r--dev-python/rackspace-novaclient/Manifest1
-rw-r--r--dev-python/rackspace-novaclient/metadata.xml16
-rw-r--r--dev-python/rackspace-novaclient/rackspace-novaclient-1.4.ebuild29
-rw-r--r--dev-python/radon/Manifest3
-rw-r--r--dev-python/radon/metadata.xml14
-rw-r--r--dev-python/radon/radon-1.2.1.ebuild51
-rw-r--r--dev-python/radon/radon-1.2.2.ebuild51
-rw-r--r--dev-python/radon/radon-1.2.ebuild47
-rw-r--r--dev-python/raet/Manifest3
-rw-r--r--dev-python/raet/metadata.xml13
-rw-r--r--dev-python/raet/raet-0.3.8.ebuild29
-rw-r--r--dev-python/raet/raet-0.6.1.ebuild30
-rw-r--r--dev-python/raet/raet-0.6.3.ebuild30
-rw-r--r--dev-python/rarfile/Manifest1
-rw-r--r--dev-python/rarfile/metadata.xml16
-rw-r--r--dev-python/rarfile/rarfile-2.6.ebuild20
-rw-r--r--dev-python/raven/Manifest2
-rw-r--r--dev-python/raven/metadata.xml12
-rw-r--r--dev-python/raven/raven-5.2.0.ebuild23
-rw-r--r--dev-python/raven/raven-5.3.0.ebuild23
-rw-r--r--dev-python/rax-default-network-flags-python-novaclient-ext/Manifest3
-rw-r--r--dev-python/rax-default-network-flags-python-novaclient-ext/metadata.xml16
-rw-r--r--dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3-r1.ebuild21
-rw-r--r--dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3.ebuild21
-rw-r--r--dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.2.4.ebuild21
-rw-r--r--dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.3.1.ebuild21
-rw-r--r--dev-python/rax-scheduled-images-python-novaclient-ext/Manifest1
-rw-r--r--dev-python/rax-scheduled-images-python-novaclient-ext/metadata.xml16
-rw-r--r--dev-python/rax-scheduled-images-python-novaclient-ext/rax-scheduled-images-python-novaclient-ext-0.2.1.ebuild21
-rw-r--r--dev-python/rdflib/Manifest3
-rw-r--r--dev-python/rdflib/files/rdflib-3.1.0-test.patch20
-rw-r--r--dev-python/rdflib/metadata.xml12
-rw-r--r--dev-python/rdflib/rdflib-3.2.3-r1.ebuild47
-rw-r--r--dev-python/rdflib/rdflib-4.1.2.ebuild62
-rw-r--r--dev-python/rdflib/rdflib-4.2.0.ebuild62
-rw-r--r--dev-python/readme/Manifest3
-rw-r--r--dev-python/readme/metadata.xml9
-rw-r--r--dev-python/readme/readme-0.4.1.ebuild41
-rw-r--r--dev-python/readme/readme-0.4.2.ebuild41
-rw-r--r--dev-python/readme/readme-0.5.1.ebuild41
-rw-r--r--dev-python/recaptcha-client/Manifest1
-rw-r--r--dev-python/recaptcha-client/metadata.xml8
-rw-r--r--dev-python/recaptcha-client/recaptcha-client-1.0.6-r1.ebuild20
-rw-r--r--dev-python/reconfigure/Manifest2
-rw-r--r--dev-python/reconfigure/metadata.xml11
-rw-r--r--dev-python/reconfigure/reconfigure-0.1.50.ebuild21
-rw-r--r--dev-python/reconfigure/reconfigure-0.1.72.ebuild21
-rw-r--r--dev-python/redis-py/Manifest4
-rw-r--r--dev-python/redis-py/metadata.xml9
-rw-r--r--dev-python/redis-py/redis-py-2.10.1.ebuild75
-rw-r--r--dev-python/redis-py/redis-py-2.10.3.ebuild68
-rw-r--r--dev-python/redis-py/redis-py-2.7.4.ebuild71
-rw-r--r--dev-python/redis-py/redis-py-2.9.1.ebuild71
-rw-r--r--dev-python/rednose/Manifest2
-rw-r--r--dev-python/rednose/metadata.xml13
-rw-r--r--dev-python/rednose/rednose-0.4.1.ebuild20
-rw-r--r--dev-python/rednose/rednose-0.4.3.ebuild25
-rw-r--r--dev-python/regex/Manifest2
-rw-r--r--dev-python/regex/metadata.xml9
-rw-r--r--dev-python/regex/regex-2015.06.24.ebuild39
-rw-r--r--dev-python/regex/regex-2015.07.12.ebuild39
-rw-r--r--dev-python/remoteobjects/metadata.xml10
-rw-r--r--dev-python/remoteobjects/remoteobjects-99999999.ebuild38
-rw-r--r--dev-python/rencode/Manifest1
-rw-r--r--dev-python/rencode/metadata.xml18
-rw-r--r--dev-python/rencode/rencode-1.0.3.ebuild20
-rw-r--r--dev-python/reportlab/Manifest4
-rw-r--r--dev-python/reportlab/files/reportlab-2.2_qa_msg.patch16
-rw-r--r--dev-python/reportlab/files/reportlab-2.4-external_libart_lgpl.patch60
-rw-r--r--dev-python/reportlab/files/reportlab-2.5-pypy-implicit-PyArg_NoArgs.patch13
-rw-r--r--dev-python/reportlab/metadata.xml12
-rw-r--r--dev-python/reportlab/reportlab-2.6.ebuild81
-rw-r--r--dev-python/reportlab/reportlab-3.1.44-r1.ebuild76
-rw-r--r--dev-python/reportlab/reportlab-3.2.0.ebuild68
-rw-r--r--dev-python/repoze-lru/Manifest1
-rw-r--r--dev-python/repoze-lru/metadata.xml8
-rw-r--r--dev-python/repoze-lru/repoze-lru-0.6-r1.ebuild27
-rw-r--r--dev-python/repoze-sphinx-autointerface/Manifest1
-rw-r--r--dev-python/repoze-sphinx-autointerface/metadata.xml8
-rw-r--r--dev-python/repoze-sphinx-autointerface/repoze-sphinx-autointerface-0.7.1.ebuild30
-rw-r--r--dev-python/repoze-who/Manifest1
-rw-r--r--dev-python/repoze-who/metadata.xml15
-rw-r--r--dev-python/repoze-who/repoze-who-2.2.ebuild26
-rw-r--r--dev-python/requests-cache/Manifest2
-rw-r--r--dev-python/requests-cache/metadata.xml12
-rw-r--r--dev-python/requests-cache/requests-cache-0.4.10.ebuild34
-rw-r--r--dev-python/requests-cache/requests-cache-0.4.9.ebuild32
-rw-r--r--dev-python/requests-mock/Manifest2
-rw-r--r--dev-python/requests-mock/metadata.xml15
-rw-r--r--dev-python/requests-mock/requests-mock-0.5.1.ebuild41
-rw-r--r--dev-python/requests-mock/requests-mock-0.6.0.ebuild42
-rw-r--r--dev-python/requests-oauthlib/Manifest1
-rw-r--r--dev-python/requests-oauthlib/files/requests-oauthlib-0.4.0-expires_at.patch61
-rw-r--r--dev-python/requests-oauthlib/metadata.xml12
-rw-r--r--dev-python/requests-oauthlib/requests-oauthlib-0.4.1.ebuild32
-rw-r--r--dev-python/requests/Manifest3
-rw-r--r--dev-python/requests/files/requests-2.2.0-system-chardet.patch21
-rw-r--r--dev-python/requests/files/requests-2.4.0-system-cacerts.patch14
-rw-r--r--dev-python/requests/files/requests-2.5.0-system-cacerts.patch24
-rw-r--r--dev-python/requests/metadata.xml8
-rw-r--r--dev-python/requests/requests-2.6.0.ebuild42
-rw-r--r--dev-python/requests/requests-2.6.1.ebuild44
-rw-r--r--dev-python/requests/requests-2.7.0.ebuild44
-rw-r--r--dev-python/restkit/Manifest1
-rw-r--r--dev-python/restkit/files/setup.patch23
-rw-r--r--dev-python/restkit/metadata.xml15
-rw-r--r--dev-python/restkit/restkit-4.2.2.ebuild51
-rw-r--r--dev-python/retry-decorator/Manifest1
-rw-r--r--dev-python/retry-decorator/metadata.xml8
-rw-r--r--dev-python/retry-decorator/retry-decorator-1.0.0.ebuild23
-rw-r--r--dev-python/retrying/Manifest1
-rw-r--r--dev-python/retrying/metadata.xml16
-rw-r--r--dev-python/retrying/retrying-1.3.2.ebuild24
-rw-r--r--dev-python/reverend/Manifest1
-rw-r--r--dev-python/reverend/metadata.xml13
-rw-r--r--dev-python/reverend/reverend-0.4-r1.ebuild31
-rw-r--r--dev-python/rfc3986/Manifest1
-rw-r--r--dev-python/rfc3986/metadata.xml15
-rw-r--r--dev-python/rfc3986/rfc3986-0.2.0.ebuild22
-rw-r--r--dev-python/rlcompleter2/Manifest1
-rw-r--r--dev-python/rlcompleter2/metadata.xml8
-rw-r--r--dev-python/rlcompleter2/rlcompleter2-0.98-r1.ebuild25
-rw-r--r--dev-python/rlcompleter2/rlcompleter2-0.98.ebuild28
-rw-r--r--dev-python/robotframework-selenium2library/Manifest2
-rw-r--r--dev-python/robotframework-selenium2library/metadata.xml9
-rw-r--r--dev-python/robotframework-selenium2library/robotframework-selenium2library-1.5.0.ebuild31
-rw-r--r--dev-python/robotframework-selenium2library/robotframework-selenium2library-1.6.0.ebuild31
-rw-r--r--dev-python/robotframework-selenium2library/robotframework-selenium2library-9999.ebuild32
-rw-r--r--dev-python/robotframework-sshlibrary/Manifest2
-rw-r--r--dev-python/robotframework-sshlibrary/metadata.xml9
-rw-r--r--dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.0.2.ebuild19
-rw-r--r--dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.1.1.ebuild19
-rw-r--r--dev-python/robotframework/Manifest3
-rw-r--r--dev-python/robotframework/metadata.xml9
-rw-r--r--dev-python/robotframework/robotframework-2.8.5.ebuild15
-rw-r--r--dev-python/robotframework/robotframework-2.8.6.ebuild15
-rw-r--r--dev-python/robotframework/robotframework-2.8.7.ebuild15
-rw-r--r--dev-python/roman/Manifest1
-rw-r--r--dev-python/roman/metadata.xml13
-rw-r--r--dev-python/roman/roman-2.0.0.ebuild28
-rw-r--r--dev-python/root_numpy/Manifest3
-rw-r--r--dev-python/root_numpy/metadata.xml18
-rw-r--r--dev-python/root_numpy/root_numpy-3.2.0.ebuild36
-rw-r--r--dev-python/root_numpy/root_numpy-3.3.0.ebuild36
-rw-r--r--dev-python/root_numpy/root_numpy-3.3.1.ebuild36
-rw-r--r--dev-python/rootpy/Manifest1
-rw-r--r--dev-python/rootpy/metadata.xml13
-rw-r--r--dev-python/rootpy/rootpy-0.7.1.ebuild47
-rw-r--r--dev-python/rope/Manifest2
-rw-r--r--dev-python/rope/files/rope-0.9.3-fix_tests_results.patch16
-rw-r--r--dev-python/rope/files/rope-0.9.3-python2.7.patch76
-rw-r--r--dev-python/rope/metadata.xml11
-rw-r--r--dev-python/rope/rope-0.10.2.ebuild28
-rw-r--r--dev-python/rope/rope-0.9.4-r1.ebuild31
-rw-r--r--dev-python/ropeide/Manifest1
-rw-r--r--dev-python/ropeide/metadata.xml8
-rw-r--r--dev-python/ropeide/ropeide-1.5.1-r2.ebuild28
-rw-r--r--dev-python/ropemacs/Manifest2
-rw-r--r--dev-python/ropemacs/metadata.xml9
-rw-r--r--dev-python/ropemacs/ropemacs-0.7.ebuild32
-rw-r--r--dev-python/ropemacs/ropemacs-0.8.ebuild32
-rw-r--r--dev-python/ropemode/Manifest1
-rw-r--r--dev-python/ropemode/metadata.xml8
-rw-r--r--dev-python/ropemode/ropemode-0.2-r1.ebuild26
-rw-r--r--dev-python/routes/Manifest3
-rw-r--r--dev-python/routes/files/routes-2.0-setup.py.patch38
-rw-r--r--dev-python/routes/files/routes-2.0-tests-py3.patch40
-rw-r--r--dev-python/routes/metadata.xml8
-rw-r--r--dev-python/routes/routes-1.13-r1.ebuild42
-rw-r--r--dev-python/routes/routes-2.0.ebuild61
-rw-r--r--dev-python/routes/routes-2.1-r1.ebuild73
-rw-r--r--dev-python/routes/routes-2.1.ebuild53
-rw-r--r--dev-python/rply/Manifest1
-rw-r--r--dev-python/rply/metadata.xml8
-rw-r--r--dev-python/rply/rply-0.7.3.ebuild36
-rw-r--r--dev-python/rpy/Manifest3
-rw-r--r--dev-python/rpy/files/2.5.0-setup.patch45
-rw-r--r--dev-python/rpy/metadata.xml15
-rw-r--r--dev-python/rpy/rpy-2.5.4.ebuild50
-rw-r--r--dev-python/rpy/rpy-2.6.0.ebuild51
-rw-r--r--dev-python/rpy/rpy-2.6.1.ebuild53
-rw-r--r--dev-python/rpyc/Manifest1
-rw-r--r--dev-python/rpyc/metadata.xml13
-rw-r--r--dev-python/rpyc/rpyc-3.2.3-r1.ebuild18
-rw-r--r--dev-python/rsa/Manifest1
-rw-r--r--dev-python/rsa/metadata.xml8
-rw-r--r--dev-python/rsa/rsa-3.1.4-r1.ebuild33
-rw-r--r--dev-python/rst2pdf/Manifest1
-rw-r--r--dev-python/rst2pdf/files/rst2pdf-0.93-fix-logging.patch26
-rw-r--r--dev-python/rst2pdf/metadata.xml8
-rw-r--r--dev-python/rst2pdf/rst2pdf-0.93-r2.ebuild50
-rw-r--r--dev-python/rtf2xml/Manifest1
-rw-r--r--dev-python/rtf2xml/metadata.xml10
-rw-r--r--dev-python/rtf2xml/rtf2xml-1.33-r1.ebuild25
-rw-r--r--dev-python/rtgraph/Manifest1
-rw-r--r--dev-python/rtgraph/metadata.xml5
-rw-r--r--dev-python/rtgraph/rtgraph-0.70-r1.ebuild33
-rw-r--r--dev-python/rtslib-fb/Manifest1
-rw-r--r--dev-python/rtslib-fb/metadata.xml16
-rw-r--r--dev-python/rtslib-fb/rtslib-fb-2.1.47.ebuild20
-rw-r--r--dev-python/rtslib/metadata.xml10
-rw-r--r--dev-python/rtslib/rtslib-9999.ebuild33
-rw-r--r--dev-python/ruledispatch/Manifest1
-rw-r--r--dev-python/ruledispatch/files/ruledispatch_as_syntax_fix.patch49
-rw-r--r--dev-python/ruledispatch/metadata.xml5
-rw-r--r--dev-python/ruledispatch/ruledispatch-0.5_pre2306-r2.ebuild46
-rw-r--r--dev-python/runsnakerun/Manifest1
-rw-r--r--dev-python/runsnakerun/metadata.xml12
-rw-r--r--dev-python/runsnakerun/runsnakerun-2.0.4.ebuild28
-rw-r--r--dev-python/sampy/Manifest1
-rw-r--r--dev-python/sampy/metadata.xml13
-rw-r--r--dev-python/sampy/sampy-1.2.1.ebuild19
-rw-r--r--dev-python/sancho/Manifest1
-rw-r--r--dev-python/sancho/metadata.xml8
-rw-r--r--dev-python/sancho/sancho-2.4-r1.ebuild44
-rw-r--r--dev-python/sancho/sancho-2.4.ebuild49
-rw-r--r--dev-python/scientificpython/Manifest3
-rw-r--r--dev-python/scientificpython/files/scientificpython-2.9-mpi.patch40
-rw-r--r--dev-python/scientificpython/files/scientificpython-2.9.1-mpi-netcdf.patch29
-rw-r--r--dev-python/scientificpython/files/scientificpython-2.9.3-mpi-netcdf.patch43
-rw-r--r--dev-python/scientificpython/metadata.xml16
-rw-r--r--dev-python/scientificpython/scientificpython-2.9.1.ebuild84
-rw-r--r--dev-python/scientificpython/scientificpython-2.9.3.ebuild70
-rw-r--r--dev-python/scientificpython/scientificpython-2.9.4.ebuild70
-rw-r--r--dev-python/scimath/Manifest1
-rw-r--r--dev-python/scimath/metadata.xml14
-rw-r--r--dev-python/scimath/scimath-4.1.2-r1.ebuild46
-rw-r--r--dev-python/sclapp/Manifest1
-rw-r--r--dev-python/sclapp/files/sclapp-0.5.3-testsuite-fix-from-r235.patch40
-rw-r--r--dev-python/sclapp/metadata.xml8
-rw-r--r--dev-python/sclapp/sclapp-0.5.3-r1.ebuild35
-rw-r--r--dev-python/scoop/Manifest1
-rw-r--r--dev-python/scoop/metadata.xml15
-rw-r--r--dev-python/scoop/scoop-0.7.0-r1.ebuild24
-rw-r--r--dev-python/scrapy/Manifest3
-rw-r--r--dev-python/scrapy/files/0.25.1-setup.patch40
-rw-r--r--dev-python/scrapy/metadata.xml15
-rw-r--r--dev-python/scrapy/scrapy-0.25.1.ebuild65
-rw-r--r--dev-python/scrapy/scrapy-1.0.0.ebuild64
-rw-r--r--dev-python/scrapy/scrapy-1.0.1.ebuild64
-rw-r--r--dev-python/scripttest/Manifest1
-rw-r--r--dev-python/scripttest/metadata.xml8
-rw-r--r--dev-python/scripttest/scripttest-1.2-r1.ebuild25
-rw-r--r--dev-python/seaborn/Manifest2
-rw-r--r--dev-python/seaborn/metadata.xml35
-rw-r--r--dev-python/seaborn/seaborn-0.5.1.ebuild37
-rw-r--r--dev-python/seaborn/seaborn-0.6.0.ebuild37
-rw-r--r--dev-python/selenium/Manifest3
-rw-r--r--dev-python/selenium/metadata.xml9
-rw-r--r--dev-python/selenium/selenium-2.42.1.ebuild22
-rw-r--r--dev-python/selenium/selenium-2.45.0.ebuild24
-rw-r--r--dev-python/selenium/selenium-2.46.0.ebuild24
-rw-r--r--dev-python/semantic_version/Manifest1
-rw-r--r--dev-python/semantic_version/metadata.xml15
-rw-r--r--dev-python/semantic_version/semantic_version-2.4.1.ebuild20
-rw-r--r--dev-python/send2trash/Manifest1
-rw-r--r--dev-python/send2trash/metadata.xml9
-rw-r--r--dev-python/send2trash/send2trash-1.3.0.ebuild26
-rw-r--r--dev-python/sepolgen/Manifest3
-rw-r--r--dev-python/sepolgen/files/0030-default-path-for-tests-also-needed-bug-467264.patch12
-rw-r--r--dev-python/sepolgen/files/0040-have-test-run-with-PYTHON-variable-python-bug-467264.patch16
-rw-r--r--dev-python/sepolgen/metadata.xml9
-rw-r--r--dev-python/sepolgen/sepolgen-1.2.1-r1.ebuild74
-rw-r--r--dev-python/sepolgen/sepolgen-1.2.2.ebuild73
-rw-r--r--dev-python/sepolgen/sepolgen-9999.ebuild83
-rw-r--r--dev-python/serpent/Manifest4
-rw-r--r--dev-python/serpent/metadata.xml8
-rw-r--r--dev-python/serpent/serpent-1.10.ebuild17
-rw-r--r--dev-python/serpent/serpent-1.11.ebuild17
-rw-r--r--dev-python/serpent/serpent-1.7.ebuild17
-rw-r--r--dev-python/serpent/serpent-1.9.ebuild17
-rw-r--r--dev-python/service_identity/Manifest1
-rw-r--r--dev-python/service_identity/metadata.xml9
-rw-r--r--dev-python/service_identity/service_identity-14.0.0.ebuild47
-rw-r--r--dev-python/setproctitle/Manifest1
-rw-r--r--dev-python/setproctitle/metadata.xml8
-rw-r--r--dev-python/setproctitle/setproctitle-1.1.8.ebuild51
-rw-r--r--dev-python/setuptools-git/Manifest2
-rw-r--r--dev-python/setuptools-git/metadata.xml16
-rw-r--r--dev-python/setuptools-git/setuptools-git-1.0.ebuild22
-rw-r--r--dev-python/setuptools-git/setuptools-git-1.1.ebuild27
-rw-r--r--dev-python/setuptools/Manifest15
-rw-r--r--dev-python/setuptools/metadata.xml8
-rw-r--r--dev-python/setuptools/setuptools-12.0.1.ebuild50
-rw-r--r--dev-python/setuptools/setuptools-12.0.3.ebuild50
-rw-r--r--dev-python/setuptools/setuptools-12.0.5.ebuild50
-rw-r--r--dev-python/setuptools/setuptools-15.0.ebuild51
-rw-r--r--dev-python/setuptools/setuptools-15.2.ebuild51
-rw-r--r--dev-python/setuptools/setuptools-16.0.ebuild51
-rw-r--r--dev-python/setuptools/setuptools-17.0.ebuild51
-rw-r--r--dev-python/setuptools/setuptools-17.1.1.ebuild51
-rw-r--r--dev-python/setuptools/setuptools-18.0.1.ebuild51
-rw-r--r--dev-python/setuptools/setuptools-18.1.ebuild51
-rw-r--r--dev-python/setuptools/setuptools-2.2.ebuild39
-rw-r--r--dev-python/setuptools/setuptools-7.0.ebuild42
-rw-r--r--dev-python/setuptools/setuptools-8.0.1.ebuild42
-rw-r--r--dev-python/setuptools/setuptools-8.2.1.ebuild42
-rw-r--r--dev-python/setuptools/setuptools-9.1.ebuild42
-rw-r--r--dev-python/setuptools/setuptools-9999.ebuild50
-rw-r--r--dev-python/setuptools_hg/Manifest1
-rw-r--r--dev-python/setuptools_hg/metadata.xml10
-rw-r--r--dev-python/setuptools_hg/setuptools_hg-0.4-r1.ebuild21
-rw-r--r--dev-python/setuptools_scm/Manifest2
-rw-r--r--dev-python/setuptools_scm/metadata.xml9
-rw-r--r--dev-python/setuptools_scm/setuptools_scm-1.5.4.ebuild24
-rw-r--r--dev-python/setuptools_scm/setuptools_scm-1.5.5.ebuild25
-rw-r--r--dev-python/sexpdata/Manifest1
-rw-r--r--dev-python/sexpdata/metadata.xml11
-rw-r--r--dev-python/sexpdata/sexpdata-0.0.3.ebuild21
-rw-r--r--dev-python/sh/Manifest4
-rw-r--r--dev-python/sh/metadata.xml22
-rw-r--r--dev-python/sh/sh-1.07.ebuild21
-rw-r--r--dev-python/sh/sh-1.08.ebuild25
-rw-r--r--dev-python/sh/sh-1.09.ebuild26
-rw-r--r--dev-python/sh/sh-1.11.ebuild26
-rw-r--r--dev-python/shiboken/Manifest1
-rw-r--r--dev-python/shiboken/files/1.2.2-Fix-tests-with-Python-3.patch49
-rw-r--r--dev-python/shiboken/files/rpath.cmake10
-rw-r--r--dev-python/shiboken/metadata.xml5
-rw-r--r--dev-python/shiboken/shiboken-1.2.2.ebuild91
-rw-r--r--dev-python/shm/Manifest1
-rw-r--r--dev-python/shm/files/shm-1.2.2-compiler.patch11
-rw-r--r--dev-python/shm/metadata.xml5
-rw-r--r--dev-python/shm/shm-1.2.2-r1.ebuild28
-rw-r--r--dev-python/shortuuid/Manifest1
-rw-r--r--dev-python/shortuuid/metadata.xml12
-rw-r--r--dev-python/shortuuid/shortuuid-0.4.2.ebuild21
-rw-r--r--dev-python/simplecv/Manifest1
-rw-r--r--dev-python/simplecv/files/new-support-for-opencv-2.4.3-added.patch111
-rw-r--r--dev-python/simplecv/files/remove-failing-test.patch57
-rw-r--r--dev-python/simplecv/files/remove-failing-tests.patch301
-rw-r--r--dev-python/simplecv/metadata.xml13
-rw-r--r--dev-python/simplecv/simplecv-1.3.ebuild51
-rw-r--r--dev-python/simpleeval/Manifest2
-rw-r--r--dev-python/simpleeval/metadata.xml15
-rw-r--r--dev-python/simpleeval/simpleeval-0.8.2.ebuild22
-rw-r--r--dev-python/simpleeval/simpleeval-0.8.5.ebuild28
-rw-r--r--dev-python/simplegeneric/Manifest1
-rw-r--r--dev-python/simplegeneric/metadata.xml14
-rw-r--r--dev-python/simplegeneric/simplegeneric-0.8.1-r1.ebuild25
-rw-r--r--dev-python/simplegui/Manifest1
-rw-r--r--dev-python/simplegui/metadata.xml10
-rw-r--r--dev-python/simplegui/simplegui-0.1.0.ebuild31
-rw-r--r--dev-python/simplejson/Manifest2
-rw-r--r--dev-python/simplejson/metadata.xml8
-rw-r--r--dev-python/simplejson/simplejson-3.7.2.ebuild33
-rw-r--r--dev-python/simplejson/simplejson-3.8.0.ebuild33
-rw-r--r--dev-python/simplekv/Manifest2
-rw-r--r--dev-python/simplekv/metadata.xml14
-rw-r--r--dev-python/simplekv/simplekv-0.9.2.ebuild20
-rw-r--r--dev-python/simplekv/simplekv-0.9.3.ebuild20
-rw-r--r--dev-python/simpleparse/Manifest1
-rw-r--r--dev-python/simpleparse/metadata.xml8
-rw-r--r--dev-python/simpleparse/simpleparse-2.1.1-r1.ebuild46
-rw-r--r--dev-python/simpleparse/simpleparse-2.1.1.ebuild54
-rw-r--r--dev-python/simples3/Manifest1
-rw-r--r--dev-python/simples3/metadata.xml14
-rw-r--r--dev-python/simples3/simples3-1.0.ebuild31
-rw-r--r--dev-python/simplesettings/Manifest1
-rw-r--r--dev-python/simplesettings/metadata.xml8
-rw-r--r--dev-python/simplesettings/simplesettings-0.5-r1.ebuild20
-rw-r--r--dev-python/simpletal/Manifest3
-rw-r--r--dev-python/simpletal/metadata.xml5
-rw-r--r--dev-python/simpletal/simpletal-4.2-r1.ebuild41
-rw-r--r--dev-python/simpletal/simpletal-5.1-r1.ebuild41
-rw-r--r--dev-python/simpletal/simpletal-5.2.ebuild41
-rw-r--r--dev-python/simpy/Manifest3
-rw-r--r--dev-python/simpy/metadata.xml11
-rw-r--r--dev-python/simpy/simpy-2.3.1-r1.ebuild43
-rw-r--r--dev-python/simpy/simpy-3.0.3.ebuild41
-rw-r--r--dev-python/simpy/simpy-3.0.8.ebuild41
-rw-r--r--dev-python/singledispatch/Manifest1
-rw-r--r--dev-python/singledispatch/metadata.xml20
-rw-r--r--dev-python/singledispatch/singledispatch-3.4.0.3.ebuild20
-rw-r--r--dev-python/sip/Manifest3
-rw-r--r--dev-python/sip/files/sip-4.15.5-darwin.patch30
-rw-r--r--dev-python/sip/metadata.xml14
-rw-r--r--dev-python/sip/sip-4.16.2.ebuild113
-rw-r--r--dev-python/sip/sip-4.16.8.ebuild110
-rw-r--r--dev-python/sip/sip-4.16.9.ebuild112
-rw-r--r--dev-python/sip/sip-4.9999.ebuild112
-rw-r--r--dev-python/six/Manifest4
-rw-r--r--dev-python/six/files/1.9.0-mapping.patch12
-rw-r--r--dev-python/six/files/six-1.5.2-mapping.patch12
-rw-r--r--dev-python/six/files/six-1.9.0-winreg.patch27
-rw-r--r--dev-python/six/metadata.xml9
-rw-r--r--dev-python/six/six-1.3.0.ebuild34
-rw-r--r--dev-python/six/six-1.6.1.ebuild35
-rw-r--r--dev-python/six/six-1.8.0.ebuild35
-rw-r--r--dev-python/six/six-1.9.0-r1.ebuild41
-rw-r--r--dev-python/six/six-1.9.0.ebuild35
-rw-r--r--dev-python/six/six-9999.ebuild37
-rw-r--r--dev-python/skype4py/Manifest1
-rw-r--r--dev-python/skype4py/metadata.xml11
-rw-r--r--dev-python/skype4py/skype4py-1.0.35-r1.ebuild23
-rw-r--r--dev-python/sleekxmpp/Manifest2
-rw-r--r--dev-python/sleekxmpp/metadata.xml8
-rw-r--r--dev-python/sleekxmpp/sleekxmpp-1.3.0.ebuild29
-rw-r--r--dev-python/sleekxmpp/sleekxmpp-1.3.1.ebuild29
-rw-r--r--dev-python/slowaes/Manifest1
-rw-r--r--dev-python/slowaes/metadata.xml20
-rw-r--r--dev-python/slowaes/slowaes-0.1-r1.ebuild23
-rw-r--r--dev-python/smmap/Manifest2
-rw-r--r--dev-python/smmap/metadata.xml9
-rw-r--r--dev-python/smmap/smmap-0.8.3.ebuild33
-rw-r--r--dev-python/smmap/smmap-0.9.0.ebuild32
-rw-r--r--dev-python/snakefood/Manifest1
-rw-r--r--dev-python/snakefood/metadata.xml5
-rw-r--r--dev-python/snakefood/snakefood-1.3.1-r1.ebuild20
-rw-r--r--dev-python/snakeoil/Manifest1
-rw-r--r--dev-python/snakeoil/metadata.xml12
-rw-r--r--dev-python/snakeoil/snakeoil-0.6.4.ebuild30
-rw-r--r--dev-python/snakeoil/snakeoil-9999.ebuild32
-rw-r--r--dev-python/snappy/Manifest1
-rw-r--r--dev-python/snappy/metadata.xml8
-rw-r--r--dev-python/snappy/snappy-0.5-r2.ebuild29
-rw-r--r--dev-python/snowballstemmer/Manifest1
-rw-r--r--dev-python/snowballstemmer/metadata.xml9
-rw-r--r--dev-python/snowballstemmer/snowballstemmer-1.2.0.ebuild20
-rw-r--r--dev-python/soappy/Manifest3
-rw-r--r--dev-python/soappy/files/soappy-0.12.0-python-2.5-compat.patch68
-rw-r--r--dev-python/soappy/metadata.xml8
-rw-r--r--dev-python/soappy/soappy-0.12.20.ebuild42
-rw-r--r--dev-python/soappy/soappy-0.12.22.ebuild43
-rw-r--r--dev-python/soappy/soappy-0.12.5-r2.ebuild42
-rw-r--r--dev-python/socketio-client/Manifest1
-rw-r--r--dev-python/socketio-client/metadata.xml12
-rw-r--r--dev-python/socketio-client/socketio-client-0.5.6.ebuild36
-rw-r--r--dev-python/socketpool/Manifest2
-rw-r--r--dev-python/socketpool/files/socketpool-0.5.2-locale.patch21
-rw-r--r--dev-python/socketpool/files/socketpool-0.5.2-pool.patch35
-rw-r--r--dev-python/socketpool/metadata.xml13
-rw-r--r--dev-python/socketpool/socketpool-0.5.2-r1.ebuild37
-rw-r--r--dev-python/socketpool/socketpool-0.5.2.ebuild33
-rw-r--r--dev-python/socketpool/socketpool-0.5.3.ebuild32
-rw-r--r--dev-python/socksipy/Manifest2
-rw-r--r--dev-python/socksipy/metadata.xml9
-rw-r--r--dev-python/socksipy/socksipy-1.00.ebuild27
-rw-r--r--dev-python/socksipy/socksipy-1.02.ebuild27
-rw-r--r--dev-python/south/Manifest1
-rw-r--r--dev-python/south/files/south-0.7.5-tests.patch23
-rw-r--r--dev-python/south/files/south-1.0-3753b49c-Replace-dict.iteritems-with-six.patch60
-rw-r--r--dev-python/south/metadata.xml8
-rw-r--r--dev-python/south/south-1.0.ebuild48
-rw-r--r--dev-python/soya/Manifest2
-rw-r--r--dev-python/soya/files/soya-0.14-freetype-2.5.patch16
-rw-r--r--dev-python/soya/files/soya-0.14-glu.patch13
-rw-r--r--dev-python/soya/files/soya-pillow.patch21
-rw-r--r--dev-python/soya/metadata.xml5
-rw-r--r--dev-python/soya/soya-0.14-r1.ebuild65
-rw-r--r--dev-python/sparql-wrapper/Manifest5
-rw-r--r--dev-python/sparql-wrapper/metadata.xml8
-rw-r--r--dev-python/sparql-wrapper/sparql-wrapper-1.5.2.ebuild24
-rw-r--r--dev-python/sparql-wrapper/sparql-wrapper-1.6.0.ebuild24
-rw-r--r--dev-python/sparql-wrapper/sparql-wrapper-1.6.1.ebuild25
-rw-r--r--dev-python/sparql-wrapper/sparql-wrapper-1.6.2.ebuild25
-rw-r--r--dev-python/sparql-wrapper/sparql-wrapper-1.6.4.ebuild25
-rw-r--r--dev-python/speaklater/Manifest1
-rw-r--r--dev-python/speaklater/metadata.xml9
-rw-r--r--dev-python/speaklater/speaklater-1.3-r1.ebuild19
-rw-r--r--dev-python/sphinx-better-theme/Manifest1
-rw-r--r--dev-python/sphinx-better-theme/metadata.xml9
-rw-r--r--dev-python/sphinx-better-theme/sphinx-better-theme-0.1.5.ebuild18
-rw-r--r--dev-python/sphinx-bootstrap-theme/Manifest3
-rw-r--r--dev-python/sphinx-bootstrap-theme/metadata.xml8
-rw-r--r--dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.5.ebuild21
-rw-r--r--dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.6.ebuild21
-rw-r--r--dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.7.ebuild21
-rw-r--r--dev-python/sphinx/Manifest4
-rw-r--r--dev-python/sphinx/files/sphinx-1.1.3-docutils-manpage.patch35
-rw-r--r--dev-python/sphinx/files/sphinx-1.1.3-python3.patch45
-rw-r--r--dev-python/sphinx/metadata.xml10
-rw-r--r--dev-python/sphinx/sphinx-1.1.3-r7.ebuild127
-rw-r--r--dev-python/sphinx/sphinx-1.2.2.ebuild123
-rw-r--r--dev-python/sphinx/sphinx-1.2.3.ebuild125
-rw-r--r--dev-python/sphinx/sphinx-1.3.1.ebuild130
-rw-r--r--dev-python/sphinx_rtd_theme/Manifest3
-rw-r--r--dev-python/sphinx_rtd_theme/metadata.xml9
-rw-r--r--dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.6.ebuild20
-rw-r--r--dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.7.ebuild20
-rw-r--r--dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.8.ebuild20
-rw-r--r--dev-python/sphinxcontrib-cheeseshop/Manifest1
-rw-r--r--dev-python/sphinxcontrib-cheeseshop/metadata.xml14
-rw-r--r--dev-python/sphinxcontrib-cheeseshop/sphinxcontrib-cheeseshop-0.2.ebuild32
-rw-r--r--dev-python/sphinxcontrib-doxylink/Manifest1
-rw-r--r--dev-python/sphinxcontrib-doxylink/metadata.xml14
-rw-r--r--dev-python/sphinxcontrib-doxylink/sphinxcontrib-doxylink-1.3.ebuild29
-rw-r--r--dev-python/sphinxcontrib-googleanalytics/Manifest1
-rw-r--r--dev-python/sphinxcontrib-googleanalytics/files/setup.py.utf-8.patch16
-rw-r--r--dev-python/sphinxcontrib-googleanalytics/metadata.xml9
-rw-r--r--dev-python/sphinxcontrib-googleanalytics/sphinxcontrib-googleanalytics-0.1-r1.ebuild22
-rw-r--r--dev-python/sphinxcontrib-httpdomain/Manifest5
-rw-r--r--dev-python/sphinxcontrib-httpdomain/metadata.xml9
-rw-r--r--dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.8.ebuild23
-rw-r--r--dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.9.ebuild23
-rw-r--r--dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.0.ebuild23
-rw-r--r--dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.1.ebuild22
-rw-r--r--dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.3.0.ebuild22
-rw-r--r--dev-python/sphinxcontrib-issuetracker/Manifest1
-rw-r--r--dev-python/sphinxcontrib-issuetracker/metadata.xml9
-rw-r--r--dev-python/sphinxcontrib-issuetracker/sphinxcontrib-issuetracker-0.11-r1.ebuild56
-rw-r--r--dev-python/sphinxcontrib-plantuml/Manifest1
-rw-r--r--dev-python/sphinxcontrib-plantuml/metadata.xml15
-rw-r--r--dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.4.ebuild28
-rw-r--r--dev-python/sphinxcontrib-programoutput/Manifest1
-rw-r--r--dev-python/sphinxcontrib-programoutput/metadata.xml13
-rw-r--r--dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.8.ebuild39
-rw-r--r--dev-python/sphinxtogithub/Manifest2
-rw-r--r--dev-python/sphinxtogithub/metadata.xml9
-rw-r--r--dev-python/sphinxtogithub/sphinxtogithub-1.0.0.ebuild25
-rw-r--r--dev-python/sphinxtogithub/sphinxtogithub-1.1.0.ebuild33
-rw-r--r--dev-python/spyder/Manifest2
-rw-r--r--dev-python/spyder/files/spyder-2.3.1-build.patch154
-rw-r--r--dev-python/spyder/metadata.xml30
-rw-r--r--dev-python/spyder/spyder-2.3.4.ebuild53
-rw-r--r--dev-python/spyder/spyder-2.3.5.2.ebuild51
-rw-r--r--dev-python/sqlalchemy-migrate/Manifest5
-rw-r--r--dev-python/sqlalchemy-migrate/metadata.xml9
-rw-r--r--dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.7.2-r1.ebuild25
-rw-r--r--dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.1.ebuild28
-rw-r--r--dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.2.ebuild28
-rw-r--r--dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.5.ebuild30
-rw-r--r--dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.6.ebuild52
-rw-r--r--dev-python/sqlalchemy/Manifest7
-rw-r--r--dev-python/sqlalchemy/files/0.9.7-test-fix.patch38
-rw-r--r--dev-python/sqlalchemy/files/lru_cache_timestamping.patch33
-rw-r--r--dev-python/sqlalchemy/files/sqlalchemy-0.7-logging.handlers.patch12
-rw-r--r--dev-python/sqlalchemy/files/sqlalchemy-0.8.1-pypy-fixtests.patch50
-rw-r--r--dev-python/sqlalchemy/metadata.xml8
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-0.7.10.ebuild70
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-0.9.2.ebuild84
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-0.9.8.ebuild85
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-0.9.9.ebuild85
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-1.0.5.ebuild85
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-1.0.6.ebuild85
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-1.0.8.ebuild85
-rw-r--r--dev-python/sqlite3dbm/Manifest1
-rw-r--r--dev-python/sqlite3dbm/metadata.xml12
-rw-r--r--dev-python/sqlite3dbm/sqlite3dbm-0.1.4-r1.ebuild41
-rw-r--r--dev-python/sqlitecachec/Manifest1
-rw-r--r--dev-python/sqlitecachec/metadata.xml5
-rw-r--r--dev-python/sqlitecachec/sqlitecachec-1.1.4-r1.ebuild30
-rw-r--r--dev-python/sqlobject/Manifest1
-rw-r--r--dev-python/sqlobject/metadata.xml12
-rw-r--r--dev-python/sqlobject/sqlobject-2.1.1-r1.ebuild44
-rw-r--r--dev-python/squaremap/Manifest2
-rw-r--r--dev-python/squaremap/metadata.xml12
-rw-r--r--dev-python/squaremap/squaremap-1.0.3.ebuild27
-rw-r--r--dev-python/squaremap/squaremap-1.0.4.ebuild27
-rw-r--r--dev-python/ssh/Manifest1
-rw-r--r--dev-python/ssh/metadata.xml8
-rw-r--r--dev-python/ssh/ssh-1.8.0-r1.ebuild38
-rw-r--r--dev-python/ssl-fetch/Manifest3
-rw-r--r--dev-python/ssl-fetch/metadata.xml16
-rw-r--r--dev-python/ssl-fetch/ssl-fetch-0.2.1.ebuild42
-rw-r--r--dev-python/ssl-fetch/ssl-fetch-0.2.ebuild42
-rw-r--r--dev-python/ssl-fetch/ssl-fetch-0.3.ebuild42
-rw-r--r--dev-python/ssl-fetch/ssl-fetch-9999.ebuild46
-rw-r--r--dev-python/starcluster/Manifest1
-rw-r--r--dev-python/starcluster/files/starcluster-0.93.3-requires.patch19
-rw-r--r--dev-python/starcluster/metadata.xml14
-rw-r--r--dev-python/starcluster/starcluster-0.93.3-r2.ebuild65
-rw-r--r--dev-python/statsmodels/Manifest2
-rw-r--r--dev-python/statsmodels/metadata.xml18
-rw-r--r--dev-python/statsmodels/statsmodels-0.5.0.ebuild67
-rw-r--r--dev-python/statsmodels/statsmodels-0.6.1.ebuild71
-rw-r--r--dev-python/steadymark/Manifest1
-rw-r--r--dev-python/steadymark/metadata.xml9
-rw-r--r--dev-python/steadymark/steadymark-0.5.3.ebuild20
-rw-r--r--dev-python/stevedore/Manifest4
-rw-r--r--dev-python/stevedore/files/1.1.0-requirements.patch13
-rw-r--r--dev-python/stevedore/files/1.4.0-requirements.patch13
-rw-r--r--dev-python/stevedore/metadata.xml10
-rw-r--r--dev-python/stevedore/stevedore-1.1.0-r1.ebuild49
-rw-r--r--dev-python/stevedore/stevedore-1.3.0.ebuild52
-rw-r--r--dev-python/stevedore/stevedore-1.4.0-r1.ebuild54
-rw-r--r--dev-python/stevedore/stevedore-1.6.0-r1.ebuild59
-rw-r--r--dev-python/stevedore/stevedore-1.6.0.ebuild59
-rw-r--r--dev-python/stomper/Manifest1
-rw-r--r--dev-python/stomper/metadata.xml8
-rw-r--r--dev-python/stomper/stomper-0.3.0.ebuild36
-rw-r--r--dev-python/storm/Manifest1
-rw-r--r--dev-python/storm/metadata.xml8
-rw-r--r--dev-python/storm/storm-0.20-r1.ebuild65
-rw-r--r--dev-python/stripogram/Manifest1
-rw-r--r--dev-python/stripogram/metadata.xml8
-rw-r--r--dev-python/stripogram/stripogram-1.5-r1.ebuild20
-rw-r--r--dev-python/stsci-distutils/Manifest1
-rw-r--r--dev-python/stsci-distutils/metadata.xml17
-rw-r--r--dev-python/stsci-distutils/stsci-distutils-0.3.7.ebuild26
-rw-r--r--dev-python/stsci-sphinxext/Manifest1
-rw-r--r--dev-python/stsci-sphinxext/metadata.xml12
-rw-r--r--dev-python/stsci-sphinxext/stsci-sphinxext-1.2.1.ebuild30
-rw-r--r--dev-python/subunit/Manifest8
-rw-r--r--dev-python/subunit/files/0.0.21-tests.patch25
-rw-r--r--dev-python/subunit/files/1.0.0-tests.patch25
-rw-r--r--dev-python/subunit/files/shell-tests.patch24
-rw-r--r--dev-python/subunit/metadata.xml10
-rw-r--r--dev-python/subunit/subunit-0.0.10-r1.ebuild47
-rw-r--r--dev-python/subunit/subunit-0.0.16.ebuild57
-rw-r--r--dev-python/subunit/subunit-0.0.18-r2.ebuild78
-rw-r--r--dev-python/subunit/subunit-0.0.19.ebuild79
-rw-r--r--dev-python/subunit/subunit-0.0.21-r1.ebuild81
-rw-r--r--dev-python/subunit/subunit-0.0.6.ebuild35
-rw-r--r--dev-python/subunit/subunit-1.0.0.ebuild89
-rw-r--r--dev-python/subunit/subunit-1.1.0.ebuild89
-rw-r--r--dev-python/subvertpy/Manifest1
-rw-r--r--dev-python/subvertpy/metadata.xml6
-rw-r--r--dev-python/subvertpy/subvertpy-0.9.1.ebuild40
-rw-r--r--dev-python/suds/Manifest2
-rw-r--r--dev-python/suds/metadata.xml10
-rw-r--r--dev-python/suds/suds-0.4-r1.ebuild32
-rw-r--r--dev-python/suds/suds-0.6-r1.ebuild51
-rw-r--r--dev-python/suds/suds-0.6.ebuild31
-rw-r--r--dev-python/sudsds/Manifest1
-rw-r--r--dev-python/sudsds/metadata.xml9
-rw-r--r--dev-python/sudsds/sudsds-1.0.1-r1.ebuild21
-rw-r--r--dev-python/sure/Manifest3
-rw-r--r--dev-python/sure/metadata.xml9
-rw-r--r--dev-python/sure/sure-1.2.3.ebuild20
-rw-r--r--dev-python/sure/sure-1.2.5-r1.ebuild45
-rw-r--r--dev-python/sure/sure-1.2.5.ebuild20
-rw-r--r--dev-python/symboltype/Manifest1
-rw-r--r--dev-python/symboltype/metadata.xml8
-rw-r--r--dev-python/symboltype/symboltype-1.0.ebuild30
-rw-r--r--dev-python/sympy/Manifest4
-rw-r--r--dev-python/sympy/files/sympy-0.7.6-doc-makefile.patch10
-rw-r--r--dev-python/sympy/metadata.xml30
-rw-r--r--dev-python/sympy/sympy-0.7.4.1.ebuild90
-rw-r--r--dev-python/sympy/sympy-0.7.6.ebuild95
-rw-r--r--dev-python/tablib/Manifest2
-rw-r--r--dev-python/tablib/metadata.xml8
-rw-r--r--dev-python/tablib/tablib-0.10.0.ebuild21
-rw-r--r--dev-python/tablib/tablib-0.9.11.ebuild21
-rw-r--r--dev-python/tabulate/Manifest3
-rw-r--r--dev-python/tabulate/metadata.xml11
-rw-r--r--dev-python/tabulate/tabulate-0.7.2.ebuild35
-rw-r--r--dev-python/tabulate/tabulate-0.7.3.ebuild35
-rw-r--r--dev-python/tabulate/tabulate-0.7.5.ebuild35
-rw-r--r--dev-python/tagpy/Manifest2
-rw-r--r--dev-python/tagpy/files/tagpy-0.94.8-taglib-1.8_compat.patch29
-rw-r--r--dev-python/tagpy/metadata.xml11
-rw-r--r--dev-python/tagpy/tagpy-0.94.8-r1.ebuild54
-rw-r--r--dev-python/tagpy/tagpy-2013.1.ebuild37
-rw-r--r--dev-python/taskflow/Manifest6
-rw-r--r--dev-python/taskflow/metadata.xml17
-rw-r--r--dev-python/taskflow/taskflow-0.1.3.ebuild46
-rw-r--r--dev-python/taskflow/taskflow-0.10.0.ebuild62
-rw-r--r--dev-python/taskflow/taskflow-0.10.1.ebuild62
-rw-r--r--dev-python/taskflow/taskflow-0.2.ebuild43
-rw-r--r--dev-python/taskflow/taskflow-0.5.0.ebuild48
-rw-r--r--dev-python/taskflow/taskflow-0.7.1.ebuild59
-rw-r--r--dev-python/tdaemon/Manifest1
-rw-r--r--dev-python/tdaemon/metadata.xml11
-rw-r--r--dev-python/tdaemon/tdaemon-0.1.6.ebuild30
-rw-r--r--dev-python/tempest-lib/Manifest3
-rw-r--r--dev-python/tempest-lib/metadata.xml17
-rw-r--r--dev-python/tempest-lib/tempest-lib-0.3.0.ebuild51
-rw-r--r--dev-python/tempest-lib/tempest-lib-0.4.0.ebuild51
-rw-r--r--dev-python/tempest-lib/tempest-lib-0.5.0.ebuild54
-rw-r--r--dev-python/tempita/Manifest1
-rw-r--r--dev-python/tempita/metadata.xml8
-rw-r--r--dev-python/tempita/tempita-0.5.3.ebuild27
-rw-r--r--dev-python/termcolor/Manifest1
-rw-r--r--dev-python/termcolor/metadata.xml15
-rw-r--r--dev-python/termcolor/termcolor-1.1.0-r1.ebuild20
-rw-r--r--dev-python/terminado/Manifest1
-rw-r--r--dev-python/terminado/metadata.xml12
-rw-r--r--dev-python/terminado/terminado-0.5.ebuild28
-rw-r--r--dev-python/testfixtures/Manifest3
-rw-r--r--dev-python/testfixtures/files/docbuild.patch25
-rw-r--r--dev-python/testfixtures/metadata.xml12
-rw-r--r--dev-python/testfixtures/testfixtures-3.0.0.ebuild45
-rw-r--r--dev-python/testfixtures/testfixtures-4.1.1.ebuild55
-rw-r--r--dev-python/testfixtures/testfixtures-4.1.2.ebuild55
-rw-r--r--dev-python/testify/Manifest2
-rw-r--r--dev-python/testify/metadata.xml9
-rw-r--r--dev-python/testify/testify-0.5.7.ebuild45
-rw-r--r--dev-python/testify/testify-0.7.2.ebuild53
-rw-r--r--dev-python/testrepository/Manifest2
-rw-r--r--dev-python/testrepository/metadata.xml16
-rw-r--r--dev-python/testrepository/testrepository-0.0.17-r1.ebuild36
-rw-r--r--dev-python/testrepository/testrepository-0.0.17-r2.ebuild39
-rw-r--r--dev-python/testrepository/testrepository-0.0.18-r1.ebuild39
-rw-r--r--dev-python/testresources/Manifest1
-rw-r--r--dev-python/testresources/metadata.xml20
-rw-r--r--dev-python/testresources/testresources-0.2.7-r2.ebuild27
-rw-r--r--dev-python/testscenarios/Manifest2
-rw-r--r--dev-python/testscenarios/metadata.xml21
-rw-r--r--dev-python/testscenarios/testscenarios-0.4-r2.ebuild27
-rw-r--r--dev-python/testscenarios/testscenarios-0.4-r4.ebuild24
-rw-r--r--dev-python/testscenarios/testscenarios-0.4-r5.ebuild24
-rw-r--r--dev-python/testscenarios/testscenarios-0.4.ebuild28
-rw-r--r--dev-python/testscenarios/testscenarios-0.5.0.ebuild31
-rw-r--r--dev-python/testtools/Manifest6
-rw-r--r--dev-python/testtools/metadata.xml11
-rw-r--r--dev-python/testtools/testtools-0.9.36.ebuild56
-rw-r--r--dev-python/testtools/testtools-1.2.1.ebuild42
-rw-r--r--dev-python/testtools/testtools-1.3.0.ebuild42
-rw-r--r--dev-python/testtools/testtools-1.5.0.ebuild44
-rw-r--r--dev-python/testtools/testtools-1.7.1.ebuild45
-rw-r--r--dev-python/testtools/testtools-1.8.0.ebuild46
-rw-r--r--dev-python/texttable/Manifest2
-rw-r--r--dev-python/texttable/metadata.xml13
-rw-r--r--dev-python/texttable/texttable-0.8.1.ebuild20
-rw-r--r--dev-python/texttable/texttable-0.8.2.ebuild20
-rw-r--r--dev-python/tgmochikit/Manifest1
-rw-r--r--dev-python/tgmochikit/metadata.xml8
-rw-r--r--dev-python/tgmochikit/tgmochikit-1.4.2-r1.ebuild30
-rw-r--r--dev-python/theano/Manifest1
-rw-r--r--dev-python/theano/metadata.xml14
-rw-r--r--dev-python/theano/theano-0.6.0.ebuild33
-rw-r--r--dev-python/thunarx-python/Manifest1
-rw-r--r--dev-python/thunarx-python/metadata.xml12
-rw-r--r--dev-python/thunarx-python/thunarx-python-0.3.0-r1.ebuild44
-rw-r--r--dev-python/timelib/Manifest1
-rw-r--r--dev-python/timelib/metadata.xml8
-rw-r--r--dev-python/timelib/timelib-0.2.4-r1.ebuild21
-rw-r--r--dev-python/tinycss/Manifest1
-rw-r--r--dev-python/tinycss/metadata.xml9
-rw-r--r--dev-python/tinycss/tinycss-0.3.ebuild31
-rw-r--r--dev-python/tlslite/Manifest1
-rw-r--r--dev-python/tlslite/metadata.xml17
-rw-r--r--dev-python/tlslite/tlslite-0.4.3-r1.ebuild39
-rw-r--r--dev-python/tmdb3/Manifest2
-rw-r--r--dev-python/tmdb3/metadata.xml13
-rw-r--r--dev-python/tmdb3/tmdb3-0.6.17.ebuild20
-rw-r--r--dev-python/tmdb3/tmdb3-0.7.2.ebuild17
-rw-r--r--dev-python/toolz/Manifest3
-rw-r--r--dev-python/toolz/metadata.xml8
-rw-r--r--dev-python/toolz/toolz-0.7.0.ebuild20
-rw-r--r--dev-python/toolz/toolz-0.7.1.ebuild20
-rw-r--r--dev-python/toolz/toolz-0.7.2.ebuild20
-rw-r--r--dev-python/torment/Manifest3
-rw-r--r--dev-python/torment/metadata.xml14
-rw-r--r--dev-python/torment/torment-2.0.1.ebuild46
-rw-r--r--dev-python/torment/torment-2.0.2.ebuild46
-rw-r--r--dev-python/torment/torment-2.0.3.ebuild46
-rw-r--r--dev-python/tox/Manifest4
-rw-r--r--dev-python/tox/metadata.xml8
-rw-r--r--dev-python/tox/tox-1.8.0.ebuild58
-rw-r--r--dev-python/tox/tox-1.8.1.ebuild59
-rw-r--r--dev-python/tox/tox-1.9.0.ebuild59
-rw-r--r--dev-python/tox/tox-1.9.2.ebuild59
-rw-r--r--dev-python/tpg/Manifest1
-rw-r--r--dev-python/tpg/metadata.xml5
-rw-r--r--dev-python/tpg/tpg-3.2.2-r1.ebuild32
-rw-r--r--dev-python/traceback2/Manifest1
-rw-r--r--dev-python/traceback2/metadata.xml14
-rw-r--r--dev-python/traceback2/traceback2-1.4.0.ebuild24
-rw-r--r--dev-python/tracing/Manifest2
-rw-r--r--dev-python/tracing/metadata.xml8
-rw-r--r--dev-python/tracing/tracing-0.7-r1.ebuild35
-rw-r--r--dev-python/tracing/tracing-0.8.ebuild35
-rw-r--r--dev-python/traits/Manifest1
-rw-r--r--dev-python/traits/metadata.xml22
-rw-r--r--dev-python/traits/traits-4.5.0.ebuild37
-rw-r--r--dev-python/traitsui/Manifest1
-rw-r--r--dev-python/traitsui/files/traitsui-4.3.0-tests.patch34
-rw-r--r--dev-python/traitsui/metadata.xml16
-rw-r--r--dev-python/traitsui/traitsui-4.4.0.ebuild36
-rw-r--r--dev-python/translate-toolkit/Manifest1
-rw-r--r--dev-python/translate-toolkit/metadata.xml14
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-1.12.0.ebuild71
-rw-r--r--dev-python/translationstring/Manifest1
-rw-r--r--dev-python/translationstring/metadata.xml9
-rw-r--r--dev-python/translationstring/translationstring-1.3.ebuild41
-rw-r--r--dev-python/transmissionrpc/Manifest2
-rw-r--r--dev-python/transmissionrpc/metadata.xml12
-rw-r--r--dev-python/transmissionrpc/transmissionrpc-0.11.ebuild39
-rw-r--r--dev-python/transmissionrpc/transmissionrpc-9999.ebuild33
-rw-r--r--dev-python/treq/Manifest1
-rw-r--r--dev-python/treq/metadata.xml12
-rw-r--r--dev-python/treq/treq-0.2.1.ebuild42
-rw-r--r--dev-python/trollius/Manifest1
-rw-r--r--dev-python/trollius/metadata.xml9
-rw-r--r--dev-python/trollius/trollius-1.0.4.ebuild23
-rw-r--r--dev-python/ttfquery/Manifest1
-rw-r--r--dev-python/ttfquery/metadata.xml9
-rw-r--r--dev-python/ttfquery/ttfquery-1.0.5-r1.ebuild26
-rw-r--r--dev-python/ttystatus/Manifest2
-rw-r--r--dev-python/ttystatus/metadata.xml8
-rw-r--r--dev-python/ttystatus/ttystatus-0.22.ebuild20
-rw-r--r--dev-python/ttystatus/ttystatus-0.23.ebuild20
-rw-r--r--dev-python/turbocheetah/Manifest1
-rw-r--r--dev-python/turbocheetah/metadata.xml8
-rw-r--r--dev-python/turbocheetah/turbocheetah-1.0-r1.ebuild33
-rw-r--r--dev-python/turbojson/Manifest1
-rw-r--r--dev-python/turbojson/metadata.xml8
-rw-r--r--dev-python/turbojson/turbojson-1.3.2-r1.ebuild27
-rw-r--r--dev-python/turbokid/Manifest1
-rw-r--r--dev-python/turbokid/metadata.xml8
-rw-r--r--dev-python/turbokid/turbokid-1.0.5-r1.ebuild31
-rw-r--r--dev-python/turbolift/Manifest1
-rw-r--r--dev-python/turbolift/metadata.xml16
-rw-r--r--dev-python/turbolift/turbolift-2.0.5.ebuild36
-rw-r--r--dev-python/tvdb_api/Manifest1
-rw-r--r--dev-python/tvdb_api/metadata.xml11
-rw-r--r--dev-python/tvdb_api/tvdb_api-1.9.ebuild20
-rw-r--r--dev-python/tweepy/Manifest2
-rw-r--r--dev-python/tweepy/metadata.xml9
-rw-r--r--dev-python/tweepy/tweepy-2.3.ebuild44
-rw-r--r--dev-python/tweepy/tweepy-3.3.0.ebuild48
-rw-r--r--dev-python/twilio/Manifest1
-rw-r--r--dev-python/twilio/metadata.xml11
-rw-r--r--dev-python/twilio/twilio-3.6.9.ebuild33
-rw-r--r--dev-python/twill/Manifest1
-rw-r--r--dev-python/twill/metadata.xml9
-rw-r--r--dev-python/twill/twill-0.9-r1.ebuild41
-rw-r--r--dev-python/twisted-conch/Manifest7
-rw-r--r--dev-python/twisted-conch/metadata.xml5
-rw-r--r--dev-python/twisted-conch/twisted-conch-13.0.0-r1.ebuild30
-rw-r--r--dev-python/twisted-conch/twisted-conch-13.2.0.ebuild30
-rw-r--r--dev-python/twisted-conch/twisted-conch-14.0.0.ebuild30
-rw-r--r--dev-python/twisted-conch/twisted-conch-14.0.1.ebuild19
-rw-r--r--dev-python/twisted-conch/twisted-conch-14.0.2.ebuild19
-rw-r--r--dev-python/twisted-conch/twisted-conch-15.1.0.ebuild19
-rw-r--r--dev-python/twisted-conch/twisted-conch-15.2.1.ebuild19
-rw-r--r--dev-python/twisted-core/Manifest8
-rw-r--r--dev-python/twisted-core/files/twistd.conf7
-rw-r--r--dev-python/twisted-core/files/twistd.init25
-rw-r--r--dev-python/twisted-core/files/twisted-core-12.0.0-fix-test-timeFormatting.patch26
-rw-r--r--dev-python/twisted-core/files/twisted-core-12.1.0-remove-tests-conch-dependency.patch15
-rw-r--r--dev-python/twisted-core/files/twisted-core-2.1.0-echo-less.patch13
-rw-r--r--dev-python/twisted-core/files/twisted-core-2.1.0-zsh-head.patch13
-rw-r--r--dev-python/twisted-core/files/twisted-core-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch11
-rw-r--r--dev-python/twisted-core/metadata.xml14
-rw-r--r--dev-python/twisted-core/twisted-core-12.3.0-r1.ebuild107
-rw-r--r--dev-python/twisted-core/twisted-core-13.0.0-r3.ebuild107
-rw-r--r--dev-python/twisted-core/twisted-core-13.2.0.ebuild117
-rw-r--r--dev-python/twisted-core/twisted-core-14.0.0.ebuild123
-rw-r--r--dev-python/twisted-core/twisted-core-14.0.1.ebuild126
-rw-r--r--dev-python/twisted-core/twisted-core-14.0.2.ebuild126
-rw-r--r--dev-python/twisted-core/twisted-core-15.1.0.ebuild126
-rw-r--r--dev-python/twisted-core/twisted-core-15.2.1.ebuild119
-rw-r--r--dev-python/twisted-lore/Manifest7
-rw-r--r--dev-python/twisted-lore/metadata.xml5
-rw-r--r--dev-python/twisted-lore/twisted-lore-13.0.0-r1.ebuild17
-rw-r--r--dev-python/twisted-lore/twisted-lore-13.2.0.ebuild17
-rw-r--r--dev-python/twisted-lore/twisted-lore-14.0.0.ebuild17
-rw-r--r--dev-python/twisted-lore/twisted-lore-14.0.1.ebuild17
-rw-r--r--dev-python/twisted-lore/twisted-lore-14.0.2.ebuild17
-rw-r--r--dev-python/twisted-lore/twisted-lore-15.1.0.ebuild17
-rw-r--r--dev-python/twisted-lore/twisted-lore-15.2.1.ebuild17
-rw-r--r--dev-python/twisted-mail/Manifest7
-rw-r--r--dev-python/twisted-mail/metadata.xml5
-rw-r--r--dev-python/twisted-mail/twisted-mail-13.0.0-r1.ebuild17
-rw-r--r--dev-python/twisted-mail/twisted-mail-13.2.0.ebuild17
-rw-r--r--dev-python/twisted-mail/twisted-mail-14.0.0.ebuild17
-rw-r--r--dev-python/twisted-mail/twisted-mail-14.0.1.ebuild17
-rw-r--r--dev-python/twisted-mail/twisted-mail-14.0.2.ebuild17
-rw-r--r--dev-python/twisted-mail/twisted-mail-15.1.0.ebuild17
-rw-r--r--dev-python/twisted-mail/twisted-mail-15.2.1.ebuild17
-rw-r--r--dev-python/twisted-names/Manifest7
-rw-r--r--dev-python/twisted-names/metadata.xml5
-rw-r--r--dev-python/twisted-names/twisted-names-13.0.0-r1.ebuild16
-rw-r--r--dev-python/twisted-names/twisted-names-13.2.0.ebuild16
-rw-r--r--dev-python/twisted-names/twisted-names-14.0.0.ebuild16
-rw-r--r--dev-python/twisted-names/twisted-names-14.0.1.ebuild16
-rw-r--r--dev-python/twisted-names/twisted-names-14.0.2.ebuild16
-rw-r--r--dev-python/twisted-names/twisted-names-15.1.0.ebuild16
-rw-r--r--dev-python/twisted-names/twisted-names-15.2.1.ebuild16
-rw-r--r--dev-python/twisted-news/Manifest7
-rw-r--r--dev-python/twisted-news/metadata.xml5
-rw-r--r--dev-python/twisted-news/twisted-news-13.0.0-r1.ebuild17
-rw-r--r--dev-python/twisted-news/twisted-news-13.2.0.ebuild17
-rw-r--r--dev-python/twisted-news/twisted-news-14.0.0.ebuild17
-rw-r--r--dev-python/twisted-news/twisted-news-14.0.1.ebuild17
-rw-r--r--dev-python/twisted-news/twisted-news-14.0.2.ebuild17
-rw-r--r--dev-python/twisted-news/twisted-news-15.1.0.ebuild17
-rw-r--r--dev-python/twisted-news/twisted-news-15.2.1.ebuild17
-rw-r--r--dev-python/twisted-pair/Manifest7
-rw-r--r--dev-python/twisted-pair/files/14.0.0-tests.patch26
-rw-r--r--dev-python/twisted-pair/metadata.xml5
-rw-r--r--dev-python/twisted-pair/twisted-pair-13.0.0-r1.ebuild17
-rw-r--r--dev-python/twisted-pair/twisted-pair-13.2.0.ebuild17
-rw-r--r--dev-python/twisted-pair/twisted-pair-14.0.0.ebuild20
-rw-r--r--dev-python/twisted-pair/twisted-pair-14.0.1.ebuild20
-rw-r--r--dev-python/twisted-pair/twisted-pair-14.0.2.ebuild20
-rw-r--r--dev-python/twisted-pair/twisted-pair-15.1.0.ebuild20
-rw-r--r--dev-python/twisted-pair/twisted-pair-15.2.1.ebuild20
-rw-r--r--dev-python/twisted-runner/Manifest7
-rw-r--r--dev-python/twisted-runner/metadata.xml5
-rw-r--r--dev-python/twisted-runner/twisted-runner-13.0.0-r1.ebuild16
-rw-r--r--dev-python/twisted-runner/twisted-runner-13.2.0.ebuild16
-rw-r--r--dev-python/twisted-runner/twisted-runner-14.0.0.ebuild16
-rw-r--r--dev-python/twisted-runner/twisted-runner-14.0.1.ebuild16
-rw-r--r--dev-python/twisted-runner/twisted-runner-14.0.2.ebuild16
-rw-r--r--dev-python/twisted-runner/twisted-runner-15.1.0.ebuild16
-rw-r--r--dev-python/twisted-runner/twisted-runner-15.2.1.ebuild16
-rw-r--r--dev-python/twisted-web/Manifest8
-rw-r--r--dev-python/twisted-web/metadata.xml5
-rw-r--r--dev-python/twisted-web/twisted-web-12.3.0-r1.ebuild27
-rw-r--r--dev-python/twisted-web/twisted-web-13.0.0-r1.ebuild27
-rw-r--r--dev-python/twisted-web/twisted-web-13.2.0.ebuild31
-rw-r--r--dev-python/twisted-web/twisted-web-14.0.0.ebuild31
-rw-r--r--dev-python/twisted-web/twisted-web-14.0.1.ebuild31
-rw-r--r--dev-python/twisted-web/twisted-web-14.0.2.ebuild31
-rw-r--r--dev-python/twisted-web/twisted-web-15.1.0.ebuild31
-rw-r--r--dev-python/twisted-web/twisted-web-15.2.1.ebuild31
-rw-r--r--dev-python/twisted-words/Manifest7
-rw-r--r--dev-python/twisted-words/files/twisted-words-10.2.0-twisted.words.protocols.jabber.jstrports.parse.patch67
-rw-r--r--dev-python/twisted-words/metadata.xml5
-rw-r--r--dev-python/twisted-words/twisted-words-13.0.0-r1.ebuild17
-rw-r--r--dev-python/twisted-words/twisted-words-13.2.0.ebuild17
-rw-r--r--dev-python/twisted-words/twisted-words-14.0.0.ebuild17
-rw-r--r--dev-python/twisted-words/twisted-words-14.0.1.ebuild17
-rw-r--r--dev-python/twisted-words/twisted-words-14.0.2.ebuild17
-rw-r--r--dev-python/twisted-words/twisted-words-15.1.0.ebuild17
-rw-r--r--dev-python/twisted-words/twisted-words-15.2.1.ebuild17
-rw-r--r--dev-python/twistedsnmp/Manifest1
-rw-r--r--dev-python/twistedsnmp/metadata.xml11
-rw-r--r--dev-python/twistedsnmp/twistedsnmp-0.3.13-r1.ebuild50
-rw-r--r--dev-python/twitter/Manifest4
-rw-r--r--dev-python/twitter/metadata.xml8
-rw-r--r--dev-python/twitter/twitter-1.14.3.ebuild20
-rw-r--r--dev-python/twitter/twitter-1.15.0.ebuild20
-rw-r--r--dev-python/twitter/twitter-1.16.0.ebuild20
-rw-r--r--dev-python/twitter/twitter-1.17.0.ebuild20
-rw-r--r--dev-python/twython/Manifest3
-rw-r--r--dev-python/twython/metadata.xml13
-rw-r--r--dev-python/twython/twython-3.0.0.ebuild22
-rw-r--r--dev-python/twython/twython-3.2.0.ebuild22
-rw-r--r--dev-python/twython/twython-3.3.0.ebuild22
-rw-r--r--dev-python/txAMQP/Manifest1
-rw-r--r--dev-python/txAMQP/metadata.xml9
-rw-r--r--dev-python/txAMQP/txAMQP-0.6.2.ebuild19
-rw-r--r--dev-python/txaio/Manifest1
-rw-r--r--dev-python/txaio/files/util.py40
-rw-r--r--dev-python/txaio/metadata.xml9
-rw-r--r--dev-python/txaio/txaio-1.0.0.ebuild47
-rw-r--r--dev-python/txsocksx/Manifest1
-rw-r--r--dev-python/txsocksx/metadata.xml12
-rw-r--r--dev-python/txsocksx/txsocksx-1.13.0.3.ebuild25
-rw-r--r--dev-python/tzlocal/Manifest2
-rw-r--r--dev-python/tzlocal/metadata.xml9
-rw-r--r--dev-python/tzlocal/tzlocal-1.1.2.ebuild27
-rw-r--r--dev-python/tzlocal/tzlocal-1.2.ebuild26
-rw-r--r--dev-python/ujson/Manifest1
-rw-r--r--dev-python/ujson/files/ujson-1.33-test-py3.patch38
-rw-r--r--dev-python/ujson/metadata.xml12
-rw-r--r--dev-python/ujson/ujson-1.33.ebuild44
-rw-r--r--dev-python/unicodecsv/Manifest5
-rw-r--r--dev-python/unicodecsv/metadata.xml8
-rw-r--r--dev-python/unicodecsv/unicodecsv-0.11.0.ebuild20
-rw-r--r--dev-python/unicodecsv/unicodecsv-0.11.1.ebuild20
-rw-r--r--dev-python/unicodecsv/unicodecsv-0.12.0.ebuild17
-rw-r--r--dev-python/unicodecsv/unicodecsv-0.13.0.ebuild25
-rw-r--r--dev-python/unicodecsv/unicodecsv-0.9.4.ebuild20
-rw-r--r--dev-python/unidecode/Manifest2
-rw-r--r--dev-python/unidecode/metadata.xml14
-rw-r--r--dev-python/unidecode/unidecode-0.04.17.ebuild27
-rw-r--r--dev-python/unidecode/unidecode-0.04.18.ebuild27
-rw-r--r--dev-python/unittest2/Manifest5
-rw-r--r--dev-python/unittest2/files/remove-argparse-dependence.patch12
-rw-r--r--dev-python/unittest2/files/unittest2-0.8.0-argparse.patch15
-rw-r--r--dev-python/unittest2/metadata.xml8
-rw-r--r--dev-python/unittest2/unittest2-0.5.1-r1.ebuild61
-rw-r--r--dev-python/unittest2/unittest2-0.5.1-r2.ebuild68
-rw-r--r--dev-python/unittest2/unittest2-0.8.0.ebuild30
-rw-r--r--dev-python/unittest2/unittest2-1.0.1-r1.ebuild37
-rw-r--r--dev-python/unittest2/unittest2-1.1.0.ebuild38
-rw-r--r--dev-python/uritemplate/Manifest1
-rw-r--r--dev-python/uritemplate/metadata.xml8
-rw-r--r--dev-python/uritemplate/uritemplate-0.6.ebuild23
-rw-r--r--dev-python/urlgrabber/Manifest2
-rw-r--r--dev-python/urlgrabber/files/urlgrabber-3.9.1.patch26
-rw-r--r--dev-python/urlgrabber/metadata.xml33
-rw-r--r--dev-python/urlgrabber/urlgrabber-3.10.1.ebuild22
-rw-r--r--dev-python/urlgrabber/urlgrabber-3.9.1-r2.ebuild28
-rw-r--r--dev-python/urllib3/Manifest4
-rw-r--r--dev-python/urllib3/metadata.xml9
-rw-r--r--dev-python/urllib3/urllib3-1.10.3.ebuild80
-rw-r--r--dev-python/urllib3/urllib3-1.10.4.ebuild71
-rw-r--r--dev-python/urllib3/urllib3-1.10.ebuild70
-rw-r--r--dev-python/urllib3/urllib3-1.9.1.ebuild76
-rw-r--r--dev-python/urwid/Manifest2
-rw-r--r--dev-python/urwid/files/urwid-1.1.0-sphinx.patch11
-rw-r--r--dev-python/urwid/metadata.xml25
-rw-r--r--dev-python/urwid/urwid-1.2.2.ebuild54
-rw-r--r--dev-python/urwid/urwid-1.3.0.ebuild55
-rw-r--r--dev-python/utidylib/Manifest1
-rw-r--r--dev-python/utidylib/files/utidylib-0.2-fix_tests.patch48
-rw-r--r--dev-python/utidylib/files/utidylib-0.2-no-docs-in-site-packages.patch11
-rw-r--r--dev-python/utidylib/metadata.xml5
-rw-r--r--dev-python/utidylib/utidylib-0.2-r2.ebuild52
-rw-r--r--dev-python/utmp/Manifest1
-rw-r--r--dev-python/utmp/metadata.xml12
-rw-r--r--dev-python/utmp/utmp-0.4.ebuild29
-rw-r--r--dev-python/vatnumber/Manifest1
-rw-r--r--dev-python/vatnumber/files/vatnumber-1.0-skiptest.patch18
-rw-r--r--dev-python/vatnumber/metadata.xml12
-rw-r--r--dev-python/vatnumber/vatnumber-1.1.ebuild33
-rw-r--r--dev-python/vcrpy/Manifest1
-rw-r--r--dev-python/vcrpy/metadata.xml12
-rw-r--r--dev-python/vcrpy/vcrpy-1.5.2.ebuild33
-rw-r--r--dev-python/vcversioner/Manifest1
-rw-r--r--dev-python/vcversioner/metadata.xml12
-rw-r--r--dev-python/vcversioner/vcversioner-2.14.0.0.ebuild18
-rw-r--r--dev-python/venusian/Manifest2
-rw-r--r--dev-python/venusian/metadata.xml8
-rw-r--r--dev-python/venusian/venusian-1.0.ebuild31
-rw-r--r--dev-python/venusian/venusian-1.0_alpha8.ebuild34
-rw-r--r--dev-python/verboselogs/Manifest1
-rw-r--r--dev-python/verboselogs/metadata.xml12
-rw-r--r--dev-python/verboselogs/verboselogs-1.0.1.ebuild22
-rw-r--r--dev-python/versiontools/Manifest1
-rw-r--r--dev-python/versiontools/metadata.xml13
-rw-r--r--dev-python/versiontools/versiontools-1.9.1-r1.ebuild30
-rw-r--r--dev-python/vertex/Manifest2
-rw-r--r--dev-python/vertex/metadata.xml16
-rw-r--r--dev-python/vertex/vertex-0.3.0-r1.ebuild27
-rw-r--r--dev-python/vertex/vertex-0.3.1.ebuild27
-rw-r--r--dev-python/virtualenv-clone/Manifest3
-rw-r--r--dev-python/virtualenv-clone/metadata.xml9
-rw-r--r--dev-python/virtualenv-clone/virtualenv-clone-0.2.4-r2.ebuild21
-rw-r--r--dev-python/virtualenv-clone/virtualenv-clone-0.2.5.ebuild21
-rw-r--r--dev-python/virtualenv-clone/virtualenv-clone-0.2.6.ebuild21
-rw-r--r--dev-python/virtualenv/Manifest2
-rw-r--r--dev-python/virtualenv/files/virtualenv-1.8.2-no-versioned-script.patch10
-rw-r--r--dev-python/virtualenv/files/virtualenv-12.0-skip-broken-test.patch18
-rw-r--r--dev-python/virtualenv/files/virtualenv-12.1.1-skip-broken-test.patch19
-rw-r--r--dev-python/virtualenv/metadata.xml9
-rw-r--r--dev-python/virtualenv/virtualenv-12.0.5.ebuild45
-rw-r--r--dev-python/virtualenv/virtualenv-13.1.0.ebuild46
-rw-r--r--dev-python/virtualenvwrapper/Manifest4
-rw-r--r--dev-python/virtualenvwrapper/files/tox.ini3
-rw-r--r--dev-python/virtualenvwrapper/metadata.xml8
-rw-r--r--dev-python/virtualenvwrapper/virtualenvwrapper-4.3.1.ebuild36
-rw-r--r--dev-python/virtualenvwrapper/virtualenvwrapper-4.3.2.ebuild36
-rw-r--r--dev-python/virtualenvwrapper/virtualenvwrapper-4.5.1.ebuild36
-rw-r--r--dev-python/virtualenvwrapper/virtualenvwrapper-4.6.0.ebuild36
-rw-r--r--dev-python/visual/Manifest1
-rw-r--r--dev-python/visual/files/visual-5.74-boost-1.50.patch28
-rw-r--r--dev-python/visual/metadata.xml5
-rw-r--r--dev-python/visual/visual-5.74.ebuild85
-rw-r--r--dev-python/vo/Manifest2
-rw-r--r--dev-python/vo/files/vo-0.6-expat.patch19
-rw-r--r--dev-python/vo/metadata.xml12
-rw-r--r--dev-python/vo/vo-0.8-r1.ebuild45
-rw-r--r--dev-python/vobject/Manifest1
-rw-r--r--dev-python/vobject/metadata.xml5
-rw-r--r--dev-python/vobject/vobject-0.8.1c-r1.ebuild27
-rw-r--r--dev-python/w3lib/Manifest1
-rw-r--r--dev-python/w3lib/metadata.xml12
-rw-r--r--dev-python/w3lib/w3lib-1.11.0.ebuild21
-rw-r--r--dev-python/waitress/Manifest2
-rw-r--r--dev-python/waitress/files/waitress-0.8.9-doc.patch29
-rw-r--r--dev-python/waitress/metadata.xml9
-rw-r--r--dev-python/waitress/waitress-0.8.9.ebuild50
-rw-r--r--dev-python/warlock/Manifest2
-rw-r--r--dev-python/warlock/metadata.xml16
-rw-r--r--dev-python/warlock/warlock-1.0.1.ebuild33
-rw-r--r--dev-python/warlock/warlock-1.1.0.ebuild33
-rw-r--r--dev-python/watchdog/Manifest3
-rw-r--r--dev-python/watchdog/metadata.xml12
-rw-r--r--dev-python/watchdog/watchdog-0.8.1.ebuild27
-rw-r--r--dev-python/watchdog/watchdog-0.8.2.ebuild37
-rw-r--r--dev-python/watchdog/watchdog-0.8.3.ebuild37
-rw-r--r--dev-python/wcsaxes/Manifest1
-rw-r--r--dev-python/wcsaxes/metadata.xml11
-rw-r--r--dev-python/wcsaxes/wcsaxes-0.3.ebuild46
-rw-r--r--dev-python/wcwidth/Manifest1
-rw-r--r--dev-python/wcwidth/metadata.xml12
-rw-r--r--dev-python/wcwidth/wcwidth-0.1.4.ebuild18
-rw-r--r--dev-python/weasyprint/Manifest3
-rw-r--r--dev-python/weasyprint/metadata.xml9
-rw-r--r--dev-python/weasyprint/weasyprint-0.21-r1.ebuild34
-rw-r--r--dev-python/weasyprint/weasyprint-0.22.ebuild42
-rw-r--r--dev-python/weasyprint/weasyprint-0.23.ebuild42
-rw-r--r--dev-python/webassets/Manifest1
-rw-r--r--dev-python/webassets/metadata.xml11
-rw-r--r--dev-python/webassets/webassets-0.10.1.ebuild19
-rw-r--r--dev-python/weberror/Manifest2
-rw-r--r--dev-python/weberror/metadata.xml8
-rw-r--r--dev-python/weberror/weberror-0.10.3-r1.ebuild35
-rw-r--r--dev-python/weberror/weberror-0.11.ebuild35
-rw-r--r--dev-python/webhelpers/Manifest1
-rw-r--r--dev-python/webhelpers/files/mime9ad434b.patch14
-rw-r--r--dev-python/webhelpers/metadata.xml8
-rw-r--r--dev-python/webhelpers/webhelpers-1.3-r1.ebuild61
-rw-r--r--dev-python/webob/Manifest2
-rw-r--r--dev-python/webob/files/webob-1.0.7-tests.patch27
-rw-r--r--dev-python/webob/files/webob-1.2.3-tests.patch24
-rw-r--r--dev-python/webob/metadata.xml8
-rw-r--r--dev-python/webob/webob-1.4.1.ebuild44
-rw-r--r--dev-python/webob/webob-1.4.ebuild44
-rw-r--r--dev-python/webpy/Manifest1
-rw-r--r--dev-python/webpy/metadata.xml10
-rw-r--r--dev-python/webpy/webpy-0.37-r1.ebuild33
-rw-r--r--dev-python/webpy/webpy-0.37.ebuild41
-rw-r--r--dev-python/websocket-client/Manifest4
-rw-r--r--dev-python/websocket-client/metadata.xml15
-rw-r--r--dev-python/websocket-client/websocket-client-0.21.0.ebuild33
-rw-r--r--dev-python/websocket-client/websocket-client-0.29.0.ebuild35
-rw-r--r--dev-python/websocket-client/websocket-client-0.31.0.ebuild35
-rw-r--r--dev-python/websocket-client/websocket-client-0.32.0.ebuild35
-rw-r--r--dev-python/websockify/Manifest1
-rw-r--r--dev-python/websockify/metadata.xml15
-rw-r--r--dev-python/websockify/websockify-0.6.0.ebuild19
-rw-r--r--dev-python/webtest/Manifest4
-rw-r--r--dev-python/webtest/files/webtest-1.3-doctest-ellipsis.patch38
-rw-r--r--dev-python/webtest/files/webtest-1.3.4-index_fixt.patch13
-rw-r--r--dev-python/webtest/files/webtest-1.4.3-doctest.patch15
-rw-r--r--dev-python/webtest/metadata.xml8
-rw-r--r--dev-python/webtest/webtest-1.4.3-r1.ebuild62
-rw-r--r--dev-python/webtest/webtest-2.0.16.ebuild72
-rw-r--r--dev-python/webtest/webtest-2.0.17.ebuild68
-rw-r--r--dev-python/webtest/webtest-2.0.18.ebuild68
-rw-r--r--dev-python/webut/Manifest1
-rw-r--r--dev-python/webut/metadata.xml5
-rw-r--r--dev-python/webut/webut-0.1.0.2-r1.ebuild31
-rw-r--r--dev-python/webut/webut-0.1.0.2.ebuild39
-rw-r--r--dev-python/wehjit/Manifest1
-rw-r--r--dev-python/wehjit/files/wehjit-0.2.2-SkipTest.patch23
-rw-r--r--dev-python/wehjit/metadata.xml18
-rw-r--r--dev-python/wehjit/wehjit-0.2.2-r1.ebuild37
-rw-r--r--dev-python/werkzeug/Manifest5
-rw-r--r--dev-python/werkzeug/metadata.xml12
-rw-r--r--dev-python/werkzeug/werkzeug-0.10.1.ebuild31
-rw-r--r--dev-python/werkzeug/werkzeug-0.10.4.ebuild31
-rw-r--r--dev-python/werkzeug/werkzeug-0.10.ebuild31
-rw-r--r--dev-python/werkzeug/werkzeug-0.9.4.ebuild30
-rw-r--r--dev-python/werkzeug/werkzeug-0.9.6.ebuild30
-rw-r--r--dev-python/wheel/Manifest1
-rw-r--r--dev-python/wheel/metadata.xml8
-rw-r--r--dev-python/wheel/wheel-0.24.0.ebuild20
-rw-r--r--dev-python/whirlpool/Manifest1
-rw-r--r--dev-python/whirlpool/files/tests.py96
-rw-r--r--dev-python/whirlpool/metadata.xml12
-rw-r--r--dev-python/whirlpool/whirlpool-0.3-r1.ebuild38
-rw-r--r--dev-python/whisper/Manifest1
-rw-r--r--dev-python/whisper/metadata.xml12
-rw-r--r--dev-python/whisper/whisper-0.9.13.ebuild18
-rw-r--r--dev-python/whoosh/Manifest2
-rw-r--r--dev-python/whoosh/metadata.xml25
-rw-r--r--dev-python/whoosh/whoosh-2.6.0.ebuild57
-rw-r--r--dev-python/whoosh/whoosh-2.7.0.ebuild53
-rw-r--r--dev-python/winpdb/Manifest1
-rw-r--r--dev-python/winpdb/metadata.xml8
-rw-r--r--dev-python/winpdb/winpdb-1.4.8-r1.ebuild36
-rw-r--r--dev-python/winpdb/winpdb-1.4.8.ebuild40
-rw-r--r--dev-python/workerpool/Manifest2
-rw-r--r--dev-python/workerpool/metadata.xml13
-rw-r--r--dev-python/workerpool/workerpool-0.9.2-r1.ebuild33
-rw-r--r--dev-python/workerpool/workerpool-0.9.4.ebuild33
-rw-r--r--dev-python/wrapt/Manifest2
-rw-r--r--dev-python/wrapt/metadata.xml13
-rw-r--r--dev-python/wrapt/wrapt-1.10.4.ebuild46
-rw-r--r--dev-python/wrapt/wrapt-1.10.5.ebuild46
-rw-r--r--dev-python/ws4py/Manifest1
-rw-r--r--dev-python/ws4py/files/ws4py-0.2-cherrypy_test.patch24
-rw-r--r--dev-python/ws4py/files/ws4py-0.2.1-process-data.patch27
-rw-r--r--dev-python/ws4py/metadata.xml16
-rw-r--r--dev-python/ws4py/ws4py-0.3.4.ebuild52
-rw-r--r--dev-python/ws4py/ws4py-9999.ebuild52
-rw-r--r--dev-python/wsaccel/Manifest1
-rw-r--r--dev-python/wsaccel/metadata.xml12
-rw-r--r--dev-python/wsaccel/wsaccel-0.6.2.ebuild27
-rw-r--r--dev-python/wsgiintercept/Manifest4
-rw-r--r--dev-python/wsgiintercept/metadata.xml20
-rw-r--r--dev-python/wsgiintercept/wsgiintercept-0.10.0.ebuild59
-rw-r--r--dev-python/wsgiintercept/wsgiintercept-0.10.2.ebuild59
-rw-r--r--dev-python/wsgiintercept/wsgiintercept-0.9.0.ebuild50
-rw-r--r--dev-python/wsgiintercept/wsgiintercept-0.9.1.ebuild50
-rw-r--r--dev-python/wsgilog/Manifest1
-rw-r--r--dev-python/wsgilog/metadata.xml14
-rw-r--r--dev-python/wsgilog/wsgilog-0.3-r1.ebuild22
-rw-r--r--dev-python/wsgiproxy2/Manifest2
-rw-r--r--dev-python/wsgiproxy2/metadata.xml8
-rw-r--r--dev-python/wsgiproxy2/wsgiproxy2-0.4.1.ebuild51
-rw-r--r--dev-python/wsgiproxy2/wsgiproxy2-0.4.2.ebuild50
-rw-r--r--dev-python/wstools/Manifest1
-rw-r--r--dev-python/wstools/metadata.xml9
-rw-r--r--dev-python/wstools/wstools-0.4.3.ebuild22
-rw-r--r--dev-python/wtf-peewee/Manifest1
-rw-r--r--dev-python/wtf-peewee/metadata.xml8
-rw-r--r--dev-python/wtf-peewee/wtf-peewee-0.2.3.ebuild36
-rw-r--r--dev-python/wtforms/Manifest3
-rw-r--r--dev-python/wtforms/metadata.xml8
-rw-r--r--dev-python/wtforms/wtforms-1.0.4.ebuild42
-rw-r--r--dev-python/wtforms/wtforms-2.0.1.ebuild40
-rw-r--r--dev-python/wtforms/wtforms-2.0.2.ebuild40
-rw-r--r--dev-python/wxpython/Manifest13
-rw-r--r--dev-python/wxpython/files/wxpython-2.8-cache-writable.patch20
-rw-r--r--dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch16
-rw-r--r--dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch10
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch48
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch37
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch55
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch34
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch191
-rw-r--r--dev-python/wxpython/files/wxpython-2.9-wxversion-demo.patch10
-rw-r--r--dev-python/wxpython/files/wxpython-2.9-wxversion-scripts.patch221
-rw-r--r--dev-python/wxpython/files/wxpython-2.9.4.1-wxversion-scripts.patch211
-rw-r--r--dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch10
-rw-r--r--dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch211
-rw-r--r--dev-python/wxpython/metadata.xml13
-rw-r--r--dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild195
-rw-r--r--dev-python/wxpython/wxpython-2.9.4.1-r2.ebuild168
-rw-r--r--dev-python/wxpython/wxpython-3.0.0.0.ebuild163
-rw-r--r--dev-python/wxpython/wxpython-3.0.1.1.ebuild163
-rw-r--r--dev-python/wxpython/wxpython-3.0.2.0.ebuild163
-rw-r--r--dev-python/xcffib/Manifest6
-rw-r--r--dev-python/xcffib/metadata.xml9
-rw-r--r--dev-python/xcffib/xcffib-0.1.10.ebuild27
-rw-r--r--dev-python/xcffib/xcffib-0.2.0.ebuild26
-rw-r--r--dev-python/xcffib/xcffib-0.2.1.ebuild26
-rw-r--r--dev-python/xcffib/xcffib-0.2.5.ebuild34
-rw-r--r--dev-python/xcffib/xcffib-0.3.2.ebuild33
-rw-r--r--dev-python/xcffib/xcffib-0.3.4.ebuild33
-rw-r--r--dev-python/xhtml2pdf/Manifest2
-rw-r--r--dev-python/xhtml2pdf/metadata.xml8
-rw-r--r--dev-python/xhtml2pdf/xhtml2pdf-0.0.5-r1.ebuild22
-rw-r--r--dev-python/xhtml2pdf/xhtml2pdf-0.0.6-r1.ebuild25
-rw-r--r--dev-python/xlrd/Manifest1
-rw-r--r--dev-python/xlrd/files/xlrd-0.9.3-column.patch59
-rw-r--r--dev-python/xlrd/metadata.xml11
-rw-r--r--dev-python/xlrd/xlrd-0.9.3-r1.ebuild30
-rw-r--r--dev-python/xlrd/xlrd-0.9.3.ebuild28
-rw-r--r--dev-python/xlsxwriter/Manifest1
-rw-r--r--dev-python/xlsxwriter/metadata.xml9
-rw-r--r--dev-python/xlsxwriter/xlsxwriter-0.7.3.ebuild33
-rw-r--r--dev-python/xlutils/Manifest1
-rw-r--r--dev-python/xlutils/metadata.xml12
-rw-r--r--dev-python/xlutils/xlutils-1.5.2-r1.ebuild33
-rw-r--r--dev-python/xlwt/Manifest2
-rw-r--r--dev-python/xlwt/files/docbuild.patch17
-rw-r--r--dev-python/xlwt/metadata.xml13
-rw-r--r--dev-python/xlwt/xlwt-0.7.5.ebuild33
-rw-r--r--dev-python/xlwt/xlwt-1.0.0.ebuild49
-rw-r--r--dev-python/xmltodict/Manifest2
-rw-r--r--dev-python/xmltodict/metadata.xml9
-rw-r--r--dev-python/xmltodict/xmltodict-0.9.1.ebuild30
-rw-r--r--dev-python/xmltodict/xmltodict-0.9.2.ebuild23
-rw-r--r--dev-python/xmpppy/Manifest1
-rw-r--r--dev-python/xmpppy/files/xmpppy-hashlib_ssl_deprecation.patch69
-rw-r--r--dev-python/xmpppy/metadata.xml18
-rw-r--r--dev-python/xmpppy/xmpppy-0.5.0_rc1-r1.ebuild38
-rw-r--r--dev-python/xmpppy/xmpppy-0.5.0_rc1.ebuild42
-rw-r--r--dev-python/xvfbwrapper/Manifest2
-rw-r--r--dev-python/xvfbwrapper/metadata.xml9
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.2.ebuild28
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.4.ebuild28
-rw-r--r--dev-python/yapps/Manifest1
-rw-r--r--dev-python/yapps/metadata.xml9
-rw-r--r--dev-python/yapps/yapps-2.2.0.ebuild24
-rw-r--r--dev-python/yapsy/Manifest3
-rw-r--r--dev-python/yapsy/metadata.xml12
-rw-r--r--dev-python/yapsy/yapsy-1.10.423.ebuild27
-rw-r--r--dev-python/yapsy/yapsy-1.11.023.ebuild44
-rw-r--r--dev-python/yapsy/yapsy-1.11.223.ebuild44
-rw-r--r--dev-python/yenc/Manifest1
-rw-r--r--dev-python/yenc/files/yenc-remove-cflags.patch11
-rw-r--r--dev-python/yenc/metadata.xml7
-rw-r--r--dev-python/yenc/yenc-0.4.0-r1.ebuild30
-rw-r--r--dev-python/yolk-portage/Manifest1
-rw-r--r--dev-python/yolk-portage/metadata.xml14
-rw-r--r--dev-python/yolk-portage/yolk-portage-0.1-r1.ebuild21
-rw-r--r--dev-python/yolk/Manifest1
-rw-r--r--dev-python/yolk/files/yolk-0.4.1_entry_map.patch20
-rw-r--r--dev-python/yolk/metadata.xml14
-rw-r--r--dev-python/yolk/yolk-0.4.3-r1.ebuild28
-rw-r--r--dev-python/yubiotp/Manifest1
-rw-r--r--dev-python/yubiotp/metadata.xml12
-rw-r--r--dev-python/yubiotp/yubiotp-0.2.1.ebuild34
-rw-r--r--dev-python/zake/Manifest1
-rw-r--r--dev-python/zake/metadata.xml16
-rw-r--r--dev-python/zake/zake-0.2.1.ebuild30
-rw-r--r--dev-python/zbase32/Manifest1
-rw-r--r--dev-python/zbase32/metadata.xml10
-rw-r--r--dev-python/zbase32/zbase32-1.1.5.ebuild20
-rw-r--r--dev-python/zc-buildout/Manifest1
-rw-r--r--dev-python/zc-buildout/metadata.xml23
-rw-r--r--dev-python/zc-buildout/zc-buildout-2.3.1.ebuild34
-rw-r--r--dev-python/zfec/Manifest1
-rw-r--r--dev-python/zfec/metadata.xml16
-rw-r--r--dev-python/zfec/zfec-1.4.24.ebuild30
-rw-r--r--dev-python/zope-interface/Manifest2
-rw-r--r--dev-python/zope-interface/metadata.xml8
-rw-r--r--dev-python/zope-interface/zope-interface-4.1.1.ebuild41
-rw-r--r--dev-python/zope-interface/zope-interface-4.1.2.ebuild41
-rw-r--r--dev-python/zsi/Manifest1
-rw-r--r--dev-python/zsi/metadata.xml15
-rw-r--r--dev-python/zsi/zsi-2.1_alpha1-r1.ebuild55
5636 files changed, 156541 insertions, 0 deletions
diff --git a/dev-python/3to2/3to2-1.0.ebuild b/dev-python/3to2/3to2-1.0.ebuild
new file mode 100644
index 00000000000..20208263e15
--- /dev/null
+++ b/dev-python/3to2/3to2-1.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7)
+inherit distutils-r1
+
+DESCRIPTION="Refactors valid 3.x syntax into valid 2.x syntax, if a syntactical conversion is possible"
+HOMEPAGE="http://pypi.python.org/pypi/3to2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-1.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ # the standard test runner fails to properly return failure
+ "${PYTHON}" -m unittest discover || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/3to2/3to2-1.1.1.ebuild b/dev-python/3to2/3to2-1.1.1.ebuild
new file mode 100644
index 00000000000..f7120694405
--- /dev/null
+++ b/dev-python/3to2/3to2-1.1.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+inherit distutils-r1
+
+DESCRIPTION="Refactors valid 3.x syntax into valid 2.x syntax, if a syntactical conversion is possible"
+HOMEPAGE="http://pypi.python.org/pypi/3to2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="Apache-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ # the standard test runner fails to properly return failure
+ "${PYTHON}" -m unittest discover || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/3to2/Manifest b/dev-python/3to2/Manifest
new file mode 100644
index 00000000000..caf4972d8d4
--- /dev/null
+++ b/dev-python/3to2/Manifest
@@ -0,0 +1,2 @@
+DIST 3to2-1.0.tar.gz 46028 SHA256 1c5179e0ff3a1270e98aa213035185298392693a692a5e9053cea3c45e220182 SHA512 0f1eb0397e3e777a88a9530472349febaa36a5ddf45b000da174e8cb073dada65c3db566785550b2fa812651a1b2651fcbd281b29e3a3a8f6429379cd66536f0 WHIRLPOOL 970004480bd9abe48ce17527774b594bf25ed932eed96c9219786325783eba8ace8420db1598c615e1183907424d2b2f5a84c690d1341fee658aa440505200b7
+DIST 3to2-1.1.1.zip 78779 SHA256 fef50b2b881ef743f269946e1090b77567b71bb9a9ce64b7f8e699b562ff685c SHA512 7580f174409420556f89ae78eba07cc95b95aee9d062586d0862bd41980ae31bf4ac82a43855e160eec745fcdd3b4aff614f68e77da1bfc5f9f404413cab1492 WHIRLPOOL 39b8b8c2da3f759c93488888d4ccf9eae123302a5b7ae5861fdf4ad1be75a31e57dc752e382cb3ebc49b46921ab12d95d7837948e78c3c96dd98f4701805bf14
diff --git a/dev-python/3to2/metadata.xml b/dev-python/3to2/metadata.xml
new file mode 100644
index 00000000000..d64659c2f2b
--- /dev/null
+++ b/dev-python/3to2/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">3to2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/APScheduler/APScheduler-3.0.1.ebuild b/dev-python/APScheduler/APScheduler-3.0.1.ebuild
new file mode 100644
index 00000000000..67ba8903d3b
--- /dev/null
+++ b/dev-python/APScheduler/APScheduler-3.0.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="In-process task scheduler with Cron-like capabilities"
+HOMEPAGE="https://bitbucket.org/agronholm/apscheduler"
+SRC_URI="mirror://pypi/A/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.0[${PYTHON_USEDEP}]
+ dev-python/tzlocal[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ # Unsetting PYTHONPATH prevents a bunch of errors. I have no idea why.
+ unset PYTHONPATH
+ py.test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/APScheduler/Manifest b/dev-python/APScheduler/Manifest
new file mode 100644
index 00000000000..71a71223fb7
--- /dev/null
+++ b/dev-python/APScheduler/Manifest
@@ -0,0 +1 @@
+DIST APScheduler-3.0.1.tar.gz 74325 SHA256 4e71d83578166fdc73d8adb646b40a6a7c70d9f7cb017ca93b0dc2ad51999eb5 SHA512 1a63518f02a4a17b4f11210736b7fafc11e77c78620934c50d21f4c34c85473b4f6f00647b7f39122e865d94bec027c564245a66516fee35552c012001965f18 WHIRLPOOL 168054d8405502c9366dd3366a7e5e1b49c084846b969ce3524c420cc40c3a5178021acb0187485351297ba8da5a5a6e3275dba473434196e62f03700f84bc3e
diff --git a/dev-python/APScheduler/metadata.xml b/dev-python/APScheduler/metadata.xml
new file mode 100644
index 00000000000..d1646e4cea3
--- /dev/null
+++ b/dev-python/APScheduler/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">APScheduler</remote-id>
+ <remote-id type="bitbucket">agronholm/apscheduler</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/Babel/Babel-1.3-r1.ebuild b/dev-python/Babel/Babel-1.3-r1.ebuild
new file mode 100644
index 00000000000..0fd71a8f69d
--- /dev/null
+++ b/dev-python/Babel/Babel-1.3-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="A collection of tools for internationalizing Python applications"
+HOMEPAGE="http://babel.edgewall.org/ http://pypi.python.org/pypi/Babel"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/pytest-2.3.5[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Make the tests use implementation-specific datadir,
+ # because they try to write in it.
+ sed -e '/datadir =/s:os\.path\.dirname(__file__):os.environ["BUILD_DIR"]:' \
+ -i tests/messages/test_frontend.py || die
+ sed -e '/^intersphinx_mapping/,+3d' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Create implementation-specific datadir for tests.
+ cp -R -l tests/messages/data "${BUILD_DIR}"/ || die
+ export BUILD_DIR
+ py.test || die
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/Babel/Babel-2.0.ebuild b/dev-python/Babel/Babel-2.0.ebuild
new file mode 100644
index 00000000000..04989246dc9
--- /dev/null
+++ b/dev-python/Babel/Babel-2.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A collection of tools for internationalizing Python applications"
+HOMEPAGE="http://babel.edgewall.org/ http://pypi.python.org/pypi/Babel"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/pytest-2.3.5[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Make the tests use implementation-specific datadir,
+ # because they try to write in it.
+ sed -e '/datadir =/s:os\.path\.dirname(__file__):os.environ["BUILD_DIR"]:' \
+ -i tests/messages/test_frontend.py || die
+ sed -e '/^intersphinx_mapping/,+3d' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Create implementation-specific datadir for tests.
+ cp -R -l tests/messages/data "${BUILD_DIR}"/ || die
+ export BUILD_DIR
+ py.test || die
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/Babel/Manifest b/dev-python/Babel/Manifest
new file mode 100644
index 00000000000..f5ed01d410e
--- /dev/null
+++ b/dev-python/Babel/Manifest
@@ -0,0 +1,2 @@
+DIST Babel-1.3.tar.gz 3401237 SHA256 9f02d0357184de1f093c10012b52e7454a1008be6a5c185ab7a3307aceb1d12e SHA512 3173d578c36d7a20d14ffcf6406ec9fe301e71a199069b3d2e53bd0c66e7f83d6e94f071dc08f2708202ec1ace4d14f4476234cc8347a37b05317302f0cfe0cf WHIRLPOOL fb48c95d0bdd775fa273f24236a05186f64b0e69a53ad99e2c4fa89b306d2d6c0856f72abe506b655baceaabe1fa481719e002c52188f4e01ead0a6f7057db00
+DIST Babel-2.0.tar.gz 3415906 SHA256 44988df191123065af9857eca68e9151526a931c12659ca29904e4f11de7ec1b SHA512 9f12573d97f688baf0d1fc0f61055e34b67964054e70c8a6c286a8b0e42ce58da4d9c8cf54f94e51b47a5256cc4504a14bea497bd626cfad8c860d952e7a5e18 WHIRLPOOL e08b0d2d6192321f653200b9e4e96d898c12ea8176f7e0fb7c2144d3dfb6c4b6c12b85833b05b1a5e2d9ed8cec3712d09c3b0a1822ca9cc7ea4bf1cb24dac3f3
diff --git a/dev-python/Babel/files/Babel-0.9.6-setuptools.patch b/dev-python/Babel/files/Babel-0.9.6-setuptools.patch
new file mode 100644
index 00000000000..ff4ba7bba7b
--- /dev/null
+++ b/dev-python/Babel/files/Babel-0.9.6-setuptools.patch
@@ -0,0 +1,23 @@
+From: Ben Kohler
+Date: 2012-08-13 19:59:01 UTC
+Bug: https://bugs.gentoo.org/show_bug.cgi?id=431278
+
+remove distutils fallback which silently fails resulting
+in a broken installation
+
+this patch enforces a real failure in case of broken setuptools
+
+--- Babel-0.9.6/setup.py
++++ Babel-0.9.6/setup.py
+@@ -16,10 +16,7 @@
+ import doctest
+ from glob import glob
+ import os
+-try:
+- from setuptools import setup
+-except ImportError:
+- from distutils.core import setup
++from setuptools import setup
+ import sys
+
+ sys.path.append(os.path.join('doc', 'common'))
diff --git a/dev-python/Babel/metadata.xml b/dev-python/Babel/metadata.xml
new file mode 100644
index 00000000000..e0b8d2edbff
--- /dev/null
+++ b/dev-python/Babel/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ A collection of tools for internationalizing Python applications
+ Babel is composed of two major parts:
+ - tools to build and work with gettext message catalogs
+ - a Python interface to the CLDR (Common Locale Data Repository),
+ providing access to various locale display names, localized number
+ and date formatting, etc.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">Babel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/BitVector/BitVector-3.3.2.ebuild b/dev-python/BitVector/BitVector-3.3.2.ebuild
new file mode 100644
index 00000000000..f8285f12344
--- /dev/null
+++ b/dev-python/BitVector/BitVector-3.3.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A pure-Python memory-efficient packed representation for bit arrays"
+HOMEPAGE="http://cobweb.ecn.purdue.edu/~kak/dist/ http://pypi.python.org/pypi/BitVector"
+SRC_URI="http://cobweb.ecn.purdue.edu/~kak/dist/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+python_test() {
+ "${PYTHON}" TestBitVector/Test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/BitVector/Manifest b/dev-python/BitVector/Manifest
new file mode 100644
index 00000000000..d3171603230
--- /dev/null
+++ b/dev-python/BitVector/Manifest
@@ -0,0 +1 @@
+DIST BitVector-3.3.2.tar.gz 128784 SHA256 8d63d4410f345e6cb7ea236d0b15b5b4b775bcff3bc1409ba2a07da3c1341c83 SHA512 47cdfec67e83679b5777004f76d7b920481d65745595aeda2e07b091ba54b332b37d8a447344dbcbbc861cba6af042f0031fe77a57b6bae57e010d9b208e3426 WHIRLPOOL 6ac840d0c7f2cd8711e68c65d81c4530c993b598c2c86a363e730a1a040a9a011075fc217e8041137a4c22b635570ffc4209bdf8f2961e82ee5b4177774d6b54
diff --git a/dev-python/BitVector/metadata.xml b/dev-python/BitVector/metadata.xml
new file mode 100644
index 00000000000..bf0f41e4651
--- /dev/null
+++ b/dev-python/BitVector/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>
+ A pure-Python memory-efficient packed representation for bit arrays
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/Coffin/Coffin-0.3.8.ebuild b/dev-python/Coffin/Coffin-0.3.8.ebuild
new file mode 100644
index 00000000000..cfee55e95ed
--- /dev/null
+++ b/dev-python/Coffin/Coffin-0.3.8.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Jinja2 adapter for Django"
+HOMEPAGE="http://github.com/coffin/coffin"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_prepare_all() {
+ # Req'd to avoid file collisions
+ sed -e s":find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/Coffin/Coffin-2.0.1.ebuild b/dev-python/Coffin/Coffin-2.0.1.ebuild
new file mode 100644
index 00000000000..f05201ec9f9
--- /dev/null
+++ b/dev-python/Coffin/Coffin-2.0.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Jinja2 adapter for Django"
+HOMEPAGE="http://github.com/coffin/coffin"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_prepare_all() {
+ # Req'd to avoid file collisions
+ sed -e s":find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+# Tests attempt to import an abandonned module
diff --git a/dev-python/Coffin/Manifest b/dev-python/Coffin/Manifest
new file mode 100644
index 00000000000..0d48379a866
--- /dev/null
+++ b/dev-python/Coffin/Manifest
@@ -0,0 +1,2 @@
+DIST Coffin-0.3.8.tar.gz 35269 SHA256 be3e804ea1c740d8f09c0f811253eee4c6aeeb993455521cac6e95e1e4d6151b SHA512 e3e0b9855e14b7fc57cd164aa3ba50f84847eb8a324d4ceaf52513224d235889407c061d542a894b82d6cdc96fc378fd44856d46f471333017d7a6ac6427c7d3 WHIRLPOOL c8105e5900e0f07a461689ca0c7295bb483991ec86466f4e72b8e837631fe6135a5db9192598d1f763bbfff773a06d5b611e391620a9ac76f3313f475802d978
+DIST Coffin-2.0.1.tar.gz 9858 SHA256 b1cfb44b1ef7daabc7c607a937f85e4b89b63bd9536ee3b817461747a476a65c SHA512 e618c74a91f84e7f41411c8e34b2c97fad1a59bc5124f0f5b3439abf1b0c2972d5f59d4b71f49393e843cd588ec143c08d659e90d2cfd006d55b5244b5727ccc WHIRLPOOL a1c745eca498ac5e7877c0ce20433d22c647d9e419b5269eb1a167d9ab478c068acfd6d2d59f485e8cb2f2fe7b440aa84c34ccefdc7595fb43a9d320e08d12cd
diff --git a/dev-python/Coffin/metadata.xml b/dev-python/Coffin/metadata.xml
new file mode 100644
index 00000000000..69bd5d0783f
--- /dev/null
+++ b/dev-python/Coffin/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Coffin</remote-id>
+ <remote-id type="github">coffin/coffin</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/CoverageTestRunner/CoverageTestRunner-1.10.ebuild b/dev-python/CoverageTestRunner/CoverageTestRunner-1.10.ebuild
new file mode 100644
index 00000000000..fa8e6076995
--- /dev/null
+++ b/dev-python/CoverageTestRunner/CoverageTestRunner-1.10.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 python-r1
+
+MY_PN="python-coverage-test-runner"
+DESCRIPTION="fail Python program unit tests unless they test everything"
+HOMEPAGE="http://liw.fi/coverage-test-runner/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/${MY_PN}/${MY_PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="${PYTHON_DEPS}
+ dev-python/coverage"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/CoverageTestRunner/CoverageTestRunner-1.9-r1.ebuild b/dev-python/CoverageTestRunner/CoverageTestRunner-1.9-r1.ebuild
new file mode 100644
index 00000000000..340ad75a99f
--- /dev/null
+++ b/dev-python/CoverageTestRunner/CoverageTestRunner-1.9-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 python-r1
+
+MY_PN="python-coverage-test-runner"
+DESCRIPTION="fail Python program unit tests unless they test everything"
+HOMEPAGE="http://liw.fi/coverage-test-runner/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/${MY_PN}/${MY_PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="${PYTHON_DEPS}
+ dev-python/coverage"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/CoverageTestRunner/Manifest b/dev-python/CoverageTestRunner/Manifest
new file mode 100644
index 00000000000..63e1ff54e6a
--- /dev/null
+++ b/dev-python/CoverageTestRunner/Manifest
@@ -0,0 +1,2 @@
+DIST python-coverage-test-runner_1.10.orig.tar.gz 19149 SHA256 550fbffe220007608e6aa41904134321d2fb32af11078cc280fe39d84b251300 SHA512 041896468863d1f06a932da4a4113d9afe952ca88004feb3ac872cc8352a94e5f4b5d7444f8b5dce49e5dc3ccfc727553d540b9865e8bf00724ae312ff1be2e6 WHIRLPOOL 3d11391e7624e8e3743d3d01cfb915523361f9cae3dbae1709eb45b6c467f4bbbbe83eacb7f093e74b25f82c2ce6e982bf921c748b73a233e96bc19cd99a4eae
+DIST python-coverage-test-runner_1.9.orig.tar.gz 19175 SHA256 d3bf062e6f7797a71e8958f2cf1b879e2037c0b2cb9b4deb73c769bafe295437 SHA512 7793fc4eed0eb92a53a4dd1662a92dc131ebefe1194196f9a8e022d8d63da779aa8f978c056e981629324465f919869b5dc31cc9b31fe5e3173f1ac3f3f5c83e WHIRLPOOL f54e309fd0526740c8b580ac2d1eea4858af313564fa59ce92b812f771199a5b6b8dc4b36d235554939db45d18d4671287e1ab7bace37fdce136c0c52c215931
diff --git a/dev-python/CoverageTestRunner/metadata.xml b/dev-python/CoverageTestRunner/metadata.xml
new file mode 100644
index 00000000000..ea7bd021a21
--- /dev/null
+++ b/dev-python/CoverageTestRunner/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mschiff@gentoo.org</email>
+ <name>Marc Schiffbauer</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/Djblets/Djblets-0.7.31.ebuild b/dev-python/Djblets/Djblets-0.7.31.ebuild
new file mode 100644
index 00000000000..1737f53fd26
--- /dev/null
+++ b/dev-python/Djblets/Djblets-0.7.31.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator
+
+DESCRIPTION="A collection of useful extensions for Django"
+HOMEPAGE="http://github.com/djblets/djblets"
+SRC_URI="http://downloads.reviewboard.org/releases/${PN}/$(get_version_component_range 1-2)/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/django-1.4.13[${PYTHON_USEDEP}]
+ =dev-python/django-1.4*[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ >=dev-python/django-pipeline-1.2.24[${PYTHON_USEDEP}]
+ >=dev-python/feedparser-5.1.2[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/django-evolution[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # use pillow, not PIL
+ sed -e 's/PIL/pillow/' -i setup.py Djblets.egg-info/requires.txt || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/Djblets/Manifest b/dev-python/Djblets/Manifest
new file mode 100644
index 00000000000..732f56a82c8
--- /dev/null
+++ b/dev-python/Djblets/Manifest
@@ -0,0 +1 @@
+DIST Djblets-0.7.31.tar.gz 430369 SHA256 c6bdb1fed30ec1c77a8b07d670a170ecc55404363adf09b2860903a328909e12 SHA512 d0defd2a6e0caecd807e156d968b0128266d60aaf336303ec9ea3e01be1f01455bc763da02d639e677f1122f8eda8e039054ae16222879392eff332ec7b49969 WHIRLPOOL 7063209e5d3e55d89d4cc6fcfea584e24712d2427870448141eefedd29a94af0f4eb41df6097962d513ba09fa56b7cb1a1e5cf17a13646a2c3f046407b4f9977
diff --git a/dev-python/Djblets/metadata.xml b/dev-python/Djblets/metadata.xml
new file mode 100644
index 00000000000..ef11b595c50
--- /dev/null
+++ b/dev-python/Djblets/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">djblets/djblets</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/Flask-KVSession/Flask-KVSession-0.6.1.ebuild b/dev-python/Flask-KVSession/Flask-KVSession-0.6.1.ebuild
new file mode 100644
index 00000000000..2ce175e7c35
--- /dev/null
+++ b/dev-python/Flask-KVSession/Flask-KVSession-0.6.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Transparent server-side session support for flask"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-KVSession https://github.com/mbr/flask-kvsession"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/simplekv-0.9.1[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ >=dev-python/itsdangerous-0.20[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/Flask-KVSession/Flask-KVSession-0.6.2.ebuild b/dev-python/Flask-KVSession/Flask-KVSession-0.6.2.ebuild
new file mode 100644
index 00000000000..6eb4c965cd0
--- /dev/null
+++ b/dev-python/Flask-KVSession/Flask-KVSession-0.6.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Transparent server-side session support for flask"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-KVSession https://github.com/mbr/flask-kvsession"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/simplekv-0.9.1[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ >=dev-python/itsdangerous-0.20[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/Flask-KVSession/Manifest b/dev-python/Flask-KVSession/Manifest
new file mode 100644
index 00000000000..0482ceaa704
--- /dev/null
+++ b/dev-python/Flask-KVSession/Manifest
@@ -0,0 +1,2 @@
+DIST Flask-KVSession-0.6.1.tar.gz 37725 SHA256 19a5d44aca843999f5f6f87a618dab44272db227a959867a4c6c64ae3a743a55 SHA512 a0de01d546996c0f09d1cfa2c537fb3868717bcfcdbd3f3f93c2102349bdd1e9fd00d1efcf1c3a80f9cddf173ed43781774e75c7cf1114a1aff549c1f98160da WHIRLPOOL 8f08cc60e26699352199fb479cc6eac7ac0c224d2cee5089dc2d45cfb29380842444bd90662175357f35ee0414c8d418d3c8f172ce303602499946250f80f3e4
+DIST Flask-KVSession-0.6.2.tar.gz 38037 SHA256 9c0ee93fae089c45baeda0a3fd3ae32a96ee81c34996017749f8b3fd06df936c SHA512 11cbb4ee74dc2a1b44dd1f91729dfb65fc9beb9d93c86ce06a861eba8bd87139897a9f6dca0b5f7f8249034b5eeb3c93327e956b4ea34cd409adfc889b75e33b WHIRLPOOL 2f1363edbb93fbbe33b4e1e08247a717ac45c4cad50554e8ecf824590376e77aa645cfb5e6e37d200cd561db69840d0f986797f519c74f4adf0dc562ea6db3ea
diff --git a/dev-python/Flask-KVSession/metadata.xml b/dev-python/Flask-KVSession/metadata.xml
new file mode 100644
index 00000000000..c4f1b66a1a3
--- /dev/null
+++ b/dev-python/Flask-KVSession/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aballier@gentoo.org</email>
+ <name>Alexis Ballier</name>
+ <description>Python team can take the package if they wish.</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Flask-KVSession</remote-id>
+ <remote-id type="github">mbr/flask-kvsession</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/GridDataFormats/GridDataFormats-0.2.2.ebuild b/dev-python/GridDataFormats/GridDataFormats-0.2.2.ebuild
new file mode 100644
index 00000000000..e445b9bc2db
--- /dev/null
+++ b/dev-python/GridDataFormats/GridDataFormats-0.2.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Reading and writing of data on regular grids in Python"
+HOMEPAGE="https://pypi.python.org/pypi/GridDataFormats"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ >=dev-python/numpy-1.0.3[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]"
diff --git a/dev-python/GridDataFormats/GridDataFormats-0.2.5.ebuild b/dev-python/GridDataFormats/GridDataFormats-0.2.5.ebuild
new file mode 100644
index 00000000000..68462ade6c1
--- /dev/null
+++ b/dev-python/GridDataFormats/GridDataFormats-0.2.5.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Reading and writing of data on regular grids in Python"
+HOMEPAGE="https://pypi.python.org/pypi/GridDataFormats https://github.com/MDAnalysis/GridDataFormats"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ >=dev-python/numpy-1.0.3[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]"
diff --git a/dev-python/GridDataFormats/Manifest b/dev-python/GridDataFormats/Manifest
new file mode 100644
index 00000000000..8f1f30cc523
--- /dev/null
+++ b/dev-python/GridDataFormats/Manifest
@@ -0,0 +1,2 @@
+DIST GridDataFormats-0.2.2.tar.gz 42363 SHA256 8305897bb291b5cd4e6513e54225f149fab2f5ad13b3437dff77aa6d6c02a383 SHA512 671ed6da8a4447f90f6a95b8fdec53ba793134bbe0adac0b12d97b66ea7e36754a14b64a21926438e8c901d7e9171e56a82fab8d8989fa09fa6bae512bbac229 WHIRLPOOL 2a2bdb3267faed86264297bb5933af7b2d3308587341c905bc091d214dfa9d11bdce3b9efc7c13baae234a291d93374f38326bd8585c75c0de0fe8848414c17b
+DIST GridDataFormats-0.2.5.tar.gz 40725 SHA256 f13d8412433d625fa8dfb17152f3593ec5364f771d2157a387f1abda9d1eeefb SHA512 aa16f9046855417f9878b8f7d59fd7ec96025f7c4696c6025fad520f55a5684881966ba3e8a6189c746dcfb57ac969ed62acdcc38d758fe6bea1b20d45b8fa85 WHIRLPOOL a80f19025c01a76f937d636d4d18dad1604a6a60f7cac27aacec5d6d0f81cbd077d01e702dffeae2e8429746465c185def42380a967cc9c08c9049fb065e01f0
diff --git a/dev-python/GridDataFormats/metadata.xml b/dev-python/GridDataFormats/metadata.xml
new file mode 100644
index 00000000000..f73931c612f
--- /dev/null
+++ b/dev-python/GridDataFormats/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">GridDataFormats</remote-id>
+ <remote-id type="github">MDAnalysis/GridDataFormats</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/Kivy/Kivy-1.8.0.ebuild b/dev-python/Kivy/Kivy-1.8.0.ebuild
new file mode 100644
index 00000000000..af6192ab722
--- /dev/null
+++ b/dev-python/Kivy/Kivy-1.8.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A software library for rapid development of hardware-accelerated multitouch applications"
+HOMEPAGE="http://kivy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="cairo camera doc examples garden gstreamer spell"
+
+RDEPEND="
+ dev-python/pygame[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ cairo? ( dev-python/pycairo[${PYTHON_USEDEP}] )
+ camera? ( media-libs/opencv )
+ garden? ( dev-python/kivy-garden[${PYTHON_USEDEP}] )
+ gstreamer? ( dev-python/gst-python:1.0[${PYTHON_USEDEP}] )
+ spell? ( dev-python/pyenchant[${PYTHON_USEDEP}] )
+ "
+RDEPEND="${DEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -e '/data_files=/d' -i "${S}/setup.py" || die
+ epatch "${FILESDIR}/cython-fixes.patch"
+ if has_version '>=dev-python/cython-0.22' ; then
+ epatch "${FILESDIR}/cython-0.22.patch"
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ use doc && DOCS=( doc/sources/. )
+ use examples && EXAMPLES=( examples )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/Kivy/Kivy-1.9.0.ebuild b/dev-python/Kivy/Kivy-1.9.0.ebuild
new file mode 100644
index 00000000000..9dbec84d0a6
--- /dev/null
+++ b/dev-python/Kivy/Kivy-1.9.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A software library for rapid development of hardware-accelerated multitouch applications"
+HOMEPAGE="http://kivy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="cairo camera doc examples garden gstreamer spell"
+
+RDEPEND="
+ dev-python/pygame[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ cairo? ( dev-python/pycairo[${PYTHON_USEDEP}] )
+ camera? ( media-libs/opencv )
+ garden? ( dev-python/kivy-garden[${PYTHON_USEDEP}] )
+ gstreamer? ( dev-python/gst-python:1.0[${PYTHON_USEDEP}] )
+ spell? ( dev-python/pyenchant[${PYTHON_USEDEP}] )
+ "
+DEPEND="${RDEPEND}
+ <=dev-python/cython-0.22[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+PATCHES=( "${FILESDIR}"/${P}-cython-0.22-backport.patch )
+
+python_prepare_all() {
+ sed -e '/data_files=/d' -i "${S}/setup.py" || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ use doc && DOCS=( doc/sources/. )
+ use examples && EXAMPLES=( examples )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/Kivy/Manifest b/dev-python/Kivy/Manifest
new file mode 100644
index 00000000000..f81ab10cd86
--- /dev/null
+++ b/dev-python/Kivy/Manifest
@@ -0,0 +1,2 @@
+DIST Kivy-1.8.0.tar.gz 14655888 SHA256 1bb5add88132c902ed746e7624034ecaab49e61f3fbbfde231604e887e6fb324 SHA512 e7057b008cceec9513961ddc3d4aaef2aa1a10de9c2de09ad82bd90ca88300047374e5f8c982cb018712fb0465c03208108c3110887ef383c00a45ee9e5bc81d WHIRLPOOL a6530edebcae34aede981c2f0db37a26a9378e148a073dc1396096b4db04ebdef0f6d96de4222383a5e2d84858bdf10383611751f9bf5ae625eafc67d1cf702f
+DIST Kivy-1.9.0.tar.gz 16178808 SHA256 b828617f858963f7873f5c81bb8824ca1dfa265e7811fce03599e2ba7200ffa0 SHA512 e0efc27f8ae070f5748570ee9224220791d32e931bbaf0bad5ddee894cf1d0f9ded5eebcc54d3b666491edaab0316923311f5e0cc7b1e46929d87ea3bec87f21 WHIRLPOOL c57c696752c88d3c8643e126180aa00b864df45bad0de4e6456143fd0f1486085a258a787ec2e4017b982004dd5a1212b11dbcb352f1f72b77591fa5fd9c934e
diff --git a/dev-python/Kivy/files/Kivy-1.9.0-cython-0.22-backport.patch b/dev-python/Kivy/files/Kivy-1.9.0-cython-0.22-backport.patch
new file mode 100644
index 00000000000..cea6fd2501d
--- /dev/null
+++ b/dev-python/Kivy/files/Kivy-1.9.0-cython-0.22-backport.patch
@@ -0,0 +1,713 @@
+From 124fe6c7f08defb36305f6aa0bba203ab645ab8a Mon Sep 17 00:00:00 2001
+From: Alexander Taylor <alexanderjohntaylor@gmail.com>
+Date: Sat, 18 Apr 2015 17:03:03 +0100
+Subject: [PATCH] Changed 'except *' to 'except -1' for cython 0.22
+
+---
+ kivy/graphics/context_instructions.pxd | 22 +++++++-------
+ kivy/graphics/context_instructions.pyx | 8 ++---
+ kivy/graphics/fbo.pxd | 2 +-
+ kivy/graphics/fbo.pyx | 3 +-
+ kivy/graphics/gl_instructions.pyx | 8 +++--
+ kivy/graphics/instructions.pxd | 30 +++++++++---------
+ kivy/graphics/instructions.pyx | 49 ++++++++++++++++++------------
+ kivy/graphics/shader.pxd | 12 ++++----
+ kivy/graphics/shader.pyx | 25 +++++++++------
+ kivy/graphics/stencil_instructions.pxd | 8 ++---
+ kivy/graphics/stencil_instructions.pyx | 14 ++++++---
+ kivy/graphics/vertex_instructions_line.pxi | 9 +++---
+ setup.py | 8 ++---
+ 13 files changed, 110 insertions(+), 88 deletions(-)
+
+diff --git a/kivy/graphics/context_instructions.pxd b/kivy/graphics/context_instructions.pxd
+index f6562b1..f8027e2 100644
+--- a/kivy/graphics/context_instructions.pxd
++++ b/kivy/graphics/context_instructions.pxd
+@@ -16,39 +16,39 @@ cdef class PopState(ContextInstruction):
+ pass
+
+ cdef class LineWidth(ContextInstruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+ cdef class Color(ContextInstruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+ cdef class BindTexture(ContextInstruction):
+ cdef int _index
+ cdef object _source
+ cdef Texture _texture
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+
+ cdef class LoadIdentity(ContextInstruction):
+ pass
+
+ cdef class PushMatrix(ContextInstruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+ cdef class PopMatrix(ContextInstruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+ cdef class ApplyContextMatrix(ContextInstruction):
+ cdef object _target_stack
+ cdef object _source_stack
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+ cdef class UpdateNormalMatrix(ContextInstruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+ cdef class MatrixInstruction(ContextInstruction):
+ cdef object _stack
+ cdef Matrix _matrix
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+ cdef class Transform(MatrixInstruction):
+ cpdef transform(self, Matrix trans)
+@@ -61,17 +61,17 @@ cdef class Rotate(Transform):
+ cdef float _angle
+ cdef tuple _axis
+ cdef tuple _origin
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ cdef void compute(self)
+
+ cdef class Scale(Transform):
+ cdef tuple _origin
+ cdef float _x, _y, _z
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ cdef set_scale(self, double x, double y, double z)
+
+ cdef class Translate(Transform):
+ cdef double _x, _y, _z
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ cdef set_translate(self, double x, double y, double z)
+
+diff --git a/kivy/graphics/context_instructions.pyx b/kivy/graphics/context_instructions.pyx
+index 2107a2c..189656a 100644
+--- a/kivy/graphics/context_instructions.pyx
++++ b/kivy/graphics/context_instructions.pyx
+@@ -344,7 +344,7 @@ cdef class BindTexture(ContextInstruction):
+
+ self.index = kwargs.get('index', 0)
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef RenderContext context = self.get_context()
+ context.set_texture(self._index, self._texture)
+
+@@ -458,7 +458,7 @@ cdef class ApplyContextMatrix(ContextInstruction):
+ self.target_stack = kwargs.get('target_stack', 'modelview_mat')
+ self.source_stack = kwargs.get('source_stack', 'modelview_mat')
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef RenderContext context = self.get_context()
+ m = context.get_state(self._target_stack)
+ m = m.multiply(context.get_state(self._source_stack))
+@@ -494,7 +494,7 @@ cdef class UpdateNormalMatrix(ContextInstruction):
+
+ .. versionadded:: 1.6.0
+ '''
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef RenderContext context = self.get_context()
+ mvm = context.get_state('modelview_mat')
+ context.set_state('normal_mat', mvm.normal_matrix())
+@@ -509,7 +509,7 @@ cdef class MatrixInstruction(ContextInstruction):
+ self.stack = kwargs.get('stack', 'modelview_mat')
+ self._matrix = None
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ '''Apply the matrix of this instance to the
+ context model view matrix.
+ '''
+diff --git a/kivy/graphics/fbo.pxd b/kivy/graphics/fbo.pxd
+index 31b281a..2c202dd 100644
+--- a/kivy/graphics/fbo.pxd
++++ b/kivy/graphics/fbo.pxd
+@@ -24,7 +24,7 @@ cdef class Fbo(RenderContext):
+
+ cdef void create_fbo(self)
+ cdef void delete_fbo(self)
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ cdef void raise_exception(self, str message, int status=?)
+ cdef str resolve_status(self, int status)
+ cdef void reload(self)
+diff --git a/kivy/graphics/fbo.pyx b/kivy/graphics/fbo.pyx
+index 901d600..d7f6c09 100644
+--- a/kivy/graphics/fbo.pyx
++++ b/kivy/graphics/fbo.pyx
+@@ -323,12 +323,13 @@ cdef class Fbo(RenderContext):
+ else:
+ glClear(GL_COLOR_BUFFER_BIT)
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ if self.flags & GI_NEEDS_UPDATE:
+ self.bind()
+ RenderContext.apply(self)
+ self.release()
+ self.flag_update_done()
++ return 0
+
+ cdef void reload(self):
+ # recreate the framebuffer, without deleting it. the deletion is not
+diff --git a/kivy/graphics/gl_instructions.pyx b/kivy/graphics/gl_instructions.pyx
+index afe3404..78b0fe5 100644
+--- a/kivy/graphics/gl_instructions.pyx
++++ b/kivy/graphics/gl_instructions.pyx
+@@ -50,8 +50,9 @@ cdef class ClearColor(Instruction):
+ self.b = b
+ self.a = a
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ glClearColor(self.r, self.g, self.b, self.a)
++ return 0
+
+ property rgba:
+ '''RGBA color used for the clear color, a list of 4 values in the 0-1
+@@ -136,7 +137,7 @@ cdef class ClearBuffers(Instruction):
+ self.clear_stencil = int(kwargs.get('clear_stencil', 0))
+ self.clear_depth = int(kwargs.get('clear_depth', 0))
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef GLbitfield mask = 0
+ if self.clear_color:
+ mask |= GL_COLOR_BUFFER_BIT
+@@ -145,7 +146,8 @@ cdef class ClearBuffers(Instruction):
+ if self.clear_depth:
+ mask |= GL_DEPTH_BUFFER_BIT
+ glClear(mask)
+-
++ return 0
++
+ property clear_color:
+ '''If True, the color buffer will be cleared.
+ '''
+diff --git a/kivy/graphics/instructions.pxd b/kivy/graphics/instructions.pxd
+index 9008aef..09b0fd6 100644
+--- a/kivy/graphics/instructions.pxd
++++ b/kivy/graphics/instructions.pxd
+@@ -26,7 +26,7 @@ cdef class Instruction(ObjectWithUid):
+ cdef object __weakref__
+ cdef object __proxy_ref
+
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ IF DEBUG:
+ cdef int flag_update(self, int do_parent=?, list _instrs=?) except -1
+ ELSE:
+@@ -58,9 +58,9 @@ cdef class ContextInstruction(Instruction):
+ cdef list context_pop
+
+ cdef RenderContext get_context(self)
+- cdef void set_state(self, str name, value) except *
+- cdef void push_state(self, str name) except *
+- cdef void pop_state(self, str name) except *
++ cdef int set_state(self, str name, value) except -1
++ cdef int push_state(self, str name) except -1
++ cdef int pop_state(self, str name) except -1
+
+
+ from context_instructions cimport BindTexture
+@@ -80,8 +80,8 @@ cdef class Callback(Instruction):
+ cdef Shader _shader
+ cdef object func
+ cdef int _reset_context
+- cdef void apply(self)
+- cdef void enter(self)
++ cdef int apply(self) except -1
++ cdef int enter(self) except -1
+
+
+
+@@ -99,7 +99,7 @@ cdef class Canvas(CanvasBase):
+ cpdef add(self, Instruction c)
+ cpdef remove(self, Instruction c)
+ cpdef draw(self)
+- cdef void apply(self)
++ cdef int apply(self) except -1
+
+
+ cdef class RenderContext(Canvas):
+@@ -113,14 +113,14 @@ cdef class RenderContext(Canvas):
+ cdef void set_texture(self, int index, Texture texture)
+ cdef void set_state(self, str name, value, int apply_now=?)
+ cdef get_state(self, str name)
+- cdef void set_states(self, dict states) except *
+- cdef void push_state(self, str name) except *
+- cdef void push_states(self, list names) except *
+- cdef void pop_state(self, str name) except *
+- cdef void pop_states(self, list names) except *
+- cdef void enter(self) except *
+- cdef void leave(self) except *
+- cdef void apply(self) except *
++ cdef int set_states(self, dict states) except -1
++ cdef int push_state(self, str name) except -1
++ cdef int push_states(self, list names) except -1
++ cdef int pop_state(self, str name) except -1
++ cdef int pop_states(self, list names) except -1
++ cdef int enter(self) except -1
++ cdef int leave(self) except -1
++ cdef int apply(self) except -1
+ cpdef draw(self)
+ cdef void reload(self)
+
+diff --git a/kivy/graphics/instructions.pyx b/kivy/graphics/instructions.pyx
+index 2b5e081..5249556 100644
+--- a/kivy/graphics/instructions.pyx
++++ b/kivy/graphics/instructions.pyx
+@@ -57,8 +57,8 @@ cdef class Instruction(ObjectWithUid):
+ if self.parent:
+ self.parent.add(self)
+
+- cdef void apply(self):
+- pass
++ cdef int apply(self) except -1:
++ return 0
+
+ IF DEBUG:
+ cdef int flag_update(self, int do_parent=1, list _instrs=None) except -1:
+@@ -145,7 +145,7 @@ cdef class InstructionGroup(Instruction):
+ else:
+ self.compiler = GraphicsCompiler()
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef Instruction c
+ cdef list children
+ if self.compiler is not None:
+@@ -161,6 +161,7 @@ cdef class InstructionGroup(Instruction):
+ else:
+ for c in self.children:
+ c.apply()
++ return 0
+
+ cdef void build(self):
+ self.compiled_children = self.compiler.compile(self)
+@@ -246,7 +247,7 @@ cdef class ContextInstruction(Instruction):
+ cdef RenderContext context = getActiveContext()
+ return context
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef RenderContext context = self.get_context()
+ if self.context_push:
+ context.push_states(self.context_push)
+@@ -254,20 +255,20 @@ cdef class ContextInstruction(Instruction):
+ context.set_states(self.context_state)
+ if self.context_pop:
+ context.pop_states(self.context_pop)
++ return 0
+
+- cdef void set_state(self, str name, value):
++ cdef int set_state(self, str name, value) except -1:
+ self.context_state[name] = value
+ self.flag_update()
+
+- cdef void push_state(self, str name):
++ cdef int push_state(self, str name) except -1:
+ self.context_push.append(name)
+ self.flag_update()
+
+- cdef void pop_state(self, str name):
++ cdef int pop_state(self, str name) except -1:
+ self.context_pop.append(name)
+ self.flag_update()
+
+-
+ cdef class VertexInstruction(Instruction):
+ '''The VertexInstruction class is the base for all graphics instructions
+ that have a direct visual representation on the canvas, such as Rectangles,
+@@ -400,11 +401,12 @@ cdef class VertexInstruction(Instruction):
+ cdef void build(self):
+ pass
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ if self.flags & GI_NEEDS_UPDATE:
+ self.build()
+ self.flag_update_done()
+ self.batch.draw()
++ return 0
+
+
+ cdef class Callback(Instruction):
+@@ -466,7 +468,7 @@ cdef class Callback(Instruction):
+ '''
+ self.flag_update()
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef RenderContext rcx
+ cdef Context ctx
+ cdef Shader shader
+@@ -512,9 +514,11 @@ cdef class Callback(Instruction):
+ rcx.set_texture(index, texture)
+
+ reset_gl_context()
++ return 0
+
+- cdef void enter(self):
++ cdef int enter(self) except -1:
+ self._shader.use()
++ return 0
+
+ property reset_context:
+ '''Set this to True if you want to reset the OpenGL context for Kivy
+@@ -597,7 +601,7 @@ cdef class Canvas(CanvasBase):
+ '''
+ self.apply()
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef float opacity = self._opacity
+ cdef float rc_opacity
+ cdef RenderContext rc
+@@ -609,6 +613,7 @@ cdef class Canvas(CanvasBase):
+ InstructionGroup.apply(self)
+ if opacity != 1.0:
+ rc.pop_state('opacity')
++ return 0
+
+ cpdef add(self, Instruction c):
+ # the after group must remain the last one.
+@@ -786,29 +791,29 @@ cdef class RenderContext(Canvas):
+ cdef get_state(self, str name):
+ return self.state_stacks[name][-1]
+
+- cdef void set_states(self, dict states):
++ cdef int set_states(self, dict states) except -1:
+ cdef str name
+ for name, value in states.iteritems():
+ self.set_state(name, value)
+
+- cdef void push_state(self, str name):
++ cdef int push_state(self, str name) except -1:
+ stack = self.state_stacks[name]
+ stack.append(stack[-1])
+ self.flag_update()
+
+- cdef void push_states(self, list names):
++ cdef int push_states(self, list names) except -1:
+ cdef str name
+ for name in names:
+ self.push_state(name)
+
+- cdef void pop_state(self, str name):
++ cdef int pop_state(self, str name) except -1:
+ stack = self.state_stacks[name]
+ oldvalue = stack.pop()
+ if oldvalue != stack[-1]:
+ self.set_state(name, stack[-1])
+ self.flag_update()
+
+- cdef void pop_states(self, list names):
++ cdef int pop_states(self, list names) except -1:
+ cdef str name
+ for name in names:
+ self.pop_state(name)
+@@ -828,13 +833,15 @@ cdef class RenderContext(Canvas):
+ texture.bind()
+ self.flag_update()
+
+- cdef void enter(self):
++ cdef int enter(self) except -1:
+ self._shader.use()
++ return 0
+
+- cdef void leave(self):
++ cdef int leave(self) except -1:
+ self._shader.stop()
++ return 0
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ cdef list keys
+ if PY2:
+ keys = self.state_stacks.keys()
+@@ -857,6 +864,8 @@ cdef class RenderContext(Canvas):
+ popActiveContext()
+ self.flag_update_done()
+
++ return 0
++
+ cdef void reload(self):
+ pushActiveContext(self)
+ reset_gl_context()
+diff --git a/kivy/graphics/shader.pxd b/kivy/graphics/shader.pxd
+index c418207..1058ff4 100644
+--- a/kivy/graphics/shader.pxd
++++ b/kivy/graphics/shader.pxd
+@@ -26,14 +26,14 @@ cdef class Shader:
+
+ cdef void use(self)
+ cdef void stop(self)
+- cdef void set_uniform(self, str name, value) except *
+- cdef void upload_uniform(self, str name, value) except *
++ cdef int set_uniform(self, str name, value) except -1
++ cdef int upload_uniform(self, str name, value) except -1
+ cdef void upload_uniform_matrix(self, int loc, Matrix value)
+ cdef int get_uniform_loc(self, str name) except *
+- cdef void build(self) except *
+- cdef void build_vertex(self, int link=*) except *
+- cdef void build_fragment(self, int link=*) except *
+- cdef void link_program(self) except *
++ cdef int build(self) except -1
++ cdef int build_vertex(self, int link=*) except -1
++ cdef int build_fragment(self, int link=*) except -1
++ cdef int link_program(self) except -1
+ cdef int is_linked(self)
+ cdef ShaderSource compile_shader(self, str source, int shadertype)
+ cdef get_program_log(self, shader)
+diff --git a/kivy/graphics/shader.pyx b/kivy/graphics/shader.pyx
+index acda2bf..edb1c5a 100644
+--- a/kivy/graphics/shader.pyx
++++ b/kivy/graphics/shader.pyx
+@@ -230,13 +230,14 @@ cdef class Shader:
+ '''
+ glUseProgram(0)
+
+- cdef void set_uniform(self, str name, value):
++ cdef int set_uniform(self, str name, value) except -1:
+ if name in self.uniform_values and self.uniform_values[name] == value:
+- return
++ return 0
+ self.uniform_values[name] = value
+ self.upload_uniform(name, value)
++ return 0
+
+- cdef void upload_uniform(self, str name, value):
++ cdef int upload_uniform(self, str name, value) except -1:
+ '''Pass a uniform variable to the shader.
+ '''
+ cdef long vec_size, index, x, y
+@@ -255,7 +256,7 @@ cdef class Shader:
+ #Logger.debug('Shader: uploading uniform %s (loc=%d, value=%r)' % (name, loc, value))
+ if loc == -1:
+ #Logger.debug('Shader: -> ignored')
+- return
++ return 0
+ #Logger.debug('Shader: -> (gl:%d) %s' % (glGetError(), str(value)))
+
+ if val_type is Matrix:
+@@ -414,6 +415,7 @@ cdef class Shader:
+ free(int_list)
+ else:
+ raise Exception('for <%s>, type not handled <%s>' % (name, val_type))
++ return 0
+
+ cdef void upload_uniform_matrix(self, int loc, Matrix value):
+ cdef GLfloat mat[16]
+@@ -421,7 +423,7 @@ cdef class Shader:
+ mat[x] = <GLfloat>value.mat[x]
+ glUniformMatrix4fv(loc, 1, False, mat)
+
+- cdef int get_uniform_loc(self, str name):
++ cdef int get_uniform_loc(self, str name) except *:
+ cdef bytes c_name = name.encode('utf-8')
+ cdef int loc = glGetUniformLocation(self.program, c_name)
+ self.uniform_locations[name] = loc
+@@ -462,11 +464,12 @@ cdef class Shader:
+ # save for the next run.
+ self._current_vertex_format = vertex_format
+
+- cdef void build(self):
++ cdef int build(self) except -1:
+ self.build_vertex()
+ self.build_fragment()
++ return 0
+
+- cdef void build_vertex(self, int link=1):
++ cdef int build_vertex(self, int link=1) except -1:
+ if self.vertex_shader is not None:
+ glDetachShader(self.program, self.vertex_shader.shader)
+ self.vertex_shader = None
+@@ -475,8 +478,9 @@ cdef class Shader:
+ glAttachShader(self.program, self.vertex_shader.shader)
+ if link:
+ self.link_program()
++ return 0
+
+- cdef void build_fragment(self, int link=1):
++ cdef int build_fragment(self, int link=1) except -1:
+ if self.fragment_shader is not None:
+ glDetachShader(self.program, self.fragment_shader.shader)
+ self.fragment_shader = None
+@@ -486,9 +490,9 @@ cdef class Shader:
+ if link:
+ self.link_program()
+
+- cdef void link_program(self):
++ cdef int link_program(self) except -1:
+ if self.vertex_shader is None or self.fragment_shader is None:
+- return
++ return 0
+
+ # XXX to ensure that shader is ok, read error state right now.
+ glGetError()
+@@ -503,6 +507,7 @@ cdef class Shader:
+ self._success = 0
+ raise Exception('Shader didnt link, check info log.')
+ self._success = 1
++ return 0
+
+ cdef int is_linked(self):
+ cdef GLint result = 0
+diff --git a/kivy/graphics/stencil_instructions.pxd b/kivy/graphics/stencil_instructions.pxd
+index 1cf556e..4d33c44 100644
+--- a/kivy/graphics/stencil_instructions.pxd
++++ b/kivy/graphics/stencil_instructions.pxd
+@@ -1,11 +1,11 @@
+ from kivy.graphics.instructions cimport Instruction
+
+ cdef class StencilPush(Instruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ cdef class StencilPop(Instruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ cdef class StencilUse(Instruction):
+ cdef unsigned int _op
+- cdef void apply(self)
++ cdef int apply(self) except -1
+ cdef class StencilUnUse(Instruction):
+- cdef void apply(self)
++ cdef int apply(self) except -1
+diff --git a/kivy/graphics/stencil_instructions.pyx b/kivy/graphics/stencil_instructions.pyx
+index 469a239..67cc709 100644
+--- a/kivy/graphics/stencil_instructions.pyx
++++ b/kivy/graphics/stencil_instructions.pyx
+@@ -126,7 +126,7 @@ cdef class StencilPush(Instruction):
+ '''Push the stencil stack. See the module documentation for more
+ information.
+ '''
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ global _stencil_level, _stencil_in_push
+ if _stencil_in_push:
+ raise Exception('Cannot use StencilPush inside another '
+@@ -146,11 +146,12 @@ cdef class StencilPush(Instruction):
+ glStencilFunc(GL_ALWAYS, 0, 0)
+ glStencilOp(GL_INCR, GL_INCR, GL_INCR)
+ glColorMask(0, 0, 0, 0)
++ return 0
+
+ cdef class StencilPop(Instruction):
+ '''Pop the stencil stack. See the module documentation for more information.
+ '''
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ global _stencil_level, _stencil_in_push
+ if _stencil_level == 0:
+ raise Exception('Too much StencilPop (stack underflow)')
+@@ -159,10 +160,11 @@ cdef class StencilPop(Instruction):
+ glColorMask(1, 1, 1, 1)
+ if _stencil_level == 0:
+ glDisable(GL_STENCIL_TEST)
+- return
++ return 0
+ # reset for previous
+ glStencilFunc(GL_EQUAL, _stencil_level, 0xff)
+ glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP)
++ return 0
+
+
+ cdef class StencilUse(Instruction):
+@@ -176,12 +178,13 @@ cdef class StencilUse(Instruction):
+ else:
+ self._op = GL_EQUAL
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ global _stencil_in_push
+ _stencil_in_push = 0
+ glColorMask(1, 1, 1, 1)
+ glStencilFunc(self._op, _stencil_level, 0xff)
+ glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP)
++ return 0
+
+ property func_op:
+ '''Determine the stencil operation to use for glStencilFunc(). Can be
+@@ -207,7 +210,8 @@ cdef class StencilUse(Instruction):
+ cdef class StencilUnUse(Instruction):
+ '''Use current stencil buffer to unset the mask.
+ '''
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ glStencilFunc(GL_ALWAYS, 0, 0)
+ glStencilOp(GL_DECR, GL_DECR, GL_DECR)
+ glColorMask(0, 0, 0, 0)
++ return 0
+diff --git a/kivy/graphics/vertex_instructions_line.pxi b/kivy/graphics/vertex_instructions_line.pxi
+index b074a22..0c13132 100644
+--- a/kivy/graphics/vertex_instructions_line.pxi
++++ b/kivy/graphics/vertex_instructions_line.pxi
+@@ -174,10 +174,10 @@ cdef class Line(VertexInstruction):
+ self._stencil_use = StencilUse(op='lequal')
+ self._stencil_unuse = StencilUnUse()
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ if self._width == 1.:
+ VertexInstruction.apply(self)
+- return
++ return 0
+
+ cdef double alpha = getActiveContext()['color'][-1]
+ self._use_stencil = alpha < 1
+@@ -195,6 +195,7 @@ cdef class Line(VertexInstruction):
+ self._stencil_pop.apply()
+ else:
+ VertexInstruction.apply(self)
++ return 0
+
+ cdef void build_legacy(self):
+ cdef int i
+@@ -1238,9 +1239,9 @@ cdef class SmoothLine(Line):
+
+ self.build_smooth()
+
+- cdef void apply(self):
++ cdef int apply(self) except -1:
+ VertexInstruction.apply(self)
+- return
++ return 0
+
+ cdef void build_smooth(self):
+ cdef:
+diff --git a/setup.py b/setup.py
+index 76d7c82..30cc091 100644
+--- a/setup.py
++++ b/setup.py
+@@ -31,12 +31,12 @@ def ver_equal(self, other):
+
+ MIN_CYTHON_STRING = '0.20'
+ MIN_CYTHON_VERSION = LooseVersion(MIN_CYTHON_STRING)
+-MAX_CYTHON_STRING = '0.21.2'
++MAX_CYTHON_STRING = '0.22'
+ MAX_CYTHON_VERSION = LooseVersion(MAX_CYTHON_STRING)
+ CYTHON_UNSUPPORTED = (
+- LooseVersion('0.22'),
+- LooseVersion('0.22.beta0'),
+- LooseVersion('0.22.alpha0'),
++ # LooseVersion('0.22'),
++ # LooseVersion('0.22.beta0'),
++ # LooseVersion('0.22.alpha0'),
+ )
+
+
diff --git a/dev-python/Kivy/files/cython-0.22.patch b/dev-python/Kivy/files/cython-0.22.patch
new file mode 100644
index 00000000000..9b125f9ad64
--- /dev/null
+++ b/dev-python/Kivy/files/cython-0.22.patch
@@ -0,0 +1,139 @@
+--- kivy/graphics.orig/shader.pyx 2015-02-19 07:27:13.062070969 +0100
++++ kivy/graphics/shader.pyx 2015-02-19 07:27:22.838737743 +0100
+@@ -221,13 +221,13 @@
+ '''
+ glUseProgram(0)
+
+- cdef void set_uniform(self, str name, value):
++ cdef void set_uniform(self, str name, value) except *:
+ if name in self.uniform_values and self.uniform_values[name] == value:
+ return
+ self.uniform_values[name] = value
+ self.upload_uniform(name, value)
+
+- cdef void upload_uniform(self, str name, value):
++ cdef void upload_uniform(self, str name, value) except *:
+ '''Pass a uniform variable to the shader.
+ '''
+ cdef long vec_size, index, x, y
+@@ -412,7 +412,7 @@
+ mat[x] = <GLfloat>value.mat[x]
+ glUniformMatrix4fv(loc, 1, False, mat)
+
+- cdef int get_uniform_loc(self, str name):
++ cdef int get_uniform_loc(self, str name) except *:
+ cdef bytes c_name = name.encode('utf-8')
+ cdef int loc = glGetUniformLocation(self.program, c_name)
+ self.uniform_locations[name] = loc
+@@ -453,11 +453,11 @@
+ # save for the next run.
+ self._current_vertex_format = vertex_format
+
+- cdef void build(self):
++ cdef void build(self) except *:
+ self.build_vertex()
+ self.build_fragment()
+
+- cdef void build_vertex(self, int link=1):
++ cdef void build_vertex(self, int link=1) except *:
+ if self.vertex_shader is not None:
+ glDetachShader(self.program, self.vertex_shader.shader)
+ self.vertex_shader = None
+@@ -467,7 +467,7 @@
+ if link:
+ self.link_program()
+
+- cdef void build_fragment(self, int link=1):
++ cdef void build_fragment(self, int link=1) except *:
+ if self.fragment_shader is not None:
+ glDetachShader(self.program, self.fragment_shader.shader)
+ self.fragment_shader = None
+@@ -477,7 +477,7 @@
+ if link:
+ self.link_program()
+
+- cdef void link_program(self):
++ cdef void link_program(self) except *:
+ if self.vertex_shader is None or self.fragment_shader is None:
+ return
+
+--- kivy/graphics.orig/instructions.pyx 2015-02-19 07:27:13.062070969 +0100
++++ kivy/graphics/instructions.pyx 2014-01-20 03:49:50.000000000 +0100
+@@ -233,15 +233,15 @@
+ if self.context_pop:
+ context.pop_states(self.context_pop)
+
+- cdef void set_state(self, str name, value):
++ cdef void set_state(self, str name, value) except *:
+ self.context_state[name] = value
+ self.flag_update()
+
+- cdef void push_state(self, str name):
++ cdef void push_state(self, str name) except *:
+ self.context_push.append(name)
+ self.flag_update()
+
+- cdef void pop_state(self, str name):
++ cdef void pop_state(self, str name) except *:
+ self.context_pop.append(name)
+ self.flag_update()
+
+@@ -764,29 +764,29 @@
+ cdef get_state(self, str name):
+ return self.state_stacks[name][-1]
+
+- cdef void set_states(self, dict states):
++ cdef void set_states(self, dict states) except *:
+ cdef str name
+ for name, value in states.iteritems():
+ self.set_state(name, value)
+
+- cdef void push_state(self, str name):
++ cdef void push_state(self, str name) except *:
+ stack = self.state_stacks[name]
+ stack.append(stack[-1])
+ self.flag_update()
+
+- cdef void push_states(self, list names):
++ cdef void push_states(self, list names) except *:
+ cdef str name
+ for name in names:
+ self.push_state(name)
+
+- cdef void pop_state(self, str name):
++ cdef void pop_state(self, str name) except *:
+ stack = self.state_stacks[name]
+ oldvalue = stack.pop()
+ if oldvalue != stack[-1]:
+ self.set_state(name, stack[-1])
+ self.flag_update()
+
+- cdef void pop_states(self, list names):
++ cdef void pop_states(self, list names) except *:
+ cdef str name
+ for name in names:
+ self.pop_state(name)
+@@ -806,10 +806,10 @@
+ texture.bind()
+ self.flag_update()
+
+- cdef void enter(self):
++ cdef void enter(self) except *:
+ self._shader.use()
+
+- cdef void leave(self):
++ cdef void leave(self) except *:
+ self._shader.stop()
+
+ cdef void apply(self):
+--- kivy/graphics.orig/instructions.pxd 2015-02-19 07:44:16.315415541 +0100
++++ kivy/graphics/instructions.pxd 2014-01-20 03:49:50.000000000 +0100
+@@ -115,7 +115,7 @@
+ cdef void pop_states(self, list names) except *
+ cdef void enter(self) except *
+ cdef void leave(self) except *
+- cdef void apply(self) except *
++ cdef void apply(self)
+ cpdef draw(self)
+ cdef void reload(self)
+
diff --git a/dev-python/Kivy/files/cython-fixes.patch b/dev-python/Kivy/files/cython-fixes.patch
new file mode 100644
index 00000000000..b9eca4c5d5d
--- /dev/null
+++ b/dev-python/Kivy/files/cython-fixes.patch
@@ -0,0 +1,42 @@
+--- kivy/lib/gstplayer/_gstplayer.pyx.orig 2014-01-29 17:45:32.000000000 +0100
++++ kivy/lib/gstplayer/_gstplayer.pyx 2015-01-01 21:24:55.480191418 +0100
+@@ -207,7 +207,7 @@
+ self.eos_cb()
+
+ def load(self):
+- cdef char *c_uri
++ cdef bytes py_uri
+
+ # if already loaded before, clean everything.
+ if self.pipeline != NULL:
+@@ -256,8 +256,8 @@
+
+ # configure playbin
+ g_object_set_int(self.pipeline, 'async-handling', 1)
+- c_uri = <bytes>self.uri.encode('utf-8')
+- g_object_set_void(self.playbin, 'uri', c_uri)
++ py_uri = <bytes>self.uri.encode('utf-8')
++ g_object_set_void(self.playbin, 'uri', <char *>py_uri)
+
+ # attach the callback
+ # NOTE no need to create a weakref here, as we manage to grab/release
+--- kivy/graphics/shader.pyx.orig 2014-01-20 03:49:50.000000000 +0100
++++ kivy/graphics/shader.pyx 2015-01-01 21:25:01.446858150 +0100
+@@ -421,6 +421,7 @@
+ cdef void bind_vertex_format(self, VertexFormat vertex_format):
+ cdef unsigned int i
+ cdef vertex_attr_t *attr
++ cdef bytes name
+
+ # if the current vertex format used in the shader is the current one, do
+ # nothing.
+@@ -445,7 +446,8 @@
+ attr = &vertex_format.vattr[i]
+ if attr.per_vertex == 0:
+ continue
+- attr.index = glGetAttribLocation(self.program, <char *><bytes>attr.name)
++ name = <bytes>attr.name
++ attr.index = glGetAttribLocation(self.program, <char *>name)
+ glEnableVertexAttribArray(attr.index)
+
+ # save for the next run.
diff --git a/dev-python/Kivy/metadata.xml b/dev-python/Kivy/metadata.xml
new file mode 100644
index 00000000000..7da70174c4e
--- /dev/null
+++ b/dev-python/Kivy/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>slis@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="camera">
+ Install libraries needed to support camera
+ </flag>
+ <flag name="garden">
+ Install garden tool to manage user maintained widgets
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">Kivy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/Numdifftools/Manifest b/dev-python/Numdifftools/Manifest
new file mode 100644
index 00000000000..708796bbecd
--- /dev/null
+++ b/dev-python/Numdifftools/Manifest
@@ -0,0 +1,2 @@
+DIST Numdifftools-0.6.0.zip 184293 SHA256 56bee55a361c263dd250fcd009923ee9289dbc9bde635fe10b41d84e6a404549 SHA512 57c3a63e9fc2738478534cd81542d1398667824c80ad5263610be29bec38209f4f9963ad61f2b02327724946567d61fe310a9e82b1b301d1b36fe229f33445bd WHIRLPOOL 9780391abf8774137b3aaa03c88bed521ff6367c7bdefdb23c7e412e162ec8c81a6724a7af525ccddb69673b0afa1c862dbf7285f0faa659af46f758ad48ae9b
+DIST numdifftools-0.7.7.zip 181520 SHA256 c5a309a7a0b58f6177dc7e3d55c2830c07ca2715c9c706644d500fc4eca97c4d SHA512 ccb5f8a06bf21dfb803004fa104d36e07cdbebb72682d84577506cca6fc63abd2e4b1c13cbc960ad691ee70bef616c282b8dbb682f78d1ff8d230213afd58428 WHIRLPOOL b6579d64f1e6beded914189b392952988eb1396ee9ad06d4ba4b3edfbe4666c1e7de35cf1405c38422aa459e9a631a94d8f821a9fe22309a681043883ec56ae2
diff --git a/dev-python/Numdifftools/Numdifftools-0.6.0.ebuild b/dev-python/Numdifftools/Numdifftools-0.6.0.ebuild
new file mode 100644
index 00000000000..ff4ba2c92ef
--- /dev/null
+++ b/dev-python/Numdifftools/Numdifftools-0.6.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Solves automatic numerical differentiation problems in one or more variables"
+HOMEPAGE="https://pypi.python.org/pypi/Numdifftools http://code.google.com/p/numdifftools/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ "
+DEPEND="test? ( ${RDEPEND} )"
+
+# Seems to be broken
+RESTRICT="test"
+
+python_test() {
+ ${PYTHON} \
+ -c 'import numdifftools as nd; nd.test(coverage=False, doctests=False)' \
+ || die
+}
diff --git a/dev-python/Numdifftools/Numdifftools-0.7.7.ebuild b/dev-python/Numdifftools/Numdifftools-0.7.7.ebuild
new file mode 100644
index 00000000000..d3daabfc2d6
--- /dev/null
+++ b/dev-python/Numdifftools/Numdifftools-0.7.7.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN=numdifftools
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Solves automatic numerical differentiation problems in one or more variables"
+HOMEPAGE="https://pypi.python.org/pypi/Numdifftools http://code.google.com/p/numdifftools/ https://github.com/pbrod/numdifftools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.zip"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/algopy[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ "
+DEPEND="test? (
+ ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+# Seems to be broken
+RESTRICT="test"
+
+S="${WORKDIR}"/${MY_P}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/Numdifftools/metadata.xml b/dev-python/Numdifftools/metadata.xml
new file mode 100644
index 00000000000..0c96f3ffdf5
--- /dev/null
+++ b/dev-python/Numdifftools/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Numdifftools</remote-id>
+ <remote-id type="github">pbrod/numdifftools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/PyECLib/Manifest b/dev-python/PyECLib/Manifest
new file mode 100644
index 00000000000..5dc5ef6d557
--- /dev/null
+++ b/dev-python/PyECLib/Manifest
@@ -0,0 +1 @@
+DIST PyECLib-1.0.7.tar.gz 8376329 SHA256 f2136f187900fe3b84c75fea671c9bcb3d4d4a6307e44d9f960ed8296ce52dc3 SHA512 8f1bbf6bd0c8ceb62862337fd204e497e5826e01c8b7532bd68485b2203e755144d0ac6b7ee9aa59fb290e8c9ee5fa3bd865203dbbdbf471e0112d10c3ea8720 WHIRLPOOL 62839fe028fc5a5d96005f337425773254d1fb287d4e2d02010ca9e1fb3df6e79f7a7fc4e03797d854b8965c24665dd93010623cf7bae8a5612b1c2e50513e80
diff --git a/dev-python/PyECLib/PyECLib-1.0.7.ebuild b/dev-python/PyECLib/PyECLib-1.0.7.ebuild
new file mode 100644
index 00000000000..7e2428fc676
--- /dev/null
+++ b/dev-python/PyECLib/PyECLib-1.0.7.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/PyECLib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-libs/liberasurecode"
+
+PATCHES=( "${FILESDIR}/1.0.7-erasurecode_locations.patch" )
diff --git a/dev-python/PyECLib/files/1.0.7-erasurecode_locations.patch b/dev-python/PyECLib/files/1.0.7-erasurecode_locations.patch
new file mode 100644
index 00000000000..9f12a56cf19
--- /dev/null
+++ b/dev-python/PyECLib/files/1.0.7-erasurecode_locations.patch
@@ -0,0 +1,11 @@
+--- setup.py 2015-04-15 18:13:08.000000000 -0500
++++ setup.py.new 2015-08-04 20:36:06.236656803 -0500
+@@ -66,7 +66,7 @@
+ default_include_paths = [default_python_incdir,
+ '/usr/local/include', '/usr/local/include/jerasure',
+ '/usr/include', 'src/c/pyeclib_c',
+- '/usr/local/include']
++ '/usr/include/liberasurecode', '/usr/local/include']
+
+ libflags = ''
+ includeflags = ''
diff --git a/dev-python/PyECLib/metadata.xml b/dev-python/PyECLib/metadata.xml
new file mode 100644
index 00000000000..c981fdb3e31
--- /dev/null
+++ b/dev-python/PyECLib/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This library provides a simple Python interface for implementing erasure codes. To obtain the best possible performance, the underlying erasure code algorithms are written in C.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">PyECLib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/PyFoam/Manifest b/dev-python/PyFoam/Manifest
new file mode 100644
index 00000000000..b77aff1cc1b
--- /dev/null
+++ b/dev-python/PyFoam/Manifest
@@ -0,0 +1 @@
+DIST PyFoam-0.5.4.tar.gz 4492783 SHA256 c6bab9d1772a86a704c732e938419be453430e15447b6be676ddb4fa3d1157dc SHA512 97ba7f8a10e6d408f4fd4bff0e28ccda36ffced6c6c945d1c20737a1251e61331b9fdd3c4e60b5fd95a4d80bb9816cd384b72d1f39fda8da32c4cbd776dec642 WHIRLPOOL 037c009dfba7d0616bd745d60941ee92e7f24feaad5273dcb54e6619a1bc7e22969f5fb9cde81325c1fb783dbdd17e231337fc58a94125aa91c1e7e492740c85
diff --git a/dev-python/PyFoam/PyFoam-0.5.4-r2.ebuild b/dev-python/PyFoam/PyFoam-0.5.4-r2.ebuild
new file mode 100644
index 00000000000..b24e1e19ea4
--- /dev/null
+++ b/dev-python/PyFoam/PyFoam-0.5.4-r2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Tool to analyze and plot the residual files of OpenFOAM computations"
+HOMEPAGE="http://openfoamwiki.net/index.php/Contrib_PyFoam"
+SRC_URI="http://openfoamwiki.net/images/a/ae/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="extras"
+
+DEPEND="sci-visualization/gnuplot
+ || ( sci-libs/openfoam sci-libs/openfoam-bin )
+ extras? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ sci-libs/vtk[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND="${DEPEND}"
diff --git a/dev-python/PyFoam/metadata.xml b/dev-python/PyFoam/metadata.xml
new file mode 100644
index 00000000000..bea7baf226c
--- /dev/null
+++ b/dev-python/PyFoam/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>patrick@gentoo.org</email>
+ <name>Patrick Lauer</name>
+ </maintainer>
+ <maintainer>
+ <email>oli.borm@web.de</email>
+ <name>Oliver Borm</name>
+ </maintainer>
+ <use>
+ <flag name='extras'>Enable optional dependencies</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/PyGithub/Manifest b/dev-python/PyGithub/Manifest
new file mode 100644
index 00000000000..5918ed64da2
--- /dev/null
+++ b/dev-python/PyGithub/Manifest
@@ -0,0 +1,3 @@
+DIST PyGithub-1.25.0.tar.gz 2514171 SHA256 bea24a94b8450161efb258257342617617e5582b70419224ee0e436c6a410110 SHA512 02245bf3f75a6144d1632f1eb27b13e719042ed66eaf8540a966b75ec880322a062490d6c3cd0e65599af613add59862201964955f2ff0e3fee75ea46f1f35b1 WHIRLPOOL 5ed09fa21d633e4ca07c5c71870948c1ab90fccfb2caf73178af183b81cfcc45ca95ae4050e3c9ea39fffc9efbca559042d730a8ac2348952cfa49ea5bbcb9e6
+DIST PyGithub-1.25.1.tar.gz 2514716 SHA256 6c39a6077e08f2f266039c5184911fc30c7b90a42f875fe98d7cef52a7aa8afa SHA512 5e17de013465ec2452d0c3018d83c000e3cd90d3a9a0590e409769438321035140fccc2aa10468a116573b374552232dac69b96189ae3627f2399289fba77287 WHIRLPOOL a8aef2edad109edbe8b0ab3272ad39f235b90f425b18ec7ac5e822a9d05838f6514320e2fdc46195cf4a5dbb0141b044e0fc2a2ebbd5aa03ae87c68edcbbbbdd
+DIST PyGithub-1.25.2.tar.gz 2624603 SHA256 3afce80516998ce4478424797f341d961d1c251958859c70b8d3986d00faafd7 SHA512 24b8370552889e748de1f51e6d5a14f11e2f77a9b1f920743f90ffbadc849cb887bf6d84c1c251b7a86ee454d919004255fc3046b199792cd078ce49d892cec0 WHIRLPOOL 56d7989c63f0b0943da3c88e38ec266277659f124566ab20c9a9f30ceec74c792d4f13cc201d7b7851ac3074c05f5608280674803597652913f0a1b71f430505
diff --git a/dev-python/PyGithub/PyGithub-1.25.0.ebuild b/dev-python/PyGithub/PyGithub-1.25.0.ebuild
new file mode 100644
index 00000000000..c09c5b9eaf6
--- /dev/null
+++ b/dev-python/PyGithub/PyGithub-1.25.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to access the Github API v3"
+HOMEPAGE="https://github.com/jacquev6/PyGithub/"
+# Use github since pypi is missing test data
+SRC_URI="https://github.com/jacquev6/PyGithub/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/PyGithub/PyGithub-1.25.1.ebuild b/dev-python/PyGithub/PyGithub-1.25.1.ebuild
new file mode 100644
index 00000000000..d292169d4fc
--- /dev/null
+++ b/dev-python/PyGithub/PyGithub-1.25.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to access the Github API v3"
+HOMEPAGE="https://github.com/jacquev6/PyGithub/"
+# Use github since pypi is missing test data
+SRC_URI="https://github.com/jacquev6/PyGithub/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/PyGithub/PyGithub-1.25.2.ebuild b/dev-python/PyGithub/PyGithub-1.25.2.ebuild
new file mode 100644
index 00000000000..439f4bd1456
--- /dev/null
+++ b/dev-python/PyGithub/PyGithub-1.25.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to access the Github API v3"
+HOMEPAGE="https://github.com/jacquev6/PyGithub/"
+# Use github since pypi is missing test data
+SRC_URI="https://github.com/jacquev6/PyGithub/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/PyGithub/metadata.xml b/dev-python/PyGithub/metadata.xml
new file mode 100644
index 00000000000..285e151315a
--- /dev/null
+++ b/dev-python/PyGithub/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">jacquev6/PyGithub</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/PyPDF2/Manifest b/dev-python/PyPDF2/Manifest
new file mode 100644
index 00000000000..1a162ee5fb0
--- /dev/null
+++ b/dev-python/PyPDF2/Manifest
@@ -0,0 +1 @@
+DIST PyPDF2-1.24.tar.gz 59891 SHA256 aca40d5155524120fceaf2eb4ae054480b8a2b6ffcfa0a2e77e3e45666428c64 SHA512 91a9338b0338eee1cfddc25dd0f21494f73696e630b08a71ff9195fe7b0fc77cf6c07b38a0c6aa4856536be6fe0a474c3b292c13fdd0187b62cb8848e69b29f9 WHIRLPOOL b5d33c209d5e0ce7d2d567d9266faacbbc6c1e49ac714e0063eeeb3879f400482a3fa887bd165b364a7216b4240b5236dec1954683ade632ea802a36a5272303
diff --git a/dev-python/PyPDF2/PyPDF2-1.24.ebuild b/dev-python/PyPDF2/PyPDF2-1.24.ebuild
new file mode 100644
index 00000000000..768c7c73d18
--- /dev/null
+++ b/dev-python/PyPDF2/PyPDF2-1.24.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to work with pdf files"
+HOMEPAGE="http://pypi.python.org/pypi/${PN}/ http://mstamy2.github.com/PyPDF2"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples"
+
+python_install_all() {
+ use examples && local EXAMPLES=( Sample_Code/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/PyPDF2/metadata.xml b/dev-python/PyPDF2/metadata.xml
new file mode 100644
index 00000000000..d8f3f772b0e
--- /dev/null
+++ b/dev-python/PyPDF2/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">PyPDF2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/PyQt4/Manifest b/dev-python/PyQt4/Manifest
new file mode 100644
index 00000000000..ecc69055755
--- /dev/null
+++ b/dev-python/PyQt4/Manifest
@@ -0,0 +1,2 @@
+DIST PyQt-x11-gpl-4.11.1.tar.gz 11118850 SHA256 df9d7358d70748efa5b84fa3fe9e182a80c39ac590157daaabcc2618df176da3 SHA512 3851d4e61d9c6a0c62cbfd2a08153972fa3446c1982fc925796eb1d4c6524e7054cdb14ed2f4566386727e9e0cf67246765de19fab79152b0834477452681113 WHIRLPOOL 17e23997afcf06b99028d0d2115bc9328848acaaa1b6bcd8ec7397409ab2001d5fa29ca08bf42e0cef6dcd0441d0cff04e349fa8913a2b0fc86da878b79b5a5d
+DIST PyQt-x11-gpl-4.11.4.tar.gz 11317088 SHA256 fc1fe77495432ba3b0d74ff5cb164d375a97f5dddb728256330f615a7cdcf407 SHA512 58d0c5e30b0480c1b6ce1a3cc3ef0a1841bb15631830fb937d1f17f5d3d8cbe66a5e2adcfb2c3990fae38db66dd430668bd25413e254e72064a38c48f689f170 WHIRLPOOL cf635d6399bd04def2648eee65e038d720f06dddfac70f3df6f87deb7483e023ee1a4aa07285a5075adc19dc91bca4500b82f65b342e07a8845023cf98bb6233
diff --git a/dev-python/PyQt4/PyQt4-4.11.1.ebuild b/dev-python/PyQt4/PyQt4-4.11.1.ebuild
new file mode 100644
index 00000000000..42b49c764e5
--- /dev/null
+++ b/dev-python/PyQt4/PyQt4-4.11.1.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils multibuild python-r1 qmake-utils toolchain-funcs
+
+DESCRIPTION="Python bindings for the Qt toolkit"
+HOMEPAGE="http://www.riverbankcomputing.com/software/pyqt/intro
+ https://pypi.python.org/pypi/PyQt4"
+
+if [[ ${PV} == *_pre* ]]; then
+ MY_P="PyQt-x11-gpl-snapshot-${PV%_pre*}-${REVISION}"
+ SRC_URI="http://dev.gentoo.org/~hwoarang/distfiles/${MY_P}.tar.gz"
+else
+ MY_P="PyQt-x11-gpl-${PV}"
+ SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
+fi
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux"
+
+IUSE="X dbus debug declarative designer doc examples help kde multimedia opengl phonon script scripttools sql svg webkit xmlpatterns"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ declarative? ( X )
+ designer? ( X )
+ help? ( X )
+ multimedia? ( X )
+ opengl? ( X )
+ phonon? ( X )
+ scripttools? ( X script )
+ sql? ( X )
+ svg? ( X )
+ webkit? ( X )
+"
+
+# Minimal supported version of Qt.
+QT_PV="4.8.5:4"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/sip-4.16:=[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-${QT_PV}
+ X? (
+ >=dev-qt/qtgui-${QT_PV}
+ >=dev-qt/qttest-${QT_PV}
+ )
+ dbus? (
+ >=dev-python/dbus-python-0.80[${PYTHON_USEDEP}]
+ >=dev-qt/qtdbus-${QT_PV}
+ )
+ declarative? ( >=dev-qt/qtdeclarative-${QT_PV} )
+ designer? ( >=dev-qt/designer-${QT_PV} )
+ help? ( >=dev-qt/qthelp-${QT_PV} )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+ phonon? (
+ kde? ( media-libs/phonon[qt4] )
+ !kde? ( || ( >=dev-qt/qtphonon-${QT_PV} media-libs/phonon[qt4] ) )
+ )
+ script? ( >=dev-qt/qtscript-${QT_PV} )
+ sql? ( >=dev-qt/qtsql-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ webkit? ( >=dev-qt/qtwebkit-${QT_PV} )
+ xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+ dbus? ( virtual/pkgconfig )
+"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ # Support qreal on arm architecture (bug 322349).
+ use arm && epatch "${FILESDIR}/${PN}-4.7.3-qreal_float_support.patch"
+
+ # Allow building against KDE's phonon (bug 433944 and others).
+ sed -i \
+ -e "s:VideoWidget()\":&, extra_include_dirs=[\"${EPREFIX}/usr/include/qt4/QtGui\"]:" \
+ -e "s:^\s\+generate_code(\"phonon\":&, extra_include_dirs=[\"${EPREFIX}/usr/include/phonon\"]:" \
+ configure.py || die
+
+ if ! use dbus; then
+ sed -i -e 's/^\(\s\+\)check_dbus()/\1pass/' configure.py || die
+ fi
+
+ python_copy_sources
+
+ preparation() {
+ if [[ ${EPYTHON} == python3.* ]]; then
+ rm -fr pyuic/uic/port_v2
+ else
+ rm -fr pyuic/uic/port_v3
+ fi
+ }
+ python_foreach_impl run_in_build_dir preparation
+}
+
+pyqt4_use_enable() {
+ use $1 && echo --enable=${2:-Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1}}
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}" configure.py
+ --confirm-license
+ --bindir="${EPREFIX}/usr/bin"
+ --destdir="$(python_get_sitedir)"
+ --sipdir="${EPREFIX}/usr/share/sip"
+ --assume-shared
+ --no-timestamp
+ --qsci-api
+ $(use debug && echo --debug)
+ --enable=QtCore
+ --enable=QtNetwork
+ --enable=QtXml
+ $(pyqt4_use_enable X QtGui)
+ $(pyqt4_use_enable X QtTest)
+ $(pyqt4_use_enable dbus QtDBus)
+ $(pyqt4_use_enable declarative)
+ $(pyqt4_use_enable designer) $(use designer || echo --no-designer-plugin)
+ $(pyqt4_use_enable help)
+ $(pyqt4_use_enable multimedia)
+ $(pyqt4_use_enable opengl QtOpenGL)
+ $(pyqt4_use_enable phonon phonon)
+ $(pyqt4_use_enable script)
+ $(pyqt4_use_enable scripttools QtScriptTools)
+ $(pyqt4_use_enable sql)
+ $(pyqt4_use_enable svg)
+ $(pyqt4_use_enable webkit QtWebKit)
+ $(pyqt4_use_enable xmlpatterns QtXmlPatterns)
+ AR="$(tc-getAR) cqs"
+ CC="$(tc-getCC)"
+ CFLAGS="${CFLAGS}"
+ CFLAGS_RELEASE=
+ CXX="$(tc-getCXX)"
+ CXXFLAGS="${CXXFLAGS}"
+ CXXFLAGS_RELEASE=
+ LINK="$(tc-getCXX)"
+ LINK_SHLIB="$(tc-getCXX)"
+ LFLAGS="${LDFLAGS}"
+ LFLAGS_RELEASE=
+ RANLIB=
+ STRIP=
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+
+ local mod
+ for mod in QtCore \
+ $(use X && echo QtGui) \
+ $(use dbus && echo QtDBus) \
+ $(use declarative && echo QtDeclarative) \
+ $(use designer && echo QtDesigner) \
+ $(use opengl && echo QtOpenGL); do
+ # Run eqmake4 inside the qpy subdirectories to respect
+ # CC, CXX, CFLAGS, CXXFLAGS, LDFLAGS and avoid stripping.
+ pushd qpy/${mod} > /dev/null || return
+ eqmake4 $(ls w_qpy*.pro)
+ popd > /dev/null || return
+
+ # Fix insecure runpaths.
+ sed -i -e "/^LFLAGS\s*=/ s:-Wl,-rpath,${BUILD_DIR}/qpy/${mod}::" \
+ ${mod}/Makefile || die "failed to fix rpath for ${mod}"
+ done
+
+ # Avoid stripping of libpythonplugin.so.
+ if use designer; then
+ pushd designer > /dev/null || return
+ eqmake4 python.pro
+ popd > /dev/null || return
+ fi
+ }
+ python_parallel_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ local tmp_root=${D%/}/tmp
+
+ # INSTALL_ROOT is used by designer/Makefile, other Makefiles use DESTDIR.
+ emake DESTDIR="${tmp_root}" INSTALL_ROOT="${tmp_root}" install
+
+ python_doexe "${tmp_root}${EPREFIX}"/usr/bin/pyuic4
+ rm "${tmp_root}${EPREFIX}"/usr/bin/pyuic4 || die
+
+ multibuild_merge_root "${tmp_root}" "${D}"
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc NEWS THANKS
+
+ if use doc; then
+ dodoc -r doc/html
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/PyQt4/PyQt4-4.11.4.ebuild b/dev-python/PyQt4/PyQt4-4.11.4.ebuild
new file mode 100644
index 00000000000..a717793fca9
--- /dev/null
+++ b/dev-python/PyQt4/PyQt4-4.11.4.ebuild
@@ -0,0 +1,156 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils multibuild multilib python-r1 qmake-utils
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="http://www.riverbankcomputing.com/software/pyqt/intro
+ https://pypi.python.org/pypi/PyQt4"
+
+MY_PN="PyQt-x11-gpl"
+if [[ ${PV} == *_pre* ]]; then
+ MY_P=${MY_PN}-${PV%_pre*}-snapshot-${REVISION}
+ SRC_URI="http://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz"
+else
+ MY_P=${MY_PN}-${PV}
+ SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="X dbus debug declarative designer doc examples help kde multimedia
+ opengl phonon script scripttools sql svg testlib webkit xmlpatterns"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ sql? ( X )
+ testlib? ( X )
+"
+
+# Minimal supported version of Qt.
+QT_PV="4.8.5:4"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/sip-4.16.6:=[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-${QT_PV}
+ X? ( >=dev-qt/qtgui-${QT_PV} )
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ >=dev-qt/qtdbus-${QT_PV}
+ )
+ declarative? ( >=dev-qt/qtdeclarative-${QT_PV} )
+ designer? ( >=dev-qt/designer-${QT_PV} )
+ help? ( >=dev-qt/qthelp-${QT_PV} )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+ phonon? (
+ kde? ( >=media-libs/phonon-4.7[qt4] )
+ !kde? ( || ( >=dev-qt/qtphonon-${QT_PV} >=media-libs/phonon-4.7[qt4] ) )
+ )
+ script? ( >=dev-qt/qtscript-${QT_PV} )
+ scripttools? ( >=dev-qt/qtgui-${QT_PV} )
+ sql? ( >=dev-qt/qtsql-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ testlib? ( >=dev-qt/qttest-${QT_PV} )
+ webkit? ( >=dev-qt/qtwebkit-${QT_PV} )
+ xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+ dbus? ( virtual/pkgconfig )
+"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ # Support qreal on arm architecture (bug 322349).
+ use arm && epatch "${FILESDIR}/${PN}-4.7.3-qreal_float_support.patch"
+
+ # Allow building against KDE's phonon (bug 525354).
+ epatch "${FILESDIR}/${PN}-4.11.2-phonon.patch"
+}
+
+pyqt_use_enable() {
+ use $1 && echo --enable=${2:-Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1}}
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}"
+ "${S}"/configure-ng.py
+ $(use debug && echo --debug --trace)
+ --verbose
+ --confirm-license
+ --qmake="$(qt4_get_bindir)"/qmake
+ --destdir="$(python_get_sitedir)"
+ --qsci-api
+ --enable=QtCore
+ --enable=QtNetwork
+ --enable=QtXml
+ $(pyqt_use_enable X QtGui)
+ $(pyqt_use_enable dbus QtDBus)
+ $(usex dbus '' --no-python-dbus)
+ $(pyqt_use_enable declarative)
+ $(pyqt_use_enable designer)
+ $(usex designer '' --no-designer-plugin)
+ $(pyqt_use_enable help)
+ $(pyqt_use_enable multimedia)
+ $(pyqt_use_enable opengl QtOpenGL)
+ $(pyqt_use_enable phonon phonon)
+ $(pyqt_use_enable script)
+ $(pyqt_use_enable scripttools QtScriptTools)
+ $(pyqt_use_enable sql)
+ $(pyqt_use_enable svg)
+ $(pyqt_use_enable testlib QtTest)
+ $(pyqt_use_enable webkit QtWebKit)
+ $(pyqt_use_enable xmlpatterns QtXmlPatterns)
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+
+ eqmake4 -recursive ${PN}.pro
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ local tmp_root=${D%/}/tmp
+ emake INSTALL_ROOT="${tmp_root}" install
+
+ local uic_dir=${tmp_root}$(python_get_sitedir)/${PN}/uic
+ if python_is_python3; then
+ rm -r "${uic_dir}"/port_v2 || die
+ else
+ rm -r "${uic_dir}"/port_v3 || die
+ fi
+
+ python_doexe "${tmp_root}${EPREFIX}"/usr/bin/pyuic4
+ rm "${tmp_root}${EPREFIX}"/usr/bin/pyuic4 || die
+
+ multibuild_merge_root "${tmp_root}" "${D}"
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc ChangeLog NEWS THANKS
+
+ if use doc; then
+ dodoc -r doc/html
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/PyQt4/files/PyQt4-4.11.2-phonon.patch b/dev-python/PyQt4/files/PyQt4-4.11.2-phonon.patch
new file mode 100644
index 00000000000..e3449b3b4bf
--- /dev/null
+++ b/dev-python/PyQt4/files/PyQt4-4.11.2-phonon.patch
@@ -0,0 +1,25 @@
+From e8931ed7f49eb55d6259328a5a78f3fc18472d48 Mon Sep 17 00:00:00 2001
+From: Davide Pesavento <pesa@gentoo.org>
+Date: Tue, 14 Oct 2014 04:30:29 +0200
+Subject: [PATCH] Support building against KDE's phonon variant.
+
+---
+ configure-ng.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure-ng.py b/configure-ng.py
+index a80cb57..fd2c56c 100644
+--- a/configure-ng.py
++++ b/configure-ng.py
+@@ -2256,6 +2256,8 @@ def generate_sip_module_code(target_config, verbose, no_timestamp, parts, tracin
+ if mname == 'QtCore':
+ includepath = target_config.vend_inc_dir
+ libs = '-L%s -lvendorid' % target_config.vend_lib_dir
++ if mname == 'phonon':
++ includepath = os.path.join(sys.prefix, 'include', 'phonon')
+
+ generate_module_makefile(target_config, verbose, mname,
+ includepath=includepath, libs=libs, qpy_sources=qpy_sources,
+--
+2.1.2
+
diff --git a/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch b/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch
new file mode 100644
index 00000000000..37e1e69eb3f
--- /dev/null
+++ b/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch
@@ -0,0 +1,239 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 03_qreal_float_support.dpatch by Michael Casadevall <sonicmctails@gmail.com>
+##
+## DP: Corrects a configure test, and adds explicate double handling
+## to qlist.sip on architectures where qreal != double
+
+@DPATCH@
+Index: python-qt4-4.7.2/sip/QtCore/qlist.sip
+===================================================================
+--- python-qt4-4.7.2.orig/sip/QtCore/qlist.sip 2010-03-17 19:29:26.000000000 +0100
++++ python-qt4-4.7.2/sip/QtCore/qlist.sip 2010-03-25 23:53:55.468631945 +0100
+@@ -749,3 +749,227 @@
+ return sipGetState(sipTransferObj);
+ %End
+ };
++
++// If we're on an architecture where qreal != double, then we need to also
++// explicately handle doubles. On architectures where qreal == double, they
++// will automaticially be cast upwards
++
++%If (!PyQt_qreal_double)
++
++%If (Qt_4_3_0 -)
++// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples.
++%MappedType QList<QPair<double, double> >
++{
++%TypeHeaderCode
++#include <qlist.h>
++#include <qpair.h>
++%End
++
++%ConvertFromTypeCode
++ // Create the list.
++ PyObject *l;
++
++ if ((l = PyList_New(sipCpp->size())) == NULL)
++ return NULL;
++
++ // Set the list elements.
++ for (int i = 0; i < sipCpp->size(); ++i)
++ {
++ const QPair<double, double> &p = sipCpp->at(i);
++ PyObject *pobj;
++
++ if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL)
++ {
++ Py_DECREF(l);
++
++ return NULL;
++ }
++
++ PyList_SET_ITEM(l, i, pobj);
++ }
++
++ return l;
++%End
++
++%ConvertToTypeCode
++ SIP_SSIZE_T len;
++
++ // Check the type if that is all that is required.
++ if (sipIsErr == NULL)
++ {
++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
++ return 0;
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *tup = PySequence_ITEM(sipPy, i);
++
++ if (!PySequence_Check(tup) || PySequence_Size(tup) != 2)
++ return 0;
++ }
++
++ return 1;
++ }
++
++ QList<QPair<double, double> > *ql = new QList<QPair<double, double> >;
++ len = PySequence_Size(sipPy);
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *tup = PySequence_ITEM(sipPy, i);
++
++ double first = PyFloat_AsDouble(PySequence_ITEM(tup, 0));
++ double second = PyFloat_AsDouble(PySequence_ITEM(tup, 1));
++
++ ql->append(QPair<double, double>(first, second));
++ }
++
++ *sipCppPtr = ql;
++
++ return sipGetState(sipTransferObj);
++%End
++};
++%End
++%If (Qt_4_3_0 -)
++// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples.
++template<double, TYPE>
++%MappedType QList<QPair<double, TYPE> >
++{
++%TypeHeaderCode
++#include <qlist.h>
++#include <qpair.h>
++%End
++
++%ConvertFromTypeCode
++ // Create the list.
++ PyObject *l;
++
++ if ((l = PyList_New(sipCpp->size())) == NULL)
++ return NULL;
++
++ // Set the list elements.
++ for (int i = 0; i < sipCpp->size(); ++i)
++ {
++ const QPair<double, TYPE> &p = sipCpp->at(i);
++ TYPE *t = new TYPE(p.second);
++ PyObject *pobj;
++
++ if ((pobj = sipBuildResult(NULL, "(dB)", p.first, t, sipClass_TYPE, sipTransferObj)) == NULL)
++ {
++ Py_DECREF(l);
++ delete t;
++
++ return NULL;
++ }
++
++ PyList_SET_ITEM(l, i, pobj);
++ }
++
++ return l;
++%End
++
++%ConvertToTypeCode
++ SIP_SSIZE_T len;
++
++ // Check the type if that is all that is required.
++ if (sipIsErr == NULL)
++ {
++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
++ return 0;
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *tup = PySequence_ITEM(sipPy, i);
++
++ if (!PySequence_Check(tup) || PySequence_Size(tup) != 2)
++ return 0;
++
++ if (!sipCanConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, SIP_NOT_NONE))
++ return 0;
++ }
++
++ return 1;
++ }
++
++ QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >;
++ len = PySequence_Size(sipPy);
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *tup = PySequence_ITEM(sipPy, i);
++ double d;
++ int state;
++
++ d = PyFloat_AsDouble(PySequence_ITEM(tup, 0));
++ TYPE *t = reinterpret_cast<TYPE *>(sipConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++
++ if (*sipIsErr)
++ {
++ sipReleaseInstance(t, sipClass_TYPE, state);
++
++ delete ql;
++ return 0;
++ }
++
++ ql->append(QPair<double, TYPE>(d, *t));
++
++ sipReleaseInstance(t, sipClass_TYPE, state);
++ }
++
++ *sipCppPtr = ql;
++
++ return sipGetState(sipTransferObj);
++%End
++};
++%End
++
++// QList<double> is implemented as a Python list of doubles.
++%MappedType QList<double>
++{
++%TypeHeaderCode
++#include <qlist.h>
++%End
++
++%ConvertFromTypeCode
++ // Create the list.
++ PyObject *l;
++
++ if ((l = PyList_New(sipCpp->size())) == NULL)
++ return NULL;
++
++ // Set the list elements.
++ for (int i = 0; i < sipCpp->size(); ++i)
++ {
++ PyObject *pobj;
++
++ if ((pobj = PyFloat_FromDouble(sipCpp->value(i))) == NULL)
++ {
++ Py_DECREF(l);
++
++ return NULL;
++ }
++
++ PyList_SET_ITEM(l, i, pobj);
++ }
++
++ return l;
++%End
++
++%ConvertToTypeCode
++ // Check the type if that is all that is required.
++ if (sipIsErr == NULL)
++ return (PySequence_Check(sipPy) && PySequence_Size(sipPy) >= 0);
++
++ QList<double> *ql = new QList<double>;
++ SIP_SSIZE_T len = PySequence_Size(sipPy);
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ ql->append(PyFloat_AsDouble(PySequence_ITEM(sipPy, i)));
++
++ *sipCppPtr = ql;
++
++ return sipGetState(sipTransferObj);
++%End
++};
++
++%End
diff --git a/dev-python/PyQt4/metadata.xml b/dev-python/PyQt4/metadata.xml
new file mode 100644
index 00000000000..31d70a3f30f
--- /dev/null
+++ b/dev-python/PyQt4/metadata.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+ <use>
+ <flag name="X">Build bindings for the QtGui module</flag>
+ <flag name="dbus">Build bindings for the QtDBus module</flag>
+ <flag name="declarative">Build bindings for the QtDeclarative module</flag>
+ <flag name="designer">Build bindings for the QtDesigner module and enable the designer plugin</flag>
+ <flag name="help">Build bindings for the QtHelp module</flag>
+ <flag name="kde">Select <pkg>media-libs/phonon</pkg> as Phonon variant (needed for KDE)</flag>
+ <flag name="multimedia">Build bindings for the QtMultimedia module</flag>
+ <flag name="opengl">Build bindings for the QtOpenGL module</flag>
+ <flag name="phonon">Build bindings for the phonon module</flag>
+ <flag name="script">Build bindings for the QtScript module</flag>
+ <flag name="scripttools">Build bindings for the QtScriptTools module</flag>
+ <flag name="sql">Build bindings for the QtSql module</flag>
+ <flag name="svg">Build bindings for the QtSvg module</flag>
+ <flag name="testlib">Build bindings for the QtTest module</flag>
+ <flag name="webkit">Build bindings for the QtWebKit module</flag>
+ <flag name="xmlpatterns">Build bindings for the QtXmlPatterns module</flag>
+ </use>
+ <upstream>
+ <maintainer status="active">
+ <email>phil@riverbankcomputing.com</email>
+ <name>Phil Thompson</name>
+ </maintainer>
+ <bugs-to>mailto:pyqt@riverbankcomputing.com</bugs-to>
+ <remote-id type="pypi">PyQt4</remote-id>
+ <remote-id type="sourceforge">pyqt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/PyQt5/Manifest b/dev-python/PyQt5/Manifest
new file mode 100644
index 00000000000..5b0c91d15b2
--- /dev/null
+++ b/dev-python/PyQt5/Manifest
@@ -0,0 +1,2 @@
+DIST PyQt-gpl-5.4.2.tar.gz 3639966 SHA256 4cd90580558722ef24d499700faafbdc242d930cb36f55cc1a27b5cf67b10290 SHA512 c080a0e17644a15bf10c0999b8404e40709bd227e3b1d0ae87aa428c1b336397fb35aa274c75a3d95b7528ef84a32b67892f41aa4841d568d1535466d1215a4b WHIRLPOOL 8ada565355d772c1d7090af11afd139f5422c5aeb8d56c86e4fe0c8b62bf2724e18bdc82765ca9f5e8729853d4e84b4e90c9867b05606817f05e3e33dc334d63
+DIST PyQt-gpl-5.5.tar.gz 3675521 SHA256 cdd1bb55b431acdb50e9210af135428a13fb32d7b1ab86e972ac7101f6acd814 SHA512 84e591da37032763f961e546250fa1da617e3f9b08c8586e0764d1ecf09fb0eed03b6e602742fa6921a7dd6f10db3255cb834770dba606613bf9897f5276bf43 WHIRLPOOL bcfa7e113ddb692b7d035671f47fcf92300e4ff4048e1c6c44724de0f1b3255d0b4901b88d05cc229263f003c45a6fda4a518127a05484a3cc2b487269c28ca2
diff --git a/dev-python/PyQt5/PyQt5-5.4.2.ebuild b/dev-python/PyQt5/PyQt5-5.4.2.ebuild
new file mode 100644
index 00000000000..e06dcf542fb
--- /dev/null
+++ b/dev-python/PyQt5/PyQt5-5.4.2.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils multibuild multilib python-r1 qmake-utils
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="http://www.riverbankcomputing.com/software/pyqt/intro
+ https://pypi.python.org/pypi/PyQt5"
+
+MY_PN="PyQt-gpl"
+if [[ ${PV} == *_pre* ]]; then
+ MY_P=${MY_PN}-${PV%_pre*}-snapshot-${REVISION}
+ SRC_URI="http://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz"
+else
+ MY_P=${MY_PN}-${PV}
+ SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+
+# TODO: QtBluetooth, QtWebEngineWidgets
+IUSE="dbus debug declarative designer doc examples gles2 gui help multimedia
+ network opengl positioning printsupport sensors serialport sql svg
+ testlib webchannel webkit websockets widgets x11extras xmlpatterns"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ positioning? ( gui )
+ sensors? ( gui )
+ serialport? ( gui )
+ sql? ( widgets )
+ testlib? ( widgets )
+ webchannel? ( network )
+"
+
+# Minimal supported version of Qt.
+QT_PV="5.4.2:5"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/sip-4.16.6:=[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-${QT_PV}
+ >=dev-qt/qtxml-${QT_PV}
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ >=dev-qt/qtdbus-${QT_PV}
+ )
+ declarative? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] )
+ designer? ( >=dev-qt/designer-${QT_PV} )
+ gui? ( >=dev-qt/qtgui-${QT_PV}[gles2=] )
+ help? ( >=dev-qt/qthelp-${QT_PV} )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV}[widgets?] )
+ network? ( >=dev-qt/qtnetwork-${QT_PV} )
+ opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+ positioning? ( >=dev-qt/qtpositioning-${QT_PV} )
+ printsupport? ( >=dev-qt/qtprintsupport-${QT_PV} )
+ sensors? ( >=dev-qt/qtsensors-${QT_PV} )
+ serialport? ( >=dev-qt/qtserialport-${QT_PV} )
+ sql? ( >=dev-qt/qtsql-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ testlib? ( >=dev-qt/qttest-${QT_PV} )
+ webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} )
+ webkit? ( >=dev-qt/qtwebkit-${QT_PV}[printsupport] )
+ websockets? ( >=dev-qt/qtwebsockets-${QT_PV} )
+ widgets? ( >=dev-qt/qtwidgets-${QT_PV} )
+ x11extras? ( >=dev-qt/qtx11extras-${QT_PV} )
+ xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+ dbus? ( virtual/pkgconfig )
+"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ # Avoid automagic dependency.
+ use dbus || rm -fr dbus
+}
+
+pyqt_use_enable() {
+ use "$1" || return
+
+ if [[ $# -eq 1 ]]; then
+ echo --enable=Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1}
+ else
+ shift
+ echo ${@/#/--enable=}
+ fi
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}"
+ "${S}"/configure.py
+ $(use debug && echo --debug --trace)
+ --verbose
+ --confirm-license
+ --qmake="$(qt5_get_bindir)"/qmake
+ --destdir="$(python_get_sitedir)"
+ --qsci-api
+ --enable=QtCore
+ --enable=QtXml
+ $(pyqt_use_enable dbus QtDBus)
+ $(pyqt_use_enable declarative QtQml QtQuick $(usex widgets QtQuickWidgets ''))
+ $(usex declarative '' --no-qml-plugin)
+ $(pyqt_use_enable designer)
+ $(usex designer '' --no-designer-plugin)
+ $(pyqt_use_enable gui)
+ $(pyqt_use_enable gui $(use gles2 && echo _QOpenGLFunctions_ES2 || echo _QOpenGLFunctions_{2_0,2_1,4_1_Core}))
+ $(pyqt_use_enable help)
+ $(pyqt_use_enable multimedia QtMultimedia $(usex widgets QtMultimediaWidgets ''))
+ $(pyqt_use_enable network)
+ $(pyqt_use_enable opengl QtOpenGL)
+ $(pyqt_use_enable positioning)
+ $(pyqt_use_enable printsupport QtPrintSupport)
+ $(pyqt_use_enable sensors)
+ $(pyqt_use_enable serialport QtSerialPort)
+ $(pyqt_use_enable sql)
+ $(pyqt_use_enable svg)
+ $(pyqt_use_enable testlib QtTest)
+ $(pyqt_use_enable webchannel QtWebChannel)
+ $(pyqt_use_enable webkit QtWebKit QtWebKitWidgets)
+ $(pyqt_use_enable websockets QtWebSockets)
+ $(pyqt_use_enable widgets)
+ $(pyqt_use_enable x11extras QtX11Extras)
+ $(pyqt_use_enable xmlpatterns QtXmlPatterns)
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+
+ eqmake5 -recursive ${PN}.pro
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ local tmp_root=${D%/}/tmp
+ emake INSTALL_ROOT="${tmp_root}" install
+
+ local uic_dir=${tmp_root}$(python_get_sitedir)/${PN}/uic
+ if python_is_python3; then
+ rm -r "${uic_dir}"/port_v2 || die
+ else
+ rm -r "${uic_dir}"/port_v3 || die
+ fi
+
+ python_doexe "${tmp_root}${EPREFIX}"/usr/bin/pyuic5
+ rm "${tmp_root}${EPREFIX}"/usr/bin/pyuic5 || die
+
+ multibuild_merge_root "${tmp_root}" "${D}"
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc ChangeLog NEWS
+
+ if use doc; then
+ dodoc -r doc/html
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/PyQt5/PyQt5-5.5.ebuild b/dev-python/PyQt5/PyQt5-5.5.ebuild
new file mode 100644
index 00000000000..076aeee9763
--- /dev/null
+++ b/dev-python/PyQt5/PyQt5-5.5.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils multibuild multilib python-r1 qmake-utils
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="http://www.riverbankcomputing.com/software/pyqt/intro
+ https://pypi.python.org/pypi/PyQt5"
+
+MY_PN="PyQt-gpl"
+if [[ ${PV} == *_pre* ]]; then
+ MY_P=${MY_PN}-${PV%_pre*}-snapshot-${REVISION}
+ SRC_URI="http://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz"
+else
+ MY_P=${MY_PN}-${PV}
+ SRC_URI="http://www.riverbankcomputing.com/static/Downloads/${PN}/${MY_P}.tar.gz"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+
+# TODO: QtBluetooth, QtLocation, QtNfc, QtWebEngineWidgets
+IUSE="dbus debug declarative designer doc examples gles2 gui help multimedia
+ network opengl positioning printsupport sensors serialport sql svg
+ testlib webchannel webkit websockets widgets x11extras xmlpatterns"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ positioning? ( gui )
+ sensors? ( gui )
+ serialport? ( gui )
+ sql? ( widgets )
+ testlib? ( widgets )
+ webchannel? ( network )
+"
+
+# Minimal supported version of Qt.
+QT_PV="5.4.2:5"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/sip-4.16.6:=[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-${QT_PV}
+ >=dev-qt/qtxml-${QT_PV}
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ >=dev-qt/qtdbus-${QT_PV}
+ )
+ declarative? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] )
+ designer? ( >=dev-qt/designer-${QT_PV} )
+ gui? ( >=dev-qt/qtgui-${QT_PV}[gles2=] )
+ help? ( >=dev-qt/qthelp-${QT_PV} )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV}[widgets?] )
+ network? ( >=dev-qt/qtnetwork-${QT_PV} )
+ opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+ positioning? ( >=dev-qt/qtpositioning-${QT_PV} )
+ printsupport? ( >=dev-qt/qtprintsupport-${QT_PV} )
+ sensors? ( >=dev-qt/qtsensors-${QT_PV} )
+ serialport? ( >=dev-qt/qtserialport-${QT_PV} )
+ sql? ( >=dev-qt/qtsql-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ testlib? ( >=dev-qt/qttest-${QT_PV} )
+ webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} )
+ webkit? ( >=dev-qt/qtwebkit-${QT_PV}[printsupport] )
+ websockets? ( >=dev-qt/qtwebsockets-${QT_PV} )
+ widgets? ( >=dev-qt/qtwidgets-${QT_PV} )
+ x11extras? ( >=dev-qt/qtx11extras-${QT_PV} )
+ xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+ dbus? ( virtual/pkgconfig )
+"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ # Avoid automagic dependency.
+ use dbus || rm -fr dbus
+}
+
+pyqt_use_enable() {
+ use "$1" || return
+
+ if [[ $# -eq 1 ]]; then
+ echo --enable=Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1}
+ else
+ shift
+ echo ${@/#/--enable=}
+ fi
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}"
+ "${S}"/configure.py
+ $(use debug && echo --debug --trace)
+ --verbose
+ --confirm-license
+ --qmake="$(qt5_get_bindir)"/qmake
+ --destdir="$(python_get_sitedir)"
+ --qsci-api
+ --enable=QtCore
+ --enable=QtXml
+ $(pyqt_use_enable dbus QtDBus)
+ $(pyqt_use_enable declarative QtQml QtQuick $(usex widgets QtQuickWidgets ''))
+ $(usex declarative '' --no-qml-plugin)
+ $(pyqt_use_enable designer)
+ $(usex designer '' --no-designer-plugin)
+ $(pyqt_use_enable gui)
+ $(pyqt_use_enable gui $(use gles2 && echo _QOpenGLFunctions_ES2 || echo _QOpenGLFunctions_{2_0,2_1,4_1_Core}))
+ $(pyqt_use_enable help)
+ $(pyqt_use_enable multimedia QtMultimedia $(usex widgets QtMultimediaWidgets ''))
+ $(pyqt_use_enable network)
+ $(pyqt_use_enable opengl QtOpenGL)
+ $(pyqt_use_enable positioning)
+ $(pyqt_use_enable printsupport QtPrintSupport)
+ $(pyqt_use_enable sensors)
+ $(pyqt_use_enable serialport QtSerialPort)
+ $(pyqt_use_enable sql)
+ $(pyqt_use_enable svg)
+ $(pyqt_use_enable testlib QtTest)
+ $(pyqt_use_enable webchannel QtWebChannel)
+ $(pyqt_use_enable webkit QtWebKit QtWebKitWidgets)
+ $(pyqt_use_enable websockets QtWebSockets)
+ $(pyqt_use_enable widgets)
+ $(pyqt_use_enable x11extras QtX11Extras)
+ $(pyqt_use_enable xmlpatterns QtXmlPatterns)
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+
+ eqmake5 -recursive ${PN}.pro
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ local tmp_root=${D%/}/tmp
+ emake INSTALL_ROOT="${tmp_root}" install
+
+ local uic_dir=${tmp_root}$(python_get_sitedir)/${PN}/uic
+ if python_is_python3; then
+ rm -r "${uic_dir}"/port_v2 || die
+ else
+ rm -r "${uic_dir}"/port_v3 || die
+ fi
+
+ python_doexe "${tmp_root}${EPREFIX}"/usr/bin/pyuic5
+ rm "${tmp_root}${EPREFIX}"/usr/bin/pyuic5 || die
+
+ multibuild_merge_root "${tmp_root}" "${D}"
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc ChangeLog NEWS
+
+ if use doc; then
+ dodoc -r doc/html
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/PyQt5/metadata.xml b/dev-python/PyQt5/metadata.xml
new file mode 100644
index 00000000000..82e1aa1b7d4
--- /dev/null
+++ b/dev-python/PyQt5/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+ <use>
+ <flag name="dbus">Build bindings for the QtDBus module</flag>
+ <flag name="declarative">Build bindings for the QtQml/QtQuick modules and enable the qmlscene plugin</flag>
+ <flag name="designer">Build bindings for the QtDesigner module and enable the designer plugin</flag>
+ <flag name="gles2">Use GLES 2.0 or later instead of full OpenGL</flag>
+ <flag name="gui">Build bindings for the QtGui module</flag>
+ <flag name="help">Build bindings for the QtHelp module</flag>
+ <flag name="multimedia">Build bindings for the QtMultimedia module</flag>
+ <flag name="network">Build bindings for the QtNetwork module</flag>
+ <flag name="opengl">Build bindings for the QtOpenGL module</flag>
+ <flag name="positioning">Build bindings for the QtPositioning module</flag>
+ <flag name="printsupport">Build bindings for the QtPrintSupport module</flag>
+ <flag name="sensors">Build bindings for the QtSensors module</flag>
+ <flag name="serialport">Build bindings for the QtSerialPort module</flag>
+ <flag name="sql">Build bindings for the QtSql module</flag>
+ <flag name="svg">Build bindings for the QtSvg module</flag>
+ <flag name="testlib">Build bindings for the QtTest module</flag>
+ <flag name="webchannel">Build bindings for the QtWebChannel module</flag>
+ <flag name="webkit">Build bindings for the QtWebKit module</flag>
+ <flag name="websockets">Build bindings for the QtWebSockets module</flag>
+ <flag name="widgets">Build bindings for the QtWidgets module</flag>
+ <flag name="x11extras">Build bindings for the QtX11Extras module</flag>
+ <flag name="xmlpatterns">Build bindings for the QtXmlPatterns module</flag>
+ </use>
+ <upstream>
+ <maintainer status="active">
+ <email>phil@riverbankcomputing.com</email>
+ <name>Phil Thompson</name>
+ </maintainer>
+ <bugs-to>mailto:pyqt@riverbankcomputing.com</bugs-to>
+ <remote-id type="pypi">PyQt5</remote-id>
+ <remote-id type="sourceforge">pyqt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/PyQtMobility/Manifest b/dev-python/PyQtMobility/Manifest
new file mode 100644
index 00000000000..52d36676cbd
--- /dev/null
+++ b/dev-python/PyQtMobility/Manifest
@@ -0,0 +1 @@
+DIST PyQtMobility-gpl-1.0.1.tar.gz 111999 SHA256 8496a47f5345ff547c04e8301cfcdf7862fe9557f56d0d93818c947060b442df SHA512 09bb77f348abe0caf174dea505f3a10ee2adf99698048c9fffc1da66a36dcb907cef7896ee92af7d9ec98a5b30f5229fd9eedc6a64e1476ca340c29b5d842770 WHIRLPOOL 49bbd93b79418f34872a76665d7d54d4a5adca0bdd44a31fe095bfd148d7a673671bc3b61015bc0489d91b7386dc23c57b462e10def00460cc448c165cfe4d8a
diff --git a/dev-python/PyQtMobility/PyQtMobility-1.0.1.ebuild b/dev-python/PyQtMobility/PyQtMobility-1.0.1.ebuild
new file mode 100644
index 00000000000..46963c2ae82
--- /dev/null
+++ b/dev-python/PyQtMobility/PyQtMobility-1.0.1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="*"
+PYTHON_EXPORT_PHASE_FUNCTIONS="1"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="*-jython 2.7-pypy-*"
+
+inherit python
+
+MY_P=${PN}-gpl-${PV}
+
+DESCRIPTION="Python bindings for Nokia's QtMobility libraries"
+HOMEPAGE="http://www.riverbankcomputing.co.uk/software/pyqtmobility/intro"
+SRC_URI="http://www.riverbankcomputing.co.uk/static/Downloads/${PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="|| ( GPL-2 GPL-3 )"
+KEYWORDS="~amd64"
+
+PYQTM_MODULES="+contacts feedback gallery location messaging multimedia organizer
+ publishsubscribe sensors serviceframework systeminfo versit"
+IUSE="debug ${PYQTM_MODULES}"
+
+REQUIRED_USE="
+ || ( ${PYQTM_MODULES//+} )
+ versit? ( contacts )
+"
+
+QTM_USE_DEPS=
+for mod in ${PYQTM_MODULES//+}; do
+ QTM_USE_DEPS+="${mod}?,"
+done
+unset mod
+
+DEPEND="
+ >=dev-python/sip-4.12.2
+ >=dev-python/PyQt4-4.8.4[X]
+ >=dev-qt/qt-mobility-1.2.0[${QTM_USE_DEPS%,}]
+"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ # Disable pre-stripping of modules
+ sed -i -e '/SIPModuleMakefile/s|$|strip=0,|' configure.py || die
+
+ python_src_prepare
+}
+
+pyqtm_use_enable() {
+ use $1 && echo --enable=${2:-Qt$(echo ${1:0:1} | tr '[:lower:]' '[:upper:]')${1:1}}
+}
+
+src_configure() {
+ configuration() {
+ local myconf=("$(PYTHON)"
+ configure.py
+ --destdir="${EPREFIX}$(python_get_sitedir)"
+ --sipdir="${EPREFIX}/usr/share/sip"
+ $(use debug && echo --debug)
+ $(pyqtm_use_enable contacts)
+ $(pyqtm_use_enable feedback)
+ $(pyqtm_use_enable gallery)
+ $(pyqtm_use_enable location)
+ $(pyqtm_use_enable messaging)
+ $(pyqtm_use_enable multimedia QtMultimediaKit)
+ $(pyqtm_use_enable organizer)
+ $(pyqtm_use_enable publishsubscribe QtPublishSubscribe)
+ $(pyqtm_use_enable sensors)
+ $(pyqtm_use_enable serviceframework QtServiceFramework)
+ $(pyqtm_use_enable systeminfo QtSystemInfo)
+ $(pyqtm_use_enable versit)
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}"
+ }
+ python_execute_function -s configuration
+}
+
+pkg_postinst() {
+ python_mod_optimize QtMobility
+}
+
+pkg_postrm() {
+ python_mod_cleanup QtMobility
+}
diff --git a/dev-python/PyQtMobility/metadata.xml b/dev-python/PyQtMobility/metadata.xml
new file mode 100644
index 00000000000..d46620955c1
--- /dev/null
+++ b/dev-python/PyQtMobility/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+ <use>
+ <flag name="contacts">Build bindings for the QtContacts module</flag>
+ <flag name="feedback">Build bindings for the QtFeedback module</flag>
+ <flag name="gallery">Build bindings for the QtGallery module</flag>
+ <flag name="location">Build bindings for the QtLocation module</flag>
+ <flag name="messaging">Build bindings for the QtMessaging module</flag>
+ <flag name="multimedia">Build bindings for the QtMultimediaKit module</flag>
+ <flag name="organizer">Build bindings for the QtOrganizer module</flag>
+ <flag name="publishsubscribe">Build bindings for the QtPublishSubscribe module</flag>
+ <flag name="sensors">Build bindings for the QtSensors module</flag>
+ <flag name="serviceframework">Build bindings for the QtServiceFramework module</flag>
+ <flag name="systeminfo">Build bindings for the QtSystemInfo module</flag>
+ <flag name="versit">Build bindings for the QtVersit module</flag>
+ </use>
+ <upstream>
+ <maintainer status="active">
+ <email>phil@riverbankcomputing.com</email>
+ <name>Phil Thompson</name>
+ </maintainer>
+ <bugs-to>mailto:pyqt@riverbankcomputing.com</bugs-to>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/PyRSS2Gen/Manifest b/dev-python/PyRSS2Gen/Manifest
new file mode 100644
index 00000000000..aa062e83ec5
--- /dev/null
+++ b/dev-python/PyRSS2Gen/Manifest
@@ -0,0 +1,2 @@
+DIST PyRSS2Gen-1.0.0.tar.gz 8819 SHA256 61a15ee50d7bccafb5f6bc2ecc59f18963f45425b3836da637a2121b415ed11e SHA512 0c8dfeed8cff3b1985e439d60083a16515883b2884310df7ea6af6f2f8cb32a5540373413b27ada0a7c5f56692c9cf61be04818d45030f2f888da33848b5a68c WHIRLPOOL 2d842bb9d8cc570dd0dc07ea97ef6081b72044be0cd0be4c45706adc5155ae3244363556c73a01aa24b6608dfa443e185b5f92cadfad2eeac5612cc3dacee435
+DIST PyRSS2Gen-1.1.tar.gz 9149 SHA256 2a9a3ee7c8e30cb40434ef3a295f9a60166f7d8c3eaefac9f46f7ed4b27c2269 SHA512 2240686914c87984626eb739676927fcd53488158bdebf589e07e8a778e6d24305964e032581c61836f0fabc1264e42d05c88eac8f4c5f6536c31c775434ce02 WHIRLPOOL 4ee5f7fefc942600f00a07bd081bc2c0324c6e651d3008f591608dc537dceaf22029d887dd04360ef381975fcab12d8ed6fa5858c526c7c9467a475a48971a5d
diff --git a/dev-python/PyRSS2Gen/PyRSS2Gen-1.0.0-r1.ebuild b/dev-python/PyRSS2Gen/PyRSS2Gen-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..1b503ad1803
--- /dev/null
+++ b/dev-python/PyRSS2Gen/PyRSS2Gen-1.0.0-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="RSS feed generator written in Python"
+HOMEPAGE="http://www.dalkescientific.com/Python/PyRSS2Gen.html http://pypi.python.org/pypi/PyRSS2Gen"
+SRC_URI="http://www.dalkescientific.com/Python/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/PyRSS2Gen/PyRSS2Gen-1.1.ebuild b/dev-python/PyRSS2Gen/PyRSS2Gen-1.1.ebuild
new file mode 100644
index 00000000000..93c3dac58c3
--- /dev/null
+++ b/dev-python/PyRSS2Gen/PyRSS2Gen-1.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="RSS feed generator written in Python"
+HOMEPAGE="http://www.dalkescientific.com/Python/PyRSS2Gen.html http://pypi.python.org/pypi/PyRSS2Gen"
+SRC_URI="http://www.dalkescientific.com/Python/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
diff --git a/dev-python/PyRSS2Gen/metadata.xml b/dev-python/PyRSS2Gen/metadata.xml
new file mode 100644
index 00000000000..f320dd15bcf
--- /dev/null
+++ b/dev-python/PyRSS2Gen/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/PyZilla/Manifest b/dev-python/PyZilla/Manifest
new file mode 100644
index 00000000000..03d9a799f96
--- /dev/null
+++ b/dev-python/PyZilla/Manifest
@@ -0,0 +1 @@
+DIST PyZilla-0.1.0.tar.gz 14686 SHA256 43b814f897c7cc518965db1ff4e315d3cf21bcd3dce4f556d7538b7d50b8f02f SHA512 20f893e1251eb9f3c62ee702c12064eb3d560c82131cf4b228d11426f2b8a7c9cf08b8d45439445b381f9c23861f75b5c11c71ef59c50fbca7c0ef952a4fe5e5 WHIRLPOOL 9793b25f56774ac0585baed48ca12c4c11e541210ed8b3a280b55d110b3566c1f5557b8f817817df9202da31c22920ab3055990a5bd0ad8a5660da7207429c4d
diff --git a/dev-python/PyZilla/PyZilla-0.1.0-r1.ebuild b/dev-python/PyZilla/PyZilla-0.1.0-r1.ebuild
new file mode 100644
index 00000000000..f8554f28528
--- /dev/null
+++ b/dev-python/PyZilla/PyZilla-0.1.0-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for the BugZilla XML-RPC API"
+HOMEPAGE="http://pypi.python.org/pypi/PyZilla"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/PyZilla/metadata.xml b/dev-python/PyZilla/metadata.xml
new file mode 100644
index 00000000000..0317e4dbdf9
--- /dev/null
+++ b/dev-python/PyZilla/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>williamh@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">PyZilla</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/RecSQL/Manifest b/dev-python/RecSQL/Manifest
new file mode 100644
index 00000000000..6e2d435eaf3
--- /dev/null
+++ b/dev-python/RecSQL/Manifest
@@ -0,0 +1 @@
+DIST RecSQL-0.7.8.tar.gz 140025 SHA256 1b74b7c177e51a39d4889740ca015d793d48d1026c380e77fdbcc84919188c18 SHA512 bbe5dc547d8e254eac2513c66cdcbf564e491212ee549cafd5051caf545c4b8b7c6d9f728807ab1fff98a55a5c617f4736dd67b1c5a2ab882408d9289340c33c WHIRLPOOL 470bc80dfcb631cf9b5e4bf4844a606fa1aec4409bbee58227bd575c0a18748bf8956e7f6a75c1fce94a6870b7a8477a48e4694b972485c62fc58eef0918734a
diff --git a/dev-python/RecSQL/RecSQL-0.7.8.ebuild b/dev-python/RecSQL/RecSQL-0.7.8.ebuild
new file mode 100644
index 00000000000..258fe806fff
--- /dev/null
+++ b/dev-python/RecSQL/RecSQL-0.7.8.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+if [[ $PV = *9999* ]]; then
+ scm_eclass=git-2
+ EGIT_REPO_URI="
+ git://github.com/orbeckst/${PN}.git
+ https://github.com/orbeckst/${PN}.git"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ scm_eclass=vcs-snapshot
+ SRC_URI="https://github.com/orbeckst/${PN}/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+inherit eutils distutils-r1 ${scm_eclass}
+
+DESCRIPTION="Simple SQL analysis of python records"
+HOMEPAGE="http://orbeckst.github.com/RecSQL/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/RecSQL/metadata.xml b/dev-python/RecSQL/metadata.xml
new file mode 100644
index 00000000000..ba2081c2418
--- /dev/null
+++ b/dev-python/RecSQL/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <maintainer>
+ <email>alexxy@gentoo.org</email>
+ <name>Alexey Shvetsov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">orbeckst/RecSQL</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/SaltTesting/Manifest b/dev-python/SaltTesting/Manifest
new file mode 100644
index 00000000000..d873528b40a
--- /dev/null
+++ b/dev-python/SaltTesting/Manifest
@@ -0,0 +1,3 @@
+DIST SaltTesting-2014.8.5.tar.gz 32787 SHA256 ee1681e13f09646ce08f9e95e700eddb7d882f6a87051f2caee0e844aca69339 SHA512 f3a25d36c94e01d448c3a3ce1bbf831ab9d806847ccc44a4e3d2cc40ac8f967f570d6724fef3b61838e14f8624a092e83e9db46101509c22e817836b545c9f58 WHIRLPOOL bed7114ea75b496bf87efccb937e75d744b2f416a74f4df979ce151037cab13485b863d1ab757ff59810517df9c1a297b1f0e891e63ad64d7436081ddc5d281b
+DIST SaltTesting-2015.2.16.tar.gz 77908 SHA256 05ddb56d9775c404b2c8536bd5f8fce97cf35777b1077eed895175ae8db02d1d SHA512 170ff267be0edd24da1e90d70795fb2ff5193407e766a4d90cef550130b997ce4f4ecc0d327ca8555fbe14fd3587620b8e356e1060a91edac62cf114356ada48 WHIRLPOOL 736babf2df8922ce092fd0578fc2c45b3a9773975d63dbd12d04bb428e020ad4f8f798f9876fceb922154e5d8e55f105524a70b4514a582e84064f5fc332887a
+DIST SaltTesting-2015.5.8.tar.gz 79236 SHA256 c4256f1e22bf90951fdee46444ec8c9f040f5a75b405151f4b8cd9a30091a559 SHA512 8f517c13428d679d44c288cccd02033f79cbbe93c0c1adad48179d41d97cb7c4f2b49d43a10fa52e803f1fddf9b05595b8a9f894612777388ee5c15a3919ecbf WHIRLPOOL 9b8f2f9dc7043d16f3479d15f1c668899a2991c7af789f5b1c02ca4a5749aad8dd50183da9567f78412d0d2f32170c5c63341fd440a5c14b4e38664b3f433776
diff --git a/dev-python/SaltTesting/SaltTesting-2014.8.5.ebuild b/dev-python/SaltTesting/SaltTesting-2014.8.5.ebuild
new file mode 100644
index 00000000000..6f4a8cdcbda
--- /dev/null
+++ b/dev-python/SaltTesting/SaltTesting-2014.8.5.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Required testing tools needed in the several Salt Stack projects"
+HOMEPAGE="http://saltstack.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-2
+ EGIT_REPO_URI="git://github.com/saltstack/salt-testing.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
diff --git a/dev-python/SaltTesting/SaltTesting-2015.2.16.ebuild b/dev-python/SaltTesting/SaltTesting-2015.2.16.ebuild
new file mode 100644
index 00000000000..4664b1c5c31
--- /dev/null
+++ b/dev-python/SaltTesting/SaltTesting-2015.2.16.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Required testing tools needed in the several Salt Stack projects"
+HOMEPAGE="http://saltstack.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-2
+ EGIT_REPO_URI="git://github.com/saltstack/salt-testing.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DEPEND=">=dev-python/requests-2.4.2"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/SaltTesting/SaltTesting-2015.5.8.ebuild b/dev-python/SaltTesting/SaltTesting-2015.5.8.ebuild
new file mode 100644
index 00000000000..43517199653
--- /dev/null
+++ b/dev-python/SaltTesting/SaltTesting-2015.5.8.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Required testing tools needed in the several Salt Stack projects"
+HOMEPAGE="http://saltstack.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-2
+ EGIT_REPO_URI="git://github.com/saltstack/salt-testing.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DEPEND="
+ >=dev-python/requests-2.4.2[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+# The testsuite requires the package salt itself which has never been added to portage
diff --git a/dev-python/SaltTesting/files/SaltTesting-0.5.2-silence-DepricationWarning.patch b/dev-python/SaltTesting/files/SaltTesting-0.5.2-silence-DepricationWarning.patch
new file mode 100644
index 00000000000..292a74c5c64
--- /dev/null
+++ b/dev-python/SaltTesting/files/SaltTesting-0.5.2-silence-DepricationWarning.patch
@@ -0,0 +1,17 @@
+--- a/salttesting/unit.py 2013-10-24 10:57:42.000000000 +0000
++++ b/salttesting/unit.py 2013-11-12 18:47:11.245838201 +0000
+@@ -42,10 +42,10 @@
+ class TestCase(_TestCase):
+
+ def assertEquals(self, *args, **kwargs):
+- raise DeprecationWarning(
+- 'The {0}() function is deprecated. Please start using {1}() '
+- 'instead.'.format('assertEquals', 'assertEqual')
+- )
++ #raise DeprecationWarning(
++ # 'The {0}() function is deprecated. Please start using {1}() '
++ # 'instead.'.format('assertEquals', 'assertEqual')
++ #)
+ return _TestCase.assertEquals(self, *args, **kwargs)
+
+ def failUnlessEqual(self, *args, **kwargs):
diff --git a/dev-python/SaltTesting/metadata.xml b/dev-python/SaltTesting/metadata.xml
new file mode 100644
index 00000000000..9e2d309a125
--- /dev/null
+++ b/dev-python/SaltTesting/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">SaltTesting</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/SchemaObject/Manifest b/dev-python/SchemaObject/Manifest
new file mode 100644
index 00000000000..7cb6db6490b
--- /dev/null
+++ b/dev-python/SchemaObject/Manifest
@@ -0,0 +1 @@
+DIST SchemaObject-0.5.3.tar.gz 19921 SHA256 8d63dde2ed6a6773b7a10cdb3aa9c43e05c6e16a7b3cc59b42ad71b80511d4e0 SHA512 5f46672b6e069979db47aa96c4b1989f2575853803db84e27a4e15d40219829866e3aaf9e2a7f6f59a24cea7e6e166b8f310941a86f4f459cbe331ac6b3564d2 WHIRLPOOL 4c040c4ac382a3ec8cb0a5fba4605003674cea795186c693a5331f74649f803cb005852990ab88abdf4cc1f026d5986d45d7dff46f628e74549578ecb1ca799f
diff --git a/dev-python/SchemaObject/SchemaObject-0.5.3.ebuild b/dev-python/SchemaObject/SchemaObject-0.5.3.ebuild
new file mode 100644
index 00000000000..5cb07d3f883
--- /dev/null
+++ b/dev-python/SchemaObject/SchemaObject-0.5.3.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2:2.5:2.7"
+
+inherit distutils
+
+DESCRIPTION="A simple Python object interface to a MySQL database schema"
+HOMEPAGE="http://matuson.com/code/schemaobject/"
+SRC_URI="http://www.matuson.com/code/schemaobject/downloads/${P}.tar.gz"
+
+pn="${PN,,}"
+S="${WORKDIR}/${pn}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ python_convert_shebangs -r 2 .
+}
+
+pkg_postinst() {
+ python_mod_optimize "${pn}"
+}
+
+pkg_postrm() {
+ python_mod_cleanup "${pn}"
+}
diff --git a/dev-python/SchemaObject/metadata.xml b/dev-python/SchemaObject/metadata.xml
new file mode 100644
index 00000000000..1e7587374fd
--- /dev/null
+++ b/dev-python/SchemaObject/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/WSME/Manifest b/dev-python/WSME/Manifest
new file mode 100644
index 00000000000..31c711c7ba1
--- /dev/null
+++ b/dev-python/WSME/Manifest
@@ -0,0 +1 @@
+DIST WSME-0.6.2.tar.gz 117174 SHA256 a3aede98e9cd1531a697db9f0e4bc038a423cff44ca7c196a1b4fe648427ec74 SHA512 edfbc4f1e0df40273adb1064faced3b047751e611688853fbd66c78248ef57b6cfbab2177ca506afa7727ee26136aa066eb53ea2c012eda3ba65b7ca05b25cb2 WHIRLPOOL babdcb786c636ec7fc7cb067aba72d601e877520fc81bc03d099710a03ed393dfdcc8767a4982de01e75c88da0a0b902eeba903185c491aee846a261574c9da0
diff --git a/dev-python/WSME/WSME-0.6.2.ebuild b/dev-python/WSME/WSME-0.6.2.ebuild
new file mode 100644
index 00000000000..5f433dd94d5
--- /dev/null
+++ b/dev-python/WSME/WSME-0.6.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Simplify the writing of REST APIs, and extend them with additional protocols."
+HOMEPAGE="http://pythonhosted.org//WSME"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/simplegeneric[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/ipaddr[${PYTHON_USEDEP}]' python{2_7,3_2})
+"
diff --git a/dev-python/WSME/metadata.xml b/dev-python/WSME/metadata.xml
new file mode 100644
index 00000000000..ebde72ca994
--- /dev/null
+++ b/dev-python/WSME/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Simplify the writing of REST APIs, and extend them with additional protocols.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">WSME</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/XenAPI/Manifest b/dev-python/XenAPI/Manifest
new file mode 100644
index 00000000000..2550c7da56e
--- /dev/null
+++ b/dev-python/XenAPI/Manifest
@@ -0,0 +1 @@
+DIST XenAPI-1.2.tar.gz 3901 SHA256 b981924e1449eb24a1f0eea5bd1d11179c78be5c3f9bf32e98a486c43d513645 SHA512 24b0fd6591d5bca0ac2b17808afa8c762a3fdefdb44fac41cc223aaa16a58073a4160ecedeef0e1490df18fba8b20e2072b6dc68cbe0f53145351f76d9d1e621 WHIRLPOOL 9d7352502f1fb0f342d0b13ca992775c3e5010770586fb302eade96c40c27df451ce7d8ddb1a76defdbae7b7a5b694380ec7713015d0eedfe0cbf8dae97b802a
diff --git a/dev-python/XenAPI/XenAPI-1.2.ebuild b/dev-python/XenAPI/XenAPI-1.2.ebuild
new file mode 100644
index 00000000000..49324bece89
--- /dev/null
+++ b/dev-python/XenAPI/XenAPI-1.2.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Xen API SDK, for communication with Citrix XenServer and Xen Cloud Platform"
+HOMEPAGE="http://community.citrix.com/display/xs/Download+SDKs"
+SRC_URI="mirror://pypi/X/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/XenAPI/metadata.xml b/dev-python/XenAPI/metadata.xml
new file mode 100644
index 00000000000..0e0a1dcb0ea
--- /dev/null
+++ b/dev-python/XenAPI/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>xen</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">XenAPI</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/addons/Manifest b/dev-python/addons/Manifest
new file mode 100644
index 00000000000..63b1452bc2d
--- /dev/null
+++ b/dev-python/addons/Manifest
@@ -0,0 +1 @@
+DIST addons-0.7.zip 34220 SHA256 4d5f248c31db312081a3d562d1de433971e6cd2e94aeb00c4ebc08e22ea8f15c SHA512 4847508aebfac56586878e987eafc852bf41abb5734efbd4c0f12480a871e9820449f0c56a2da82060234a36b3b5b359d908283e6d830df56b759dd39661adb4 WHIRLPOOL 3a4cd4d4bafed479e8abb52ba904af8935a6592d9e479f03af11869f2046d50257e0f29a0e47d2fcc95720764b75fc17f793605ee047c97f4c618a5d0c602fa7
diff --git a/dev-python/addons/addons-0.7.ebuild b/dev-python/addons/addons-0.7.ebuild
new file mode 100644
index 00000000000..dda5629e909
--- /dev/null
+++ b/dev-python/addons/addons-0.7.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="AddOns"
+
+DESCRIPTION="Dynamically extend other objects (formerly ObjectRoles)"
+HOMEPAGE="http://pypi.python.org/pypi/AddOns/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip -> ${P}.zip"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+LICENSE="ZPL"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_PN}-${PV}
+
+python_test() {
+ "${PYTHON}" peak/util/addons.py && einfo "Tests passed under ${EPYTHON}" \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/addons/metadata.xml b/dev-python/addons/metadata.xml
new file mode 100644
index 00000000000..50e8fbf189c
--- /dev/null
+++ b/dev-python/addons/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">AddOns</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/adns-python/Manifest b/dev-python/adns-python/Manifest
new file mode 100644
index 00000000000..7bdf00ceee5
--- /dev/null
+++ b/dev-python/adns-python/Manifest
@@ -0,0 +1 @@
+DIST adns-python-1.2.1.tar.gz 18252 SHA256 30f4ae0c40f6b09b0fad60c1aa4b4b9ff250e62f6e5e6cc112949f880359a23e SHA512 00770a3eeb27acf7cdeeac9c76acc2cea30cd0f2620b98f3d2976cacbaf3103376cce1ce7a868114caa06caecd8a4fdbf29bdf1ef60f7b43294b41738e02a736 WHIRLPOOL 5ae46975a2bb671654c5c361cf2457604129d9caa72320dec6071211acfd67c35e43d027a44d02f27856aaee47d9c3b22c6afa1c5df2a7c618e6382f08524aa4
diff --git a/dev-python/adns-python/adns-python-1.2.1-r1.ebuild b/dev-python/adns-python/adns-python-1.2.1-r1.ebuild
new file mode 100644
index 00000000000..6dde44690dc
--- /dev/null
+++ b/dev-python/adns-python/adns-python-1.2.1-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for ADNS"
+HOMEPAGE="http://code.google.com/p/adns-python/ http://pypi.python.org/pypi/adns-python"
+SRC_URI="http://adns-python.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND=">=net-libs/adns-1.3"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/adns-python/metadata.xml b/dev-python/adns-python/metadata.xml
new file mode 100644
index 00000000000..10b55c2f311
--- /dev/null
+++ b/dev-python/adns-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">adns-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/adodb-py/Manifest b/dev-python/adodb-py/Manifest
new file mode 100644
index 00000000000..8938cade1ce
--- /dev/null
+++ b/dev-python/adodb-py/Manifest
@@ -0,0 +1 @@
+DIST adodb-220.zip 32438 SHA256 92dd475b96853f4932da64c1833cd5247e83cd61196dce67827b4b682d1fa50b SHA512 7aba87a32835b51639240194bc0745d58fd713fe2d6d5d5145f82eb1acb192377bc5dae904fa013b323f38ccd9d8dff77d99c0a8c91e1ee38c21e6a6b05a81d8 WHIRLPOOL d2d3f882c4f10d9a3771b69b40174481a5fed458a3e1d044a4d493b868c5152efdf8e2af67794738979e199a29267e085dbac3b25c954577b7865a38c01d8246
diff --git a/dev-python/adodb-py/adodb-py-2.20-r1.ebuild b/dev-python/adodb-py/adodb-py-2.20-r1.ebuild
new file mode 100644
index 00000000000..7c6847b5f0b
--- /dev/null
+++ b/dev-python/adodb-py/adodb-py-2.20-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='sqlite?'
+
+inherit distutils-r1
+
+MY_P=${PN/-py/}-${PV//./}
+
+DESCRIPTION="Active Data Objects Data Base library for Python"
+HOMEPAGE="http://adodb.sourceforge.net/"
+SRC_URI="mirror://sourceforge/adodb/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 x86"
+IUSE="mysql postgres sqlite"
+
+RDEPEND="postgres? ( dev-python/psycopg:0[${PYTHON_USEDEP}] )
+ mysql? ( >=dev-python/mysql-python-0.9.2[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}_sandbox_violation.patch"
+)
+
+python_install_all() {
+ local HTML_DOCS=( adodb-py-docs.htm *.gif )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/adodb-py/files/adodb-py_sandbox_violation.patch b/dev-python/adodb-py/files/adodb-py_sandbox_violation.patch
new file mode 100644
index 00000000000..ca79eb5a7db
--- /dev/null
+++ b/dev-python/adodb-py/files/adodb-py_sandbox_violation.patch
@@ -0,0 +1,22 @@
+diff -uNtr adodb-220.orig/setup.py adodb-220/setup.py
+--- adodb-220.orig/setup.py 2008-07-16 15:28:26.000000000 -0430
++++ adodb-220/setup.py 2009-09-19 00:01:24.000000000 -0430
+@@ -25,17 +25,3 @@
+ except:
+ pass
+
+-
+-for p in sys.path:
+- if p.find('site-packages')>0:
+- trydel(p+os.sep+'adodb.py')
+- trydel(p+os.sep+'adodb_access.py')
+- trydel(p+os.sep+'adodb_mssql.py')
+- trydel(p+os.sep+'adodb_mxodbc.py')
+- trydel(p+os.sep+'adodb_mxoracle.py')
+- trydel(p+os.sep+'adodb_mysql.py')
+- trydel(p+os.sep+'adodb_oci8.py')
+- trydel(p+os.sep+'adodb_odbc.py')
+- trydel(p+os.sep+'adodb_odbc_mssql.py')
+- trydel(p+os.sep+'adodb_postgres.py')
+- trydel(p+os.sep+'adodb_vfp.py')
+\ No newline at end of file
diff --git a/dev-python/adodb-py/metadata.xml b/dev-python/adodb-py/metadata.xml
new file mode 100644
index 00000000000..3f948189258
--- /dev/null
+++ b/dev-python/adodb-py/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>Database abstraction library for Python</longdescription>
+ <longdescription lang="ja">
+Python言語用データベース抽象化ライブラリです。
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">adodb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/aioeventlet/Manifest b/dev-python/aioeventlet/Manifest
new file mode 100644
index 00000000000..dfc7df906bf
--- /dev/null
+++ b/dev-python/aioeventlet/Manifest
@@ -0,0 +1 @@
+DIST aioeventlet-0.4.tar.gz 64314 SHA256 fe78c2b227ce077b1581e2ae2c071f351111d0878ec1b0216435f6a898df79a6 SHA512 6d76bacd1ccaf477f121bf57f2963d37c86208547beb5fe7d2c8dc22d787d7ed98761869d3957b9c1f62dc40ca462363f4a7cb2a80b6dabf13f89950d314c2ce WHIRLPOOL 4be9753fb9d2784ffd7e1590d0cebb5a9163d9fa178d5cf3537bf1c297d0e64eb921172af5d50c9cf9ada62ec77be6adbd74679f0aa429cfdba5eb193aeb87c1
diff --git a/dev-python/aioeventlet/aioeventlet-0.4.ebuild b/dev-python/aioeventlet/aioeventlet-0.4.ebuild
new file mode 100644
index 00000000000..62160f3bb17
--- /dev/null
+++ b/dev-python/aioeventlet/aioeventlet-0.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="asyncio event loop scheduling callbacks in eventlet"
+HOMEPAGE="http://pypi.python.org/pypi/aioeventlet https://bitbucket.org/haypo/aioeventlet"
+SRC_URI="mirror://pypi/a/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="
+ dev-python/eventlet[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/asyncio-0.4.1[${PYTHON_USEDEP}]' 'python3_3')
+ $(python_gen_cond_dep '>=dev-python/trollius-0.3[${PYTHON_USEDEP}]' 'python2_7')"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/aioeventlet/metadata.xml b/dev-python/aioeventlet/metadata.xml
new file mode 100644
index 00000000000..595605a0ea1
--- /dev/null
+++ b/dev-python/aioeventlet/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+aioeventlet implements the asyncio API (PEP 3156) on top of eventlet. It makes possible to write asyncio code in a project currently written for eventlet.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">aioeventlet</remote-id>
+ <remote-id type="bitbucket">haypo/aioeventlet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
new file mode 100644
index 00000000000..9dc53ab8a78
--- /dev/null
+++ b/dev-python/aiohttp/Manifest
@@ -0,0 +1 @@
+DIST aiohttp-0.14.4.tar.gz 1253273 SHA256 2338c8506ce7853ac2df7efba731a3fd015a7ee2561afab0d69ddefb43403f5a SHA512 453626e2acb2da85b39fd9dab01c51bbbbdf3422e2d7ff833e8be141f43d27d046646bafe6d58d96d37457208ecc2347a3724f056152c639c18de99da619538d WHIRLPOOL 42e8e23c3b1c28463617f9137288886ccf2d61fe404e8b06e105e0a48b36b06382a7a58a6e6c91bc38886e09874ba6112300fd6bf3adfce704129a7edbc4936d
diff --git a/dev-python/aiohttp/aiohttp-0.14.4-r1.ebuild b/dev-python/aiohttp/aiohttp-0.14.4-r1.ebuild
new file mode 100644
index 00000000000..b66fe1e3cf6
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-0.14.4-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP client/server for asyncio"
+HOMEPAGE="https://github.com/KeepSafe/aiohttp https://pypi.python.org/pypi/aiohttp"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/asyncio[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ www-servers/gunicorn[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/aiohttp/metadata.xml b/dev-python/aiohttp/metadata.xml
new file mode 100644
index 00000000000..79da0ee6f17
--- /dev/null
+++ b/dev-python/aiohttp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>bman@gentoo.org</email>
+ <name>Aaron Bauman</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">aiohttp</remote-id>
+ <remote-id type="github">KeepSafe/aiohttp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/alabaster/Manifest b/dev-python/alabaster/Manifest
new file mode 100644
index 00000000000..f0df1af0adf
--- /dev/null
+++ b/dev-python/alabaster/Manifest
@@ -0,0 +1,6 @@
+DIST alabaster-0.6.0.tar.gz 11086 SHA256 86423a9d10cff61524df31cba430e9beff4829d49d1334fa836f319eea1f8fdf SHA512 89946c37e069860791a0429ea183619d8052e661d2f5ded906456ca6b7fabe66a9f222b18f3f089d1a34929c0001bd2dd255b8c593d2acf733c4e409771372e0 WHIRLPOOL 712e39761cae5ec2e76ccce90a58b61880159991cf7663456dcf1c10208df6aef8e35a1a478b0a12219f7333a8ac96bb543509bf14fe029fda93b0a36cc2667b
+DIST alabaster-0.6.3.tar.gz 11749 SHA256 30d72e732d61f3ac74bb8bd6a2b063ec7b0522b00bfef979dce4435f7982439e SHA512 c9d102884eca20063da8929dbbd030faa3e86c7f8aeb4e72f9f7dcccbf94334efe2de0143939d8fcb8e79afbbfe6922cedc9621332242d0a482ab4f61b365c0f WHIRLPOOL 15eee45a1e868f765257c6655e33adb1c4da807875b704a76f08d760c4b688ffc26567fd8e00315f6cabbf45e7d82d7d968ccdef83d21e1b1339ed8f5e0ac4e7
+DIST alabaster-0.7.2.tar.gz 15024 SHA256 f8f436a350e37607a3a3d333b6c2d9baf3320cd661e72e95ee0e3037ac7a3157 SHA512 1a1b2c7f76b2c93042044c869e376512bda975765497186908520cba314129bb3ad34d39ab365105331d696b54eeae3094e320c2cb6429ebbd30a2019157b5e3 WHIRLPOOL 532da1cee88e9eedbb53acc263031ecbc796d90ea11075fc02108329b416c6a516ae7681b5ce7970d6e094dc836ed40f050bc75c8966b4e611b50f9af015d1b1
+DIST alabaster-0.7.4.tar.gz 15183 SHA256 ce77e2fdbaabaae393ffce2a6252a0a666e3977c6c2fa1c48c4ded0569785951 SHA512 42d7939b49b843611f6fe8be8b8c5f02cda9a3bb81b27a60c7764ff894d40a4a74deeadf183b3a23631100e925c76ce2cb3f8b479ce9c17ae279d5f720cf26af WHIRLPOOL e07b8cb114421463c105f9ec8eb4a6ffe6cdd1bd27eccdb36348e22f61fafb18d9b00eb5db1e4238897e8aec328840ec8a4ca259dce9f3fe2a1bb5ea2a9fb4fd
+DIST alabaster-0.7.5.tar.gz 16204 SHA256 8022f269eba3aefd390b927ac740ab1da7af15838e1c90caed0e66370eef8fd3 SHA512 abe51a04224163cd834609dd3a07710f12ec7c52e0859f25327e8067db27a460d723d340c25f8f2440f92c9ba2a968e021993a07bb8faef093d6af0a6209a4c8 WHIRLPOOL 1838aa91704b5c533847127052170731c2aad786c791c31a53d675fe95bc80fa764c595b272d9e4a3a01e646f533752320d2029057f794b3368ac1242e9aac89
+DIST alabaster-0.7.6.tar.gz 16598 SHA256 309d33e0282c8209f792f3527f41ec04e508ff837c61fc1906dde988a256deeb SHA512 90058e56365c59a4eed6034273ea83132fcf77ee26e3dfd2d9aa0233657192e1f32d8f40cd6477e307d063d0136ea5e18b94c6c0874a378d6386874dceccfdc8 WHIRLPOOL 2249f055772ce7a389df88a4a659a9a2b0b7c45992d9e225f93ecc79c9038c89474554fdf3557c78ff645242cffa0f1c4822f1b08831f1943140244931b7c812
diff --git a/dev-python/alabaster/alabaster-0.6.0.ebuild b/dev-python/alabaster/alabaster-0.6.0.ebuild
new file mode 100644
index 00000000000..42b190a34df
--- /dev/null
+++ b/dev-python/alabaster/alabaster-0.6.0.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A configurable sidebar-enabled Sphinx theme"
+HOMEPAGE="https://github.com/bitprophet/alabaster"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/alabaster/alabaster-0.6.3.ebuild b/dev-python/alabaster/alabaster-0.6.3.ebuild
new file mode 100644
index 00000000000..af905cf4f0e
--- /dev/null
+++ b/dev-python/alabaster/alabaster-0.6.3.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A configurable sidebar-enabled Sphinx theme"
+HOMEPAGE="https://github.com/bitprophet/alabaster"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="amd64 x86"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/alabaster/alabaster-0.7.2.ebuild b/dev-python/alabaster/alabaster-0.7.2.ebuild
new file mode 100644
index 00000000000..fe40f450010
--- /dev/null
+++ b/dev-python/alabaster/alabaster-0.7.2.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A configurable sidebar-enabled Sphinx theme"
+HOMEPAGE="https://github.com/bitprophet/alabaster"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/alabaster/alabaster-0.7.4.ebuild b/dev-python/alabaster/alabaster-0.7.4.ebuild
new file mode 100644
index 00000000000..9aa52bdf086
--- /dev/null
+++ b/dev-python/alabaster/alabaster-0.7.4.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A configurable sidebar-enabled Sphinx theme"
+HOMEPAGE="https://github.com/bitprophet/alabaster"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/alabaster/alabaster-0.7.5.ebuild b/dev-python/alabaster/alabaster-0.7.5.ebuild
new file mode 100644
index 00000000000..9aa52bdf086
--- /dev/null
+++ b/dev-python/alabaster/alabaster-0.7.5.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A configurable sidebar-enabled Sphinx theme"
+HOMEPAGE="https://github.com/bitprophet/alabaster"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/alabaster/alabaster-0.7.6.ebuild b/dev-python/alabaster/alabaster-0.7.6.ebuild
new file mode 100644
index 00000000000..9aa52bdf086
--- /dev/null
+++ b/dev-python/alabaster/alabaster-0.7.6.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A configurable sidebar-enabled Sphinx theme"
+HOMEPAGE="https://github.com/bitprophet/alabaster"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/alabaster/metadata.xml b/dev-python/alabaster/metadata.xml
new file mode 100644
index 00000000000..1dc910e6ecc
--- /dev/null
+++ b/dev-python/alabaster/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">alabaster</remote-id>
+ <remote-id type="github">bitprophet/alabaster</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/alembic/Manifest b/dev-python/alembic/Manifest
new file mode 100644
index 00000000000..18304e6ecda
--- /dev/null
+++ b/dev-python/alembic/Manifest
@@ -0,0 +1,4 @@
+DIST alembic-0.6.7.tar.gz 467942 SHA256 55c35e897d2970bae45345ff4c8a190e773a08f4289299de694ebfebfb0c6946 SHA512 21bf62bb035cac6686599ec3a5a7dcd8505ca590f37f5667990f18b3070b1490ca083950cec9714fe10947ca05df9598e14c69eb915d3e5d5d958414d00dc5f6 WHIRLPOOL b3a10fbef104167cbd89f08e6dfe00a2559b2e6d620026539af64911d23f5db60873c91c995d55204bbaed6646f2f7f9b834e477c690d0b5abd8050de3e1fdd9
+DIST alembic-0.7.4.tar.gz 604836 SHA256 550f10b2266f689778eced2fed899bfd05755737478454b97fb99385f2e780e5 SHA512 258d2f7fe046e7fd662fae0b68ba19988cc59fd1d0d8bb6e1b3b0ea133d076d649d6bc99933ac50be538d1c4d64062b2b2d259cb042d9bbddf7346d0283af383 WHIRLPOOL eaa17f8b0bd91ca8eb11292bc0be45443b43564b06ec1461c5d6b60dcbd3777c443c6a355164057334080a7dbf37f32cf591f176deb52afdb12d7ca79de4a766
+DIST alembic-0.7.6.tar.gz 623931 SHA256 864fa461265d6c97bcefee603e9ef0b6385bda9063d41b3db3e010abbba5ef61 SHA512 08d04f4ad0d5e8fe5741fab7480e6652f26449e393af4406c62acd7aa039618cce8db64ebf113565ee5b98c5e19a813b4ebd2ad15d68a717c48080a3418d517e WHIRLPOOL ce2a5894df399b773a1ee8e8163391fd05c3df8d8b5f6f31bd949f8e5a1ec7b4f837f1eb32e231ce5b5b831faedf35f685b02b02f88075125df2561b2ab64846
+DIST alembic-0.7.7.tar.gz 721855 SHA256 abdeded3f92766d30d2e00015f73573e23f96bcb38037fac199a75445e3e66c6 SHA512 5478987f37ca724e168fd4de4bd557ca3344aa0539ae25dd56fc05b855ec02004a1d8c3c14aa3f3715eaaa74431d1b25121810c3f197ba5def67afbbe41e62eb WHIRLPOOL e10e6930a559fa7a8e90dab83a08d3f9c2a252085d4732036e5e07c9b75329d851a64f6d68639eda88fdb136cfc43078434e23e5438551569ca55eb295a192a8
diff --git a/dev-python/alembic/alembic-0.6.7.ebuild b/dev-python/alembic/alembic-0.6.7.ebuild
new file mode 100644
index 00000000000..448ef447b03
--- /dev/null
+++ b/dev-python/alembic/alembic-0.6.7.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="database migrations tool, written by the author of SQLAlchemy"
+HOMEPAGE="https://bitbucket.org/zzzeek/alembic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test doc"
+
+# requires.txt cites 'SQLAlchemy>=0.7.3' which is really both old and silly
+# because it shatters the testsuite. If 'someone' cares to adhere to correct form
+# and edit to -0.7.3, feel free, and then pick up the pieces.
+RDEPEND=">=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# For test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # suite passes all if run from source. The residual fail & error are quite erroneous
+ sed -e 's:class SourcelessVersioningTest(VersioningTest):#&:' \
+ -e 's:sourceless = True:#&:' \
+ -e 's:test_needs_flag:_&:' \
+ -i tests/test_versioning.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests tests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/alembic/alembic-0.7.4.ebuild b/dev-python/alembic/alembic-0.7.4.ebuild
new file mode 100644
index 00000000000..26782e5fb0e
--- /dev/null
+++ b/dev-python/alembic/alembic-0.7.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="database migrations tool, written by the author of SQLAlchemy"
+HOMEPAGE="https://bitbucket.org/zzzeek/alembic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test doc"
+
+# requires.txt cites 'SQLAlchemy>=0.7.3' which is really both old and silly
+# because it shatters the testsuite. If 'someone' cares to adhere to correct form
+# and edit to -0.7.3, feel free, and then pick up the pieces.
+RDEPEND=">=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# For test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # suite passes all if run from source. The residual fail & error are quite erroneous
+ rm tests/test_script_consumption.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${EPYTHON} run_tests.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/alembic/alembic-0.7.6.ebuild b/dev-python/alembic/alembic-0.7.6.ebuild
new file mode 100644
index 00000000000..424534017e2
--- /dev/null
+++ b/dev-python/alembic/alembic-0.7.6.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="database migrations tool, written by the author of SQLAlchemy"
+HOMEPAGE="https://bitbucket.org/zzzeek/alembic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test doc"
+
+# requires.txt cites 'SQLAlchemy>=0.7.3' which is really both old and silly
+# because it shatters the testsuite. If 'someone' cares to adhere to correct form
+# and edit to -0.7.3, feel free, and then pick up the pieces.
+RDEPEND=">=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# For test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # suite passes all if run from source. The residual fail & error are quite erroneous
+ rm tests/test_script_consumption.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${EPYTHON} run_tests.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/alembic/alembic-0.7.7.ebuild b/dev-python/alembic/alembic-0.7.7.ebuild
new file mode 100644
index 00000000000..424534017e2
--- /dev/null
+++ b/dev-python/alembic/alembic-0.7.7.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="database migrations tool, written by the author of SQLAlchemy"
+HOMEPAGE="https://bitbucket.org/zzzeek/alembic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test doc"
+
+# requires.txt cites 'SQLAlchemy>=0.7.3' which is really both old and silly
+# because it shatters the testsuite. If 'someone' cares to adhere to correct form
+# and edit to -0.7.3, feel free, and then pick up the pieces.
+RDEPEND=">=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# For test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # suite passes all if run from source. The residual fail & error are quite erroneous
+ rm tests/test_script_consumption.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${EPYTHON} run_tests.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/alembic/metadata.xml b/dev-python/alembic/metadata.xml
new file mode 100644
index 00000000000..b0ab8676db4
--- /dev/null
+++ b/dev-python/alembic/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>yac@gentoo.org</email>
+ <name>Jan Matějka</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">alembic</remote-id>
+ <remote-id type="bitbucket">zzzeek/alembic</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/algopy/Manifest b/dev-python/algopy/Manifest
new file mode 100644
index 00000000000..fbb8a616388
--- /dev/null
+++ b/dev-python/algopy/Manifest
@@ -0,0 +1,3 @@
+DIST algopy-0.5.1.tar.gz 135183 SHA256 509e3ec6068bd6ed4c336546f8a8d84aa1083c2fd50a1a4f4d26df606bd0e901 SHA512 384e22e89db7bc999aad29269d0f9669d4b72f3cd08860a4346801470b5b912d63cea8493c902639f35526e53979771dea8c8b3caf2d431ca45bb47892cd1308 WHIRLPOOL b8121f3106d5b05e60ce81517531d4d0de6756dc7fa2af11eea0c2fce55cfc9a306dfd928fc778886f4742308e7bea12ea49eed87d11438fc1e6efd274d0d282
+DIST algopy-0.5.2.tar.gz 148172 SHA256 a87aeb8a406fd26a3aecd6f2d7634135411ce77b9623665c51cb8a194fb76234 SHA512 9c8cd6947050d39d312836c14b790acab4ccdc9e8fcb060916f777a330da35ea8c7f987c26e3116da8a7a3bd004860d5aef789e74768c21c687febcfffdf6444 WHIRLPOOL 966d21c2d71eddba0d277706c3a88d14d76024bba60433ab8dd4e45459cbef1f08efd141debd05b039c9180618f13c23f92cb68bad6fd648109f1a3b3b69d5fc
+DIST algopy-0.5.3.tar.gz 149560 SHA256 2380bafeeeca4e07012d4b0017e163fce260dc50f2d8593ca883b2d761338aed SHA512 43b3cd4f17fa821fc61898534f595202097cd56d57133a1d13e23743c794166a0f8877947cc6eae6d2ac2fd7400e2a6527ee8229ec1b26ea660ac9c01cd22912 WHIRLPOOL d81ae613354879d99bdfc60b962ee5be7b6a2eeef1f7da7c76a2e90cd0ae187abd860f658c379e945b10fbf82b3972eae9ef2036ccd8f251c618a58f0cf09969
diff --git a/dev-python/algopy/algopy-0.5.1.ebuild b/dev-python/algopy/algopy-0.5.1.ebuild
new file mode 100644
index 00000000000..900facfc555
--- /dev/null
+++ b/dev-python/algopy/algopy-0.5.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Taylor Arithmetic Computation and Algorithmic Differentiation"
+HOMEPAGE="https://pypi.python.org/pypi/algopy http://packages.python.org/algopy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ ${EPYTHON} run_tests.py || die
+}
diff --git a/dev-python/algopy/algopy-0.5.2.ebuild b/dev-python/algopy/algopy-0.5.2.ebuild
new file mode 100644
index 00000000000..900facfc555
--- /dev/null
+++ b/dev-python/algopy/algopy-0.5.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Taylor Arithmetic Computation and Algorithmic Differentiation"
+HOMEPAGE="https://pypi.python.org/pypi/algopy http://packages.python.org/algopy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ ${EPYTHON} run_tests.py || die
+}
diff --git a/dev-python/algopy/algopy-0.5.3.ebuild b/dev-python/algopy/algopy-0.5.3.ebuild
new file mode 100644
index 00000000000..900facfc555
--- /dev/null
+++ b/dev-python/algopy/algopy-0.5.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Taylor Arithmetic Computation and Algorithmic Differentiation"
+HOMEPAGE="https://pypi.python.org/pypi/algopy http://packages.python.org/algopy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ ${EPYTHON} run_tests.py || die
+}
diff --git a/dev-python/algopy/metadata.xml b/dev-python/algopy/metadata.xml
new file mode 100644
index 00000000000..d94b0872081
--- /dev/null
+++ b/dev-python/algopy/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">algopy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/amodem/Manifest b/dev-python/amodem/Manifest
new file mode 100644
index 00000000000..49a37e5bf83
--- /dev/null
+++ b/dev-python/amodem/Manifest
@@ -0,0 +1,3 @@
+DIST amodem-1.10.tar.gz 19168 SHA256 a3ba8fc29230d40e0077040561e47b2626a375ca2a42e31aed1401187ae2c421 SHA512 408e2ec0c81f08d5e1567cf0216b9918efbd76887726dc8afade03669aa43f7f32052d8428718333d4e118be8716e9edf4cccd8a813609bc025ad6f1e1631c63 WHIRLPOOL 7fba535ad787303e281ebdc3a1482399fc50f5dd61ca4afe1a202334662e6e28bae53d9e4dd30992811e6b075bc0c1b446180634c91eaa5cb824a4e1832f0c5f
+DIST amodem-1.11.tar.gz 19869 SHA256 00a4c19fb8a9e6dff9459a2cb021c0adc5c669ac1658685f2388457c409931c6 SHA512 f045a771215b50eb387a92209bd1aba0f47f7779b78b720ce49590d6e14ad0b176be6099f78e3b959a61f018b06768bad1f39555c77388d545d088f5cede3fb7 WHIRLPOOL b6b42dd5b240c4704ee26a86a43e9b254673bee2782c976317abf501075b0ed225028df650e03f1b88195c31d75269217ee573ac29370af2afc367cc7488fae9
+DIST amodem-1.9.tar.gz 19301 SHA256 a668abe618446a6925b4262cbd884ea9f2ef38bf44481d37f09cf1f1f0989c95 SHA512 92206cc45d58605f3bc2f00c466712e9ca7e4af6e257817483e69c9f84cdcf8996c99872360b1717f584357b395d81c907493180318bf8b93c6f0ad40caf1305 WHIRLPOOL a1c0ec6cbcf4d18890d22f1c051e78dc904a4bbca3d745fc7615ea93eca57f1110038e21a4091479d0ba75f4d5c885d361ec05b6b51d0385498ac328987f5318
diff --git a/dev-python/amodem/amodem-1.10.ebuild b/dev-python/amodem/amodem-1.10.ebuild
new file mode 100644
index 00000000000..1eb9d3a0f42
--- /dev/null
+++ b/dev-python/amodem/amodem-1.10.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Transmit data between two computers using audio"
+HOMEPAGE="https://github.com/romanz/amodem"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/amodem/amodem-1.11.ebuild b/dev-python/amodem/amodem-1.11.ebuild
new file mode 100644
index 00000000000..1eb9d3a0f42
--- /dev/null
+++ b/dev-python/amodem/amodem-1.11.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Transmit data between two computers using audio"
+HOMEPAGE="https://github.com/romanz/amodem"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/amodem/amodem-1.9.ebuild b/dev-python/amodem/amodem-1.9.ebuild
new file mode 100644
index 00000000000..1eb9d3a0f42
--- /dev/null
+++ b/dev-python/amodem/amodem-1.9.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Transmit data between two computers using audio"
+HOMEPAGE="https://github.com/romanz/amodem"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/amodem/metadata.xml b/dev-python/amodem/metadata.xml
new file mode 100644
index 00000000000..18386e75e2f
--- /dev/null
+++ b/dev-python/amodem/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <maintainer>
+ <email>luke-jr+gentoobugs@utopios.org</email>
+ <name>Luke Dashjr</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">amodem</remote-id>
+ <remote-id type="github">romanz/amodem</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/amqplib/Manifest b/dev-python/amqplib/Manifest
new file mode 100644
index 00000000000..35fa5a096eb
--- /dev/null
+++ b/dev-python/amqplib/Manifest
@@ -0,0 +1,2 @@
+DIST amqplib-0.6.1.tgz 53680 SHA256 0f2618b74d95cd360a6d46a309a3fb1c37d881a237e269ac195a69a34e0e2f62 SHA512 ec97312e8fe8a297dff37057f7498ab72d1655aa3ac22453c84b6142db8469a51a29c676a359802be45a575b91e7f72f624233564a8e41aeeb987acbb1412954 WHIRLPOOL a75b19a1bd74d8d9a212d703c6a7b0a240ec0866cae4276e580a5f4abc5ad72224152f419b3dc37c12529d08dffc14c18107077ea4a93570fa5ff6341448a8d7
+DIST amqplib-1.0.2.tgz 58544 SHA256 843d69b681a60afd21fbf50f310404ec67fcdf9d13dfcf6e9d41f3b456217e5b SHA512 6c8c9fd7fd68fd6a1eb944962094e57f89525bc78dd002dc0dadd491b262293367a86569dfc52f0701723b4327b7c290150dc2e69e3ac1a28613578d9e0d0710 WHIRLPOOL f3584906a9f6407271335d838cd3b49d3d04b1ec9da04cbc0483272c6f3a73c7307f6bacd6ef8f4a6cf64a348eae631619c1ab09a951d0f3aaa69a1271964cb2
diff --git a/dev-python/amqplib/amqplib-0.6.1-r1.ebuild b/dev-python/amqplib/amqplib-0.6.1-r1.ebuild
new file mode 100644
index 00000000000..f283aaf974c
--- /dev/null
+++ b/dev-python/amqplib/amqplib-0.6.1-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python client for the Advanced Message Queuing Procotol (AMQP)"
+HOMEPAGE="http://code.google.com/p/py-amqplib/"
+SRC_URI="http://py-amqplib.googlecode.com/files/${P}.tgz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="examples extras test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}/${P}_disable_socket_tests.patch"
+)
+
+python_test() {
+ "${PYTHON}" tests/client_0_8/run_all.py \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc -r docs/.
+ if use examples; then
+ docinto examples
+ dodoc -r demo/.
+ fi
+ if use extras; then
+ insinto /usr/share/${PF}
+ doins -r extras
+ fi
+}
diff --git a/dev-python/amqplib/amqplib-1.0.2-r1.ebuild b/dev-python/amqplib/amqplib-1.0.2-r1.ebuild
new file mode 100644
index 00000000000..cbb514b5b0c
--- /dev/null
+++ b/dev-python/amqplib/amqplib-1.0.2-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python client for the Advanced Message Queuing Procotol (AMQP)"
+HOMEPAGE="http://code.google.com/p/py-amqplib/"
+SRC_URI="http://py-amqplib.googlecode.com/files/${P}.tgz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples extras test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.6.1_disable_socket_tests.patch"
+ "${FILESDIR}/${P}-unicode_tests_py3.patch"
+)
+
+python_test() {
+ "${PYTHON}" tests/client_0_8/run_all.py \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc -r docs/.
+ if use examples; then
+ docinto examples
+ dodoc -r demo/.
+ fi
+ if use extras; then
+ insinto /usr/share/${PF}
+ doins -r extras
+ fi
+}
diff --git a/dev-python/amqplib/files/amqplib-0.6.1_disable_socket_tests.patch b/dev-python/amqplib/files/amqplib-0.6.1_disable_socket_tests.patch
new file mode 100644
index 00000000000..c92e3cba64f
--- /dev/null
+++ b/dev-python/amqplib/files/amqplib-0.6.1_disable_socket_tests.patch
@@ -0,0 +1,17 @@
+diff -uNr amqplib-0.6.1.org/tests/client_0_8/run_all.py amqplib-0.6.1/tests/client_0_8/run_all.py
+--- amqplib-0.6.1.org/tests/client_0_8/run_all.py 2011-07-06 16:21:22.000000000 -0400
++++ amqplib-0.6.1/tests/client_0_8/run_all.py 2011-07-06 16:21:38.000000000 -0400
+@@ -28,13 +28,8 @@
+ 'test_exceptions',
+ 'test_serialization',
+ 'test_basic_message',
+- 'test_connection',
+- 'test_channel',
+ ]
+
+-if sys.version_info >= (2, 5):
+- TEST_NAMES.append('test_with')
+-
+ def main():
+ suite = unittest.TestLoader().loadTestsFromNames(TEST_NAMES)
+ unittest.TextTestRunner(**settings.test_args).run(suite)
diff --git a/dev-python/amqplib/files/amqplib-1.0.2-unicode_tests_py3.patch b/dev-python/amqplib/files/amqplib-1.0.2-unicode_tests_py3.patch
new file mode 100644
index 00000000000..14252a67820
--- /dev/null
+++ b/dev-python/amqplib/files/amqplib-1.0.2-unicode_tests_py3.patch
@@ -0,0 +1,63 @@
+--- a/tests/client_0_8/test_serialization.py 2011-07-18 00:11:48.000000000 -0400
++++ b/tests/client_0_8/test_serialization.py 2012-03-02 16:54:35.000000000 -0500
+@@ -32,6 +32,18 @@
+ # Python 2.5 and lower
+ bytes = str
+
++#Unicode Strings for py3 tests
++uni_strings = {
++ 'u0100' : '\u0100',
++ 'hello' : 'hello',
++ 'a' : 'a',
++ 'another' : 'And something in unicode'
++}
++
++if hasattr(str, 'decode'):
++ for wk, wv in uni_strings.iteritems():
++ uni_strings[wk] = wv.decode("utf-8")
++
+ import settings
+
+ from amqplib.client_0_8.serialization import AMQPReader, AMQPWriter, GenericContent
+@@ -232,12 +244,12 @@
+
+ def test_shortstr_unicode(self):
+ w = AMQPWriter()
+- w.write_shortstr(u'hello')
++ w.write_shortstr(uni_strings['hello'])
+ s = w.getvalue()
+ self.assertEqualBinary(s, '\x05hello')
+
+ r = AMQPReader(s)
+- self.assertEqual(r.read_shortstr(), u'hello')
++ self.assertEqual(r.read_shortstr(),uni_strings['hello'])
+
+ def test_long_shortstr(self):
+ w = AMQPWriter()
+@@ -245,7 +257,7 @@
+
+ def test_long_shortstr_unicode(self):
+ w = AMQPWriter()
+- self.assertRaises(ValueError, w.write_shortstr, u'\u0100' * 128)
++ self.assertRaises(ValueError, w.write_shortstr, uni_strings['u0100'] * 128)
+
+
+ #
+@@ -273,7 +285,7 @@
+ self.assertEqual(r.read_longstr(), str(val))
+
+ def test_longstr_unicode(self):
+- val = u'a' * 512
++ val = uni_strings['a'] * 512
+ w = AMQPWriter()
+ w.write_longstr(val)
+ s = w.getvalue()
+@@ -324,7 +336,7 @@
+ 'foo': 7,
+ 'bar': Decimal('123345.1234'),
+ 'baz': 'this is some random string I typed',
+- 'ubaz': u'And something in unicode',
++ 'ubaz': uni_strings['another'],
+ 'dday_aniv': datetime(1994, 6, 6),
+ 'more': {
+ 'abc': -123,
diff --git a/dev-python/amqplib/metadata.xml b/dev-python/amqplib/metadata.xml
new file mode 100644
index 00000000000..c021a58ce6e
--- /dev/null
+++ b/dev-python/amqplib/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus Rivero</name>
+ </maintainer>
+ <use>
+ <flag name="extras">Install extra tools to generate initial Python mod
+ from an AMQP XML file</flag>
+ </use>
+ <upstream>
+ <remote-id type="google-code">py-amqplib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/aniso8601/Manifest b/dev-python/aniso8601/Manifest
new file mode 100644
index 00000000000..1d7cc79c399
--- /dev/null
+++ b/dev-python/aniso8601/Manifest
@@ -0,0 +1,5 @@
+DIST aniso8601-0.82.tar.gz 64186 SHA256 e33ffc4ff6882e6a318c07844e346cd6160abe2f48cc2e797d2fe5f36364789e SHA512 7b43f0d6284b55f4a56d376f1898c8375336f7c66ddda3fc35766409feae80b5d9e0d86667204fbc896195ab625233d0207eefe52c110a52d79acf07378e55fc WHIRLPOOL 895ef0c4e5d00f142376db3a40200775ed9e1fbe509b82bec279a79c82374afdeb8da7d2f5e5e7720ec2c892d498f61538f977ae8cc806e62472d01f66fd5583
+DIST aniso8601-0.83.tar.gz 58487 SHA256 1153cfe2599da556c6ce664b12c0e39659340cc6633a316b34eaac480f276429 SHA512 393bbc59dfad69be4224c1149fdfd305486188aae14336b065791e994c50719ba163ba7a701fc785a25ff983861242a8d171a39139f4d475c002f4f4b8405761 WHIRLPOOL f32edfa8d52c820d466322b7b1a4e1cd1d5514276fe7c4cbf529453d4015b1608abd507a199b5079fb36fcb7f0c070675384677877649bb0da51c1249f85d818
+DIST aniso8601-0.90.tar.gz 64577 SHA256 2c0ec72a4185c2dd05eac0b2faa8d47a0477a17ca0784e1a547e544777116226 SHA512 b238461b5fa10236a9f6e9af5befff88b263fea872655dfb479b00045f4da07b7ec6ead9822f49b19ea0bc105d33db76a99efb4dec04fe85761bb0dcdc2a7d44 WHIRLPOOL 6c6df3d4cb1a2484050ff29113ad7f5a45c5dc2efd49aed50cb2286541c3cf562cee777fca3845108f7dd19f3281f720b32a7bafe337f01b13dc59978f0b768c
+DIST aniso8601-0.92.tar.gz 17810 SHA256 60860b5a13bf3c60ab5bc849ac5c55a1cb4113434eff032281ceb47578cc9da9 SHA512 4c962d42d4a09cb7b2625338489a76dd998201e9f12c86b81ca166113741837941a3b0287dbb13fb3bb42ef95a86c0f28816553556d283b85114b1ce705059d5 WHIRLPOOL 0d39a2309e4687ce1699db2a23bfd3a35ae15e65c056c3823dd77d74f6e863b0c2243bb2284fdb0c2f9d56e30f1e50110c857fcf5183967509efb0091f9458bc
+DIST aniso8601-1.0.0.tar.gz 44260 SHA256 f0bf0108bb24f7c7cb0b0408721a52bee9ac2fd838082c135cd8da87f4d951f4 SHA512 d1275420ece5323c176dd7a21767cb3c4126dcd94a8aa7f4334f1ba8223aecd9a7510cf5edd62990bd8dae505a3fa4fd2eb18178cfafbf28fae9dd857cc2cee3 WHIRLPOOL b4b13f2d05f24a6172619ecc197a820bc72e699b7e6ca93c789fd1b15db4696b5afb47d796fa496e8db482e19db392ffc321812ccc06129078c6628fc158cdac
diff --git a/dev-python/aniso8601/aniso8601-0.82.ebuild b/dev-python/aniso8601/aniso8601-0.82.ebuild
new file mode 100644
index 00000000000..be461ba600f
--- /dev/null
+++ b/dev-python/aniso8601/aniso8601-0.82.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for parsing ISO 8601 strings"
+HOMEPAGE="https://bitbucket.org/nielsenb/aniso8601/ https://pypi.python.org/pypi/aniso8601/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ local testdir=python2
+ python_is_python3 && testdir=python3
+
+ "${PYTHON}" -m unittest discover ${testdir}/${PN}/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/aniso8601/aniso8601-0.83.ebuild b/dev-python/aniso8601/aniso8601-0.83.ebuild
new file mode 100644
index 00000000000..9ab1be70f0b
--- /dev/null
+++ b/dev-python/aniso8601/aniso8601-0.83.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for parsing ISO 8601 strings"
+HOMEPAGE="https://bitbucket.org/nielsenb/aniso8601/ https://pypi.python.org/pypi/aniso8601/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ local testdir=python2
+ python_is_python3 && testdir=python3
+
+ "${PYTHON}" -m unittest discover ${testdir}/${PN}/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/aniso8601/aniso8601-0.90.ebuild b/dev-python/aniso8601/aniso8601-0.90.ebuild
new file mode 100644
index 00000000000..eb3d2a90a81
--- /dev/null
+++ b/dev-python/aniso8601/aniso8601-0.90.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for parsing ISO 8601 strings"
+HOMEPAGE="https://bitbucket.org/nielsenb/aniso8601/ https://pypi.python.org/pypi/aniso8601/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ local testdir=python2
+ python_is_python3 && testdir=python3
+
+ "${PYTHON}" -m unittest discover ${testdir}/${PN}/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/aniso8601/aniso8601-0.92.ebuild b/dev-python/aniso8601/aniso8601-0.92.ebuild
new file mode 100644
index 00000000000..1cc7e337b17
--- /dev/null
+++ b/dev-python/aniso8601/aniso8601-0.92.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for parsing ISO 8601 strings"
+HOMEPAGE="https://bitbucket.org/nielsenb/aniso8601/ https://pypi.python.org/pypi/aniso8601/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" -m unittest discover ${PN}/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/aniso8601/aniso8601-1.0.0.ebuild b/dev-python/aniso8601/aniso8601-1.0.0.ebuild
new file mode 100644
index 00000000000..ea7701711b6
--- /dev/null
+++ b/dev-python/aniso8601/aniso8601-1.0.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for parsing ISO 8601 strings"
+HOMEPAGE="https://bitbucket.org/nielsenb/aniso8601/ https://pypi.python.org/pypi/aniso8601/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" -m unittest discover ${PN}/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/aniso8601/metadata.xml b/dev-python/aniso8601/metadata.xml
new file mode 100644
index 00000000000..551ccb5eb0f
--- /dev/null
+++ b/dev-python/aniso8601/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">aniso8601</remote-id>
+ <remote-id type="bitbucket">nielsenb/aniso8601</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ansi2html/Manifest b/dev-python/ansi2html/Manifest
new file mode 100644
index 00000000000..6b65e06957b
--- /dev/null
+++ b/dev-python/ansi2html/Manifest
@@ -0,0 +1,2 @@
+DIST ansi2html-1.0.7.tar.gz 52307 SHA256 fcc732e4d10627f8060921c54c751ff181a098ceccd116311b4c6e26ec2ea5cd SHA512 75f6601315e47ec5fbd28fb360316e55f8204cf81f9ed9f6374318436b04b1baf86b556885a5a9a1f67a3495357b89d74ad23d3b0680817c09b5d9e82eb4c1f6 WHIRLPOOL 47834d7efc2fe475d2d588b73fc3dd641c37147e574d0ef4e57c997f3a090eb3da8d73aa6f2ad02479d32a82b55fd0c6dc45a4e8593d6598086bed71c3486df2
+DIST ansi2html-1.1.0.tar.gz 51514 SHA256 537fc4ececf872f83d5cbd218fb64bb49304d258487e283736bb9e5e64319ad3 SHA512 2121c91c821a89d63fcb6c27a8a088968a150a447c5c2a270b781aabd19e07387e59bc1c291e818569c4bafe495c2d3d2c2c6f172406fa830467e3ad541e3e21 WHIRLPOOL db8292f3ebd434a3507ea4f55c32c80e62bbe06a80f9baf2d21089ae27b6a3365cea1e9be4d16d9ed050d01402bdccfad477a8c7b5d19004fa6d250f87d9a6a9
diff --git a/dev-python/ansi2html/ansi2html-1.0.7.ebuild b/dev-python/ansi2html/ansi2html-1.0.7.ebuild
new file mode 100644
index 00000000000..83f388cb90d
--- /dev/null
+++ b/dev-python/ansi2html/ansi2html-1.0.7.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Convert text with ANSI color codes to HTML"
+HOMEPAGE="http://pypi.python.org/pypi/ansi2html https://github.com/ralphbean/ansi2html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE="test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ chmod -x "${S}"/tests/* || die
+ esetup.py check
+ esetup.py test
+}
+
+python_install_all() {
+ doman man/ansi2html.1
+ DOCS=( README.rst man/ansi2html.1.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ansi2html/ansi2html-1.1.0.ebuild b/dev-python/ansi2html/ansi2html-1.1.0.ebuild
new file mode 100644
index 00000000000..3a0a68e5f40
--- /dev/null
+++ b/dev-python/ansi2html/ansi2html-1.1.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Convert text with ANSI color codes to HTML"
+HOMEPAGE="http://pypi.python.org/pypi/ansi2html https://github.com/ralphbean/ansi2html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/six-1.7.3[${PYTHON_USEDEP}]"
+DEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ chmod -x "${S}"/tests/* || die
+ esetup.py check
+ esetup.py test
+}
+
+python_install_all() {
+ doman man/ansi2html.1
+ DOCS=( README.rst man/ansi2html.1.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ansi2html/files/ansi2html-0.9.1-fix-0-control-code.patch b/dev-python/ansi2html/files/ansi2html-0.9.1-fix-0-control-code.patch
new file mode 100644
index 00000000000..6e51d3f1d97
--- /dev/null
+++ b/dev-python/ansi2html/files/ansi2html-0.9.1-fix-0-control-code.patch
@@ -0,0 +1,28 @@
+From f4371f16fd9ba9bffdd32a877b32f78222aef87c Mon Sep 17 00:00:00 2001
+From: Corentin Chary <corentin.chary@gmail.com>
+Date: Sun, 22 Jul 2012 09:25:15 +0200
+Subject: [PATCH 3/3] The 0 control code could be at the end of a sequence
+
+Example: u"\x1b[32;01m * \x1b[39;49;00m *"
+Note that here 39 and 49 "reset to default" codes are still
+not handled.
+---
+ ansi2html/converter.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ansi2html/converter.py b/ansi2html/converter.py
+index 0609a9e..23be2d0 100755
+--- a/ansi2html/converter.py
++++ b/ansi2html/converter.py
+@@ -147,7 +147,7 @@ class Ansi2HTMLConverter(object):
+ if params[0] in [38, 48]:
+ params = ["%i-%i" % (params[0], params[2])] + params[3:]
+
+- if params == [0]:
++ if 0 in params:
+ # If the control code 0 is present, close all tags we've
+ # opened so far. i.e. reset all attributes
+ yield '</span>' * n_open
+--
+1.7.9.5
+
diff --git a/dev-python/ansi2html/files/ansi2html-0.9.1-fix-sys-argv-in-tests.patch b/dev-python/ansi2html/files/ansi2html-0.9.1-fix-sys-argv-in-tests.patch
new file mode 100644
index 00000000000..9e8fbe38c0f
--- /dev/null
+++ b/dev-python/ansi2html/files/ansi2html-0.9.1-fix-sys-argv-in-tests.patch
@@ -0,0 +1,27 @@
+From d70863b135d959a6e79cf3019700cac302336abe Mon Sep 17 00:00:00 2001
+From: Corentin Chary <corentin.chary@gmail.com>
+Date: Sun, 22 Jul 2012 09:24:52 +0200
+Subject: [PATCH 2/3] Always patch sys.argv when calling main()
+
+---
+ tests/test_ansi2html.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_ansi2html.py b/tests/test_ansi2html.py
+index 00b794f..c961859 100644
+--- a/tests/test_ansi2html.py
++++ b/tests/test_ansi2html.py
+@@ -45,8 +45,9 @@ class TestAnsi2HTML(unittest.TestCase):
+ actual = html[idx].strip()
+ self.assertEqual(expected, actual)
+
++ @patch("sys.argv", new_callable=lambda: ["ansi2html"])
+ @patch("sys.stdout", new_callable=six.StringIO)
+- def test_conversion_as_command(self, mock_stdout):
++ def test_conversion_as_command(self, mock_stdout, mock_argv):
+ with open(join(_here, "ansicolor.txt"), "rb") as input:
+ test_data = "".join(read_to_unicode(input))
+
+--
+1.7.9.5
+
diff --git a/dev-python/ansi2html/metadata.xml b/dev-python/ansi2html/metadata.xml
new file mode 100644
index 00000000000..3936c4a0cc8
--- /dev/null
+++ b/dev-python/ansi2html/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ansi2html</remote-id>
+ <remote-id type="github">ralphbean/ansi2html</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ansicolor/Manifest b/dev-python/ansicolor/Manifest
new file mode 100644
index 00000000000..d7bd44de585
--- /dev/null
+++ b/dev-python/ansicolor/Manifest
@@ -0,0 +1,2 @@
+DIST ansicolor-0.2.1.tar.gz 5678 SHA256 f5a5e105cf2457112df3cb2fe0200803129fa5dde86395a680e95b0e951b3956 SHA512 334b90eaf3f21469062ff4f70043fa902c1cfd53e7d73d22e4df63dbeb55db1f33d71b5a88ef6ba4481a9144ee7652ea68d9554f5155e129f462872d064430b5 WHIRLPOOL 38b24fc0880ace1d632e932fcfd3fbe805e7139f40410709477c17659839ca8b0cf909e0ef7f594ec9bde7b51ae3016486b4931d63b50cc9b63e28e2012636e7
+DIST ansicolor-0.2.4.tar.gz 5971 SHA256 30f889b330f611271e97d850fd09d911d5389deec8b6cfa1f6c576034e9a937e SHA512 1f20955a5ddf6a2125146fab220884b3dace2faef5b06c637c396b1769ad60e69ef7ae8a4ae3ecd49d0b849efdbd388b611eb738dc7c1b7f19027afc3f30e57c WHIRLPOOL 83ee2de115d02f38bf45a12cf0b3b9930516fd189b7947d4c1d05ae71d1e406feab4ff003f495a14d4e17a9e7f3c18f60b8271d47df6a007731861ddbe0aafc4
diff --git a/dev-python/ansicolor/ansicolor-0.2.1.ebuild b/dev-python/ansicolor/ansicolor-0.2.1.ebuild
new file mode 100644
index 00000000000..68b3d1edd32
--- /dev/null
+++ b/dev-python/ansicolor/ansicolor-0.2.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Produce ansi color output and colored highlighting and diffing"
+HOMEPAGE="https://github.com/numerodix/ansicolor"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ https://github.com/numerodix/ansicolor/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/ansicolor/ansicolor-0.2.4.ebuild b/dev-python/ansicolor/ansicolor-0.2.4.ebuild
new file mode 100644
index 00000000000..4c8b69ccc3b
--- /dev/null
+++ b/dev-python/ansicolor/ansicolor-0.2.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Produce ansi color output and colored highlighting and diffing"
+HOMEPAGE="https://github.com/numerodix/ansicolor"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ https://github.com/numerodix/ansicolor/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/ansicolor/metadata.xml b/dev-python/ansicolor/metadata.xml
new file mode 100644
index 00000000000..ba9c7abdaf9
--- /dev/null
+++ b/dev-python/ansicolor/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ansicolor</remote-id>
+ <remote-id type="github">numerodix/ansicolor</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/anyjson/Manifest b/dev-python/anyjson/Manifest
new file mode 100644
index 00000000000..eebabfb8800
--- /dev/null
+++ b/dev-python/anyjson/Manifest
@@ -0,0 +1 @@
+DIST anyjson-0.3.3.tar.gz 8332 SHA256 37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba SHA512 9e70df3cb8bfe2348fdb0eb03cf3c33ca5a1171aca6467787fc28c161354b5ebe89b2f73badfa00708774d6825799860493ddcac7f5da8cc9c251b92b5a343bc WHIRLPOOL 9a17b6296ddf6359c217a7deea989a6dd3c07c2f11125f934c5c4325a909b9a923c08b03fd49a96c30df8ed06c81cdba54ae5391240c7d288edaafb9c44b50a7
diff --git a/dev-python/anyjson/anyjson-0.3.3-r1.ebuild b/dev-python/anyjson/anyjson-0.3.3-r1.ebuild
new file mode 100644
index 00000000000..7d594774fdc
--- /dev/null
+++ b/dev-python/anyjson/anyjson-0.3.3-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Wraps the best available JSON implementation available in a common interface"
+HOMEPAGE="http://bitbucket.org/runeh/anyjson"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+# please keep all supported implementations in 'test?'
+# to make sure the package is used in the widest way
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/simplejson[$(python_gen_usedep 'python2*' python3_3 'pypy*')]
+ )"
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}" || die
+ if [[ ${EPYTHON} == python3* ]]; then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/anyjson/metadata.xml b/dev-python/anyjson/metadata.xml
new file mode 100644
index 00000000000..f73b5edab80
--- /dev/null
+++ b/dev-python/anyjson/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">anyjson</remote-id>
+ <remote-id type="bitbucket">runeh/anyjson</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/anyvc/Manifest b/dev-python/anyvc/Manifest
new file mode 100644
index 00000000000..8b6b79c78b0
--- /dev/null
+++ b/dev-python/anyvc/Manifest
@@ -0,0 +1 @@
+DIST anyvc-0.3.7.1.tar.gz 45890 SHA256 264ccd659269ff62ca983d48c7affd27194992880d094e32fff58225a9b6311c SHA512 90151133b4da41acb10c2d8e421963e5ccb1e8da1e5327d5a69a77ccc647086683f1ff8ef600c69e01cfda28193c69166fa5717af3dbd13761d95ab3f1c7be46 WHIRLPOOL 5f6500d069eafa56434d57c225e566e55aedadaad0c1d4afc7ff76c0481f3e797f6ea64e88d3001e06d6a529dc01d6c38cbb9e2324245c103d7031b7ef00278a
diff --git a/dev-python/anyvc/anyvc-0.3.7.1-r1.ebuild b/dev-python/anyvc/anyvc-0.3.7.1-r1.ebuild
new file mode 100644
index 00000000000..a287a9c465a
--- /dev/null
+++ b/dev-python/anyvc/anyvc-0.3.7.1-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library to access any version control system"
+HOMEPAGE="http://pypi.python.org/pypi/anyvc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="bazaar doc git mercurial subversion"
+
+RDEPEND="dev-python/apipkg[${PYTHON_USEDEP}]
+ dev-python/execnet[${PYTHON_USEDEP}]
+ dev-python/py[${PYTHON_USEDEP}]
+ bazaar? ( dev-vcs/bzr )
+ git? ( dev-python/dulwich[${PYTHON_USEDEP}] )
+ mercurial? ( dev-vcs/mercurial )
+ subversion? ( dev-python/subvertpy )"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/hgdistver[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# dev-python/hgdistver )"
+
+python_prepare_all() {
+ # Do not use unsupported theme options.
+ sed -e "/'tagline':/d" \
+ -e "/'bitbucket_project':/d" \
+ -i docs/conf.py
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html docs docs_output || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ if use doc; then
+ pushd docs_output > /dev/null
+ docinto html
+ cp -R [a-z]* _static "${ED}usr/share/doc/${PF}/html" || die "Installation of documentation failed"
+ popd > /dev/null
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/anyvc/metadata.xml b/dev-python/anyvc/metadata.xml
new file mode 100644
index 00000000000..8c0318f0aa7
--- /dev/null
+++ b/dev-python/anyvc/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="bazaar">Add support for Bazaar</flag>
+ <flag name="mercurial">Add support for Mercurial</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">anyvc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/apipkg/Manifest b/dev-python/apipkg/Manifest
new file mode 100644
index 00000000000..e2f8c92b4b5
--- /dev/null
+++ b/dev-python/apipkg/Manifest
@@ -0,0 +1,2 @@
+DIST apipkg-1.2.zip 12842 SHA256 ea86c4660e83015b6a3faad106cdf5a8d640688a93b84b93e8b64c60815789d4 SHA512 abd00a7c36914b9f79d5a54e1d0facc89fd6673f86d774784cd9a3a0e8e913cf3ef575914bcbbe4d17464b09e8b57d94c761453b2b19466e7dc408f321d22603 WHIRLPOOL 5693c8f1422d96e702eb929c2b3fe3f1a33b7d731ba4f6dced2b42229b941ca87848a31d19c2e79b0ce6fc0db98e24e6c81775c68374ca7f7bed59cf9682d049
+DIST apipkg-1.4.tar.gz 11224 SHA256 2e38399dbe842891fe85392601aab8f40a8f4cc5a9053c326de35a1cc0297ac6 SHA512 118f806706944513f50d3cdef596b32f8ce585cfaf94d2531a6d260f90a0e2147177161aaa6f5d6823150e6182d0f73be3dc01259b8a2f8d710733a22ea54789 WHIRLPOOL b0162094ee5209fb06727b5ad6d346e5738af9999f4fa21081cfedd4607d6025dd1d20621fe6c2e7801e5b405757987a6c0d63f698d74497401053847a9109bd
diff --git a/dev-python/apipkg/apipkg-1.2-r1.ebuild b/dev-python/apipkg/apipkg-1.2-r1.ebuild
new file mode 100644
index 00000000000..746d4450afd
--- /dev/null
+++ b/dev-python/apipkg/apipkg-1.2-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="namespace control and lazy-import mechanism"
+HOMEPAGE="http://pypi.python.org/pypi/apipkg"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # https://bitbucket.org/hpk42/apipkg/issue/5/test-failure-with-python-34
+ sed -e 's:test_initpkg_not_transfers_not_existing_attrs:_&:' -i test_apipkg.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Bug 530388. The test requires patching to match py3.4; trivial.
+ py.test || die "Tests fail under ${EPYTHON}"
+}
diff --git a/dev-python/apipkg/apipkg-1.4.ebuild b/dev-python/apipkg/apipkg-1.4.ebuild
new file mode 100644
index 00000000000..b3ec9583c0e
--- /dev/null
+++ b/dev-python/apipkg/apipkg-1.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="namespace control and lazy-import mechanism"
+HOMEPAGE="http://pypi.python.org/pypi/apipkg"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/hgdistver[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test test_apipkg.py || die "Tests fail under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/apipkg/metadata.xml b/dev-python/apipkg/metadata.xml
new file mode 100644
index 00000000000..efc3b570c70
--- /dev/null
+++ b/dev-python/apipkg/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">apipkg</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/aplpy/Manifest b/dev-python/aplpy/Manifest
new file mode 100644
index 00000000000..f6a8ac76b34
--- /dev/null
+++ b/dev-python/aplpy/Manifest
@@ -0,0 +1 @@
+DIST APLpy-0.9.14.tar.gz 1095547 SHA256 0313a91523b6a32a40e5b97da55243d5e59722cd8fa2e6642915edd26d464d69 SHA512 9cf12aa30d3c4540c2cc33907be3a12e78247a8880720e4de7e513842ef437f616b2c63a345a63e7a7081676aff56032840dc1528ed10438f7729cf2acb9da9f WHIRLPOOL 55c25aa11065b741e89b1538d96e57974bcb6b80f5708e5ee5f975742f7e04cbfe6df3da7b030c67a54bbcc929eaec46e2d2e34551d8f9e7365e2f2c4d5b3a0d
diff --git a/dev-python/aplpy/aplpy-0.9.14.ebuild b/dev-python/aplpy/aplpy-0.9.14.ebuild
new file mode 100644
index 00000000000..0ebbfbf83db
--- /dev/null
+++ b/dev-python/aplpy/aplpy-0.9.14.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MYPN=APLpy
+MYP=${MYPN}-${PV}
+
+DESCRIPTION="Astronomical Plotting Library in Python"
+HOMEPAGE="http://aplpy.github.com/"
+SRC_URI="mirror://pypi/${MYPN:0:1}/${MYPN}/${MYP}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/astropy[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pyavm[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MYP}
+
+python_compile() {
+ distutils-r1_python_compile --use-system-libraries --offline
+}
+
+python_test() {
+ distutils_install_for_testing --offline
+ cd "${TEST_DIR}" || die
+ "${EPYTHON}" -c "import aplpy, sys;r = aplpy.test();sys.exit(r)" \
+ || die "tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install --offline
+}
diff --git a/dev-python/aplpy/metadata.xml b/dev-python/aplpy/metadata.xml
new file mode 100644
index 00000000000..9f00245ca4e
--- /dev/null
+++ b/dev-python/aplpy/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ APLpy (the Astronomical Plotting Library in Python) is a Python
+ module aimed at producing publication-quality plots of astronomical
+ imaging data in FITS format. The module uses Matplotlib. It is
+ capable of creating output files in several graphical formats,
+ including EPS, PDF, PS, PNG, and SVG.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">APLpy</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/appdirs/Manifest b/dev-python/appdirs/Manifest
new file mode 100644
index 00000000000..0c9e7933dad
--- /dev/null
+++ b/dev-python/appdirs/Manifest
@@ -0,0 +1,2 @@
+DIST appdirs-1.2.0.zip 22478 SHA256 266036a5f1eb785a5eff2a362f552b7943dc7d83737a6a201f21276bd9ef234d SHA512 26605262f01f6f4cd508155b8199a88645d8203700b87660bdf6f3bfa409b04136df101a5ca3ddbcf7f97a30bea2fc5ce34e197e8be21f6a20b1257b44440093 WHIRLPOOL 60ab7b58dfd63d161d8d30ca411cb8f4d654f2a56bb7b0078ee85f0f315abbb13035e0609c7f87d5f8cce44234fa714ad461edad3f0817adaa8388a73ba91411
+DIST appdirs-1.4.0.tar.gz 14358 SHA256 8fc245efb4387a4e3e0ac8ebcc704582df7d72ff6a42a53f5600bbb18fdaadc5 SHA512 a16fbad419e593acf1b58a3f8f893d206b3fc1a269757213a34d129e6fc39aa041efacb7964d326b82376373315357c93e85b272f374a096d9a63e73e3ce1dac WHIRLPOOL 0e12bf1875e489fbfb2ed48b125917bb6e176b90051a0afe2b64f431bbd1f5be499b7c0631302513387c440a05b2eb067fefaf54141424c260834cba854b7e6f
diff --git a/dev-python/appdirs/appdirs-1.2.0-r1.ebuild b/dev-python/appdirs/appdirs-1.2.0-r1.ebuild
new file mode 100644
index 00000000000..04d22ddda98
--- /dev/null
+++ b/dev-python/appdirs/appdirs-1.2.0-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for determining appropriate platform-specific dirs"
+HOMEPAGE="http://github.com/ActiveState/appdirs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# api.doctests is missing in the dist zipfile
+# and the 'internal' doctest does nothing
+RESTRICT=test
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test.py \
+ || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/appdirs/appdirs-1.4.0.ebuild b/dev-python/appdirs/appdirs-1.4.0.ebuild
new file mode 100644
index 00000000000..2ca055f8c36
--- /dev/null
+++ b/dev-python/appdirs/appdirs-1.4.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for determining appropriate platform-specific dirs"
+HOMEPAGE="http://github.com/ActiveState/appdirs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# api.doctests is missing in the dist zipfile
+# and the 'internal' doctest does nothing
+RESTRICT=test
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test.py \
+ || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/appdirs/metadata.xml b/dev-python/appdirs/metadata.xml
new file mode 100644
index 00000000000..ffe48945f00
--- /dev/null
+++ b/dev-python/appdirs/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aidecoe@gentoo.org</email>
+ <name>Amadeusz Żołnowski</name>
+ </maintainer>
+ <longdescription lang="en">
+ A small Python module for determining appropriate platform-specific
+ dirs, e.g. a "user data dir".
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">appdirs</remote-id>
+ <remote-id type="github">ActiveState/appdirs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/apptools/Manifest b/dev-python/apptools/Manifest
new file mode 100644
index 00000000000..7916eeb348c
--- /dev/null
+++ b/dev-python/apptools/Manifest
@@ -0,0 +1,2 @@
+DIST apptools-4.2.0.tar.gz 275495 SHA256 0ff03b47529718b6c12de1d5512a7baed9b1be7f5d54f60b953b9235f412d0d4 SHA512 40113a0cc2eedc48ff4d5f7cf685486b397fe19ff57dfd11a66fa77191a7efacbe92373cb93b5ce0748d42a7452724bcf20bd855a36152530d65f178226c6f6e WHIRLPOOL 38807b3998d29292a22c996d902df9695184f26a59b2bbbe899406065beae56183c52cd7ea45ff4003e3f4919baba39733a3fabfae46cd96412ea50895d21bc4
+DIST apptools-4.2.1.tar.gz 274521 SHA256 66f4d61e4be80fd0b153f4a8c1d680c45d5b2e0734899695cb6e918f3f594369 SHA512 03f89b431db496082ac404456f97792f68b580ee77451e6f003b5a2830cd2f698124487045b6cd5fc15b700fbf7467553a384d6e638a322627f8dad7c0b45fc6 WHIRLPOOL 0b0d99b11e251be730b9e5772cce8cfdd0c654fb02ab031fe122f82f8e4555223142e65186c9f3c0068d9b4266f71d6c3209072c3b6939b67daa5ddbc14c3ede
diff --git a/dev-python/apptools/apptools-4.2.0-r1.ebuild b/dev-python/apptools/apptools-4.2.0-r1.ebuild
new file mode 100644
index 00000000000..41c195eea95
--- /dev/null
+++ b/dev-python/apptools/apptools-4.2.0-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Application tools"
+HOMEPAGE="http://code.enthought.com/projects/app_tools/ http://pypi.python.org/pypi/apptools"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/traits-4[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ >=dev-python/pyface-4[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ sci-visualization/mayavi[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=( "${FILESDIR}"/${PN}_test.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ VIRTUALX_COMMAND="nosetests" virtualmake
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -r docs/build/html/
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/apptools/apptools-4.2.1.ebuild b/dev-python/apptools/apptools-4.2.1.ebuild
new file mode 100644
index 00000000000..a850c9aa770
--- /dev/null
+++ b/dev-python/apptools/apptools-4.2.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Application tools"
+HOMEPAGE="http://code.enthought.com/projects/app_tools/ http://pypi.python.org/pypi/apptools"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/traits-4[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ >=dev-python/pyface-4[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ sci-visualization/mayavi[${PYTHON_USEDEP}]
+ dev-python/traits[${PYTHON_USEDEP}]
+ dev-python/traitsui[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Ignore test file that imports a long deprecated module of traits
+ VIRTUALX_COMMAND="nosetests -I test_state_pickler.py" virtualmake
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/apptools/files/apptools_test.patch b/dev-python/apptools/files/apptools_test.patch
new file mode 100644
index 00000000000..ce2d688346b
--- /dev/null
+++ b/dev-python/apptools/files/apptools_test.patch
@@ -0,0 +1,15 @@
+Disable test that use package installed in ${ROOT}
+
+https://bugs.gentoo.org/show_bug.cgi?id=429668
+
+Patch written by Ian Delaney <johneed@hotmail.com>
+--- apptools/persistence/tests/check_version_registry.py
++++ apptools/persistence/tests/check_version_registry.py
+@@ -39,6 +39,7 @@
+
+
+ class TestVersionRegistry(unittest.TestCase):
++ @unittest.skip("This tests uses installed version")
+ def test_get_version(self):
+ """Test the get_version function."""
+ c = Classic()
diff --git a/dev-python/apptools/metadata.xml b/dev-python/apptools/metadata.xml
new file mode 100644
index 00000000000..87c3bbcbfda
--- /dev/null
+++ b/dev-python/apptools/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The Enthought Tool Suite AppTools project includes a set of
+ packages that Enthought has found useful in creating a number of
+ applications. They implement functionality that is commonly needed
+ by many applications.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/apse/Manifest b/dev-python/apse/Manifest
new file mode 100644
index 00000000000..559c1f926a2
--- /dev/null
+++ b/dev-python/apse/Manifest
@@ -0,0 +1 @@
+DIST Apse-0.2.tar.gz 18005 SHA256 cacdb5fa76bc63998bae65c858797423d8b5c047290a762ab9e299097faa983f SHA512 accad6d4fa4056e5dd0ac1036b47b6e258ceea9b458ca91065b0a8411d5e3a3461cd8e87bebbf884982d02bc0f6cc996a3df800fe74a0567a336ee79e05a9837 WHIRLPOOL 912327a3d5ca2f8a20c41604a67323f7c97c71aa1a4120498420bb335eb081e33c39b5bab1de80d0a693b54cefbd91eeefca644fba100182d45e27454bd70b8e
diff --git a/dev-python/apse/apse-0.2-r3.ebuild b/dev-python/apse/apse-0.2-r3.ebuild
new file mode 100644
index 00000000000..c332281524a
--- /dev/null
+++ b/dev-python/apse/apse-0.2-r3.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P="Apse-${PV}"
+
+DESCRIPTION="Approximate String Matching in Python"
+HOMEPAGE="http://www.personal.psu.edu/staff/i/u/iua1/python/apse/"
+SRC_URI="http://www.personal.psu.edu/staff/i/u/iua1/python/${PN}/dist/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-lang/swig:1"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Prevent the build system from calling swig over and over again.
+ sed -i -e 's:Apse.i:Apse_wrap.c:' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ set -- swig1.3 -python -o Apse_wrap.c Apse.i
+ echo "${@}" >&2
+ "${@}" || die
+}
+
+python_test() {
+ "${PYTHON}" test/test_Apse.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/apse/metadata.xml b/dev-python/apse/metadata.xml
new file mode 100644
index 00000000000..104473b5e09
--- /dev/null
+++ b/dev-python/apse/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Approximate String Matching in Python: identifies typing and spelling
+ errors, closely related vocabularies, genetic mutations (GAG ACT),
+ abbreviations. While it implements the same algorithm as the agrep
+ program, Apse lets the user choose how many edits (substitutions,
+ deletions, additions) will be acceptable as 'match'.
+ </longdescription>
+ <longdescription lang="ja">
+ Python言語に近似した文字列の一致を判断させます。タイピング・エラー、スペリング・
+ エラー、ボキャブラリ的に近い単語、一般的な同意語(GAG ACT)、略語を同一視できます>。agrepプログラムと同一のアルゴリズムを用いて、Apseはユーザーに"一致する"と判断>した場合の処理(置換、削除、追加)を何回行うかを選ばせます。
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/apsw/Manifest b/dev-python/apsw/Manifest
new file mode 100644
index 00000000000..fb4a27c5e04
--- /dev/null
+++ b/dev-python/apsw/Manifest
@@ -0,0 +1 @@
+DIST apsw-3.8.7.1_p1.tar.gz 303446 SHA256 7aee29cc170332aa1a16fb80753152e809208bbc91823f64178e4afc32526fec SHA512 104aad3a8cec07647b71c77814cc069587daf84450b41f992d0b3c752c476105351b28912768a29f7952bfd75e9b2d3fcd8e6ae758b3bab8b986bf8e1300c256 WHIRLPOOL cc95728b07e384ee88002afce4b68abcfb259a62188cc77bad1154a83bf3e1979fec8761fe8a3c9e5ae35d5027cdf42c1b4a4b7749ad76d7935e032e253c8167
diff --git a/dev-python/apsw/apsw-3.8.7.1_p1.ebuild b/dev-python/apsw/apsw-3.8.7.1_p1.ebuild
new file mode 100644
index 00000000000..72df5b5e0b8
--- /dev/null
+++ b/dev-python/apsw/apsw-3.8.7.1_p1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PV=${PV/_p/-r}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="APSW - Another Python SQLite Wrapper"
+HOMEPAGE="http://code.google.com/p/apsw/"
+HOMEPAGE="https://github.com/rogerbinns/apsw/"
+SRC_URI="https://github.com/rogerbinns/apsw/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc64 x86"
+IUSE="doc"
+
+RDEPEND=">=dev-db/sqlite-${PV%_p*}"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${PN}-3.6.20.1-fix_tests.patch )
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+ distutils-r1_python_compile --enable=load_extension
+}
+
+src_test() {
+ # tests use overlapping database files
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ "${PYTHON}" setup.py build_test_extension || die "Building of test loadable extension failed"
+ "${PYTHON}" tests.py -v || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc ; then
+ dohtml -r doc/*
+ fi
+}
diff --git a/dev-python/apsw/files/apsw-3.6.20.1-fix_tests.patch b/dev-python/apsw/files/apsw-3.6.20.1-fix_tests.patch
new file mode 100644
index 00000000000..3bbce88500b
--- /dev/null
+++ b/dev-python/apsw/files/apsw-3.6.20.1-fix_tests.patch
@@ -0,0 +1,11 @@
+--- tests.py
++++ tests.py
+@@ -5480,7 +5480,7 @@
+ testnasty()
+
+ # What happens if db cannot be opened?
+- s.process_args(args=["/"])
++ s.process_args(args=["src"])
+ reset()
+ cmd("select * from sqlite_master;\n.bail on\nselect 3;\n")
+ self.assertRaises(apsw.CantOpenError, s.cmdloop)
diff --git a/dev-python/apsw/metadata.xml b/dev-python/apsw/metadata.xml
new file mode 100644
index 00000000000..ede09cb0f62
--- /dev/null
+++ b/dev-python/apsw/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>APSW provides an SQLite 3 wrapper that provides the thinnest layer over SQLite 3 possible.
+Everything you can do from the C API to SQLite 3, you can do from Python.
+Although APSW looks vaguely similar to the DBAPI, it is not compliant with that API and instead
+works the way SQLite 3 does.</longdescription>
+ <upstream>
+ <remote-id type="google-code">apsw</remote-id>
+ <remote-id type="github">rogerbinns/apsw</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/aquarium/Manifest b/dev-python/aquarium/Manifest
new file mode 100644
index 00000000000..e7dc795c058
--- /dev/null
+++ b/dev-python/aquarium/Manifest
@@ -0,0 +1 @@
+DIST aquarium-2.3.tar.gz 200341 SHA256 89c8fab11dd6022cf1ac13fe4c4b4090f7da24af6fed296c67db03e2653fef07 SHA512 d4d31d390a9f121c869dfb893ceea57130f3d51bccd61506a5b9e8f749388bc4834e6399eb1576948ac7d105572982c9d02f633fee2c16a7891c5845fb15b35d WHIRLPOOL 5004dde4f619ae481486d4fcffbc3c837584d9caad68f4d1a43876adcfee5f42c70f91e8b9955188ba4f6a895267f08a6446a91ccd5ca07068270e018dfbe0c9
diff --git a/dev-python/aquarium/aquarium-2.3-r1.ebuild b/dev-python/aquarium/aquarium-2.3-r1.ebuild
new file mode 100644
index 00000000000..7447118795e
--- /dev/null
+++ b/dev-python/aquarium/aquarium-2.3-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Aquarium web application framework"
+HOMEPAGE="http://aquarium.sourceforge.net/ http://pypi.python.org/pypi/aquarium"
+SRC_URI="mirror://sourceforge/aquarium/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/cheetah[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/aquarium/metadata.xml b/dev-python/aquarium/metadata.xml
new file mode 100644
index 00000000000..8f91aaabcc9
--- /dev/null
+++ b/dev-python/aquarium/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">aquarium</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/argcomplete/Manifest b/dev-python/argcomplete/Manifest
new file mode 100644
index 00000000000..bcfa66aeae5
--- /dev/null
+++ b/dev-python/argcomplete/Manifest
@@ -0,0 +1,3 @@
+DIST argcomplete-0.8.1.tar.gz 30272 SHA256 12e36f784160547ca855a2c9d753cf60cd3f87cab72b1e4993ceffb6ba51443b SHA512 faf37f5a5c3f619066503b6fb53570e8c084d2f28895da6bfe38db58b06447dd3aee00d6073a33000486ba9c3c12b784276a57c625ed02f4bfcc78319bee0ea4 WHIRLPOOL 7c55337ca8bafb2779ee4e5cd3c42b0df0e3953bef548ceed516bc65c64870ea62c29914b9ad140dbab446bcec286e611ea82356b0a9c0e6c92a020986f4b161
+DIST argcomplete-0.8.9.tar.gz 30575 SHA256 98f04fa2ca22479459d8ba04583dca653a41c2d7a57648ba7f3b4d7e19ea82be SHA512 21b7d267f2d5a43a299841ca05b3b4dc38587e9ac90db8634d8e13d089e58483b88506376eff16d8ea2d03a169e118a5be32549b74c5168a337e6a6d22a01f7f WHIRLPOOL 336d7096a0dbfd3fa2beeacee6189fe375586ddec7dfe5277687149701bb52befcc83234de6ea59c06f662c20e44de00420b51fc640517055d5505374f0fcd26
+DIST argcomplete-0.9.0.tar.gz 35214 SHA256 f97577332d19aea09583ecb426a49e85dc7bbc9822ab345b9c790d923413af0e SHA512 e127a8d2e7914f2601d649963115595db40ed612d352c134c5b68acdcbcd52477728e6e1edddd405562b28329f960d87d1418fa8fe3b3f1dcb9c3ad10c42a65d WHIRLPOOL 03c5f4eac0aeac9887d8ba1d21b585854b91c7399c95260ecf58f92d709b9194f801b730ab26435e329e003f8041c96d11410983a83c21f262cd2ad68a32a100
diff --git a/dev-python/argcomplete/argcomplete-0.8.1.ebuild b/dev-python/argcomplete/argcomplete-0.8.1.ebuild
new file mode 100644
index 00000000000..3ef50e21a3b
--- /dev/null
+++ b/dev-python/argcomplete/argcomplete-0.8.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 bash-completion-r1
+
+DESCRIPTION="Bash tab completion for argparse"
+HOMEPAGE="https://pypi.python.org/pypi/argcomplete"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # purge test folder to avoid file collisions
+ sed -e "s:find_packages():find_packages(exclude=['test','test.*']):" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${EPYTHON} test/test.py || die
+}
+
+python_install_all() {
+ sed \
+ -e "/complete /d" \
+ -i argcomplete/bash_completion.d/python-argcomplete.sh || die
+ insinto "$(_bash-completion-r1_get_bashhelpersdir)"
+ doins argcomplete/bash_completion.d/python-argcomplete.sh
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/argcomplete/argcomplete-0.8.9.ebuild b/dev-python/argcomplete/argcomplete-0.8.9.ebuild
new file mode 100644
index 00000000000..153dded379f
--- /dev/null
+++ b/dev-python/argcomplete/argcomplete-0.8.9.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 bash-completion-r1
+
+DESCRIPTION="Bash tab completion for argparse"
+HOMEPAGE="https://pypi.python.org/pypi/argcomplete"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # purge test folder to avoid file collisions
+ sed -e "s:find_packages():find_packages(exclude=['test','test.*']):" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${EPYTHON} test/test.py || die
+}
+
+python_install_all() {
+ sed \
+ -e "/complete /d" \
+ -i argcomplete/bash_completion.d/python-argcomplete.sh || die
+
+ distutils-r1_python_install_all
+ newbashcomp "${S}"/${PN}/bash_completion.d/python-argcomplete.sh python-${PN}
+}
diff --git a/dev-python/argcomplete/argcomplete-0.9.0.ebuild b/dev-python/argcomplete/argcomplete-0.9.0.ebuild
new file mode 100644
index 00000000000..153dded379f
--- /dev/null
+++ b/dev-python/argcomplete/argcomplete-0.9.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 bash-completion-r1
+
+DESCRIPTION="Bash tab completion for argparse"
+HOMEPAGE="https://pypi.python.org/pypi/argcomplete"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # purge test folder to avoid file collisions
+ sed -e "s:find_packages():find_packages(exclude=['test','test.*']):" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${EPYTHON} test/test.py || die
+}
+
+python_install_all() {
+ sed \
+ -e "/complete /d" \
+ -i argcomplete/bash_completion.d/python-argcomplete.sh || die
+
+ distutils-r1_python_install_all
+ newbashcomp "${S}"/${PN}/bash_completion.d/python-argcomplete.sh python-${PN}
+}
diff --git a/dev-python/argcomplete/metadata.xml b/dev-python/argcomplete/metadata.xml
new file mode 100644
index 00000000000..b1a0b6c66f1
--- /dev/null
+++ b/dev-python/argcomplete/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">argcomplete</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/argh/Manifest b/dev-python/argh/Manifest
new file mode 100644
index 00000000000..7090900a63c
--- /dev/null
+++ b/dev-python/argh/Manifest
@@ -0,0 +1,3 @@
+DIST argh-0.25.0.tar.gz 30865 SHA256 f55f004a9077db0abc50e8ef5c0e0d0e3573b4a1c8365439c8186ca69197ff33 SHA512 76d4a1451e7f7bb759525b4e0f7dd5fcae4528b92e2866c3d543519df0394fb8de88511869ac04e2f160ac8ae150c1f0c7d348848af2039a26f71b7179555a69 WHIRLPOOL 4fd748081b2973a87f3d425f7468e2cc03edbf64dcff785e6080829ea9728c931f236cfbb2bc6eb6599a2480adabc9448d6bdd57e9a6bb8f8af825ab1fdf2053
+DIST argh-0.26.0.tar.gz 32238 SHA256 3417619f76d18cbb2d19fae4ad27a8ecf1432b22fdf8834df77cf1a1c86716a4 SHA512 be6c52b6e7b438152c145e9ce303f7ba9d44713cb0c68b2526ea725a99522f848c8afceded43da889e335656bc38f69bc4cb1dc7cb39ae238eda55083c9e9076 WHIRLPOOL b589fccf8d31d5aa543c1da9418804461acfa58b08d272cb03ea03080fc808ffc3a810cb487f0c02a94c9a47e1a392bde684850b9f8fc8bfd9b59f74309fb2ab
+DIST argh-0.26.1.tar.gz 32261 SHA256 06a7442cb9130fb8806fe336000fcf20edf1f2f8ad205e7b62cec118505510db SHA512 8c286434b13fe72eca7c35313581921f49ab8934e0c791bd230ed775067507dc492b73b76c9ec521161395aeb8d1cfedc71e3251bba8f68d2227c3cf56c326bf WHIRLPOOL b33570b453f11deecddd1ec6eb2901647f24ec9c78e499ed14b97950ef09fcc4d3842a69ef802e14a218c9c376d386c5f5ec724a93af47141b1d07c9d57761da
diff --git a/dev-python/argh/argh-0.25.0.ebuild b/dev-python/argh/argh-0.25.0.ebuild
new file mode 100644
index 00000000000..afe3f95f4ca
--- /dev/null
+++ b/dev-python/argh/argh-0.25.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple argparse wrapper"
+HOMEPAGE="http://packages.python.org/argh/"
+SRC_URI="mirror://pypi/a/${PN}/${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="amd64 x86"
+LICENSE="LGPL-3"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+python_test() {
+ # setup.py tries to install argparse for some reason...
+ py.test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/argh/argh-0.26.0.ebuild b/dev-python/argh/argh-0.26.0.ebuild
new file mode 100644
index 00000000000..c2b37b62e24
--- /dev/null
+++ b/dev-python/argh/argh-0.26.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple argparse wrapper"
+HOMEPAGE="http://packages.python.org/argh/"
+SRC_URI="mirror://pypi/a/${PN}/${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+LICENSE="LGPL-3"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ ${RDEPEND}
+ )"
+
+python_test() {
+ py.test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/argh/argh-0.26.1.ebuild b/dev-python/argh/argh-0.26.1.ebuild
new file mode 100644
index 00000000000..bce25c55204
--- /dev/null
+++ b/dev-python/argh/argh-0.26.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple argparse wrapper"
+HOMEPAGE="http://packages.python.org/argh/"
+SRC_URI="mirror://pypi/a/${PN}/${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+LICENSE="LGPL-3"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ ${RDEPEND}
+ )"
+
+python_test() {
+ py.test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/argh/metadata.xml b/dev-python/argh/metadata.xml
new file mode 100644
index 00000000000..a9dcfbd8363
--- /dev/null
+++ b/dev-python/argh/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">argh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/args/Manifest b/dev-python/args/Manifest
new file mode 100644
index 00000000000..bb70a4eced7
--- /dev/null
+++ b/dev-python/args/Manifest
@@ -0,0 +1 @@
+DIST args-0.1.0.tar.gz 3048 SHA256 a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814 SHA512 664d33386af2ac0b9d30344db5fb5cea4210f600df28708ada19266afec237d6e6d9d57f03c8b64cfdbb6a17eff05f633a2cc4ddbfedc320dd133be246aee033 WHIRLPOOL 0f410bf8cc2d3c226bfc15dd3adc848f1139ec0f22ffdd77fbb921d64b5eb2b370059d07ef847f4161a020b7928ff32895b4ba0216b9fc633f0347d4195376fc
diff --git a/dev-python/args/args-0.1.0.ebuild b/dev-python/args/args-0.1.0.ebuild
new file mode 100644
index 00000000000..464745d8b54
--- /dev/null
+++ b/dev-python/args/args-0.1.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Command Arguments for Humans"
+HOMEPAGE="https://github.com/kennethreitz/args"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/args/metadata.xml b/dev-python/args/metadata.xml
new file mode 100644
index 00000000000..2bdaff86dd5
--- /dev/null
+++ b/dev-python/args/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">args</remote-id>
+ <remote-id type="github">kennethreitz/args</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/arrayterator/Manifest b/dev-python/arrayterator/Manifest
new file mode 100644
index 00000000000..79640a722b2
--- /dev/null
+++ b/dev-python/arrayterator/Manifest
@@ -0,0 +1 @@
+DIST arrayterator-1.0.1.tar.gz 7840 SHA256 ec38a888adf2c8f7d78ad9cc5dc455a7a92c41c9ca4e42f9aa67fc1bc6a69d6e SHA512 91d560f1aac1e64cda6feaf6ead5ab8ac59555e046760b6caa8cd80c47b7c96f032bde064eee82b9d5e287e8845afa2a17b3460c68561d8ff3c6fe7eecb69cb4 WHIRLPOOL 03ff14a0750dd24195207f61720a47fa6a21523875248c2b54b3c8a47601041524ae5767298bba1b24e9266118ef204d0416cba6fe201aa1ccb0e2cd2c27d38b
diff --git a/dev-python/arrayterator/arrayterator-1.0.1-r1.ebuild b/dev-python/arrayterator/arrayterator-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..7ccba61858e
--- /dev/null
+++ b/dev-python/arrayterator/arrayterator-1.0.1-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A buffered iterator for reading big arrays in small contiguous blocks"
+HOMEPAGE="http://pypi.python.org/pypi/arrayterator"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+RDEPEND=">=dev-python/numpy-1.0_rc1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ cd tests || die
+
+ "${PYTHON}" -c "import test_stochastic; test_stochastic.test()" \
+ || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/arrayterator/metadata.xml b/dev-python/arrayterator/metadata.xml
new file mode 100644
index 00000000000..ec2c375cc34
--- /dev/null
+++ b/dev-python/arrayterator/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">arrayterator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/asciitable/Manifest b/dev-python/asciitable/Manifest
new file mode 100644
index 00000000000..13ea084f49a
--- /dev/null
+++ b/dev-python/asciitable/Manifest
@@ -0,0 +1 @@
+DIST asciitable-0.8.0.tar.gz 299640 SHA256 dc2ff63e2c2182f3fa92e54f08c20b0cd4eed1e81a4e4363994dc3eb3f6ab612 SHA512 a74dfcc3515a9959af8a0ec0906e440aaabd402ba8987a581c774bc97344abece0fbb62957b0a5af89e290a505acc4df1dad5a22c08ca2ea8c7c65ca0a582a22 WHIRLPOOL 57e76bd8de820325f41412ae763be9191af8e0bbf34cb861f16f211cb2d38065eed08a696ee11df9c6e9ca5c47c32a4c8af7ba12e7b217413a28178a8610cd30
diff --git a/dev-python/asciitable/asciitable-0.8.0-r1.ebuild b/dev-python/asciitable/asciitable-0.8.0-r1.ebuild
new file mode 100644
index 00000000000..0d3b7fcb611
--- /dev/null
+++ b/dev-python/asciitable/asciitable-0.8.0-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="An extensible ASCII table reader"
+HOMEPAGE="http://cxc.harvard.edu/contrib/asciitable"
+SRC_URI="mirror://pypi/a/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/asciitable/metadata.xml b/dev-python/asciitable/metadata.xml
new file mode 100644
index 00000000000..00672afe8a7
--- /dev/null
+++ b/dev-python/asciitable/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ asciitable is a Python module that can read a wide range of ASCII
+ table formats used in astronomy, via a built-in extension reader
+ class.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">asciitable</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/asset/Manifest b/dev-python/asset/Manifest
new file mode 100644
index 00000000000..60a6ce5ec2a
--- /dev/null
+++ b/dev-python/asset/Manifest
@@ -0,0 +1 @@
+DIST asset-0.6.1.tar.gz 20613 SHA256 071fcbf93b03d791b4e301c1459dc6bd1779407f9c0326fa136f03449c4bb4c4 SHA512 6fa20888220e83a0a122b8ab63e531551724c64476c3fce8f47f784731710fa3328fa4ac3855bde5fb4caed47274f0492e14df438cf7857c0e5437f33217b672 WHIRLPOOL ca266bb9969e7b4f1b8a7940928ac3dac169374b5c7e44af091f112dcee975ed8d699bcf864645c2122ca3b503e54357a25884d7d2f97c32ae6ad67d67354fc9
diff --git a/dev-python/asset/asset-0.6.1-r1.ebuild b/dev-python/asset/asset-0.6.1-r1.ebuild
new file mode 100644
index 00000000000..c90e15b43b2
--- /dev/null
+++ b/dev-python/asset/asset-0.6.1-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A package resource and symbol loading helper library"
+HOMEPAGE="https://pypi.python.org/pypi/asset http://github.com/metagriffin/asset"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-3+"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/globre-0.0.5[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pxml-0.2.11[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=( "${FILESDIR}"/${P}-broken-test.patch )
+
+python_prepare_all() {
+ sed \
+ -e '/distribute/d' \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests --verbose || die
+}
diff --git a/dev-python/asset/files/asset-0.6.1-broken-test.patch b/dev-python/asset/files/asset-0.6.1-broken-test.patch
new file mode 100644
index 00000000000..1a59f3f5c2b
--- /dev/null
+++ b/dev-python/asset/files/asset-0.6.1-broken-test.patch
@@ -0,0 +1,24 @@
+ asset/test.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/asset/test.py b/asset/test.py
+index 992e5fc..c8aab32 100644
+--- a/asset/test.py
++++ b/asset/test.py
+@@ -24,6 +24,8 @@ import pxml
+ import xml.etree.ElementTree as ET
+ import six
+
++from nose.plugins.skip import SkipTest
++
+ import asset
+
+ #------------------------------------------------------------------------------
+@@ -107,6 +109,7 @@ line-2</node>
+ ])
+
+ #----------------------------------------------------------------------------
++ @SkipTest
+ def test_filename(self):
+ # NOTE: this requires that `pxml` was installed as a zipped egg, and
+ # `globre` as an UNzipped egg, i.e.:
diff --git a/dev-python/asset/metadata.xml b/dev-python/asset/metadata.xml
new file mode 100644
index 00000000000..375f7e43a16
--- /dev/null
+++ b/dev-python/asset/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">asset</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/assets/Manifest b/dev-python/assets/Manifest
new file mode 100644
index 00000000000..ea35bf67cc5
--- /dev/null
+++ b/dev-python/assets/Manifest
@@ -0,0 +1 @@
+DIST assets-0.1.1.tar.gz 29938 SHA256 c057112d731096c3856bc1121eaaa7341b3fd576b559657810bb0dfa18edd019 SHA512 373dfababd91bf28929dbc5562027c2bad14dac84d822c65e899137f5f5f9dfe3041b16dac08bc811be9b3fb2f553869643fc200ae9198eb046cd02b420714c8 WHIRLPOOL 8a580b2928c3c169425fdc886dbdc2401aeae27e0e5a19d73e4136e6d711be80b6c561ed96f2d88cd607065a4b4e09bf6c4c2b8d1bcb31ffb7f74467ec44b29e
diff --git a/dev-python/assets/assets-0.1.1-r1.ebuild b/dev-python/assets/assets-0.1.1-r1.ebuild
new file mode 100644
index 00000000000..8cbae204711
--- /dev/null
+++ b/dev-python/assets/assets-0.1.1-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Cache-friendly asset management via content-hash-naming"
+HOMEPAGE="https://launchpad.net/web-assets"
+SRC_URI="https://launchpad.net/web-assets/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ # The package tests assert on '/tmp', bug #450540
+ local -x TMPDIR=/tmp
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/assets/metadata.xml b/dev-python/assets/metadata.xml
new file mode 100644
index 00000000000..dd0fc015b95
--- /dev/null
+++ b/dev-python/assets/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>andreis.vinogradovs@gmail.com</email>
+ </maintainer>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+ </maintainer>
+ <longdescription>
+ The assets package does content-hash-naming (aka URL fingerprinting) so
+ you can use aggressive caching headers without risking that a client might
+ have an out-of-date version of an asset in its cache. If the content
+ changes, the content-hash-name also changes, resulting in a different URL
+ for each bytewise-unique version of an asset
+</longdescription>
+ <upstream>
+ <remote-id type="launchpad">web-assets</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/astng/Manifest b/dev-python/astng/Manifest
new file mode 100644
index 00000000000..6abde44e32c
--- /dev/null
+++ b/dev-python/astng/Manifest
@@ -0,0 +1 @@
+DIST logilab-astng-0.24.3.tar.gz 106660 SHA256 e08fba39689e5a4dfa175749874811e516f019656544874defe05154073f69d4 SHA512 fb1e46ebf7111d727cd9d187968cb349dc23dfba0d4d8c6c793a8c081d4506f11e488074cc51b632c525aa264cfa50279dda90f0cf35dc2120ebbf4714902525 WHIRLPOOL 75941724a2c4448a27b37750a83dbc04e4a02540233418b0eab364a3ddfdc3a5e03efacc58422d7fb6f68609f126e269c662aa17dbc395067b45182155559589
diff --git a/dev-python/astng/astng-0.24.3.ebuild b/dev-python/astng/astng-0.24.3.ebuild
new file mode 100644
index 00000000000..b680471fe54
--- /dev/null
+++ b/dev-python/astng/astng-0.24.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Abstract Syntax Tree for logilab packages"
+HOMEPAGE="http://www.logilab.org/project/logilab-astng http://pypi.python.org/pypi/logilab-astng"
+SRC_URI="ftp://ftp.logilab.org/pub/astng/logilab-${P}.tar.gz mirror://pypi/l/logilab-astng/logilab-${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~x64-macos ~x86-macos"
+IUSE="test"
+
+# Version specified in __pkginfo__.py.
+RDEPEND=">=dev-python/logilab-common-0.59.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/egenix-mx-base-3.0.0[$(python_gen_usedep 'python2*')] )"
+
+S="${WORKDIR}/logilab-${P}"
+RESTRICT="test" # erroneous failures
+
+# a wit; pypy reports astng modules differently
+PATCHES=( "${FILESDIR}"/pypy-test.patch )
+
+python_test() {
+ distutils_install_for_testing
+ # test target needs unpacked test directories, doesn't like binary egg
+ esetup.py install_lib --install-dir="${TEST_DIR}"/lib
+ #https://bitbucket.org/logilab/astroid/issue/1/test-suite-fails-in-0243-under-py32-pypy
+ # Make sure that the tests use correct modules.
+ cd "${TEST_DIR}"/lib || die
+ pytest -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ rm "${D}$(python_get_sitedir)/logilab/__init__.py" || die
+}
diff --git a/dev-python/astng/files/pypy-test.patch b/dev-python/astng/files/pypy-test.patch
new file mode 100644
index 00000000000..42cb3864b43
--- /dev/null
+++ b/dev-python/astng/files/pypy-test.patch
@@ -0,0 +1,36 @@
+diff -ur logilab-astng-0.24.3.orig/test/unittest_builder.py logilab-astng-0.24.3/test/unittest_builder.py
+--- test/unittest_builder.py 2013-04-17 17:38:31.000000000 +0800
++++ test/unittest_builder.py 2013-06-19 02:13:51.425269363 +0800
+@@ -62,8 +62,12 @@
+ self.assertEqual(name.tolineno, 4)
+ strarg = callfunc.args[0]
+ self.assertIsInstance(strarg, nodes.Const)
+- self.assertEqual(strarg.fromlineno, 5) # no way for this one (is 4 actually)
+- self.assertEqual(strarg.tolineno, 5)
++ if hasattr(sys, 'pypy_version_info'):
++ self.assertEqual(strarg.fromlineno, 4) # no way for this one (is 4 actually)
++ self.assertEqual(strarg.tolineno, 4)
++ else:
++ self.assertEqual(strarg.fromlineno, 5) # no way for this one (is 4 actually)
++ self.assertEqual(strarg.tolineno, 5)
+ namearg = callfunc.args[1]
+ self.assertIsInstance(namearg, nodes.Name)
+ self.assertEqual(namearg.fromlineno, 5)
+diff -ur logilab-astng-0.24.3.orig/test/unittest_inference.py logilab-astng-0.24.3/test/unittest_inference.py
+--- test/unittest_inference.py 2013-04-17 17:38:31.000000000 +0800
++++ test/unittest_inference.py 2013-06-19 02:52:41.618270007 +0800
+@@ -710,8 +710,12 @@
+ node = get_name_node(astng, 'open', -1)
+ infered = list(node.infer())
+ self.assertEqual(len(infered), 1)
+- self.assertIsInstance(infered[0], nodes.Function)
+- self.assertEqual(infered[0].name, 'open')
++ if hasattr(sys, 'pypy_version_info'):
++ self.assertIsInstance(infered[0], nodes.Class)
++ self.assertEqual(infered[0].name, 'file')
++ else:
++ self.assertIsInstance(infered[0], nodes.Function)
++ self.assertEqual(infered[0].name, 'open')
+
+ def test_callfunc_context_func(self):
+ code = '''
diff --git a/dev-python/astng/metadata.xml b/dev-python/astng/metadata.xml
new file mode 100644
index 00000000000..1b13630a68a
--- /dev/null
+++ b/dev-python/astng/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">The aim of this module is to provide a common base representation of
+ python source code for projects such as pychecker, pyreverse,
+ pylint... Well, actually the development of this library is
+ essentially governed by pylint's needs.
+ It provides a compatible representation which comes from the _ast
+ module. It rebuilds the tree generated by the builtin _ast module by
+ recursively walking down the AST and building an extended ast (let's
+ call it astng ;). The new node classes have additional methods and
+ attributes for different usages. They include some support for static
+ inference and local name scopes. Furthermore, astng builds partial
+ trees by inspecting living objects.</longdescription>
+ <upstream>
+ <remote-id type="pypi">logilab-astng</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/astor/Manifest b/dev-python/astor/Manifest
new file mode 100644
index 00000000000..25304715ddd
--- /dev/null
+++ b/dev-python/astor/Manifest
@@ -0,0 +1,4 @@
+DIST astor-0.3.tar.gz 10193 SHA256 64d30fceccc46fe0c9d8afd1d60f5c9c1f7f2c2504a10ccc1548ac34fc3a8ce9 SHA512 ee75eeb795c87c1b86872af1ef8cd573b857fe973b4c6dea2a1484b37203bab3fcaa75f2d29eb499c6c109caed068b25156dfbb19934856cc4980f4f0f36a4fc WHIRLPOOL e20fda731853578ec8c13cdfdab04569a0435036f2e9242e1cc0d8b92425a2ccf06ec7c5f8014323136059da8cdb59de98b9dcb1fd633890ff6dcc8508356708
+DIST astor-0.4.1.tar.gz 10865 SHA256 df38bb923b9111b873f1b812f5f4932110ead7c7dd8b4734d9eb7968c074d9b0 SHA512 9c1b5e2d17112ffe8e7f8ed75acc3e0c488f0d2b4c32452e6a89aea43c090be984f1bbf3e31c44b09ad6c63e0a2ccb837bd1b730fab7114a9eae66899fdd314f WHIRLPOOL 544860e33f643e15400f626779977cce852be7d39e67333af140483cad640556be9a748a345afb4219fbc306deb55e88bc49b119498caffa0b6b261639ced800
+DIST astor-0.4.tar.gz 11188 SHA256 26ddb1ae3c372a09702709e91544eece9e8c885fdae7b2553838d440492fc24c SHA512 8a36668cb359795652eee61998281d4dadab875a6ad2e4c351385ae67a21352a3a45de5233c4dc31a9060e01d4525acd9a8d233ef7f322fbdc925e9aa85346c7 WHIRLPOOL 4841e01310245b21559947c2eac677a45498edae94ad97009704929f5345f31814b82d086b996ca54cc2b04df7026921eabfa5e95131ef410192043a0114cf83
+DIST astor-0.5.tar.gz 10999 SHA256 4abff251d3f03cbe99106cc16e0dc94adc4f88d580c34a717741c7090b76aab9 SHA512 7c940371a6c3ddbc4a6691edb6ee17eef61436912bb873c5c0cba4f3865c9d4f8e077674b14ccc7e319b749898782aaf87e085eedd9ba7f8638130deb67f549b WHIRLPOOL fcc82e25305a291f6884b2d18c8316b55902c6334962203c8b504e79a563e09173b7fa0da29276c12cf42e646a268d71b5dd6365990517379f211d1da343562e
diff --git a/dev-python/astor/astor-0.3.ebuild b/dev-python/astor/astor-0.3.ebuild
new file mode 100644
index 00000000000..f6d0c7ebfb9
--- /dev/null
+++ b/dev-python/astor/astor-0.3.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Read/rewrite/write Python ASTs"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/astor"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/astor/astor-0.4.1.ebuild b/dev-python/astor/astor-0.4.1.ebuild
new file mode 100644
index 00000000000..773c94c82ba
--- /dev/null
+++ b/dev-python/astor/astor-0.4.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Read/rewrite/write Python ASTs"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/astor"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ #avoid file collisions picked up by the eclass
+ sed -e s":find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/astor/astor-0.4.ebuild b/dev-python/astor/astor-0.4.ebuild
new file mode 100644
index 00000000000..c47e1ccbd61
--- /dev/null
+++ b/dev-python/astor/astor-0.4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Read/rewrite/write Python ASTs"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/astor"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ #avoid file collisions picked up by the eclass
+ sed -e s":find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/astor/astor-0.5.ebuild b/dev-python/astor/astor-0.5.ebuild
new file mode 100644
index 00000000000..773c94c82ba
--- /dev/null
+++ b/dev-python/astor/astor-0.5.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Read/rewrite/write Python ASTs"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/astor"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ #avoid file collisions picked up by the eclass
+ sed -e s":find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/astor/metadata.xml b/dev-python/astor/metadata.xml
new file mode 100644
index 00000000000..401f35c17dd
--- /dev/null
+++ b/dev-python/astor/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">astor</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/astroid/Manifest b/dev-python/astroid/Manifest
new file mode 100644
index 00000000000..370c1dd41b0
--- /dev/null
+++ b/dev-python/astroid/Manifest
@@ -0,0 +1,4 @@
+DIST astroid-1.3.4.tar.gz 146809 SHA256 0b453eaa4f48aaa25a007ede7165aa424d83d4a14fd3bd636dc9c77f83e8e9bb SHA512 cdb75480402e46e4a18557fcacf320ee79a2b5f37f02a6a0d878ca9406fa598cd9a3eea4b3be16c9d9ff0ac279cf7138b2ebaf71fb256ac52006f09117c3ad30 WHIRLPOOL 909ecefb8ed8fd1ac7b6f543f801d78ea490f15fe2434c58ea6d9b943dd511cc9fc381b72263b81f7e19bfaffad100cfe8014f63fe93f2cff69a51531464269a
+DIST astroid-1.3.6.tar.gz 153863 SHA256 1241ef961448c57b4616beb8dcc959724641dca1e22914663f79d67fec26f854 SHA512 a44a17a59834915798b6c672243dccba57a432f646a2bd377e2b067d79d8057b1db0c22107285abcff19b9719d128a5354f9d5a82f65f628ae8beb15cedcbe35 WHIRLPOOL 3c58c450e54f3756a55075b40973174b0b2f8ba4910aa66bb42f0e85c7d9197d0d5154a2776caeed65a47da2276731d970db73fade3cef74ba583a2a7cffe016
+DIST astroid-1.3.7.tar.gz 154919 SHA256 91018b668d94275b9e55b79804a2a248dac1262c581c51fa880fdf57b5004ec8 SHA512 f2557c10c5a3dc6d52a836db8ab6ac1d945d529d5d6501b093ac87887bb445df0f37a54d72b00cd826ce09378abe7cf283b69892852b7fb2ad5d61dee0996162 WHIRLPOOL 53dca23ca45bd81fbd6957c0588f787c8cb18847a963488bc8c9780ca0c05f21d6605a438ae11b79d34a0cb9790dc7f29db1dfa8009b4ef86b21ac032184c040
+DIST astroid-1.3.8.tar.gz 155302 SHA256 3971c35c675dc7acfceb636eb1758b7df9fc3ad75b5f81ca89f57ccf51719442 SHA512 316d3a6a12d95b3bebe7ffe47de840cbff96f357c7c324f6684bb713bca191cfaf87fe226c3c1145049611a2035890bdf11845bf923f7d0087a0d1e565d5d5c5 WHIRLPOOL 456ebef20c278047ae0e85fb1386f63eb7c13dda295ddace9704df5255b5004887f6f5201097b2337cc678a9891f33aa5628cbf7acc01c4eb9ff3dc3c091408a
diff --git a/dev-python/astroid/astroid-1.3.4.ebuild b/dev-python/astroid/astroid-1.3.4.ebuild
new file mode 100644
index 00000000000..73d6f83ec55
--- /dev/null
+++ b/dev-python/astroid/astroid-1.3.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+RESTRICT="test" # False is not True ;)
+
+inherit distutils-r1
+
+DESCRIPTION="Abstract Syntax Tree for logilab packages"
+HOMEPAGE="http://bitbucket.org/logilab/astroid http://pypi.python.org/pypi/astroid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~x64-macos ~x86-macos"
+IUSE="test"
+
+# Version specified in __pkginfo__.py.
+RDEPEND=">=dev-python/logilab-common-0.60.0[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( ${RDEPEND}
+ >=dev-python/pylint-1.4.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7) )"
+# Required for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# Restrict to test phase, required because suite fails horribly without it
+src_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ "${PYTHON}" setup.py build
+
+ pushd build/lib > /dev/null
+ PYTHONPATH=. pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null
+}
diff --git a/dev-python/astroid/astroid-1.3.6.ebuild b/dev-python/astroid/astroid-1.3.6.ebuild
new file mode 100644
index 00000000000..eff7576ea81
--- /dev/null
+++ b/dev-python/astroid/astroid-1.3.6.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+RESTRICT="test" # False is not True ;)
+
+inherit distutils-r1
+
+DESCRIPTION="Abstract Syntax Tree for logilab packages"
+HOMEPAGE="http://bitbucket.org/logilab/astroid http://pypi.python.org/pypi/astroid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x86-macos"
+IUSE="test"
+
+# Version specified in __pkginfo__.py.
+RDEPEND=">=dev-python/logilab-common-0.60.0[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( ${RDEPEND}
+ >=dev-python/pylint-1.4.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7) )"
+# Required for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# Restrict to test phase, required because suite fails horribly without it
+src_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ "${PYTHON}" setup.py build
+
+ pushd build/lib > /dev/null
+ PYTHONPATH=. pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null
+}
diff --git a/dev-python/astroid/astroid-1.3.7.ebuild b/dev-python/astroid/astroid-1.3.7.ebuild
new file mode 100644
index 00000000000..734db324b45
--- /dev/null
+++ b/dev-python/astroid/astroid-1.3.7.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Abstract Syntax Tree for logilab packages"
+HOMEPAGE="http://bitbucket.org/logilab/astroid http://pypi.python.org/pypi/astroid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x86-macos"
+IUSE="test"
+
+# Version specified in __pkginfo__.py.
+RDEPEND="
+ <=dev-python/logilab-common-0.63.0[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/pylint-1.4.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7)
+ )"
+# Required for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+RESTRICT="test" # False is not True ;)
+
+# Restrict to test phase, required because suite fails horribly without it
+src_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ pushd build/lib > /dev/null || die
+ PYTHONPATH=. pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
diff --git a/dev-python/astroid/astroid-1.3.8.ebuild b/dev-python/astroid/astroid-1.3.8.ebuild
new file mode 100644
index 00000000000..8575c7b4d1d
--- /dev/null
+++ b/dev-python/astroid/astroid-1.3.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Abstract Syntax Tree for logilab packages"
+HOMEPAGE="http://bitbucket.org/logilab/astroid http://pypi.python.org/pypi/astroid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x86-macos"
+IUSE="test"
+
+# Version specified in __pkginfo__.py.
+RDEPEND="
+ >=dev-python/logilab-common-0.63.0[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=dev-python/pylint-1.4.0[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7)
+ )"
+# Required for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ pushd build/lib > /dev/null || die
+ PYTHONPATH=. pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
diff --git a/dev-python/astroid/metadata.xml b/dev-python/astroid/metadata.xml
new file mode 100644
index 00000000000..7794b7137e7
--- /dev/null
+++ b/dev-python/astroid/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">The aim of this module is to provide a common base representation of
+ python source code for projects such as pychecker, pyreverse,
+ pylint... Well, actually the development of this library is
+ essentially governed by pylint's needs.
+ It provides a compatible representation which comes from the _ast
+ module. It rebuilds the tree generated by the builtin _ast module by
+ recursively walking down the AST and building an extended ast (let's
+ call it astng ;). The new node classes have additional methods and
+ attributes for different usages. They include some support for static
+ inference and local name scopes. Furthermore, astng builds partial
+ trees by inspecting living objects.</longdescription>
+ <upstream>
+ <remote-id type="pypi">astroid</remote-id>
+ <remote-id type="bitbucket">logilab/astroid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/astropy-helpers/Manifest b/dev-python/astropy-helpers/Manifest
new file mode 100644
index 00000000000..2bae5556b86
--- /dev/null
+++ b/dev-python/astropy-helpers/Manifest
@@ -0,0 +1 @@
+DIST astropy-helpers-0.4.1.tar.gz 98477 SHA256 0b4e47e535e7226d8795efb9e9453cac9343759058970a20734e66f443074577 SHA512 85975268372624bec4024dfbe560ef820bda308db898919c4d29643f10df11636f4996a8ff3f2fb7deece44f88963ddb0c8ca231e030713cf17db7503ceae42e WHIRLPOOL b37fa02ebe3e750052a9681e1e8a3a0aa9eede1909e69c70e2004ba738139707e1a0c21797681454ee782a6543bc8808b8de574d60aba601d228966c8659bb9f
diff --git a/dev-python/astropy-helpers/astropy-helpers-0.4.1.ebuild b/dev-python/astropy-helpers/astropy-helpers-0.4.1.ebuild
new file mode 100644
index 00000000000..509beacbedf
--- /dev/null
+++ b/dev-python/astropy-helpers/astropy-helpers-0.4.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Helpers for Astropy and Affiliated packages"
+HOMEPAGE="https://github.com/astropy/astropy-helpers"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+
+python_prepare_all() {
+ sed -e '/import ah_bootstrap/d' -i setup.py || die "Removing ah_bootstrap failed"
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/astropy-helpers/metadata.xml b/dev-python/astropy-helpers/metadata.xml
new file mode 100644
index 00000000000..2069ce539f4
--- /dev/null
+++ b/dev-python/astropy-helpers/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-astronomy</herd>
+ <longdescription lang="en">
+ astropy-helpers is a collection of build tools used by astropy
+ that may be used by other projects.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">astropy-helpers</remote-id>
+ <remote-id type="github">astropy/astropy-helpers</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/astropy/Manifest b/dev-python/astropy/Manifest
new file mode 100644
index 00000000000..0f13e61473f
--- /dev/null
+++ b/dev-python/astropy/Manifest
@@ -0,0 +1,4 @@
+DIST astropy-0.3.1.tar.gz 6190259 SHA256 e296b445943c842adc18db2dcbfe6fb1b79d4b95cae0f5bac768fd78f4af30ac SHA512 f2beacbc49e8d8af93b0fdbc5e6def7de7e854592d73bf84b14e8571cf7688d46c6b62f014be38e793c899c94b5803bf63f695723777dc74fef1da63bd8e14d4 WHIRLPOOL 46e377c57536a8a945d212a40179391d4362dc2641ae9ba84e36dbf47a0e4ed4b3a86745a68fb25318a0e1076ba5df719ecf95150f500c2f252cb8d349bb98bf
+DIST astropy-0.3.2.tar.gz 6375740 SHA256 0b564870f5c198885d9bbb1b3d07e526439303f37c2c654a879d1f9dee270915 SHA512 f3ec641a6ef31668fbbe4aac6517a442bfca006b4d58a3240aef06833c74c59abdb586658d057ecd1defc616a90e0b82d3e66de26f8d76d945238d443bf82267 WHIRLPOOL 551d0cae993e5d494cd4c157c76f8f7352548a0d575533105b5bdff12ac925e3b51c15a704342298292d07f70295a90800af99176591de0297e70c555b38881a
+DIST astropy-0.4.4.tar.gz 6939433 SHA256 8b2bc2a82b8de48e5ee247c52f20e6d9c32a801e338b3086e9cd39b5219e3389 SHA512 235cd2a9a48276872fd7bcdfe11a74809fef042b9e2caf9d493c804ac48340793fc1ba542327c2e10a94ac569365d6421544bcc7b7a842b50b638f4abc6ae0b0 WHIRLPOOL b947dbe718f02edd773e32a7922b67d7fba2d74ee06bc262defb5616f9cee5354105a3d5076e0e138cc0faa1fac65256550a63506e2fbb1e5f92a4326be0700f
+DIST astropy-0.4.tar.gz 6906375 SHA256 bcb16f7e01d74851d43c13a372fd5e240014ae9bc695a87ed2e2693d36581aba SHA512 661c9a5ea01aa5b38737606df5fdceb1e59cd63d669db01cb18dc20939301b058f5a1696725f25a21f87798fd2457bc96e726c4b52f5bf2473236c0e423e8047 WHIRLPOOL 951af517a3d5612be9ed1a23684a48e750521723fb5b982947e0c08a0f80fc53a1adce36d055b47f1374ec28028d08d47a0258570c1b4075448a72f95a2d588a
diff --git a/dev-python/astropy/astropy-0.3.1.ebuild b/dev-python/astropy/astropy-0.3.1.ebuild
new file mode 100644
index 00000000000..97a51569472
--- /dev/null
+++ b/dev-python/astropy/astropy-0.3.1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Core functionality for performing astrophysics with Python"
+HOMEPAGE="http://astropy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-libs/expat:0=
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-astronomy/erfa:0=
+ sci-astronomy/wcslib:0=
+ >=sci-libs/cfitsio-3.350:0=
+ sys-libs/zlib:0="
+DEPEND="${RDEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ dev-python/matplotlib
+ dev-python/sphinx
+ media-gfx/graphviz
+ )
+ test? (
+ dev-libs/libxml2
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ )"
+
+python_compile() {
+ distutils-r1_python_compile --use-system-libraries
+}
+
+python_compile_all() {
+ if use doc; then
+ python_export_best
+ VARTEXFONTS="${T}"/fonts \
+ MPLCONFIGDIR="${BUILD_DIR}" \
+ PYTHONPATH="${BUILD_DIR}"/lib \
+ esetup.py build_sphinx
+ fi
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/astropy/astropy-0.3.2.ebuild b/dev-python/astropy/astropy-0.3.2.ebuild
new file mode 100644
index 00000000000..50f2cbdc193
--- /dev/null
+++ b/dev-python/astropy/astropy-0.3.2.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Core functionality for performing astrophysics with Python"
+HOMEPAGE="http://astropy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-libs/expat:0=
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-astronomy/erfa:0=
+ sci-astronomy/wcslib:0=
+ >=sci-libs/cfitsio-3.350:0=
+ sys-libs/zlib:0="
+DEPEND="${RDEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ media-gfx/graphviz
+ )
+ test? (
+ dev-libs/libxml2
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ )"
+
+python_compile() {
+ distutils-r1_python_compile --use-system-libraries
+}
+
+python_compile_all() {
+ if use doc; then
+ python_export_best
+ VARTEXFONTS="${T}"/fonts \
+ MPLCONFIGDIR="${BUILD_DIR}" \
+ PYTHONPATH="${BUILD_DIR}"/lib \
+ esetup.py build_sphinx
+ fi
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/astropy/astropy-0.4.4.ebuild b/dev-python/astropy/astropy-0.4.4.ebuild
new file mode 100644
index 00000000000..70950a2bd53
--- /dev/null
+++ b/dev-python/astropy/astropy-0.4.4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Core functionality for performing astrophysics with Python"
+HOMEPAGE="http://astropy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-libs/expat:0=
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-astronomy/erfa:0=
+ >=sci-astronomy/wcslib-4.23:0=
+ >=sci-libs/cfitsio-3.350:0=
+ sys-libs/zlib:0="
+DEPEND="${RDEPEND}
+ dev-python/astropy-helpers[${PYTHON_USEDEP}]
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ media-gfx/graphviz
+ )
+ test? (
+ dev-libs/libxml2[${PYTHON_USEDEP}]
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ )"
+
+python_compile() {
+ distutils-r1_python_compile --use-system-libraries --offline
+}
+
+python_compile_all() {
+ if use doc; then
+ python_export_best
+ VARTEXFONTS="${T}"/fonts \
+ MPLCONFIGDIR="${BUILD_DIR}" \
+ PYTHONPATH="${BUILD_DIR}"/lib \
+ esetup.py build_sphinx --offline
+ fi
+}
+
+python_test() {
+ esetup.py --offline test
+}
+
+python_install() {
+ distutils-r1_python_install --offline
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all --offline
+}
diff --git a/dev-python/astropy/astropy-0.4.ebuild b/dev-python/astropy/astropy-0.4.ebuild
new file mode 100644
index 00000000000..70950a2bd53
--- /dev/null
+++ b/dev-python/astropy/astropy-0.4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Core functionality for performing astrophysics with Python"
+HOMEPAGE="http://astropy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-libs/expat:0=
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-astronomy/erfa:0=
+ >=sci-astronomy/wcslib-4.23:0=
+ >=sci-libs/cfitsio-3.350:0=
+ sys-libs/zlib:0="
+DEPEND="${RDEPEND}
+ dev-python/astropy-helpers[${PYTHON_USEDEP}]
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ media-gfx/graphviz
+ )
+ test? (
+ dev-libs/libxml2[${PYTHON_USEDEP}]
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ )"
+
+python_compile() {
+ distutils-r1_python_compile --use-system-libraries --offline
+}
+
+python_compile_all() {
+ if use doc; then
+ python_export_best
+ VARTEXFONTS="${T}"/fonts \
+ MPLCONFIGDIR="${BUILD_DIR}" \
+ PYTHONPATH="${BUILD_DIR}"/lib \
+ esetup.py build_sphinx --offline
+ fi
+}
+
+python_test() {
+ esetup.py --offline test
+}
+
+python_install() {
+ distutils-r1_python_install --offline
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all --offline
+}
diff --git a/dev-python/astropy/metadata.xml b/dev-python/astropy/metadata.xml
new file mode 100644
index 00000000000..5dab9c71475
--- /dev/null
+++ b/dev-python/astropy/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-astronomy</herd>
+ <longdescription lang="en">
+ Astropy is a community-driven package intended to contain much of
+ the core functionality and some common tools needed for performing
+ astronomy and astrophysics with Python.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">astropy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/async/Manifest b/dev-python/async/Manifest
new file mode 100644
index 00000000000..9ec547277e2
--- /dev/null
+++ b/dev-python/async/Manifest
@@ -0,0 +1 @@
+DIST async-0.6.2.tar.gz 30177 SHA256 ac6894d876e45878faae493b0cf61d0e28ec417334448ac0a6ea2229d8343051 SHA512 6d3376e2d40e07a402cdcc17d0b1789883d5aa5fa24931ed0bfd98bf32454fd126b3591e3c0dc3acea37c0bfe0d27cc65df42a44c92f0bd13e4bbb7a477ff69c WHIRLPOOL 553c9d18fd38daa9bd7e5f8246c181ba429e1a346be5e85ebd9a611c8ce61beab09db172705ee6afd58bf3cc5e6434ebe97924d7adcd7a6322b0e82d6a2dcd71
diff --git a/dev-python/async/async-0.6.2.ebuild b/dev-python/async/async-0.6.2.ebuild
new file mode 100644
index 00000000000..5982a341bc3
--- /dev/null
+++ b/dev-python/async/async-0.6.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Async Framework"
+HOMEPAGE="
+ http://gitorious.org/git-python/async
+ http://pypi.python.org/pypi/async"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ "
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/async/files/async-0.6.1_libz_link.patch b/dev-python/async/files/async-0.6.1_libz_link.patch
new file mode 100644
index 00000000000..a7031cfa93a
--- /dev/null
+++ b/dev-python/async/files/async-0.6.1_libz_link.patch
@@ -0,0 +1,14 @@
+#Patch by Jesus Rivero <neurogeek@gentoo.org>
+#Submitted to upstream Ago 26, 2011
+diff -uNr async-0.6.1.orig/setup.py async-0.6.1/setup.py
+--- async-0.6.1.orig/setup.py 2010-11-21 07:03:47.000000000 -0500
++++ async-0.6.1/setup.py 2011-08-26 16:51:57.000000000 -0400
+@@ -77,7 +77,7 @@
+ packages = ('async', 'async.mod', 'async.test', 'async.test.mod'),
+ package_data={'async' : ['AUTHORS', 'README']},
+ package_dir = {'async':''},
+- ext_modules=[Extension('async.mod.zlib', ['mod/zlibmodule.c'])],
++ ext_modules=[Extension('async.mod.zlib', ['mod/zlibmodule.c'], libraries=['z'])],
+ license = "BSD License",
+ zip_safe=False,
+ long_description = """Async is a framework to process interdependent tasks in a pool of workers"""
diff --git a/dev-python/async/metadata.xml b/dev-python/async/metadata.xml
new file mode 100644
index 00000000000..6dff7db3370
--- /dev/null
+++ b/dev-python/async/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">async</remote-id>
+ <remote-id type="gitorious">git-python/async</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/asyncio/Manifest b/dev-python/asyncio/Manifest
new file mode 100644
index 00000000000..80831c62bd2
--- /dev/null
+++ b/dev-python/asyncio/Manifest
@@ -0,0 +1,2 @@
+DIST asyncio-3.4.2.tar.gz 179696 SHA256 f9cb785691c1c48e4537bdd26d189d56335cc80ce4a77a4301e077ab8adea880 SHA512 b56fd9b613ffee901f9db39152b8c6495383788fa4466c32acc7509072cae95ec86839ec04500f535ae86de90cadfb77bff37e32d11a5c4091d83c9e2eec7f28 WHIRLPOOL 6adc52f1683efc7b7f1bef8ac5676b211bf069536c85d3c0d519470a636f7ba9ce512d01def22884dd3b14e9a730ecdaadf9efe33e1912e2bd2fb5020573dee7
+DIST asyncio-3.4.3.tar.gz 204411 SHA256 83360ff8bc97980e4ff25c964c7bd3923d333d177aa4f7fb736b019f26c7cb41 SHA512 42077cbbae3d67e6e45224cc1996f1aaaff137cdc5c8679ba830fd66098d1e9d8c05e315c8d2ef1add2f504ab769bd339e5d8ae2f7532d423282baca2d383736 WHIRLPOOL c5ad9e02a5cfb71335e7ddf46039a3245ea9aad78c8d47e3712ea20aa21b1a01ce52ad31b6166357c4e43230f15cb566ab752ac3ae702d53111767b7b278ba44
diff --git a/dev-python/asyncio/asyncio-3.4.2.ebuild b/dev-python/asyncio/asyncio-3.4.2.ebuild
new file mode 100644
index 00000000000..0a3aeb70ac0
--- /dev/null
+++ b/dev-python/asyncio/asyncio-3.4.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="reference implementation of PEP 3156"
+HOMEPAGE="http://pypi.python.org/pypi/asyncio https://github.com/python/asyncio"
+SRC_URI="mirror://pypi/a/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ~ppc ~ppc64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/asyncio/asyncio-3.4.3.ebuild b/dev-python/asyncio/asyncio-3.4.3.ebuild
new file mode 100644
index 00000000000..1c979f82429
--- /dev/null
+++ b/dev-python/asyncio/asyncio-3.4.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="reference implementation of PEP 3156"
+HOMEPAGE="http://pypi.python.org/pypi/asyncio https://github.com/python/asyncio"
+SRC_URI="mirror://pypi/a/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${PYTHON} runtests.py || die
+ PYTHONASYNCIODEBUG=1 ${PYTHON} runtests.py || die
+}
diff --git a/dev-python/asyncio/metadata.xml b/dev-python/asyncio/metadata.xml
new file mode 100644
index 00000000000..b5e4ea712dd
--- /dev/null
+++ b/dev-python/asyncio/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+reference implementation of PEP 3156
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">asyncio</remote-id>
+ <remote-id type="github">python/asyncio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/atom/Manifest b/dev-python/atom/Manifest
new file mode 100644
index 00000000000..732ae5ac3c1
--- /dev/null
+++ b/dev-python/atom/Manifest
@@ -0,0 +1 @@
+DIST atom-0.3.10.zip 102102 SHA256 461ffb57ff9448242b66e08d367f9c65bfd9bf04215591e7e9580f289139debf SHA512 ae22747f96e42b9cc4f7c92ddb7d7b8af647e17b917481cd267d4162bd9260b906a019a73de2ca6e3c72a9430dacd535001da7dcb809c1c3dc18c7297be14b76 WHIRLPOOL 23a39d1dddb6c42850925244a8d6da1f589690e7c73416773e954f9ee74665e75c9686f5517af93711a226f828364b483497a98bbf054e4c97f75178ff77adce
diff --git a/dev-python/atom/atom-0.3.10.ebuild b/dev-python/atom/atom-0.3.10.ebuild
new file mode 100644
index 00000000000..2faba765d26
--- /dev/null
+++ b/dev-python/atom/atom-0.3.10.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Memory efficient Python objects"
+HOMEPAGE="https://github.com/nucleic/atom"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="Clear-BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Required to avoid file collisions at install
+ sed -e "s:find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+
+ # Reset from use of local paths
+ if use test; then
+ sed -e 's:from .catom:from catom:g' -i ${PN}/*.py || die
+ fi
+
+ append-flags -fno-strict-aliasing
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ PYTHONPATH="${BUILD_DIR}"/lib:"${BUILD_DIR}"/lib/${PN} \
+ nosetests || die "Tests failed"
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ # Change the state back to original ready for installing
+ sed -e 's:from catom:from .catom:g' -i ${PN}/*.py
+ popd > /dev/null
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/atom/metadata.xml b/dev-python/atom/metadata.xml
new file mode 100644
index 00000000000..3485f522ab4
--- /dev/null
+++ b/dev-python/atom/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">atom</remote-id>
+ <remote-id type="github">nucleic/atom</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/atpy/Manifest b/dev-python/atpy/Manifest
new file mode 100644
index 00000000000..0f3e6904789
--- /dev/null
+++ b/dev-python/atpy/Manifest
@@ -0,0 +1 @@
+DIST ATpy-0.9.7.tar.gz 663163 SHA256 4286bb0e4de30df16d6ffd14eb92e4bd47cba2b486834ca95db512c830d0693c SHA512 4cd078625fd4fc83d267cf3aff4728ec8b2de927dd0a748dba47030216b141aa0c266f34bbf708211ec829a363b3b8e5eed36bf538efbe170ae316a271b36bb4 WHIRLPOOL 6e86375725c203b5351c0111a5e10fa6905c9add682b26275f2538e97e3e1b16884c40794809b0b02a0e4f64bd1f3f5d56f474ef5efc5bbd8622dcd639360ecc
diff --git a/dev-python/atpy/atpy-0.9.7.ebuild b/dev-python/atpy/atpy-0.9.7.ebuild
new file mode 100644
index 00000000000..9c9373c483f
--- /dev/null
+++ b/dev-python/atpy/atpy-0.9.7.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+MYPN=ATpy
+MYP="${MYPN}-${PV}"
+
+DESCRIPTION="Astronomical tables support for Python"
+HOMEPAGE="http://atpy.readthedocs.org/"
+SRC_URI="mirror://pypi/${MYPN:0:1}/${MYPN}/${MYP}.tar.gz"
+
+DEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ dev-python/astropy[${PYTHON_USEDEP}]
+ hdf5? ( dev-python/h5py[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ postgres? ( dev-python/pygresql )"
+
+IUSE="hdf5 mysql postgres sqlite"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="GPL-3"
+
+S="${WORKDIR}/${MYP}"
+
+python_test() {
+ PYTHONPATH="${BUILD_DIR}/lib" "${EPYTHON}" runtests.py || die
+}
diff --git a/dev-python/atpy/metadata.xml b/dev-python/atpy/metadata.xml
new file mode 100644
index 00000000000..a370aeb0557
--- /dev/null
+++ b/dev-python/atpy/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ Astronomical Tables in Python (ATpy) is a high-level package
+ providing a way to manipulate tables of astronomical data in a
+ uniform way. A table is defined by any number of columns of data,
+ each characterized by a column name, unit, null value, and
+ description (the last three being optional), and can be supplemented
+ with metadata in the form of keywords or comments. ATpy can be used
+ to manipulate single tables as well as sets of tables. Table formats
+ supported are FITS, VO, IPAC. Database supported are SQLite, MySQL
+ and PostgreSQL.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">ATpy</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/attrdict/Manifest b/dev-python/attrdict/Manifest
new file mode 100644
index 00000000000..ef3f28613a0
--- /dev/null
+++ b/dev-python/attrdict/Manifest
@@ -0,0 +1 @@
+DIST attrdict-2.0.0.tar.gz 8994 SHA256 86aeb6d3809e0344409f8148d7cac9eabce5f0b577c160b5e90d10df3f8d2ad3 SHA512 6dd363eb3bca83c84dcbcdd04fb2a7f5360ff5c97b7e52159c4efe61856a37bb6a9427da00da07cb9222f3cef6de18b94bf2da5d0192372f9252a130fa476b7d WHIRLPOOL 35a9a2ec820756d640990e6cbcd1bbed1145dbcd14a4e099bde618fab3a4a74d5d419a01bb43e7d55a59c295f9a8ae77e5f091c4263f2282d50dcc1a0002c90d
diff --git a/dev-python/attrdict/attrdict-2.0.0.ebuild b/dev-python/attrdict/attrdict-2.0.0.ebuild
new file mode 100644
index 00000000000..bc776d9514f
--- /dev/null
+++ b/dev-python/attrdict/attrdict-2.0.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A dict with attribute-style access"
+HOMEPAGE="https://github.com/bcj/AttrDict"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py nosetests || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/attrdict/metadata.xml b/dev-python/attrdict/metadata.xml
new file mode 100644
index 00000000000..db49812b88b
--- /dev/null
+++ b/dev-python/attrdict/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">attrdict</remote-id>
+ <remote-id type="github">bcj/AttrDict</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/audioread/Manifest b/dev-python/audioread/Manifest
new file mode 100644
index 00000000000..3d813fa7810
--- /dev/null
+++ b/dev-python/audioread/Manifest
@@ -0,0 +1 @@
+DIST audioread-1.0.1.tar.gz 13004 SHA256 19d1a8c55b00875235a198cb9119c2163394000ebbb0f05a074a356f71a96b04 SHA512 18e9e696785fe2f1b1d6ad7fe64e2878bf490d72aef7500998bb48b0733b382cf0b171d26c5b1465947de1d5f6ded25e2b57947402c31a440e8f346722fdc533 WHIRLPOOL 9489c01f54135677a01d2511d80150bd5f134b8b08ee20b55f78f708a788e604c282f43ea5ffbc669f2a00b3c2ae14f9062fe6752b21e14d1c50f4d36c3e2c6b
diff --git a/dev-python/audioread/audioread-1.0.1.ebuild b/dev-python/audioread/audioread-1.0.1.ebuild
new file mode 100644
index 00000000000..d56ad322f7b
--- /dev/null
+++ b/dev-python/audioread/audioread-1.0.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for decoding audio files using whichever backend is available"
+HOMEPAGE="http://pypi.python.org/pypi/audioread"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="|| ( dev-python/gst-python:0.10[${PYTHON_USEDEP}] dev-python/pymad media-video/ffmpeg )"
+
+PATCHES=(
+ "${FILESDIR}/0001-Use-the-print-function-instead-of-the-print-keyword.patch"
+ )
+
+pkg_postinst() {
+ elog "You might need to enable additional USE flags in backends to"
+ elog "decode some types of audio files. Priority of backends:"
+ elog " * gstreamer"
+ elog " * mad"
+ elog " * ffmpeg"
+}
diff --git a/dev-python/audioread/files/0001-Use-the-print-function-instead-of-the-print-keyword.patch b/dev-python/audioread/files/0001-Use-the-print-function-instead-of-the-print-keyword.patch
new file mode 100644
index 00000000000..8feb9d0ca9b
--- /dev/null
+++ b/dev-python/audioread/files/0001-Use-the-print-function-instead-of-the-print-keyword.patch
@@ -0,0 +1,30 @@
+From 3f86133d37d5cc5c8712730de67c23b0d33ce082 Mon Sep 17 00:00:00 2001
+From: Simon Chopin <chopin.simon@gmail.com>
+Date: Tue, 14 May 2013 12:46:50 +0200
+Subject: [PATCH] Use the print() function instead of the print keyword
+
+Python3 doesn't have the `print foo` statement.
+---
+ audioread/gstdec.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/audioread/gstdec.py b/audioread/gstdec.py
+index 78285db..fa8078f 100644
+--- a/audioread/gstdec.py
++++ b/audioread/gstdec.py
+@@ -366,8 +366,8 @@ if __name__ == '__main__':
+ for path in sys.argv[1:]:
+ path = os.path.abspath(os.path.expanduser(path))
+ with GstAudioFile(path) as f:
+- print f.channels
+- print f.samplerate
+- print f.duration
++ print(f.channels)
++ print(f.samplerate)
++ print(f.duration)
+ for s in f:
+- print len(s), ord(s[0])
++ print(len(s), ord(s[0]))
+--
+1.8.1.5
+
diff --git a/dev-python/audioread/metadata.xml b/dev-python/audioread/metadata.xml
new file mode 100644
index 00000000000..9977a55b902
--- /dev/null
+++ b/dev-python/audioread/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+Decode audio files using whichever backend is available. The library currently supports:
+ * Gstreamer via gst-python.
+ * MAD via the pymad bindings.
+ * FFmpeg via its command-line interface.
+ * The standard library wave and aifc modules (for WAV and AIFF files).
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">audioread</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/authres/Manifest b/dev-python/authres/Manifest
new file mode 100644
index 00000000000..8a45d13fbc5
--- /dev/null
+++ b/dev-python/authres/Manifest
@@ -0,0 +1,3 @@
+DIST authres-0.701.tar.gz 18878 SHA256 4536c485ab8da667be84361b040e626d025cc8b3cb5ad7ef156a7764bf9a9b12 SHA512 e4482a8c5494a550a76a0d0b8b0d406d257da271d8fae901569a960d2f90ec616c5de48a578240e831c29f9345d128ecc9cba6f05befbb03f5cd90b4c26af422 WHIRLPOOL cbca8127df9ac573bdb653f22869450184cfd05221aa17a28726183e17572f4cde85b255b6e3583336aa87383e34a1999f4a647c1bac8eb91bc70075b0d0669e
+DIST authres-0.702.tar.gz 19360 SHA256 8fcf4d0aa027b00e5d16c60e5dc7cf534f9c4889b290cfbaf59c213630fc8c1b SHA512 fbd9a9bd1492ea026aba9acb7af9e5ab2d0d781b7427c284d9f46cde66f79a74d635f87d4a2a4ab170b9e8bd292acd7b771d445fd534b904b15e90c379745c5c WHIRLPOOL ebb96260b74805618665b7e3d7764fdcc179f198441fd601dd88f0f4644daa5af338514f76e1e0c803b4b3446f6d83db214ec4bcd7c557ea82389a4e0f6e0e7e
+DIST authres-0.800.tar.gz 19863 SHA256 d28e3976a7d418917cbbf384018aa0e8a0489e41bfd9847309c5f8efb19f6efd SHA512 d9e73309064e396c51ed55394ce505c21869d267922df55b6723cb6b2409282c7827d35d381877b5f08e037042e015d59246603d51219c829df7b81011499fe7 WHIRLPOOL 4316f18f3237e710baac2ee4701c32778139a805e2f0464aa26bf673dd5889dfe225372fdf0ff0da5b1cd0ef62c90f4bf2d41cdecb619fa5fead9682e1dbea5a
diff --git a/dev-python/authres/authres-0.701.ebuild b/dev-python/authres/authres-0.701.ebuild
new file mode 100644
index 00000000000..ad41af57e8f
--- /dev/null
+++ b/dev-python/authres/authres-0.701.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Authentication Results Header Module"
+HOMEPAGE="https://launchpad.net/authentication-results-python http://pypi.python.org/pypi/authres"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE=""
+
+DOCS=( CHANGES README )
+
+python_test() {
+ "${PYTHON}" -c "import sys, ${PN}, doctest; f, t = doctest.testfile('${PN}/tests'); \
+ sys.exit(bool(f))" || return
+}
diff --git a/dev-python/authres/authres-0.702.ebuild b/dev-python/authres/authres-0.702.ebuild
new file mode 100644
index 00000000000..f1c5a0ea228
--- /dev/null
+++ b/dev-python/authres/authres-0.702.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Authentication Results Header Module"
+HOMEPAGE="https://launchpad.net/authentication-results-python http://pypi.python.org/pypi/authres"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE=""
+
+python_test() {
+ "${PYTHON}" -c "import sys, ${PN}, doctest; f, t = doctest.testfile('${PN}/tests'); \
+ sys.exit(bool(f))" || return
+}
diff --git a/dev-python/authres/authres-0.800.ebuild b/dev-python/authres/authres-0.800.ebuild
new file mode 100644
index 00000000000..f1c5a0ea228
--- /dev/null
+++ b/dev-python/authres/authres-0.800.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Authentication Results Header Module"
+HOMEPAGE="https://launchpad.net/authentication-results-python http://pypi.python.org/pypi/authres"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE=""
+
+python_test() {
+ "${PYTHON}" -c "import sys, ${PN}, doctest; f, t = doctest.testfile('${PN}/tests'); \
+ sys.exit(bool(f))" || return
+}
diff --git a/dev-python/authres/metadata.xml b/dev-python/authres/metadata.xml
new file mode 100644
index 00000000000..a218f6da158
--- /dev/null
+++ b/dev-python/authres/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ RFC 5451 Authentication-Results Headers generation and parsing for Python.
+ It also supports Authentication Results extensions:
+ RFC 5617 DKIM/ADSP
+ RFC 6008 DKIM signature identification (header.b)
+ RFC 6212 Vouch By Reference (VBR)
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">authres</remote-id>
+ <remote-id type="launchpad">authentication-results-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/autobahn/Manifest b/dev-python/autobahn/Manifest
new file mode 100644
index 00000000000..ed6a65c1cda
--- /dev/null
+++ b/dev-python/autobahn/Manifest
@@ -0,0 +1,2 @@
+DIST autobahn-0.10.4.tar.gz 148147 SHA256 3dd7a7793cead942cb0c06bef5a9f69e64edc174e47fb822702eafd41085933d SHA512 1eb43df9b0c986f1788c6463875765266cfc562155399c326b4e9bf447119fbfc967dcc53f8f8844700d21ebf37df6c596ead8c105918af5c6a8ec09585ce797 WHIRLPOOL b5be6d7f6348dc627fcbd2c60699cbd60e3e14e6494f787275d3890c30bca5804783b7a010faab5d19d19097ac90ddfdfdb1a3aaf6d37e4daef943916bf5422f
+DIST autobahn-0.9.4-2.zip 175894 SHA256 5bb64191cfdd1cbdd90d8e359b389ef62c0acdffd2f68d16ec01fa0a287262f0 SHA512 7e0d4246b8b1c552b25c2ae36f1923ed9931e3d3ca684039a422773fecd92ca04734a0b24394a9bbc787f245c72b5552522351a7c1c8e500128e7c46c740a3d5 WHIRLPOOL aa0f06b82acbebb97ca2e3c424429ada7169dca5b39237ce082a17440ec9701a307e9fc7f162f957023cfc4c067f8e8b82b9923cb056ffcab7b3e64a61a4aae8
diff --git a/dev-python/autobahn/autobahn-0.10.4.ebuild b/dev-python/autobahn/autobahn-0.10.4.ebuild
new file mode 100644
index 00000000000..cf0677a60d1
--- /dev/null
+++ b/dev-python/autobahn/autobahn-0.10.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 versionator
+
+MY_P="${PN}-$(replace_version_separator 3 -)"
+
+DESCRIPTION="WebSocket and WAMP for Twisted and Asyncio"
+HOMEPAGE="https://pypi.python.org/pypi/autobahn http://autobahn.ws/python/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/asyncio-0.2.1[$(python_gen_usedep python3*)]
+ >=dev-python/futures-2.1.5[$(python_gen_usedep python2*)]
+ >=dev-python/lz4-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/snappy-0.5[${PYTHON_USEDEP}]
+ >=dev-python/trollius-0.1.2[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-11.1[$(python_gen_usedep python2*)]
+ >=dev-python/txaio-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/ujson-1.33[${PYTHON_USEDEP}]
+ >=dev-python/wsaccel-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-3.6[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}"/${MY_P}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/autobahn/autobahn-0.9.4.2.ebuild b/dev-python/autobahn/autobahn-0.9.4.2.ebuild
new file mode 100644
index 00000000000..013823d3adf
--- /dev/null
+++ b/dev-python/autobahn/autobahn-0.9.4.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 versionator
+
+MY_P="${PN}-$(replace_version_separator 3 -)"
+
+DESCRIPTION="WebSocket and WAMP for Twisted and Asyncio"
+HOMEPAGE="https://pypi.python.org/pypi/autobahn http://autobahn.ws/python/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.zip"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/snappy[${PYTHON_USEDEP}]
+ dev-python/lz4[${PYTHON_USEDEP}]
+ dev-python/msgpack[${PYTHON_USEDEP}]
+ dev-python/twisted-core[$(python_gen_usedep python2*)]
+ dev-python/ujson[${PYTHON_USEDEP}]
+ dev-python/wsaccel[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MY_P}
diff --git a/dev-python/autobahn/metadata.xml b/dev-python/autobahn/metadata.xml
new file mode 100644
index 00000000000..f67d1e1bb97
--- /dev/null
+++ b/dev-python/autobahn/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">autobahn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/autopep8/Manifest b/dev-python/autopep8/Manifest
new file mode 100644
index 00000000000..ba2b36cc6be
--- /dev/null
+++ b/dev-python/autopep8/Manifest
@@ -0,0 +1,4 @@
+DIST autopep8-1.0.4.tar.gz 121476 SHA256 58883a80d501f6f5d97859f100414c6b6f6131fcfc08bd88364c2ecb37a55153 SHA512 53e902dcdd654b9d67d9a31a2343503b754bec78630a7fd8d229843c53eb27d11c32fd6a4829714ac4d7cbee59b055d12e60453ae4ee01cb6131bf9c5045426f WHIRLPOOL 44748dfce6202e1e82c468862e4505500c939ee88eb474392767e606c537a66736f2788c0b6573db37b7c207f3f4608b2a6ecb0fb231bb8c3c090040d17f0642
+DIST autopep8-1.1.1.tar.gz 123488 SHA256 6cdddca3ba69ecf68efefc00e50def2c6939029af3fab637fd797db76e64d3c0 SHA512 79301c1a6f5696daf29c3ac07d63c83c81b3c750b254ffd1d410dc5bc0711fda0dd7438ee062c60d4b69f5475518e959e963ac623851851955115d6b4a99c429 WHIRLPOOL 51be8fe86afcdd186bd4239b634a1919f671b9da07e9341c23d50fdc773d972753f79fb74e144cb1080dc20230a8e7eab5b9312b05452018e504ad2078176196
+DIST autopep8-1.1.tar.gz 123305 SHA256 bf9e821b927169986dd5bbed20a3144afd7c4ddbb841e01d1deb09fd1121e7fa SHA512 6d82ae0ca0a20af2b5aeb467ec36ff0c1e76b45e72a712702e7002312915533c9c380c978fbd5787889a0b3a194b736b0bd830f1b61e302ecea95c968a7ac370 WHIRLPOOL 562bd3d27f90e7d7410ccd391c7245e87dd20ac165ed1153ccbc1500ccb90a9a83790028970dd74c49850d5870fab2c4c500c37ca06b3fd3f12e842af1f4ec31
+DIST autopep8-1.2.tar.gz 155985 SHA256 dbd7015e55ebaa964fbd7c022fe75a5d280e6652be99aea86634eb4b68424752 SHA512 9f9cacbdc1cec4b4fb968d50600895ea411047a528c2a95c6b0cbfb437332eb4b793b190e591c7f36cb69ae4357294b47e7356384e880bd11c114436c112ec82 WHIRLPOOL 8a82a2f9ff5f932170be196721ec23f2e12a53c5182f0c82b2c71a640b6f86c6ba50c234dd08d2f6eae55dc08a1c29f26fc7ae1e10e50e007b176c2b312be956
diff --git a/dev-python/autopep8/autopep8-1.0.4.ebuild b/dev-python/autopep8/autopep8-1.0.4.ebuild
new file mode 100644
index 00000000000..2ecd48922b8
--- /dev/null
+++ b/dev-python/autopep8/autopep8-1.0.4.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Automatically formats Python code to conform to the PEP 8 style guide"
+HOMEPAGE="https://github.com/hhatto/autopep8 http://pypi.python.org/pypi/autopep8"
+SRC_URI="https://github.com/hhatto/${PN}/tarball/ver${PV} -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=">=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ # Prevent UnicodeDecodeError with LANG=C
+ sed -e "/é/d" -i MANIFEST.in || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
+
+pkg_postinst() {
+ ewarn "Since this version of autopep depends on >=dev-python/pep8-1.3"
+ ewarn "it is affected by https://github.com/jcrocholl/pep8/issues/45"
+ ewarn "(indentation checks inside triple-quotes)."
+ ewarn "If you do not want to be affected by this, then add the"
+ ewarn "following lines to your local package.mask:"
+ ewarn " >=dev-python/pep8-1.3"
+ ewarn " >=dev-python/autopep8-0.6"
+}
diff --git a/dev-python/autopep8/autopep8-1.1.1.ebuild b/dev-python/autopep8/autopep8-1.1.1.ebuild
new file mode 100644
index 00000000000..6cc81ea3138
--- /dev/null
+++ b/dev-python/autopep8/autopep8-1.1.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Automatically formats Python code to conform to the PEP 8 style guide"
+HOMEPAGE="https://github.com/hhatto/autopep8 http://pypi.python.org/pypi/autopep8"
+SRC_URI="https://github.com/hhatto/${PN}/tarball/ver${PV} -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ test? ( >=dev-python/pydiff-0.1.2[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent UnicodeDecodeError with LANG=C
+ sed -e "/é/d" -i MANIFEST.in || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+ # from the tox.ini
+ "${PYTHON}" test/acid.py --aggressive test/example.py || die
+ "${PYTHON}" test/acid.py --compare-bytecode test/example.py || die
+}
+
+pkg_postinst() {
+ ewarn "Since this version of autopep depends on >=dev-python/pep8-1.3"
+ ewarn "it is affected by https://github.com/jcrocholl/pep8/issues/45"
+ ewarn "(indentation checks inside triple-quotes)."
+ ewarn "If you do not want to be affected by this, then add the"
+ ewarn "following lines to your local package.mask:"
+ ewarn " >=dev-python/pep8-1.3"
+ ewarn " >=dev-python/autopep8-0.6"
+}
diff --git a/dev-python/autopep8/autopep8-1.1.ebuild b/dev-python/autopep8/autopep8-1.1.ebuild
new file mode 100644
index 00000000000..6cc81ea3138
--- /dev/null
+++ b/dev-python/autopep8/autopep8-1.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Automatically formats Python code to conform to the PEP 8 style guide"
+HOMEPAGE="https://github.com/hhatto/autopep8 http://pypi.python.org/pypi/autopep8"
+SRC_URI="https://github.com/hhatto/${PN}/tarball/ver${PV} -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ test? ( >=dev-python/pydiff-0.1.2[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent UnicodeDecodeError with LANG=C
+ sed -e "/é/d" -i MANIFEST.in || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+ # from the tox.ini
+ "${PYTHON}" test/acid.py --aggressive test/example.py || die
+ "${PYTHON}" test/acid.py --compare-bytecode test/example.py || die
+}
+
+pkg_postinst() {
+ ewarn "Since this version of autopep depends on >=dev-python/pep8-1.3"
+ ewarn "it is affected by https://github.com/jcrocholl/pep8/issues/45"
+ ewarn "(indentation checks inside triple-quotes)."
+ ewarn "If you do not want to be affected by this, then add the"
+ ewarn "following lines to your local package.mask:"
+ ewarn " >=dev-python/pep8-1.3"
+ ewarn " >=dev-python/autopep8-0.6"
+}
diff --git a/dev-python/autopep8/autopep8-1.2.ebuild b/dev-python/autopep8/autopep8-1.2.ebuild
new file mode 100644
index 00000000000..f1586511092
--- /dev/null
+++ b/dev-python/autopep8/autopep8-1.2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Automatically formats Python code to conform to the PEP 8 style guide"
+HOMEPAGE="https://github.com/hhatto/autopep8 http://pypi.python.org/pypi/autopep8"
+SRC_URI="https://github.com/hhatto/${PN}/tarball/ver${PV} -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ test? ( >=dev-python/pydiff-0.1.2[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent UnicodeDecodeError with LANG=C
+ sed -e "/é/d" -i MANIFEST.in || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+ # from the travis.yml
+ "${PYTHON}" test/test_autopep8.py || die
+ "${PYTHON}" test/acid.py -aaa --experimental test/example.py || die
+ "${PYTHON}" test/acid.py -aaa --experimental test/example_with_reduce.py || die
+ "${PYTHON}" test/acid.py -aaa --compare-bytecode --experimental test/example.py die
+ "${PYTHON}" test/acid.py --aggressive --line-range 550 610 test/inspect_example.py || die
+ "${PYTHON}" test/acid.py --line-range 289 925 test/vectors_example.py || die
+ "${PYTHON}" test/test_suite.py || die
+}
+
+pkg_postinst() {
+ ewarn "Since this version of autopep depends on >=dev-python/pep8-1.3"
+ ewarn "it is affected by https://github.com/jcrocholl/pep8/issues/45"
+ ewarn "(indentation checks inside triple-quotes)."
+ ewarn "If you do not want to be affected by this, then add the"
+ ewarn "following lines to your local package.mask:"
+ ewarn " >=dev-python/pep8-1.3"
+ ewarn " >=dev-python/autopep8-0.6"
+}
diff --git a/dev-python/autopep8/autopep8-9999.ebuild b/dev-python/autopep8/autopep8-9999.ebuild
new file mode 100644
index 00000000000..47cc14ca6ed
--- /dev/null
+++ b/dev-python/autopep8/autopep8-9999.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="Automatically formats Python code to conform to the PEP 8 style guide"
+HOMEPAGE="https://github.com/hhatto/autopep8 http://pypi.python.org/pypi/autopep8"
+SRC_URI=""
+EGIT_REPO_URI="git://github.com/hhatto/${PN}.git"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ test? ( >=dev-python/pydiff-0.1.2[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" setup.py test || die
+}
diff --git a/dev-python/autopep8/files/autopep8-0.5.2-issue-10.patch b/dev-python/autopep8/files/autopep8-0.5.2-issue-10.patch
new file mode 100644
index 00000000000..5bd6c95ed17
--- /dev/null
+++ b/dev-python/autopep8/files/autopep8-0.5.2-issue-10.patch
@@ -0,0 +1,28 @@
+From bec4e89cb339beb824541b0b88dda4ea1742835f Mon Sep 17 00:00:00 2001
+From: myint <myint@macbookpro.local>
+Date: Fri, 4 May 2012 06:09:22 -0700
+Subject: [PATCH] Correct fix_e224() to not modify indentation
+
+---
+ autopep8.py | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/autopep8.py b/autopep8.py
+index c795cf3..c7ca42c 100755
+--- a/autopep8.py
++++ b/autopep8.py
+@@ -230,7 +230,10 @@ class FixPEP8(object):
+
+ def fix_e224(self, result):
+ target = self.source[result['line'] - 1]
+- fixed = re.sub(r'\t+', ' ', target, 1)
++ offset = result['column']
++ prefix = target[:offset - 1]
++ suffix = target[offset - 1:].replace('\t', ' ')
++ fixed = prefix + " " + suffix
+ self.source[result['line'] - 1] = fixed
+
+ def fix_e225(self, result):
+--
+1.7.8.5
+
diff --git a/dev-python/autopep8/metadata.xml b/dev-python/autopep8/metadata.xml
new file mode 100644
index 00000000000..f93d290156e
--- /dev/null
+++ b/dev-python/autopep8/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>autopep8 formats Python code based on the output of the pep8 utility</longdescription>
+ <upstream>
+ <remote-id type="pypi">autopep8</remote-id>
+ <remote-id type="github">hhatto/autopep8</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/axiom/Manifest b/dev-python/axiom/Manifest
new file mode 100644
index 00000000000..7845fd94a81
--- /dev/null
+++ b/dev-python/axiom/Manifest
@@ -0,0 +1,3 @@
+DIST Axiom-0.6.0.tar.gz 197148 SHA256 0c3e5586c91df966f2c1b2031db870ee6b73bdd0517f9a7dab764ef0943e548c SHA512 493aa981d6bfa4ee12cd57fe6272bb00b123f6eed9d6a07923e5f391fd7d5fc4cc1c1025fe6eaf67d1e0da75e8293695abd2e4e9895ef06f02eff6517357a0d6 WHIRLPOOL d2c5c465ae80e0265c44c19b02b6cf7cca97f0f244f8271a296b3274ef87532ec2ea29aba8b5262a46ecf9813cee666280bc045af42f2687aba5a8472027242a
+DIST Axiom-0.7.2.tar.gz 201850 SHA256 a9e82a2288ac8b465bbeb2b97b567f5eea7d4856924c3e9bb74dcbad466e2ff6 SHA512 b8aba9b1b69141ad93759255f8eb169d815565d4b5b5f813b9afadb1158960ead859c896c2f26797fa1953c5cc35729dfbbb942077530402372030f85e85f3a5 WHIRLPOOL 9dd38b9f2d1f7fb3c245c6f829c6075ed09515dc9b5b88ba4ad881ad633a91ef24b021a2bbab198d77ed58f19a2ce9e89e5846b6865ede8adb7844cf3a18f1ed
+DIST Axiom-0.7.3.tar.gz 202110 SHA256 f6607717c0ac812eedcbca45927099cd998626bbd7fc6a9cb075295cdc6a403f SHA512 c7c87333bd421dd6f618f3a0bce2a7f27f50e6ceaba0eced811c0244d1e471e65582220c561aec78ca460065862a0fa283047f80d19a653664db55d7da464863 WHIRLPOOL ca41671bb025bc4b3a57a725e4561ea2c809467c3669b992cfa5ee91a14178e3b0d042cf51371ff6571991c50887ff40fd0ae07807acd56bb3325f4fc9161705
diff --git a/dev-python/axiom/axiom-0.6.0-r1.ebuild b/dev-python/axiom/axiom-0.6.0-r1.ebuild
new file mode 100644
index 00000000000..e73d899080c
--- /dev/null
+++ b/dev-python/axiom/axiom-0.6.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit twisted-r1
+
+DESCRIPTION="Object database implemented on top of SQLite"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodAxiom http://pypi.python.org/pypi/Axiom"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND=">=dev-python/epsilon-0.6.0-r2[${PYTHON_USEDEP}]
+ <dev-python/twisted-core-14[${PYTHON_USEDEP}]
+ dev-python/twisted-conch[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.5.30-sqlite3.patch"
+ "${FILESDIR}/${PN}-0.5.30-sqlite3_3.6.4.patch"
+ "${FILESDIR}/${PN}-0.6.0-disable-tests.patch"
+)
+
+TWISTED_PLUGINS+=( axiom.plugins )
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/axiom/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ dodoc NAME.txt
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/axiom/axiom-0.7.2.ebuild b/dev-python/axiom/axiom-0.7.2.ebuild
new file mode 100644
index 00000000000..95e35c3b9c4
--- /dev/null
+++ b/dev-python/axiom/axiom-0.7.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit twisted-r1
+
+DESCRIPTION="Object database implemented on top of SQLite"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodAxiom http://pypi.python.org/pypi/Axiom"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE=""
+
+RDEPEND=">=dev-python/epsilon-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-13.2.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-0.5.30-sqlite3_3.6.4.patch" )
+
+TWISTED_PLUGINS+=( axiom.plugins )
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/axiom/plugins/dropin.cache || die
+}
diff --git a/dev-python/axiom/axiom-0.7.3.ebuild b/dev-python/axiom/axiom-0.7.3.ebuild
new file mode 100644
index 00000000000..11479ca2e14
--- /dev/null
+++ b/dev-python/axiom/axiom-0.7.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit twisted-r1
+
+DESCRIPTION="Object database implemented on top of SQLite"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodAxiom http://pypi.python.org/pypi/Axiom"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/epsilon-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-13.2.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-0.5.30-sqlite3_3.6.4.patch" )
+
+TWISTED_PLUGINS+=( axiom.plugins )
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/axiom/plugins/dropin.cache || die
+}
diff --git a/dev-python/axiom/files/axiom-0.5.30-sqlite3.patch b/dev-python/axiom/files/axiom-0.5.30-sqlite3.patch
new file mode 100644
index 00000000000..8913a1e70d8
--- /dev/null
+++ b/dev-python/axiom/files/axiom-0.5.30-sqlite3.patch
@@ -0,0 +1,45 @@
+--- axiom/_pysqlite2.py 2006-07-05 18:31:18.000000000 +0300
++++ axiom/_pysqlite2.py 2007-11-02 05:10:45.000000000 +0200
+@@ -8,7 +8,11 @@
+ """
+ import time
+
+-from pysqlite2 import dbapi2
++# Use python2.5's sqlite3 if avaliable
++try:
++ from sqlite3 import dbapi2
++except:
++ from pysqlite2 import dbapi2
+
+ from twisted.python import log
+
+--- axiom/test/test_pysqlite2.py 2006-07-02 19:23:40.000000000 +0300
++++ axiom/test/test_pysqlite2.py 2007-11-02 05:39:44.000000000 +0200
+@@ -2,7 +2,11 @@
+ Test cases for PySQLite2-specific parts of the backend.
+ """
+
+-from pysqlite2.dbapi2 import OperationalError
++# Use python2.5's sqlite3 if avaliable
++try:
++ from sqlite3.dbapi2 import OperationalError
++except:
++ from pysqlite2.dbapi2 import OperationalError
+
+ from twisted.trial.unittest import TestCase
+
+--- axiom/test/test_xatop.py 2007-02-23 02:09:19.000000000 +0200
++++ axiom/test/test_xatop.py 2007-11-02 05:38:48.000000000 +0200
+@@ -9,7 +9,11 @@
+ from axiom import attributes, item, store, errors
+ from axiom.errors import ItemNotFound
+
+-from pysqlite2.dbapi2 import sqlite_version_info
++# Use python2.5's sqlite3 if avaliable
++try:
++ from sqlite3.dbapi2 import sqlite_version_info
++except:
++ from pysqlite2.dbapi2 import sqlite_version_info
+
+
+ class RevertException(Exception):
diff --git a/dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch b/dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch
new file mode 100644
index 00000000000..cfa465ce656
--- /dev/null
+++ b/dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch
@@ -0,0 +1,36 @@
+--- axiom/_schema.py (revision 17031)
++++ axiom/_schema.py (working copy)
+@@ -28,7 +28,7 @@
+ CREATE TABLE *DATABASE*.axiom_attributes (
+ type_id INTEGER,
+ row_offset INTEGER,
+- indexed BOOLEAN,
++ "indexed" BOOLEAN,
+ sqltype VARCHAR,
+ allow_none BOOLEAN,
+ pythontype VARCHAR,
+@@ -47,13 +47,13 @@
+ HAS_SCHEMA_FEATURE = ("SELECT COUNT(oid) FROM *DATABASE*.sqlite_master "
+ "WHERE type = ? AND name = ?")
+
+-IDENTIFYING_SCHEMA = ('SELECT indexed, sqltype, allow_none, attribute '
++IDENTIFYING_SCHEMA = ('SELECT "indexed", sqltype, allow_none, attribute '
+ 'FROM *DATABASE*.axiom_attributes WHERE type_id = ? '
+ 'ORDER BY row_offset')
+
+ ADD_SCHEMA_ATTRIBUTE = (
+ 'INSERT INTO *DATABASE*.axiom_attributes '
+- '(type_id, row_offset, indexed, sqltype, allow_none, attribute, docstring, pythontype) '
++ '(type_id, row_offset, "indexed", sqltype, allow_none, attribute, docstring, pythontype) '
+ 'VALUES (?, ?, ?, ?, ?, ?, ?, ?)')
+
+ ALL_TYPES = 'SELECT oid, module, typename, version FROM *DATABASE*.axiom_types'
+@@ -61,7 +61,7 @@
+ GET_GREATER_VERSIONS_OF_TYPE = ('SELECT version FROM *DATABASE*.axiom_types '
+ 'WHERE typename = ? AND version > ?')
+
+-SCHEMA_FOR_TYPE = ('SELECT indexed, pythontype, attribute, docstring '
++SCHEMA_FOR_TYPE = ('SELECT "indexed", pythontype, attribute, docstring '
+ 'FROM *DATABASE*.axiom_attributes '
+ 'WHERE type_id = ?')
+
diff --git a/dev-python/axiom/files/axiom-0.6.0-disable-tests.patch b/dev-python/axiom/files/axiom-0.6.0-disable-tests.patch
new file mode 100644
index 00000000000..9df20a5cd82
--- /dev/null
+++ b/dev-python/axiom/files/axiom-0.6.0-disable-tests.patch
@@ -0,0 +1,89 @@
+--- test/lib/axiom/test/test_query.py.orig 2015-07-21 10:15:57.441000000 +0000
++++ test/lib/axiom/test/test_query.py 2015-07-21 10:16:36.356000000 +0000
+@@ -1043,46 +1043,46 @@
+ SecondType(store=self.store)
+
+
+- def test_firstTableOuterLoop(self):
+- """
+- Test that in a two table query, the table which appears first in the
+- result of the getInvolvedTables method of the comparison used is the
+- one which the outer join loop iterates over.
+-
+- Test this by inserting rows into the first table and checking that the
+- number of bytecodes executed increased.
+- """
+- counter = QueryCounter(self.store)
+- counts = []
+- for c in range(10):
+- counts.append(counter.measure(list, self.query))
+- FirstType(store=self.store)
+-
+- # Make sure they're not all the same
+- self.assertEqual(len(set(counts)), len(counts))
+-
+- # Make sure they're increasing
+- self.assertEqual(counts, sorted(counts))
+-
+-
+- def test_secondTableInnerLoop(self):
+- """
+- Like L{test_firstTableOuterLoop} but for the second table being
+- iterated over by the inner loop.
+-
+- This creates more rows in the second table while still performing a
+- query for which no rows in the first table satisfy the WHERE
+- condition. This should mean that rows from the second table are
+- never examined.
+- """
+- counter = QueryCounter(self.store)
+- count = None
+- for i in range(10):
+- c = counter.measure(list, self.query)
+- if count is None:
+- count = c
+- self.assertEqual(count, c)
+- SecondType(store=self.store)
++ #def test_firstTableOuterLoop(self):
++ # """
++ # Test that in a two table query, the table which appears first in the
++ # result of the getInvolvedTables method of the comparison used is the
++ # one which the outer join loop iterates over.
++
++ # Test this by inserting rows into the first table and checking that the
++ # number of bytecodes executed increased.
++ # """
++ # counter = QueryCounter(self.store)
++ # counts = []
++ # for c in range(10):
++ # counts.append(counter.measure(list, self.query))
++ # FirstType(store=self.store)
++
++ # # Make sure they're not all the same
++ # self.assertEqual(len(set(counts)), len(counts))
++
++ # # Make sure they're increasing
++ # self.assertEqual(counts, sorted(counts))
++
++
++ #def test_secondTableInnerLoop(self):
++ # """
++ # Like L{test_firstTableOuterLoop} but for the second table being
++ # iterated over by the inner loop.
++
++ # This creates more rows in the second table while still performing a
++ # query for which no rows in the first table satisfy the WHERE
++ # condition. This should mean that rows from the second table are
++ # never examined.
++ # """
++ # counter = QueryCounter(self.store)
++ # count = None
++ # for i in range(10):
++ # c = counter.measure(list, self.query)
++ # if count is None:
++ # count = c
++ # self.assertEqual(count, c)
++ # SecondType(store=self.store)
+
+
+ class AndOrQueries(QueryingTestCase):
diff --git a/dev-python/axiom/metadata.xml b/dev-python/axiom/metadata.xml
new file mode 100644
index 00000000000..82bf554e300
--- /dev/null
+++ b/dev-python/axiom/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Axiom is an object database, or alternatively, an object-relational
+ mapper. Its primary goal is to provide an object-oriented layer with
+ what we consider to be the key aspects of OO, i.e. polymorphism and
+ message dispatch, without hindering the power of an RDBMS. It is
+ designed to &quot;feel pythonic&quot;, without encouraging the typical ORM
+ behavior such as potato programming.</longdescription>
+ <upstream>
+ <remote-id type="pypi">Axiom</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/babelfish/Manifest b/dev-python/babelfish/Manifest
new file mode 100644
index 00000000000..c99b2e078e4
--- /dev/null
+++ b/dev-python/babelfish/Manifest
@@ -0,0 +1,3 @@
+DIST babelfish-0.4.0.tar.gz 89386 SHA256 1c22bf70ecc61d0ebe637edc3868dfb146dc5a458be353b20386406e28a18710 SHA512 f9e2cf8ec367cead528d99019fc1e597a94b6654cd2b5c39ba3e2deb9e579bd8af54f463510f709c5c540911e01ed830511f833fe2400bd7ec6a70cd05ee642f WHIRLPOOL 0034705cf62bde3851e9edc4cc63316c4874c404c65fd0ff33937acb1fc4da29e54ad03aa8e11ecf98bcf0f8bc5f2c1b89be7963f63611a481650dfc709e73ab
+DIST babelfish-0.5.1.tar.gz 89683 SHA256 bd78ecacc684aac8939c2937fe25c85179123940997943381ae9c22e37bf964f SHA512 24f192867ba5e34fbe5f5f90cae479b095577b6b6a0a0f6e778f68130b0010c382e204cb1da15f062929ce231f3f9a5bb5c7e4c01a4a2dcbf975e884a25e4210 WHIRLPOOL 3f0dc56b981ac2ec59bb4ba88f27419de0e7276fbd05e845c76f46081afb2561e6852081a1be6f0df36a9fe110419c49679d8e4255ca4e1b37e6689133b05114
+DIST babelfish-0.5.3.tar.gz 90579 SHA256 4fbdd172d0feec0861ccf9ed8e36abb09d36c88c216eeedca2661fec5b103c73 SHA512 c419f8d881ba9995f45f212b7182d2f95a28b5fd911933a1c10768506682068abc7ea0394d6ef6dc337be47f601ae479582571c6d1753870671dec77e67156a9 WHIRLPOOL f64268ca394f19be03a67aa38de7dade7b0d17219c2d5b4db994d6e0d32f067b899a8aaa548fa5cbcb067efd67b7a123407d9d69d081521cf09b13d51857812c
diff --git a/dev-python/babelfish/babelfish-0.4.0.ebuild b/dev-python/babelfish/babelfish-0.4.0.ebuild
new file mode 100644
index 00000000000..0be5e03193a
--- /dev/null
+++ b/dev-python/babelfish/babelfish-0.4.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to work with countries and languages"
+HOMEPAGE="https://github.com/Diaoul/babelfish https://pypi.python.org/pypi/babelfish"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/babelfish/babelfish-0.5.1.ebuild b/dev-python/babelfish/babelfish-0.5.1.ebuild
new file mode 100644
index 00000000000..c3f6b28af6a
--- /dev/null
+++ b/dev-python/babelfish/babelfish-0.5.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to work with countries and languages"
+HOMEPAGE="https://github.com/Diaoul/babelfish https://pypi.python.org/pypi/babelfish"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/babelfish/babelfish-0.5.3.ebuild b/dev-python/babelfish/babelfish-0.5.3.ebuild
new file mode 100644
index 00000000000..c3f6b28af6a
--- /dev/null
+++ b/dev-python/babelfish/babelfish-0.5.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to work with countries and languages"
+HOMEPAGE="https://github.com/Diaoul/babelfish https://pypi.python.org/pypi/babelfish"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/babelfish/babelfish-9999.ebuild b/dev-python/babelfish/babelfish-9999.ebuild
new file mode 100644
index 00000000000..1466a6dabaf
--- /dev/null
+++ b/dev-python/babelfish/babelfish-9999.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+EGIT_REPO_URI="https://github.com/Diaoul/babelfish.git"
+
+inherit distutils-r1 git-r3
+
+DESCRIPTION="Python library to work with countries and languages"
+HOMEPAGE="https://github.com/Diaoul/babelfish https://pypi.python.org/pypi/babelfish"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/babelfish/metadata.xml b/dev-python/babelfish/metadata.xml
new file mode 100644
index 00000000000..9c1f3790312
--- /dev/null
+++ b/dev-python/babelfish/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>nikoli@gmx.us</email>
+ </maintainer>
+ <herd>proxy-maintainers</herd>
+ <upstream>
+ <remote-id type="pypi">babelfish</remote-id>
+ <remote-id type="github">Diaoul/babelfish</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/backports-lzma/Manifest b/dev-python/backports-lzma/Manifest
new file mode 100644
index 00000000000..e44ec1c3aaa
--- /dev/null
+++ b/dev-python/backports-lzma/Manifest
@@ -0,0 +1 @@
+DIST backports.lzma-0.0.3.tar.gz 33848 SHA256 bac58aec8d39ac3d22250840fb24830d0e4a0ef05ad8f3f09172dc0cc80cdbca SHA512 a653b61d1e45de73ac13845127fecd97e84872c453be9e090ba2d6d2ff6187817ab980e36c1961f0a66bb9a660bb716fc7679b5317a4ff41db42156024847f45 WHIRLPOOL 33eb3c8b1c9aa8d4beabdc52247cea4b0ad2913989a2b508f71073a7a6b8dd9b6260339233f78d8e8f28476c48242076b3a95b427155f0605336e17b79e0d9ee
diff --git a/dev-python/backports-lzma/backports-lzma-0.0.3.ebuild b/dev-python/backports-lzma/backports-lzma-0.0.3.ebuild
new file mode 100644
index 00000000000..8d3824084c1
--- /dev/null
+++ b/dev-python/backports-lzma/backports-lzma-0.0.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Backport of Python 3.3's lzma module for XZ/LZMA compressed files"
+HOMEPAGE="https://github.com/peterjc/backports.lzma/ http://pypi.python.org/pypi/backports.lzma/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="app-arch/xz-utils
+ dev-python/backports[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ PYTHONPATH="${BUILD_DIR}/lib" "${PYTHON}" test/test_lzma.py || die "tests failed with ${EPYTHON}"
+}
+
+python_install() {
+ # main namespace provided by dev-python/backports
+ rm "${BUILD_DIR}"/lib/backports/__init__.py || die
+ rm -f backports/__init__.py || die
+
+ distutils-r1_python_install
+}
diff --git a/dev-python/backports-lzma/metadata.xml b/dev-python/backports-lzma/metadata.xml
new file mode 100644
index 00000000000..1780f771218
--- /dev/null
+++ b/dev-python/backports-lzma/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">peterjc/backports.lzma</remote-id>
+ <remote-id type="pypi">backports.lzma</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/backports-shutil_get_terminal_size/Manifest b/dev-python/backports-shutil_get_terminal_size/Manifest
new file mode 100644
index 00000000000..2377e96f8d1
--- /dev/null
+++ b/dev-python/backports-shutil_get_terminal_size/Manifest
@@ -0,0 +1 @@
+DIST backports.shutil_get_terminal_size-1.0.0.tar.gz 4279 SHA256 713e7a8228ae80341c70586d1cc0a8caa5207346927e23d09dcbcaf18eadec80 SHA512 b74341c6616f9aace5abcc7fd657fc33801b558b6227c533002ccaf588734490b465a4a27d2bdc8047a385771afdcded610edef832dfa5ef24632f4541729050 WHIRLPOOL a04b702aba3b9892ca5b86b284e6945e1980e135946c04abef2b95a3e12a230eb7c99b20418a4dc21f8c3f7b20715daa75d89d61fbea248d788f0aef5326cd07
diff --git a/dev-python/backports-shutil_get_terminal_size/backports-shutil_get_terminal_size-1.0.0-r1.ebuild b/dev-python/backports-shutil_get_terminal_size/backports-shutil_get_terminal_size-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..4e9b2fd6b7a
--- /dev/null
+++ b/dev-python/backports-shutil_get_terminal_size/backports-shutil_get_terminal_size-1.0.0-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="backports.shutil_get_terminal_size"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A backport of the get_terminal_size function from Python 3.3's shutil"
+HOMEPAGE="https://pypi.python.org/pypi/backports.shutil_get_terminal_size/ https://github.com/chrippa/backports.shutil_get_terminal_size"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/backports[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+python_install() {
+ distutils-r1_python_install
+
+ # main namespace provided by dev-python/backports
+ rm "${ED}$(python_get_sitedir)"/backports/__init__.py* || die
+}
diff --git a/dev-python/backports-shutil_get_terminal_size/metadata.xml b/dev-python/backports-shutil_get_terminal_size/metadata.xml
new file mode 100644
index 00000000000..d3339604a9f
--- /dev/null
+++ b/dev-python/backports-shutil_get_terminal_size/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">backports.shutil_get_terminal_size</remote-id>
+ <remote-id type="github">chrippa/backports.shutil_get_terminal_size</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/backports-ssl-match-hostname/Manifest b/dev-python/backports-ssl-match-hostname/Manifest
new file mode 100644
index 00000000000..57647b12f7d
--- /dev/null
+++ b/dev-python/backports-ssl-match-hostname/Manifest
@@ -0,0 +1 @@
+DIST backports.ssl_match_hostname-3.4.0.2.tar.gz 5151 SHA256 07410e7fb09aab7bdaf5e618de66c3dac84e2e3d628352814dc4c37de321d6ae SHA512 7e6033afbb5298a5eaafe91c3e2f7ba583706977826cc9441c9926a81b945714be95963f0261f88f4cb5df56673ca231e528cecbe84dff9e422fd11819842985 WHIRLPOOL 781bc5e791bb78f3345d607e764a718ba96ef9d02bace67fea502c52b438b34f561efa733eaa4ff8b4a7152fdcd086f9ba014b4f3628a590f6d4cec46f08bee7
diff --git a/dev-python/backports-ssl-match-hostname/backports-ssl-match-hostname-3.4.0.2.ebuild b/dev-python/backports-ssl-match-hostname/backports-ssl-match-hostname-3.4.0.2.ebuild
new file mode 100644
index 00000000000..fd8516b4f42
--- /dev/null
+++ b/dev-python/backports-ssl-match-hostname/backports-ssl-match-hostname-3.4.0.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+MY_PN=${MY_PN//-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Backport of the ssl.match_hostname function"
+HOMEPAGE="https://pypi.python.org/pypi/backports.ssl_match_hostname/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="PYTHON"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ppc ppc64 x86 ~amd64-linux ~x86-linux"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/backports[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ # prevent unnecessary docs from being installed in site-packages
+ mv src/backports/ssl_match_hostname/{LICENSE,README}.txt "${S}" || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ local DOCS=( README.txt )
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # main namespace provided by dev-python/backports
+ rm "${ED}$(python_get_sitedir)"/backports/__init__.py* || die
+}
diff --git a/dev-python/backports-ssl-match-hostname/metadata.xml b/dev-python/backports-ssl-match-hostname/metadata.xml
new file mode 100644
index 00000000000..a814551856c
--- /dev/null
+++ b/dev-python/backports-ssl-match-hostname/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">backports.ssl_match_hostname</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/backports/Manifest b/dev-python/backports/Manifest
new file mode 100644
index 00000000000..5a9cced0393
--- /dev/null
+++ b/dev-python/backports/Manifest
@@ -0,0 +1 @@
+DIST backports-1.0.tar.gz 2070 SHA256 ee43d5b7bf4e79e04fbab30a09421cb5cbf4f56e7c14769393a7d1c34ea5e740 SHA512 069e155209d6036dec09000e4543abea9383f13b229a7259b1d3d02fff4b51be1a32c766dee434215c8a5209afc5e7d24163d188a77cec7d354d34170665bd37 WHIRLPOOL 105962b9fd92a4ae9cf6b9c54a2306b92460971efa0bec7885167c9197fa286be01f077e0ed35f56f6c341223a42f4e2ab217f745283ae1a0ffb70544e1a5d50
diff --git a/dev-python/backports/backports-1.0.ebuild b/dev-python/backports/backports-1.0.ebuild
new file mode 100644
index 00000000000..96bbccbd982
--- /dev/null
+++ b/dev-python/backports/backports-1.0.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Namespace for backported Python features"
+HOMEPAGE="https://bitbucket.org/brandon/backports https://pypi.python.org/pypi/backports/"
+SRC_URI="http://dev.gentoo.org/~radhermit/dist/${P}.tar.gz"
+
+LICENSE="PYTHON"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ppc ppc64 x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="!<dev-python/backports-lzma-0.0.2-r1"
diff --git a/dev-python/backports/metadata.xml b/dev-python/backports/metadata.xml
new file mode 100644
index 00000000000..e01cf289586
--- /dev/null
+++ b/dev-python/backports/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="bitbucket">brandon/backports</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bandit/Manifest b/dev-python/bandit/Manifest
new file mode 100644
index 00000000000..05671fae7b5
--- /dev/null
+++ b/dev-python/bandit/Manifest
@@ -0,0 +1,2 @@
+DIST bandit-0.12.0.tar.gz 65558 SHA256 3c147b507696f3a74a5cf3581cc3bb65a63df454fcf24db28c3d1baa765a3b04 SHA512 ef1d80f2ca09d427e6d48f983d696fb92eb12184fbdc13dfb170a73c5935f56f7e6bf3b4cf4d211598f884592e6fe2ca33f6d33732cf12e740f74d43ffe78457 WHIRLPOOL 1defd5dcb9d120585b10e72c51501373572e7d56c0e379ec587592fd53a381baf262a970956cd9fa4c2ad007697a1b7db9068d130b6cb3a33a00c40bb9c6a13c
+DIST bandit-0.13.0.tar.gz 73142 SHA256 4593957b236564599dec7c8b2da5b084f9b257213688a3a97b2643c04721eb66 SHA512 1605fb2e3e43a85ccf89a0b18c517082543d20b55149383d3704d71854817cfef3fd5e1095dd58e24efe0324ca9430fc8d7ab9f3e4f1db1ca0ffe7c4f8e17577 WHIRLPOOL 3becc739b966c2ff550988f04b1dbb03b285b120ff1f2bf4822a0b2277bdd2dc23f7e5c4d5ce6ea98dc45211d9ee7ed52f37e602f2d18558eacce356b81f79a5
diff --git a/dev-python/bandit/bandit-0.12.0.ebuild b/dev-python/bandit/bandit-0.12.0.ebuild
new file mode 100644
index 00000000000..47d41282965
--- /dev/null
+++ b/dev-python/bandit/bandit-0.12.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A security linter from OpenStack Security"
+HOMEPAGE="https://openstack.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="
+ >=dev-python/pbr-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0.0[${PYTHON_USEDEP}]"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/appdirs-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.5.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run || die
+}
diff --git a/dev-python/bandit/bandit-0.13.0.ebuild b/dev-python/bandit/bandit-0.13.0.ebuild
new file mode 100644
index 00000000000..47d41282965
--- /dev/null
+++ b/dev-python/bandit/bandit-0.13.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A security linter from OpenStack Security"
+HOMEPAGE="https://openstack.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="
+ >=dev-python/pbr-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0.0[${PYTHON_USEDEP}]"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/appdirs-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.5.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run || die
+}
diff --git a/dev-python/bandit/metadata.xml b/dev-python/bandit/metadata.xml
new file mode 100644
index 00000000000..370c3e68dac
--- /dev/null
+++ b/dev-python/bandit/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A tool designed to find common security issues in Python code.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">bandit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/basemap/Manifest b/dev-python/basemap/Manifest
new file mode 100644
index 00000000000..520bebbeda9
--- /dev/null
+++ b/dev-python/basemap/Manifest
@@ -0,0 +1 @@
+DIST basemap-1.0.7.tar.gz 129694711 SHA256 e07ec2e0d63b24c9aed25a09fe8aff2598f82a85da8db74190bac81cbf104531 SHA512 dc8ef8f02127813c9460c6a9c22c593616bbe8ff39f6507abb786d344c710b296bf4f21759b5c1e6fc8ccf3f478d8fb6f546429528575d13f732c4233aaf9c20 WHIRLPOOL 7da55c32cdcea897e71367ec7d2b916a66973a7a761b001c0be5a9a5d97347a51c51e57828fb46f8c70b3a6576c562377657d129dc6fb54333e76897aaf76f6e
diff --git a/dev-python/basemap/basemap-1.0.7-r1.ebuild b/dev-python/basemap/basemap-1.0.7-r1.ebuild
new file mode 100644
index 00000000000..cd90c1988c0
--- /dev/null
+++ b/dev-python/basemap/basemap-1.0.7-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="matplotlib toolkit to plot map projections"
+HOMEPAGE="http://matplotlib.sourceforge.net/basemap/doc/html/ http://pypi.python.org/pypi/basemap"
+SRC_URI="mirror://sourceforge/matplotlib/${P}.tar.gz"
+
+IUSE="examples test"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+LICENSE="MIT GPL-2"
+
+CDEPEND="sci-libs/shapelib
+ >=dev-python/matplotlib-0.98[${PYTHON_USEDEP}]
+ >=sci-libs/geos-3.3.1[python,${PYTHON_USEDEP}]"
+
+DEPEND="${CDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+RDEPEND="${CDEPEND}
+ >=dev-python/pupynere-1.0.8[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ dev-python/dap[${PYTHON_USEDEP}]"
+
+DOCS="FAQ API_CHANGES"
+#REQUIRED_USE="test? ( examples )"
+# The test phase ought never have been onvoked according to the above.
+# The test phase appears to require the package to fist be emerged, which ...
+# Until the distutils_install_for_testing func refrains from failing with
+# mkdir: cannot create directory ‘/test’: Permission denied
+# reluctantly this phase is assigned
+RESTRICT="test"
+
+src_prepare() {
+ sed -i \
+ -e "s:/usr:${EPREFIX}/usr:g" \
+ setup.py || die
+ # use /usr/share/data
+ sed -i \
+ -e "/_datadir.*=.*join/s|\(.*datadir.*=\).*|\1'${EROOT}usr/share/${PN}'|g" \
+ "${S}"/lib/mpl_toolkits/basemap/*.py || die
+ distutils-r1_src_prepare
+ append-flags -fno-strict-aliasing
+}
+
+#src_test() {
+# distutils_install_for_testing
+#}
+
+python_install() {
+ distutils-r1_python_install
+ # --install-data="${EPREFIX}/usr/share/${PN}" on testing is found not to work;
+ # setup.py is a mess. Someone care to patch setup.py please proceed; substitute with
+ insinto usr/share/basemap/
+ doins lib/mpl_toolkits/basemap/data/*
+
+ # clean up collision with matplotlib
+ rm -f "${D}$(python_get_sitedir)/mpl_toolkits/__init__.py"
+ # respect FHS
+ rm -fr "${D}$(python_get_sitedir)/mpl_toolkits/basemap/data"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/basemap/metadata.xml b/dev-python/basemap/metadata.xml
new file mode 100644
index 00000000000..60bfb2ae700
--- /dev/null
+++ b/dev-python/basemap/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci-geosciences</herd>
+ <longdescription>
+ basemap is a matplotlib toolkit. It allows to plot data on map
+ projections (with continental and political boundaries).
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">matplotlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bashate/Manifest b/dev-python/bashate/Manifest
new file mode 100644
index 00000000000..c7e4a734098
--- /dev/null
+++ b/dev-python/bashate/Manifest
@@ -0,0 +1 @@
+DIST bashate-0.3.1.tar.gz 16016 SHA256 2398140c35fcb03249640708aa7de652f9cbe680ad6cb09074a89255f6a30419 SHA512 dfa3e8f98879169cef445cc9a788b4ed051630330e2270c721e472f080899d6742cd3deb571049ba6b943ada0fc77a70f5a7e4742a54d1ca6d5f075a92a00ffb WHIRLPOOL d35e19ee324aa419e855ab4093b3b57f0420a5d9fcc15ff64c32935865e8680b21278f529f87ec0338807d7e903af5918f78a0c780ca7a89f672c0cc87b884bc
diff --git a/dev-python/bashate/bashate-0.3.1.ebuild b/dev-python/bashate/bashate-0.3.1.ebuild
new file mode 100644
index 00000000000..e1d4c7dd849
--- /dev/null
+++ b/dev-python/bashate/bashate-0.3.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+DISTUTILS_IN_SOURCE_BUILD=TRUE
+
+# time
+RESTRICT="test"
+
+inherit distutils-r1
+
+DESCRIPTION="A pep8 equivalent for bash scripts"
+HOMEPAGE="https://pypi.python.org/pypi/bashate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/Babel-0.9.6[${PYTHON_USEDEP}]
+"
+
+python_install_all() {
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bashate/metadata.xml b/dev-python/bashate/metadata.xml
new file mode 100644
index 00000000000..8e82ccfb2d1
--- /dev/null
+++ b/dev-python/bashate/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A pep8 equivalent for bash scripts
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">bashate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bcolz/Manifest b/dev-python/bcolz/Manifest
new file mode 100644
index 00000000000..2688c475545
--- /dev/null
+++ b/dev-python/bcolz/Manifest
@@ -0,0 +1,3 @@
+DIST bcolz-0.10.0.tar.gz 541803 SHA256 cbe1c18440325058d764b3997fbf988af0257c2a4f7d64ec7150735191fdcc81 SHA512 ac6b30c3a1f1cd32563fcec670bd7b3639173547e8f6d319295358a38d4e39439bb26d7c908b30378d9a384b8667bc75023ebcf35f797a1250bdba1a25cbeebd WHIRLPOOL 5827303b5a8c356e183a88411a466276b9e3fe3e9d0f7999d5cb2923f34a6031816f0b829c7826dc956be312bccbcd4d24820ce4b861e940f2f9b0399cc3ff31
+DIST bcolz-0.8.1.tar.gz 533475 SHA256 c70f986a919842909ae96ff18994e3011d237c9fd0bbc0ee9f3588db736c4296 SHA512 022546f0908130f4af26be79ab9b10fb3d2951a1fe5e953201b249cbd4bcbd3003279c0b71009f29046bdf4b660a6e2d87672c7f47054a03f1df4d9dab83cb0a WHIRLPOOL dff6b600a36bc760a65d3271068d9ea19854eca3b3fe08248bf22d41da0b71315eb254ad175c78f54eb5170397c4d587c48ec3eefc74e5903214adde057f3f76
+DIST bcolz-0.9.0.tar.gz 530950 SHA256 086b1ad62accf6b45e9386edfa23ccc9f8a1feaec5803e7f39753139eb016a50 SHA512 0b71d670a42baa49e7ba3b856cad11cd163142054b0330f469de5ab30e456b58ebae5bffced4214b1988094fd92c7784cc7d7af026f28632abe26e3954850087 WHIRLPOOL 6edfd8b9addbdbe5d7d4bc2f6df77e8a3e61b94d62cb2b091fafabc4f749b1e8333819a607293a3c3d1cea9c7345d250e0e2e38ef6f5e636c65330a6c1be9fb6
diff --git a/dev-python/bcolz/bcolz-0.10.0.ebuild b/dev-python/bcolz/bcolz-0.10.0.ebuild
new file mode 100644
index 00000000000..7193031a69c
--- /dev/null
+++ b/dev-python/bcolz/bcolz-0.10.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides columnar and compressed data containers"
+HOMEPAGE=" https://github.com/Blosc/bcolz"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# numexpr is optional but set hard rdepend
+RDEPEND=">=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-1.4.1[${PYTHON_USEDEP}]"
+DEPEND=">=dev-python/cython-0.22[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use doc; then
+ mkdir doc/_static || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/ doc/ doc/html
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ "${PYTHON}" -m unittest discover || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bcolz/bcolz-0.8.1.ebuild b/dev-python/bcolz/bcolz-0.8.1.ebuild
new file mode 100644
index 00000000000..b379bbcd720
--- /dev/null
+++ b/dev-python/bcolz/bcolz-0.8.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides columnar and compressed data containers"
+HOMEPAGE=" https://github.com/Blosc/bcolz"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+# numexpr is optional but set hard rdeoend
+RDEPEND=">=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-1.4.1[${PYTHON_USEDEP}]"
+DEPEND=">=dev-python/cython-0.22[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use doc; then
+ mkdir doc/_static || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/ doc/ doc/html
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ "${PYTHON}" -m unittest discover || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bcolz/bcolz-0.9.0.ebuild b/dev-python/bcolz/bcolz-0.9.0.ebuild
new file mode 100644
index 00000000000..7193031a69c
--- /dev/null
+++ b/dev-python/bcolz/bcolz-0.9.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides columnar and compressed data containers"
+HOMEPAGE=" https://github.com/Blosc/bcolz"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# numexpr is optional but set hard rdepend
+RDEPEND=">=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-1.4.1[${PYTHON_USEDEP}]"
+DEPEND=">=dev-python/cython-0.22[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use doc; then
+ mkdir doc/_static || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/ doc/ doc/html
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ "${PYTHON}" -m unittest discover || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bcolz/metadata.xml b/dev-python/bcolz/metadata.xml
new file mode 100644
index 00000000000..55412f5e0a7
--- /dev/null
+++ b/dev-python/bcolz/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">bcolz</remote-id>
+ <remote-id type="github">Blosc/bcolz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bcrypt/Manifest b/dev-python/bcrypt/Manifest
new file mode 100644
index 00000000000..fe9089971d2
--- /dev/null
+++ b/dev-python/bcrypt/Manifest
@@ -0,0 +1,3 @@
+DIST bcrypt-1.0.2.tar.gz 39090 SHA256 03c9e8cab644dec13c94a61eccdd930c87d62363f871bfe2ee12421703f27e8b SHA512 cd27897378cf711c6dabc351e30aa063f216133af06a6f9ce63e7cc0f95e0b14cd58806cbf82ad410ca5d5a02adc43be5b76400ae353bf60520f57b76b1bf1a4 WHIRLPOOL 5c15dc34e56f6cfa64aaa30dc182837f1f7bba84906429d1ebee335d3c8d0ed146809bdf766c964e3f5d226082b79148e537b71e6a75fb5f0005178eadb31ef7
+DIST bcrypt-1.1.1.tar.gz 39714 SHA256 f68700f4560d90e30b7bb30105b9553000690222887625209aa8a14826ce0461 SHA512 b6388e69dfe4a7a40a304745607fe23fa2cd6c0f874b09c39849958f4d4c77cd5387c2baa79de69e8809c0df8841b085885c83f00bc13ee5a08b3af6c04d721f WHIRLPOOL cc5759ab03c2da11a5b2f3da741957f250eb4b016aa6e5cf3fcc3a28f527219343c321dd432235ec99fc67749edbdb6806d410d6f0ca0afad0c03374ef019b20
+DIST bcrypt-2.0.0.tar.gz 38748 SHA256 8b2d197ef220d10eb74625dde7af3b10daa973ae9a1eadd6366f763fad4387fa SHA512 61ee83c291e65307d1094d4ca80d58f823c04d8389384e33265a3d4d7537ef0846ba07e23ab1c68501851e9b9fc3cc927e0137d52450aee6af938c91c821c435 WHIRLPOOL 46484d780f50a449e5c7d40f37b20b0a9baae4b51a0facb9cb774abddba29d4353c40e274f57c101db572ba778d134d2069180ad8ee73dbef55406aee5560721
diff --git a/dev-python/bcrypt/bcrypt-1.0.2-r1.ebuild b/dev-python/bcrypt/bcrypt-1.0.2-r1.ebuild
new file mode 100644
index 00000000000..235ca139f63
--- /dev/null
+++ b/dev-python/bcrypt/bcrypt-1.0.2-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Modern password hashing for software and servers"
+HOMEPAGE="https://github.com/dstufft/bcrypt/"
+SRC_URI="https://github.com/pyca/bcrypt/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="test"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+RDEPEND="$(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' python*)
+ !dev-python/py-bcrypt"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/bcrypt/bcrypt-1.1.1.ebuild b/dev-python/bcrypt/bcrypt-1.1.1.ebuild
new file mode 100644
index 00000000000..4f98d0f41ee
--- /dev/null
+++ b/dev-python/bcrypt/bcrypt-1.1.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Modern password hashing for software and servers"
+HOMEPAGE="https://github.com/pyca/bcrypt/ https://pypi.python.org/pypi/bcrypt/"
+SRC_URI="
+ https://github.com/pyca/bcrypt/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ "
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 ~ppc64 ~x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/cffi:=[${PYTHON_USEDEP}]' 'python*')
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ $(python_gen_cond_dep 'dev-python/cffi:=[${PYTHON_USEDEP}]' 'python*')
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ !dev-python/py-bcrypt"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/bcrypt/bcrypt-2.0.0.ebuild b/dev-python/bcrypt/bcrypt-2.0.0.ebuild
new file mode 100644
index 00000000000..28ee0eeb488
--- /dev/null
+++ b/dev-python/bcrypt/bcrypt-2.0.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Modern password hashing for software and servers"
+HOMEPAGE="https://github.com/pyca/bcrypt/ https://pypi.python.org/pypi/bcrypt/"
+SRC_URI="
+ https://github.com/pyca/bcrypt/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ "
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-1.1:=[${PYTHON_USEDEP}]' 'python*')
+ "
+RDEPEND="
+ $(python_gen_cond_dep '>=dev-python/cffi-1.1:=[${PYTHON_USEDEP}]' 'python*')
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ !dev-python/py-bcrypt"
+
+# The testsuite is not included in the tarball
diff --git a/dev-python/bcrypt/metadata.xml b/dev-python/bcrypt/metadata.xml
new file mode 100644
index 00000000000..23cd9438799
--- /dev/null
+++ b/dev-python/bcrypt/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">bcrypt</remote-id>
+ <remote-id type="github">pyca/bcrypt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/beaker/Manifest b/dev-python/beaker/Manifest
new file mode 100644
index 00000000000..afb230807a8
--- /dev/null
+++ b/dev-python/beaker/Manifest
@@ -0,0 +1,2 @@
+DIST Beaker-1.6.4.tar.gz 54480 SHA256 5b06dcc9f7b1921bc962235c4051aa5f3f5d3609f42faa6064dc614ace031a3a SHA512 5a6835d01d0b1bee57844525f1223d74edd26f07cc769df6a8cfa77f44dda4435eb96639175928a1caf7c4f927ac3a674c0fd0e7f50f1aea91da7880de3a6704 WHIRLPOOL 13162d6733b69966133c17171b6725e0a2e7c2f56942bbc591ff3992dee50d7a5e91cc11a6a4ae775a9ec3dab805c2ae352982f0b1670190325b11d06a2e52a9
+DIST beaker-1.7.0.tar.gz 73768 SHA256 ee8492fb3e218855ec51751d58d95296d029489ea4ec64af0c2f3e57bd776be2 SHA512 3e6ca976974bcc43c9291fab40192f91b16d73d11417adb4dc98d0e289e2af8658dc49905a3ab0dc08abfa92c8e0f8b58ec23425e451ef22d1f573aa8ab0c992 WHIRLPOOL 20538e7a9463ba09707148273a372a02f6c121f7d3f9cf6b0c3df65b1dd140da7e7830adb8def88bbd14e041a2ba0fa2578f977422fc45421d37d8293faf8bef
diff --git a/dev-python/beaker/beaker-1.6.4-r1.ebuild b/dev-python/beaker/beaker-1.6.4-r1.ebuild
new file mode 100644
index 00000000000..ee3e4d258b5
--- /dev/null
+++ b/dev-python/beaker/beaker-1.6.4-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# py3.3 unfit with some types
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Beaker"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Session and Caching library with WSGI Middleware"
+HOMEPAGE="http://beaker.groovie.org/ http://pypi.python.org/pypi/Beaker"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ~ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="test"
+
+# webtest-based tests are skipped when webtest is not installed
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Workaround for http://bugs.python.org/issue11276.
+ sed -e "s/import anydbm/& as anydbm/;/import anydbm/a dbm = anydbm" \
+ -i beaker/container.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+ pushd "${BUILD_DIR}"/tests > /dev/null
+ nosetests || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null
+}
diff --git a/dev-python/beaker/beaker-1.7.0-r1.ebuild b/dev-python/beaker/beaker-1.7.0-r1.ebuild
new file mode 100644
index 00000000000..c0037559998
--- /dev/null
+++ b/dev-python/beaker/beaker-1.7.0-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Session and Caching library with WSGI Middleware"
+HOMEPAGE="https://github.com/bbangert/beaker http://pypi.python.org/pypi/Beaker"
+SRC_URI="https://github.com/bbangert/${PN}/archive/v1.7.0dev.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~s390 ~sh ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="test"
+
+# webtest-based tests are skipped when webtest is not installed
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ )"
+RDEPEND=""
+
+S="${WORKDIR}/${P}dev"
+
+python_prepare_all() {
+ # Workaround for http://bugs.python.org/issue11276.
+ sed -e "s/import anydbm/& as anydbm/;/import anydbm/a dbm = anydbm" \
+ -i beaker/container.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+ pushd "${BUILD_DIR}"/tests > /dev/null
+ nosetests || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null
+}
+
+pkg_postinst() {
+ elog "beaker also has optional support for packages"
+ elog "pycrypto and pycryptopp"
+}
diff --git a/dev-python/beaker/metadata.xml b/dev-python/beaker/metadata.xml
new file mode 100644
index 00000000000..5efee24b8f2
--- /dev/null
+++ b/dev-python/beaker/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Beaker</remote-id>
+ <remote-id type="github">bbangert/beaker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/beanstalkc/Manifest b/dev-python/beanstalkc/Manifest
new file mode 100644
index 00000000000..3bf9c0088d1
--- /dev/null
+++ b/dev-python/beanstalkc/Manifest
@@ -0,0 +1 @@
+DIST beanstalkc-0.4.0.tar.gz 13921 SHA256 98978e57797320146f4b233286d9a02f65d20bad0168424118839fc608085280 SHA512 30485aed4036549c524982bbabe5a27af5fe6f0547175622019b4469fc1fef32d013cbef5e38a1928ab92a3acf6aba9bc7607c3e8e9f2f3c6f65631d39471a7b WHIRLPOOL ca43ca379ed87046f926185d43caeab8f29ffb4388bdc0e6184cf59f98016537e68f8f63188199c895b45d9da39df59cdf34b39372faffbc5499300c5f919a2d
diff --git a/dev-python/beanstalkc/beanstalkc-0.4.0-r1.ebuild b/dev-python/beanstalkc/beanstalkc-0.4.0-r1.ebuild
new file mode 100644
index 00000000000..42a49dda47d
--- /dev/null
+++ b/dev-python/beanstalkc/beanstalkc-0.4.0-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple beanstalkd client library"
+HOMEPAGE="http://github.com/earl/beanstalkc http://pypi.python.org/pypi/beanstalkc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/beanstalkc/beanstalkc-0.4.0.ebuild b/dev-python/beanstalkc/beanstalkc-0.4.0.ebuild
new file mode 100644
index 00000000000..921323ed6a7
--- /dev/null
+++ b/dev-python/beanstalkc/beanstalkc-0.4.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple beanstalkd client library"
+HOMEPAGE="http://github.com/earl/beanstalkc http://pypi.python.org/pypi/beanstalkc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/beanstalkc/metadata.xml b/dev-python/beanstalkc/metadata.xml
new file mode 100644
index 00000000000..5dc4ad45911
--- /dev/null
+++ b/dev-python/beanstalkc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">beanstalkc</remote-id>
+ <remote-id type="github">earl/beanstalkc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/beautifulsoup/Manifest b/dev-python/beautifulsoup/Manifest
new file mode 100644
index 00000000000..0512d101c61
--- /dev/null
+++ b/dev-python/beautifulsoup/Manifest
@@ -0,0 +1,6 @@
+DIST BeautifulSoup-3.1.0.1.tar.gz 71460 SHA256 820a80f473240d9d30047f36c959d530a699a732500662dd8b03e1d3ccad12a8 SHA512 812969faf454a58d849921836ed07ec9a950f34fb31e29e118cdf1a75a533370e430f417402b5a5016d23b2d3a1c44a1cf5fde5b3bfd1bc98c50036edd51c0d6 WHIRLPOOL a199585817dcabcc6327c3836a66128605ebf92a6663b5c660125061a797485a504d300791bcd43e0e94e4f08ca59c01f65f42481da07b1240350cbfc6ea6b0c
+DIST BeautifulSoup-3.2.1.tar.gz 31224 SHA256 f5ba85e907e7dfd78e44e4000b3eaef3a650aefc57831e8a645702db2e5b50db SHA512 365b7b045a2069cf437877543577bc0aa99256a6dc4c9743670b46bfceab5494a06628012d6eccecfe99c25d5c9e0c65814964b47026f15ba1a538444cfb7789 WHIRLPOOL c2f84b29421d0153fb1fecc87d63e00a61182e03bc0683132babca5d6c94143b4875a60a19124a36e4e6e78ce80bff9e1e81b37335700efc14084da933307e26
+DIST beautifulsoup4-4.1.3.tar.gz 131292 SHA256 a295b93b30e1126f3fd64edc106f6939349280dde2ba47cef1e5a92dad9319bf SHA512 79ed4f65bcb5599a0d278d5462a67e80f532cdddcb753e0703b28347d84512165ee0bffd09795a501f3b55e6e4869354f04efdceae9de9093a4d85381fee660e WHIRLPOOL 53713ca72b5a409b3755e28d69de65b7994fb387d21ba9a1827f3e4dda2355f318660f69a706825ecb3852447823ffb8bae2cee6bacc093e6ad73347852f29c6
+DIST beautifulsoup4-4.2.0.tar.gz 138400 SHA256 9565ce6f6d28808007ab6248c37d59a49934e358276da5d3ac211ea1ccfd0782 SHA512 50c7514f2a1de49df6300d292e1f00e746b341e9c70dbfc3508663870ddf92f5c8e0ea981dc7742f888428845e90bce2cce8b158e8548039be4c2c06ee76db97 WHIRLPOOL 95db573c6c291d27187af9403694bcff27add7ad378b105df96f988074480b7a1491710681a93f1396dfa33cfa8c493637564ab7fc228e9e92659c385aa769a2
+DIST beautifulsoup4-4.3.2.tar.gz 143356 SHA256 a2b29bd048ca2fe54a046b29770964738872a9747003a371344a93eedf7ad58e SHA512 3d55e553a1a2109378e2961a0feb23a8f038f4ff7bd335a21a26d588d39761f6735888e6ca2d001587e9a6a3b8259a1a09b92b310aa17e9b76fd85601a1ca592 WHIRLPOOL 3570395aa0fae03edc1de10b1c41e82efefa4753c306d2619032b124536a72b6db696c7f85c6a7c32b18c0506ec33d4c8a2fb73660264ad5afd92aba76f32884
+DIST beautifulsoup4-4.4.0.tar.gz 151500 SHA256 fad91da88f69438b9ba939ab1b2cabaa31b1d914f1cccb4bb157a993ed2917f6 SHA512 812abb09099779ecb9c41ce55963ad42973eef00193e28e59dd907715fd6bc2b470b07f80bbe2838b790be252935eb81357a8cfb59808865d2fb62479476eb2f WHIRLPOOL 93b4bd82f1b7596a198d3a8ad5d21cfad51595884b2eb03c36e827e1b3d9f7a8400ed4415c9f0ffe9d014eac66c93cd52521a433ca914cac1a390a6487f153ba
diff --git a/dev-python/beautifulsoup/beautifulsoup-3.1.0.1-r2.ebuild b/dev-python/beautifulsoup/beautifulsoup-3.1.0.1-r2.ebuild
new file mode 100644
index 00000000000..ca73d6e7e80
--- /dev/null
+++ b/dev-python/beautifulsoup/beautifulsoup-3.1.0.1-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+# A few tests fail with python3.3/3.4 :(
+PYTHON_COMPAT=( python{3_3,3_4} pypy3 )
+
+inherit distutils-r1 eutils
+
+MY_PN="BeautifulSoup"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="HTML/XML parser for quick-turnaround applications like screen-scraping"
+HOMEPAGE="http://www.crummy.com/software/BeautifulSoup/ http://pypi.python.org/pypi/BeautifulSoup"
+SRC_URI="http://www.crummy.com/software/${MY_PN}/download/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="python-3"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-macos ~x86-solaris"
+IUSE=""
+
+DEPEND=""
+RDEPEND="!dev-python/beautifulsoup:0"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-python-3.patch"
+ "${FILESDIR}/${P}-disable-tests.patch"
+)
+
+python_test() {
+ "${PYTHON}" BeautifulSoupTests.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ # Delete useless files.
+ rm -r "${ED%/}/usr/bin" || die
+}
diff --git a/dev-python/beautifulsoup/beautifulsoup-3.2.1-r1.ebuild b/dev-python/beautifulsoup/beautifulsoup-3.2.1-r1.ebuild
new file mode 100644
index 00000000000..1ed0b2621f6
--- /dev/null
+++ b/dev-python/beautifulsoup/beautifulsoup-3.2.1-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="BeautifulSoup"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="HTML/XML parser for quick-turnaround applications like screen-scraping"
+HOMEPAGE="http://www.crummy.com/software/BeautifulSoup/ http://pypi.python.org/pypi/BeautifulSoup"
+SRC_URI="http://www.crummy.com/software/${MY_PN}/download/3.x/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="python-2"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND=""
+RDEPEND="!dev-python/beautifulsoup:0"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ "${PYTHON}" BeautifulSoupTests.py || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/beautifulsoup/beautifulsoup-4.1.3-r1.ebuild b/dev-python/beautifulsoup/beautifulsoup-4.1.3-r1.ebuild
new file mode 100644
index 00000000000..836de51e1ef
--- /dev/null
+++ b/dev-python/beautifulsoup/beautifulsoup-4.1.3-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN}4"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Provides pythonic idioms for iterating, searching, and modifying an HTML/XML parse tree"
+HOMEPAGE="http://www.crummy.com/software/BeautifulSoup/
+ http://pypi.python.org/pypi/beautifulsoup4"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="4"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+# new html5 awaits keywording of html5lib in Bug 471002
+IUSE="doc test"
+# pending Bug 471002; html5? ( dev-python/html5lib[$(python_gen_usedep 'python{2_6,2_7}' pypy pypy2_0)] )
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ emake -C doc html
+ fi
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=doc/build/html/.
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/beautifulsoup/beautifulsoup-4.1.3.ebuild b/dev-python/beautifulsoup/beautifulsoup-4.1.3.ebuild
new file mode 100644
index 00000000000..4fbe5b6023e
--- /dev/null
+++ b/dev-python/beautifulsoup/beautifulsoup-4.1.3.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="*:2.6"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.5"
+PYTHON_TESTS_RESTRICTED_ABIS="*-pypy-*"
+DISTUTILS_SRC_TEST="nosetests"
+
+inherit distutils
+
+MY_PN="${PN}4"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Provides pythonic idioms for iterating, searching, and modifying an HTML/XML parse tree"
+HOMEPAGE="http://www.crummy.com/software/BeautifulSoup/
+ http://pypi.python.org/pypi/beautifulsoup4"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="4"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc test"
+
+DEPEND="doc? ( dev-python/sphinx )
+ test? ( dev-python/lxml )"
+RDEPEND=""
+
+PYTHON_MODNAME="bs4"
+S="${WORKDIR}/${MY_P}"
+
+src_compile() {
+ distutils_src_compile
+ if use doc; then
+ emake -C doc html
+ fi
+}
+
+src_test() {
+ testing() {
+ cd "build-${PYTHON_ABI}/lib"
+ nosetests --verbosity="${PYTHON_TEST_VERBOSITY}"
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+ if use doc; then
+ dohtml -r doc/build/html/*
+ fi
+}
diff --git a/dev-python/beautifulsoup/beautifulsoup-4.2.0.ebuild b/dev-python/beautifulsoup/beautifulsoup-4.2.0.ebuild
new file mode 100644
index 00000000000..7a457223fc6
--- /dev/null
+++ b/dev-python/beautifulsoup/beautifulsoup-4.2.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+MY_PN=${PN}4
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Provides pythonic idioms for iterating, searching, and modifying an HTML/XML parse tree"
+HOMEPAGE="http://www.crummy.com/software/BeautifulSoup/
+ http://pypi.python.org/pypi/beautifulsoup4"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="4"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+# new html5 awaits keywording of html5lib in Bug 471002
+IUSE="doc test"
+# pending Bug 471002; html5? ( dev-python/html5lib[$(python_gen_usedep 'python{2_6,2_7}' pypy pypy2_0)] )
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/lxml[$(python_gen_usedep 'python{2_6,2_7}' 'python3*')] )"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/bfs-${PV}-no-lxml.patch )
+
+python_compile_all() {
+ if use doc; then
+ emake -C doc html
+ fi
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=doc/build/html/.
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/beautifulsoup/beautifulsoup-4.3.2.ebuild b/dev-python/beautifulsoup/beautifulsoup-4.3.2.ebuild
new file mode 100644
index 00000000000..de1a7e41f75
--- /dev/null
+++ b/dev-python/beautifulsoup/beautifulsoup-4.3.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN}4
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Provides pythonic idioms for iterating, searching, and modifying an HTML/XML parse tree"
+HOMEPAGE="http://www.crummy.com/software/BeautifulSoup/
+ http://pypi.python.org/pypi/beautifulsoup4"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="4"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+# new html5 awaits keywording of html5lib in Bug 471002
+IUSE="doc test"
+# pending Bug 471002; html5? ( dev-python/html5lib[$(python_gen_usedep 'python{2_6,2_7}' pypy pypy2_0)] )
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/lxml[$(python_gen_usedep 'python{2_6,2_7}' 'python3*')] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_compile_all() {
+ if use doc; then
+ emake -C doc html
+ fi
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=doc/build/html/.
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/beautifulsoup/beautifulsoup-4.4.0.ebuild b/dev-python/beautifulsoup/beautifulsoup-4.4.0.ebuild
new file mode 100644
index 00000000000..e140465d13a
--- /dev/null
+++ b/dev-python/beautifulsoup/beautifulsoup-4.4.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN}4
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Provides pythonic idioms for iterating, searching, and modifying an HTML/XML parse tree"
+HOMEPAGE="https://bugs.launchpad.net/beautifulsoup/
+ http://pypi.python.org/pypi/beautifulsoup4"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="4"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+
+IUSE="doc test"
+
+# html5lib is optional however hard coding since its use is actively discouraged in the devmanual
+RDEPEND="$(python_gen_cond_dep 'dev-python/html5lib[${PYTHON_USEDEP}]' python2_7 pypy)
+ $(python_gen_cond_dep 'dev-python/lxml[${PYTHON_USEDEP}]' python2_7 'python3*')"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ !dev-python/chardet[${PYTHON_USEDEP}] )"
+# See https://bugs.launchpad.net/beautifulsoup/+bug/1471359 to explain need for blocker
+
+S=${WORKDIR}/${MY_P}
+
+python_compile_all() {
+ if use doc; then
+ emake -C doc html
+ fi
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=doc/build/html/.
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-disable-tests.patch b/dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-disable-tests.patch
new file mode 100644
index 00000000000..c97cd76ee31
--- /dev/null
+++ b/dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-disable-tests.patch
@@ -0,0 +1,39 @@
+--- lib/BeautifulSoupTests.py.orig 2015-07-21 08:39:33.077000000 +0000
++++ lib/BeautifulSoupTests.py 2015-07-21 08:41:19.285000000 +0000
+@@ -538,13 +538,13 @@
+ text = "<td nowrap>foo</td>"
+ self.assertSoupEquals(text, text)
+
+- def testCData(self):
+- xml = "<root>foo<![CDATA[foobar]]>bar</root>"
+- self.assertSoupEquals(xml, xml)
+- r = re.compile("foo.*bar")
+- soup = BeautifulSoup(xml)
+- self.assertEquals(soup.find(text=r).string, "foobar")
+- self.assertEquals(soup.find(text=r).__class__, CData)
++ #def testCData(self):
++ # xml = "<root>foo<![CDATA[foobar]]>bar</root>"
++ # self.assertSoupEquals(xml, xml)
++ # r = re.compile("foo.*bar")
++ # soup = BeautifulSoup(xml)
++ # self.assertEquals(soup.find(text=r).string, "foobar")
++ # self.assertEquals(soup.find(text=r).__class__, CData)
+
+ def testComments(self):
+ xml = "foo<!--foobar-->baz"
+@@ -607,11 +607,11 @@
+ def testWhitespaceInDeclaration(self):
+ self.assertSoupEquals('<! DOCTYPE>', '<!DOCTYPE>')
+
+- def testJunkInDeclaration(self):
+- self.assertSoupEquals('<! Foo = -8>a', '<!Foo = -8>a')
++ #def testJunkInDeclaration(self):
++ # self.assertSoupEquals('<! Foo = -8>a', '<!Foo = -8>a')
+
+- def testIncompleteDeclaration(self):
+- self.assertSoupEquals('a<!b <p>c')
++ #def testIncompleteDeclaration(self):
++ # self.assertSoupEquals('a<!b <p>c')
+
+ def testEntityReplacement(self):
+ self.assertSoupEquals('<b>hello&nbsp;there</b>')
diff --git a/dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-python-3.patch b/dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-python-3.patch
new file mode 100644
index 00000000000..adcbb43dd07
--- /dev/null
+++ b/dev-python/beautifulsoup/files/beautifulsoup-3.1.0.1-python-3.patch
@@ -0,0 +1,949 @@
+--- BeautifulSoup.py
++++ BeautifulSoup.py
+@@ -76,7 +76,7 @@
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE, DAMMIT.
+
+ """
+-from __future__ import generators
++
+
+ __author__ = "Leonard Richardson (leonardr@segfault.org)"
+ __version__ = "3.1.0.1"
+@@ -84,12 +84,12 @@
+ __license__ = "New-style BSD"
+
+ import codecs
+-import markupbase
++import _markupbase
+ import types
+ import re
+-from HTMLParser import HTMLParser, HTMLParseError
++from html.parser import HTMLParser, HTMLParseError
+ try:
+- from htmlentitydefs import name2codepoint
++ from html.entities import name2codepoint
+ except ImportError:
+ name2codepoint = {}
+ try:
+@@ -98,18 +98,18 @@
+ from sets import Set as set
+
+ #These hacks make Beautiful Soup able to parse XML with namespaces
+-markupbase._declname_match = re.compile(r'[a-zA-Z][-_.:a-zA-Z0-9]*\s*').match
++_markupbase._declname_match = re.compile(r'[a-zA-Z][-_.:a-zA-Z0-9]*\s*').match
+
+ DEFAULT_OUTPUT_ENCODING = "utf-8"
+
+ # First, the classes that represent markup elements.
+
+-def sob(unicode, encoding):
++def sob(str, encoding):
+ """Returns either the given Unicode string or its encoding."""
+ if encoding is None:
+- return unicode
++ return str
+ else:
+- return unicode.encode(encoding)
++ return str.encode(encoding)
+
+ class PageElement:
+ """Contains the navigational information for some part of the page
+@@ -178,8 +178,8 @@
+ return lastChild
+
+ def insert(self, position, newChild):
+- if (isinstance(newChild, basestring)
+- or isinstance(newChild, unicode)) \
++ if (isinstance(newChild, str)
++ or isinstance(newChild, str)) \
+ and not isinstance(newChild, NavigableString):
+ newChild = NavigableString(newChild)
+
+@@ -334,7 +334,7 @@
+ g = generator()
+ while True:
+ try:
+- i = g.next()
++ i = g.__next__()
+ except StopIteration:
+ break
+ if i:
+@@ -385,22 +385,22 @@
+ def toEncoding(self, s, encoding=None):
+ """Encodes an object to a string in some encoding, or to Unicode.
+ ."""
+- if isinstance(s, unicode):
++ if isinstance(s, str):
+ if encoding:
+ s = s.encode(encoding)
+ elif isinstance(s, str):
+ if encoding:
+ s = s.encode(encoding)
+ else:
+- s = unicode(s)
++ s = str(s)
+ else:
+ if encoding:
+ s = self.toEncoding(str(s), encoding)
+ else:
+- s = unicode(s)
++ s = str(s)
+ return s
+
+-class NavigableString(unicode, PageElement):
++class NavigableString(str, PageElement):
+
+ def __new__(cls, value):
+ """Create a new NavigableString.
+@@ -410,12 +410,12 @@
+ passed in to the superclass's __new__ or the superclass won't know
+ how to handle non-ASCII characters.
+ """
+- if isinstance(value, unicode):
+- return unicode.__new__(cls, value)
+- return unicode.__new__(cls, value, DEFAULT_OUTPUT_ENCODING)
++ if isinstance(value, str):
++ return str.__new__(cls, value)
++ return str.__new__(cls, value, DEFAULT_OUTPUT_ENCODING)
+
+ def __getnewargs__(self):
+- return (unicode(self),)
++ return (str(self),)
+
+ def __getattr__(self, attr):
+ """text.string gives you text. This is for backwards
+@@ -424,7 +424,7 @@
+ if attr == 'string':
+ return self
+ else:
+- raise AttributeError, "'%s' object has no attribute '%s'" % (self.__class__.__name__, attr)
++ raise AttributeError("'%s' object has no attribute '%s'" % (self.__class__.__name__, attr))
+
+ def encode(self, encoding=DEFAULT_OUTPUT_ENCODING):
+ return self.decode().encode(encoding)
+@@ -435,23 +435,23 @@
+ class CData(NavigableString):
+
+ def decodeGivenEventualEncoding(self, eventualEncoding):
+- return u'<![CDATA[' + self + u']]>'
++ return '<![CDATA[' + self + ']]>'
+
+ class ProcessingInstruction(NavigableString):
+
+ def decodeGivenEventualEncoding(self, eventualEncoding):
+ output = self
+- if u'%SOUP-ENCODING%' in output:
++ if '%SOUP-ENCODING%' in output:
+ output = self.substituteEncoding(output, eventualEncoding)
+- return u'<?' + output + u'?>'
++ return '<?' + output + '?>'
+
+ class Comment(NavigableString):
+ def decodeGivenEventualEncoding(self, eventualEncoding):
+- return u'<!--' + self + u'-->'
++ return '<!--' + self + '-->'
+
+ class Declaration(NavigableString):
+ def decodeGivenEventualEncoding(self, eventualEncoding):
+- return u'<!' + self + u'>'
++ return '<!' + self + '>'
+
+ class Tag(PageElement):
+
+@@ -460,7 +460,7 @@
+ def _invert(h):
+ "Cheap function to invert a hash."
+ i = {}
+- for k,v in h.items():
++ for k,v in list(h.items()):
+ i[v] = k
+ return i
+
+@@ -479,23 +479,23 @@
+ escaped."""
+ x = match.group(1)
+ if self.convertHTMLEntities and x in name2codepoint:
+- return unichr(name2codepoint[x])
++ return chr(name2codepoint[x])
+ elif x in self.XML_ENTITIES_TO_SPECIAL_CHARS:
+ if self.convertXMLEntities:
+ return self.XML_ENTITIES_TO_SPECIAL_CHARS[x]
+ else:
+- return u'&%s;' % x
++ return '&%s;' % x
+ elif len(x) > 0 and x[0] == '#':
+ # Handle numeric entities
+ if len(x) > 1 and x[1] == 'x':
+- return unichr(int(x[2:], 16))
++ return chr(int(x[2:], 16))
+ else:
+- return unichr(int(x[1:]))
++ return chr(int(x[1:]))
+
+ elif self.escapeUnrecognizedEntities:
+- return u'&amp;%s;' % x
++ return '&amp;%s;' % x
+ else:
+- return u'&%s;' % x
++ return '&%s;' % x
+
+ def __init__(self, parser, name, attrs=None, parent=None,
+ previous=None):
+@@ -524,7 +524,7 @@
+ return kval
+ return (k, re.sub("&(#\d+|#x[0-9a-fA-F]+|\w+);",
+ self._convertEntities, val))
+- self.attrs = map(convert, self.attrs)
++ self.attrs = list(map(convert, self.attrs))
+
+ def get(self, key, default=None):
+ """Returns the value of the 'key' attribute for the tag, or
+@@ -533,7 +533,7 @@
+ return self._getAttrMap().get(key, default)
+
+ def has_key(self, key):
+- return self._getAttrMap().has_key(key)
++ return key in self._getAttrMap()
+
+ def __getitem__(self, key):
+ """tag[key] returns the value of the 'key' attribute for the tag,
+@@ -551,7 +551,7 @@
+ def __contains__(self, x):
+ return x in self.contents
+
+- def __nonzero__(self):
++ def __bool__(self):
+ "A tag is non-None even if it has no contents."
+ return True
+
+@@ -577,14 +577,14 @@
+ #We don't break because bad HTML can define the same
+ #attribute multiple times.
+ self._getAttrMap()
+- if self.attrMap.has_key(key):
++ if key in self.attrMap:
+ del self.attrMap[key]
+
+ def __call__(self, *args, **kwargs):
+ """Calling a tag like a function is the same as calling its
+ findAll() method. Eg. tag('a') returns a list of all the A tags
+ found within this tag."""
+- return apply(self.findAll, args, kwargs)
++ return self.findAll(*args, **kwargs)
+
+ def __getattr__(self, tag):
+ #print "Getattr %s.%s" % (self.__class__, tag)
+@@ -592,7 +592,7 @@
+ return self.find(tag[:-3])
+ elif tag.find('__') != 0:
+ return self.find(tag)
+- raise AttributeError, "'%s' object has no attribute '%s'" % (self.__class__, tag)
++ raise AttributeError("'%s' object has no attribute '%s'" % (self.__class__, tag))
+
+ def __eq__(self, other):
+ """Returns true iff this tag has the same name, the same attributes,
+@@ -868,7 +868,7 @@
+ if isinstance(markupName, Tag):
+ markup = markupName
+ markupAttrs = markup
+- callFunctionWithTagData = callable(self.name) \
++ callFunctionWithTagData = hasattr(self.name, '__call__') \
+ and not isinstance(markupName, Tag)
+
+ if (not self.name) \
+@@ -880,7 +880,7 @@
+ else:
+ match = True
+ markupAttrMap = None
+- for attr, matchAgainst in self.attrs.items():
++ for attr, matchAgainst in list(self.attrs.items()):
+ if not markupAttrMap:
+ if hasattr(markupAttrs, 'get'):
+ markupAttrMap = markupAttrs
+@@ -921,16 +921,16 @@
+ if self._matches(markup, self.text):
+ found = markup
+ else:
+- raise Exception, "I don't know how to match against a %s" \
+- % markup.__class__
++ raise Exception("I don't know how to match against a %s" \
++ % markup.__class__)
+ return found
+
+ def _matches(self, markup, matchAgainst):
+ #print "Matching %s against %s" % (markup, matchAgainst)
+ result = False
+- if matchAgainst == True and type(matchAgainst) == types.BooleanType:
++ if matchAgainst == True and type(matchAgainst) == bool:
+ result = markup != None
+- elif callable(matchAgainst):
++ elif hasattr(matchAgainst, '__call__'):
+ result = matchAgainst(markup)
+ else:
+ #Custom match methods take the tag as an argument, but all
+@@ -938,7 +938,7 @@
+ if isinstance(markup, Tag):
+ markup = markup.name
+ if markup is not None and not isString(markup):
+- markup = unicode(markup)
++ markup = str(markup)
+ #Now we know that chunk is either a string, or None.
+ if hasattr(matchAgainst, 'match'):
+ # It's a regexp object.
+@@ -947,10 +947,10 @@
+ and (markup is not None or not isString(matchAgainst))):
+ result = markup in matchAgainst
+ elif hasattr(matchAgainst, 'items'):
+- result = markup.has_key(matchAgainst)
++ result = matchAgainst in markup
+ elif matchAgainst and isString(markup):
+- if isinstance(markup, unicode):
+- matchAgainst = unicode(matchAgainst)
++ if isinstance(markup, str):
++ matchAgainst = str(matchAgainst)
+ else:
+ matchAgainst = str(matchAgainst)
+
+@@ -971,13 +971,13 @@
+ """Convenience method that works with all 2.x versions of Python
+ to determine whether or not something is listlike."""
+ return ((hasattr(l, '__iter__') and not isString(l))
+- or (type(l) in (types.ListType, types.TupleType)))
++ or (type(l) in (list, tuple)))
+
+ def isString(s):
+ """Convenience method that works with all 2.x versions of Python
+ to determine whether or not something is stringlike."""
+ try:
+- return isinstance(s, unicode) or isinstance(s, basestring)
++ return isinstance(s, str) or isinstance(s, str)
+ except NameError:
+ return isinstance(s, str)
+
+@@ -989,7 +989,7 @@
+ for portion in args:
+ if hasattr(portion, 'items'):
+ #It's a map. Merge it.
+- for k,v in portion.items():
++ for k,v in list(portion.items()):
+ built[k] = v
+ elif isList(portion) and not isString(portion):
+ #It's a list. Map each item to the default.
+@@ -1034,7 +1034,7 @@
+ object, possibly one with a %SOUP-ENCODING% slot into which an
+ encoding will be plugged later."""
+ if text[:3] == "xml":
+- text = u"xml version='1.0' encoding='%SOUP-ENCODING%'"
++ text = "xml version='1.0' encoding='%SOUP-ENCODING%'"
+ self._toStringSubclass(text, ProcessingInstruction)
+
+ def handle_comment(self, text):
+@@ -1044,7 +1044,7 @@
+ def handle_charref(self, ref):
+ "Handle character references as data."
+ if self.soup.convertEntities:
+- data = unichr(int(ref))
++ data = chr(int(ref))
+ else:
+ data = '&#%s;' % ref
+ self.handle_data(data)
+@@ -1056,7 +1056,7 @@
+ data = None
+ if self.soup.convertHTMLEntities:
+ try:
+- data = unichr(name2codepoint[ref])
++ data = chr(name2codepoint[ref])
+ except KeyError:
+ pass
+
+@@ -1147,7 +1147,7 @@
+ lambda x: '<!' + x.group(1) + '>')
+ ]
+
+- ROOT_TAG_NAME = u'[document]'
++ ROOT_TAG_NAME = '[document]'
+
+ HTML_ENTITIES = "html"
+ XML_ENTITIES = "xml"
+@@ -1236,14 +1236,14 @@
+ def _feed(self, inDocumentEncoding=None, isHTML=False):
+ # Convert the document to Unicode.
+ markup = self.markup
+- if isinstance(markup, unicode):
++ if isinstance(markup, str):
+ if not hasattr(self, 'originalEncoding'):
+ self.originalEncoding = None
+ else:
+ dammit = UnicodeDammit\
+ (markup, [self.fromEncoding, inDocumentEncoding],
+ smartQuotesTo=self.smartQuotesTo, isHTML=isHTML)
+- markup = dammit.unicode
++ markup = dammit.str
+ self.originalEncoding = dammit.originalEncoding
+ self.declaredHTMLEncoding = dammit.declaredHTMLEncoding
+ if markup:
+@@ -1269,8 +1269,8 @@
+ def isSelfClosingTag(self, name):
+ """Returns true iff the given string is the name of a
+ self-closing tag according to this parser."""
+- return self.SELF_CLOSING_TAGS.has_key(name) \
+- or self.instanceSelfClosingTags.has_key(name)
++ return name in self.SELF_CLOSING_TAGS \
++ or name in self.instanceSelfClosingTags
+
+ def reset(self):
+ Tag.__init__(self, self, self.ROOT_TAG_NAME)
+@@ -1305,7 +1305,7 @@
+
+ def endData(self, containerClass=NavigableString):
+ if self.currentData:
+- currentData = u''.join(self.currentData)
++ currentData = ''.join(self.currentData)
+ if (currentData.translate(self.STRIP_ASCII_SPACES) == '' and
+ not set([tag.name for tag in self.tagStack]).intersection(
+ self.PRESERVE_WHITESPACE_TAGS)):
+@@ -1368,7 +1368,7 @@
+
+ nestingResetTriggers = self.NESTABLE_TAGS.get(name)
+ isNestable = nestingResetTriggers != None
+- isResetNesting = self.RESET_NESTING_TAGS.has_key(name)
++ isResetNesting = name in self.RESET_NESTING_TAGS
+ popTo = None
+ inclusive = True
+ for i in range(len(self.tagStack)-1, 0, -1):
+@@ -1381,7 +1381,7 @@
+ if (nestingResetTriggers != None
+ and p.name in nestingResetTriggers) \
+ or (nestingResetTriggers == None and isResetNesting
+- and self.RESET_NESTING_TAGS.has_key(p.name)):
++ and p.name in self.RESET_NESTING_TAGS):
+
+ #If we encounter one of the nesting reset triggers
+ #peculiar to this tag, or we encounter another tag
+@@ -1399,7 +1399,7 @@
+ if self.quoteStack:
+ #This is not a real tag.
+ #print "<%s> is not real!" % name
+- attrs = ''.join(map(lambda(x, y): ' %s="%s"' % (x, y), attrs))
++ attrs = ''.join([' %s="%s"' % (x_y[0], x_y[1]) for x_y in attrs])
+ self.handle_data('<%s%s>' % (name, attrs))
+ return
+ self.endData()
+@@ -1493,7 +1493,7 @@
+ BeautifulStoneSoup before writing your own subclass."""
+
+ def __init__(self, *args, **kwargs):
+- if not kwargs.has_key('smartQuotesTo'):
++ if 'smartQuotesTo' not in kwargs:
+ kwargs['smartQuotesTo'] = self.HTML_ENTITIES
+ kwargs['isHTML'] = True
+ BeautifulStoneSoup.__init__(self, *args, **kwargs)
+@@ -1677,7 +1677,7 @@
+ parent._getAttrMap()
+ if (isinstance(tag, Tag) and len(tag.contents) == 1 and
+ isinstance(tag.contents[0], NavigableString) and
+- not parent.attrMap.has_key(tag.name)):
++ tag.name not in parent.attrMap):
+ parent[tag.name] = tag.contents[0]
+ BeautifulStoneSoup.popTag(self)
+
+@@ -1751,9 +1751,9 @@
+ self._detectEncoding(markup, isHTML)
+ self.smartQuotesTo = smartQuotesTo
+ self.triedEncodings = []
+- if markup == '' or isinstance(markup, unicode):
++ if markup == '' or isinstance(markup, str):
+ self.originalEncoding = None
+- self.unicode = unicode(markup)
++ self.str = str(markup)
+ return
+
+ u = None
+@@ -1766,7 +1766,7 @@
+ if u: break
+
+ # If no luck and we have auto-detection library, try that:
+- if not u and chardet and not isinstance(self.markup, unicode):
++ if not u and chardet and not isinstance(self.markup, str):
+ u = self._convertFrom(chardet.detect(self.markup)['encoding'])
+
+ # As a last resort, try utf-8 and windows-1252:
+@@ -1775,7 +1775,7 @@
+ u = self._convertFrom(proposed_encoding)
+ if u: break
+
+- self.unicode = u
++ self.str = u
+ if not u: self.originalEncoding = None
+
+ def _subMSChar(self, match):
+@@ -1783,7 +1783,7 @@
+ entity."""
+ orig = match.group(1)
+ sub = self.MS_CHARS.get(orig)
+- if type(sub) == types.TupleType:
++ if type(sub) == tuple:
+ if self.smartQuotesTo == 'xml':
+ sub = '&#x'.encode() + sub[1].encode() + ';'.encode()
+ else:
+@@ -1804,7 +1804,7 @@
+ if self.smartQuotesTo and proposed.lower() in("windows-1252",
+ "iso-8859-1",
+ "iso-8859-2"):
+- smart_quotes_re = "([\x80-\x9f])"
++ smart_quotes_re = b"([\x80-\x9f])"
+ smart_quotes_compiled = re.compile(smart_quotes_re)
+ markup = smart_quotes_compiled.sub(self._subMSChar, markup)
+
+@@ -1813,7 +1813,7 @@
+ u = self._toUnicode(markup, proposed)
+ self.markup = u
+ self.originalEncoding = proposed
+- except Exception, e:
++ except Exception as e:
+ # print "That didn't work!"
+ # print e
+ return None
+@@ -1842,7 +1842,7 @@
+ elif data[:4] == '\xff\xfe\x00\x00':
+ encoding = 'utf-32le'
+ data = data[4:]
+- newdata = unicode(data, encoding)
++ newdata = str(data, encoding)
+ return newdata
+
+ def _detectEncoding(self, xml_data, isHTML=False):
+@@ -1855,41 +1855,41 @@
+ elif xml_data[:4] == '\x00\x3c\x00\x3f':
+ # UTF-16BE
+ sniffed_xml_encoding = 'utf-16be'
+- xml_data = unicode(xml_data, 'utf-16be').encode('utf-8')
++ xml_data = str(xml_data, 'utf-16be').encode('utf-8')
+ elif (len(xml_data) >= 4) and (xml_data[:2] == '\xfe\xff') \
+ and (xml_data[2:4] != '\x00\x00'):
+ # UTF-16BE with BOM
+ sniffed_xml_encoding = 'utf-16be'
+- xml_data = unicode(xml_data[2:], 'utf-16be').encode('utf-8')
++ xml_data = str(xml_data[2:], 'utf-16be').encode('utf-8')
+ elif xml_data[:4] == '\x3c\x00\x3f\x00':
+ # UTF-16LE
+ sniffed_xml_encoding = 'utf-16le'
+- xml_data = unicode(xml_data, 'utf-16le').encode('utf-8')
++ xml_data = str(xml_data, 'utf-16le').encode('utf-8')
+ elif (len(xml_data) >= 4) and (xml_data[:2] == '\xff\xfe') and \
+ (xml_data[2:4] != '\x00\x00'):
+ # UTF-16LE with BOM
+ sniffed_xml_encoding = 'utf-16le'
+- xml_data = unicode(xml_data[2:], 'utf-16le').encode('utf-8')
++ xml_data = str(xml_data[2:], 'utf-16le').encode('utf-8')
+ elif xml_data[:4] == '\x00\x00\x00\x3c':
+ # UTF-32BE
+ sniffed_xml_encoding = 'utf-32be'
+- xml_data = unicode(xml_data, 'utf-32be').encode('utf-8')
++ xml_data = str(xml_data, 'utf-32be').encode('utf-8')
+ elif xml_data[:4] == '\x3c\x00\x00\x00':
+ # UTF-32LE
+ sniffed_xml_encoding = 'utf-32le'
+- xml_data = unicode(xml_data, 'utf-32le').encode('utf-8')
++ xml_data = str(xml_data, 'utf-32le').encode('utf-8')
+ elif xml_data[:4] == '\x00\x00\xfe\xff':
+ # UTF-32BE with BOM
+ sniffed_xml_encoding = 'utf-32be'
+- xml_data = unicode(xml_data[4:], 'utf-32be').encode('utf-8')
++ xml_data = str(xml_data[4:], 'utf-32be').encode('utf-8')
+ elif xml_data[:4] == '\xff\xfe\x00\x00':
+ # UTF-32LE with BOM
+ sniffed_xml_encoding = 'utf-32le'
+- xml_data = unicode(xml_data[4:], 'utf-32le').encode('utf-8')
++ xml_data = str(xml_data[4:], 'utf-32le').encode('utf-8')
+ elif xml_data[:3] == '\xef\xbb\xbf':
+ # UTF-8 with BOM
+ sniffed_xml_encoding = 'utf-8'
+- xml_data = unicode(xml_data[3:], 'utf-8').encode('utf-8')
++ xml_data = str(xml_data[3:], 'utf-8').encode('utf-8')
+ else:
+ sniffed_xml_encoding = 'ascii'
+ pass
+@@ -1954,41 +1954,41 @@
+ 250,251,252,253,254,255)
+ import string
+ c.EBCDIC_TO_ASCII_MAP = string.maketrans( \
+- ''.join(map(chr, range(256))), ''.join(map(chr, emap)))
++ ''.join(map(chr, list(range(256)))), ''.join(map(chr, emap)))
+ return s.translate(c.EBCDIC_TO_ASCII_MAP)
+
+- MS_CHARS = { '\x80' : ('euro', '20AC'),
+- '\x81' : ' ',
+- '\x82' : ('sbquo', '201A'),
+- '\x83' : ('fnof', '192'),
+- '\x84' : ('bdquo', '201E'),
+- '\x85' : ('hellip', '2026'),
+- '\x86' : ('dagger', '2020'),
+- '\x87' : ('Dagger', '2021'),
+- '\x88' : ('circ', '2C6'),
+- '\x89' : ('permil', '2030'),
+- '\x8A' : ('Scaron', '160'),
+- '\x8B' : ('lsaquo', '2039'),
+- '\x8C' : ('OElig', '152'),
+- '\x8D' : '?',
+- '\x8E' : ('#x17D', '17D'),
+- '\x8F' : '?',
+- '\x90' : '?',
+- '\x91' : ('lsquo', '2018'),
+- '\x92' : ('rsquo', '2019'),
+- '\x93' : ('ldquo', '201C'),
+- '\x94' : ('rdquo', '201D'),
+- '\x95' : ('bull', '2022'),
+- '\x96' : ('ndash', '2013'),
+- '\x97' : ('mdash', '2014'),
+- '\x98' : ('tilde', '2DC'),
+- '\x99' : ('trade', '2122'),
+- '\x9a' : ('scaron', '161'),
+- '\x9b' : ('rsaquo', '203A'),
+- '\x9c' : ('oelig', '153'),
+- '\x9d' : '?',
+- '\x9e' : ('#x17E', '17E'),
+- '\x9f' : ('Yuml', ''),}
++ MS_CHARS = { b'\x80' : ('euro', '20AC'),
++ b'\x81' : ' ',
++ b'\x82' : ('sbquo', '201A'),
++ b'\x83' : ('fnof', '192'),
++ b'\x84' : ('bdquo', '201E'),
++ b'\x85' : ('hellip', '2026'),
++ b'\x86' : ('dagger', '2020'),
++ b'\x87' : ('Dagger', '2021'),
++ b'\x88' : ('circ', '2C6'),
++ b'\x89' : ('permil', '2030'),
++ b'\x8A' : ('Scaron', '160'),
++ b'\x8B' : ('lsaquo', '2039'),
++ b'\x8C' : ('OElig', '152'),
++ b'\x8D' : '?',
++ b'\x8E' : ('#x17D', '17D'),
++ b'\x8F' : '?',
++ b'\x90' : '?',
++ b'\x91' : ('lsquo', '2018'),
++ b'\x92' : ('rsquo', '2019'),
++ b'\x93' : ('ldquo', '201C'),
++ b'\x94' : ('rdquo', '201D'),
++ b'\x95' : ('bull', '2022'),
++ b'\x96' : ('ndash', '2013'),
++ b'\x97' : ('mdash', '2014'),
++ b'\x98' : ('tilde', '2DC'),
++ b'\x99' : ('trade', '2122'),
++ b'\x9a' : ('scaron', '161'),
++ b'\x9b' : ('rsaquo', '203A'),
++ b'\x9c' : ('oelig', '153'),
++ b'\x9d' : '?',
++ b'\x9e' : ('#x17E', '17E'),
++ b'\x9f' : ('Yuml', ''),}
+
+ #######################################################################
+
+@@ -1997,4 +1997,4 @@
+ if __name__ == '__main__':
+ import sys
+ soup = BeautifulSoup(sys.stdin)
+- print soup.prettify()
++ print(soup.prettify())
+--- BeautifulSoupTests.py
++++ BeautifulSoupTests.py
+@@ -82,7 +82,7 @@
+ def testFindAllText(self):
+ soup = BeautifulSoup("<html>\xbb</html>")
+ self.assertEqual(soup.findAll(text=re.compile('.*')),
+- [u'\xbb'])
++ ['\xbb'])
+
+ def testFindAllByRE(self):
+ import re
+@@ -215,7 +215,7 @@
+ soup = BeautifulSoup(self.x, parseOnlyThese=strainer)
+ self.assertEquals(len(soup), 10)
+
+- strainer = SoupStrainer(text=lambda(x):x[8]=='3')
++ strainer = SoupStrainer(text=lambda x:x[8]=='3')
+ soup = BeautifulSoup(self.x, parseOnlyThese=strainer)
+ self.assertEquals(len(soup), 3)
+
+@@ -256,7 +256,7 @@
+ self.assertEqual(copied.decode(), self.soup.decode())
+
+ def testUnicodePickle(self):
+- import cPickle as pickle
++ import pickle as pickle
+ html = "<b>" + chr(0xc3) + "</b>"
+ soup = BeautifulSoup(html)
+ dumped = pickle.dumps(soup, pickle.HIGHEST_PROTOCOL)
+@@ -586,23 +586,23 @@
+ self.assertEquals(soup.decode(), "<<sacr&eacute; bleu!>>")
+
+ soup = BeautifulStoneSoup(text, convertEntities=htmlEnt)
+- self.assertEquals(soup.decode(), u"<<sacr\xe9 bleu!>>")
++ self.assertEquals(soup.decode(), "<<sacr\xe9 bleu!>>")
+
+ # Make sure the "XML", "HTML", and "XHTML" settings work.
+ text = "&lt;&trade;&apos;"
+ soup = BeautifulStoneSoup(text, convertEntities=xmlEnt)
+- self.assertEquals(soup.decode(), u"<&trade;'")
++ self.assertEquals(soup.decode(), "<&trade;'")
+
+ soup = BeautifulStoneSoup(text, convertEntities=htmlEnt)
+- self.assertEquals(soup.decode(), u"<\u2122&apos;")
++ self.assertEquals(soup.decode(), "<\u2122&apos;")
+
+ soup = BeautifulStoneSoup(text, convertEntities=xhtmlEnt)
+- self.assertEquals(soup.decode(), u"<\u2122'")
++ self.assertEquals(soup.decode(), "<\u2122'")
+
+ def testNonBreakingSpaces(self):
+ soup = BeautifulSoup("<a>&nbsp;&nbsp;</a>",
+ convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
+- self.assertEquals(soup.decode(), u"<a>\xa0\xa0</a>")
++ self.assertEquals(soup.decode(), "<a>\xa0\xa0</a>")
+
+ def testWhitespaceInDeclaration(self):
+ self.assertSoupEquals('<! DOCTYPE>', '<!DOCTYPE>')
+@@ -617,27 +617,27 @@
+ self.assertSoupEquals('<b>hello&nbsp;there</b>')
+
+ def testEntitiesInAttributeValues(self):
+- self.assertSoupEquals('<x t="x&#241;">', '<x t="x\xc3\xb1"></x>',
++ self.assertSoupEquals('<x t="x&#241;">', b'<x t="x\xc3\xb1"></x>',
+ encoding='utf-8')
+- self.assertSoupEquals('<x t="x&#xf1;">', '<x t="x\xc3\xb1"></x>',
++ self.assertSoupEquals('<x t="x&#xf1;">', b'<x t="x\xc3\xb1"></x>',
+ encoding='utf-8')
+
+ soup = BeautifulSoup('<x t="&gt;&trade;">',
+ convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
+- self.assertEquals(soup.decode(), u'<x t="&gt;\u2122"></x>')
++ self.assertEquals(soup.decode(), '<x t="&gt;\u2122"></x>')
+
+ uri = "http://crummy.com?sacr&eacute;&amp;bleu"
+ link = '<a href="%s"></a>' % uri
+
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ self.assertEquals(soup.decode(),
+- link.replace("&eacute;", u"\xe9"))
++ link.replace("&eacute;", "\xe9"))
+
+ uri = "http://crummy.com?sacr&eacute;&bleu"
+ link = '<a href="%s"></a>' % uri
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ self.assertEquals(soup.a['href'],
+- uri.replace("&eacute;", u"\xe9"))
++ uri.replace("&eacute;", "\xe9"))
+
+ def testNakedAmpersands(self):
+ html = {'convertEntities':BeautifulStoneSoup.HTML_ENTITIES}
+@@ -663,13 +663,13 @@
+ smart quote fixes."""
+
+ def testUnicodeDammitStandalone(self):
+- markup = "<foo>\x92</foo>"
++ markup = b"<foo>\x92</foo>"
+ dammit = UnicodeDammit(markup)
+- self.assertEquals(dammit.unicode, "<foo>&#x2019;</foo>")
++ self.assertEquals(dammit.str, "<foo>&#x2019;</foo>")
+
+- hebrew = "\xed\xe5\xec\xf9"
++ hebrew = b"\xed\xe5\xec\xf9"
+ dammit = UnicodeDammit(hebrew, ["iso-8859-8"])
+- self.assertEquals(dammit.unicode, u'\u05dd\u05d5\u05dc\u05e9')
++ self.assertEquals(dammit.str, '\u05dd\u05d5\u05dc\u05e9')
+ self.assertEquals(dammit.originalEncoding, 'iso-8859-8')
+
+ def testGarbageInGarbageOut(self):
+@@ -677,13 +677,13 @@
+ asciiSoup = BeautifulStoneSoup(ascii)
+ self.assertEquals(ascii, asciiSoup.decode())
+
+- unicodeData = u"<foo>\u00FC</foo>"
++ unicodeData = "<foo>\u00FC</foo>"
+ utf8 = unicodeData.encode("utf-8")
+- self.assertEquals(utf8, '<foo>\xc3\xbc</foo>')
++ self.assertEquals(utf8, b'<foo>\xc3\xbc</foo>')
+
+ unicodeSoup = BeautifulStoneSoup(unicodeData)
+ self.assertEquals(unicodeData, unicodeSoup.decode())
+- self.assertEquals(unicodeSoup.foo.string, u'\u00FC')
++ self.assertEquals(unicodeSoup.foo.string, '\u00FC')
+
+ utf8Soup = BeautifulStoneSoup(utf8, fromEncoding='utf-8')
+ self.assertEquals(utf8, utf8Soup.encode('utf-8'))
+@@ -696,18 +696,18 @@
+
+ def testHandleInvalidCodec(self):
+ for bad_encoding in ['.utf8', '...', 'utF---16.!']:
+- soup = BeautifulSoup(u"Räksmörgås".encode("utf-8"),
++ soup = BeautifulSoup("Räksmörgås".encode("utf-8"),
+ fromEncoding=bad_encoding)
+ self.assertEquals(soup.originalEncoding, 'utf-8')
+
+ def testUnicodeSearch(self):
+- html = u'<html><body><h1>Räksmörgås</h1></body></html>'
++ html = '<html><body><h1>Räksmörgås</h1></body></html>'
+ soup = BeautifulSoup(html)
+- self.assertEqual(soup.find(text=u'Räksmörgås'),u'Räksmörgås')
++ self.assertEqual(soup.find(text='Räksmörgås'),'Räksmörgås')
+
+ def testRewrittenXMLHeader(self):
+- euc_jp = '<?xml version="1.0 encoding="euc-jp"?>\n<foo>\n\xa4\xb3\xa4\xec\xa4\xcfEUC-JP\xa4\xc7\xa5\xb3\xa1\xbc\xa5\xc7\xa5\xa3\xa5\xf3\xa5\xb0\xa4\xb5\xa4\xec\xa4\xbf\xc6\xfc\xcb\xdc\xb8\xec\xa4\xce\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xc7\xa4\xb9\xa1\xa3\n</foo>\n'
+- utf8 = "<?xml version='1.0' encoding='utf-8'?>\n<foo>\n\xe3\x81\x93\xe3\x82\x8c\xe3\x81\xafEUC-JP\xe3\x81\xa7\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x87\xe3\x82\xa3\xe3\x83\xb3\xe3\x82\xb0\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x81\xae\xe3\x83\x95\xe3\x82\xa1\xe3\x82\xa4\xe3\x83\xab\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82\n</foo>\n"
++ euc_jp = b'<?xml version="1.0 encoding="euc-jp"?>\n<foo>\n\xa4\xb3\xa4\xec\xa4\xcfEUC-JP\xa4\xc7\xa5\xb3\xa1\xbc\xa5\xc7\xa5\xa3\xa5\xf3\xa5\xb0\xa4\xb5\xa4\xec\xa4\xbf\xc6\xfc\xcb\xdc\xb8\xec\xa4\xce\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xc7\xa4\xb9\xa1\xa3\n</foo>\n'
++ utf8 = b"<?xml version='1.0' encoding='utf-8'?>\n<foo>\n\xe3\x81\x93\xe3\x82\x8c\xe3\x81\xafEUC-JP\xe3\x81\xa7\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x87\xe3\x82\xa3\xe3\x83\xb3\xe3\x82\xb0\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x81\xae\xe3\x83\x95\xe3\x82\xa1\xe3\x82\xa4\xe3\x83\xab\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82\n</foo>\n"
+ soup = BeautifulStoneSoup(euc_jp)
+ if soup.originalEncoding != "euc-jp":
+ raise Exception("Test failed when parsing euc-jp document. "
+@@ -718,12 +718,12 @@
+ self.assertEquals(soup.originalEncoding, "euc-jp")
+ self.assertEquals(soup.renderContents('utf-8'), utf8)
+
+- old_text = "<?xml encoding='windows-1252'><foo>\x92</foo>"
++ old_text = b"<?xml encoding='windows-1252'><foo>\x92</foo>"
+ new_text = "<?xml version='1.0' encoding='utf-8'?><foo>&rsquo;</foo>"
+ self.assertSoupEquals(old_text, new_text)
+
+ def testRewrittenMetaTag(self):
+- no_shift_jis_html = '''<html><head>\n<meta http-equiv="Content-language" content="ja" /></head><body><pre>\n\x82\xb1\x82\xea\x82\xcdShift-JIS\x82\xc5\x83R\x81[\x83f\x83B\x83\x93\x83O\x82\xb3\x82\xea\x82\xbd\x93\xfa\x96{\x8c\xea\x82\xcc\x83t\x83@\x83C\x83\x8b\x82\xc5\x82\xb7\x81B\n</pre></body></html>'''
++ no_shift_jis_html = b'''<html><head>\n<meta http-equiv="Content-language" content="ja" /></head><body><pre>\n\x82\xb1\x82\xea\x82\xcdShift-JIS\x82\xc5\x83R\x81[\x83f\x83B\x83\x93\x83O\x82\xb3\x82\xea\x82\xbd\x93\xfa\x96{\x8c\xea\x82\xcc\x83t\x83@\x83C\x83\x8b\x82\xc5\x82\xb7\x81B\n</pre></body></html>'''
+ soup = BeautifulSoup(no_shift_jis_html)
+
+ # Beautiful Soup used to try to rewrite the meta tag even if the
+@@ -733,16 +733,16 @@
+ soup = BeautifulSoup(no_shift_jis_html, parseOnlyThese=strainer)
+ self.assertEquals(soup.contents[0].name, 'pre')
+
+- meta_tag = ('<meta content="text/html; charset=x-sjis" '
+- 'http-equiv="Content-type" />')
++ meta_tag = (b'<meta content="text/html; charset=x-sjis" '
++ b'http-equiv="Content-type" />')
+ shift_jis_html = (
+- '<html><head>\n%s\n'
+- '<meta http-equiv="Content-language" content="ja" />'
+- '</head><body><pre>\n'
+- '\x82\xb1\x82\xea\x82\xcdShift-JIS\x82\xc5\x83R\x81[\x83f'
+- '\x83B\x83\x93\x83O\x82\xb3\x82\xea\x82\xbd\x93\xfa\x96{\x8c'
+- '\xea\x82\xcc\x83t\x83@\x83C\x83\x8b\x82\xc5\x82\xb7\x81B\n'
+- '</pre></body></html>') % meta_tag
++ b'<html><head>\n' + meta_tag + b'\n'
++ b'<meta http-equiv="Content-language" content="ja" />'
++ b'</head><body><pre>\n'
++ b'\x82\xb1\x82\xea\x82\xcdShift-JIS\x82\xc5\x83R\x81[\x83f'
++ b'\x83B\x83\x93\x83O\x82\xb3\x82\xea\x82\xbd\x93\xfa\x96{\x8c'
++ b'\xea\x82\xcc\x83t\x83@\x83C\x83\x8b\x82\xc5\x82\xb7\x81B\n'
++ b'</pre></body></html>')
+ soup = BeautifulSoup(shift_jis_html)
+ if soup.originalEncoding != "shift-jis":
+ raise Exception("Test failed when parsing shift-jis document "
+@@ -755,59 +755,59 @@
+ content_type_tag = soup.meta['content']
+ self.assertEquals(content_type_tag[content_type_tag.find('charset='):],
+ 'charset=%SOUP-ENCODING%')
+- content_type = str(soup.meta)
++ content_type = soup.meta.decode()
+ index = content_type.find('charset=')
+ self.assertEqual(content_type[index:index+len('charset=utf8')+1],
+ 'charset=utf-8')
+ content_type = soup.meta.encode('shift-jis')
+- index = content_type.find('charset=')
++ index = content_type.find(b'charset=')
+ self.assertEqual(content_type[index:index+len('charset=shift-jis')],
+ 'charset=shift-jis'.encode())
+
+ self.assertEquals(soup.encode('utf-8'), (
+- '<html><head>\n'
+- '<meta content="text/html; charset=utf-8" '
+- 'http-equiv="Content-type" />\n'
+- '<meta http-equiv="Content-language" content="ja" />'
+- '</head><body><pre>\n'
+- '\xe3\x81\x93\xe3\x82\x8c\xe3\x81\xafShift-JIS\xe3\x81\xa7\xe3'
+- '\x82\xb3\xe3\x83\xbc\xe3\x83\x87\xe3\x82\xa3\xe3\x83\xb3\xe3'
+- '\x82\xb0\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe6\x97\xa5\xe6'
+- '\x9c\xac\xe8\xaa\x9e\xe3\x81\xae\xe3\x83\x95\xe3\x82\xa1\xe3'
+- '\x82\xa4\xe3\x83\xab\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82\n'
+- '</pre></body></html>'))
++ b'<html><head>\n'
++ b'<meta content="text/html; charset=utf-8" '
++ b'http-equiv="Content-type" />\n'
++ b'<meta http-equiv="Content-language" content="ja" />'
++ b'</head><body><pre>\n'
++ b'\xe3\x81\x93\xe3\x82\x8c\xe3\x81\xafShift-JIS\xe3\x81\xa7\xe3'
++ b'\x82\xb3\xe3\x83\xbc\xe3\x83\x87\xe3\x82\xa3\xe3\x83\xb3\xe3'
++ b'\x82\xb0\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe6\x97\xa5\xe6'
++ b'\x9c\xac\xe8\xaa\x9e\xe3\x81\xae\xe3\x83\x95\xe3\x82\xa1\xe3'
++ b'\x82\xa4\xe3\x83\xab\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82\n'
++ b'</pre></body></html>'))
+ self.assertEquals(soup.encode("shift-jis"),
+ shift_jis_html.replace('x-sjis'.encode(),
+ 'shift-jis'.encode()))
+
+- isolatin = """<html><meta http-equiv="Content-type" content="text/html; charset=ISO-Latin-1" />Sacr\xe9 bleu!</html>"""
++ isolatin = b"""<html><meta http-equiv="Content-type" content="text/html; charset=ISO-Latin-1" />Sacr\xe9 bleu!</html>"""
+ soup = BeautifulSoup(isolatin)
+
+ utf8 = isolatin.replace("ISO-Latin-1".encode(), "utf-8".encode())
+- utf8 = utf8.replace("\xe9", "\xc3\xa9")
++ utf8 = utf8.replace(b"\xe9", b"\xc3\xa9")
+ self.assertSoupEquals(soup.encode("utf-8"), utf8, encoding='utf-8')
+
+ def testHebrew(self):
+- iso_8859_8= '<HEAD>\n<TITLE>Hebrew (ISO 8859-8) in Visual Directionality</TITLE>\n\n\n\n</HEAD>\n<BODY>\n<H1>Hebrew (ISO 8859-8) in Visual Directionality</H1>\n\xed\xe5\xec\xf9\n</BODY>\n'
+- utf8 = '<head>\n<title>Hebrew (ISO 8859-8) in Visual Directionality</title>\n</head>\n<body>\n<h1>Hebrew (ISO 8859-8) in Visual Directionality</h1>\n\xd7\x9d\xd7\x95\xd7\x9c\xd7\xa9\n</body>\n'
++ iso_8859_8= b'<HEAD>\n<TITLE>Hebrew (ISO 8859-8) in Visual Directionality</TITLE>\n\n\n\n</HEAD>\n<BODY>\n<H1>Hebrew (ISO 8859-8) in Visual Directionality</H1>\n\xed\xe5\xec\xf9\n</BODY>\n'
++ utf8 = b'<head>\n<title>Hebrew (ISO 8859-8) in Visual Directionality</title>\n</head>\n<body>\n<h1>Hebrew (ISO 8859-8) in Visual Directionality</h1>\n\xd7\x9d\xd7\x95\xd7\x9c\xd7\xa9\n</body>\n'
+ soup = BeautifulStoneSoup(iso_8859_8, fromEncoding="iso-8859-8")
+ self.assertEquals(soup.encode('utf-8'), utf8)
+
+ def testSmartQuotesNotSoSmartAnymore(self):
+- self.assertSoupEquals("\x91Foo\x92 <!--blah-->",
++ self.assertSoupEquals(b"\x91Foo\x92 <!--blah-->",
+ '&lsquo;Foo&rsquo; <!--blah-->')
+
+ def testDontConvertSmartQuotesWhenAlsoConvertingEntities(self):
+- smartQuotes = "Il a dit, \x8BSacr&eacute; bl&#101;u!\x9b"
++ smartQuotes = b"Il a dit, \x8BSacr&eacute; bl&#101;u!\x9b"
+ soup = BeautifulSoup(smartQuotes)
+ self.assertEquals(soup.decode(),
+ 'Il a dit, &lsaquo;Sacr&eacute; bl&#101;u!&rsaquo;')
+ soup = BeautifulSoup(smartQuotes, convertEntities="html")
+ self.assertEquals(soup.encode('utf-8'),
+- 'Il a dit, \xe2\x80\xb9Sacr\xc3\xa9 bleu!\xe2\x80\xba')
++ b'Il a dit, \xe2\x80\xb9Sacr\xc3\xa9 bleu!\xe2\x80\xba')
+
+ def testDontSeeSmartQuotesWhereThereAreNone(self):
+- utf_8 = "\343\202\261\343\203\274\343\202\277\343\202\244 Watch"
++ utf_8 = b"\343\202\261\343\203\274\343\202\277\343\202\244 Watch"
+ self.assertSoupEquals(utf_8, encoding='utf-8')
+
+
+--- setup.py
++++ setup.py
+@@ -19,19 +19,19 @@
+ suite = loader.loadTestsFromModule(BeautifulSoupTests)
+ suite.run(result)
+ if not result.wasSuccessful():
+- print "Unit tests have failed!"
++ print("Unit tests have failed!")
+ for l in result.errors, result.failures:
+ for case, error in l:
+- print "-" * 80
++ print("-" * 80)
+ desc = case.shortDescription()
+ if desc:
+- print desc
+- print error
+- print '''If you see an error like: "'ascii' codec can't encode character...", see\nthe Beautiful Soup documentation:\n http://www.crummy.com/software/BeautifulSoup/documentation.html#Why%20can't%20Beautiful%20Soup%20print%20out%20the%20non-ASCII%20characters%20I%20gave%20it?'''
+- print "This might or might not be a problem depending on what you plan to do with\nBeautiful Soup."
++ print(desc)
++ print(error)
++ print('''If you see an error like: "'ascii' codec can't encode character...", see\nthe Beautiful Soup documentation:\n http://www.crummy.com/software/BeautifulSoup/documentation.html#Why%20can't%20Beautiful%20Soup%20print%20out%20the%20non-ASCII%20characters%20I%20gave%20it?''')
++ print("This might or might not be a problem depending on what you plan to do with\nBeautiful Soup.")
+ if sys.argv[1] == 'sdist':
+- print
+- print "I'm not going to make a source distribution since the tests don't pass."
++ print()
++ print("I'm not going to make a source distribution since the tests don't pass.")
+ sys.exit(1)
+
+ setup(name="BeautifulSoup",
diff --git a/dev-python/beautifulsoup/files/bfs-4.2.0-no-lxml.patch b/dev-python/beautifulsoup/files/bfs-4.2.0-no-lxml.patch
new file mode 100644
index 00000000000..75ae98b1ef4
--- /dev/null
+++ b/dev-python/beautifulsoup/files/bfs-4.2.0-no-lxml.patch
@@ -0,0 +1,67 @@
+=== modified file 'bs4/testing.py'
+--- bs4/testing.py 2013-05-07 12:19:02 +0000
++++ bs4/testing.py 2013-05-20 13:19:16 +0000
+@@ -464,6 +464,18 @@
+ self.assertEqual(
+ soup.encode("utf-8"), markup)
+
++ def test_formatter_processes_script_tag_for_xml_documents(self):
++ doc = """
++ <script type="text/javascript">
++ </script>
++"""
++ soup = BeautifulSoup(doc, "xml")
++ # lxml would have stripped this while parsing, but we can add
++ # it later.
++ soup.script.string = 'console.log("< < hey > > ");'
++ encoded = soup.encode()
++ self.assertTrue(b"&lt; &lt; hey &gt; &gt;" in encoded)
++
+ def test_popping_namespaced_tag(self):
+ markup = '<rss xmlns:dc="foo"><dc:creator>b</dc:creator><dc:date>2012-07-02T20:33:42Z</dc:date><dc:rights>c</dc:rights><image>d</image></rss>'
+ soup = self.soup(markup)
+
+=== modified file 'bs4/tests/test_lxml.py'
+--- bs4/tests/test_lxml.py 2013-05-09 19:36:30 +0000
++++ bs4/tests/test_lxml.py 2013-05-20 13:19:16 +0000
+@@ -10,6 +10,7 @@
+ LXML_VERSION = lxml.etree.LXML_VERSION
+ except ImportError, e:
+ LXML_PRESENT = False
++ LXML_VERSION = (0,)
+
+ from bs4 import (
+ BeautifulSoup,
+@@ -47,7 +48,7 @@
+ # test if an old version of lxml is installed.
+
+ @skipIf(
+- LXML_VERSION < (2,3,5,0),
++ not LXML_PRESENT or LXML_VERSION < (2,3,5,0),
+ "Skipping doctype test for old version of lxml to avoid segfault.")
+ def test_empty_doctype(self):
+ soup = self.soup("<!DOCTYPE>")
+
+=== modified file 'bs4/tests/test_tree.py'
+--- bs4/tests/test_tree.py 2013-05-14 12:39:16 +0000
++++ bs4/tests/test_tree.py 2013-05-20 13:19:16 +0000
+@@ -1344,18 +1344,6 @@
+ encoded = BeautifulSoup(doc).encode()
+ self.assertTrue(b"< < hey > >" in encoded)
+
+- def test_formatter_processes_script_tag_for_xml_documents(self):
+- doc = """
+- <script type="text/javascript">
+- </script>
+-"""
+- soup = BeautifulSoup(doc, "xml")
+- # lxml would have stripped this while parsing, but we can add
+- # it later.
+- soup.script.string = 'console.log("< < hey > > ");'
+- encoded = soup.encode()
+- self.assertTrue(b"&lt; &lt; hey &gt; &gt;" in encoded)
+-
+ def test_prettify_leaves_preformatted_text_alone(self):
+ soup = self.soup("<div> foo <pre> \tbar\n \n </pre> baz ")
+ # Everything outside the <pre> tag is reformatted, but everything
+
diff --git a/dev-python/beautifulsoup/metadata.xml b/dev-python/beautifulsoup/metadata.xml
new file mode 100644
index 00000000000..236732af0c8
--- /dev/null
+++ b/dev-python/beautifulsoup/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Beautiful Soup is a Python HTML/XML parser designed for quick
+ turnaround projects like screen-scraping. Two features make it
+ powerful: it won't choke if you give it bad markup and it provides a
+ few simple methods and Pythonic idioms for navigating and searching
+ a parse tree: a toolkit for dissecting a document and extracting
+ what you need.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">beautifulsoup4</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/behave/Manifest b/dev-python/behave/Manifest
new file mode 100644
index 00000000000..db4416d0de7
--- /dev/null
+++ b/dev-python/behave/Manifest
@@ -0,0 +1,2 @@
+DIST behave-1.2.4.tar.gz 343050 SHA256 24542aadd9eeb3a471076f9d880a69250052153df93122d9991938db917759ec SHA512 98360202fdccaa6cdfaf70a2a658db06b8de0017fbaeb5bd8d33ae8f009444a29f9e75eab8a4b363eb7719ef10566fad5521372285f2998cfb6e3037df706a1c WHIRLPOOL 2278500709733f9715ada2e6e178d6bb32c566c8df8ae6bc8ac3400ec66e37d9a1559c58e869becc89a8861407c658f22c695416d3617d7651629a5f2eadd6b5
+DIST behave-1.2.5.tar.gz 385738 SHA256 81b731ac5187e31e4aad2594944fa914943683a9818320846d037c5ebd6d5d0b SHA512 137ede0baed9df154087249df8dcae81ab0cdf1de91a5790fca7ccf3231ba2ba4e64623abd2b8c9bfc459ab6575f68b9ef7e03e33ef79e524d9443a8489ec7fe WHIRLPOOL 07b603da98220f35d82f11ea07042e5962c6be4ba1442c27a491c00b3260a57880bb26fbf89b510d898457675be28e63ff0c37dd5568d5905ff5e41ccb4b400d
diff --git a/dev-python/behave/behave-1.2.4.ebuild b/dev-python/behave/behave-1.2.4.ebuild
new file mode 100644
index 00000000000..a3ab59c8ed4
--- /dev/null
+++ b/dev-python/behave/behave-1.2.4.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="behaviour-driven development, Python style"
+HOMEPAGE="http://github.com/behave/behave"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ doc? (
+ >=dev-python/sphinx-1.2.2[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-cheeseshop-0.2[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.1[${PYTHON_USEDEP}]
+ >=dev-python/pyhamcrest-1.8[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/parse-1.6.3[${PYTHON_USEDEP}]
+ >=dev-python/parse-type-0.3.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "nosetests failed under ${EPYTHON}"
+
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -f "${HOME}"/.pydistutils.cfg || die "Couldn't remove pydistutils.cfg"
+
+ distutils_install_for_testing
+
+ ${TEST_DIR}/scripts/behave -f progress --junit --tags=~@xfail features/ || die "behave features failed under ${EPYTHON}"
+ ${TEST_DIR}/scripts/behave -f progress --junit --tags=~@xfail tools/test-features/ || die "behave test-festures failed under ${EPYTHON}"
+ ${TEST_DIR}/scripts/behave -f progress --junit --tags=~@xfail issue.features/ || die "behave issue.features failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( build/docs/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/behave/behave-1.2.5.ebuild b/dev-python/behave/behave-1.2.5.ebuild
new file mode 100644
index 00000000000..3b019826896
--- /dev/null
+++ b/dev-python/behave/behave-1.2.5.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="behaviour-driven development, Python style"
+HOMEPAGE="http://github.com/behave/behave"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.2.2[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-cheeseshop-0.2[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyhamcrest-1.8[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/parse-1.6.3[${PYTHON_USEDEP}]
+ >=dev-python/parse-type-0.3.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "nosetests failed under ${EPYTHON}"
+
+ ${PYTHON} -m behave --tags='~@xfail' features/ || die "behave features failed under ${EPYTHON}"
+ ${PYTHON} -m behave --tags='~@xfail' tools/test-features/ || die "behave test-festures failed under ${EPYTHON}"
+ ${PYTHON} -m behave --tags='~@xfail' issue.features/ || die "behave issue.features failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( build/docs/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/behave/metadata.xml b/dev-python/behave/metadata.xml
new file mode 100644
index 00000000000..23aec91ad38
--- /dev/null
+++ b/dev-python/behave/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">behave</remote-id>
+ <remote-id type="github">behave/behave</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bicyclerepair/Manifest b/dev-python/bicyclerepair/Manifest
new file mode 100644
index 00000000000..76902ac0509
--- /dev/null
+++ b/dev-python/bicyclerepair/Manifest
@@ -0,0 +1 @@
+DIST bicyclerepair-0.9.tar.gz 165025 SHA256 69509eebaeb595ad1d14291b47c6236df97abd5893352965055d91b0cfaea116 SHA512 e80495ccd01d72964eaf3dc8cc4430215ffb563710893c52141e8393125dafd085ba485a2228fed0ceb364515efe08db1947201e73f318498788a9e3581765ff WHIRLPOOL e5472d56559ce1a8ece9c07509cf7a27218d3bf73a25be23d9e8031e8e77d51f1cf14c8dc96e92d90280ffccd19633425a48589363d098cdbf3e6b91b48ac71c
diff --git a/dev-python/bicyclerepair/bicyclerepair-0.9-r2.ebuild b/dev-python/bicyclerepair/bicyclerepair-0.9-r2.ebuild
new file mode 100644
index 00000000000..e2b20f45509
--- /dev/null
+++ b/dev-python/bicyclerepair/bicyclerepair-0.9-r2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils elisp-common eutils
+
+DESCRIPTION="Bicycle Repair Man is the Python Refactoring Browser"
+HOMEPAGE="http://bicyclerepair.sourceforge.net/"
+SRC_URI="mirror://sourceforge/bicyclerepair/${P}.tar.gz"
+
+LICENSE="icu GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ppc64 x86"
+IUSE="emacs"
+
+DEPEND="emacs? (
+ app-emacs/pymacs
+ app-emacs/python-mode
+ )"
+RDEPEND="${DEPEND}"
+
+SITEFILE="50${PN}-gentoo.el"
+PYTHON_MODNAME="BicycleRepairMan_Idle.py bike bikeemacs.py"
+
+src_prepare() {
+ distutils_src_prepare
+
+ # bikeemacs.py contains non-ASCII characters in comments.
+ sed -e '1s/$/\t-*- coding: latin-1 -*-/' -i ide-integration/bikeemacs.py || die "sed failed"
+
+ epatch "${FILESDIR}/${P}-idle.patch"
+ epatch "${FILESDIR}/${P}-invalid-syntax.patch"
+}
+
+src_test() {
+ testing() {
+ "$(PYTHON)" testall.py
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die "elisp-site-file-install failed"
+ fi
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ distutils_pkg_postrm
+ use emacs && elisp-site-regen
+}
diff --git a/dev-python/bicyclerepair/bicyclerepair-0.9-r3.ebuild b/dev-python/bicyclerepair/bicyclerepair-0.9-r3.ebuild
new file mode 100644
index 00000000000..33ced0532f0
--- /dev/null
+++ b/dev-python/bicyclerepair/bicyclerepair-0.9-r3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 elisp-common
+
+DESCRIPTION="Bicycle Repair Man is the Python Refactoring Browser"
+HOMEPAGE="http://bicyclerepair.sourceforge.net/"
+SRC_URI="mirror://sourceforge/bicyclerepair/${P}.tar.gz"
+
+LICENSE="icu GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~x86"
+IUSE="emacs"
+
+DEPEND="emacs? (
+ app-emacs/pymacs[${PYTHON_USEDEP}]
+ app-emacs/python-mode )"
+RDEPEND="${DEPEND}"
+
+SITEFILE="50${PN}-gentoo.el"
+
+python_prepare_all() {
+ # bikeemacs.py contains non-ASCII characters in comments.
+ sed -e '1s/$/\t-*- coding: latin-1 -*-/' -i ide-integration/bikeemacs.py || die "sed failed"
+ epatch "${FILESDIR}/${P}-idle.patch"
+ epatch "${FILESDIR}/${P}-invalid-syntax.patch"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" testall.py || die
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die "elisp-site-file-install failed"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-python/bicyclerepair/files/50bicyclerepair-gentoo.el b/dev-python/bicyclerepair/files/50bicyclerepair-gentoo.el
new file mode 100644
index 00000000000..edad427b54e
--- /dev/null
+++ b/dev-python/bicyclerepair/files/50bicyclerepair-gentoo.el
@@ -0,0 +1,10 @@
+
+;;; bicyclerepair site-lisp configuration
+
+(add-hook
+ 'python-mode-hook
+ (lambda ()
+ (unless (fboundp 'brm-menu)
+ (require 'pymacs)
+ (pymacs-load "bikeemacs" "brm-")
+ (brm-init))))
diff --git a/dev-python/bicyclerepair/files/bicyclerepair-0.9-idle.patch b/dev-python/bicyclerepair/files/bicyclerepair-0.9-idle.patch
new file mode 100644
index 00000000000..ff7e6f8d80b
--- /dev/null
+++ b/dev-python/bicyclerepair/files/bicyclerepair-0.9-idle.patch
@@ -0,0 +1,41 @@
+=== modified file 'ide-integration/BicycleRepairMan_Idle.py'
+--- ide-integration/BicycleRepairMan_Idle.py 2008-07-21 20:08:33 +0000
++++ ide-integration/BicycleRepairMan_Idle.py 2008-07-21 20:15:02 +0000
+@@ -300,21 +300,21 @@
+ return 1
+
+
+- def confirm_buffer_is_saved(self, editwin):
+- if not editwin.get_saved():
+- name = (editwin.short_title()or
+- editwin.long_title()or
+- "Untitled")
+- reply = tkMessageBox.askokcancel("Bicycle Repair Man",
+- "The buffer for %s is not saved.\n\n"%name+
+- "Save it and continue?",
+- master = self.editwin.text)
+-&nbs p; self.editwin.text.focus_set()
+- if reply:
+- editwin.io.save(None)
+- else:
+- return 0
+- return 1
++ def confirm_buffer_is_saved(self, editwin):
++ if not editwin.get_saved():
++ name = (editwin.short_title()or
++ editwin.long_title()or
++ "Untitled")
++ reply = tkMessageBox.askokcancel("Bicycle Repair Man",
++ "The buffer for %s is not saved.\n\n"%name+
++ "Save it and continue?",
++ master = self.editwin.text)
++ self.editwin.text.focus_set()
++ if reply:
++ editwin.io.save(None)
++ else:
++ return 0
++ return 1
+
+ def errorbox(self, title, message):
+ tkMessageBox.showerror(title, message, master = self.editwin.text)
+
diff --git a/dev-python/bicyclerepair/files/bicyclerepair-0.9-invalid-syntax.patch b/dev-python/bicyclerepair/files/bicyclerepair-0.9-invalid-syntax.patch
new file mode 100644
index 00000000000..c32fdb62121
--- /dev/null
+++ b/dev-python/bicyclerepair/files/bicyclerepair-0.9-invalid-syntax.patch
@@ -0,0 +1,11 @@
+=== modified file 'bike/query/getPackageDependencies.py'
+--- bike/query/getPackageDependencies.py 2008-07-21 19:37:44 +0000
++++ bike/query/getPackageDependencies.py 2008-07-21 19:38:11 +0000
+@@ -2,5 +2,5 @@
+
+ # fileInPackage is the filename of a file in the package hierarchy
+ def getPackageDependencies(fileInPackage):
+-
++ pass
+
+
diff --git a/dev-python/bicyclerepair/metadata.xml b/dev-python/bicyclerepair/metadata.xml
new file mode 100644
index 00000000000..1b45cb3d7cd
--- /dev/null
+++ b/dev-python/bicyclerepair/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">bicyclerepair</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/billiard/Manifest b/dev-python/billiard/Manifest
new file mode 100644
index 00000000000..e490208675e
--- /dev/null
+++ b/dev-python/billiard/Manifest
@@ -0,0 +1,3 @@
+DIST billiard-3.3.0.18.tar.gz 150594 SHA256 59c04036f314c11632a49c15c57735ffb9e111983ee8d15e4d3e188be31583c1 SHA512 8d62c1b5d3e979926cb416f6a85597cf2a959559e4f07f76f189e70cf585ef55ddbba9506bc50c2f9a88d8aa00684b7468668748edbd0530a72970334b8e2617 WHIRLPOOL 34ce61559529ca95fb9aed44917541546ce9955212954aa16b783f5ed22e36a3b7700edd46eb4961bf49b1653f9020aaf760ba67b1123b69e78e04af8e9c93fb
+DIST billiard-3.3.0.19.tar.gz 150943 SHA256 6e6b8ec6e45b89389051737c7e6215d8e55a83896eb6212fa726ca76e80c7a19 SHA512 492bbf38a7924394dd89f0528598e37ca1a93fc21bdccded396e036b2457c14a06e44de2c9b80d81e5f55bfd1559a6c5fbf1969d108089dc2b697aeaecea60ad WHIRLPOOL cb6e96a1b0c19c62ea07854e7520acb04fa716f79f499e00c24b46f0403ac80d1416fe9669d7e9e1c4955341b29d9215b2e9429d482a4ab34c710397c0fc5e2d
+DIST billiard-3.3.0.20.tar.gz 150990 SHA256 688f9466b1c3ae14106381e6dbd328115e75c5260c542eb48e6c46931f6928cc SHA512 e068be5e0bc8bc68a38dd1cec2574da25494cfac2d9b4b951af3fd9f019080a4fe402d4b407162bcc0edbd0ac4fa406a964913e4bf1dd98dbf8a937294a34321 WHIRLPOOL 41a2ae0648d7f960c569491d0dea519787e3ba779fa27e71c2dcf12e7955175cf3b9697ca750f4e164e263abd880af287f5645c0864115ef88bb0088d31b74c2
diff --git a/dev-python/billiard/billiard-3.3.0.18.ebuild b/dev-python/billiard/billiard-3.3.0.18.ebuild
new file mode 100644
index 00000000000..ca047c18b01
--- /dev/null
+++ b/dev-python/billiard/billiard-3.3.0.18.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Python multiprocessing fork"
+HOMEPAGE="http://pypi.python.org/pypi/billiard https://github.com/celery/billiard"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/unittest2-0.4.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# The usual req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx --builder="html" --source-dir=Doc/
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ # The teardown in __init__.py breaks pypy's installed nose
+ if [[ "${EPYTHON}" == pypy ]]; then
+ rm lib/billiard/tests/__init__.py || die
+ echo "from __future__ import absolute_import" >> ./lib/billiard/tests/__init__.py || die
+ fi
+ nosetests billiard.tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( build/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/billiard/billiard-3.3.0.19.ebuild b/dev-python/billiard/billiard-3.3.0.19.ebuild
new file mode 100644
index 00000000000..bc522833d1e
--- /dev/null
+++ b/dev-python/billiard/billiard-3.3.0.19.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Python multiprocessing fork"
+HOMEPAGE="http://pypi.python.org/pypi/billiard https://github.com/celery/billiard"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/unittest2-0.4.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy pypy3 )
+ )"
+# The usual req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx --builder="html" --source-dir=Doc/
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ # The teardown in __init__.py breaks pypy's installed nose
+ if [[ "${EPYTHON}" == pypy ]]; then
+ rm lib/billiard/tests/__init__.py || die
+ echo "from __future__ import absolute_import" >> ./lib/billiard/tests/__init__.py || die
+ fi
+ nosetests billiard.tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( build/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/billiard/billiard-3.3.0.20.ebuild b/dev-python/billiard/billiard-3.3.0.20.ebuild
new file mode 100644
index 00000000000..6654e760aa3
--- /dev/null
+++ b/dev-python/billiard/billiard-3.3.0.20.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Python multiprocessing fork"
+HOMEPAGE="http://pypi.python.org/pypi/billiard https://github.com/celery/billiard"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/unittest2-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.4[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy pypy3 )
+ )"
+# The usual req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx --builder="html" --source-dir=Doc/
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ # The teardown in __init__.py breaks pypy's installed nose
+ if [[ "${EPYTHON}" == pypy ]]; then
+ rm lib/billiard/tests/__init__.py || die
+ echo "from __future__ import absolute_import" >> ./lib/billiard/tests/__init__.py || die
+ fi
+ nosetests billiard.tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( build/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/billiard/metadata.xml b/dev-python/billiard/metadata.xml
new file mode 100644
index 00000000000..f0333ed8cda
--- /dev/null
+++ b/dev-python/billiard/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">billiard</remote-id>
+ <remote-id type="github">celery/billiard</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/biplist/Manifest b/dev-python/biplist/Manifest
new file mode 100644
index 00000000000..bc9379d77f2
--- /dev/null
+++ b/dev-python/biplist/Manifest
@@ -0,0 +1,2 @@
+DIST biplist-0.8.tar.gz 14306 SHA256 d8a9c6dff4d2a45fb3e9f27d19ea63da0a82ed59c758c34f6342badaccf6ea71 SHA512 7b2fe9b0c4080ae690f1d856a0fc7ca3bbabfed81aa4c06509d584041be4802e4e1b004bef83326f518baf1cbc147dc36b0c55e769a6b5c170fee278f7b1d9d8 WHIRLPOOL 024a283e536c6e56275d48232f3b7a134c15169ff853821e4050fb8bddc6381827e526ac107c352bb9d45bc8965b15cb0a9528580340f03efde416a70c0c8c5a
+DIST biplist-0.9.tar.gz 14591 SHA256 b57cadfd26e4754efdf89e9e37de87885f9b5c847b2615688ca04adfaf6ca604 SHA512 d0999f6f4d23a4f4e1eaabb831750cb8d51a452b7896ed85409bb8614ba3e89e1e558688de5f5259a86503a55886887c6364d37a886d2ad5699fd067f0be7230 WHIRLPOOL 5d7a757c151737939a1759817d396a200b52074dc317fc14bb751b54b74fd36fae1f4d01036f5bb39859c6312da4ff5f438b2d0e120b1aa45cffe4c76edfd468
diff --git a/dev-python/biplist/biplist-0.8.ebuild b/dev-python/biplist/biplist-0.8.ebuild
new file mode 100644
index 00000000000..048a32dde08
--- /dev/null
+++ b/dev-python/biplist/biplist-0.8.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A binary plist parser/generator for Python"
+HOMEPAGE="http://pypi.python.org/pypi/biplist/ https://github.com/wooster/biplist"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ ${RDEPEND} )"
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/biplist/biplist-0.9.ebuild b/dev-python/biplist/biplist-0.9.ebuild
new file mode 100644
index 00000000000..d5bd4e69cdc
--- /dev/null
+++ b/dev-python/biplist/biplist-0.9.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A binary plist parser/generator for Python"
+HOMEPAGE="http://pypi.python.org/pypi/biplist/ https://github.com/wooster/biplist"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ ${RDEPEND} )"
+
+python_test() {
+ # This failure still occurs, after 18 momths
+ # https://github.com/wooster/biplist/issues/8
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/biplist/metadata.xml b/dev-python/biplist/metadata.xml
new file mode 100644
index 00000000000..e1a3378cacb
--- /dev/null
+++ b/dev-python/biplist/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">biplist</remote-id>
+ <remote-id type="github">wooster/biplist</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest
new file mode 100644
index 00000000000..8f2e33d7866
--- /dev/null
+++ b/dev-python/bitarray/Manifest
@@ -0,0 +1 @@
+DIST bitarray-0.8.1.tar.gz 46877 SHA256 7da501356e48a83c61f479393681c1bc4b94e5a34ace7e08cb29e7dd9290ab18 SHA512 10f4872243b92cd5a1a77e1e2aca80135d31904e17cb3de4eb2c3f2c4d3f00ad0573b6bc4b9c9379594e2912cb0e5d5870fb4e59eb298e269ecb3778fbae7d1f WHIRLPOOL 93baffe0494872933e4726e9e8c37c3ae7969d621356e2a1b68b7056992d7bcb1e5362c9ae78265884c25398faddaaa7447a3e7c40b82a0528504a728ad8ada3
diff --git a/dev-python/bitarray/bitarray-0.8.1.ebuild b/dev-python/bitarray/bitarray-0.8.1.ebuild
new file mode 100644
index 00000000000..9488774f35b
--- /dev/null
+++ b/dev-python/bitarray/bitarray-0.8.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_{3,4}})
+
+inherit distutils-r1
+
+DESCRIPTION="efficient arrays of booleans -- C extension"
+HOMEPAGE="https://github.com/ilanschnell/bitarray http://pypi.python.org/pypi/bitarray"
+SRC_URI="mirror://pypi/b/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="PSF-2"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+
+python_test() {
+ "${PYTHON}" ${PN}/test_${PN}.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/bitarray/metadata.xml b/dev-python/bitarray/metadata.xml
new file mode 100644
index 00000000000..74dd28633c0
--- /dev/null
+++ b/dev-python/bitarray/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <herd>python</herd>
+ <longdescription>
+This module provides an object type which efficiently represents an array of
+booleans. Bitarrays are sequence types and behave very much like usual lists.
+Eight bits are represented by one byte in a contiguous block of memory. The
+user can select between two representations; little-endian and big-endian.
+Most of the functionality is implemented in C. Methods for accessing the
+machine representation are provided. This can be useful when bit level access
+to binary files is required, such as portable bitmap image files (.pbm). Also,
+when dealing with compressed data which uses variable bit length encoding,
+you may find this module useful.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">bitarray</remote-id>
+ <remote-id type="github">ilanschnell/bitarray</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bitstring/Manifest b/dev-python/bitstring/Manifest
new file mode 100644
index 00000000000..9f9fb2dc2d7
--- /dev/null
+++ b/dev-python/bitstring/Manifest
@@ -0,0 +1 @@
+DIST bitstring-3.1.1.zip 620317 SHA256 52de6257e95f923284d4c1fdce8287df65a2c677f26d73d288ed06188586ab6f SHA512 856fca0d16929e1fd6e78e9b5fe63fbbabe35bd0c49ef188b24ee0585feea36a485506a2fb8d87e1515ed4162d83c70faa5af59abfe95cef212c6ebaf9fa90d2 WHIRLPOOL 305521c110601f1145344d2423bd91f901c58f08759b4a7c0865cc342d12d9dc4f633e81fc260032e3c41aa73472aa452de476dd418cdb5051957908c7078d47
diff --git a/dev-python/bitstring/bitstring-3.1.1.ebuild b/dev-python/bitstring/bitstring-3.1.1.ebuild
new file mode 100644
index 00000000000..a69fb64ff46
--- /dev/null
+++ b/dev-python/bitstring/bitstring-3.1.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="A pure Python module for creation and analysis of binary data"
+HOMEPAGE="http://python-bitstring.googlecode.com/"
+SRC_URI="http://python-bitstring.googlecode.com/files/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+python_test() {
+ if [[ ${EPYTHON} == python2.6 ]]; then
+ local runner=( unit2.py )
+ else
+ local runner=( "${PYTHON}" -m unittest )
+ fi
+ pushd test > /dev/null || die
+ "${runner[@]}" discover || die "Testing failed with ${EPYTHON}"
+ popd test > /dev/null || die
+}
diff --git a/dev-python/bitstring/metadata.xml b/dev-python/bitstring/metadata.xml
new file mode 100644
index 00000000000..b748cd112f1
--- /dev/null
+++ b/dev-python/bitstring/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>A pure Python module designed to help make
+ the creation and analysis of binary data
+ as simple and natural as possible</longdescription>
+ <upstream>
+ <remote-id type="google-code">python-bitstring</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bjoern/Manifest b/dev-python/bjoern/Manifest
new file mode 100644
index 00000000000..52c914082b5
--- /dev/null
+++ b/dev-python/bjoern/Manifest
@@ -0,0 +1,2 @@
+DIST bjoern-1.3.2.tar.gz 25878 SHA256 bb272517760897a96b3fbf0564236a4f9e0e14e05d8cdcc5f9ac2957ff0c89c0 SHA512 f96ab7f6bfdd158da398c56555a47944f30ac505ed3cb8610a3fc12fe15d5a7bbb0cdba27c858e5ccac28213504b2c68aefd0c252591e3e4d63ce70c8ac840cc WHIRLPOOL 1121cc2088686532dca96b3db4116272c162b23c327a33335763237a45fd1b12a9b0e16b5f4e901fdd162ad923238f7637b29d3190ba6fb6538cb46cd809be83
+DIST bjoern-1.4.2.tar.gz 25997 SHA256 5892ee00b04c45e0093835c9e179e52370d42add224a4a03d937f8306a54d84e SHA512 518402752c0ad4d5a930bad67a59fbd34a64506abc782749e087a2c205d318073c91743a56902dbd3097d76bc6cd2d45b09f7b393b5a94d78434ff99209e1a27 WHIRLPOOL 26a436eebb24e21235f3aedd700a5382015c7844e0c5420e8780dbaf5574d6c6cd6be941bbbeecaf6789c32840be3e6ffb51bee030d18ecd62ed51a8cced6d59
diff --git a/dev-python/bjoern/bjoern-1.3.2.ebuild b/dev-python/bjoern/bjoern-1.3.2.ebuild
new file mode 100644
index 00000000000..f4d810415df
--- /dev/null
+++ b/dev-python/bjoern/bjoern-1.3.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="A screamingly fast Python WSGI server written in C"
+HOMEPAGE="https://github.com/jonashaag/bjoern https://pypi.python.org/pypi/bjoern/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-libs/libev
+ net-libs/http-parser"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/bjoern/bjoern-1.4.2.ebuild b/dev-python/bjoern/bjoern-1.4.2.ebuild
new file mode 100644
index 00000000000..5e40f28a422
--- /dev/null
+++ b/dev-python/bjoern/bjoern-1.4.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="A screamingly fast Python WSGI server written in C"
+HOMEPAGE="https://github.com/jonashaag/bjoern https://pypi.python.org/pypi/bjoern/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-libs/libev
+ net-libs/http-parser"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/bjoern/metadata.xml b/dev-python/bjoern/metadata.xml
new file mode 100644
index 00000000000..887545589de
--- /dev/null
+++ b/dev-python/bjoern/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">bjoern</remote-id>
+ <remote-id type="github">jonashaag/bjoern</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/blaze/Manifest b/dev-python/blaze/Manifest
new file mode 100644
index 00000000000..f3837125e12
--- /dev/null
+++ b/dev-python/blaze/Manifest
@@ -0,0 +1,3 @@
+DIST blaze-0.7.1.tar.gz 760204 SHA256 2ea89bd0736530731643bf4a8f16b955b2e3bdcc2a36155af085385f6d10cd5b SHA512 cb94a4a58835bc120fc19810be03104ba9ad0b3cbc4ec6667b35b09ac9c7376934c03e897dfbeebf4161b227dac03cbd082067fba896bc07ace4dfbf21985b3f WHIRLPOOL d52b700c0127bebed2face3d3cd45436c8d2cc8b0485992f4c1b7a2f3582fdee65f55b3770a60697dd64e55008bbc1ea28a5238197daac8455c3f0ff80fbf58f
+DIST blaze-0.8.0.tar.gz 6718278 SHA256 0ec507286a15eb18ccbf87d007c88cfe9d5f254f539687455b6216cd0dc667b6 SHA512 067032d50bdd91d9beddbf6329289d00b633003f8c114e47d01b439f35d68c44f285bd9f67283f79987ab166ece0ffa8bac62444e36803f8a47108a2de847ed5 WHIRLPOOL c0e28d88fea84b1c67213b5572d19623a7cffa76a14da57eb950483013a922798dad512177e8383308d60fbac178176dd8ef05b7c168e562291ee9c4bfa5aa0c
+DIST blaze-0.8.2.tar.gz 9845331 SHA256 1f5a1dd306661a7493c95daafec07bab18fca3d99d03f1c6ab2be474afa73c01 SHA512 fc33e080e2af51606a719c12f38c14ea82de7e32e22bcb273a6e104ebb8ec7fc87e502d7fc48ba70992ce61ed624b167dc95a277dc9d0330b4a7fce4b1803df2 WHIRLPOOL 17d31889f07036e0c031c422566921f130cccb0feffbaecf5231fd916c678a725d8490bb322bb93c57aa18793296947b1318a85dabb8a5ea461e76df6d0fbd66
diff --git a/dev-python/blaze/blaze-0.7.1.ebuild b/dev-python/blaze/blaze-0.7.1.ebuild
new file mode 100644
index 00000000000..6d51d213e0b
--- /dev/null
+++ b/dev-python/blaze/blaze-0.7.1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+# if it won't fail anyway why run it at all?
+RESTRICT="test"
+
+inherit distutils-r1
+
+DESCRIPTION="Next generation Python numpy"
+HOMEPAGE="http://blaze.pydata.org/"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+
+# Currently doc build fails, reason unclear but appears it's tied to use of
+# redhat's anaconda installer, seemingly hostile to gentoo.
+# Leaving doc build content in case this is fixed
+IUSE="doc examples test"
+
+# pyspark appears an optional dep not in portage. pyskit appears to be dropped
+# pyparsing lokks to be required still despite its absence from requirements.txt
+PY2_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND="
+ >=dev-python/blz-0.6.2[${PYTHON_USEDEP}]
+ =dev-python/datashape-0.4*[${PYTHON_USEDEP}]
+ >=dev-python/dynd-python-0.6.5[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ dev-python/cytoolz[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/unicodecsv[${PY2_USEDEP}]
+ >=dev-python/multipledispatch-0.4.7[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.10.1[${PY2_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/pytables[${PYTHON_USEDEP}]
+ dev-python/pymongo[${PYTHON_USEDEP}]
+ dev-python/xlrd[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/into[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ "
+DEPEND="
+ >=dev-python/cython-0.18[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ dev-python/bokeh[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pyyaml[${PYTHON_USEDEP}] )
+ "
+# Currently doc build fails, reason unclear but appears it's tied to use of
+# redhat's anaconda installer, seemingly hostile to gentoo.
+
+python_prepare_all() {
+ # Prevent d'loading. Use this for now. Flagged for improved fix later.
+ sed -e "s: 'sphinx.ext.intersphinx',::" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+#python_compile_all() {
+# use doc && emake -C docs html
+#}
+
+python_test() {
+ # https://github.com/ContinuumIO/blaze/issues/791
+ cd "${BUILD_DIR}"/lib || die
+ "${PYTHON}" -c 'import blaze; blaze.test()' || die
+}
+
+python_install_all() {
+# use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( blaze/examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/blaze/blaze-0.8.0.ebuild b/dev-python/blaze/blaze-0.8.0.ebuild
new file mode 100644
index 00000000000..a625376e40c
--- /dev/null
+++ b/dev-python/blaze/blaze-0.8.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Next generation Python numpy"
+HOMEPAGE="http://blaze.pydata.org/"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+# Currently doc build fails, reason now, attempt to import mystery modules in datashape
+# Leaving doc build content in case this is fixed
+IUSE="doc examples test"
+
+# pyspark appears an optional dep not in portage. pyskit appears to be dropped
+# some packages including pyparsing appear required despite their absence from requirements.txt
+
+RDEPEND="
+ <dev-python/datashape-0.4.4[${PYTHON_USEDEP}]
+ >=dev-python/dynd-python-0.6.5[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ dev-python/cytoolz[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.15.0[${PYTHON_USEDEP}]
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/unicodecsv[${PYTHON_USEDEP}]
+ >=dev-python/multipledispatch-0.4.7[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pytables-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.8[${PYTHON_USEDEP}]
+ dev-python/xlrd[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/into[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numba-0.18.2[${PYTHON_USEDEP}]
+ dev-python/bcolz[${PYTHON_USEDEP}]
+ >=dev-python/odo-0.3.1[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/cython-0.18[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ dev-python/bokeh[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}] )
+ "
+# Currently doc build fails, reason unclear but appears it's tied to use of
+# redhat's anaconda installer, seemingly hostile to gentoo.
+
+python_prepare_all() {
+ # Prevent d'loading. Use this for now. Flagged for improved fix later.
+ sed -e "s: 'sphinx.ext.intersphinx',::" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/ContinuumIO/blaze/issues/1117
+ # skip test requiring a server daemon
+ # 3 known test failures + 1 error but all 4 already resolved upstream
+ # For now await next release
+ py.test --ignore blaze/compute/tests/test_mongo_compute.py blaze \
+ || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+# use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( blaze/examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/blaze/blaze-0.8.2.ebuild b/dev-python/blaze/blaze-0.8.2.ebuild
new file mode 100644
index 00000000000..19f6b604f27
--- /dev/null
+++ b/dev-python/blaze/blaze-0.8.2.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Next generation Python numpy"
+HOMEPAGE="http://blaze.pydata.org/"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+# Currently doc build fails, reason now, attempt to import mystery modules in datashape
+# Leaving doc build content in case this is fixed
+IUSE="examples test"
+
+# pyspark appears an optional dep not in portage. pyskit appears to be dropped
+# some packages including pyparsing appear required despite their absence from requirements.txt
+
+RDEPEND="
+ <dev-python/datashape-0.4.4[${PYTHON_USEDEP}]
+ >=dev-python/dynd-python-0.6.5[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ dev-python/cytoolz[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.15.0[${PYTHON_USEDEP}]
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/unicodecsv[${PYTHON_USEDEP}]
+ >=dev-python/multipledispatch-0.4.7[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pytables-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.8[${PYTHON_USEDEP}]
+ dev-python/xlrd[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/into[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ dev-python/numba[${PYTHON_USEDEP}]
+ dev-python/bcolz[${PYTHON_USEDEP}]
+ >=dev-python/odo-0.3.1[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/cython-0.18[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}] )
+ "
+# It was found on testing that dev-python/chardet is required for tests
+# despite not being inlcuded in requirements.txt
+# The doc build now fails due to dep bokeh failing to emerge. Deleted.
+
+python_test() {
+ # https://github.com/ContinuumIO/blaze/issues/1117
+ # skip test requiring a server daemon
+ # Tally of known failure reduced to one under py2.7 (test_highly_nested_repr)
+ # and 2 under py3. The failure of test_query_with_strings persists
+ # under python3 and appears to be unaddressed upstream.
+ # Changes in the suite in this version require PYTHONPATH set to ${S}
+ # to avoid spurious errors resulting from the change of path set by the eclass.
+
+ einfo "The test suite has 4 additional failures with package numba installed"
+ einfo "Upstream have been informed via /blaze/issues/1117 @ github.com/"
+ einfo "For optimum results, uninstall numba, but it counters protocol to exclude"
+ einfo "dev-python/numba from dependencies in the ebuild"
+
+ PYTHONPATH="${S}" py.test --ignore blaze/compute/tests/test_mongo_compute.py blaze \
+ || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( blaze/examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/blaze/metadata.xml b/dev-python/blaze/metadata.xml
new file mode 100644
index 00000000000..e2f6a14c9bd
--- /dev/null
+++ b/dev-python/blaze/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Blaze is the next-generation of NumPy. It is designed as a
+ foundational set of abstractions on which to build out-of-core and
+ distributed algorithms over a wide variety of data sources and to
+ extend the structure of NumPy itself.
+</longdescription>
+ <upstream>
+ <remote-id type="github">ContinuumIO/blaze</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bleach/Manifest b/dev-python/bleach/Manifest
new file mode 100644
index 00000000000..065bab110d8
--- /dev/null
+++ b/dev-python/bleach/Manifest
@@ -0,0 +1 @@
+DIST bleach-1.4.1.tar.gz 17449 SHA256 152af29d4580b112fc52966864492791c951e6382b56070e95e128c6b614833b SHA512 247dd02e3123149f8c0dd72e91e3942055d560be791f275ce52ce0250406033b2adfb47e257cb6af2dfd3dfc167ed6434c4cf4b906303e2cd96359d77b55482c WHIRLPOOL 015b4fb0d825201cc59188caf8d94e3d3b1af336ee3f0c787e07d8a73ec32f727c6640828e694b21e2dd255253416e25e11e44d8932bbbca5571494096b75020
diff --git a/dev-python/bleach/bleach-1.4.1.ebuild b/dev-python/bleach/bleach-1.4.1.ebuild
new file mode 100644
index 00000000000..c6b262c6be0
--- /dev/null
+++ b/dev-python/bleach/bleach-1.4.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="an easy whitelist-based HTML-sanitizing tool"
+HOMEPAGE="https://github.com/jsocol/bleach https://pypi.python.org/pypi/bleach"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/html5lib-0.999[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/nose-1.3[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/bleach/metadata.xml b/dev-python/bleach/metadata.xml
new file mode 100644
index 00000000000..0d1b788bc7f
--- /dev/null
+++ b/dev-python/bleach/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">bleach</remote-id>
+ <remote-id type="github">jsocol/bleach</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/blessings/Manifest b/dev-python/blessings/Manifest
new file mode 100644
index 00000000000..4da0a2cde82
--- /dev/null
+++ b/dev-python/blessings/Manifest
@@ -0,0 +1 @@
+DIST blessings-1.6.tar.gz 19974 SHA256 edc5713061f10966048bf6b40d9a514b381e0ba849c64e034c4ef6c1847d3007 SHA512 5d0fc365416bf2b36b6de72f6b8c01bf0ab8df4a0148f492c80056a9ebd5d569e9c01966481e0d70a25add16da2bc3e73be933226369abca533ce019f97479f2 WHIRLPOOL 44dc96c1da174465b5dc3dd38c4d7ccc17408d072d290819c52d33e7e249bbbf428c7ee217faf3ec6acbe1e620b5e0cb2627c4dc3f0162cb21a810ce50e8b1c6
diff --git a/dev-python/blessings/blessings-1.6.ebuild b/dev-python/blessings/blessings-1.6.ebuild
new file mode 100644
index 00000000000..a7c135ae3b4
--- /dev/null
+++ b/dev-python/blessings/blessings-1.6.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A thin, practical wrapper around terminal coloring, styling, and positioning"
+HOMEPAGE="https://github.com/erikrose/blessings https://pypi.python.org/pypi/blessings/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/nose[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ nosetests --verbosity=3 ${PN} || die
+}
diff --git a/dev-python/blessings/metadata.xml b/dev-python/blessings/metadata.xml
new file mode 100644
index 00000000000..f960f682fb0
--- /dev/null
+++ b/dev-python/blessings/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">blessings</remote-id>
+ <remote-id type="github">erikrose/blessings</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/blinker/Manifest b/dev-python/blinker/Manifest
new file mode 100644
index 00000000000..9182416044f
--- /dev/null
+++ b/dev-python/blinker/Manifest
@@ -0,0 +1,2 @@
+DIST blinker-1.3.tar.gz 91551 SHA256 6811010809262261e41ab7b92f3f6d23f35cf816fbec2bc05077992eebec6e2f SHA512 54364234c57dde8059fb9782327cb72ba534d40d650a8fe1ca7b51e4a1c2dbef2b74071681ee934f6f5f24749b6a9ca1371989c39bf4a225be5e8852757588e9 WHIRLPOOL 12a17bc47206c6c10450a0520eb0c2b9b91d838c5555cce8944cff85c164790b44dd6d26e1efd804d11bef42fafffcf67ea98a315e6e5a0e4d1cffeb2a28b44d
+DIST blinker-1.4.tar.gz 111476 SHA256 471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6 SHA512 2f5f71b05c7cc27f5761ba698b05c78c8a491f5285c120e532d24be0c8256daa14e075f3f30e15fb18e7c3f16579af9378a155d058f170e3af9ffdb89e49f56e WHIRLPOOL f9554c6476310c82d8e66cea7d57297478373543b894ba8993bd3b390078ccc0b997eaa4ddfc849acfdf7687be3e61ce89303161a4117dcd02f9363440c4cf6a
diff --git a/dev-python/blinker/blinker-1.3.ebuild b/dev-python/blinker/blinker-1.3.ebuild
new file mode 100644
index 00000000000..08d81b14819
--- /dev/null
+++ b/dev-python/blinker/blinker-1.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast, simple object-to-object and broadcast signaling"
+HOMEPAGE="http://discorporate.us/projects/Blinker/ http://pypi.python.org/pypi/blinker"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc; then
+ pushd docs/html > /dev/null
+ insinto /usr/share/doc/${PF}/html
+ doins -r [a-z]* _static
+ popd > /dev/null
+ fi
+}
diff --git a/dev-python/blinker/blinker-1.4.ebuild b/dev-python/blinker/blinker-1.4.ebuild
new file mode 100644
index 00000000000..59655b9b587
--- /dev/null
+++ b/dev-python/blinker/blinker-1.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast, simple object-to-object and broadcast signaling"
+HOMEPAGE="http://discorporate.us/projects/Blinker/ http://pypi.python.org/pypi/blinker"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc; then
+ pushd docs/html > /dev/null
+ insinto /usr/share/doc/${PF}/html
+ doins -r [a-z]* _static
+ popd > /dev/null
+ fi
+}
diff --git a/dev-python/blinker/metadata.xml b/dev-python/blinker/metadata.xml
new file mode 100644
index 00000000000..2bc8d359b50
--- /dev/null
+++ b/dev-python/blinker/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">blinker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/blockcanvas/Manifest b/dev-python/blockcanvas/Manifest
new file mode 100644
index 00000000000..a5d4dde62bf
--- /dev/null
+++ b/dev-python/blockcanvas/Manifest
@@ -0,0 +1 @@
+DIST blockcanvas-4.0.3.tar.gz 1125887 SHA256 8cbd5d19cbb2008596ef0deb554988f9af480d81328ec58f1225dc1170517b9e SHA512 c74bebceafca28646186c72efd20168113cc62ac17b598e12074d029dce1803a601aafba31b5a305bdbf6d74d5d7bf29614b917e21bd54df7db123701ea770c1 WHIRLPOOL b1bae62c91d3d35ebe3cdaeca375ab2568951c97c4d7541a57dc64557565749968b99b615cf4f7bd37c30293bc642bcc544e697fb17efe580e6e0b9b9f6909fc
diff --git a/dev-python/blockcanvas/blockcanvas-4.0.3-r1.ebuild b/dev-python/blockcanvas/blockcanvas-4.0.3-r1.ebuild
new file mode 100644
index 00000000000..ad29111688b
--- /dev/null
+++ b/dev-python/blockcanvas/blockcanvas-4.0.3-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Numerical modeling"
+HOMEPAGE="http://code.enthought.com/projects/block_canvas/ http://pypi.python.org/pypi/blockcanvas"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+RESTRICT=test
+
+RDEPEND=">=dev-python/apptools-4[${PYTHON_USEDEP}]
+ >=dev-python/chaco-4[${PYTHON_USEDEP}]
+ >=dev-python/codetools-4[${PYTHON_USEDEP}]
+ >=dev-python/etsdevtools-4[${PYTHON_USEDEP}]
+ >=dev-python/pyface-4[${PYTHON_USEDEP}]
+ >=dev-python/scimath-4[${PYTHON_USEDEP}]
+ >=dev-python/traitsui-4[${PYTHON_USEDEP}]
+ dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ )"
+
+DOCS=( docs/{notes.txt,readme.txt} )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ VIRTUALX_COMMAND="nosetests -v" virtualmake
+}
+
+python_install_all() {
+ use doc && local DOHTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/blockcanvas/metadata.xml b/dev-python/blockcanvas/metadata.xml
new file mode 100644
index 00000000000..b369e5fc9be
--- /dev/null
+++ b/dev-python/blockcanvas/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ The Enthought Tool Suite BlockCanvas project provides a visual
+ environment for creating simulation experiments, where function
+ and data are separated. Thus, you can define your simulation
+ algorithm by visually connecting function blocks into a data flow
+ network, and then run it with various data sets (known as
+ "contexts"); likewise, you can use the same context in a different
+ functional simulation.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/blosc/Manifest b/dev-python/blosc/Manifest
new file mode 100644
index 00000000000..a4ce221cbcb
--- /dev/null
+++ b/dev-python/blosc/Manifest
@@ -0,0 +1,3 @@
+DIST blosc-1.2.0.tar.gz 221882 SHA256 d740c1bd6440c5fd7203006538b6c626361fba705ce9ce8f36c400ddb2f50fec SHA512 85db692d3a68ebeacaaf3759807c386e05a13fbad873379d13fc2f2b7470929a3e6cbe7f37c952740e412eecb2cb83bed194e0f4f7af1ef2c934d5478cd93ce1 WHIRLPOOL aa81df21b15382f388fe746a7f9ab0f2ec9eaf82c56bcbd19edb03fb73ce527c6ff70d30461440e27a4292fcdb9f1d43ce039a3a6c2d9b0101f1a4441d2e1a61
+DIST blosc-1.2.1.tar.gz 225560 SHA256 41de5b3a129cb145e192a0f3e62b09b74da311b0750ad50ffcd4aaf8fcf6cfbe SHA512 1ec017b17313ca788ae96a54cdf57a8c770dc5c6eb7b2d13ff94c0c44e9adbced28a22a17497bc748955d756a799305f603d64fd882cefb5cd8068b6b46e8667 WHIRLPOOL 7ba45764eb15f21f2cacee32cbfdd6083d5dd1dcdb88fb0614429dc75e4f1edd311e7127932371a706beee5293963498b5f0b8f194f9d188d8da390e8201d409
+DIST blosc-1.2.3.tar.gz 225781 SHA256 46f796ae1360b3f1580a16dc7f9f2b88b019b4f5f013bec3b84ca9ef6c859da8 SHA512 85b5280f1cbc2163e1115a365aa8a47a1ae496795558f53ed78b1e81ab661a4187d3557cf8890b2a33fd0052a6cc88ac60dc1ea7e382cbf601ed83b440900cc8 WHIRLPOOL d4fb113755b2f98cb1d56976d82a38af1b3bfa2011a26d4a154eb3e9f8af14fc3975f29b643439031ecbf92813126f89aebeda123f8156e2bcc0db45dc9da96a
diff --git a/dev-python/blosc/blosc-1.2.0.ebuild b/dev-python/blosc/blosc-1.2.0.ebuild
new file mode 100644
index 00000000000..cc9c556e97c
--- /dev/null
+++ b/dev-python/blosc/blosc-1.2.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="High performance compressor optimized for binary data"
+HOMEPAGE="http://blosc.pydata.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-libs/c-blosc"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # remove forced sse2
+ sed -i "s|CFLAGS\.append(\"-msse2\")|pass|" setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ nosetests -v || die
+}
diff --git a/dev-python/blosc/blosc-1.2.1.ebuild b/dev-python/blosc/blosc-1.2.1.ebuild
new file mode 100644
index 00000000000..cc9c556e97c
--- /dev/null
+++ b/dev-python/blosc/blosc-1.2.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="High performance compressor optimized for binary data"
+HOMEPAGE="http://blosc.pydata.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-libs/c-blosc"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # remove forced sse2
+ sed -i "s|CFLAGS\.append(\"-msse2\")|pass|" setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ nosetests -v || die
+}
diff --git a/dev-python/blosc/blosc-1.2.3.ebuild b/dev-python/blosc/blosc-1.2.3.ebuild
new file mode 100644
index 00000000000..54242f1311b
--- /dev/null
+++ b/dev-python/blosc/blosc-1.2.3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="High performance compressor optimized for binary data"
+HOMEPAGE="http://blosc.pydata.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=">=dev-libs/c-blosc-1.3.5"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # remove forced sse2
+ sed -i "s|CFLAGS\.append(\"-msse2\")|pass|" setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ nosetests -v || die
+}
diff --git a/dev-python/blosc/metadata.xml b/dev-python/blosc/metadata.xml
new file mode 100644
index 00000000000..be632b34fb6
--- /dev/null
+++ b/dev-python/blosc/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+ blosc is a high performance compressor optimized
+ for binary data. It has been designed to transmit data to the
+ processor cache faster than the traditional, non-compressed, direct
+ memory fetch approach via a memcpy() OS call.
+ Blosc works well for compressing numerical arrays that contains data
+ with relatively low entropy, like sparse data, time series, grids with
+ regular-spaced values, etc.
+ python-blosc a Python package that wraps Blosc.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">blosc</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/bluelet/Manifest b/dev-python/bluelet/Manifest
new file mode 100644
index 00000000000..ffdd1df610a
--- /dev/null
+++ b/dev-python/bluelet/Manifest
@@ -0,0 +1 @@
+DIST bluelet-0.2.0.tar.gz 14182 SHA256 4af029c8247be0b4852c8e92a745178882fa7fe5d4e669e1788184581fad3f01 SHA512 58bd8df4b61f23a53f9310b68e5754155c00d598c9bcb7724e90ef6722ee5d6017751c2e056eaaa64cca71b89c391d248c14477457f30ebf2b28841a3fdc98fa WHIRLPOOL b29994733f5d6735adc9e97a83bfa86d9ca56c39ef090003923dd7ed1bedc3528ca9dea80d86fd1e429dfec09f01b6f0bee2006377c7af03ce103ed68c374f7a
diff --git a/dev-python/bluelet/bluelet-0.2.0.ebuild b/dev-python/bluelet/bluelet-0.2.0.ebuild
new file mode 100644
index 00000000000..69eeda99452
--- /dev/null
+++ b/dev-python/bluelet/bluelet-0.2.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for pure Python asynchronous I/O using coroutines"
+HOMEPAGE="http://pypi.python.org/pypi/bluelet"
+SRC_URI="https://github.com/sampsyo/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ if use examples; then
+ docompress -x usr/share/doc/${P}/demo
+ dodoc -r demo/
+ fi
+}
diff --git a/dev-python/bluelet/metadata.xml b/dev-python/bluelet/metadata.xml
new file mode 100644
index 00000000000..fdb746fc31a
--- /dev/null
+++ b/dev-python/bluelet/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+Bluelet is a simple, pure-Python solution for writing intelligible asynchronous socket applications. It uses PEP 342 coroutines to make concurrent I/O look and act like sequential programming.
+
+In this way, it is similar to the Greenlet green-threads library and its associated packages Eventlet and Gevent. Bluelet has a simpler, 100% Python implementation that comes at the cost of flexibility and performance when compared to Greenlet-based solutions. However, it should be sufficient for many applications that don't need serious scalability; it can be thought of as a less-horrible alternative to asyncore or an asynchronous replacement for SocketServer (and more).
+ </longdescription>
+ <upstream>
+ <remote-id type="github">sampsyo/bluelet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/blz/Manifest b/dev-python/blz/Manifest
new file mode 100644
index 00000000000..9c21f3272b4
--- /dev/null
+++ b/dev-python/blz/Manifest
@@ -0,0 +1 @@
+DIST blz-0.6.2.tar.gz 370711 SHA256 8a019b77f8079706a3a6eb90248c5fe0572c2f4b1cf8c23468ea87b9ba58722b SHA512 d71d3175d92002e8101e58e637f5d1212a4ef6e305e1c9232dd766ed06c3d47da38482849aa0820a45db0e6b0c93849ad17d21537befa55ca11895e383cc89cc WHIRLPOOL e072a736b9fde448bea5a80f63ca848e25fb05d70f5b42df5c000fd61e2267c099402c95ba6980fb43b14b966330cf97023d053d3c127fbef8fbd34e33ac1b25
diff --git a/dev-python/blz/blz-0.6.2.ebuild b/dev-python/blz/blz-0.6.2.ebuild
new file mode 100644
index 00000000000..f57e6b047d1
--- /dev/null
+++ b/dev-python/blz/blz-0.6.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Chunked, compressed, Python data container for memory and disk"
+HOMEPAGE="http://blz.pydata.org/"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="
+ dev-libs/c-blosc
+ >=dev-python/numexpr-2.2[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ >=dev-python/cython-0.19[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+
+python_prepare_all() {
+ export BLOSC_DIR="${EPREFIX}/usr"
+ # remove forced sse2
+ sed -i "s|CFLAGS\.append(\"-msse2\")|pass|" setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c 'import blz; blz.test()' || die
+}
+
+python_install_all() {
+ # doc needs obsolete sphnxjp package
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/blz/metadata.xml b/dev-python/blz/metadata.xml
new file mode 100644
index 00000000000..eaebb3b02d2
--- /dev/null
+++ b/dev-python/blz/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ BLZ is a chunked container for numerical data. Chunking allows for
+ efficient enlarging/shrinking of data container. In addition, it can
+ also be compressed for reducing memory/disk needs. The compression
+ process is carried out internally by Blosc, a high-performance
+ compressor that is optimized for binary data.
+</longdescription>
+ <upstream>
+ <remote-id type="github">ContinuumIO/blz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bokeh/Manifest b/dev-python/bokeh/Manifest
new file mode 100644
index 00000000000..8a4393da971
--- /dev/null
+++ b/dev-python/bokeh/Manifest
@@ -0,0 +1 @@
+DIST bokeh-0.7.1.tar.gz 30039486 SHA256 167125e07df2ea1f65b1b6dfed140b7b6ed7452a1182ad4cb0be2580af537f73 SHA512 cf2ee6457cab7ca0a98c2cf19a7814e081245b30cf6f4f4670f8fc60b216bb39f14d3cdf52c92f85635cbf6419db00c0c01adb2e1a6eeaa019cdc767c642c160 WHIRLPOOL 23e66370f1cab2d3a3c40b0713e5cdb50afa7aeec1c2d1172a1d9a5598c004dd351509973ac84f24ebb30dbc5a86de455e1dfcbe00daf6a1d12c3e336122a2b8
diff --git a/dev-python/bokeh/bokeh-0.7.1.ebuild b/dev-python/bokeh/bokeh-0.7.1.ebuild
new file mode 100644
index 00000000000..06993090ae6
--- /dev/null
+++ b/dev-python/bokeh/bokeh-0.7.1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 readme.gentoo
+
+DESCRIPTION="Statistical and interactive HTML plots for Python"
+HOMEPAGE="http://bokeh.pydata.org/"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+# A doc build requires napoleon sphinx extension which will be included in sphinx release 1.3
+# Therefore refraining from adding the doc build for now
+RDEPEND="
+ >=dev-python/colorama-0.2.7[${PYTHON_USEDEP}]
+ >=dev-python/click-3.3[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/greenlet-0.4.1[${PYTHON_USEDEP}]
+ >=dev-python/itsdangerous-0.21[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.7[${PYTHON_USEDEP}]
+ >=dev-python/markdown-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/markupsafe-0.18[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7.1[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.11[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.6[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ >=dev-python/pystache-0.5.3[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013b[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-14.3.1[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.7.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/werkzeug-0.9.1[${PYTHON_USEDEP}]
+ >=net-libs/nodejs-0.8.28[npm]
+ >=www-client/phantomjs-1.9.8
+ >=www-servers/tornado-4.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/gevent-1.0[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep '>=dev-python/gevent-websocket-0.9.2[${PYTHON_USEDEP}]' python2_7)
+ "
+# testing server: needs websocket not in portage yet
+# websocket is in pypi for the adding
+# hdf5 backend: needs array management not in portage yet
+DEPEND="
+ test? (
+ ${RDEPEND}
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/colorama-0.2.7[${PYTHON_USEDEP}] )
+ "
+DOCS=( CHANGELOG QUICKSTART.md README.md )
+
+PATCHES=( "${FILESDIR}"/${P}-setup.patch )
+
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+python_prepare_all() {
+ DOC_CONTENTS="websockets work only with python2_7"
+
+ sed -i -e "s/jsbuild = get_user_jsargs()/jsbuild = False/g" setup.py || die
+ cd bokehjs || die
+ npm install ||die
+ cd .. || die
+ esetup.py --build_js sdist
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ readme.gentoo_create_doc
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ # exclude server tests for now
+ nosetests -v \
+ -e multiuser_auth_test \
+ -e usermodel_test \
+ || die
+}
diff --git a/dev-python/bokeh/files/bokeh-0.7.1-setup.patch b/dev-python/bokeh/files/bokeh-0.7.1-setup.patch
new file mode 100644
index 00000000000..39ea156cc3b
--- /dev/null
+++ b/dev-python/bokeh/files/bokeh-0.7.1-setup.patch
@@ -0,0 +1,17 @@
+Remove inappropriate check for a previous installation.
+
+Original patch for bokek 0.5.0 (0.5.0-setup.patch).
+Ported for bokeh 0.7.1 by Marius Brehler.
+
+http://bugs.gentoo.org/527336
+
+--- setup.py
++++ setup.py.new
+@@ -348,7 +348,6 @@ path = abspath(dirname(__file__))
+
+ print()
+ if 'develop' in sys.argv:
+- check_remove_bokeh_install(site_packages)
+ with open(path_file, "w+") as f:
+ f.write(path)
+ print("Installing Bokeh for development:")
diff --git a/dev-python/bokeh/metadata.xml b/dev-python/bokeh/metadata.xml
new file mode 100644
index 00000000000..e88bff66152
--- /dev/null
+++ b/dev-python/bokeh/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ Bokeh is a Python interactive visualization library for large
+ datasets that natively uses the latest web technologies. Its goal is
+ to provide elegant, concise construction of novel graphics in the
+ style of Protovis/D3, while delivering high-performance
+ interactivity over large data to thin clients.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">bokeh</remote-id>
+ <remote-id type="github">ContinuumIO/bokeh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/boto/Manifest b/dev-python/boto/Manifest
new file mode 100644
index 00000000000..c09f071fe68
--- /dev/null
+++ b/dev-python/boto/Manifest
@@ -0,0 +1,5 @@
+DIST boto-2.27.0.tar.gz 6789802 SHA256 5b20c6c22177c8048b4299bed7c357b6418932abd434c277c5b6050a18dc284b SHA512 56caf13c0e9ccfe13a36f986f69f4f5630c4ced7558adb9a982bad4cad63828a958fcf7406954a3311ab0b5654c9804739655a121f82e661f1dc3db065529e54 WHIRLPOOL 9404b92a33b20d376a14a57a64df9c71382a17d1bde51a9674c526f9d3f4c988b25fc493dfdb844bf664587d18e5a749774f21f35694d1d9983ae3d18b32f3d8
+DIST boto-2.31.1.tar.gz 7078455 SHA256 dadccbe69a9f8d858506bb9b14ff288fa91b81dec1fefd8867792324b8cb33f3 SHA512 473f8c83dfe73ee9d5a3cb694793b99543264a7ef3b54346d11a5136e8b26b40fb8b1d7c9a23deaf34fb962ddf90923c6399f7cc3c8d6a1f5aa492d9a070393c WHIRLPOOL 6ac0cf73c4216ef18cecf591c7108651f1e1636d6863c5f31378965e9f7453dc42b36de032bcdee7956ba98694e1e706ef086df6923782b6266b5f9e09a072a9
+DIST boto-2.34.0.tar.gz 7302242 SHA256 33baab022ecb803414ad0d6cf4041d010cfc2755ff8acc3bea7b32e77ba98be0 SHA512 5784ab3eb785784fa348f9f572d8e885d297d0e569f503229f0ae3aa66389699c9fe21cd1737e20a9683735dc4e7a765aa2345b013c75a3292ed5995f20699d2 WHIRLPOOL 33c42d3f012410e9f3acead7293073dfea3e97cffa93248d735a76266480ab912935d8300839ef742820f1ed1a093dbf5555c163bd8ee34cf28f09a62a01dff5
+DIST boto-2.35.1.tar.gz 1367029 SHA256 62604f0fdf68a2b9a6c6bd5111c82e10281b498695152d21f56c9e4a0691d45d SHA512 4be15cbb4ccc9f984fed11213ce1e64fefe7adbc747314dc0030928f2876b55322344f325228d95209e0411ef22fe1a3bede91ffbf3e9eed1a1a2d2507bff92d WHIRLPOOL 060f3e2483a3a5be26b67a2a94df2f88a9eccb3f62cc4020e26b7ac0111d30d938638641f4c83c71095602d5b79e365de6211f884b4adbeacf6d7187bb04d071
+DIST boto-2.38.0.tar.gz 1423863 SHA256 d9083f91e21df850c813b38358dc83df16d7f253180a1344ecfedce24213ecf2 SHA512 577672007348db846d041c0906806c62eb77653b1335645cc852c603f5d32991ca648aacb884676af02043914c91ab6f41666b36b5b1ae23a3a354bdf9f3f75a WHIRLPOOL de704484ed38a0d0322ef289fd0657b6d1141c0f77aa6725e338dd51d78bed39a7ef1ebdec54a659d83dae30c14196f2410507d9aeec070126bbe13565b210ba
diff --git a/dev-python/boto/boto-2.27.0.ebuild b/dev-python/boto/boto-2.27.0.ebuild
new file mode 100644
index 00000000000..817052415cd
--- /dev/null
+++ b/dev-python/boto/boto-2.27.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Amazon Web Services API"
+HOMEPAGE="https://github.com/boto/boto http://pypi.python.org/pypi/boto"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# requires Amazon Web Services keys to pass some tests
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/boto/boto-2.31.1.ebuild b/dev-python/boto/boto-2.31.1.ebuild
new file mode 100644
index 00000000000..22b83cbe8f0
--- /dev/null
+++ b/dev-python/boto/boto-2.31.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Amazon Web Services API"
+HOMEPAGE="https://github.com/boto/boto http://pypi.python.org/pypi/boto"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# requires Amazon Web Services keys to pass some tests
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/boto/boto-2.34.0.ebuild b/dev-python/boto/boto-2.34.0.ebuild
new file mode 100644
index 00000000000..22b83cbe8f0
--- /dev/null
+++ b/dev-python/boto/boto-2.34.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Amazon Web Services API"
+HOMEPAGE="https://github.com/boto/boto http://pypi.python.org/pypi/boto"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# requires Amazon Web Services keys to pass some tests
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/boto/boto-2.35.1.ebuild b/dev-python/boto/boto-2.35.1.ebuild
new file mode 100644
index 00000000000..7bcd75f73f5
--- /dev/null
+++ b/dev-python/boto/boto-2.35.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Amazon Web Services API"
+HOMEPAGE="https://github.com/boto/boto http://pypi.python.org/pypi/boto"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# requires Amazon Web Services keys to pass some tests
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" tests/test.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/boto/boto-2.38.0.ebuild b/dev-python/boto/boto-2.38.0.ebuild
new file mode 100644
index 00000000000..3bc86070a3c
--- /dev/null
+++ b/dev-python/boto/boto-2.38.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Amazon Web Services API"
+HOMEPAGE="https://github.com/boto/boto http://pypi.python.org/pypi/boto"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# requires Amazon Web Services keys to pass some tests
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" tests/test.py -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ # Appease the doc build and supply a file for _static
+ # the usual emake -C docs doesn't work under this authorship
+ cd docs && mkdir source/_static || die
+ emake html
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/boto/metadata.xml b/dev-python/boto/metadata.xml
new file mode 100644
index 00000000000..2ecc5820736
--- /dev/null
+++ b/dev-python/boto/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">boto</remote-id>
+ <remote-id type="pypi">boto</remote-id>
+ <remote-id type="github">boto/boto</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
new file mode 100644
index 00000000000..49c32669716
--- /dev/null
+++ b/dev-python/boto3/Manifest
@@ -0,0 +1 @@
+DIST boto3-1.1.1.tar.gz 137778 SHA256 02a99f270f58386dad6e260692b52f7038d52a9a84df29878528a573afecd88a SHA512 34019c8a3744775a952ae151b56747fc011fd4f28853e3d206f95bb8dd03746ad3d4086cd187d332930d543ca757d81bb732ccfd7cfd818aa8e75d73b1880be5 WHIRLPOOL 0032f5751df61bd71d60ea87ece0ce1be873a6fcd561d7600fcf62f1dd7b701963629368b46010b7a90719395adc652ca5059646af42510d72c05b7e3c5cf49e
diff --git a/dev-python/boto3/boto3-1.1.1.ebuild b/dev-python/boto3/boto3-1.1.1.ebuild
new file mode 100644
index 00000000000..2b98eeb21f6
--- /dev/null
+++ b/dev-python/boto3/boto3-1.1.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="https://github.com/boto/boto3"
+SRC_URI="https://github.com/boto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/botocore-1.1.0[${PYTHON_USEDEP}]
+ <dev-python/botocore-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.6.2[${PYTHON_USEDEP}]
+ <dev-python/jmespath-1.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '=dev-python/futures-2.2.0[${PYTHON_USEDEP}]' 'python2_7')
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/guzzle_sphinx_theme-0.7.10[${PYTHON_USEDEP}]
+ <dev-python/guzzle_sphinx_theme-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.3[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests tests/unit/ tests/functional/ || die "test failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/boto3/metadata.xml b/dev-python/boto3/metadata.xml
new file mode 100644
index 00000000000..d22785df0a6
--- /dev/null
+++ b/dev-python/boto3/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">boto/boto3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
new file mode 100644
index 00000000000..2790a5c355e
--- /dev/null
+++ b/dev-python/botocore/Manifest
@@ -0,0 +1,2 @@
+DIST botocore-1.1.3.tar.gz 1951206 SHA256 1cb1ed85a46090030bebda39487e31baa44effdee78b862d2b828ad7eb70181c SHA512 cd5d5c980a5fa4b7aa4da29dfd174c65f8d6e6aa584944154666287d9c1ce74eed177fceb2e26aa7600ed11a4f2e3f66889b8e65d4816d4887e042bb0ec877df WHIRLPOOL 70a4a4ebf7ce9fc5d1740a984700b9d28149a7d65d6fa72fd197d2bcc85f1621609ae06cc332a334a044be70b14c6f63071a5008a35b2a2d7ba361e112da3af3
+DIST botocore-1.1.5.tar.gz 1963111 SHA256 4aac2f5c46c37fac047e3f668692882c306963c679a69aacfc07e4c70d5ce70d SHA512 0d609ab8249a44e013296ec30fe6856d62e9453e9e1fa8e39e32b4768af8dffdb439c9b8249964d230090d483e36cfe94bf87b1261a991e3abc3b60b982c61b7 WHIRLPOOL 84f7ac82f03297bd196d0fb2fb77eb870b933ced252a9d56981ccbbd115243f94e17662203c4fce9d2a9aa700f0013754cc57b34db2f3312e4169e2eb801277a
diff --git a/dev-python/botocore/botocore-1.1.3.ebuild b/dev-python/botocore/botocore-1.1.3.ebuild
new file mode 100644
index 00000000000..a9e058563f4
--- /dev/null
+++ b/dev-python/botocore/botocore-1.1.3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Low-level, data-driven core of boto 3."
+HOMEPAGE="https://github.com/boto/botocore"
+SRC_URI="https://github.com/boto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/docutils-0.10[${PYTHON_USEDEP}]
+ ~dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ <dev-python/python-dateutil-3.0.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/guzzle_sphinx_theme-0.7.10[${PYTHON_USEDEP}]
+ <dev-python/guzzle_sphinx_theme-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.3[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests tests/unit || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/botocore/botocore-1.1.5.ebuild b/dev-python/botocore/botocore-1.1.5.ebuild
new file mode 100644
index 00000000000..a9e058563f4
--- /dev/null
+++ b/dev-python/botocore/botocore-1.1.5.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Low-level, data-driven core of boto 3."
+HOMEPAGE="https://github.com/boto/botocore"
+SRC_URI="https://github.com/boto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/docutils-0.10[${PYTHON_USEDEP}]
+ ~dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ <dev-python/python-dateutil-3.0.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/guzzle_sphinx_theme-0.7.10[${PYTHON_USEDEP}]
+ <dev-python/guzzle_sphinx_theme-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.3[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests tests/unit || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/botocore/metadata.xml b/dev-python/botocore/metadata.xml
new file mode 100644
index 00000000000..a82bafe4480
--- /dev/null
+++ b/dev-python/botocore/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">boto/botocore</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bottle/Manifest b/dev-python/bottle/Manifest
new file mode 100644
index 00000000000..37edbbdea79
--- /dev/null
+++ b/dev-python/bottle/Manifest
@@ -0,0 +1,2 @@
+DIST bottle-0.12.7.tar.gz 69375 SHA256 e3ea2191f06ca51af45bf6ca41ed2d1b2d809ceda0876466879fe205be7b2073 SHA512 ef58c0ec3b09b237914a170aae59a577a59e579478cd5f1bcef9fe73a9d3a4776794263d6f7b60dd426629aec2987ee4c3f6b8fa0486a99879792c70e373fcbc WHIRLPOOL dc6a34f9819ed77b0b05c01c13efe553af37fc9c32cfe955d6199277a8e38992a0e4982b8e67b0aab12349f15434d094ec7674a7970c71e264e72f3b74c617f0
+DIST bottle-0.12.8.tar.gz 69414 SHA256 cd5d1755a85e533205ed8a2465badf38602227c5f171c3852e07724b28c050ac SHA512 85fbdac6f7ae804a74bc527bb47bcdb5cf653a0227efe36e81e25513b687dd4abc1f772ff7232bd914cb392dea07297154d80aa05b1216c1f796dbed0d5a9510 WHIRLPOOL 833f434683f18511560973a9b0defeaa048ec21d0c60d30c69b11fc12f0ea4511a693a532d227b4ef419c99e664ba26384a95111950bf2ec1128a5509d8a0259
diff --git a/dev-python/bottle/bottle-0.12.7.ebuild b/dev-python/bottle/bottle-0.12.7.ebuild
new file mode 100644
index 00000000000..a2c658d2093
--- /dev/null
+++ b/dev-python/bottle/bottle-0.12.7.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="A fast and simple micro-framework for small web-applications"
+HOMEPAGE="http://pypi.python.org/pypi/bottle http://bottlepy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+python_prepare_all() {
+ sed -i -e '/scripts/d' setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+pkg_postinst() {
+ elog "Due to problems with bottle.py being in /usr/bin (see bug #474874)"
+ elog "we do as most other distros and do not install the script anymore."
+ elog "If you do want/have to call it directly rather than through your app,"
+ elog "please use the following instead:"
+ elog ' `python -m bottle`'
+}
diff --git a/dev-python/bottle/bottle-0.12.8.ebuild b/dev-python/bottle/bottle-0.12.8.ebuild
new file mode 100644
index 00000000000..41fdd1b03ae
--- /dev/null
+++ b/dev-python/bottle/bottle-0.12.8.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="A fast and simple micro-framework for small web-applications"
+HOMEPAGE="http://pypi.python.org/pypi/bottle http://bottlepy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+python_prepare_all() {
+ sed -i -e '/scripts/d' setup.py || die
+
+ # Remove test file requring connection to network
+ rm ./test/test_server.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # A few odd fails in the suite under pypy
+ # https://github.com/bottlepy/bottle/issues/714
+ "${PYTHON}" test/testall.py || die "tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ elog "Due to problems with bottle.py being in /usr/bin (see bug #474874)"
+ elog "we do as most other distros and do not install the script anymore."
+ elog "If you do want/have to call it directly rather than through your app,"
+ elog "please use the following instead:"
+ elog ' `python -m bottle`'
+}
diff --git a/dev-python/bottle/metadata.xml b/dev-python/bottle/metadata.xml
new file mode 100644
index 00000000000..cb9d5a27565
--- /dev/null
+++ b/dev-python/bottle/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">bottle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bottleneck/Manifest b/dev-python/bottleneck/Manifest
new file mode 100644
index 00000000000..1bf2766da7a
--- /dev/null
+++ b/dev-python/bottleneck/Manifest
@@ -0,0 +1,2 @@
+DIST Bottleneck-0.8.0.tar.gz 1634340 SHA256 f0a980510239f685ebaf4dbc8c9f0e55ac964312e0d11c551208c250d22cc64b SHA512 5b03ce2d0df9d177534d3f1fa02f147b12b23f5fbaa3b2685d1e8b86848c96c54832e0b0b6364479841742785c0b23bcccb51a0ac95675c72efc39693121dcaf WHIRLPOOL 873559617ad5114b953b9824da57bf7d393aa04372ad3c44307fecd875a076864d2509bed4b214372549db97a6c617f5471d1e723ff1a668a3240b7c6ed84a25
+DIST Bottleneck-1.0.0.tar.gz 363223 SHA256 8d9b7ad4fadf9648acc924a6ee522c7cb5b474e75faaad9d90dfd55e2805b495 SHA512 b3edeec0b4c2beeebb08eed8cb7aabb92f736e47c657f1fa580ec36d839941d3d1955209b2286fd9d41c4941b46b97a27049c51bcf5a098d27a19881f570d2d6 WHIRLPOOL f8f0d008b06a701f8c6b1690d5b74c180108d55ea9e8a467c62f76455eff2cf650be6ce676001a4bf7f18d650e1b238d437e5d9bbf60d5b4175af34997b8411d
diff --git a/dev-python/bottleneck/bottleneck-0.8.0.ebuild b/dev-python/bottleneck/bottleneck-0.8.0.ebuild
new file mode 100644
index 00000000000..08b21692969
--- /dev/null
+++ b/dev-python/bottleneck/bottleneck-0.8.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN="Bottleneck"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Fast NumPy array functions written in Cython"
+HOMEPAGE="http://berkeleyanalytics.com/bottleneck"
+SRC_URI="mirror://pypi/B/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_P}
+
+python_prepare_all() {
+ emake cfiles
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ ${PYTHON} -c "import bottleneck;bottleneck.test(extra_argv=['--verbosity=3'])" || die
+}
diff --git a/dev-python/bottleneck/bottleneck-1.0.0.ebuild b/dev-python/bottleneck/bottleneck-1.0.0.ebuild
new file mode 100644
index 00000000000..4724dc048d5
--- /dev/null
+++ b/dev-python/bottleneck/bottleneck-1.0.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN="Bottleneck"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Fast NumPy array functions written in Cython"
+HOMEPAGE="http://berkeleyanalytics.com/bottleneck"
+SRC_URI="mirror://pypi/B/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/numpy-1.9.1[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_P}
+
+python_prepare_all() {
+ emake PYTHONPATH=. pyx
+ emake cfiles
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ ${PYTHON} -c "import bottleneck;bottleneck.test(extra_argv=['--verbosity=3'])" || die
+}
diff --git a/dev-python/bottleneck/metadata.xml b/dev-python/bottleneck/metadata.xml
new file mode 100644
index 00000000000..2980dc20cf9
--- /dev/null
+++ b/dev-python/bottleneck/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-mathematics</herd>
+ <longdescription>
+ Bottleneck is a collection of fast NumPy array functions written in
+ Cython.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">Bottleneck</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bpython/Manifest b/dev-python/bpython/Manifest
new file mode 100644
index 00000000000..998118b0b5f
--- /dev/null
+++ b/dev-python/bpython/Manifest
@@ -0,0 +1,5 @@
+DIST bpython-0.13.1.tar.gz 156558 SHA256 ee208a60a54f902a8c827f4a80fda8a6235790d59cc1fc089943df50936accae SHA512 cb3f1e8d8df5eb9978956b3503ef98b1c39e80704792281be7e560ec0d648aefa6d979ab45a642ec369fc252e7fde399013aa1a4154ceb73465bc3d95bea4b19 WHIRLPOOL a5d00b92507d1970de95f20ee54723774432687b1f11637f3aa75f9e8979e93015034f37253bd947100436f8400cdbe2ba523b6517a7ba265950b3f20dc6f9db
+DIST bpython-0.13.2.tar.gz 158551 SHA256 a1870a78e44ed6ef54aa906c58234cb0d12011f2e9a49dc29bd5d9423abfbde2 SHA512 6bf74c9618bf92fc6ca23c9020b17219c64b16f159773624b67f87875c962857bde2dd4b03da621da7c8d50622739f95a880638c7c536f5f0dbf510c71f5a874 WHIRLPOOL 71da7518100bd73868ab53e1d13cb8831b0f6629713b993729948f38df52262537b8605f9304ff0edeca5e4f4d3435677c61e84b2d6fc54b2d66df74e756318c
+DIST bpython-0.14.1.tar.gz 184850 SHA256 d96224d55ffb99ef9d2565e9b18202080b3659408fcce2594c9ec7bde65d8eb1 SHA512 6583d74cae29244ceefcbb2aaf24e789dafd63f9295e3e848f9e298b958d4a344c606051a9efd7f5a728d3ad1b9e58d011931d14f7e60e7c1fbd8b38a2dd1b09 WHIRLPOOL f52e7660054af1547452d777801a79e028378ed1d2f3fdfd3a36e9e5a9154d8389a5eb37e108abef06eb178340be234dacc2b87567bcc37797d3f519b4ea6644
+DIST bpython-0.14.2.tar.gz 184808 SHA256 d1f03c9b64a67219ef41aec258c95f192ade5fd187d48fe61b15c1f1d707e302 SHA512 aa6fb8a6fe08746c31783308423400bf2482c6401fc03a1cf1e95592b83946b49eb8df29ac274d0711e01e7b2dcad37c00a609b3b600c31774563d0638d67159 WHIRLPOOL fe6847da5bb0b5b72f9230d175dbe0812a010281bf6a022f87196f71426a37d116a3bf9292cdd20fcd465e56d9b7c3d975028d2bb3a07afacc5c87f3b4b3d0f6
+DIST bpython-0.14.tar.gz 184430 SHA256 f7c9fc80fc5a4eb6a345a67815e31957c0c65c1bbdfc68cf99267cdc81a3d35b SHA512 1c43af30902ac01385a4f9d0af1f7531f190dea9ee0d43725d5a23d881874184beca1df9fc8f94f21110d99ca07a851861c56976199e9306515e2b00ca07f1f7 WHIRLPOOL 21dc44b48a0fb31d0c125fc203f90fe7750e81599353a51c215672ed82218fc3b4f544cdb530d6447d099e4eaa5983ad52b8f48e1e83bcf4799dad190af797eb
diff --git a/dev-python/bpython/bpython-0.13.1.ebuild b/dev-python/bpython/bpython-0.13.1.ebuild
new file mode 100644
index 00000000000..bbf09b6c3b1
--- /dev/null
+++ b/dev-python/bpython/bpython-0.13.1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1
+
+DESCRIPTION="Syntax highlighting and autocompletion for the Python interpreter"
+HOMEPAGE="http://www.bpython-interpreter.org/ https://bitbucket.org/bobf/bpython/ http://pypi.python.org/pypi/bpython"
+SRC_URI="http://www.bpython-interpreter.org/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gtk test"
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ gtk? ( dev-python/pygobject:2[$(python_gen_usedep python2_7)]
+ dev-python/pygtk[$(python_gen_usedep python2_7)] )
+ dev-python/urwid[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+DOCS=( AUTHORS CHANGELOG TODO sample-config sample.theme light.theme )
+
+PATCHES=( "${FILESDIR}"/${PN}-desktop.patch
+ "${FILESDIR}"/${PN}-0.13-test_repl.patch )
+
+# Req'd for clean build by each impl
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/sphinx/source/ \
+ doc/sphinx/source/ doc/sphinx/source/html || die "docs build failed"
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if ! use gtk; then
+ rm -f "${D}"usr/bin/bpython-gtk*
+ # delete_unneeded_modules() {
+ rm -f "${D}$(python_get_sitedir)/bpython/gtk_.py"
+ fi
+}
+
+python_test() {
+ pushd build/lib > /dev/null
+ # https://bitbucket.org/bobf/bpython/issue/289/test-failures-in-latest-release-py27-py33
+ sed -e s':test_enter:_&:' -i bpython/test/test_repl.py || die
+
+ "${PYTHON}" -m unittest discover || die
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/sphinx/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bpython/bpython-0.13.2.ebuild b/dev-python/bpython/bpython-0.13.2.ebuild
new file mode 100644
index 00000000000..92ce5e8fc05
--- /dev/null
+++ b/dev-python/bpython/bpython-0.13.2.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1
+
+DESCRIPTION="Syntax highlighting and autocompletion for the Python interpreter"
+HOMEPAGE="http://www.bpython-interpreter.org/ https://bitbucket.org/bobf/bpython/ http://pypi.python.org/pypi/bpython"
+SRC_URI="http://www.bpython-interpreter.org/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc gtk test"
+
+RDEPEND="dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ gtk? ( dev-python/pygobject:2[$(python_gen_usedep python2_7)]
+ dev-python/pygtk[$(python_gen_usedep python2_7)] )
+ dev-python/urwid[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+DOCS=( AUTHORS CHANGELOG TODO sample-config sample.theme light.theme )
+
+PATCHES=( "${FILESDIR}"/${PN}-desktop.patch )
+
+# Req'd for clean build by each impl
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/sphinx/source/ \
+ doc/sphinx/source/ doc/sphinx/source/html || die "docs build failed"
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if ! use gtk; then
+ rm -f "${D}"usr/bin/bpython-gtk*
+ # delete_unneeded_modules() {
+ rm -f "${D}$(python_get_sitedir)/bpython/gtk_.py"
+ fi
+}
+
+python_test() {
+ pushd build/lib > /dev/null
+ # https://bitbucket.org/bobf/bpython/issue/289/test-failures-in-latest-release-py27-py33
+ sed -e s':test_enter:_&:' -i bpython/test/test_repl.py || die
+
+ "${PYTHON}" -m unittest discover || die
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/sphinx/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bpython/bpython-0.14.1.ebuild b/dev-python/bpython/bpython-0.14.1.ebuild
new file mode 100644
index 00000000000..9c4fe976216
--- /dev/null
+++ b/dev-python/bpython/bpython-0.14.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1
+
+DESCRIPTION="Syntax highlighting and autocompletion for the Python interpreter"
+HOMEPAGE="http://www.bpython-interpreter.org/ https://bitbucket.org/bobf/bpython/ http://pypi.python.org/pypi/bpython"
+SRC_URI="
+ http://www.bpython-interpreter.org/releases/${P}.tar.gz
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ "
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/curtsies-0.1.18[${PYTHON_USEDEP}]
+ <dev-python/curtsies-0.2.0[${PYTHON_USEDEP}]
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ dev-python/jedi[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5[${PYTHON_USEDEP}]
+ dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/watchdog[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+DOCS=( AUTHORS CHANGELOG sample.theme light.theme )
+
+# Req'd for clean build by each impl
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/sphinx/source/ \
+ doc/sphinx/source/ doc/sphinx/source/html || die "docs build failed"
+ fi
+}
+
+python_test() {
+ pushd build/lib > /dev/null
+ "${PYTHON}" -m unittest discover || die
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/sphinx/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bpython/bpython-0.14.2.ebuild b/dev-python/bpython/bpython-0.14.2.ebuild
new file mode 100644
index 00000000000..9c4fe976216
--- /dev/null
+++ b/dev-python/bpython/bpython-0.14.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1
+
+DESCRIPTION="Syntax highlighting and autocompletion for the Python interpreter"
+HOMEPAGE="http://www.bpython-interpreter.org/ https://bitbucket.org/bobf/bpython/ http://pypi.python.org/pypi/bpython"
+SRC_URI="
+ http://www.bpython-interpreter.org/releases/${P}.tar.gz
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ "
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/curtsies-0.1.18[${PYTHON_USEDEP}]
+ <dev-python/curtsies-0.2.0[${PYTHON_USEDEP}]
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ dev-python/jedi[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5[${PYTHON_USEDEP}]
+ dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/watchdog[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+DOCS=( AUTHORS CHANGELOG sample.theme light.theme )
+
+# Req'd for clean build by each impl
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/sphinx/source/ \
+ doc/sphinx/source/ doc/sphinx/source/html || die "docs build failed"
+ fi
+}
+
+python_test() {
+ pushd build/lib > /dev/null
+ "${PYTHON}" -m unittest discover || die
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/sphinx/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bpython/bpython-0.14.ebuild b/dev-python/bpython/bpython-0.14.ebuild
new file mode 100644
index 00000000000..f626c76f173
--- /dev/null
+++ b/dev-python/bpython/bpython-0.14.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1
+
+DESCRIPTION="Syntax highlighting and autocompletion for the Python interpreter"
+HOMEPAGE="http://www.bpython-interpreter.org/ https://bitbucket.org/bobf/bpython/ http://pypi.python.org/pypi/bpython"
+SRC_URI="
+ http://www.bpython-interpreter.org/releases/${P}.tar.gz
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ "
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/curtsies[${PYTHON_USEDEP}]
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ dev-python/jedi[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/watchdog[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+DOCS=( AUTHORS CHANGELOG sample.theme light.theme )
+
+# Upstream patch
+# https://github.com/bpython/bpython/commit/43e70389badc48be2986a606f8f7b3f2aa29d59b
+PATCHES=( "${FILESDIR}"/${P}.patch )
+
+# Req'd for clean build by each impl
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/sphinx/source/ \
+ doc/sphinx/source/ doc/sphinx/source/html || die "docs build failed"
+ fi
+}
+
+python_test() {
+ pushd build/lib > /dev/null
+ "${PYTHON}" -m unittest discover || die
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/sphinx/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bpython/files/bpython-0.13-test_repl.patch b/dev-python/bpython/files/bpython-0.13-test_repl.patch
new file mode 100644
index 00000000000..b71cfbea344
--- /dev/null
+++ b/dev-python/bpython/files/bpython-0.13-test_repl.patch
@@ -0,0 +1,34 @@
+https://bitbucket.org/thomasballinger/bpython-for-clean-patch/commits/94c4664c1303
+# HG changeset patch
+# User Thomas Ballinger <thomasballinger@gmail.com>
+# Date 1404088731 14400
+# Branch 0.13-bugfix
+# Node ID 94c4664c130303b1ae53629d6ebcff04f5d5d7ae
+# Parent 106c49981f5e2db325d543d24c063f9c38013023
+simplest possible fix for test that changes in py3.3
+
+diff --git a/bpython/test/test_repl.py b/bpython/test/test_repl.py
+--- a/bpython/test/test_repl.py
++++ b/bpython/test/test_repl.py
+@@ -1,4 +1,5 @@
+ import os
++import sys
+ import unittest
+ from itertools import islice
+ from mock import Mock
+@@ -280,8 +281,12 @@
+
+ self.assertTrue(self.repl.complete())
+ self.assertTrue(hasattr(self.repl.completer,'matches'))
+- self.assertEqual(self.repl.completer.matches,
+- ['UnboundLocalError(', '__doc__'])
++ if sys.version_info[0] == 3 and sys.version_info[1] >= 3:
++ self.assertEqual(self.repl.completer.matches,
++ ['ChildProcessError(', 'UnboundLocalError(', '__doc__'])
++ else:
++ self.assertEqual(self.repl.completer.matches,
++ ['UnboundLocalError(', '__doc__'])
+
+ # 2. Attribute tests
+ def test_simple_attribute_complete(self):
+
diff --git a/dev-python/bpython/files/bpython-0.14.patch b/dev-python/bpython/files/bpython-0.14.patch
new file mode 100644
index 00000000000..00b8e5a420d
--- /dev/null
+++ b/dev-python/bpython/files/bpython-0.14.patch
@@ -0,0 +1,14 @@
+diff -r -U2 bpython-0.14.orig/bpython/curtsiesfrontend/repl.py bpython-0.14/bpython/curtsiesfrontend/repl.py
+--- bpython-0.14.orig/bpython/curtsiesfrontend/repl.py 2015-02-17 05:07:38.000000000 +0600
++++ bpython-0.14/bpython/curtsiesfrontend/repl.py 2015-02-19 00:09:13.758932344 +0600
+@@ -420,7 +420,9 @@
+ # for reading modules if they fail to load
+ old_module_locations = {}
++ default_level = 0 if py3 else -1
+
+ @functools.wraps(self.orig_import)
+- def new_import(name, globals={}, locals={}, fromlist=[], level=-1):
++ def new_import(name, globals={}, locals={}, fromlist=[],
++ level=default_level):
+ try:
+ m = self.orig_import(name, globals=globals, locals=locals,
diff --git a/dev-python/bpython/files/bpython-desktop.patch b/dev-python/bpython/files/bpython-desktop.patch
new file mode 100644
index 00000000000..8598679089c
--- /dev/null
+++ b/dev-python/bpython/files/bpython-desktop.patch
@@ -0,0 +1,8 @@
+diff -r -U1 bpython-0.11.orig/data/bpython.desktop bpython-0.11/data/bpython.desktop
+--- bpython-0.11.orig/data/bpython.desktop 2012-04-05 04:06:42.000000000 +0700
++++ bpython-0.11/data/bpython.desktop 2012-11-15 17:20:09.000000000 +0700
+@@ -7,3 +7,3 @@
+ Type=Application
+-Categories=Development;Utility;ConsoleOnly;
++Categories=Development;ConsoleOnly;
+ StartupNotify=true
diff --git a/dev-python/bpython/metadata.xml b/dev-python/bpython/metadata.xml
new file mode 100644
index 00000000000..346bda3eed2
--- /dev/null
+++ b/dev-python/bpython/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>Syntax highlighting and autocompletion
+ for the python interpreter
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">bpython</remote-id>
+ <remote-id type="bitbucket">bobf/bpython</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bsddb3/Manifest b/dev-python/bsddb3/Manifest
new file mode 100644
index 00000000000..4eb863132f3
--- /dev/null
+++ b/dev-python/bsddb3/Manifest
@@ -0,0 +1,2 @@
+DIST bsddb3-6.0.1.tar.gz 347002 SHA256 abc34d83d6cbb40f1626ecc2b62e8163ba204f4bb6a65c23b125a171d224bf6d SHA512 14a35a4933f83f11267072956e0061053918974d556899ea7670e2e52f7fbf9cb9f64e1810323b60a63ece0576a6d2b1a2743adf2c06f7f1debba8dcc0f0b8da WHIRLPOOL a4441dd6ba6c2de6bacfe5584395059614087c6b8c01c61290bdba7e2a75d5ee7abed349f7519439828a5dafd48da46c91b98caed1b0fffe16c9201c79af0d71
+DIST bsddb3-6.1.0.tar.gz 340966 SHA256 b13163e3891c32390aea66edcf7880eb245abc89199a766b7b1907fc5c1efd15 SHA512 2c84f8fd8c5bcced843ea7f1f54511cc4845a75ac182b4f832b92800c4f230906bf5919cb7d10938e79272f0fe89a5ed9b3f90c02bf11ac651126e6982dcc0ff WHIRLPOOL b27e1c024705f64eb0cffd0bf87932af4dd9f3eb5bdbce40d2d6a250cd101be55ebf1f76c17ac6c40de9e28e0c84b9bfafd0c62d7c1950782eef8fa1137ebb3b
diff --git a/dev-python/bsddb3/bsddb3-6.0.1.ebuild b/dev-python/bsddb3/bsddb3-6.0.1.ebuild
new file mode 100644
index 00000000000..fdf24ffc073
--- /dev/null
+++ b/dev-python/bsddb3/bsddb3-6.0.1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit db-use distutils-r1 multilib
+
+DESCRIPTION="Python bindings for Berkeley DB"
+HOMEPAGE="http://www.jcea.es/programacion/pybsddb.htm http://pypi.python.org/pypi/bsddb3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND=">=sys-libs/db-4.8.30
+ <sys-libs/db-6.1"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+src_prepare() {
+ # This list should be kept in sync with setup.py.
+ for DB_VER in 6.0 5.3 5.2 5.1 5.0 4.8; do
+ has_version "sys-libs/db:${DB_VER}" && break
+ done
+
+ # Force version.
+ sed -e "s/db_ver = None/db_ver = (${DB_VER%.*}, ${DB_VER#*.})/" \
+ -e "s/dblib = 'db'/dblib = '$(db_libname ${DB_VER})'/" \
+ -i setup2.py setup3.py || die
+
+ # Adjust test.py to look in build/lib.
+ sed -e "s/'lib.%s' % PLAT_SPEC/'lib'/" \
+ -i test2.py test3.py || die
+
+ distutils-r1_src_prepare
+}
+
+src_configure() {
+ # These are needed for both build and install.
+ export BERKELEYDB_DIR="${EPREFIX}/usr"
+ export BERKELEYDB_INCDIR="$(db_includedir)"
+ export BERKELEYDB_LIBDIR="${EPREFIX}/usr/$(get_libdir)"
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ "${PYTHON}" test.py -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bsddb3/bsddb3-6.1.0.ebuild b/dev-python/bsddb3/bsddb3-6.1.0.ebuild
new file mode 100644
index 00000000000..54195b18021
--- /dev/null
+++ b/dev-python/bsddb3/bsddb3-6.1.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit db-use distutils-r1 multilib
+
+DESCRIPTION="Python bindings for Berkeley DB"
+HOMEPAGE="http://www.jcea.es/programacion/pybsddb.htm http://pypi.python.org/pypi/bsddb3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="
+ >=sys-libs/db-4.7
+ <sys-libs/db-6.2:=
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+src_prepare() {
+ # This list should be kept in sync with setup.py.
+ if [[ -z ${DB_VER} ]]; then
+ for DB_VER in 6.1 6.0 5.3 5.2 5.1 5.0 4.8 4.7; do
+ has_version "sys-libs/db:${DB_VER}" && break
+ done
+ fi
+
+ # Force version.
+ sed -e "s/db_ver = None/db_ver = (${DB_VER%.*}, ${DB_VER#*.})/" \
+ -e "s/dblib = 'db'/dblib = '$(db_libname ${DB_VER})'/" \
+ -i setup2.py setup3.py || die
+
+ # Adjust test.py to look in build/lib.
+ sed -e "s/'lib.%s' % PLAT_SPEC/'lib'/" \
+ -i test2.py test3.py || die
+
+ distutils-r1_src_prepare
+}
+
+src_configure() {
+ # These are needed for both build and install.
+ export BERKELEYDB_DIR="${EPREFIX}/usr"
+ export BERKELEYDB_INCDIR="$(db_includedir ${DB_VER})"
+ export BERKELEYDB_LIBDIR="${EPREFIX}/usr/$(get_libdir)"
+ export YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION=1
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ if python_is_python3; then
+ PYTHONPATH=Lib3 "${PYTHON}" test3.py -v || die "Testing failed with ${EPYTHON}"
+ else
+ PYTHONPATH=Lib "${PYTHON}" test.py -v || die "Testing failed with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bsddb3/metadata.xml b/dev-python/bsddb3/metadata.xml
new file mode 100644
index 00000000000..07d7984e12b
--- /dev/null
+++ b/dev-python/bsddb3/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">bsddb3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/buildutils/Manifest b/dev-python/buildutils/Manifest
new file mode 100644
index 00000000000..e21840e2b89
--- /dev/null
+++ b/dev-python/buildutils/Manifest
@@ -0,0 +1 @@
+DIST buildutils-0.3.tar.gz 47868 SHA256 8f9921cf145a1879986b4028db0af4f028f65fe6eae29936490174037ba7dfc5 SHA512 63e3c0e9737672abcb7f9b10909df69f93eb801eeb829f840aaabc37428fc640ed7df4232283f933e5f0bb80b0195624b1ba69aeba1b01b7a61250bf6e6b6421 WHIRLPOOL b2ee8a3e1b70e82a563edd01b0d175c8c5670183ef4a0bbe207c6fd1a0bfdaf5797d30b57a6729a4ea61a5e3a2c88b5f859461439be69f2fe9ac9a91470b4a71
diff --git a/dev-python/buildutils/buildutils-0.3-r1.ebuild b/dev-python/buildutils/buildutils-0.3-r1.ebuild
new file mode 100644
index 00000000000..bf9377ba429
--- /dev/null
+++ b/dev-python/buildutils/buildutils-0.3-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions for developing Python libraries and applications"
+HOMEPAGE="http://buildutils.lesscode.org http://pypi.python.org/pypi/buildutils"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/pudge[$(python_gen_usedep python{2_6,2_7})] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_prepare_all() {
+ # Enable pudge command.
+ epatch "${FILESDIR}/${P}-pudge_addcommand.patch"
+ sed -e "s/buildutils.command.publish/buildutils.publish_command.publish/" \
+ -i buildutils/test/test_publish.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ # ensure docs are built with py2
+ if "${PYTHON}" -c "import pudge"; then
+ "${PYTHON}" setup.py pudge || die "Generation of documentation failed"
+ else
+ die "Generation of documentation failed"
+ fi
+ fi
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/buildutils/files/buildutils-0.3-pudge_addcommand.patch b/dev-python/buildutils/files/buildutils-0.3-pudge_addcommand.patch
new file mode 100644
index 00000000000..a9cadcaa42b
--- /dev/null
+++ b/dev-python/buildutils/files/buildutils-0.3-pudge_addcommand.patch
@@ -0,0 +1,12 @@
+--- setup.cfg 2008-04-05 17:18:24.000000000 +0300
++++ setup.cfg 2008-04-05 17:18:46.000000000 +0300
+@@ -1,6 +1,9 @@
+ [checksum]
+ sign = 1
+
++[global]
++command_packages = buildutils.pudge_command
++
+ [egg_info]
+ tag_build =
+ tag_date = 0
diff --git a/dev-python/buildutils/metadata.xml b/dev-python/buildutils/metadata.xml
new file mode 100644
index 00000000000..cb9268c07fe
--- /dev/null
+++ b/dev-python/buildutils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">buildutils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/buzhug/Manifest b/dev-python/buzhug/Manifest
new file mode 100644
index 00000000000..25c1466f6dd
--- /dev/null
+++ b/dev-python/buzhug/Manifest
@@ -0,0 +1 @@
+DIST buzhug-1.8.zip 26529 SHA256 0f8453de32424abd2e0dea963a1d0adc7ec893c6c1311887d3ce87231a8e62a7 SHA512 e2354980f175485223b68ca0afee4ec07505a6f7f874e16e04b99b91e19930acda6005834dbf8c2ee318d357716f3fa7c8a0db3c15fc17ffd7c880a4c378ab66 WHIRLPOOL cd491baa3c9c5d6239417d93a24caccb063e42036d5f179e4d3faf400f218ccef2d661ca2944466ddf1dc8fb48f2e864c813b0ce0b5985a981ec805fd61235eb
diff --git a/dev-python/buzhug/buzhug-1.8-r1.ebuild b/dev-python/buzhug/buzhug-1.8-r1.ebuild
new file mode 100644
index 00000000000..8607d26d89c
--- /dev/null
+++ b/dev-python/buzhug/buzhug-1.8-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast, pure-Python database engine, using a syntax that Python programmers should find very intuitive"
+HOMEPAGE="http://buzhug.sourceforge.net/ http://pypi.python.org/pypi/buzhug"
+SRC_URI="mirror://sourceforge/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="app-arch/unzip
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/buzhug/metadata.xml b/dev-python/buzhug/metadata.xml
new file mode 100644
index 00000000000..82621534791
--- /dev/null
+++ b/dev-python/buzhug/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">buzhug</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/bytecodeassembler/Manifest b/dev-python/bytecodeassembler/Manifest
new file mode 100644
index 00000000000..66bdc9d8c89
--- /dev/null
+++ b/dev-python/bytecodeassembler/Manifest
@@ -0,0 +1 @@
+DIST bytecodeassembler-0.6.zip 52734 SHA256 05d56f7ed3eb7c85912380c31bfe3622063176418d63d5bbd74ce99e5456ae0f SHA512 95f90a1b6e1a307d8754eea301ae187783460fa8df3163f26253b8ebec16b31a8899a1d27c13158c5cb97763c7057f83b1dc1f642b5e2e9e5b844837a5208363 WHIRLPOOL 8d41029dc6a8aecfbe2faec72a3e0e70a279a96d5994a658e9d1a8514f8edf8987cad2a32b80d414d5b09c090e74b2ab1e36ce4e03f0f66cb664466b83a71b0e
diff --git a/dev-python/bytecodeassembler/bytecodeassembler-0.6.ebuild b/dev-python/bytecodeassembler/bytecodeassembler-0.6.ebuild
new file mode 100644
index 00000000000..afc9705b25e
--- /dev/null
+++ b/dev-python/bytecodeassembler/bytecodeassembler-0.6.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="BytecodeAssembler"
+
+DESCRIPTION="Generate Python code objects by "assembling" bytecode"
+HOMEPAGE="http://pypi.python.org/pypi//BytecodeAssembler"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip -> ${P}.zip"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+LICENSE="Apache-2.0"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="app-arch/unzip
+ >=dev-python/symboltype-1.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_PN}-${PV}
+
+python_test() {
+ "${PYTHON}" test_assembler.py && einfo "Tests passed under ${EPYTHON}" \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/bytecodeassembler/metadata.xml b/dev-python/bytecodeassembler/metadata.xml
new file mode 100644
index 00000000000..940caaebe74
--- /dev/null
+++ b/dev-python/bytecodeassembler/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">BytecodeAssembler</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cached-property/Manifest b/dev-python/cached-property/Manifest
new file mode 100644
index 00000000000..983bd127463
--- /dev/null
+++ b/dev-python/cached-property/Manifest
@@ -0,0 +1,3 @@
+DIST cached-property-0.1.5.tar.gz 7434 SHA256 2d07bd19af2ba5eb1d3c042e2b81c2cd02dc5b0890253cb14ae10f1d34f7f86b SHA512 f5a01e64eed78cc3377bd053b0662dc4f904db7c1ea47b155e1613e6ed413fb6693e4893916518f9e53589373ebe099724d296306a9854d8d8df66b62ed9ce1b WHIRLPOOL cd5faae8024124ddd50f77fd6ee6dd6599756c7e5509d73ebcf4dea2867b066f61c40cc7f9be3144ff3295cd590f3b35925e586f1d9bbf97f40a0416ea7a5f8d
+DIST cached-property-1.0.0.tar.gz 8210 SHA256 041a60a616d59b13026c98b8e1f2b82b7f4ea049bcff44a86d4a0253ba1e2768 SHA512 771615418853d3a2a24567fa3f6dc931a02d0013abd38c26a2822cc0ab3228972e7f03e51a69478defc617491f81b76040d34a0e6683719b09b485c85196d948 WHIRLPOOL d557cadfa246a62feebac8eb81eed52d5087d38ccb0528a37492a4b83fe93278df458589cadab4238527c421e270d841c971e40c2a4ff25d8cf875f709799922
+DIST cached-property-1.2.0.tar.gz 9162 SHA256 e3081a8182d3d4b7283eeade76c382bcfd4dfd644ca800598229c2ef798abb53 SHA512 0d05bad187d30b4354d8fa93d181d753c6e27e43a84891bd3bcc1c1449fe6d57d7fc1eecdbdc097f8c25e4cfa331811db5a6e23f77891848edc2817162259cd6 WHIRLPOOL 21667352edb4a763cabfbdc73dec7d6d464632207eb960eb5fa80b97b93aa964e09ba01bb226465ef6edc2737757ee57369fe0048520a22d5f91d5267baf436f
diff --git a/dev-python/cached-property/cached-property-0.1.5.ebuild b/dev-python/cached-property/cached-property-0.1.5.ebuild
new file mode 100644
index 00000000000..34ed01bd373
--- /dev/null
+++ b/dev-python/cached-property/cached-property-0.1.5.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A cached-property for decorating methods in classes"
+HOMEPAGE="https://github.com/pydanny/cached-property"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest )"
+RDEPEND=""
+
+src_install() {
+ distutils-r1_src_install
+ dodoc README.rst HISTORY.rst CONTRIBUTING.rst AUTHORS.rst
+}
+
+python_test() {
+ py.test || die
+}
diff --git a/dev-python/cached-property/cached-property-1.0.0.ebuild b/dev-python/cached-property/cached-property-1.0.0.ebuild
new file mode 100644
index 00000000000..34ed01bd373
--- /dev/null
+++ b/dev-python/cached-property/cached-property-1.0.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A cached-property for decorating methods in classes"
+HOMEPAGE="https://github.com/pydanny/cached-property"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest )"
+RDEPEND=""
+
+src_install() {
+ distutils-r1_src_install
+ dodoc README.rst HISTORY.rst CONTRIBUTING.rst AUTHORS.rst
+}
+
+python_test() {
+ py.test || die
+}
diff --git a/dev-python/cached-property/cached-property-1.2.0.ebuild b/dev-python/cached-property/cached-property-1.2.0.ebuild
new file mode 100644
index 00000000000..34ed01bd373
--- /dev/null
+++ b/dev-python/cached-property/cached-property-1.2.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A cached-property for decorating methods in classes"
+HOMEPAGE="https://github.com/pydanny/cached-property"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest )"
+RDEPEND=""
+
+src_install() {
+ distutils-r1_src_install
+ dodoc README.rst HISTORY.rst CONTRIBUTING.rst AUTHORS.rst
+}
+
+python_test() {
+ py.test || die
+}
diff --git a/dev-python/cached-property/metadata.xml b/dev-python/cached-property/metadata.xml
new file mode 100644
index 00000000000..44c8701a7e9
--- /dev/null
+++ b/dev-python/cached-property/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>cedk@gentoo.org</email>
+ <name>Cédric Krier</name>
+ </maintainer>
+ <longdescription lang="en">
+ A cached-property for decorating methods in classes.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">cached-property</remote-id>
+ <remote-id type="github">pydanny/cached-property</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cairocffi/Manifest b/dev-python/cairocffi/Manifest
new file mode 100644
index 00000000000..6dfbfecf6ae
--- /dev/null
+++ b/dev-python/cairocffi/Manifest
@@ -0,0 +1,5 @@
+DIST cairocffi-0.5.3.tar.gz 71140 SHA256 b1030159372b0c961a87bed4b5479807ba798d6d2c25e4e34d9660e2046ca98e SHA512 defbecaa00675a03cbe96e327dee24885bfb387e23dc175db2fd146d628dd6286003a4e19abf37014269dbb292f1f55edb397ca469ca30c5ffd521dddd3061d1 WHIRLPOOL 134f14185504e6ab5ec54d1c9e1b27e8271c011e08516d51e10b34e906a7c7175ee04dc807269723c3a30aef26547dee6bc67e94033cc5ad8a8444f8c28f153b
+DIST cairocffi-0.5.4.tar.gz 71232 SHA256 f1dc2b6e4638aee4015649eb5379ee745211fc4bd703626df255cb8439e716ff SHA512 f602b03dad04bce8e756f1fd82c05970b944ed1cfadd7012c44ad4426fb94f100ee8df0a1324c9c0b6b17f1dffb02c824ad9ce1ba31b3cf3eaeba0bf86da855f WHIRLPOOL ea9ec065c7a47fd1352b9d71edbfdc45eb0dcbf409c1326e32fd91b54a3dae13067d15b020b75eee7ac5db8cf37d5b2268e3493cb3218adf72dc0051840bea29
+DIST cairocffi-0.6.tar.gz 75183 SHA256 d14ea9daed510259717209ed9e2f68503fcbcbcf00c2c4f31b446b001ae109c0 SHA512 c27b443261db4c68e73d3da55a640ac2689dcefda6aa384d7c3e23acdc705f79e07524f8df9ecbe379cfd9f8855d50ad7dfe7392ad7a36d5a63d0124e483e5ec WHIRLPOOL d94edc81ae8638758b93f2cb1804943a8160b4f8e1d507ce36c5ec7a835ea6f4b96a06a31cbf687335029391a9ee3a099c707a64d02490caa2b30bc91d260d24
+DIST cairocffi-0.7.1.tar.gz 76190 SHA256 286f4ee57ddfa381294870efbdfc9ab63375016c582b8163bd5449ba8cbda5de SHA512 48d0d0b3d03913859247d526492a21b57664d086586552fc765546042029a72325f39cfc14e982508ed5bf259ecc674609985cc4a65b39217a12a58de34129e3 WHIRLPOOL fd45b98be3bbfe99ceef350f6a99ad3b7131665b326f6f50763d96e7844dccb225a6e202abf2251674127363e94d725fea09dc763f8b1b0765003b3fbc44034a
+DIST cairocffi-0.7.2.tar.gz 75337 SHA256 e42b4256d27bd960cbf3b91a6c55d602defcdbc2a73f7317849c80279feeb975 SHA512 a4b5798ee713a8847ebd21ef328b3e0a94403ce1e80ac108f6d8e4abffbf96551542bb5c848550d82bcebb3d9f645c90ea87fc3eb254bd8e9d57b6a55db76de1 WHIRLPOOL e907633b46dce856df4777598250e40da7a39ee4b6621376d30698237fb0a463d7f8bdf8e8838aa104d0751de62b6172057a0f8d1f53ce8315b419d3b3f64c5c
diff --git a/dev-python/cairocffi/cairocffi-0.5.3-r1.ebuild b/dev-python/cairocffi/cairocffi-0.5.3-r1.ebuild
new file mode 100644
index 00000000000..02d50b7bc55
--- /dev/null
+++ b/dev-python/cairocffi/cairocffi-0.5.3-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="CFFI-based drop-in replacement for Pycairo"
+MY_PN="${PN}"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/SimonSapin/cairocffi"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
+ x11-libs/cairo:0="
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ py.test ${PN}/ || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cairocffi/cairocffi-0.5.4.ebuild b/dev-python/cairocffi/cairocffi-0.5.4.ebuild
new file mode 100644
index 00000000000..02d50b7bc55
--- /dev/null
+++ b/dev-python/cairocffi/cairocffi-0.5.4.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="CFFI-based drop-in replacement for Pycairo"
+MY_PN="${PN}"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/SimonSapin/cairocffi"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
+ x11-libs/cairo:0="
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ py.test ${PN}/ || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cairocffi/cairocffi-0.6-r1.ebuild b/dev-python/cairocffi/cairocffi-0.6-r1.ebuild
new file mode 100644
index 00000000000..b760032169a
--- /dev/null
+++ b/dev-python/cairocffi/cairocffi-0.6-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="CFFI-based drop-in replacement for Pycairo"
+MY_PN="${PN}"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/SimonSapin/cairocffi"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# xcffib is an optional extra excpet that the testsuite has it a hard coded unconditional component
+RDEPEND="
+ >=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
+ x11-libs/cairo:0=
+ <dev-python/xcffib-0.3[${PYTHON_USEDEP}]
+ x11-libs/gdk-pixbuf[jpeg]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# Intersphinx cause the usual d'loading of objects.inv from TWO online sites
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ https://github.com/SimonSapin/cairocffi/issues/55
+ py.test ${PN}/ || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cairocffi/cairocffi-0.6.ebuild b/dev-python/cairocffi/cairocffi-0.6.ebuild
new file mode 100644
index 00000000000..b2428f70f21
--- /dev/null
+++ b/dev-python/cairocffi/cairocffi-0.6.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="CFFI-based drop-in replacement for Pycairo"
+MY_PN="${PN}"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/SimonSapin/cairocffi"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+# xcffib is an optional extra excpet that the testsuite has it a hard coded unconditional component
+RDEPEND="
+ >=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
+ x11-libs/cairo:0=
+ <dev-python/xcffib-0.3[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# Intersphinx cause the usual d'loading of objects.inv from TWO online sites
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ py.test ${PN}/ || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cairocffi/cairocffi-0.7.1.ebuild b/dev-python/cairocffi/cairocffi-0.7.1.ebuild
new file mode 100644
index 00000000000..c101a394be1
--- /dev/null
+++ b/dev-python/cairocffi/cairocffi-0.7.1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="CFFI-based drop-in replacement for Pycairo"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/SimonSapin/cairocffi"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/cffi-1.1.0:=[$(python_gen_usedep 'python*')]
+ >=dev-python/xcffib-0.3.2[${PYTHON_USEDEP}]
+ x11-libs/cairo:0=
+ x11-libs/gdk-pixbuf[jpeg]"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=(
+ # Intersphinx cause the usual d'loading of objects.inv from TWO online sites
+ "${FILESDIR}"/mapping.patch
+ "${FILESDIR}"/${P}-test.patch
+ )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ py.test -v --pyargs cairocffi || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cairocffi/cairocffi-0.7.2.ebuild b/dev-python/cairocffi/cairocffi-0.7.2.ebuild
new file mode 100644
index 00000000000..8aa7b95b2a2
--- /dev/null
+++ b/dev-python/cairocffi/cairocffi-0.7.2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="CFFI-based drop-in replacement for Pycairo"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/SimonSapin/cairocffi"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/cffi-1.1.0:=[$(python_gen_usedep 'python*')]
+ >=dev-python/xcffib-0.3.2[${PYTHON_USEDEP}]
+ x11-libs/cairo:0=
+ x11-libs/gdk-pixbuf[jpeg]"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=(
+ # Intersphinx cause the usual d'loading of objects.inv from TWO online sites
+ "${FILESDIR}"/mapping.patch
+ "${FILESDIR}"/${PN}-0.7.1-test.patch
+ )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ py.test -v --pyargs cairocffi || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cairocffi/files/cairocffi-0.7.1-test.patch b/dev-python/cairocffi/files/cairocffi-0.7.1-test.patch
new file mode 100644
index 00000000000..b5a2b4530fb
--- /dev/null
+++ b/dev-python/cairocffi/files/cairocffi-0.7.1-test.patch
@@ -0,0 +1,58 @@
+ cairocffi/test_cairo.py | 3 +--
+ cairocffi/test_xcb.py | 13 +++++++------
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/cairocffi/test_cairo.py b/cairocffi/test_cairo.py
+index 6b19ee1..542103d 100644
+--- a/cairocffi/test_cairo.py
++++ b/cairocffi/test_cairo.py
+@@ -1049,7 +1049,7 @@ def test_font_options():
+ options_1.merge(options_2)
+ assert options_2 == options_1
+
+-
++#@pytest.skip("https://github.com/SimonSapin/cairocffi/issues/65")
+ def test_glyphs():
+ surface = ImageSurface(cairocffi.FORMAT_ARGB32, 100, 20)
+ context = Context(surface)
+@@ -1064,7 +1064,6 @@ def test_glyphs():
+ assert 5 == x1 < x2 < x3
+ assert clusters == [(2, 1), (1, 1), (1, 1)]
+ assert is_backwards == 0
+- assert font.glyph_extents(glyphs) == font.text_extents(text)
+ assert font.glyph_extents(glyphs) == context.glyph_extents(glyphs)
+
+ assert context.copy_path() == []
+diff --git a/cairocffi/test_xcb.py b/cairocffi/test_xcb.py
+index c8a6e70..0c6bab9 100644
+--- a/cairocffi/test_xcb.py
++++ b/cairocffi/test_xcb.py
+@@ -118,14 +118,14 @@ def test_xcb_pixmap(xcb_conn):
+ gc = create_gc(xcb_conn)
+
+ # create XCB surface on pixmap
+- root_visual = find_root_visual(xcb_conn)
+- surface = XCBSurface(xcb_conn, pixmap, root_visual, width, height)
+- assert surface
++ # root_visual = find_root_visual(xcb_conn)
++ # surface = XCBSurface(xcb_conn, pixmap, root_visual, width, height)
++ # assert surface
+
+ # use xcb surface to create context, draw white
+- ctx = Context(surface)
+- ctx.set_source_rgb(1, 1, 1)
+- ctx.paint()
++ # ctx = Context(surface)
++ # ctx.set_source_rgb(1, 1, 1)
++ # ctx.paint()
+
+ # map the window and wait for it to appear
+ xcb_conn.core.MapWindow(wid)
+@@ -157,6 +157,7 @@ def test_xcb_pixmap(xcb_conn):
+
+ @pytest.mark.xfail(cairo_version() < 11200,
+ reason="Cairo version too low")
++@pytest.skip("https://github.com/SimonSapin/cairocffi/issues/65")
+ def test_xcb_window(xcb_conn):
+ width = 10
+ height = 10
diff --git a/dev-python/cairocffi/files/mapping.patch b/dev-python/cairocffi/files/mapping.patch
new file mode 100644
index 00000000000..14cae286617
--- /dev/null
+++ b/dev-python/cairocffi/files/mapping.patch
@@ -0,0 +1,10 @@
+diff -ur cairocffi-0.5.3.orig/docs/conf.py cairocffi-0.5.3/docs/conf.py
+--- docs/conf.py 2013-05-24 10:33:32.000000000 +0800
++++ docs/conf.py 2014-04-08 16:09:39.648229837 +0800
+@@ -14,6 +14,3 @@
+ exclude_patterns = ['_build']
+ autodoc_member_order = 'bysource'
+ autodoc_default_flags = ['members']
+-intersphinx_mapping = {
+- 'http://docs.python.org/': None,
+- 'http://cairographics.org/documentation/pycairo/2/': None}
diff --git a/dev-python/cairocffi/metadata.xml b/dev-python/cairocffi/metadata.xml
new file mode 100644
index 00000000000..6fb1e338035
--- /dev/null
+++ b/dev-python/cairocffi/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cairocffi</remote-id>
+ <remote-id type="github">SimonSapin/cairocffi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cangjie/Manifest b/dev-python/cangjie/Manifest
new file mode 100644
index 00000000000..7960a881f1a
--- /dev/null
+++ b/dev-python/cangjie/Manifest
@@ -0,0 +1,2 @@
+DIST cangjie-1.1.tar.xz 221460 SHA256 97391213ec80f885a5dc8fb9e61f3ab511e8106f3dc924535af41822c0c8ac6f SHA512 ef1acd9fcfb8f3da94fa282c173bd82ed7f827f9b33921689e2a811fc9268dfdc25bec6f53ac448cea85b220790f5816c0ee0e4ed95750afab4312850cc14df2 WHIRLPOOL f28aaef1ae982e9cddb85477c1bbc4d4fad4753fe663d4d25cf593f011c1b3305947795683520152a26e42a60d9aeb09e61cdd71704a4a4af9a716cb1634c771
+DIST cangjie-1.2.tar.xz 221524 SHA256 bc9115904f65581a11e43044c83e999e583468d1bb98c04b33ea059205e07c10 SHA512 4cc3e0e4a77b671c93fe39f17c970d458d6d935c1efa33f9d8de0a0311ed6c3a444fd41431d553f70f3e96065f8136801128d8b16c86d0340c78ab560bd9e63f WHIRLPOOL 72f3b532bf149df0740fc9d3fd137416cb29a0db81285fd67cd51d3a47d34fd2a32655302a912d5caf8666ef55550d2f84242021163bfff12d5734b2d820f13c
diff --git a/dev-python/cangjie/cangjie-1.1.ebuild b/dev-python/cangjie/cangjie-1.1.ebuild
new file mode 100644
index 00000000000..573d32aa4e6
--- /dev/null
+++ b/dev-python/cangjie/cangjie-1.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit autotools-utils python-r1
+
+DESCRIPTION="The Python bindings to libcangjie"
+HOMEPAGE="http://cangjians.github.io"
+SRC_URI="http://cangjians.github.io/downloads/pycangjie/cangjie-${PV}.tar.xz"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="${PYTHON_DEPS}
+ app-i18n/libcangjie
+ dev-python/cython
+ >=dev-python/cython-0.14"
+RDEPEND="app-i18n/libcangjie
+ ${PYTHON_DEPS}"
+
+src_configure() {
+ python_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+}
diff --git a/dev-python/cangjie/cangjie-1.2.ebuild b/dev-python/cangjie/cangjie-1.2.ebuild
new file mode 100644
index 00000000000..c7c5167a33f
--- /dev/null
+++ b/dev-python/cangjie/cangjie-1.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit autotools-utils python-r1
+
+DESCRIPTION="The Python bindings to libcangjie"
+HOMEPAGE="http://cangjians.github.io"
+SRC_URI="https://github.com/Cangjians/pycangjie/releases/download/v${PV}/cangjie-${PV}.tar.xz"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="${PYTHON_DEPS}
+ app-i18n/libcangjie
+ dev-python/cython[${PYTHON_USEDEP}]"
+
+RDEPEND="app-i18n/libcangjie
+ ${PYTHON_DEPS}"
+
+PATCHES=( "${FILESDIR}/${P}-cython-022.patch" )
+
+src_configure() {
+ python_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+}
diff --git a/dev-python/cangjie/files/cangjie-1.2-cython-022.patch b/dev-python/cangjie/files/cangjie-1.2-cython-022.patch
new file mode 100644
index 00000000000..ac2695c9e13
--- /dev/null
+++ b/dev-python/cangjie/files/cangjie-1.2-cython-022.patch
@@ -0,0 +1,25 @@
+diff --git a/Makefile.am b/Makefile.am
+index 6762b97..c0cc699 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -47,19 +47,19 @@ pkgpyexecdir = $(pyexecdir)/cangjie
+
+ src/cangjie/_core.c: src/cangjie/_core.pyx src/cangjie/_core.pxd
+ $(MKDIR_P) src/cangjie
+- $(CYTHON) -3 --verbose -o $@ $(srcdir)/src/cangjie/_core.pyx
++ $(CYTHON) -3 --verbose -o $@ -I $(srcdir)/src/cangjie $(srcdir)/src/cangjie/_core.pyx
+
+ src/cangjie/errors.c: src/cangjie/errors.pyx src/cangjie/_core.pxd
+ $(MKDIR_P) src/cangjie
+- $(CYTHON) -3 --verbose -o $@ $(srcdir)/src/cangjie/errors.pyx
++ $(CYTHON) -3 --verbose -o $@ -I $(srcdir)/src/cangjie $(srcdir)/src/cangjie/errors.pyx
+
+ src/cangjie/filters.c: src/cangjie/filters.pyx src/cangjie/_core.pxd
+ $(MKDIR_P) src/cangjie
+- $(CYTHON) -3 --verbose -o $@ $(srcdir)/src/cangjie/filters.pyx
++ $(CYTHON) -3 --verbose -o $@ -I $(srcdir)/src/cangjie $(srcdir)/src/cangjie/filters.pyx
+
+ src/cangjie/versions.c: src/cangjie/versions.pyx src/cangjie/_core.pxd
+ $(MKDIR_P) src/cangjie
+- $(CYTHON) -3 --verbose -o $@ $(srcdir)/src/cangjie/versions.pyx
++ $(CYTHON) -3 --verbose -o $@ -I $(srcdir)/src/cangjie $(srcdir)/src/cangjie/versions.pyx
diff --git a/dev-python/cangjie/metadata.xml b/dev-python/cangjie/metadata.xml
new file mode 100644
index 00000000000..a99f2d36aae
--- /dev/null
+++ b/dev-python/cangjie/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cjk</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>brendan@horan.hk</email>
+ <name>Brendan Horan</name>
+ <description>Proxy - Maintainer. Assign bugs to him</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">Cangjians/pycangjie</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/carbon/Manifest b/dev-python/carbon/Manifest
new file mode 100644
index 00000000000..f18c232deac
--- /dev/null
+++ b/dev-python/carbon/Manifest
@@ -0,0 +1,2 @@
+DIST carbon-0.9.12.tar.gz 47450 SHA256 df4b521a449b888fc901d11abffc9e7eb070a8670e341caa0e13ab8f3029cddf SHA512 060b3d20cf2bd95be22fba30a24591361c772edaaaa99117616f4a01a31eab9395d84c5eb835408fac2c1bc36b70950e260d56456879489a9ee3248c6c4e3f33 WHIRLPOOL c6021492dc5ed3c9c4cefe173b1e0592b18e6c2d49e48cd74059c4d3822ea0b2cf253bedc9a67f7fa37dd8944e06835a1da959300e3c6e0f1759622b19b0c61e
+DIST carbon-0.9.13.tar.gz 47509 SHA256 75aecd8114435430e06803ebaf1e9cac81f58fb231fc93d8904d667d971ae6cd SHA512 89c843ac67ed4b68c28273459e5a96594851e5d2694fdefdfb71cebcdc6555d4aac8c45c1c6d2ca61a15405bac7ba3d27836470fe152d5d7a4936bb2d00e6776 WHIRLPOOL 40000d912f3881dc4f197e1290d3e0fd092ec23bc6574a97fa31d0ffa77fa651abc4d4da529e45d88d74ea763f18cde20daf5fd70549d6afd38f4c5b88d1becb
diff --git a/dev-python/carbon/carbon-0.9.12-r1.ebuild b/dev-python/carbon/carbon-0.9.12-r1.ebuild
new file mode 100644
index 00000000000..394ffe7411d
--- /dev/null
+++ b/dev-python/carbon/carbon-0.9.12-r1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Backend data caching and persistence daemon for Graphite"
+HOMEPAGE="http://graphite.wikidot.com/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ ~dev-python/twisted-core-12.3.0[${PYTHON_USEDEP}]
+ dev-python/whisper[${PYTHON_USEDEP}]
+ dev-python/txAMQP[${PYTHON_USEDEP}]"
+
+PATCHES=(
+ # Do not install the configuration and data files. We install them
+ # somewhere sensible by hand.
+ "${FILESDIR}"/${P}-no-data-files.patch
+ )
+
+python_prepare_all() {
+ # This sets prefix to /opt/graphite. We want FHS-style paths instead.
+ rm setup.cfg || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/carbon
+ doins conf/*
+
+ dodir /var/log/carbon /var/lib/carbon/{whisper,lists,rrd}
+
+ newinitd "${FILESDIR}"/carbon.initd carbon-cache
+ newinitd "${FILESDIR}"/carbon.initd carbon-relay
+ newinitd "${FILESDIR}"/carbon.initd carbon-aggregator
+
+ newconfd "${FILESDIR}"/carbon.confd carbon-cache
+ newconfd "${FILESDIR}"/carbon.confd carbon-relay
+ newconfd "${FILESDIR}"/carbon.confd carbon-aggregator
+}
+
+pkg_postinst() {
+ einfo 'This ebuild installs carbon into FHS-style paths.'
+ einfo 'You will probably have to set GRAPHITE_CONF_DIR to /etc/carbon'
+ einfo 'and GRAPHITE_STORAGE_DIR to /var/lib/carbon to make use of this'
+ einfo '(see /etc/carbon/carbon.conf.example).'
+ einfo ' '
+ einfo 'OpenRC init script supports multiple instances !'
+ einfo 'Example to run an instance b of carbon-cache :'
+ einfo ' ln -s /etc/init.d/carbon-cache /etc/init.d/carbon-cache.b'
+ einfo ' cp /etc/conf.d/carbon-cache /etc/conf.d/carbon-cache.b'
+}
diff --git a/dev-python/carbon/carbon-0.9.13.ebuild b/dev-python/carbon/carbon-0.9.13.ebuild
new file mode 100644
index 00000000000..4b7ed80fb33
--- /dev/null
+++ b/dev-python/carbon/carbon-0.9.13.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Backend data caching and persistence daemon for Graphite"
+HOMEPAGE="http://graphite.wikidot.com/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="
+ dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/whisper[${PYTHON_USEDEP}]
+ dev-python/txAMQP[${PYTHON_USEDEP}]"
+
+PATCHES=(
+ # Do not install the configuration and data files. We install them
+ # somewhere sensible by hand.
+ "${FILESDIR}"/${PN}-0.9.12-no-data-files.patch
+ )
+
+python_prepare_all() {
+ # This sets prefix to /opt/graphite. We want FHS-style paths instead.
+ rm setup.cfg || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/carbon
+ doins conf/*
+
+ dodir /var/log/carbon /var/lib/carbon/{whisper,lists,rrd}
+
+ newinitd "${FILESDIR}"/carbon.initd carbon-cache
+ newinitd "${FILESDIR}"/carbon.initd carbon-relay
+ newinitd "${FILESDIR}"/carbon.initd carbon-aggregator
+
+ newconfd "${FILESDIR}"/carbon.confd carbon-cache
+ newconfd "${FILESDIR}"/carbon.confd carbon-relay
+ newconfd "${FILESDIR}"/carbon.confd carbon-aggregator
+}
+
+pkg_postinst() {
+ einfo 'This ebuild installs carbon into FHS-style paths.'
+ einfo 'You will probably have to set GRAPHITE_CONF_DIR to /etc/carbon'
+ einfo 'and GRAPHITE_STORAGE_DIR to /var/lib/carbon to make use of this'
+ einfo '(see /etc/carbon/carbon.conf.example).'
+ einfo ' '
+ einfo 'OpenRC init script supports multiple instances !'
+ einfo 'Example to run an instance b of carbon-cache :'
+ einfo ' ln -s /etc/init.d/carbon-cache /etc/init.d/carbon-cache.b'
+ einfo ' cp /etc/conf.d/carbon-cache /etc/conf.d/carbon-cache.b'
+}
diff --git a/dev-python/carbon/files/carbon-0.9.12-no-data-files.patch b/dev-python/carbon/files/carbon-0.9.12-no-data-files.patch
new file mode 100644
index 00000000000..129c7189f3b
--- /dev/null
+++ b/dev-python/carbon/files/carbon-0.9.12-no-data-files.patch
@@ -0,0 +1,24 @@
+diff -ur carbon-0.9.12.orig/setup.py carbon-0.9.12/setup.py
+--- /setup.py 2013-08-22 00:53:16.000000000 +0800
++++ /setup.py 2014-01-26 11:20:59.705864697 +0800
+@@ -13,12 +13,6 @@
+ setup_kwargs = dict()
+
+
+-storage_dirs = [ ('storage/whisper',[]), ('storage/lists',[]),
+- ('storage/log',[]), ('storage/rrd',[]) ]
+-conf_files = [ ('conf', glob('conf/*.example')) ]
+-
+-install_files = storage_dirs + conf_files
+-
+ # If we are building on RedHat, let's use the redhat init scripts.
+ if platform.dist()[0] == 'redhat':
+ init_scripts = [ ('/etc/init.d', ['distro/redhat/init.d/carbon-cache',
+@@ -39,7 +33,6 @@
+ package_dir={'' : 'lib'},
+ scripts=glob('bin/*'),
+ package_data={ 'carbon' : ['*.xml'] },
+- data_files=install_files,
+ install_requires=['twisted', 'txamqp'],
+ **setup_kwargs
+ )
diff --git a/dev-python/carbon/files/carbon.confd b/dev-python/carbon/files/carbon.confd
new file mode 100644
index 00000000000..b1875e13467
--- /dev/null
+++ b/dev-python/carbon/files/carbon.confd
@@ -0,0 +1,5 @@
+# Use the given config file
+CARBON_CONFIG="/etc/carbon/carbon.conf"
+
+# Add extra parameters
+CARBON_EXTRA_PARAMETERS=""
diff --git a/dev-python/carbon/files/carbon.initd b/dev-python/carbon/files/carbon.initd
new file mode 100644
index 00000000000..6fd12c60e78
--- /dev/null
+++ b/dev-python/carbon/files/carbon.initd
@@ -0,0 +1,52 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+export GRAPHITE_CONF_DIR=/etc/carbon
+export GRAPHITE_STORAGE_DIR=/var/lib/carbon
+
+INSTANCE=${SVCNAME/#*.}
+if [ "${INSTANCE}" == "${SVCNAME}" ]; then
+ INSTANCE="a"
+fi
+
+PIDFILE="/var/run/${SVCNAME}.pid"
+PROGRAMNAME=${SVCNAME/.*}
+
+CARBON_CONFIG=${CARBON_CONFIG:-/etc/carbon/carbon.conf}
+
+depend() {
+ use net
+}
+
+
+start_pre() {
+ if [ ! -f ${CARBON_CONFIG} ] ; then
+ eend "Missing ${CARBON_CONFIG}"
+ fi
+ case "${PROGRAMNAME}" in
+ "carbon-relay" )
+ [ -f /etc/carbon/relay-rules.conf ] || eend "Missing relay-rules.conf"
+ ;;
+ "carbon-aggregator" )
+ [ -f /etc/carbon/aggregation-rules.conf ] || eend "Missing missing aggregation-rules.conf"
+ ;;
+ esac
+}
+
+start() {
+ ebegin "Starting ${PROGRAMNAME} instance ${INSTANCE}"
+ start-stop-daemon --start --exec /usr/bin/${PROGRAMNAME}.py \
+ --pidfile ${PIDFILE} \
+ -- --pidfile ${PIDFILE} --instance ${INSTANCE} \
+ --logdir /var/log/carbon/ --config ${CARBON_CONFIG} start >/dev/null
+ eend $? "Failed to start ${SVCNAME}"
+}
+
+stop() {
+ ebegin "Stopping ${PROGRAMNAME} instance ${INSTANCE}"
+ start-stop-daemon --stop \
+ --pidfile ${PIDFILE}
+ eend $? "Failed to stop ${SVCNAME}"
+}
diff --git a/dev-python/carbon/files/no-data-files.patch b/dev-python/carbon/files/no-data-files.patch
new file mode 100644
index 00000000000..7b0c52f3948
--- /dev/null
+++ b/dev-python/carbon/files/no-data-files.patch
@@ -0,0 +1,26 @@
+Do not install the empty storage dirs and config files to the wrong
+location (the ebuild installs them to the right location by hand).
+
+See Gentoo bug #417221.
+
+--- setup.py
++++ setup.py
+@@ -12,9 +12,6 @@
+ setup_kwargs = dict()
+
+
+-storage_dirs = [ ('storage/whisper',[]), ('storage/lists',[]),
+- ('storage/log',[]), ('storage/rrd',[]) ]
+-conf_files = [ ('conf', glob('conf/*.example')) ]
+ #XXX Need a way to have these work for bdist_rpm but be left alone for everything else
+ #init_scripts = [ ('/etc/init.d', ['distro/redhat/init.d/carbon-cache',
+ # 'distro/redhat/init.d/carbon-relay',
+@@ -32,7 +29,6 @@
+ package_dir={'' : 'lib'},
+ scripts=glob('bin/*'),
+ package_data={ 'carbon' : ['*.xml'] },
+- data_files=storage_dirs + conf_files, # + init_scripts,
+ install_requires=['twisted', 'txamqp'],
+ **setup_kwargs
+ )
+
diff --git a/dev-python/carbon/metadata.xml b/dev-python/carbon/metadata.xml
new file mode 100644
index 00000000000..42a6c423cb5
--- /dev/null
+++ b/dev-python/carbon/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">carbon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/carrot/Manifest b/dev-python/carrot/Manifest
new file mode 100644
index 00000000000..080dd4e63d3
--- /dev/null
+++ b/dev-python/carrot/Manifest
@@ -0,0 +1 @@
+DIST carrot-0.10.7.tar.gz 62069 SHA256 cb46374f3c883c580d142a79d2609883713a867cc86e0514163adce784ce2468 SHA512 3814089acc0b4ec51fc67470f0c3f21b740c5b7ed284d61919d6796f6e0529cb3d5e9c1a4cbf8360f98c76b520e5b73b43fa744775f4c6e3a629d77a46a10f3f WHIRLPOOL 0148953c40008002c8c4c95454918840c086d9215e25cdfd6dae7579d81544f57533902409af8f0caab9b1a5c72d72a9505e846d9e738804668f7dcd7af7b7a9
diff --git a/dev-python/carrot/carrot-0.10.7-r1.ebuild b/dev-python/carrot/carrot-0.10.7-r1.ebuild
new file mode 100644
index 00000000000..7cf3a8d0473
--- /dev/null
+++ b/dev-python/carrot/carrot-0.10.7-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="AMQP Messaging Framework for Python"
+HOMEPAGE="http://github.com/ask/carrot/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+RDEPEND="dev-python/anyjson[${PYTHON_USEDEP}]
+ >=dev-python/amqplib-0.6[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# Half of tests fail
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/carrot/metadata.xml b/dev-python/carrot/metadata.xml
new file mode 100644
index 00000000000..371b75d397d
--- /dev/null
+++ b/dev-python/carrot/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">carrot</remote-id>
+ <remote-id type="github">ask/carrot</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/casuarius/Manifest b/dev-python/casuarius/Manifest
new file mode 100644
index 00000000000..d30b7424983
--- /dev/null
+++ b/dev-python/casuarius/Manifest
@@ -0,0 +1 @@
+DIST casuarius-1.1.tar.gz 139555 SHA256 8ebec38cb8ced80e8a1def9a7e5cb07a4a2a5fca723e26008ff5cecc030c1ab5 SHA512 d0a77b285b923f72274b13240ab4ae079c4f69587093c43bb7375c8ba24517ba6a7e2ba429b3e9a6ee9c73736efafff00da9cde7d533f05de0c7675de1e62080 WHIRLPOOL 1ff87430bc933973a445d7dde3af4854d796ead5bc1998a6cc56e10886b259cf0d5c8f08612894ce68ecf32e0e81227b7e8e030af69180c9dca2c373fabdfb2d
diff --git a/dev-python/casuarius/casuarius-1.1.ebuild b/dev-python/casuarius/casuarius-1.1.ebuild
new file mode 100644
index 00000000000..974b149d13a
--- /dev/null
+++ b/dev-python/casuarius/casuarius-1.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Cython wrapper for the Cassowary incremental constraint solver"
+HOMEPAGE="https://github.com/enthought/casuarius"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/cython-0.15.1[${PYTHON_USEDEP}]"
diff --git a/dev-python/casuarius/metadata.xml b/dev-python/casuarius/metadata.xml
new file mode 100644
index 00000000000..0b61e5f4eda
--- /dev/null
+++ b/dev-python/casuarius/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Casuarius is a Cython binding for Cassowary incremental constraint solver.
+ The solver source code is derived from the 0.6 release of
+ Cassowary. It has been modified by Svilen Dobrev to remove memory
+ leaks.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">encore</remote-id>
+ <remote-id type="github">enthought/casuarius</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cddb-py/Manifest b/dev-python/cddb-py/Manifest
new file mode 100644
index 00000000000..92ea21c4c92
--- /dev/null
+++ b/dev-python/cddb-py/Manifest
@@ -0,0 +1 @@
+DIST CDDB-1.4.tar.gz 39562 SHA256 bcd0f2f21848f2fcd692c542f124ec3e1414391ddeb6114f6f7bc5724a831d25 SHA512 578ef74313cd164f28682ed7e8b26e7c4e7fbac972f7c3c2fecfe31e6bc2ea8dff0c79adf9b6fda77402f9855d809819f56c23e4ffa68404d8cde479a15f740a WHIRLPOOL 9838ae4168c63b003ba686d57fccbfa84d85cd5dbffb5c603bb7065d05f5e419fa3fc55f70edcec30255dd4fdbdbad7bf7c36416c3edadf4004005147378105b
diff --git a/dev-python/cddb-py/cddb-py-1.4-r1.ebuild b/dev-python/cddb-py/cddb-py-1.4-r1.ebuild
new file mode 100644
index 00000000000..1da0bf6de42
--- /dev/null
+++ b/dev-python/cddb-py/cddb-py-1.4-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="CDDB"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="CDDB Module for Python"
+HOMEPAGE="http://sourceforge.net/projects/cddb-py/"
+SRC_URI="mirror://sourceforge/cddb-py/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/cddb-py/cddb-py-1.4.ebuild b/dev-python/cddb-py/cddb-py-1.4.ebuild
new file mode 100644
index 00000000000..63a86f8b645
--- /dev/null
+++ b/dev-python/cddb-py/cddb-py-1.4.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
+
+inherit distutils
+
+MY_PN="CDDB"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="CDDB Module for Python"
+HOMEPAGE="http://sourceforge.net/projects/cddb-py/"
+SRC_URI="mirror://sourceforge/cddb-py/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_MODNAME="CDDB.py DiscID.py"
diff --git a/dev-python/cddb-py/metadata.xml b/dev-python/cddb-py/metadata.xml
new file mode 100644
index 00000000000..bf360c3d589
--- /dev/null
+++ b/dev-python/cddb-py/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">cddb-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/celementtree/Manifest b/dev-python/celementtree/Manifest
new file mode 100644
index 00000000000..b7f49029373
--- /dev/null
+++ b/dev-python/celementtree/Manifest
@@ -0,0 +1 @@
+DIST cElementTree-1.0.5-20051216.tar.gz 93766 SHA256 b2e528c99837124b32598bde7a19da579203c600d71f22f4c84da0933ba09751 SHA512 2cb99e4980580f186eb9b8740bc5a3e6e85e714a5d1f613850a8f12f7dbc125c8aa7770f7fe70480fb96999212c11181ab681822c74429882c1dfe91c20e2af9 WHIRLPOOL 2788c2eb7ab7bb3a654b535d273cb198eaf15d2265b00e4a9da3b1aa097041db34ce3ebd7b393e75a806957dca3b5c712e5256bc69f0eceb0c11c99bdb9bbce2
diff --git a/dev-python/celementtree/celementtree-1.0.5-r2.ebuild b/dev-python/celementtree/celementtree-1.0.5-r2.ebuild
new file mode 100644
index 00000000000..abdfd29fde3
--- /dev/null
+++ b/dev-python/celementtree/celementtree-1.0.5-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="cElementTree-${PV}-20051216"
+
+DESCRIPTION="The cElementTree module is a C implementation of the ElementTree API"
+HOMEPAGE="http://effbot.org/zone/celementtree.htm http://pypi.python.org/pypi/cElementTree"
+SRC_URI="http://effbot.org/downloads/${MY_P}.tar.gz"
+
+LICENSE="ElementTree"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="examples"
+
+RDEPEND=">=dev-python/elementtree-1.2[${PYTHON_USEDEP}]
+ >=dev-libs/expat-1.95.8"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${P}-use_system_expat.patch"
+ "${FILESDIR}/${P}-setuptools.patch"
+ )
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" selftest.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( samples/. selftest.py )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/celementtree/files/celementtree-1.0.5-setuptools.patch b/dev-python/celementtree/files/celementtree-1.0.5-setuptools.patch
new file mode 100644
index 00000000000..d70dfab1a51
--- /dev/null
+++ b/dev-python/celementtree/files/celementtree-1.0.5-setuptools.patch
@@ -0,0 +1,12 @@
+--- setup.py.orig 2007-07-04 23:05:19.000000000 -0700
++++ setup.py 2007-07-04 23:05:58.000000000 -0700
+@@ -6,7 +6,8 @@
+ # Usage: python setup.py install
+ #
+
+-from distutils.core import setup, Extension
++from setuptools import setup
++from distutils.core import Extension
+ from distutils import sysconfig
+ import sys, os
+
diff --git a/dev-python/celementtree/files/celementtree-1.0.5-use_system_expat.patch b/dev-python/celementtree/files/celementtree-1.0.5-use_system_expat.patch
new file mode 100644
index 00000000000..fb90e59a449
--- /dev/null
+++ b/dev-python/celementtree/files/celementtree-1.0.5-use_system_expat.patch
@@ -0,0 +1,44 @@
+diff -u a/selftest.py b/selftest.py
+--- a/selftest.py 2005-12-16 23:57:47.000000000 +0200
++++ b/selftest.py 2007-07-03 08:07:45.000000000 +0300
+@@ -176,8 +176,6 @@
+ </ns0:root>
+
+ >>> parser = ElementTree.XMLParser()
+- >>> parser.version
+- 'Expat 1.95.8'
+ >>> parser.feed(open("samples/simple.xml").read())
+ >>> print serialize(parser.close())
+ <root>
+diff -u a/setup.py b/setup.py
+--- a/setup.py 2005-12-16 23:57:47.000000000 +0200
++++ b/setup.py 2007-07-03 08:00:57.000000000 +0300
+@@ -23,16 +23,6 @@
+ # --------------------------------------------------------------------
+ # expat library
+
+-sources = [
+- "expat/xmlparse.c",
+- "expat/xmlrole.c",
+- "expat/xmltok.c",
+- ]
+-
+-includes = [
+- "expat",
+- ]
+-
+ defines = [
+ ("XML_STATIC", None),
+ ]
+@@ -63,9 +53,9 @@
+
+ ext_modules.append(
+ Extension(
+- "cElementTree", ["cElementTree.c"] + sources,
++ "cElementTree", ["cElementTree.c"],
+ define_macros=defines,
+- include_dirs=includes,
++ libraries=['expat'],
+ )
+ )
+
diff --git a/dev-python/celementtree/metadata.xml b/dev-python/celementtree/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/celementtree/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/celery/Manifest b/dev-python/celery/Manifest
new file mode 100644
index 00000000000..bf6365d1456
--- /dev/null
+++ b/dev-python/celery/Manifest
@@ -0,0 +1,2 @@
+DIST celery-3.1.17.tar.gz 1297008 SHA256 cfe2b653268bd586e2d08a75e886f7be3be55ba372f72e2f5747aeb76c470362 SHA512 f45f92161c134f528719768ad863df6b49fa69e022b47ea801e590de8579c24c6a5ec9dd88f712e180ed7d23f4510cecf4f17a959c3338d4bad79f8d7d202453 WHIRLPOOL c0f4ddab40eab2afe579c88bc9e47d46a650a73212abb7cb1d343d7ba72c1d96913c1c04a6e9920789bd6f9bf6907c09e6326aa08e6ba3cf68545e44432b95de
+DIST celery-3.1.18.tar.gz 1298756 SHA256 0924f94070c6fc57d408b169848c5b38832668fffe060e48b4803fb23e0e3eaf SHA512 219291a64c72a0c95a2b184903e491d5b6b1396b4b519d54503bb059af305c2f118865b71510d5685b8f5946135596c9d80d6ca10162a938ed90baaf4c3c48c3 WHIRLPOOL 0d27eda95fea5b6235afd7d5f90de249eec6d7c58a7563afb0cc73d29b84cb6903eced4b9515fe574206111fc4a304c5f24d3c476b4315416b441f324f2ebfa5
diff --git a/dev-python/celery/celery-3.1.17.ebuild b/dev-python/celery/celery-3.1.17.ebuild
new file mode 100644
index 00000000000..6cd1f89ef83
--- /dev/null
+++ b/dev-python/celery/celery-3.1.17.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 bash-completion-r1
+
+DESCRIPTION="Open source asynchronous task queue/job queue based on distributed message passing"
+HOMEPAGE="http://celeryproject.org/ http://pypi.python.org/pypi/celery"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+# There are a number of other optional 'extras' which overlap with those of kombu, however
+# there has been no apparent expression of interest or demand by users for them. See requires.txt
+IUSE="doc examples redis sqs test yaml zeromq"
+
+PY27_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND="<dev-python/kombu-3.1[${PYTHON_USEDEP}]
+ >=dev-python/kombu-3.0.24[${PYTHON_USEDEP}]
+ >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/billiard-3.3.0.19[${PYTHON_USEDEP}]
+ <dev-python/billiard-3.4[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/greenlet[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ sqs? ( >=dev-python/boto-2.13.3[${PY27_USEDEP}] )
+ zeromq? ( >=dev-python/pyzmq-13.1.0[${PYTHON_USEDEP}] )
+ yaml? ( >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/gevent[${PY27_USEDEP}]
+ >=dev-python/mock-1.0.1[${PY27_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.6.2[${PYTHON_USEDEP}]
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}]
+ >=dev-db/redis-2.8.0 )
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}] )
+ doc? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/celery-docs.patch
+ "${FILESDIR}"/${PN}-3.1.11-test.patch )
+
+# testsuite needs it own source
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ mkdir docs/.build || die
+ emake -C docs html
+ fi
+}
+
+python_test() {
+ nosetests || die "Tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ # Main celeryd init.d and conf.d
+ newinitd "${FILESDIR}/celery.initd-r1" celery
+ newconfd "${FILESDIR}/celery.confd-r1" celery
+
+ use examples && local EXAMPLES=( examples/. )
+
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+
+ newbashcomp extra/bash-completion/celery.bash ${PN}
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/celery/celery-3.1.18.ebuild b/dev-python/celery/celery-3.1.18.ebuild
new file mode 100644
index 00000000000..0ad652be33c
--- /dev/null
+++ b/dev-python/celery/celery-3.1.18.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 bash-completion-r1
+
+DESCRIPTION="Open source asynchronous task queue/job queue based on distributed message passing"
+HOMEPAGE="http://celeryproject.org/ http://pypi.python.org/pypi/celery"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+# There are a number of other optional 'extras' which overlap with those of kombu, however
+# there has been no apparent expression of interest or demand by users for them. See requires.txt
+IUSE="doc examples redis sqs test yaml zeromq"
+
+PY27_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND="<dev-python/kombu-3.1[${PYTHON_USEDEP}]
+ >=dev-python/kombu-3.0.25[${PYTHON_USEDEP}]
+ >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/billiard-3.3.0.20[${PYTHON_USEDEP}]
+ <dev-python/billiard-3.4[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/greenlet[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ sqs? ( >=dev-python/boto-2.13.3[${PY27_USEDEP}] )
+ zeromq? ( >=dev-python/pyzmq-13.1.0[${PYTHON_USEDEP}] )
+ yaml? ( >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/gevent[${PY27_USEDEP}]
+ >=dev-python/mock-1.0.1[${PY27_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.6.2[${PYTHON_USEDEP}]
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}]
+ >=dev-db/redis-2.8.0 )
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}] )
+ doc? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/celery-docs.patch
+ "${FILESDIR}"/${PN}-3.1.11-test.patch )
+
+# testsuite needs it own source
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ mkdir docs/.build || die
+ emake -C docs html
+ fi
+}
+
+python_test() {
+ nosetests || die "Tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ # Main celeryd init.d and conf.d
+ newinitd "${FILESDIR}/celery.initd-r1" celery
+ newconfd "${FILESDIR}/celery.confd-r1" celery
+
+ use examples && local EXAMPLES=( examples/. )
+
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+
+ newbashcomp extra/bash-completion/celery.bash ${PN}
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/celery/files/celery-3.0.11-require-python-dateutil-2.1.patch b/dev-python/celery/files/celery-3.0.11-require-python-dateutil-2.1.patch
new file mode 100644
index 00000000000..90cdcb6d5f1
--- /dev/null
+++ b/dev-python/celery/files/celery-3.0.11-require-python-dateutil-2.1.patch
@@ -0,0 +1,47 @@
+From ae721b6947e7e05f26dc8438fe61106b5e993e12 Mon Sep 17 00:00:00 2001
+From: Ask Solem <ask@celeryproject.org>
+Date: Fri, 17 Aug 2012 16:16:08 +0100
+Subject: [PATCH] Now depends on dateutil-2.1 which supports Py2.6, 2.7 and
+ 3.2+. Closes #915
+
+---
+ requirements/default-py3k.txt | 2 +-
+ requirements/default.txt | 2 +-
+ setup.cfg | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/requirements/default-py3k.txt b/requirements/default-py3k.txt
+index d68a7bd..a8bd31f 100644
+--- a/requirements/default-py3k.txt
++++ b/requirements/default-py3k.txt
+@@ -1,4 +1,4 @@
+ billiard>=2.7.3.17
+-python-dateutil>=2.0
++python-dateutil>=2.1
+ pytz
+ kombu>=2.4.7,<3.0
+diff --git a/requirements/default.txt b/requirements/default.txt
+index 2f50735..855cfc7 100644
+--- a/requirements/default.txt
++++ b/requirements/default.txt
+@@ -1,3 +1,3 @@
+ billiard>=2.7.3.17
+-python-dateutil>=1.5,<2.0
++python-dateutil>=2.1
+ kombu>=2.4.7,<3.0
+diff --git a/setup.cfg b/setup.cfg
+index 0e537f8..5ac1409 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -15,7 +15,7 @@
+
+ [bdist_rpm]
+ requires = billiard>=2.7.3.17
+- python-dateutil >= 1.5
++ python-dateutil >= 2.1
+ kombu >= 2.4.7
+
+ [egg_info]
+--
+1.7.10
+
diff --git a/dev-python/celery/files/celery-3.0.12-require-python-dateutil-2.1.patch b/dev-python/celery/files/celery-3.0.12-require-python-dateutil-2.1.patch
new file mode 100644
index 00000000000..6df08727d12
--- /dev/null
+++ b/dev-python/celery/files/celery-3.0.12-require-python-dateutil-2.1.patch
@@ -0,0 +1,47 @@
+From ae721b6947e7e05f26dc8438fe61106b5e993e12 Mon Sep 17 00:00:00 2001
+From: Ask Solem <ask@celeryproject.org>
+Date: Fri, 17 Aug 2012 16:16:08 +0100
+Subject: [PATCH] Now depends on dateutil-2.1 which supports Py2.6, 2.7 and
+ 3.2+. Closes #915
+
+---
+ requirements/default-py3k.txt | 2 +-
+ requirements/default.txt | 2 +-
+ setup.cfg | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/requirements/default-py3k.txt b/requirements/default-py3k.txt
+index d68a7bd..a8bd31f 100644
+--- a/requirements/default-py3k.txt
++++ b/requirements/default-py3k.txt
+@@ -1,4 +1,4 @@
+ billiard>=2.7.3.17
+-python-dateutil>=2.0
++python-dateutil>=2.1
+ pytz
+ kombu>=2.4.7,<3.0
+diff --git a/requirements/default.txt b/requirements/default.txt
+index 2f50735..855cfc7 100644
+--- a/requirements/default.txt
++++ b/requirements/default.txt
+@@ -1,3 +1,3 @@
+ billiard>=2.7.3.17
+-python-dateutil>=1.5,<2.0
++python-dateutil>=2.1
+ kombu>=2.4.7,<3.0
+diff --git a/setup.cfg b/setup.cfg
+index 0e537f8..5ac1409 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -15,7 +15,7 @@
+
+ [bdist_rpm]
+ requires = billiard >= 2.7.3.18
+- python-dateutil >= 1.5
++ python-dateutil >= 2.1
+ kombu >= 2.4.8
+
+ [egg_info]
+--
+1.7.10
+
diff --git a/dev-python/celery/files/celery-3.1.10-test.patch b/dev-python/celery/files/celery-3.1.10-test.patch
new file mode 100644
index 00000000000..94fcac92fbf
--- /dev/null
+++ b/dev-python/celery/files/celery-3.1.10-test.patch
@@ -0,0 +1,33 @@
+https://github.com/celery/celery/commit/fb48b1f357f7a416d1413d0056158a74191185af.diff
+diff --git a/celery/tests/backends/test_mongodb.py b/celery/tests/backends/test_mongodb.py
+index f7546d3..a32d9ed 100644
+--- a/celery/tests/backends/test_mongodb.py
++++ b/celery/tests/backends/test_mongodb.py
+@@ -196,9 +196,10 @@ def test_get_task_meta_for(self, mock_get_database):
+ mock_get_database.assert_called_once_with()
+ mock_database.__getitem__.assert_called_once_with(MONGODB_COLLECTION)
+ self.assertEqual(
+- ['status', 'task_id', 'date_done', 'traceback', 'result',
+- 'children'],
+- list(ret_val.keys()))
++ list(sorted(['status', 'task_id', 'date_done', 'traceback',
++ 'result', 'children'])),
++ list(sorted(ret_val.keys())),
++ )
+
+ @patch('celery.backends.mongodb.MongoBackend._get_database')
+ def test_get_task_meta_for_no_result(self, mock_get_database):
+@@ -253,8 +253,8 @@ def test_restore_group(self, mock_get_database):
+ mock_collection.find_one.assert_called_once_with(
+ {'_id': sentinel.taskset_id})
+ self.assertEqual(
+- ['date_done', 'result', 'task_id'],
+- list(ret_val.keys()),
++ list(sorted(['date_done', 'result', 'task_id'])),
++ list(sorted(ret_val.keys())),
+ )
+
+ @patch('celery.backends.mongodb.MongoBackend._get_database')
+#diff -ur celery-3.1.10.orig/celery/tests/backends/test_mongodb.py celery-3.1.10/celery/tests/backends/test_mongodb.py
+#--- celery-3.1.10.orig/celery/tests/backends/test_mongodb.py 2014-02-28 21:43:26.000000000 +0800
+#+++ celery-3.1.10/celery/tests/backends/test_mongodb.py 2014-04-17 11:43:00.818430253 +0800
diff --git a/dev-python/celery/files/celery-3.1.11-test.patch b/dev-python/celery/files/celery-3.1.11-test.patch
new file mode 100644
index 00000000000..b09d464252c
--- /dev/null
+++ b/dev-python/celery/files/celery-3.1.11-test.patch
@@ -0,0 +1,16 @@
+https://github.com/celery/celery/commit/fb48b1f357f7a416d1413d0056158a74191185af.diff
+diff --git a/celery/tests/backends/test_mongodb.py b/celery/tests/backends/test_mongodb.py
+index f7546d3..a32d9ed 100644
+--- a/celery/tests/backends/test_mongodb.py
++++ b/celery/tests/backends/test_mongodb.py
+@@ -253,8 +253,8 @@ def test_restore_group(self, mock_get_database):
+ mock_collection.find_one.assert_called_once_with(
+ {'_id': sentinel.taskset_id})
+ self.assertEqual(
+- ['date_done', 'result', 'task_id'],
+- list(ret_val.keys()),
++ list(sorted(['date_done', 'result', 'task_id'])),
++ list(sorted(ret_val.keys())),
+ )
+
+ @patch('celery.backends.mongodb.MongoBackend._get_database')
diff --git a/dev-python/celery/files/celery-docs.patch b/dev-python/celery/files/celery-docs.patch
new file mode 100644
index 00000000000..5e09718feb2
--- /dev/null
+++ b/dev-python/celery/files/celery-docs.patch
@@ -0,0 +1,19 @@
+# Prevent un-needed objects.inv files
+diff -ur celery-3.0.19.orig/docs/conf.py celery-3.0.19/docs/conf.py
+--- docs/conf.py 2013-04-15 22:51:46.000000000 +0800
++++ docs/conf.py 2013-04-27 21:46:25.070423582 +0800
+@@ -74,14 +74,6 @@
+ # If true, '()' will be appended to :func: etc. cross-reference text.
+ add_function_parentheses = True
+
+-intersphinx_mapping = {
+- 'python': ('http://docs.python.org/dev', None),
+- 'kombu': ('http://kombu.readthedocs.org/en/latest/', None),
+- 'djcelery': ('http://django-celery.readthedocs.org/en/latest', None),
+- 'cyme': ('http://cyme.readthedocs.org/en/latest', None),
+- 'amqp': ('http://amqp.readthedocs.org/en/latest', None),
+-}
+-
+ # The name of the Pygments (syntax highlighting) style to use.
+ pygments_style = 'colorful'
+
diff --git a/dev-python/celery/files/celery.confd b/dev-python/celery/files/celery.confd
new file mode 100644
index 00000000000..b952c9817c1
--- /dev/null
+++ b/dev-python/celery/files/celery.confd
@@ -0,0 +1,70 @@
+# /etc/conf.d/celery
+
+##############################################################################
+# GLOBAL CONFIGURATION
+
+# User and group
+#CELERY_USER="celery"
+#CELERY_GROUP="celery"
+
+# Is this for a django project ?
+# If 'yes' it will automatically setup CELERYD, CELERYCTL
+# CELERYD_MULTI, CELERYBEAT, CELERYEV and CELERYEV_CAM for a
+# django project, but you can still override them here.
+#CELERY_DJANGO="yes"
+
+# This is generaly a good idea to set the environment correctly
+# because a lot of python package try to use HOME on init
+#export HOME="/var/lib/myproject"
+
+# Full path to the python project directory.
+#CELERY_PROJDIR="/var/lib/myproject"
+
+##############################################################################
+# CELERYD
+
+#CELERYD_ENABLED="yes"
+
+# celeryd notes
+#CELERYD_NODES="celery"
+
+# celeryd options
+# Example: 5 minute hard time limit for tasks
+#CELERYD_OPTS="--time-limit=300"
+
+# Location and level of the celeryd log file
+#CELERYD_LOG_FILE=/var/log/celery/celeryd@%n.log
+#CELERYD_LOG_LEVEL="INFO"
+
+# Location of the celeryd pid file
+#CELERYD_PID_FILE=/var/run/celery/celeryd@%n.pid
+
+##############################################################################
+# CELERYBEAT
+
+#CELERYBEAT_ENABLED="yes"
+
+# celerybeat options
+#CELERYBEAT_OPTS=""
+
+# Location and level of the celerybeat log file
+#CELERYBEAT_LOG_FILE=/var/log/celery/celerybeat.log
+#CELERYBEAT_LOG_LEVEL="INFO"
+
+# Location of the celerybeat pid file
+#CELERYBEAT_PID_FILE=/var/run/celery/celerybeat.pid
+
+##############################################################################
+# CELERYEV
+
+#CELERYEV_ENABLED="yes"
+
+# celeryev options
+#CELERYEV_OPTS=""
+
+# Location and level of the celeryev log file
+#CELERYEV_LOG_FILE=/var/log/celery/celeryev.log
+#CELERYEV_LOG_LEVEL="INFO"
+
+# Location of the celeryev pid file
+#CELERYEV_PID_FILE=/var/run/celery/celeryev.pid
diff --git a/dev-python/celery/files/celery.confd-r1 b/dev-python/celery/files/celery.confd-r1
new file mode 100644
index 00000000000..17254e840d1
--- /dev/null
+++ b/dev-python/celery/files/celery.confd-r1
@@ -0,0 +1,50 @@
+# /etc/conf.d/celery
+
+##############################################################################
+# GLOBAL CONFIGURATION
+
+# User and group
+#CELERY_USER="celery"
+#CELERY_GROUP="celery"
+
+# This is generaly a good idea to set the environment correctly
+# because a lot of python package try to use HOME on init
+#export HOME="/var/lib/myproject"
+
+# Full path to the python project directory.
+#CELERY_PROJDIR="/var/lib/myproject"
+
+##############################################################################
+# CELERYD
+
+#CELERYD_ENABLED="yes"
+
+# celeryd notes
+#CELERYD_NODES="celery"
+
+# celeryd options
+# Example: set a 5 minute hard time limit for tasks, disable queue process prefetching and specify an app module from CELERY_PROJDIR
+#CELERYD_OPTS="--time-limit=300 -Ofair -A celeryapp"
+
+# Location and level of the celeryd log file
+#CELERYD_LOG_FILE=/var/log/celery/celeryd@%n.log
+#CELERYD_LOG_LEVEL="INFO"
+
+# Location of the celeryd pid file
+#CELERYD_PID_FILE=/var/run/celery/celeryd@%n.pid
+
+##############################################################################
+# CELERYBEAT
+
+#CELERYBEAT_ENABLED="yes"
+
+# celerybeat options
+#CELERYBEAT_OPTS=""
+
+# Location and level of the celerybeat log file
+#CELERYBEAT_LOG_FILE=/var/log/celery/celerybeat.log
+#CELERYBEAT_LOG_LEVEL="INFO"
+
+# Location of the celerybeat pid file
+#CELERYBEAT_PID_FILE=/var/run/celery/celerybeat.pid
+
diff --git a/dev-python/celery/files/celery.initd b/dev-python/celery/files/celery.initd
new file mode 100644
index 00000000000..67be68b5840
--- /dev/null
+++ b/dev-python/celery/files/celery.initd
@@ -0,0 +1,268 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the BSD license
+# $Id$
+
+extra_started_commands="reload"
+
+depend() {
+ need net
+ use rabbitmq logger dns
+}
+
+CELERYD_ENABLED=${CELERYD_ENABLED:-"no"}
+CELERYD_PID_FILE=${CELERYD_PID_FILE:-"/var/run/celery/celeryd@%n.pid"}
+CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-"/var/log/celery/celeryd@%n.log"}
+CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-"INFO"}
+CELERYD_NODES=${CELERYD_NODES:-"celery"}
+
+CELERYBEAT_ENABLED=${CELERYBEAT_ENABLED:-"no"}
+CELERYBEAT_PID_FILE=${CELERYBEAT_PID_FILE:-"/var/run/celery/celerybeat.pid"}
+CELERYBEAT_LOG_FILE=${CELERYBEAT_LOG_FILE:-"/var/log/celery/celerybeat.log"}
+CELERYBEAT_LOG_LEVEL=${CELERYBEAT_LOG_LEVEL:-"INFO"}
+
+CELERYEV_ENABLED=${CELERYEV_ENABLED:-"no"}
+CELERYEV_PID_FILE=${CELERYEV_PID_FILE:-"/var/run/celery/celeryev.pid"}
+CELERYEV_LOG_FILE=${CELERYEV_LOG_FILE:-"/var/log/celery/celeryev.log"}
+CELERYEV_LOG_LEVEL=${CELERYEV_LOG_LEVEL:-"INFO"}
+
+export CELERY_LOADER
+
+if yesno "$CELERY_DJANGO"; then
+ CELERYD=${CELERYD:-"celeryd_detach"}
+ CELERYCTL=${CELERYCTL:-"python manage.py celery"}
+ CELERYD_MULTI=${CELERYD_MULTI:-"python manage.py celeryd_multi"}
+ CELERYBEAT=${CELERYBEAT:-"python manage.py celerybeat"}
+ CELERYEV=${CELERYEV:-"python manage.py celeryev"}
+ CELERYEV_CAM=${CELERYEV_CAM:-"djcelery.snapshot.Camera"}
+else
+ CELERYD=${CELERYD:-"-m celery.bin.celeryd_detach"}
+ CELERYD_MULTI=${CELERYD_MULTI:-"celeryd-multi"}
+ CELERYCTL=${CELERYCTL:-"celeryctl"}
+ CELERYBEAT=${CELERYBEAT:-"celerybeat"}
+ CELERYEV=${CELERYEV:-"celeryev"}
+fi
+
+CELERYD_OPTS="$CELERYD_OPTS"
+CELERYBEAT_OPTS="$CELERYBEAT_OPTS -f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL"
+CELERYEV_OPTS="$CELERYEV_OPTS -f $CELERYEV_LOG_FILE -l $CELERYEV_LOG_LEVEL -c $CELERYEV_CAM"
+
+create_dirs() {
+ local logfile="$1"
+ local pidfile="$2"
+ local logdir=$(dirname $logfile)
+ local piddir=$(dirname $pidfile)
+
+ checkpath -d -q -m 0750 -o ${CELERY_USER:-"root"}:${CELERY_GROUP:-"root"} $logdir $piddir
+}
+
+if [ -n "$CELERY_USER" ]; then
+ DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERY_USER"
+fi
+if [ -n "$CELERY_GROUP" ]; then
+ DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERY_GROUP"
+fi
+
+checkconfig() {
+ if [ ! -c /dev/null ]; then
+ eerror "/dev/null is not a character device!"
+ return 1
+ fi
+
+ if [ -z "$CELERY_PROJDIR" ]; then
+ eerror "Missing CELERY_PROJDIR variable"
+ return 1
+ fi
+
+ if yesno "$CELERYD_ENABLED"; then
+ create_dirs "$CELERYD_LOG_FILE" "$CELERYD_PID_FILE"
+ fi
+
+ if yesno "$CELERYBEAT_ENABLED"; then
+ create_dirs "$CELERYBEAT_LOG_FILE" "$CELERYBEAT_PID_FILE"
+ fi
+
+ if yesno "$CELERYEV_ENABLED"; then
+ create_dirs "$CELERYEV_LOG_FILE" "$CELERYEV_PID_FILE"
+
+ if [ -z "$CELERYEV_CAM" ]; then
+ eerror "Missing CELERYEV_CAM variable"
+ return 1
+ fi
+ fi
+
+ return 0
+}
+
+celery_chdir() {
+ if [ -n "$CELERY_PROJDIR" ]; then
+ cd "$CELERY_PROJDIR"
+ fi
+}
+
+wait_pid () {
+ local pidfile=$1
+ local timeout=${STOPTIMEOUT:-"10"}
+ local PID=$(cat "${pidfile}" 2>/dev/null)
+
+ while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do
+ kill -0 $PID 2>/dev/null || break
+ kill -TERM "$PID"
+ timeout=$(($timeout - 1))
+ sleep 0.5
+ done
+
+ [[ "${timeout}" -lt 1 ]] && return 1
+ [ -f $pidfile ] && rm -f $pidfile
+ return 0
+}
+
+# celeryd
+start_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ $CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS \
+ --pidfile="$CELERYD_PID_FILE" \
+ --logfile="$CELERYD_LOG_FILE" \
+ --loglevel="$CELERYD_LOG_LEVEL" \
+ --cmd="$CELERYD" \
+ $CELERYD_OPTS
+}
+
+stop_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ local timeout=${STOPTIMEOUT:-"10"}
+
+ $CELERYD_MULTI stop $CELERYD_NODES --pidfile="$CELERYD_PID_FILE" || return 1
+
+ # Wait for each node
+ for node in $CELERYD_NODES; do
+ local pidfile=${CELERYD_PID_FILE/\%n/$node}
+ local PID=$(cat "${pidfile}" 2>/dev/null)
+ while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do
+ kill -0 $PID 2>/dev/null || break
+ timeout=$(($timeout - 1))
+ sleep 0.5
+ done
+ done
+
+ [[ "${timeout}" -lt 1 ]] && return 1
+ return 0
+}
+
+restart_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ $CELERYD_MULTI restart $CELERYD_NODES $DAEMON_OPTS \
+ --pidfile="$CELERYD_PID_FILE" \
+ --logfile="$CELERYD_LOG_FILE" \
+ --loglevel="$CELERYD_LOG_LEVEL" \
+ --cmd="$CELERYD" \
+ $CELERYD_OPTS
+}
+
+# celeryev
+start_ev() {
+ yesno "${CELERYEV_ENABLED}" || return 0
+
+ ebegin "Starting celeryev"
+ $CELERYEV $CELERYEV_OPTS $DAEMON_OPTS --detach \
+ --pidfile="$CELERYEV_PID_FILE"
+ eend $?
+}
+
+
+stop_ev() {
+ yesno "${CELERYEV_ENABLED}" || return 0
+
+ ebegin "Stopping celeryev"
+ if [ -f "$CELERYEV_PID_FILE" ]; then
+ wait_pid "$CELERYEV_PID_FILE"
+ else
+ ewarn "not running"
+ fi
+ eend $?
+}
+
+# celerybeat
+start_beat() {
+ yesno "${CELERYBEAT_ENABLED}" || return 0
+
+ ebegin "Starting celerybeat"
+ $CELERYBEAT $CELERYBEAT_OPTS $DAEMON_OPTS --detach \
+ --pidfile="$CELERYBEAT_PID_FILE"
+ eend $?
+}
+
+
+stop_beat() {
+ yesno "${CELERYBEAT_ENABLED}" || return 0
+
+ ebegin "Stopping celerybeat"
+ if [ -f "$CELERYBEAT_PID_FILE" ]; then
+ wait_pid "$CELERYBEAT_PID_FILE"
+ else
+ ewarn "not running"
+ fi
+ eend $?
+}
+
+
+start() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Starting ${SVCNAME}"
+ eindent
+
+ celery_chdir && \
+ start_workers && \
+ start_beat && \
+ start_ev || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+stop() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Stopping ${SVCNAME}"
+ eindent
+
+ celery_chdir
+ stop_workers || cr=1
+ stop_beat || cr=1
+ stop_ev || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+reload() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Restarting ${SVCNAME}"
+ eindent
+
+ celery_chdir
+ restart_workers || cr=1
+ stop_beat && start_beat || cr=1
+ stop_ev && start_ev || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+status() {
+ checkconfig || return 1
+
+ celery_chdir && \
+ ${CELERYCTL} status
+}
diff --git a/dev-python/celery/files/celery.initd-r1 b/dev-python/celery/files/celery.initd-r1
new file mode 100644
index 00000000000..2fcd6d95fbd
--- /dev/null
+++ b/dev-python/celery/files/celery.initd-r1
@@ -0,0 +1,214 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the BSD license
+# $Id$
+
+extra_started_commands="reload"
+
+depend() {
+ need net
+ use rabbitmq redis logger dns
+}
+
+CELERYD_ENABLED=${CELERYD_ENABLED:-"no"}
+CELERYD_PID_FILE=${CELERYD_PID_FILE:-"/var/run/celery/celeryd@%n.pid"}
+CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-"/var/log/celery/celeryd@%n.log"}
+CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-"INFO"}
+CELERYD_NODES=${CELERYD_NODES:-"celery"}
+
+CELERYBEAT_ENABLED=${CELERYBEAT_ENABLED:-"no"}
+CELERYBEAT_PID_FILE=${CELERYBEAT_PID_FILE:-"/var/run/celery/celerybeat.pid"}
+CELERYBEAT_LOG_FILE=${CELERYBEAT_LOG_FILE:-"/var/log/celery/celerybeat.log"}
+CELERYBEAT_LOG_LEVEL=${CELERYBEAT_LOG_LEVEL:-"INFO"}
+
+export CELERY_LOADER
+
+CELERYD_MULTI=${CELERYD_MULTI:-"celery multi"}
+CELERYCTL=${CELERYCTL:-"celery"}
+CELERYBEAT=${CELERYBEAT:-"celery beat"}
+
+CELERYD_OPTS="$CELERYD_OPTS"
+CELERYBEAT_OPTS="$CELERYBEAT_OPTS -f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL"
+
+create_dirs() {
+ local logfile="$1"
+ local pidfile="$2"
+ local logdir=$(dirname $logfile)
+ local piddir=$(dirname $pidfile)
+
+ checkpath -d -q -m 0750 -o ${CELERY_USER:-"root"}:${CELERY_GROUP:-"root"} $logdir $piddir
+}
+
+if [ -n "$CELERY_USER" ]; then
+ DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERY_USER"
+fi
+if [ -n "$CELERY_GROUP" ]; then
+ DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERY_GROUP"
+fi
+
+checkconfig() {
+ if [ ! -c /dev/null ]; then
+ eerror "/dev/null is not a character device!"
+ return 1
+ fi
+
+ if [ -z "$CELERY_PROJDIR" ]; then
+ eerror "Missing CELERY_PROJDIR variable"
+ return 1
+ fi
+
+ if yesno "$CELERYD_ENABLED"; then
+ create_dirs "$CELERYD_LOG_FILE" "$CELERYD_PID_FILE"
+ fi
+
+ if yesno "$CELERYBEAT_ENABLED"; then
+ create_dirs "$CELERYBEAT_LOG_FILE" "$CELERYBEAT_PID_FILE"
+ fi
+
+ return 0
+}
+
+celery_chdir() {
+ if [ -n "$CELERY_PROJDIR" ]; then
+ cd "$CELERY_PROJDIR"
+ fi
+}
+
+wait_pid () {
+ local pidfile=$1
+ local timeout=${STOPTIMEOUT:-"10"}
+ local PID=$(cat "${pidfile}" 2>/dev/null)
+
+ while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do
+ kill -0 $PID 2>/dev/null || break
+ kill -TERM "$PID"
+ timeout=$(($timeout - 1))
+ sleep 0.5
+ done
+
+ [[ "${timeout}" -lt 1 ]] && return 1
+ [ -f $pidfile ] && rm -f $pidfile
+ return 0
+}
+
+# celeryd
+start_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ $CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS \
+ --pidfile="$CELERYD_PID_FILE" \
+ --logfile="$CELERYD_LOG_FILE" \
+ --loglevel="$CELERYD_LOG_LEVEL" \
+ $CELERYD_OPTS
+}
+
+stop_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ local timeout=${STOPTIMEOUT:-"10"}
+
+ $CELERYD_MULTI stop $CELERYD_NODES --pidfile="$CELERYD_PID_FILE" || return 1
+
+ # Wait for each node
+ for node in $CELERYD_NODES; do
+ local pidfile=${CELERYD_PID_FILE/\%n/$node}
+ local PID=$(cat "${pidfile}" 2>/dev/null)
+ while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do
+ kill -0 $PID 2>/dev/null || break
+ timeout=$(($timeout - 1))
+ sleep 0.5
+ done
+ done
+
+ [[ "${timeout}" -lt 1 ]] && return 1
+ return 0
+}
+
+restart_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ $CELERYD_MULTI restart $CELERYD_NODES $DAEMON_OPTS \
+ --pidfile="$CELERYD_PID_FILE" \
+ --logfile="$CELERYD_LOG_FILE" \
+ --loglevel="$CELERYD_LOG_LEVEL" \
+ $CELERYD_OPTS
+}
+
+# celerybeat
+start_beat() {
+ yesno "${CELERYBEAT_ENABLED}" || return 0
+
+ ebegin "Starting celerybeat"
+ $CELERYBEAT $CELERYBEAT_OPTS $DAEMON_OPTS --detach \
+ --pidfile="$CELERYBEAT_PID_FILE"
+ eend $?
+}
+
+
+stop_beat() {
+ yesno "${CELERYBEAT_ENABLED}" || return 0
+
+ ebegin "Stopping celerybeat"
+ if [ -f "$CELERYBEAT_PID_FILE" ]; then
+ wait_pid "$CELERYBEAT_PID_FILE"
+ else
+ ewarn "not running"
+ fi
+ eend $?
+}
+
+
+start() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Starting ${SVCNAME}"
+ eindent
+
+ celery_chdir && \
+ start_workers && \
+ start_beat || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+stop() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Stopping ${SVCNAME}"
+ eindent
+
+ celery_chdir
+ stop_workers || cr=1
+ stop_beat || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+reload() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Restarting ${SVCNAME}"
+ eindent
+
+ celery_chdir
+ restart_workers || cr=1
+ stop_beat && start_beat || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+status() {
+ checkconfig || return 1
+
+ celery_chdir && \
+ ${CELERYCTL} status
+}
diff --git a/dev-python/celery/metadata.xml b/dev-python/celery/metadata.xml
new file mode 100644
index 00000000000..1808f87d128
--- /dev/null
+++ b/dev-python/celery/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">celery</remote-id>
+ </upstream>
+ <use>
+ <flag name='redis'>Enables redis support</flag>
+ <flag name="sqs">Enables Amazon SQS transport module for celery</flag>
+ <flag name="zeromq">Enable logging and deployment via ZeroMQ</flag>
+ <flag name="yaml">Enable support of yaml as a configuration file format</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/cement/Manifest b/dev-python/cement/Manifest
new file mode 100644
index 00000000000..5ca96b3f6fc
--- /dev/null
+++ b/dev-python/cement/Manifest
@@ -0,0 +1 @@
+DIST cement-2.0.2.tar.gz 81009 SHA256 af788557a1f4ebcbd0e0949f0ee0b627f8e03844f7e76902c3cdb3959cf11e38 SHA512 5df35bdaa714a9b11d5b0154658333ea28a8e50e8910ee7d900cc7342dda8ce547d5400990240b89b6c808bb91c72b785f66c31c057cf7b782d16efd0c21a4b9 WHIRLPOOL c7997e238ac698f8e067586783f187ef6d5c0a8f175dc46a961205397f77fd8b9bce6f8e5b4aea87d5456007a43e18de585589df90799ea94f98f1ac8c4fa312
diff --git a/dev-python/cement/cement-2.0.2.ebuild b/dev-python/cement/cement-2.0.2.ebuild
new file mode 100644
index 00000000000..e24041324bc
--- /dev/null
+++ b/dev-python/cement/cement-2.0.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 versionator
+
+PV_MAJOR_MINOR=$(get_version_component_range 1-2)
+
+DESCRIPTION="CLI Application Framework for Python"
+HOMEPAGE="http://builtoncement.com/"
+SRC_URI="http://builtoncement.com/${PN}/${PV_MAJOR_MINOR}/source/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test doc"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+
+DOCS=( ChangeLog CONTRIBUTORS README.md )
+PATCHES=( "${FILESDIR}"/tests-installation.patch )
+# https://github.com/cement/cement/issues/185
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" setup.py build_sphinx || die "couldn't build docs"
+ fi
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/build/html/* )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cement/files/tests-installation.patch b/dev-python/cement/files/tests-installation.patch
new file mode 100644
index 00000000000..d93926b2100
--- /dev/null
+++ b/dev-python/cement/files/tests-installation.patch
@@ -0,0 +1,19 @@
+commit a952b0a202e05dd2a1222840be70da77a62095b5
+Author: yac <yac@blesmrt.net>
+Date: Fri Mar 29 20:21:49 2013 +0100
+
+ fixes 185
+
+diff --git a/setup.py b/setup.py
+index 31225f7..4544edd 100644
+--- a/setup.py
++++ b/setup.py
+@@ -29,7 +29,7 @@ setup(name='cement',
+ author_email='derks@bjdierkes.com',
+ url='http://builtoncement.org',
+ license='BSD',
+- packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
++ packages=find_packages(exclude=['ez_setup', 'examples', 'tests*']),
+ include_package_data=True,
+ zip_safe=False,
+ test_suite='nose.collector',
diff --git a/dev-python/cement/metadata.xml b/dev-python/cement/metadata.xml
new file mode 100644
index 00000000000..e81878f9464
--- /dev/null
+++ b/dev-python/cement/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Cement is an advanced CLI Application Framework for Python. Its goal is to introduce a standard, and feature-full platform for both simple and complex command line applications as well as support rapid development needs without sacrificing quality.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/dev-python/certifi/Manifest b/dev-python/certifi/Manifest
new file mode 100644
index 00000000000..7a410e57f13
--- /dev/null
+++ b/dev-python/certifi/Manifest
@@ -0,0 +1,2 @@
+DIST certifi-14.05.14.tar.gz 168608 SHA256 1e1bcbacd6357c151ae37cf0290dcc809721d32ce21fd6b7339568f3ddef1b69 SHA512 5edba0cc432c27212e31085fb3c2f2ded6fa177d716116111517c25b980d9fc206a9a6d47e2c001762e951ff50203b269d0eb245a039df20188b1136f3b700b2 WHIRLPOOL 54c3f7a8da25693f5df890c5bc348242350a7a63bc0094d5fbb08a4f89c79fcc3ce0bbf0cdeac7d2dfca5ebe5601a7ae5ec4fef492a6cf9afe6ecf5119d47f8b
+DIST certifi-2015.04.28.tar.gz 370682 SHA256 99785e6cf715cdcde59dee05a676e99f04835a71e7ced201ca317401c322ba96 SHA512 c63287d9e0814226a1eb6ea0f6d1a53f0fd88995c0c2541e404efd0c70471fae01cb56ecca5425c6754342c28c96948ba912bd860bf2d336bba95a0b751f8f99 WHIRLPOOL e235b016ca30332359f9172cf907f9372714371efcccf5bc2b82e08538ca1620f6854697201a6a3d1de5d25e74f5b3fede68e3c46255a9cd28b1f87b8dfa97b2
diff --git a/dev-python/certifi/certifi-14.05.14.ebuild b/dev-python/certifi/certifi-14.05.14.ebuild
new file mode 100644
index 00000000000..e0d711a7f31
--- /dev/null
+++ b/dev-python/certifi/certifi-14.05.14.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package for providing Mozilla's CA Bundle"
+HOMEPAGE="http://python-requests.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ppc ppc64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/certifi/certifi-2015.04.28.ebuild b/dev-python/certifi/certifi-2015.04.28.ebuild
new file mode 100644
index 00000000000..9bab36ba361
--- /dev/null
+++ b/dev-python/certifi/certifi-2015.04.28.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package for providing Mozilla's CA Bundle"
+HOMEPAGE="http://certifi.io/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/certifi/metadata.xml b/dev-python/certifi/metadata.xml
new file mode 100644
index 00000000000..f5b4e973683
--- /dev/null
+++ b/dev-python/certifi/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">certifi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cffi/Manifest b/dev-python/cffi/Manifest
new file mode 100644
index 00000000000..5100f95b393
--- /dev/null
+++ b/dev-python/cffi/Manifest
@@ -0,0 +1,6 @@
+DIST cffi-0.8.6.tar.gz 196835 SHA256 2532d9e3af9e3c6d0f710fc98b0295b563c7f39cfd97dd2242bd36fbf4900610 SHA512 b913d459bf0d355f0cb42fa0587a940c227d6765450033b14ab4d5281173cd1875cd6872911bb4f0b567cc1c5b0ca330615ec5f6ba205b25c41b683ae8c77790 WHIRLPOOL 4a03a077f15f943e0f06acf1bc10572b19680379e36805dbfc3dfffb8a5d735d28d9bab38e2d233f3a347fc03cede8126cc2ce017c6e3a0896b9baecddfae39f
+DIST cffi-0.9.2.tar.gz 209160 SHA256 1988ce7ff9c64ecd5077776175e90fd8f0a8c827cb241a23647175ce08126bb2 SHA512 93371a1189955d3f794915f8e7c6f6b9ab36cd531ff0ddeeb2108364c94dbf4dbe5d7d3f75e0aa52576d1a59559c13ec3e0f68dec4d52e6221e683ac519b850c WHIRLPOOL dcdf3a35b35607a4982035e75332c0e2f87d2df5cca9df77c48c5d57cc783d341b77fd95f71681877695b03a12564f8f28717a975bd51e832f496b71f73c3736
+DIST cffi-1.0.2.tar.gz 317360 SHA256 a5a8937f8a1e3c65d5ff9258137d2d08b6ca6dbee7c55d42af3d18930940ada3 SHA512 535b8295caedca418eb3f45041e45135d23f399a936561961be5bb281821e53bcfc124ea65b18dfc1b45037f4d112191d47cca5dcfef1479a81ffb315a70ae90 WHIRLPOOL d4cb8af18470e7a07f926fa452f82ae583a544d61072aab4302adebefb25bc2bc305c56d681fdb456479542032dbc5b5a76fe0de7fa7b81a14f7d046da931d6e
+DIST cffi-1.0.3.tar.gz 317372 SHA256 4fdede789f446fb6c57eed8cf5eb43d2a582a34536ff2cd1edf7256e17e9046c SHA512 a5f2b0ab356fe51b1d9f3f2e4bfadbc11bb10ec7f9458c019f3707b738dded1953723f797a8b37ed768cd14fe86f674d07d2cd5ce166406abaa1a68b443293b1 WHIRLPOOL 176c9acb1fb02c2e074d371b337f307b3cb7a473a05c016aa160c0caf6f680be1fcfaa6b9756aa88e7ca8008e5b4e47b58ab8de7078e97d53813dec51525eac3
+DIST cffi-1.1.0.tar.gz 323962 SHA256 d8c1dcef421bf3b9335925dd5bf39c3fad923a3cbd814c3664d754638b32355e SHA512 c9725869ffb8a10b83484b4b90ee02c66aa38a439334a404e043452de894f97f37050d7ba2467531820a6fdc7ee93a529078734e22b3637c5116d7d6d4b86ca0 WHIRLPOOL 4747675071ed4223def2b2a17429c1cadd2bfcae582ada6167f076065b6dc91fe06775e1d31c5f65fa68ea597dfdca36d9bab89e263affa1c25fe7c8f0e65d4a
+DIST cffi-1.1.2.tar.gz 326758 SHA256 390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339 SHA512 d146984013b63382ea64bd2d6188cdbf9154cf83d66bf4dbb9353f1daea66f9eae07c6da47e152c5758d3458a742adde0310f71c792eb0a80950d7f857bfb943 WHIRLPOOL 02b92f0d13b02e351ba63e55a731c0b5480ae0b376c99a8dc1a256b3b55bf0119b4238dca88171605c1348b0847a6ff305ba4ec69cd1b42b9950708f42d6067e
diff --git a/dev-python/cffi/cffi-0.8.6.ebuild b/dev-python/cffi/cffi-0.8.6.ebuild
new file mode 100644
index 00000000000..e7446c74ba2
--- /dev/null
+++ b/dev-python/cffi/cffi-0.8.6.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Foreign Function Interface for Python calling C code"
+HOMEPAGE="http://cffi.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND="virtual/libffi
+ dev-python/pycparser[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# Avoid race on _configtest.c (distutils/command/config.py:_gen_temp_sourcefile)
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -x -v --ignore testing/test_zintegration.py c/ testing/ || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -r doc/build/
+}
diff --git a/dev-python/cffi/cffi-0.9.2.ebuild b/dev-python/cffi/cffi-0.9.2.ebuild
new file mode 100644
index 00000000000..3d6e250a56c
--- /dev/null
+++ b/dev-python/cffi/cffi-0.9.2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Foreign Function Interface for Python calling C code"
+HOMEPAGE="http://cffi.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND="virtual/libffi
+ dev-python/pycparser[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# Avoid race on _configtest.c (distutils/command/config.py:_gen_temp_sourcefile)
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -x -v --ignore testing/test_zintegration.py c/ testing/ || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cffi/cffi-1.0.2.ebuild b/dev-python/cffi/cffi-1.0.2.ebuild
new file mode 100644
index 00000000000..1e2899ad1b7
--- /dev/null
+++ b/dev-python/cffi/cffi-1.0.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Foreign Function Interface for Python calling C code"
+HOMEPAGE="http://cffi.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND="
+ virtual/libffi
+ dev-python/pycparser[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# Avoid race on _configtest.c (distutils/command/config.py:_gen_temp_sourcefile)
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -x -v --ignore testing/test_zintegration.py c/ testing/ || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cffi/cffi-1.0.3.ebuild b/dev-python/cffi/cffi-1.0.3.ebuild
new file mode 100644
index 00000000000..1e2899ad1b7
--- /dev/null
+++ b/dev-python/cffi/cffi-1.0.3.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Foreign Function Interface for Python calling C code"
+HOMEPAGE="http://cffi.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND="
+ virtual/libffi
+ dev-python/pycparser[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# Avoid race on _configtest.c (distutils/command/config.py:_gen_temp_sourcefile)
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -x -v --ignore testing/test_zintegration.py c/ testing/ || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cffi/cffi-1.1.0.ebuild b/dev-python/cffi/cffi-1.1.0.ebuild
new file mode 100644
index 00000000000..df453d99c53
--- /dev/null
+++ b/dev-python/cffi/cffi-1.1.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Foreign Function Interface for Python calling C code"
+HOMEPAGE="http://cffi.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND="
+ virtual/libffi
+ dev-python/pycparser[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-test-backport.patch )
+
+# Avoid race on _configtest.c (distutils/command/config.py:_gen_temp_sourcefile)
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -x -v --ignore testing/test_zintegration.py c/ testing/ || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cffi/cffi-1.1.2.ebuild b/dev-python/cffi/cffi-1.1.2.ebuild
new file mode 100644
index 00000000000..ee778887d15
--- /dev/null
+++ b/dev-python/cffi/cffi-1.1.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Foreign Function Interface for Python calling C code"
+HOMEPAGE="http://cffi.readthedocs.org/ https://pypi.python.org/pypi/cffi"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND="
+ virtual/libffi
+ dev-python/pycparser[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# Avoid race on _configtest.c (distutils/command/config.py:_gen_temp_sourcefile)
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -x -v --ignore testing/test_zintegration.py c/ testing/ || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cffi/files/cffi-1.1.0-test-backport.patch b/dev-python/cffi/files/cffi-1.1.0-test-backport.patch
new file mode 100644
index 00000000000..2609e333991
--- /dev/null
+++ b/dev-python/cffi/files/cffi-1.1.0-test-backport.patch
@@ -0,0 +1,44 @@
+# HG changeset patch
+# User Armin Rigo <arigo@tunes.org>
+# Date 1433182838 -7200
+# Node ID 34d5fd98bc84d202dd6692906f21509bb5abefaf
+# Parent feea0af4a450e0ff0045f1b7c0a5f430c97520f9
+Issue #204: second try
+
+diff --git a/testing/cffi1/test_zdist.py b/testing/cffi1/test_zdist.py
+--- a/testing/cffi1/test_zdist.py
++++ b/testing/cffi1/test_zdist.py
+@@ -29,13 +29,17 @@
+ if hasattr(self, 'saved_cwd'):
+ os.chdir(self.saved_cwd)
+
+- def run(self, args):
++ def run(self, args, cwd=None):
+ env = os.environ.copy()
+- newpath = self.rootdir
+- if 'PYTHONPATH' in env:
+- newpath += os.pathsep + env['PYTHONPATH']
+- env['PYTHONPATH'] = newpath
+- subprocess.check_call([self.executable] + args, env=env)
++ # a horrible hack to prevent distutils from finding ~/.pydistutils.cfg
++ # (there is the --no-user-cfg option, but not in Python 2.6...)
++ env['HOME'] = '/this/path/does/not/exist'
++ if cwd is None:
++ newpath = self.rootdir
++ if 'PYTHONPATH' in env:
++ newpath += os.pathsep + env['PYTHONPATH']
++ env['PYTHONPATH'] = newpath
++ subprocess.check_call([self.executable] + args, cwd=cwd, env=env)
+
+ def _prepare_setuptools(self):
+ if hasattr(TestDist, '_setuptools_ready'):
+@@ -44,8 +48,7 @@
+ import setuptools
+ except ImportError:
+ py.test.skip("setuptools not found")
+- subprocess.check_call([self.executable, 'setup.py', 'egg_info'],
+- cwd=self.rootdir)
++ self.run(['setup.py', 'egg_info'], cwd=self.rootdir)
+ TestDist._setuptools_ready = True
+
+ def check_produced_files(self, content, curdir=None):
diff --git a/dev-python/cffi/files/issue177_prot_exec.patch b/dev-python/cffi/files/issue177_prot_exec.patch
new file mode 100644
index 00000000000..8dbcf07c005
--- /dev/null
+++ b/dev-python/cffi/files/issue177_prot_exec.patch
@@ -0,0 +1,79 @@
+# HG changeset patch
+# User Armin Rigo <arigo@tunes.org>
+# Date 1424942568 -3600
+# Node ID c7edb1e84eb3c29cac0674790cb4efcbcf1683b2
+# Parent 95e0563201602a2e1a8d83cc95a6a70048dfeece
+issue #177: workaround for some Linux kernels
+
+diff --git a/c/malloc_closure.h b/c/malloc_closure.h
+--- a/c/malloc_closure.h
++++ b/c/malloc_closure.h
+@@ -14,6 +14,54 @@
+ # endif
+ #endif
+
++/* On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC.
++
++ This is, apparently, an undocumented change to ffi_prep_closure():
++ depending on the Linux kernel we're running on, we must give it a
++ mmap that is either PROT_READ|PROT_WRITE|PROT_EXEC or only
++ PROT_READ|PROT_WRITE. In the latter case, just trying to obtain a
++ mmap with PROT_READ|PROT_WRITE|PROT_EXEC would kill our process(!),
++ but in that situation libffi is fine with only PROT_READ|PROT_WRITE.
++ There is nothing in the libffi API to know that, though, so we have
++ to guess by parsing /proc/self/status. "Meh."
++ */
++#ifdef __linux__
++#include <stdlib.h>
++
++static int emutramp_enabled = -1;
++
++static int
++emutramp_enabled_check (void)
++{
++ char *buf = NULL;
++ size_t len = 0;
++ FILE *f;
++ int ret;
++ f = fopen ("/proc/self/status", "r");
++ if (f == NULL)
++ return 0;
++ ret = 0;
++
++ while (getline (&buf, &len, f) != -1)
++ if (!strncmp (buf, "PaX:", 4))
++ {
++ char emutramp;
++ if (sscanf (buf, "%*s %*c%c", &emutramp) == 1)
++ ret = (emutramp == 'E');
++ break;
++ }
++ free (buf);
++ fclose (f);
++ return ret;
++}
++
++#define is_emutramp_enabled() (emutramp_enabled >= 0 ? emutramp_enabled \
++ : (emutramp_enabled = emutramp_enabled_check ()))
++#else
++#define is_emutramp_enabled() 0
++#endif
++
++
+ /* 'allocate_num_pages' is dynamically adjusted starting from one
+ page. It grows by a factor of PAGE_ALLOCATION_GROWTH_RATE. This is
+ meant to handle both the common case of not needing a lot of pages,
+@@ -77,9 +125,12 @@
+ if (item == NULL)
+ return;
+ #else
++ int prot = PROT_READ | PROT_WRITE | PROT_EXEC;
++ if (is_emutramp_enabled ())
++ prot &= ~PROT_EXEC;
+ item = (union mmaped_block *)mmap(NULL,
+ allocate_num_pages * _pagesize,
+- PROT_READ | PROT_WRITE | PROT_EXEC,
++ prot,
+ MAP_PRIVATE | MAP_ANONYMOUS,
+ -1,
+ 0);
diff --git a/dev-python/cffi/metadata.xml b/dev-python/cffi/metadata.xml
new file mode 100644
index 00000000000..26eeef00193
--- /dev/null
+++ b/dev-python/cffi/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cffi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cfgio/Manifest b/dev-python/cfgio/Manifest
new file mode 100644
index 00000000000..f2d8b22d17b
--- /dev/null
+++ b/dev-python/cfgio/Manifest
@@ -0,0 +1 @@
+DIST cfgio-0.1.2.tar.gz 17221 SHA256 4247ccbb38fce0de7601ab04d05e39789c661efaed7e891e0cc76ea12529377e SHA512 62b3d93097e088ca6a54efbeedfc42f2b565ec0692b2ed7b1f2ea028b087e3fea1d109ca4d268aa8d9cb499eecbd4c0b10c3092c8754809bf74ee62c03b947cc WHIRLPOOL 7e3b98da25d37439030966e3fc59e50040dff98bdf54925af54594aac5eaba87e2002354a26a836ce32af9ad9961e20a2a113f0c4f493e3e67ad96bd1104fa79
diff --git a/dev-python/cfgio/cfgio-0.1.2.ebuild b/dev-python/cfgio/cfgio-0.1.2.ebuild
new file mode 100644
index 00000000000..bcb4a548829
--- /dev/null
+++ b/dev-python/cfgio/cfgio-0.1.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for reading and writing configuration file formats found on a *nix systems"
+HOMEPAGE="https://github.com/ercpe/cfgio"
+SRC_URI="https://github.com/ercpe/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-2"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/cfgio/metadata.xml b/dev-python/cfgio/metadata.xml
new file mode 100644
index 00000000000..b931f79aa28
--- /dev/null
+++ b/dev-python/cfgio/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ercpe/cfgio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cfgparse/Manifest b/dev-python/cfgparse/Manifest
new file mode 100644
index 00000000000..7eeace5d13c
--- /dev/null
+++ b/dev-python/cfgparse/Manifest
@@ -0,0 +1 @@
+DIST cfgparse-1.3.zip 98401 SHA256 adc830323e4d9872af1a81364dd18e958b5550c3cc2d1f05929ec2634147f2f9 SHA512 95d5396f5ca681f67ab701edf6ddd45776f8433c4b5ca08ee7796fd5ac866a709436257e4ddaaaf010dd6b5917d553dc4edceda05fb15720b03691d7c663a55d WHIRLPOOL a8c99dbeed598e6d4b4464c105080480091798529f7c66000072f972d54308918d73b7907fe9f8f05a5876b8bebbb4c8e138bcce3f1393212cef66ddd98ce78a
diff --git a/dev-python/cfgparse/cfgparse-1.3-r1.ebuild b/dev-python/cfgparse/cfgparse-1.3-r1.ebuild
new file mode 100644
index 00000000000..634c837bd90
--- /dev/null
+++ b/dev-python/cfgparse/cfgparse-1.3-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Config File parser for Python"
+HOMEPAGE="http://cfgparse.sourceforge.net http://pypi.python.org/pypi/cfgparse"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="PSF-2.3"
+SLOT="0"
+KEYWORDS="amd64 ia64 x86"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+DOCS="README.txt docs/cfgparse.pdf"
diff --git a/dev-python/cfgparse/metadata.xml b/dev-python/cfgparse/metadata.xml
new file mode 100644
index 00000000000..838bcf974ab
--- /dev/null
+++ b/dev-python/cfgparse/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cfgparse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cgkit/Manifest b/dev-python/cgkit/Manifest
new file mode 100644
index 00000000000..12699435122
--- /dev/null
+++ b/dev-python/cgkit/Manifest
@@ -0,0 +1,2 @@
+DIST cgkit-2.0.0-py2k.tar.gz 885682 SHA256 a665037f06bd64dcdb519bb0baa7a8d577b788860a627fd850d5b72a08a3746f SHA512 44e57cafc3ba3aa824c44fe4ad04f350dfe053cafa09523acab220e8a5db45dde042b4fcc3e444dc3c248a43ddd94faac6875f579c2063e6c8feba7841472f7c WHIRLPOOL 0507024920bf84dec311e617c932b6ea2827b4609c915f38fce2baa0ac948b96b3fa51ec82a2770796081f88b3bf0d81f72439e65a87a6e0db4d24ef874b4b9b
+DIST cgkit-2.0.0-py3k.tar.gz 885012 SHA256 6d3fb3f02b4a55544c0698b6627054796d36d338704eb1788228cb6523ec2846 SHA512 0c721d728e2cacb3a5518bfdf49810793a7e4a7efdec54a95d9b8b64099996452a08193c90e1b76f57852c3593bf07e4361ba20c17ea3565413d4997e9cf6c2e WHIRLPOOL 95d53d7fb4b5db2ef680051f0d4bcd86bbd189594a4ca99379104d2b306877806a1a4d4de9a8bcb55aa870ffbd52cd2ef8754cb9857b5561e6f6ca5a26b2d1d0
diff --git a/dev-python/cgkit/cgkit-2.0.0.ebuild b/dev-python/cgkit/cgkit-2.0.0.ebuild
new file mode 100644
index 00000000000..06d206ed9cf
--- /dev/null
+++ b/dev-python/cgkit/cgkit-2.0.0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils scons-utils toolchain-funcs
+
+MY_P="${P/_/}"
+
+DESCRIPTION="Python library for creating 3D images"
+HOMEPAGE="http://cgkit.sourceforge.net"
+SRC_URI="$(python_gen_cond_dep mirror://sourceforge/${PN}/${PN}/${P}/${P}-py2k.tar.gz 'python2*')
+ $(python_gen_cond_dep mirror://sourceforge/${PN}/${PN}/${P}/${P}-py3k.tar.gz 'python3*')"
+
+LICENSE="LGPL-2.1 MPL-1.1 GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="3ds"
+
+RDEPEND=">=dev-libs/boost-1.48[python,${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/pyprotocols[${PYTHON_USEDEP}]' 'python2*')
+ dev-python/pyopengl[${PYTHON_USEDEP}]
+ dev-python/pygame[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ 3ds? ( ~media-libs/lib3ds-1.3.0 )"
+DEPEND="${RDEPEND}
+ dev-util/scons"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+cgkit_unpack() {
+ local tarball
+ if [[ ${EPYTHON} == python3* ]]; then
+ tarball=${P}-py3k.tar.gz
+ else
+ tarball=${P}-py2k.tar.gz
+ fi
+ mkdir "${BUILD_DIR}" || die
+ tar -C "${BUILD_DIR}" -x --strip-components 1 -f "${DISTDIR}/${tarball}" || die
+}
+
+src_unpack() {
+ python_parallel_foreach_impl cgkit_unpack
+ mkdir "${S}" || die
+}
+
+python_prepare_all() {
+ return 0
+}
+
+python_prepare() {
+ if [[ ${EPYTHON} == python3* ]]; then
+ epatch "${FILESDIR}/${PN}-py3k-pillow.patch"
+ else
+ epatch "${FILESDIR}/${PN}-py2k-pillow.patch"
+ fi
+ [[ ${PATCHES} ]] && epatch "${PATCHES[@]}"
+
+ sed -e "s/fPIC/fPIC\",\"${CFLAGS// /\",\"}/" -i supportlib/SConstruct
+ cp config_template.cfg config.cfg
+ echo "BOOST_LIB = 'boost_python-${EPYTHON#python}'" >> config.cfg
+ echo "LIBS += ['GL', 'GLU', 'glut']" >> config.cfg
+ if use 3ds; then
+ echo "LIB3DS_AVAILABLE = True" >> config.cfg
+ fi
+
+ sed -e "s:INC_DIRS = \[\]:INC_DIRS = \['/usr/include'\]:" -i setup.py
+
+ # Remove invalid test
+ rm -f unittests/test_pointcloud.py || die
+}
+
+python_compile() {
+ pushd supportlib > /dev/null || die
+ escons
+ popd > /dev/null || die
+ distutils-r1_python_compile
+}
+
+python_test() {
+ pushd unittests > /dev/null || die
+ mkdir tmp || die
+ "${PYTHON}" all.py || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
diff --git a/dev-python/cgkit/files/cgkit-2.0.0-test.patch b/dev-python/cgkit/files/cgkit-2.0.0-test.patch
new file mode 100644
index 00000000000..e5c198415da
--- /dev/null
+++ b/dev-python/cgkit/files/cgkit-2.0.0-test.patch
@@ -0,0 +1,11 @@
+diff -ur cgkit-2.0.0alpha9.orig/unittests/test_sequence.py cgkit-2.0.0alpha9/unittests/test_sequence.py
+--- unittests/test_sequence.py 2009-08-15 19:37:35.000000000 +0800
++++ unittests/test_sequence.py 2012-11-07 06:58:07.024791790 +0800
+@@ -594,6 +594,7 @@
+ ("spam1_5.tif", "foo0006.tif")], list(ong))
+
+
++@unittest.skip("Seeks absent dep 3delight")
+ class TestSeqUtils(unittest.TestCase):
+ """Test the sequence utilities.
+ """
diff --git a/dev-python/cgkit/files/cgkit-py2k-pillow.patch b/dev-python/cgkit/files/cgkit-py2k-pillow.patch
new file mode 100644
index 00000000000..0cddbd60b86
--- /dev/null
+++ b/dev-python/cgkit/files/cgkit-py2k-pillow.patch
@@ -0,0 +1,82 @@
+From 83cb693954f6f56e50a1aa90d935e94e9e8bac8e Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 5 Jun 2013 20:39:05 -0400
+Subject: [PATCH] Update PIL imports for compatibility with Pillow
+
+---
+ cgkit/_Image.py | 2 +-
+ cgkit/_ImageDraw.py | 2 +-
+ cgkit/riutil.py | 2 +-
+ utilities/checkenv.py | 2 +-
+ utilities/postbake.py | 3 ++-
+ 5 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/cgkit/_Image.py b/cgkit/_Image.py
+index 7266d4b..0122cd2 100644
+--- a/cgkit/_Image.py
++++ b/cgkit/_Image.py
+@@ -38,7 +38,7 @@
+ try:
+
+ # Try to import the original module...
+- from Image import *
++ from PIL.Image import *
+
+ except ImportError:
+
+diff --git a/cgkit/_ImageDraw.py b/cgkit/_ImageDraw.py
+index dfd6cf8..d1d3cff 100644
+--- a/cgkit/_ImageDraw.py
++++ b/cgkit/_ImageDraw.py
+@@ -38,7 +38,7 @@
+ try:
+
+ # Try to import the original module...
+- from ImageDraw import *
++ from PIL.ImageDraw import *
+
+ except ImportError:
+
+diff --git a/cgkit/riutil.py b/cgkit/riutil.py
+index 301e0f6..ae373c3 100644
+--- a/cgkit/riutil.py
++++ b/cgkit/riutil.py
+@@ -38,7 +38,7 @@ import types, sys, getpass
+ from cgtypes import vec3
+ from ri import *
+ try:
+- import Image
++ from PIL import Image
+ _PIL_installed = 1
+ except ImportError:
+ _PIL_installed = 0
+diff --git a/utilities/checkenv.py b/utilities/checkenv.py
+index b95dbf7..c93235e 100644
+--- a/utilities/checkenv.py
++++ b/utilities/checkenv.py
+@@ -96,7 +96,7 @@ visualize them. You can obtain PyOpenGL at http://pyopengl.sourceforge.net/
+ # Check PIL
+ chkmsg("PIL")
+ try:
+- import Image
++ from PIL import Image
+ print "is installed"
+ except:
+ print "missing"
+diff --git a/utilities/postbake.py b/utilities/postbake.py
+index cadd11d..74f894a 100644
+--- a/utilities/postbake.py
++++ b/utilities/postbake.py
+@@ -34,7 +34,8 @@
+ #
+ # ***** END LICENSE BLOCK *****
+
+-import sys, optparse, Image
++import sys, optparse
++from PIL import Image
+
+ # shift
+ def shift(img, dx, dy):
+--
+1.8.2.1
+
diff --git a/dev-python/cgkit/files/cgkit-py3k-pillow.patch b/dev-python/cgkit/files/cgkit-py3k-pillow.patch
new file mode 100644
index 00000000000..734ff6eb356
--- /dev/null
+++ b/dev-python/cgkit/files/cgkit-py3k-pillow.patch
@@ -0,0 +1,82 @@
+From 1953081269ce1cfdf29023a8590db40312c43194 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 5 Jun 2013 20:39:05 -0400
+Subject: [PATCH] Update PIL imports for compatibility with Pillow
+
+---
+ cgkit/_Image.py | 2 +-
+ cgkit/_ImageDraw.py | 2 +-
+ cgkit/riutil.py | 2 +-
+ utilities/checkenv.py | 2 +-
+ utilities/postbake.py | 3 ++-
+ 5 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/cgkit/_Image.py b/cgkit/_Image.py
+index 7266d4b..0122cd2 100644
+--- a/cgkit/_Image.py
++++ b/cgkit/_Image.py
+@@ -38,7 +38,7 @@
+ try:
+
+ # Try to import the original module...
+- from Image import *
++ from PIL.Image import *
+
+ except ImportError:
+
+diff --git a/cgkit/_ImageDraw.py b/cgkit/_ImageDraw.py
+index dfd6cf8..d1d3cff 100644
+--- a/cgkit/_ImageDraw.py
++++ b/cgkit/_ImageDraw.py
+@@ -38,7 +38,7 @@
+ try:
+
+ # Try to import the original module...
+- from ImageDraw import *
++ from PIL.ImageDraw import *
+
+ except ImportError:
+
+diff --git a/cgkit/riutil.py b/cgkit/riutil.py
+index b51f192..ae0fba2 100644
+--- a/cgkit/riutil.py
++++ b/cgkit/riutil.py
+@@ -38,7 +38,7 @@ import types, sys, getpass
+ from .cgtypes import vec3
+ from .ri import *
+ try:
+- import Image
++ from PIL import Image
+ _PIL_installed = 1
+ except ImportError:
+ _PIL_installed = 0
+diff --git a/utilities/checkenv.py b/utilities/checkenv.py
+index dda600f..8b6f74e 100644
+--- a/utilities/checkenv.py
++++ b/utilities/checkenv.py
+@@ -96,7 +96,7 @@ visualize them. You can obtain PyOpenGL at http://pyopengl.sourceforge.net/
+ # Check PIL
+ chkmsg("PIL")
+ try:
+- import Image
++ from PIL import Image
+ print("is installed")
+ except:
+ print("missing")
+diff --git a/utilities/postbake.py b/utilities/postbake.py
+index 90e3140..27728c2 100644
+--- a/utilities/postbake.py
++++ b/utilities/postbake.py
+@@ -34,7 +34,8 @@
+ #
+ # ***** END LICENSE BLOCK *****
+
+-import sys, optparse, Image
++import sys, optparse
++from PIL import Image
+
+ # shift
+ def shift(img, dx, dy):
+--
+1.8.2.1
+
diff --git a/dev-python/cgkit/metadata.xml b/dev-python/cgkit/metadata.xml
new file mode 100644
index 00000000000..18f82f2c5de
--- /dev/null
+++ b/dev-python/cgkit/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name='3ds'>Enable support for importing 3D Studio models</flag>
+ </use>
+ <longdescription>Python library for creating 3D images</longdescription>
+ <longdescription lang="ja">
+ 3D画像を作成するためのPython言語ライブラリです。
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/cgroup-utils/Manifest b/dev-python/cgroup-utils/Manifest
new file mode 100644
index 00000000000..2cf3b68a5ec
--- /dev/null
+++ b/dev-python/cgroup-utils/Manifest
@@ -0,0 +1 @@
+DIST cgroup-utils-0.6.tar.gz 33845 SHA256 71c8f783140c21f39454a23854e2e1668543e6a6b38cb29aec63791385f53ba6 SHA512 5751ad7979812117cd75fc74282fb24f3ee041cc08eaac986544a5f12b7e83c806f0d1bb4c92c32314c5c8af4995dc4f36e023037ed7617907c8f42f97dbf6b5 WHIRLPOOL c7c4bfab327b63ad7e4bbe2194671f1e10c99a2b7d9b152fe0dabc0ddc352ece6c8dc270742257e77610de9ff57c0df7ddfa721fc69c843bb318310edea269d1
diff --git a/dev-python/cgroup-utils/cgroup-utils-0.6.ebuild b/dev-python/cgroup-utils/cgroup-utils-0.6.ebuild
new file mode 100644
index 00000000000..4e099d1dbc5
--- /dev/null
+++ b/dev-python/cgroup-utils/cgroup-utils-0.6.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools and libraries for control groups of Linux"
+HOMEPAGE="https://github.com/peo3/cgroup-utils"
+SRC_URI="https://github.com/peo3/cgroup-utils/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/cgroup-utils/metadata.xml b/dev-python/cgroup-utils/metadata.xml
new file mode 100644
index 00000000000..958d7badc98
--- /dev/null
+++ b/dev-python/cgroup-utils/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">peo3/cgroup-utils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/chaco/Manifest b/dev-python/chaco/Manifest
new file mode 100644
index 00000000000..ef835935c34
--- /dev/null
+++ b/dev-python/chaco/Manifest
@@ -0,0 +1 @@
+DIST chaco-4.5.0.tar.gz 409562 SHA256 809674bdbdaf1a363b180366c6eaa70d9c49aa2c93b1933ee5c481e0a072da9c SHA512 66e1d82bbbf74e143e42f92eec7c83abc6f0eef488629947422a8ab2140a5a5bacf0f4e2a79f2acb8670417c9a620c9e85f295729525e011b8a09a1ff916e8c6 WHIRLPOOL 4e1187fc6cf1fa7aa3b4b86ec5d3d10917067303614615cce225aa90194ced492ea0d0e99a1088fa48959bb5fabae3e44545fde10754802a1cc2b21ffbafc342
diff --git a/dev-python/chaco/chaco-4.5.0.ebuild b/dev-python/chaco/chaco-4.5.0.ebuild
new file mode 100644
index 00000000000..1d43377338e
--- /dev/null
+++ b/dev-python/chaco/chaco-4.5.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx flag-o-matic
+
+DESCRIPTION="Enthought Tool Suite: Interactive plotting toolkit"
+HOMEPAGE="http://code.enthought.com/projects/chaco/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/enable-4.4.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/traitsui-4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ )"
+
+python_prepare_all() {
+ append-cflags -fno-strict-aliasing
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ VIRTUALX_COMMAND="nosetests" virtualmake
+}
diff --git a/dev-python/chaco/metadata.xml b/dev-python/chaco/metadata.xml
new file mode 100644
index 00000000000..a33331ab16d
--- /dev/null
+++ b/dev-python/chaco/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang="en">
+ Chaco is a Python plotting application toolkit and a part of
+ Enthought Tool Suite. It is meant to facilitate writing plotting
+ applications of all levels of complexity, from simple scripts with
+ hard-coded data to large plotting programs with complex data
+ interrelationships and a multitude of interactive tools. While Chaco
+ generates nice static plots for publication and presentation
+ purposes, its components are all designed to be work well for
+ interactive data visualization.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">chaco</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/chameleon/Manifest b/dev-python/chameleon/Manifest
new file mode 100644
index 00000000000..97fe410ad79
--- /dev/null
+++ b/dev-python/chameleon/Manifest
@@ -0,0 +1,4 @@
+DIST Chameleon-2.16.tar.gz 200838 SHA256 87c82d657fbc1b47decbe605a6f6105d9190cb19e924b59262cfdfa03e7a512d SHA512 a6f1491a11e55231ed5304b297d749dd590f1d0340732e00d20e4af1b311df297df2a72cc79f0e4949e5ac00acb9dec29dcb50423facb2b3bcff6ad3d1d75350 WHIRLPOOL 7ed76fbb05f3c413d86f42b45ef73d5b333718031434273e512db43eae69900abfee7b10deff78f360131d50a1093e22786ca01b8eb5984ac5ac5330ba1f7eb1
+DIST Chameleon-2.19.tar.gz 202197 SHA256 744070535f8e85a277aef07b0a98256aec5bf6a0d9b909686ce571eb26914491 SHA512 7e90ccf5f53000b94452b8c343cf232d4bc48857dd33ea19bf44e6732033851459a0761cc0f2af5851b11f5c1cd698679ef541cbaa895373f59d66717b3fc267 WHIRLPOOL 6c24d006a707f2b3e2a0b2df5ee2fc52314a5c830fbb8096429ac40dc43e932ddcc38fbeef5886066f848f10076ea8a171a557f995c7b1df16bdf709a858ee4f
+DIST Chameleon-2.20.tar.gz 202396 SHA256 557deb604cc2fb235441f449f44feb3942258fcf233c7e75fcae6adeb886ced4 SHA512 805189e49c6b326f82ffaefdb1d734e3959167a0e3523531f9c9c554fc8412ab4ae401aacae023a3ba43d18019a6fccebafae87f2c6bed6c1c2f5b1aff080153 WHIRLPOOL 1c84afca8e7eb6231f9caea4934351d347bfc6cb52025754b197595eac368fb9e5a6ae9888809aca99f80ca8f0544e54426bc284a2314033b07771156011e597
+DIST Chameleon-2.22.tar.gz 201994 SHA256 6eef8c58d1c58b94f6502d4213c92b2037f5ab66386b3da5b117213faa0bf7f7 SHA512 f81b52a8463d1f4619580b2d51bb9e2f67bb752b95382d7ffd0357b9e2d05854ce6539a3e518ed32e6df4d35ee3d247771ff47d8039e2bdfc4c0a732fb7885c2 WHIRLPOOL 66a289cf0ae33fc9b5d935623ce7de3227582518918e420078436669c52660e0053a7ffb0f65dccde95203591ce4626e52c6d4a030650c83c6f48efaf9f5be69
diff --git a/dev-python/chameleon/chameleon-2.16.ebuild b/dev-python/chameleon/chameleon-2.16.ebuild
new file mode 100644
index 00000000000..fe675a2c5c3
--- /dev/null
+++ b/dev-python/chameleon/chameleon-2.16.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Chameleon"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Fast HTML/XML template compiler for Python"
+HOMEPAGE="http://chameleon.repoze.org http://pypi.python.org/pypi/Chameleon"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( _build/html/{[a-z]*,_static} )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/chameleon/chameleon-2.19.ebuild b/dev-python/chameleon/chameleon-2.19.ebuild
new file mode 100644
index 00000000000..e9f0c81c12c
--- /dev/null
+++ b/dev-python/chameleon/chameleon-2.19.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Chameleon"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Fast HTML/XML template compiler for Python"
+HOMEPAGE="http://chameleon.repoze.org http://pypi.python.org/pypi/Chameleon"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( _build/html/{[a-z]*,_static} )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/chameleon/chameleon-2.20.ebuild b/dev-python/chameleon/chameleon-2.20.ebuild
new file mode 100644
index 00000000000..e9f0c81c12c
--- /dev/null
+++ b/dev-python/chameleon/chameleon-2.20.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Chameleon"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Fast HTML/XML template compiler for Python"
+HOMEPAGE="http://chameleon.repoze.org http://pypi.python.org/pypi/Chameleon"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( _build/html/{[a-z]*,_static} )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/chameleon/chameleon-2.22.ebuild b/dev-python/chameleon/chameleon-2.22.ebuild
new file mode 100644
index 00000000000..e9f0c81c12c
--- /dev/null
+++ b/dev-python/chameleon/chameleon-2.22.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Chameleon"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Fast HTML/XML template compiler for Python"
+HOMEPAGE="http://chameleon.repoze.org http://pypi.python.org/pypi/Chameleon"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( _build/html/{[a-z]*,_static} )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/chameleon/metadata.xml b/dev-python/chameleon/metadata.xml
new file mode 100644
index 00000000000..3469c1019df
--- /dev/null
+++ b/dev-python/chameleon/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Chameleon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/characteristic/Manifest b/dev-python/characteristic/Manifest
new file mode 100644
index 00000000000..0f374719580
--- /dev/null
+++ b/dev-python/characteristic/Manifest
@@ -0,0 +1,2 @@
+DIST characteristic-14.1.0.tar.gz 24612 SHA256 91e254948180678dd69e6143202b4686f2fa47cce136936079bb4d9a3b82419d SHA512 21bb40814f405c73471a83e15d1cfb07f74ebd157e647799bedffffd3909271145347eaec8ec09470dddad7224d1a15e8984a75f1fce00bbe20f9e1cb385f9b9 WHIRLPOOL d8044dfcbb7d75a383834bee842bd619b4bec65c8a0f467a563b9a80ee908bcf5c7de791eb220f9ba3b35a259a9ea6c6985f743518e2677d8a03a62db70ad98c
+DIST characteristic-14.3.0.tar.gz 26993 SHA256 ded68d4e424115ed44e5c83c2a901a0b6157a959079d7591d92106ffd3ada380 SHA512 e13a86f453cd3688a74188005b82a661a9c73d9f0408d9afe9e0575e69ffe87a5327f51e2c16a9c0a653b738e7c014d5aa08e353835f0aca7897714b7ae56e83 WHIRLPOOL e32b2801c1a56a9e6093c82ec9db3c8250756dd6ba80c0d63ca522c0a304e48920bf9cefc14c8491276365123c95f0e311be58f5cdba28dbab93391ed1455ba6
diff --git a/dev-python/characteristic/characteristic-14.1.0.ebuild b/dev-python/characteristic/characteristic-14.1.0.ebuild
new file mode 100644
index 00000000000..3673e48b61b
--- /dev/null
+++ b/dev-python/characteristic/characteristic-14.1.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python attributes without the boilerplate"
+HOMEPAGE="https://characteristic.readthedocs.org/ https://github.com/hynek/characteristic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ppc ppc64 s390 sh x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test -a "--cov characteristic --cov-report term-missing"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/characteristic/characteristic-14.3.0.ebuild b/dev-python/characteristic/characteristic-14.3.0.ebuild
new file mode 100644
index 00000000000..c5acd3d936c
--- /dev/null
+++ b/dev-python/characteristic/characteristic-14.3.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python attributes without the boilerplate"
+HOMEPAGE="https://characteristic.readthedocs.org/ https://github.com/hynek/characteristic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test -a "--cov characteristic --cov-report term-missing"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/characteristic/metadata.xml b/dev-python/characteristic/metadata.xml
new file mode 100644
index 00000000000..f4bec42be01
--- /dev/null
+++ b/dev-python/characteristic/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">characteristic</remote-id>
+ <remote-id type="github">hynek/characteristic</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/charade/Manifest b/dev-python/charade/Manifest
new file mode 100644
index 00000000000..ab80f03e7c7
--- /dev/null
+++ b/dev-python/charade/Manifest
@@ -0,0 +1 @@
+DIST charade-1.0.3.tar.gz 168537 SHA256 a607146d151005904f3fd8335e3dc89af214453f0d3a29580e1eb0e67e6c3d7f SHA512 203c8d151b9b2530753fb2c4b2dd91b2d63cf01c0aba80ebe450d75ce7cda3ac0612e8ad3a41a0f8498aec63cd5c3a3d6493975efefc45f6c6310e76a9cdf553 WHIRLPOOL 08e99abc221b27d8cd6b5d29031a7ec052820c5e203c4f2102351a014230c44d35bc574bc7cf1c87c316f2ecd7c38edb33b410dfa388ad96f27e4b1e34182bcf
diff --git a/dev-python/charade/charade-1.0.3.ebuild b/dev-python/charade/charade-1.0.3.ebuild
new file mode 100644
index 00000000000..f6538ec11ce
--- /dev/null
+++ b/dev-python/charade/charade-1.0.3.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Universal encoding detector for python 2 and 3 (fork of chardet)"
+HOMEPAGE="https://github.com/sigmavirus24/charade/ http://pypi.python.org/pypi/charade/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/charade/metadata.xml b/dev-python/charade/metadata.xml
new file mode 100644
index 00000000000..eaa6dd55413
--- /dev/null
+++ b/dev-python/charade/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">charade</remote-id>
+ <remote-id type="github">sigmavirus24/charade</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/chardet/Manifest b/dev-python/chardet/Manifest
new file mode 100644
index 00000000000..606cee0ec5d
--- /dev/null
+++ b/dev-python/chardet/Manifest
@@ -0,0 +1,2 @@
+DIST chardet-2.2.1.tar.gz 180319 SHA256 f1964f73f5ee9b7e0309098b9512d587fbba6dd5d1f3797b1c95529e5241bf09 SHA512 87059b77b14c39fded7f1287f8eeab6a880e21f4b49a3aa103daf537bbb1e237069347e1953ebaa9a393bd4dee01993873c84aad3c00536ae34784686aecfe68 WHIRLPOOL 1cd6838823f8effd502c3049d13966ac0888bdb91b34489caea8666f9802967fe6f86565ed827e609cb614c920cc9f983bdecc27c30bb2abcf4420731a0a620e
+DIST chardet-2.3.0.tar.gz 164346 SHA256 e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa SHA512 d554c9b4564905a2b6c6971aaea2a812174d86b58137c6a2f9d54e2abd2395e6529968b2ce3ca2d97c717d2bd0bd80ab5b98cae9afac1a4add9ea305145030dd WHIRLPOOL af17bac2778a86d6fe9643a512a307cbcf92e4b43238b2d3d2bae53e646fccbdf40f31f41f9452e7d4f4c84d1ee637199af841a828d49f3452190749fee284c1
diff --git a/dev-python/chardet/chardet-2.2.1.ebuild b/dev-python/chardet/chardet-2.2.1.ebuild
new file mode 100644
index 00000000000..2b973d8962f
--- /dev/null
+++ b/dev-python/chardet/chardet-2.2.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Universal encoding detector"
+HOMEPAGE="https://github.com/chardet/chardet http://pypi.python.org/pypi/chardet"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/chardet/chardet-2.3.0.ebuild b/dev-python/chardet/chardet-2.3.0.ebuild
new file mode 100644
index 00000000000..3bbb8ecbb07
--- /dev/null
+++ b/dev-python/chardet/chardet-2.3.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Universal encoding detector"
+HOMEPAGE="https://github.com/chardet/chardet http://pypi.python.org/pypi/chardet"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/chardet/metadata.xml b/dev-python/chardet/metadata.xml
new file mode 100644
index 00000000000..d5228ef57d2
--- /dev/null
+++ b/dev-python/chardet/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">chardet</remote-id>
+ <remote-id type="github">chardet/chardet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cheetah-docs/Manifest b/dev-python/cheetah-docs/Manifest
new file mode 100644
index 00000000000..b009fc99479
--- /dev/null
+++ b/dev-python/cheetah-docs/Manifest
@@ -0,0 +1 @@
+DIST CheetahDocs-0.9.16a1.tgz 1031641 SHA256 031850997efdd0b221b9f6bfa1783755bc6a92819c97065d14d61d36b0bf08eb SHA512 b0628e85200c4231fefd5eb770bd797d5eef3d6d85eac9b1da6d34d9dfb755a028a50a224bf9202d43a3458e15059ed7f5d4a55c49d484eed2b4caf1c7af835d WHIRLPOOL c7e8287577ffa7a6c9716dccdf1e5458a64af16c65cd29b1f242800f45f3f33577bd3230cf141fc44e64660445edb19f3a3214033a286f42c57f0daee2212c29
diff --git a/dev-python/cheetah-docs/cheetah-docs-0.9.16_alpha1.ebuild b/dev-python/cheetah-docs/cheetah-docs-0.9.16_alpha1.ebuild
new file mode 100644
index 00000000000..4c106541f31
--- /dev/null
+++ b/dev-python/cheetah-docs/cheetah-docs-0.9.16_alpha1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Documentation for Cheetah templates"
+HOMEPAGE="http://www.cheetahtemplate.org/"
+SRC_URI="mirror://sourceforge/cheetahtemplate/CheetahDocs-${PV/_alpha/a}.tgz"
+
+IUSE=""
+LICENSE="OPL"
+KEYWORDS="~amd64 ~ia64 ppc x86"
+SLOT="0"
+
+S=${WORKDIR}/CheetahDocs
+
+RESTRICT="binchecks strip"
+
+src_install() {
+ ecvs_clean
+
+ dodoc *.txt TODO
+ dohtml -r devel_guide_html devel_guide_html_multipage \
+ users_guide_html users_guide_html_multipage \
+ OnePageTutorial.html
+
+ # Install the source code.
+ insinto /usr/share/doc/${PF}
+ doins -r devel_guide_src users_guide_src
+
+ doins *.ps *.pdf
+}
diff --git a/dev-python/cheetah-docs/metadata.xml b/dev-python/cheetah-docs/metadata.xml
new file mode 100644
index 00000000000..6511520b275
--- /dev/null
+++ b/dev-python/cheetah-docs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">cheetahtemplate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cheetah/Manifest b/dev-python/cheetah/Manifest
new file mode 100644
index 00000000000..a7fda49e794
--- /dev/null
+++ b/dev-python/cheetah/Manifest
@@ -0,0 +1 @@
+DIST Cheetah-2.4.4.tar.gz 190989 SHA256 be308229f0c1e5e5af4f27d7ee06d90bb19e6af3059794e5fd536a6f29a9b550 SHA512 11b8cbf7d71789d6ae83596b133ddbe0bf1ccf2bca4c59562e7cd1d9bb75fa9d3208c0021d7d77edafdb03fd399cf1a26c003267fbffb94f27bf4457b0f9234c WHIRLPOOL 41261459eb8063344a27f2f26c28c97f79e06c002efaff437b6a0810954aaf4ed0ae7cbb08fa21cd3e79ef22e30c00888cbd9056e85cce2b13abb185df63e2c9
diff --git a/dev-python/cheetah/cheetah-2.4.4-r1.ebuild b/dev-python/cheetah/cheetah-2.4.4-r1.ebuild
new file mode 100644
index 00000000000..f2c46dc3c52
--- /dev/null
+++ b/dev-python/cheetah/cheetah-2.4.4-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Cheetah"
+MY_P="${MY_PN}-${PV/_}"
+
+DESCRIPTION="Python-powered template engine and code generator"
+HOMEPAGE="http://www.cheetahtemplate.org/ http://rtyler.github.com/cheetah/ http://pypi.python.org/pypi/Cheetah"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+IUSE=""
+KEYWORDS="alpha amd64 ~arm ia64 ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+SLOT="0"
+
+RDEPEND="dev-python/markdown[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( CHANGES README.markdown TODO )
+# Race in the test suite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Disable broken tests.
+ sed \
+ -e "/Unicode/d" \
+ -e "s/if not sys.platform.startswith('java'):/if False:/" \
+ -e "/results =/a\\ sys.exit(not results.wasSuccessful())" \
+ -i cheetah/Tests/Test.py || die "sed failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" cheetah/Tests/Test.py || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/cheetah/metadata.xml b/dev-python/cheetah/metadata.xml
new file mode 100644
index 00000000000..311eecfcd21
--- /dev/null
+++ b/dev-python/cheetah/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>Cheetah is a Python-powered template engine and code generator. It can be used
+as a standalone utility or it can be combined with other tools. Web developers
+are its principle user group, but it has many potential uses and is also being
+used to generate C++ game code, Java, SQL, form emails, and even Python code.</longdescription>
+ <upstream>
+ <remote-id type="pypi">Cheetah</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cherrypy/Manifest b/dev-python/cherrypy/Manifest
new file mode 100644
index 00000000000..b8caa00fb9c
--- /dev/null
+++ b/dev-python/cherrypy/Manifest
@@ -0,0 +1,3 @@
+DIST CherryPy-3.3.0.tar.gz 429204 SHA256 f8829bf1b4f613833b690b33b2fd00b1da4ef98df3c70240f78ee91b70f4a5a2 SHA512 605d1ca5694cd8c5237f2115ef2ca39d7290b90c82b91c3699cfb59ad346c3506a1b78ad0502f89de43f8711d01afbbc2eb82f00f86ffbc0fcd63c1def88f0a4 WHIRLPOOL 406c735ae3b5f52408bab6fdde32684caeeb2092b4b0124b12cd43923beb1b11e899069ed48d395839bbb55e202e748ad2cb4e0c626ed29a0d2ff0bfef8aae5b
+DIST CherryPy-3.7.0.tar.gz 433083 SHA256 2d19b9a99dc70c01d7ac58b5c2a0c6f6c0e12620e6f5dc1f556f6c1cdfd90ef8 SHA512 e8ad7eba4074aba65b1b7368cae90c1a5bd5f58217e05fe96a82e591d1e4e544555b815e19019373574f8545a80a52884e4015f6b39512b2f6fa4dc5e80f1253 WHIRLPOOL a2a8127a2ea3a2b497b18751c7ef10e61902ba8b909695c4afc926a31c8715ab1c30d5e0b865de90e931c40fed5385bb0c9902d61f8a7bc39feaf5b50303b9e6
+DIST CherryPy-3.8.0.tar.gz 433711 SHA256 ffcdb43667d4098247efaf8c82dd36d3dd4f8e5dc768ef5e90b480899e523bea SHA512 25f84093e30d814c0980f7d77b98492113470c3297c66ee8652e40650757f8e2b7db01bb8de6d7a1ea9b4bed8b764502b1f563ac6f0d082970bc2d46739d19c2 WHIRLPOOL 9e484fb5589e219108c48281f34bbe64d4767796a391dfb7f194f57dda89774d4517a6acd032fb492879a7bae2d0373e843e4b8aad53bf7b606b1b60dc2bfe56
diff --git a/dev-python/cherrypy/cherrypy-3.3.0.ebuild b/dev-python/cherrypy/cherrypy-3.3.0.ebuild
new file mode 100644
index 00000000000..c90fcd06f3a
--- /dev/null
+++ b/dev-python/cherrypy/cherrypy-3.3.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_P="CherryPy-${PV}"
+
+DESCRIPTION="CherryPy is a pythonic, object-oriented HTTP framework"
+HOMEPAGE="http://www.cherrypy.org/ http://pypi.python.org/pypi/CherryPy"
+SRC_URI="mirror://pypi/C/CherryPy/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ia64 ppc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/nose-1.3.3[${PYTHON_USEDEP}] )"
+RDEPEND=""
+S="${WORKDIR}/${MY_P}"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}/${PN}-3.3.0-test_config.patch" )
+
+python_prepare_all() {
+ # Prevent interactive failures (hangs) in the test suite
+ sed -i -e "s/interactive = True/interactive = False/" cherrypy/test/webtest.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # suite requires current latest nose-1.3.3
+ # https://bitbucket.org/cherrypy/cherrypy/issue/1308
+ # https://bitbucket.org/cherrypy/cherrypy/issue/1306
+ local exclude=(
+ -e test_file_stream -e test_4_File_deletion -e test_3_Redirect
+ -e test_2_File_Concurrency -e test_0_Session -e testStatic
+ )
+
+ # This really doesn't sit well with multiprocessing
+ # The issue 1306 tells us some tests are subject to the deleterious effects of
+ # the 'race condition'. Both the issues are unresolved / open
+ if [[ "${EPYTHON}" == pypy ]]; then
+ nosetests "${exclude[@]}" -I test_logging.py < /dev/tty || die "Testing failed with${EPYTHON}"
+ else
+ nosetests "${exclude[@]}" < /dev/tty || die "Testing failed with ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/cherrypy/cherrypy-3.7.0.ebuild b/dev-python/cherrypy/cherrypy-3.7.0.ebuild
new file mode 100644
index 00000000000..43d61a58715
--- /dev/null
+++ b/dev-python/cherrypy/cherrypy-3.7.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_P="CherryPy-${PV}"
+
+DESCRIPTION="CherryPy is a pythonic, object-oriented HTTP framework"
+HOMEPAGE="http://www.cherrypy.org/ http://pypi.python.org/pypi/CherryPy"
+SRC_URI="mirror://pypi/C/CherryPy/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/nose-1.3.3[${PYTHON_USEDEP}] )"
+RDEPEND=""
+S="${WORKDIR}/${MY_P}"
+
+# testsuite predominantly connects to the network
+RESTRICT="test"
+
+python_prepare_all() {
+ # Prevent interactive failures (hangs) in the test suite
+ sed -i -e "s/interactive = True/interactive = False/" cherrypy/test/webtest.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # suite requires current latest nose-1.3.3
+ # https://bitbucket.org/cherrypy/cherrypy/issue/1308
+ # https://bitbucket.org/cherrypy/cherrypy/issue/1306
+ local exclude=(
+ -e test_file_stream -e test_4_File_deletion -e test_3_Redirect
+ -e test_2_File_Concurrency -e test_0_Session -e testStatic
+ )
+
+ # This really doesn't sit well with multiprocessing
+ # The issue 1306 tells us some tests are subject to the deleterious effects of
+ # the 'race condition'. Both the issues are unresolved / open
+# if [[ "${EPYTHON}" == pypy ]]; then
+ nosetests "${exclude[@]}" -I test_logging.py || die "Testing failed with ${EPYTHON}"
+# else
+# nosetests "${exclude[@]}" < /dev/tty || die "Testing failed with ${EPYTHON}"
+# fi
+}
diff --git a/dev-python/cherrypy/cherrypy-3.8.0.ebuild b/dev-python/cherrypy/cherrypy-3.8.0.ebuild
new file mode 100644
index 00000000000..43d61a58715
--- /dev/null
+++ b/dev-python/cherrypy/cherrypy-3.8.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_P="CherryPy-${PV}"
+
+DESCRIPTION="CherryPy is a pythonic, object-oriented HTTP framework"
+HOMEPAGE="http://www.cherrypy.org/ http://pypi.python.org/pypi/CherryPy"
+SRC_URI="mirror://pypi/C/CherryPy/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/nose-1.3.3[${PYTHON_USEDEP}] )"
+RDEPEND=""
+S="${WORKDIR}/${MY_P}"
+
+# testsuite predominantly connects to the network
+RESTRICT="test"
+
+python_prepare_all() {
+ # Prevent interactive failures (hangs) in the test suite
+ sed -i -e "s/interactive = True/interactive = False/" cherrypy/test/webtest.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # suite requires current latest nose-1.3.3
+ # https://bitbucket.org/cherrypy/cherrypy/issue/1308
+ # https://bitbucket.org/cherrypy/cherrypy/issue/1306
+ local exclude=(
+ -e test_file_stream -e test_4_File_deletion -e test_3_Redirect
+ -e test_2_File_Concurrency -e test_0_Session -e testStatic
+ )
+
+ # This really doesn't sit well with multiprocessing
+ # The issue 1306 tells us some tests are subject to the deleterious effects of
+ # the 'race condition'. Both the issues are unresolved / open
+# if [[ "${EPYTHON}" == pypy ]]; then
+ nosetests "${exclude[@]}" -I test_logging.py || die "Testing failed with ${EPYTHON}"
+# else
+# nosetests "${exclude[@]}" < /dev/tty || die "Testing failed with ${EPYTHON}"
+# fi
+}
diff --git a/dev-python/cherrypy/files/cherrypy-3.3.0-test_config.patch b/dev-python/cherrypy/files/cherrypy-3.3.0-test_config.patch
new file mode 100644
index 00000000000..55c71956462
--- /dev/null
+++ b/dev-python/cherrypy/files/cherrypy-3.3.0-test_config.patch
@@ -0,0 +1,20 @@
+# HG changeset patch
+# User Mike Gilbert <floppym@gentoo.org>
+# Date 1399130996 14400
+# Sat May 03 11:29:56 2014 -0400
+# Node ID f8f63e119bd85b16bdee9b95195aba60d5fbca27
+# Parent 60c8bb0cd34632becb758a063032e76c13dc3425
+Remove unicode literal to avoid syntax error in python3.2
+
+diff --git a/cherrypy/test/test_config.py b/cherrypy/test/test_config.py
+--- a/cherrypy/test/test_config.py
++++ b/cherrypy/test/test_config.py
+@@ -206,7 +206,7 @@
+
+ if not compat.py3k:
+ self.getPage("/repr?key=thing3")
+- self.assertBody(repr(u'test'))
++ self.assertBody(repr(unicode('test')))
+
+ self.getPage("/repr?key=complex")
+ self.assertBody("(3+2j)")
diff --git a/dev-python/cherrypy/metadata.xml b/dev-python/cherrypy/metadata.xml
new file mode 100644
index 00000000000..937f5c4678b
--- /dev/null
+++ b/dev-python/cherrypy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">CherryPy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cherrytemplate/Manifest b/dev-python/cherrytemplate/Manifest
new file mode 100644
index 00000000000..34db61735b1
--- /dev/null
+++ b/dev-python/cherrytemplate/Manifest
@@ -0,0 +1 @@
+DIST CherryTemplate-1.0.0.tar.gz 6227 SHA256 b1fc5b055e38ef9ff5c7b5b0cfcbd7f322092acfd0c47771dd029ab9b5a31feb SHA512 275a18b29d31fa5a95fa1cc5b72adb923f34fa787fd3ab8c2f2d87c7c32399fd2e1a7b408124320b86d651713fe769a5f81fc76a1ccd9a87d4481bad9111e821 WHIRLPOOL 2c15a954fbec012d9fe1c9d553b0d7fee55dcc04473a374b244a9d70524557982d551eae96da4c445883055269822679612b54240aac60dc5677b1af9de86fa9
diff --git a/dev-python/cherrytemplate/cherrytemplate-1.0.0-r1.ebuild b/dev-python/cherrytemplate/cherrytemplate-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..286603a8830
--- /dev/null
+++ b/dev-python/cherrytemplate/cherrytemplate-1.0.0-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="CherryTemplate"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Easy and powerful templating module for Python"
+HOMEPAGE="http://cherrytemplate.python-hosting.com/"
+SRC_URI="mirror://sourceforge/cherrypy/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/cherrytemplate/metadata.xml b/dev-python/cherrytemplate/metadata.xml
new file mode 100644
index 00000000000..7d0495c6538
--- /dev/null
+++ b/dev-python/cherrytemplate/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">cherrypy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cliapp/Manifest b/dev-python/cliapp/Manifest
new file mode 100644
index 00000000000..306e9d83396
--- /dev/null
+++ b/dev-python/cliapp/Manifest
@@ -0,0 +1,3 @@
+DIST cliapp-1.20150305.tar.gz 55133 SHA256 09865ea3b2e63b41f4399997651d2c19c918922745b570530ff7dd5f77e49bd9 SHA512 a32e987bfc6e401672dc1e94fb29034b96fec5bba5864e1001d52460ecdd6cb903ad1bbbe52cfb6d8d880abd029c98f26c3edca8ed79ec10f77e86bfff595aa3 WHIRLPOOL 2286e990958f5012146ac07635f9ce4f1adf96b34cc4d47d4e2d21f472d576cd71a3633591f1e855eb79e3155c1d942cacabc1e96e1413d851f2b78f1d8a3578
+DIST python-cliapp_1.20130808.orig.tar.gz 50236 SHA256 62944c5b99beecb3fe5fff5321b35b71e0cc21c9cc212ebbad26b00cd5c42e45 SHA512 6f8b3bdcf2e737ecf3ebc92f43b85aaf9fbf848635ddcdf7f252dca9a2ea7b8fceb47908742cbbb2e25695ce7ffc7110053c9d648f3616aff87434ecdcb0b493 WHIRLPOOL 5d4f253ae265b37ae59679625daafd7bde39cdb8403663c3b537d27108f47e908888efc504e9e63d20ac0f7e564148ec0424a39864f76b1047116ed9b8f5a93e
+DIST python-cliapp_1.20140315.orig.tar.gz 51107 SHA256 55bec495881ba6759c07f1b94658e3b3b21fa3f04c8bbac2c5fe8b8ce1bf862d SHA512 ce538baec212d5d5149b0aa0ab542919e465fee6700104079842022bc47ef42e65d42179689e998d524feb6b7981e3e396f30266a4a8aa7373ebf1ae8013c2d9 WHIRLPOOL 3237ee51e1c8c15355e1b8a24e25f5c70eb242783e7be226bc400e750e98f708ccf3eb004a2bae4a6b8dc7ba4d39f512de8db4577123a5433e3ffc4f50bf7c71
diff --git a/dev-python/cliapp/cliapp-1.20130808.ebuild b/dev-python/cliapp/cliapp-1.20130808.ebuild
new file mode 100644
index 00000000000..970a723653e
--- /dev/null
+++ b/dev-python/cliapp/cliapp-1.20130808.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Framework for Unix-like command line programs"
+HOMEPAGE="http://liw.fi/cliapp/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="test"
+
+DEPEND="${PYTHON_DEPS}
+ test? ( dev-python/CoverageTestRunner )"
+
+src_test() {
+ addwrite /proc/self/comm
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/cliapp/cliapp-1.20140315.ebuild b/dev-python/cliapp/cliapp-1.20140315.ebuild
new file mode 100644
index 00000000000..a8471553241
--- /dev/null
+++ b/dev-python/cliapp/cliapp-1.20140315.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Framework for Unix-like command line programs"
+HOMEPAGE="http://liw.fi/cliapp/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="test"
+
+DEPEND="${PYTHON_DEPS}
+ test? ( dev-python/CoverageTestRunner )"
+
+src_test() {
+ use test && addwrite /proc/self/comm
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/cliapp/cliapp-1.20150305.ebuild b/dev-python/cliapp/cliapp-1.20150305.ebuild
new file mode 100644
index 00000000000..ae2b32da68e
--- /dev/null
+++ b/dev-python/cliapp/cliapp-1.20150305.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Framework for Unix-like command line programs"
+HOMEPAGE="http://liw.fi/cliapp/"
+SRC_URI="http://git.liw.fi/cgi-bin/cgit/cgit.cgi/cliapp/snapshot/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="test"
+
+DEPEND="${PYTHON_DEPS}
+ test? ( dev-python/CoverageTestRunner )"
+
+src_test() {
+ use test && addwrite /proc/self/comm
+ distutils-r1_src_test
+}
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/cliapp/metadata.xml b/dev-python/cliapp/metadata.xml
new file mode 100644
index 00000000000..ea7bd021a21
--- /dev/null
+++ b/dev-python/cliapp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mschiff@gentoo.org</email>
+ <name>Marc Schiffbauer</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/click/Manifest b/dev-python/click/Manifest
new file mode 100644
index 00000000000..84bb34b4d15
--- /dev/null
+++ b/dev-python/click/Manifest
@@ -0,0 +1,3 @@
+DIST click-2.0.tar.gz 47342 SHA256 33a984fe73aa8c6bf69c38098b69dd38405529db54baf4c8cf64c50b2dee644f SHA512 4c703ab4b5c76e393420b0edf9af9e8ddb301ccfef5f8117d3408eaa8a94abe6b7b5c7a8b61b7774a3b459b153c10438e8934f21ceb73697199828cce2c2887c WHIRLPOOL bf599395245319b31c189df297a1ec35ca69723ed24e2d3e9aa9231a3cfebdb80e1f43a0b010865b6fbecf09f23dc1121cca232aec26f09bdb455f41da5261c4
+DIST click-4.0.tar.gz 270183 SHA256 f49e03611f5f2557788ceeb80710b1c67110f97c5e6740b97edf70245eea2409 SHA512 7b3b3e3b57fe74e8d2e3be79c59476fe7830c04068f0e31b39dfee28d879d8a96eed311fbe789bfc6d12c898052ea1c901c3b6f4c995cd4e0ede61b62fe0a39a WHIRLPOOL fd183c6509c3d8a3c582454aac8a18b3d570c16ca4b1cf19dbdd97d8846fde62fadd7d80596eb321a67e48477853b26cb7e5d554c9254061ab1bb74a52d3a05a
+DIST click-4.1.tar.gz 274489 SHA256 e339ed09f25e2145314c902a870bc959adcb25653a2bd5cc1b48d9f56edf8ed8 SHA512 fe751406919d06a3ccffc2831992848d8e324f0f0ca566ea3b9ed0be3298c8d1e2039643eadc71eb4dfabd790310396cd5b26a11d7b6f6cdf503f191ce6dd1cd WHIRLPOOL 3005501210fae07d3cbdd5674a22d24b577c02ba20c34fb94f3bf7011ec2d26847b7faca5fe74ca620bdc8a0c4bfaecdf5dbcf4c2f0046de76e8b13628e2910f
diff --git a/dev-python/click/click-2.0.ebuild b/dev-python/click/click-2.0.ebuild
new file mode 100644
index 00000000000..c910519ff70
--- /dev/null
+++ b/dev-python/click/click-2.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python package for creating beautiful command line interfaces"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://click.pocoo.org/ http://pypi.python.org/pypi/click"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# FIXME: tests docs and examples aren't being shipped with releases.
+# Asked upstream to fix this. Avoided using github snapshots for now. (rafaelmartins)
+IUSE=""
+
+RDEPEND="dev-python/colorama"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/click/click-4.0-r1.ebuild b/dev-python/click/click-4.0-r1.ebuild
new file mode 100644
index 00000000000..9ce0a97b53c
--- /dev/null
+++ b/dev-python/click/click-4.0-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python package for creating beautiful command line interfaces"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://click.pocoo.org/ http://pypi.python.org/pypi/click"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="doc examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+PATCHES=( "${FILESDIR}"/${P}-docbuild.patch )
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ emake test
+}
+
+python_install_all() {
+ # use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/click/click-4.1.ebuild b/dev-python/click/click-4.1.ebuild
new file mode 100644
index 00000000000..0a348e7634e
--- /dev/null
+++ b/dev-python/click/click-4.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python package for creating beautiful command line interfaces"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://click.pocoo.org/ http://pypi.python.org/pypi/click"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ emake test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/click/files/click-4.0-docbuild.patch b/dev-python/click/files/click-4.0-docbuild.patch
new file mode 100644
index 00000000000..24ce6ce1ead
--- /dev/null
+++ b/dev-python/click/files/click-4.0-docbuild.patch
@@ -0,0 +1,12 @@
+https://github.com/mitsuhiko/click/issues/318#issuecomment-89565131
+--- docs/options.rst
++++ docs/options.rst
+@@ -150,6 +150,7 @@
+ .. click:example::
+
+ import os
++ import sys
+
+ @click.command()
+ @click.option('--shout/--no-shout', default=False)
+
diff --git a/dev-python/click/metadata.xml b/dev-python/click/metadata.xml
new file mode 100644
index 00000000000..3f003a9288b
--- /dev/null
+++ b/dev-python/click/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">click</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/clientcookie/Manifest b/dev-python/clientcookie/Manifest
new file mode 100644
index 00000000000..39857e610f8
--- /dev/null
+++ b/dev-python/clientcookie/Manifest
@@ -0,0 +1 @@
+DIST ClientCookie-1.3.0.tar.gz 130974 SHA256 cd51a411ffbbce76a4046a42f43711fc2674db05201e649c6035aa8178874797 SHA512 3a42660557bbcda76f7e63fb4fea0ccaa15967e8e6991d65dc72921efb8cec475f7ebfbfe963e5577f7dfbacebb84488b7bb5e6e4e913e863e54c0faf0b4e9f5 WHIRLPOOL 892e206238d5954b2f16610bfc52d89c8c8f82fecddc6ee519c931a007ed9d261dd5cb7e0832c3175bb696888fbb7d488b1a04094bba3d940a5b57344f3b78c6
diff --git a/dev-python/clientcookie/clientcookie-1.3.0-r1.ebuild b/dev-python/clientcookie/clientcookie-1.3.0-r1.ebuild
new file mode 100644
index 00000000000..86404f8502a
--- /dev/null
+++ b/dev-python/clientcookie/clientcookie-1.3.0-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="ClientCookie-${PV}"
+
+DESCRIPTION="Python module for handling HTTP cookies on the client side"
+HOMEPAGE="http://wwwsearch.sourceforge.net/ClientCookie/ http://pypi.python.org/pypi/ClientCookie"
+SRC_URI="http://wwwsearch.sourceforge.net/ClientCookie/src/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc x86 ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="*.txt"
diff --git a/dev-python/clientcookie/metadata.xml b/dev-python/clientcookie/metadata.xml
new file mode 100644
index 00000000000..ca527c7bee0
--- /dev/null
+++ b/dev-python/clientcookie/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+ClientCookie is a Python module for handling HTTP cookies on the client
+side, useful for accessing web sites that require cookies to be set and
+then returned later. It also provides some other (optional) useful stuff:
+HTTP-EQUIV and Refresh handling, automatic adding of the Referer [sic]
+header, automatic observance of robots.txt and lazily-seek()able responses.
+These extras are implemented using an extension that makes it easier to add
+new functionality to urllib2. It has developed from a port of Gisle Aas'
+Perl module HTTP::Cookies, from the libwww-perl library.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/cliff-tablib/Manifest b/dev-python/cliff-tablib/Manifest
new file mode 100644
index 00000000000..46cf1964b4b
--- /dev/null
+++ b/dev-python/cliff-tablib/Manifest
@@ -0,0 +1 @@
+DIST cliff-tablib-1.1.tar.gz 80508 SHA256 4a8ed81f6678e76d0e0497f2708d0fe5d2b83ec442a03f982aaa711a08c74139 SHA512 26beea20ca1ba5c96276ce974c24bab572c6efebfe44ef45bd3ee6197593a34bf29843676a4e37fe400272f3ff59f703d60ff1abda22a1ca28c2434c0f224aac WHIRLPOOL e4aabd11f43d21f47ae281dcdfad4f0c40a85cf4e51e3e344e4ba7bb3f99148f89e285e3ad4a6f8cbab854539803d0ed11b2e943da18b57fbbc81c366f58e54f
diff --git a/dev-python/cliff-tablib/cliff-tablib-1.1.ebuild b/dev-python/cliff-tablib/cliff-tablib-1.1.ebuild
new file mode 100644
index 00000000000..d2ab862a857
--- /dev/null
+++ b/dev-python/cliff-tablib/cliff-tablib-1.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Formatter extensions of JSON, YAML, and HTML output in programs created by the cliff framework"
+HOMEPAGE="https://github.com/dreamhost/cliff-tablib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+RDEPEND="dev-python/tablib[${PYTHON_USEDEP}]
+ dev-python/cliff[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ # Use IUSE examples for installing the demoapp
+ use examples && local EXAMPLES=( demoapp/. )
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cliff-tablib/metadata.xml b/dev-python/cliff-tablib/metadata.xml
new file mode 100644
index 00000000000..0d6cfb59d5e
--- /dev/null
+++ b/dev-python/cliff-tablib/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">cliff-tablib</remote-id>
+ <remote-id type="github">dreamhost/cliff-tablib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cliff/Manifest b/dev-python/cliff/Manifest
new file mode 100644
index 00000000000..f538ad916c9
--- /dev/null
+++ b/dev-python/cliff/Manifest
@@ -0,0 +1,4 @@
+DIST cliff-1.10.1.tar.gz 46901 SHA256 ddfec39bf0de7b53666045c946d495ca070e538e5f92dc19588596c9bcc52c6e SHA512 9ebf7bcfb901053e91d7b56c92d709acdd71fee00140fc8b5aa2997580c4616a9811947808d943ce61f5aa8c8ea96e941482207781936d8f6df5d1605ce1dcb9 WHIRLPOOL 57b82eee91e60a67fae83aa6128f43f173896d8723082206a6ae87e4f341d044d67cdb5bea9e826e71bc88b8beff956daad609607800d63a28436ecb7ef67ed2
+DIST cliff-1.12.0.tar.gz 48052 SHA256 7609abc1789522fc4e228ea5567a9fd1db3963850396178adca3332cdd9c929a SHA512 991dd63cb675384f98de63e84bb8be76385ea53e24a3ec4a4a5d098f3b1af1848109773ec6131a58151704e7667afda598e1089f35eda882e52885c5d7e270d8 WHIRLPOOL 26de29c7754c6823dc37caf4be8e3f6785a1299675dc09405d38a933e7ce1a10b74f2588e75b417787962d939df21b126f6ab343652de8e9714c9412e2cff19f
+DIST cliff-1.13.0.tar.gz 46997 SHA256 2b92d12cf1aa59c0cf1914b4b6b02b78daadac890a53d0e6b71b5220661ab9e0 SHA512 fd2842041bb407472c405cb362e25b87dc6a59dd7f2335254a0484e030c685e38c0290c41b5e2be005bbd5a74589c1d1086a7caf379507d463704ad4614c1aeb WHIRLPOOL 57e654e9c558098d132e941b197e7c0cfc4654a3d339034132cc645898009a82c9d0cb98ffa1def9e81ce93cd8e347185a9d7e680765f43dca2e7dc25cf1737c
+DIST cliff-1.8.0.tar.gz 44863 SHA256 a761e19cf9375739a5db94bba6fbcd2ed1a23484190740bb9631eeb01efdfebf SHA512 f16eeaf911bf9e613f7a6f85651a48dc43fe373d5ee09523c977ec8f80996610965683dc66b3e4c40dc5c65219046bd015ff4b85e98c70f5a60a0e03e34a58d5 WHIRLPOOL 108ea36366a1e82d899c523378101eb4c93a63ba049369b901b4a9586ae7b7801b3e82d705e52aee4feba423d244a76fbc2900dcfbc32295b8f5f451fc211968
diff --git a/dev-python/cliff/cliff-1.10.1.ebuild b/dev-python/cliff/cliff-1.10.1.ebuild
new file mode 100644
index 00000000000..5c864c1212f
--- /dev/null
+++ b/dev-python/cliff/cliff-1.10.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Command Line Interface Formulation Framework"
+HOMEPAGE="https://github.com/dreamhost/cliff"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/cmd2-0.6.7[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ nosetests tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cliff/cliff-1.12.0.ebuild b/dev-python/cliff/cliff-1.12.0.ebuild
new file mode 100644
index 00000000000..7e6e5ad3f51
--- /dev/null
+++ b/dev-python/cliff/cliff-1.12.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Command Line Interface Formulation Framework"
+HOMEPAGE="https://github.com/dreamhost/cliff"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ "
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] )
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] )
+ "
+# source files stipulate <sphinx-1.3 however build effected perfectly with sphinx-1.3.1
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/cmd2-0.6.7[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ "
+
+python_compile() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests ${PN}/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cliff/cliff-1.13.0.ebuild b/dev-python/cliff/cliff-1.13.0.ebuild
new file mode 100644
index 00000000000..8f3482043bc
--- /dev/null
+++ b/dev-python/cliff/cliff-1.13.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Command Line Interface Formulation Framework"
+HOMEPAGE="https://github.com/dreamhost/cliff"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ "
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] )
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] )
+ "
+# source files stipulate <sphinx-1.3 however build effected perfectly with sphinx-1.3.1
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/cmd2-0.6.7[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ "
+
+python_compile() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests ${PN}/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cliff/cliff-1.8.0.ebuild b/dev-python/cliff/cliff-1.8.0.ebuild
new file mode 100644
index 00000000000..cb144acc7f1
--- /dev/null
+++ b/dev-python/cliff/cliff-1.8.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Command Line Interface Formulation Framework"
+HOMEPAGE="https://github.com/dreamhost/cliff"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/cmd2-0.6.7[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]"
+
+python_test() {
+ nosetests tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cliff/metadata.xml b/dev-python/cliff/metadata.xml
new file mode 100644
index 00000000000..6840e3251ae
--- /dev/null
+++ b/dev-python/cliff/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Cliff is a framework for building command line programs.
+ It uses setuptools entry points to provide subcommands,
+ output formatters, and other extensions.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">cliff</remote-id>
+ <remote-id type="github">dreamhost/cliff</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/clint/Manifest b/dev-python/clint/Manifest
new file mode 100644
index 00000000000..c660d258b33
--- /dev/null
+++ b/dev-python/clint/Manifest
@@ -0,0 +1,3 @@
+DIST clint-0.3.1.tar.gz 147154 SHA256 faa94e073e1c8d26e67b34ef1d69d6cd92bd06e87a94cc451d587b4c8b965e1e SHA512 c7a1ccca82d1530e9501f2f854a90f4840cdb4bc2536c8eca30832f156c0898d02d9b839be6b9bf0425b1fa0f94940ef223c55cfd50c183c89b3822ca90b4aba WHIRLPOOL 2da1e651c8b9f038261de3c8908cbbc737debea6475c9268d1b1c48bef8bfe5795ba6b931bbc614431e7798823db6e1ab1e7aead3db91141a3b9752076f24b0c
+DIST clint-0.3.7.tar.gz 149553 SHA256 efef49442bc18de26aea4f76aeef09f9ffc90d4d99f06109e6dd2390ae58d98c SHA512 7d0becec7d412077f0fff7b2bfb278b835cfa271c89ed5fe8cce5116c1be6ae393a3e7146691c55470c57b29d82e9895e41ac292801e3720fe2b1797a67438d0 WHIRLPOOL f4bdf5e5892359db24550ac052396e585753ad62fd99feb245bf2a63153e3c8b70e095532a54ca11fc8134a3517e48e1fd7eaea4edb1005c7ace6f2ee253da6a
+DIST clint-0.4.1.tar.gz 80383 SHA256 6709b638fd13fc2395284d0d42fe857ce97fdb6f03929ceb7ece28393933b4ea SHA512 8ee4fb8d7e5416c0c1c6c23abddb255521a7d682cb855a9fe2446137e83f739a1c44c135a05803632b896fa39400c33f44e5a78442af21bebd3cf66d28fbc9fc WHIRLPOOL 0dd5c062d025bc6ebfd304b056f75294eaac5868afec2c0c2403f380c6e2043478280b2c5ce575060af3939cdcae71d4ebc62b40edb011216535b115ef29c379
diff --git a/dev-python/clint/clint-0.3.1-r1.ebuild b/dev-python/clint/clint-0.3.1-r1.ebuild
new file mode 100644
index 00000000000..699af441d96
--- /dev/null
+++ b/dev-python/clint/clint-0.3.1-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python Command-line Application Tools"
+HOMEPAGE="https://github.com/kennethreitz/clint"
+SRC_URI="https://github.com/kennethreitz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples test"
+
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+# Prevent install of files to wrong location
+PATCHES=( "${FILESDIR}"/${PN}-setup.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/clint/clint-0.3.7.ebuild b/dev-python/clint/clint-0.3.7.ebuild
new file mode 100644
index 00000000000..7530fa6a956
--- /dev/null
+++ b/dev-python/clint/clint-0.3.7.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python Command-line Application Tools"
+HOMEPAGE="https://github.com/kennethreitz/clint"
+SRC_URI="https://github.com/kennethreitz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples test"
+
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/clint/clint-0.4.1.ebuild b/dev-python/clint/clint-0.4.1.ebuild
new file mode 100644
index 00000000000..cca7df08a9b
--- /dev/null
+++ b/dev-python/clint/clint-0.4.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python Command-line Application Tools"
+HOMEPAGE="https://github.com/kennethreitz/clint"
+SRC_URI="https://github.com/kennethreitz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="doc examples test"
+
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+RDEPEND="dev-python/args[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/clint/files/clint-setup.patch b/dev-python/clint/files/clint-setup.patch
new file mode 100644
index 00000000000..960dc99be42
--- /dev/null
+++ b/dev-python/clint/files/clint-setup.patch
@@ -0,0 +1,15 @@
+setup.py installs data files to /usr/ !!!??!!
+diff -ur clint-0.3.1.orig/setup.py clint-0.3.1/setup.py
+--- setup.py 2012-01-16 22:25:54.000000000 +0800
++++ setup.py 2014-10-11 12:20:29.174133572 +0800
+@@ -29,10 +29,6 @@
+ author='Kenneth Reitz',
+ author_email='me@kennethreitz.com',
+ url='https://github.com/kennethreitz/clint',
+- data_files=[
+- 'README.rst',
+- 'HISTORY.rst',
+- ],
+ packages= [
+ 'clint',
+ 'clint.textui',
diff --git a/dev-python/clint/metadata.xml b/dev-python/clint/metadata.xml
new file mode 100644
index 00000000000..61f985dbe7f
--- /dev/null
+++ b/dev-python/clint/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">kennethreitz/clint</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cloudlib/Manifest b/dev-python/cloudlib/Manifest
new file mode 100644
index 00000000000..0f109024554
--- /dev/null
+++ b/dev-python/cloudlib/Manifest
@@ -0,0 +1 @@
+DIST cloudlib-0.4.0.tar.gz 117754 SHA256 105e18f1ef52bbc0b5389a33ddd5f649d20ce03b145d3d395acc5e4497a99bc9 SHA512 fcaa65f0215465df09d0f6b53b626fe1d5facd8c173bb5c5a1cfb44f487aa5cb0cbffd6fc5ab6a3a065ff816b16e095b146db65ac201d2b5cd083f8bfb96c926 WHIRLPOOL a5eaed2f977cf6709e5c3872bc9b049dedd34ac966d8b1a06b518ae7dfbf207916268922c3af20a5d54d2c2291570e4cf989ba5c909187311fa65cf77af59182
diff --git a/dev-python/cloudlib/cloudlib-0.4.0.ebuild b/dev-python/cloudlib/cloudlib-0.4.0.ebuild
new file mode 100644
index 00000000000..4de81e3cf12
--- /dev/null
+++ b/dev-python/cloudlib/cloudlib-0.4.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Cloud middleware for in application use."
+HOMEPAGE="https://github.com/cloudnull/cloudlib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/prettytable-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]"
+
+python_prepare() {
+ sed -i "s/required.append\(\'argparse\'\)/pass/g" setup.py || die
+}
diff --git a/dev-python/cloudlib/metadata.xml b/dev-python/cloudlib/metadata.xml
new file mode 100644
index 00000000000..4f932b065ce
--- /dev/null
+++ b/dev-python/cloudlib/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+Cloud middleware for in application use
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">cloudlib</remote-id>
+ <remote-id type="github">cloudnull/cloudlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cmd2/Manifest b/dev-python/cmd2/Manifest
new file mode 100644
index 00000000000..3ad930ef279
--- /dev/null
+++ b/dev-python/cmd2/Manifest
@@ -0,0 +1,2 @@
+DIST cmd2-0.6.7.tar.gz 20558 SHA256 8e98c7a1cfd106183559240b269e7cd9fe97e8342b5c05295f591aab6fd2f4f0 SHA512 a37393bd9ef6c3ece02249b5a4293a25889ebd68120ee592d2ccd77a8e3e4ab3ba724e0be7f3c98a453dbba30c1851c7f690fbe69711df8a723545f8dbe38607 WHIRLPOOL 9da375c5ab0e1cd0f13e67b1b168b5f87be7f56bc758589b1e41959f3e14b07ad1e055fc2fce6d44ded77f806217b6bbe590009fec27c9179922ea764db0b86d
+DIST cmd2-0.6.8.tar.gz 21483 SHA256 ac780d8c31fc107bf6b4edcbcea711de4ff776d59d89bb167f8819d2d83764a8 SHA512 d3e284e047f22cecadecba5267c313b18c3d0a25e9bc9267cade7e2dae9b472ea7f468a16f91fa0f9362cff3fae019d56866bd8534f9cf879dfe412a2648a411 WHIRLPOOL 53296e0ef6a9ac1c781926a6b183941a4be117e0887a61518873c7740c0f365435ad4254c53b90c211c35422f11029b2ef9699ef05d7713c768148089d9b4519
diff --git a/dev-python/cmd2/cmd2-0.6.7.ebuild b/dev-python/cmd2/cmd2-0.6.7.ebuild
new file mode 100644
index 00000000000..700dac6b3ce
--- /dev/null
+++ b/dev-python/cmd2/cmd2-0.6.7.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extra features for standard library's cmd module"
+HOMEPAGE="https://bitbucket.org/catherinedevlin/cmd2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=">=dev-python/pyparsing-2.0.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+#python_prepare_all() {
+# # Remove broken pyparsing dep.
+# # https://bitbucket.org/catherinedevlin/cmd2/pull-request/3
+# sed -i -e '/= install_requires/d' setup.py || die
+#
+# distutils-r1_python_prepare_all
+#}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ "${PYTHON}" -m cmd2 -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cmd2/cmd2-0.6.8.ebuild b/dev-python/cmd2/cmd2-0.6.8.ebuild
new file mode 100644
index 00000000000..f799a817942
--- /dev/null
+++ b/dev-python/cmd2/cmd2-0.6.8.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extra features for standard library's cmd module"
+HOMEPAGE="https://bitbucket.org/catherinedevlin/cmd2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=">=dev-python/pyparsing-2.0.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ "${PYTHON}" -m cmd2 -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cmd2/metadata.xml b/dev-python/cmd2/metadata.xml
new file mode 100644
index 00000000000..ead6025e17b
--- /dev/null
+++ b/dev-python/cmd2/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Extra features for standard library's cmd module
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">cmd2</remote-id>
+ <remote-id type="bitbucket">catherinedevlin/cmd2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/codetools/Manifest b/dev-python/codetools/Manifest
new file mode 100644
index 00000000000..392308f9aa8
--- /dev/null
+++ b/dev-python/codetools/Manifest
@@ -0,0 +1 @@
+DIST codetools-4.2.0.tar.gz 117891 SHA256 a93452b3f421bb5f9f18a74d404661433e189e29de3a4b9cfe92544e69be9c2c SHA512 8b63b9cb65966db72f3d2b054559fadf3008a4f4a7fc66ff12b046ca18568694c9d11066d6450e38b053b73df31c8a136729d7052bf8e21f287eac220ddf5dbb WHIRLPOOL adf4f8f3a516cf14cb8c71a4874b80c09814b017872be5dbb7768e506fecfc76d59805763d1cf3dbfdf941f86efd3893545e314932bad93c461a4468cee5c15e
diff --git a/dev-python/codetools/codetools-4.2.0.ebuild b/dev-python/codetools/codetools-4.2.0.ebuild
new file mode 100644
index 00000000000..648a3fc100e
--- /dev/null
+++ b/dev-python/codetools/codetools-4.2.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Code analysis and execution tools"
+HOMEPAGE="http://code.enthought.com/projects/code_tools/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+IUSE="test"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/scimath-4[${PYTHON_USEDEP}]
+ >=dev-python/traits-4[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ dev-python/blockcanvas[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ virtual/python-futures[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ VIRTUALX_COMMAND="nosetests" virtualmake -e with_mask_test_case
+}
diff --git a/dev-python/codetools/metadata.xml b/dev-python/codetools/metadata.xml
new file mode 100644
index 00000000000..6f5804ff43a
--- /dev/null
+++ b/dev-python/codetools/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang="en">
+ The CodeTools project from the Enthought Tool Suite
+ includes packages that simplify meta-programming
+ and help the programmer separate data from code in Python. This
+ library contains classes that allow defining simple snippets, or
+ "blocks", of Python code, analyze variable dependencies in the code
+ block, and use these dependencies to construct or restrict an
+ execution graph. These (restricted) code blocks can then be executed
+ in any namespace. However, this project also provides a
+ Traits-event-enhanced namespace, called a "context", which can be used
+ in place of a vanilla namespace to allow actions to be performed
+ whenever variables are assigned or retrieved from the namespace. This
+ project is used as the foundation for the BlockCanvas project.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">codetools</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/colander/Manifest b/dev-python/colander/Manifest
new file mode 100644
index 00000000000..7e61f328059
--- /dev/null
+++ b/dev-python/colander/Manifest
@@ -0,0 +1 @@
+DIST colander-1.0.tar.gz 113800 SHA256 7389413266b9e680c9529c16d56284edf87e0d5de557948e75f41d65683c23b3 SHA512 f361520a12ebec4271580fe5be002bfbdd38fcd4cfb29fa41b9c37308636343dd25595f2e0bd8099bc96583d25644d2039996efefd9c0060fe39f3c46394a4f7 WHIRLPOOL c1ed492781ab276fc5c6cf7d0ce6a9393981c86ed06c9b113c2e37e01748595e8b5422fa24eaac3d3c2a68cd99f337ea9c65b8f0f536f955e2b9b621101278a5
diff --git a/dev-python/colander/colander-1.0.ebuild b/dev-python/colander/colander-1.0.ebuild
new file mode 100644
index 00000000000..0aa70d15872
--- /dev/null
+++ b/dev-python/colander/colander-1.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple schema-based serialization and deserialization library"
+HOMEPAGE="http://docs.pylonsproject.org/projects/colander/en/latest/ http://pypi.python.org/pypi/colander"
+MY_P=${P/_beta1/b1}
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+S="${WORKDIR}/${MY_P}"
+
+# MIT license is used by included (modified) iso8601.py code.
+LICENSE="repoze MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+# Depend on an ebuild of translationstring with Python 3 support.
+RDEPEND=">=dev-python/translationstring-1.1[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}] )"
+
+# Include COPYRIGHT.txt because the license seems to require it.
+DOCS=( CHANGES.rst COPYRIGHT.txt README.rst )
+
+python_prepare_all() {
+ # Remove pylons theme since it's not included in source
+ sed -e "/# Add and use Pylons theme/,+37d" -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ # https://github.com/Pylons/colander/issues/38
+ emake -C docs html SPHINXOPTS=""
+ fi
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/colander/metadata.xml b/dev-python/colander/metadata.xml
new file mode 100644
index 00000000000..f96f0f02bb8
--- /dev/null
+++ b/dev-python/colander/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">colander</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/colorama/Manifest b/dev-python/colorama/Manifest
new file mode 100644
index 00000000000..c5477999c93
--- /dev/null
+++ b/dev-python/colorama/Manifest
@@ -0,0 +1,2 @@
+DIST colorama-0.3.2.tar.gz 18343 SHA256 218862857d74ff781c2caf44629a7d72b88bbb8a2b0aa0f4f1eb8666f8305c11 SHA512 1fe6d72a4f56ef1adb96f70b1721223937647a2f22648bececf7ad05710d82bede767ebd00e9267db0f874ddbe3ec852b82408794b80ea803c888dcfcd9b9532 WHIRLPOOL b49b276772798ba0b606f0b109d8eef1aaeaa6103e143765f75c3c9275b5e94a06aefd05856e0534372fcf0e3da10b236eac8f1f0b4962ec297beff0cfafe059
+DIST colorama-0.3.3.tar.gz 22765 SHA256 eb21f2ba718fbf357afdfdf6f641ab393901c7ca8d9f37edd0bee4806ffa269c SHA512 8e6177ea60ab8f1267ce982f23803a9d2eb0c4550d7eac4776416d62a99d1ce03254fc64cc959ca95e2409ceeff081d4d19359c383e969dfb921b44c56914495 WHIRLPOOL e5fe6c0046b558abdde260d9d89e3cbe197165f99fb4f7134c14fff95e6c1e92b3472a95001d847ab58e8445c87f21774a71f629771593934ea070838c765461
diff --git a/dev-python/colorama/colorama-0.3.2.ebuild b/dev-python/colorama/colorama-0.3.2.ebuild
new file mode 100644
index 00000000000..671172f1e82
--- /dev/null
+++ b/dev-python/colorama/colorama-0.3.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Makes ANSI escape character sequences for producing colored terminal text & cursor positioning"
+HOMEPAGE="http://code.google.com/p/colorama/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+python_install_all() {
+ use examples && local EXAMPLES=( demos/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/colorama/colorama-0.3.3.ebuild b/dev-python/colorama/colorama-0.3.3.ebuild
new file mode 100644
index 00000000000..a89ee41317e
--- /dev/null
+++ b/dev-python/colorama/colorama-0.3.3.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Makes ANSI escape character sequences for producing colored terminal text & cursor positioning"
+HOMEPAGE="http://code.google.com/p/colorama/ https://pypi.python.org/pypi/colorama https://github.com/tartley/colorama"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+python_install_all() {
+ use examples && local EXAMPLES=( demos/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/colorama/metadata.xml b/dev-python/colorama/metadata.xml
new file mode 100644
index 00000000000..6d2cc60852e
--- /dev/null
+++ b/dev-python/colorama/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Makes ANSI escape character sequences, for producing colored terminal text
+ and cursor positioning, works under MS Windows.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">colorama</remote-id>
+ <remote-id type="github">tartley/colorama</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/coloredlogs/Manifest b/dev-python/coloredlogs/Manifest
new file mode 100644
index 00000000000..b184f86e583
--- /dev/null
+++ b/dev-python/coloredlogs/Manifest
@@ -0,0 +1 @@
+DIST coloredlogs-1.0.1.tar.gz 13926 SHA256 11067ca91532ba4a316fa53b005152a08b3e015dcb1234d393cfc25af88ebc3e SHA512 098aa22b371ffdb6400fac7d2f000aa73f8956eae71f48ceed2110eb35a4b4d11f814f8cacca643c4deccd82da058a750c700264e7c71c2351514a6f887101a5 WHIRLPOOL 71b447498d5e91a0cda131046f7545230bc0c13aa814f0d79cf8888bd60934dee7c5cc54a729dd36b0a937451f80302384fb0733fd94e43e09c2ce9258c950fd
diff --git a/dev-python/coloredlogs/coloredlogs-1.0.1-r1.ebuild b/dev-python/coloredlogs/coloredlogs-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..6d2702e1707
--- /dev/null
+++ b/dev-python/coloredlogs/coloredlogs-1.0.1-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Colored stream handler for the logging module"
+HOMEPAGE="https://pypi.python.org/pypi/coloredlogs https://github.com/xolox/python-coloredlogs http://coloredlogs.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/humanfriendly-1.25.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/verboselogs[${PYTHON_USEDEP}] )"
+
+DOCS=( README.rst )
+
+PATCHES=( "${FILESDIR}"/${P}-ansi2html.patch )
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/coloredlogs/files/coloredlogs-1.0.1-ansi2html.patch b/dev-python/coloredlogs/files/coloredlogs-1.0.1-ansi2html.patch
new file mode 100644
index 00000000000..32f124481f2
--- /dev/null
+++ b/dev-python/coloredlogs/files/coloredlogs-1.0.1-ansi2html.patch
@@ -0,0 +1,17 @@
+ setup.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index bbfd220..0ffe721 100755
+--- a/setup.py
++++ b/setup.py
+@@ -41,9 +41,6 @@ setup(name='coloredlogs',
+ author='Peter Odding',
+ author_email='peter@peterodding.com',
+ packages=find_packages(),
+- entry_points=dict(console_scripts=[
+- 'ansi2html = coloredlogs.converter:main',
+- ]),
+ install_requires=[
+ 'humanfriendly >= 1.25.1',
+ ],
diff --git a/dev-python/coloredlogs/metadata.xml b/dev-python/coloredlogs/metadata.xml
new file mode 100644
index 00000000000..6d57e9c7e6d
--- /dev/null
+++ b/dev-python/coloredlogs/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">coloredlogs</remote-id>
+ <remote-id type="github">xolox/python-coloredlogs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/colorlog/Manifest b/dev-python/colorlog/Manifest
new file mode 100644
index 00000000000..62558fd8315
--- /dev/null
+++ b/dev-python/colorlog/Manifest
@@ -0,0 +1 @@
+DIST colorlog-2.6.0.tar.gz 7079 SHA256 0f03ae0128a1ac2e22ec6a6617efbd36ab00d4b2e1c49c497e11854cf24f1fe9 SHA512 be0fbdb617f2edede0d7076a7d9bb0f32578d8f8e688734cf2f29a3bad8e95a8cd2ee32abd680289602a8fb5fb3da728a134ac0f9eb7bcf645a3220c9e02dbf0 WHIRLPOOL 64565c351e6e36b3c20882b9c73a36a2d8aed5866b92d447bbe95dbbff30f15f3d9d68b6840916738d5eb943246f1ec5c9548505e6e2df2e09057c20c564da7c
diff --git a/dev-python/colorlog/colorlog-2.6.0.ebuild b/dev-python/colorlog/colorlog-2.6.0.ebuild
new file mode 100644
index 00000000000..a586d01e006
--- /dev/null
+++ b/dev-python/colorlog/colorlog-2.6.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Log formatting with colors"
+HOMEPAGE="https://pypi.python.org/pypi/colorlog https://github.com/borntyping/python-colorlog"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+DOCS=( README.rst )
+
+python_test() {
+ py.test colorlog || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/colorlog/metadata.xml b/dev-python/colorlog/metadata.xml
new file mode 100644
index 00000000000..cd6e112d72a
--- /dev/null
+++ b/dev-python/colorlog/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">colorlog</remote-id>
+ <remote-id type="github">borntyping/python-colorlog</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/colout/Manifest b/dev-python/colout/Manifest
new file mode 100644
index 00000000000..c802ff640ed
--- /dev/null
+++ b/dev-python/colout/Manifest
@@ -0,0 +1 @@
+DIST colout-0.1.tar.gz 11184 SHA256 dc0cc0672f85150894af35a3811faf4e18f82aa97dbc2627083bf8e7f1856827 SHA512 605f67c706296f92d3300ae3ea1ad46c77073ef8503c99febc64a8bb17a677f7f4539a5b148853c8a3838c79f158f4703017db62bc99554628e9d7c3138f8880 WHIRLPOOL 88c2acb8703b48b4f29126c06e56ddb62b19508756fd370121390b3427c4ff60fdfab1aed0e6ac096ac3b3b8a169b12bce2e8b4c00c089fd426631ed0a53b7f5
diff --git a/dev-python/colout/colout-0.1.ebuild b/dev-python/colout/colout-0.1.ebuild
new file mode 100644
index 00000000000..8ed8cc14e30
--- /dev/null
+++ b/dev-python/colout/colout-0.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Adds color to arbitrary command output"
+HOMEPAGE="http://nojhan.github.com/colout/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/Babel[$(python_gen_usedep 'python2*')]
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ #PyPi tarball has wrong (old, evidently) README. Upstream uses GPL-3.
+ sed -e 's:BSD licensed:GPL-3 licensed:' -i README || die
+ distutils-r1_src_prepare
+}
+
+pkg_postinst() {
+ if [[ "${PYTHON_TARGETS}" == *python3* ]]; then
+ ewarn "Though ${PN} supports Python 3, Babel does not, thus it's number parsing feature won't be used."
+ ewarn "If you need it, use Python 2."
+ fi
+}
diff --git a/dev-python/colout/metadata.xml b/dev-python/colout/metadata.xml
new file mode 100644
index 00000000000..1a741a7899a
--- /dev/null
+++ b/dev-python/colout/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Colout</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/columnize/Manifest b/dev-python/columnize/Manifest
new file mode 100644
index 00000000000..a63e88ec061
--- /dev/null
+++ b/dev-python/columnize/Manifest
@@ -0,0 +1,2 @@
+DIST columnize-0.3.5.tar.gz 8838 SHA256 b5793700ef089584681ae703b4bb3b9a31be57eff09021162048d79ef480af68 SHA512 7df49fcb52e2eafd47ca0dad4529117c4181b3306f984c02bf470bdec427bd92c92680caf91398a918bee17c30d4d5a9accd1999241daa1e298d0016e3257d08 WHIRLPOOL 18ce0c5fc16832a6db2dddfac628798018e995f185ef4bceccfdafc4cd3a97d17807bd5f0e36de6e36feaeb3dbed1dacf558f28678f4dc7efc547c7b275ebe9b
+DIST columnize-0.3.8.tar.gz 9464 SHA256 c94d9173e0cb34682b1f63d2cea5924a522ef588981a7baa6a4c08a785808555 SHA512 4bcf232f2c8057eb8a77ab8c140a69c15831291da7476032f8b257774d9f945009bdd2d6295e98dceddcf9943b5e0b5e8eeab6bd229d2ae126f11c421b2e1dae WHIRLPOOL d21410955c3d461246cc7e02fd09277a9071017a287a23ec0d36cbeeef273b8bf4d4be289472f9882bede39afa552934a610bbe2e559929a34963eedad3972dd
diff --git a/dev-python/columnize/columnize-0.3.5-r1.ebuild b/dev-python/columnize/columnize-0.3.5-r1.ebuild
new file mode 100644
index 00000000000..69dc4efd1b0
--- /dev/null
+++ b/dev-python/columnize/columnize-0.3.5-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Format a simple (i.e. not nested) list into aligned columns"
+HOMEPAGE="http://code.google.com/p/pycolumnize/ http://pypi.python.org/pypi/columnize"
+SRC_URI="http://pycolumnize.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die "tests failed"
+}
diff --git a/dev-python/columnize/columnize-0.3.8.ebuild b/dev-python/columnize/columnize-0.3.8.ebuild
new file mode 100644
index 00000000000..a8850207354
--- /dev/null
+++ b/dev-python/columnize/columnize-0.3.8.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Format a simple (i.e. not nested) list into aligned columns"
+HOMEPAGE="https://github.com/rocky/pycolumnize http://pypi.python.org/pypi/columnize"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/backports-shutil_get_terminal_size[$(python_gen_usedep 'python2*')]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test || die
+}
diff --git a/dev-python/columnize/metadata.xml b/dev-python/columnize/metadata.xml
new file mode 100644
index 00000000000..6514190e88b
--- /dev/null
+++ b/dev-python/columnize/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">pycolumnize</remote-id>
+ <remote-id type="pypi">columnize</remote-id>
+ <remote-id type="github">rocky/pycolumnize</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/common/Manifest b/dev-python/common/Manifest
new file mode 100644
index 00000000000..b7973f241fa
--- /dev/null
+++ b/dev-python/common/Manifest
@@ -0,0 +1 @@
+DIST common-0.1.1.tar.gz 2695 SHA256 197638d6146898400c5d0f1549bdef990503fa004a21bcfa0d157cf898bd9f21 SHA512 9bc76b762bf58599f8bd15c0e66fc5eb5898b7e3401d7a4908ca6a58a4f8040bb3fa44f016de62a129db2cb932ee724dfc59f42213f65f61a1fd399d3738eec0 WHIRLPOOL b038231708624ee582a46ba7f04a218c08e3415b743470539d0a5b996bc34b22f40defdbc326dc462283322a85a3d612eac6b147724e20ebc9fc25e6fda0d283
diff --git a/dev-python/common/common-0.1.1.ebuild b/dev-python/common/common-0.1.1.ebuild
new file mode 100644
index 00000000000..21a5ba200eb
--- /dev/null
+++ b/dev-python/common/common-0.1.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Common tools and data structures implemented in pure python"
+HOMEPAGE="https://pypi.python.org/pypi/common"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="all-rights-reserved"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RESTRICT="mirror bindist"
diff --git a/dev-python/common/metadata.xml b/dev-python/common/metadata.xml
new file mode 100644
index 00000000000..87cd88a7414
--- /dev/null
+++ b/dev-python/common/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">common</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/compizconfig-python/Manifest b/dev-python/compizconfig-python/Manifest
new file mode 100644
index 00000000000..288e1b0c4cb
--- /dev/null
+++ b/dev-python/compizconfig-python/Manifest
@@ -0,0 +1 @@
+DIST compizconfig-python-0.8.4.tar.bz2 269812 SHA256 6734ae35ee69d081f35f98a89cd3bccb411a4db7c5b35fbd226270d95ac76f5a SHA512 3cd20014a7d0b186c9659ce104576d8e08e9e9f1f60bed4b7f4097c12ca4c49392621d2328abb50017c7d9f86af5b43675468b1cd4b5d128e23c24371c4af9ef WHIRLPOOL d2b92846acc25a134604a8773f96b5745b65864f4365e864b9a43e72bbaa7a277592911932886ca3e0af052240f3a56d89ff66799bba0afad58bc8b6d33ba2ac
diff --git a/dev-python/compizconfig-python/compizconfig-python-0.8.4-r5.ebuild b/dev-python/compizconfig-python/compizconfig-python-0.8.4-r5.ebuild
new file mode 100644
index 00000000000..1f0b72390a5
--- /dev/null
+++ b/dev-python/compizconfig-python/compizconfig-python-0.8.4-r5.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+inherit eutils autotools-utils python-r1
+
+DESCRIPTION="Compizconfig Python Bindings"
+HOMEPAGE="http://www.compiz.org/"
+SRC_URI="http://releases.compiz.org/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="${PYTHON_DEPS}
+ >=dev-libs/glib-2.6
+ >=x11-libs/libcompizconfig-${PV}"
+
+DEPEND="${RDEPEND}
+ dev-python/pyrex[${PYTHON_USEDEP}]
+ virtual/pkgconfig"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_configure() {
+ local myeconfargs=(
+ --enable-fast-install
+ --disable-static
+ )
+ python_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+ prune_libtool_files --modules
+}
diff --git a/dev-python/compizconfig-python/metadata.xml b/dev-python/compizconfig-python/metadata.xml
new file mode 100644
index 00000000000..20b5ab50db6
--- /dev/null
+++ b/dev-python/compizconfig-python/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>desktop-effects</herd>
+<longdescription lang="en">Python bindings for libcompizconfig.</longdescription>
+</pkgmetadata>
+
diff --git a/dev-python/configargparse/Manifest b/dev-python/configargparse/Manifest
new file mode 100644
index 00000000000..ad23fb415a9
--- /dev/null
+++ b/dev-python/configargparse/Manifest
@@ -0,0 +1 @@
+DIST ConfigArgParse-0.9.3.tar.gz 18983 SHA256 141c57112e1f8eb7e594a9820e95af897a7fa2d186cef5cff7e08cb3f7252829 SHA512 27b5132e7a87a59e5bc650d6884859c5c9a2f2f3d8d05e123d00c726527db26e021b5413f8e6e54fb311696e6e30fc5c236e86b43a271a10362368818d2ea0a2 WHIRLPOOL 586b06c99dc3c064fb7b7e53a1906fcaac665547accac1e5d7d5e88adecd038d9b8247c4d53566c7bfdf58003292da1dcf3b1e283e9398341409463d04c3c5a6
diff --git a/dev-python/configargparse/configargparse-0.9.3.ebuild b/dev-python/configargparse/configargparse-0.9.3.ebuild
new file mode 100644
index 00000000000..672542ea6f1
--- /dev/null
+++ b/dev-python/configargparse/configargparse-0.9.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN=ConfigArgParse
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A drop-in replacement for argparse that adds support for config files and/or environment variables"
+HOMEPAGE="https://github.com/zorro3/ConfigArgParse https://pypi.python.org/pypi/ConfigArgParse"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/configargparse/metadata.xml b/dev-python/configargparse/metadata.xml
new file mode 100644
index 00000000000..c18f7cb4f92
--- /dev/null
+++ b/dev-python/configargparse/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">ConfigArgParse</remote-id>
+ <remote-id type="github">zorro3/ConfigArgParse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/configclass/Manifest b/dev-python/configclass/Manifest
new file mode 100644
index 00000000000..9cfca21cea2
--- /dev/null
+++ b/dev-python/configclass/Manifest
@@ -0,0 +1 @@
+DIST configclass-0.1.0.tar.gz 3246 SHA256 e10b26d2476089d3c98e7dd3b535a93df86a3c6c86a3d08ec047f4d730f9dd1c SHA512 d3a83c742916a9d345a3e8b2fb29d8742cff67a110f9bbaaee6e04fc1134faa6eee13f7344a95f133107afcdfccd394f6a3b5fc516b21dbfd7ac38a5bed00d34 WHIRLPOOL 9b2acce86aab20fc0d1c4a99081b184252a71c6f3df6d5c6efded84f2113c161dad8e15a2a34843962aa61064f43e241ccf9d4aa4b42e20eed7d22cf655574c0
diff --git a/dev-python/configclass/configclass-0.1.0.ebuild b/dev-python/configclass/configclass-0.1.0.ebuild
new file mode 100644
index 00000000000..761e15d6269
--- /dev/null
+++ b/dev-python/configclass/configclass-0.1.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python to class to hold configuration values"
+HOMEPAGE="https://github.com/schettino72/configclass/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/mergedict-0.2.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/configclass/metadata.xml b/dev-python/configclass/metadata.xml
new file mode 100644
index 00000000000..fcac0317b9e
--- /dev/null
+++ b/dev-python/configclass/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">configclass</remote-id>
+ <remote-id type="github">schettino72/configclass</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/configobj/Manifest b/dev-python/configobj/Manifest
new file mode 100644
index 00000000000..8ebb884657f
--- /dev/null
+++ b/dev-python/configobj/Manifest
@@ -0,0 +1,3 @@
+DIST configobj-4.7.2.zip 143618 SHA256 332a0d20d4d736d521d95cb2cf069b1ac7c858985207db4296f4050396558c49 SHA512 510b7ce461932d504808a9aeb539265b9fddb17c9451076f8b6be796f38617a5095d3c287c78c38a1825d76be462ca0224f5ae3b614f67fd69c6260b399d802f WHIRLPOOL e38ea000479792be4c9ddf17fca8d17bc486cd2ef0363a7fc29922012b485ca8c2a9ac8b7eb06676783b87ca8ec37da41a8a44e7111dcaf07244318e1599924b
+DIST configobj-5.0.5.tar.gz 33232 SHA256 766eff273f2cbb007a3ea8aa69429ee9b1553aa96fe282c6ace3769b9ac47b08 SHA512 6dfb30fff22b1a62a191876161c20c7236d49137a0def85ea2ddf80a6810347f586bbec2dffbcd58ed942591f362b7741ec2f9464fb377e852edc6748b12ba6a WHIRLPOOL ff4c202b15188f501f2538db16a518e154a93bffa31c2d89e509220967d6bde51f7dc1e062f3d57895bf024a04554f42cc8d527d89b93ff9a6e1127dadc9d035
+DIST configobj-5.0.6.tar.gz 33248 SHA256 a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902 SHA512 f253fdd0bc3fcd37f56c9ceb28f5c8c739b0861e099b07a3929645907c97b2261f0529850a95c1a42507846f72d88a0992fcd1e1d6fa8654dc713d120f769963 WHIRLPOOL fc8472d7fd161f4ccd09e3d99c6e97d3ecfe008b3cd16d623ef6ecd598148a41b4658c6ce7488f30eb581e2fcc09bbb8887240e77582d3c272b88c8da87ebb08
diff --git a/dev-python/configobj/configobj-4.7.2-r2.ebuild b/dev-python/configobj/configobj-4.7.2-r2.ebuild
new file mode 100644
index 00000000000..c3fcd7027a8
--- /dev/null
+++ b/dev-python/configobj/configobj-4.7.2-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Simple config file reader and writer"
+HOMEPAGE="http://www.voidspace.org.uk/python/configobj.html http://code.google.com/p/configobj/ http://pypi.python.org/pypi/configobj"
+SRC_URI="mirror://sourceforge/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc"
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${P}-fix_tests.patch )
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ sed -e "s/ \(doctest\.testmod(.*\)/ sys.exit(\1[0] != 0)/" -i validate.py || die
+}
+
+python_test() {
+ "${PYTHON}" validate.py -v || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc; then
+ rm -f docs/BSD*
+ insinto /usr/share/doc/${PF}/html
+ doins -r docs/* || die "doins failed"
+ fi
+}
diff --git a/dev-python/configobj/configobj-5.0.5.ebuild b/dev-python/configobj/configobj-5.0.5.ebuild
new file mode 100644
index 00000000000..8d43f8cce3f
--- /dev/null
+++ b/dev-python/configobj/configobj-5.0.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple config file reader and writer"
+HOMEPAGE="http://www.voidspace.org.uk/python/configobj.html http://code.google.com/p/configobj/ http://pypi.python.org/pypi/configobj"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Not to install un-needed _version.py
+ sed -e "/^MODULES =/s/, '_version'//" -i setup.py
+ sed -e "s/^from _version import __version__$/__version__ = '${PV}'/" -i configobj.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" validate.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/configobj/configobj-5.0.6.ebuild b/dev-python/configobj/configobj-5.0.6.ebuild
new file mode 100644
index 00000000000..396c1a6bb7c
--- /dev/null
+++ b/dev-python/configobj/configobj-5.0.6.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple config file reader and writer"
+HOMEPAGE="http://www.voidspace.org.uk/python/configobj.html http://code.google.com/p/configobj/ http://pypi.python.org/pypi/configobj"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Not to install un-needed _version.py
+ sed -e "/^MODULES =/s/, '_version'//" -i setup.py
+ sed -e "s/^from _version import __version__$/__version__ = '${PV}'/" -i configobj.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" validate.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/configobj/files/configobj-4.7.2-fix_tests.patch b/dev-python/configobj/files/configobj-4.7.2-fix_tests.patch
new file mode 100644
index 00000000000..c0b867e0ee7
--- /dev/null
+++ b/dev-python/configobj/files/configobj-4.7.2-fix_tests.patch
@@ -0,0 +1,11 @@
+--- validate.py
++++ validate.py
+@@ -268,8 +268,6 @@
+ 16908291
+ >>> int(dottedQuadToNum('1.2.3.4'))
+ 16909060
+- >>> dottedQuadToNum('255.255.255.255')
+- 4294967295L
+ >>> dottedQuadToNum('255.255.255.256')
+ Traceback (most recent call last):
+ ValueError: Not a good dotted-quad IP: 255.255.255.256
diff --git a/dev-python/configobj/metadata.xml b/dev-python/configobj/metadata.xml
new file mode 100644
index 00000000000..8deebe785ef
--- /dev/null
+++ b/dev-python/configobj/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ ConfigObj is a simple but powerful config file reader and writer: an
+ ini file round tripper. Its main feature is that it is very easy to
+ use, with a straightforward programmer's interface and a simple syntax
+ for config files.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">configobj</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/configparser/Manifest b/dev-python/configparser/Manifest
new file mode 100644
index 00000000000..3290a0c7af5
--- /dev/null
+++ b/dev-python/configparser/Manifest
@@ -0,0 +1 @@
+DIST configparser-3.3.0r2.tar.gz 32885 SHA256 6a2318590dfc4013fc5bf53c2bec14a8cb455a232295eb282a13f94786c4b0b2 SHA512 86c095bb64766e87ba59462a99d0287ec52073f27a1c9be7d37568516bc0cc4af6f362ca90a1b90f52aaa4342dc275d769c77f18d80c0efb114ba6fce37fff5f WHIRLPOOL 125ea0a2f1632c599e30d2e196f463139248b9fe1d0e24945b15f3497646b5e87dd0659c9ba78625d8fbaeac7ea5a7f8fd4124c0ad52e64ebbf4ec06533fe9b8
diff --git a/dev-python/configparser/configparser-3.3.0.2.ebuild b/dev-python/configparser/configparser-3.3.0.2.ebuild
new file mode 100644
index 00000000000..96e08ff12bf
--- /dev/null
+++ b/dev-python/configparser/configparser-3.3.0.2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+inherit distutils-r1
+
+MY_PV=${PV%.*}r${PV##*.}
+DESCRIPTION="Backport of Python-3 built-in configparser"
+HOMEPAGE="http://pypi.python.org/pypi/configparser/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${PN}-${MY_PV}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+S=${WORKDIR}/${PN}-${MY_PV}
diff --git a/dev-python/configparser/metadata.xml b/dev-python/configparser/metadata.xml
new file mode 100644
index 00000000000..e6628be595b
--- /dev/null
+++ b/dev-python/configparser/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>yngwin@gentoo.org</email>
+ <name>Ben de Groot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">configparser</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/configshell/configshell-9999.ebuild b/dev-python/configshell/configshell-9999.ebuild
new file mode 100644
index 00000000000..f12b9c3c4b5
--- /dev/null
+++ b/dev-python/configshell/configshell-9999.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="git://linux-iscsi.org/${PN}.git"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 git-r3
+
+DESCRIPTION="ConfigShell Community Edition for target_core_mod/ConfigFS"
+HOMEPAGE="http://linux-iscsi.org/"
+SRC_URI=""
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="
+ dev-python/epydoc[${PYTHON_USEDEP}]
+ dev-python/simpleparse[${PYTHON_USEDEP}]
+ "
+RDEPEND="${DEPEND}"
diff --git a/dev-python/configshell/metadata.xml b/dev-python/configshell/metadata.xml
new file mode 100644
index 00000000000..59fc80b97cf
--- /dev/null
+++ b/dev-python/configshell/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>cluster</herd>
+ <maintainer>
+ <email>alexxy@gentoo.org</email>
+ <name>Alexey Shvetsov</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/contextlib2/Manifest b/dev-python/contextlib2/Manifest
new file mode 100644
index 00000000000..a2aa4e4db77
--- /dev/null
+++ b/dev-python/contextlib2/Manifest
@@ -0,0 +1 @@
+DIST contextlib2-0.4.0.tar.gz 18741 SHA256 55a5dc78f7a742a0e756645134ffb39bbe11da0fea2bc0f7070d40dac208b732 SHA512 622762c5490f0ff3e4b421a63bccce8fe0753977112ee0db9640dad31093c40c8a331f3d7cade9925f17903eaeaa376925ef607d7a440170c7c5ec1c8e04f56a WHIRLPOOL b1b2b753b15cb5124ebc378acf6b959839e727a53d3a096eea5b04404fc059f6a1b49b9fa23cc6310ad1b9bcfa655a82088af0906a74f8326d7bf57f3793440c
diff --git a/dev-python/contextlib2/contextlib2-0.4.0.ebuild b/dev-python/contextlib2/contextlib2-0.4.0.ebuild
new file mode 100644
index 00000000000..bd498c20f70
--- /dev/null
+++ b/dev-python/contextlib2/contextlib2-0.4.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Backports and enhancements for the contextlib module"
+HOMEPAGE="https://pypi.python.org/pypi/contextlib2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2.4"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+python_test() {
+ "${PYTHON}" test_contextlib2.py || die "Tests fail for ${EPYTHON}"
+}
diff --git a/dev-python/contextlib2/metadata.xml b/dev-python/contextlib2/metadata.xml
new file mode 100644
index 00000000000..54713949c68
--- /dev/null
+++ b/dev-python/contextlib2/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">contextlib2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cosmolopy/Manifest b/dev-python/cosmolopy/Manifest
new file mode 100644
index 00000000000..1a8c94c4127
--- /dev/null
+++ b/dev-python/cosmolopy/Manifest
@@ -0,0 +1 @@
+DIST CosmoloPy-0.1.104.tar.gz 65162 SHA256 f70486c362230ece215a974ef12ba7c9969598a220ecba64de19d0fcd5674e75 SHA512 b79b5b264a6bdd68082fc3f62f40957421d9a6914d1623cc89bac9b64598e5fca5d52290632ab55878c893223aeb3283c9b088987a0927d2c22160bc521359fa WHIRLPOOL 7155a20339a3548b5c194dc22efe62bf30b45c626c13d8a6e2c4a76ab37cbf097cda2ce94bff435f387bb8ed303c83a70cefc3e979f1a04e1b0b14726a4db978
diff --git a/dev-python/cosmolopy/cosmolopy-0.1.104-r1.ebuild b/dev-python/cosmolopy/cosmolopy-0.1.104-r1.ebuild
new file mode 100644
index 00000000000..74fc1c2bee6
--- /dev/null
+++ b/dev-python/cosmolopy/cosmolopy-0.1.104-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7)
+
+inherit distutils-r1
+
+MY_PN=CosmoloPy
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Cosmology routines built on NumPy/SciPy"
+HOMEPAGE="http://roban.github.com/CosmoloPy/ http://pypi.python.org/pypi/CosmoloPy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/nose[${PYTHON_USEDEP}]
+ dev-lang/swig
+ doc? ( dev-python/epydoc[${PYTHON_USEDEP}] )"
+RDEPEND="sci-libs/scipy[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+python_compile_all() {
+ if use doc; then
+ epydoc -n "CosmoloPy - Cosmology routines built on NumPy/SciPy" \
+ --exclude='cosmolopy.EH._power' --exclude='cosmolopy.EH.power' \
+ --no-private --no-frames --html --docformat restructuredtext \
+ cosmolopy/ -o docAPI/ || die
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docAPI/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cosmolopy/metadata.xml b/dev-python/cosmolopy/metadata.xml
new file mode 100644
index 00000000000..c931c4e1666
--- /dev/null
+++ b/dev-python/cosmolopy/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci-astronomy</herd>
+ <longdescription lang="en">CosmoloPy is a package of cosmology routines built on NumPy/SciPy.</longdescription>
+ <upstream>
+ <remote-id type="pypi">CosmoloPy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/couchdb-python/Manifest b/dev-python/couchdb-python/Manifest
new file mode 100644
index 00000000000..caeef0ee295
--- /dev/null
+++ b/dev-python/couchdb-python/Manifest
@@ -0,0 +1,3 @@
+DIST CouchDB-0.10.tar.gz 56547 SHA256 dd477d8c535a324d763b34beb0d296cf660c98090666a06956b5b98d9a69c960 SHA512 73655b173e497cde58f8bd3d648f28b6189363bccea68454ea60c851a73933d94e90f357a4969694f72c3034dac5166b351f7d68290ff458860f19a2d669bab5 WHIRLPOOL cee3cb74435955384297d84f09da9132f34b2d404868b094df80fc46770c1cc8cbd83cdc9ac70f668610a9d34ac18790084eaeb68bb863913f239a694990f3fa
+DIST CouchDB-0.9.tar.gz 55189 SHA256 a1cf5071b5adb47048199bbfbaf1500e69c88b27afe14ba26efa0f4044c3baee SHA512 ceba7afd3400e9da51fb6493b68d5192e1c3817d159fc8f2791bdc03b61828f1b2f262a64832e81f4b950379795b100c8f506527489e91a8872291a7b4173c42 WHIRLPOOL ddace810c3e879a6cba84602999fc964b4681a56a838d2e5e301b23ce76c94c99fb1936cbb8426f1d276a42b937755b39adaf206c7e60738799bf8add6deb7be
+DIST CouchDB-1.0.tar.gz 56791 SHA256 f81de35433932e1d81b922d12119fe9b2435046db5dc53d1fb068a087c1fb264 SHA512 c328a9b027d24ee560ef592925a072a463852fdb7e8e93e1d6e740d7245181ba147985d610d6fd55f4790d7338e69470c44f574469e718eeb7b4163dfb6fc19a WHIRLPOOL 326be4bedd76ebbc5c9fd3cbdc52182230e0701372e75fa074a328633668e407528ccab7d3516b665be8587d131db4e7f7ba054cb6be2fca60b16265793f38c4
diff --git a/dev-python/couchdb-python/couchdb-python-0.10.ebuild b/dev-python/couchdb-python/couchdb-python-0.10.ebuild
new file mode 100644
index 00000000000..8cc0d4e6ff8
--- /dev/null
+++ b/dev-python/couchdb-python/couchdb-python-0.10.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="CouchDB"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python library for working with CouchDB"
+HOMEPAGE="http://code.google.com/p/couchdb-python/ http://pypi.python.org/pypi/CouchDB"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+# Tests require connectivity to a couchdb server.
+# Re-enable when the ebuild is capable of starting a local couchdb
+# instance.
+RESTRICT=test
+
+PATCHES=( "${FILESDIR}/${PV}-exec-compat.patch" )
+
+python_compile_all() {
+ esetup.py build_sphinx
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/couchdb-python/couchdb-python-0.9.ebuild b/dev-python/couchdb-python/couchdb-python-0.9.ebuild
new file mode 100644
index 00000000000..435d2ec3265
--- /dev/null
+++ b/dev-python/couchdb-python/couchdb-python-0.9.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="CouchDB"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python library for working with CouchDB"
+HOMEPAGE="http://code.google.com/p/couchdb-python/ http://pypi.python.org/pypi/CouchDB"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+# Tests require connectivity to a couchdb server.
+# Re-enable when the ebuild is capable of starting a local couchdb
+# instance.
+RESTRICT=test
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/couchdb-python/couchdb-python-1.0.ebuild b/dev-python/couchdb-python/couchdb-python-1.0.ebuild
new file mode 100644
index 00000000000..63278c2e505
--- /dev/null
+++ b/dev-python/couchdb-python/couchdb-python-1.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="CouchDB"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python library for working with CouchDB"
+HOMEPAGE="https://github.com/djc/couchdb-python http://pypi.python.org/pypi/CouchDB"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+# Tests require connectivity to a couchdb server.
+# Re-enable when the ebuild is capable of starting a local couchdb
+# instance.
+RESTRICT=test
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/couchdb-python/files/0.10-exec-compat.patch b/dev-python/couchdb-python/files/0.10-exec-compat.patch
new file mode 100644
index 00000000000..da0ad536e11
--- /dev/null
+++ b/dev-python/couchdb-python/files/0.10-exec-compat.patch
@@ -0,0 +1,87 @@
+commit 8fdba0f09df00d69618858c70d11ddbeecd30026
+Author: Dirkjan Ochtman <dirkjan@ochtman.nl>
+Date: Thu Jul 24 11:43:52 2014 +0200
+
+ Use a single pyexec() utility function to fix compatibility issues
+
+ While the current setup (where 2.x uses the exec statement and 3.x uses the
+ exec() function) works at run-time, it causes problem while byte-compiling
+ the util modules for their non-appropriate interpreter versions:
+
+ File "/usr/lib64/python2.7/site-packages/couchdb/util3.py", line 17
+ pyexec = exec
+ ^
+ SyntaxError: invalid syntax
+
+ File "/usr/lib64/python3.3/site-packages/couchdb/util2.py", line 19
+ exec code in gns, lns
+ ^
+ SyntaxError: invalid syntax
+
+ There doesn't appear to be an easy way to exclude some files from installation
+ based on the installing Python version, but it turns out the 2.x exec
+ statement can also take its arguments as a tuple, such that the 2.x and 3.x
+ versions can be used with the same syntax.
+
+ However, Python 2.7 has a bug (#21591) that prevents this from working in the
+ context we use exec in (in a function that also contains a nested function),
+ due to a bad implementation that enables the arguments-as-tuple functionality.
+ We thus need a helper function after all, to pull it out of that context.
+
+diff --git a/couchdb/util.py b/couchdb/util.py
+index bdd52f3..d111a6b 100644
+--- a/couchdb/util.py
++++ b/couchdb/util.py
+@@ -4,3 +4,7 @@ if sys.version_info[0] < 3:
+ from couchdb.util2 import *
+ else:
+ from couchdb.util3 import *
++
++def pyexec(code, gns, lns):
++ # http://bugs.python.org/issue21591
++ exec(code, gns, lns)
+diff --git a/couchdb/util2.py b/couchdb/util2.py
+index ad1b0a8..03fd558 100644
+--- a/couchdb/util2.py
++++ b/couchdb/util2.py
+@@ -1,8 +1,7 @@
+
+ __all__ = [
+ 'StringIO', 'urlsplit', 'urlunsplit', 'urlquote', 'urlunquote',
+- 'urlencode', 'utype', 'ltype', 'pyexec', 'strbase', 'funcode',
+- 'urlparse',
++ 'urlencode', 'utype', 'ltype', 'strbase', 'funcode', 'urlparse',
+ ]
+
+ utype = unicode
+@@ -15,8 +14,5 @@ from urllib import quote as urlquote
+ from urllib import unquote as urlunquote
+ from urllib import urlencode
+
+-def pyexec(code, gns, lns):
+- exec code in gns, lns
+-
+ def funcode(fun):
+ return fun.func_code
+diff --git a/couchdb/util3.py b/couchdb/util3.py
+index c2e46d6..6bf84f0 100644
+--- a/couchdb/util3.py
++++ b/couchdb/util3.py
+@@ -1,8 +1,7 @@
+
+ __all__ = [
+ 'StringIO', 'urlsplit', 'urlunsplit', 'urlquote', 'urlunquote',
+- 'urlencode', 'utype', 'ltype', 'pyexec', 'strbase', 'funcode',
+- 'urlparse',
++ 'urlencode', 'utype', 'ltype', 'strbase', 'funcode', 'urlparse',
+ ]
+
+ utype = str
+@@ -14,7 +13,5 @@ from urllib.parse import urlsplit, urlunsplit, urlencode, urlparse
+ from urllib.parse import quote as urlquote
+ from urllib.parse import unquote as urlunquote
+
+-pyexec = exec
+-
+ def funcode(fun):
+ return fun.__code__
diff --git a/dev-python/couchdb-python/metadata.xml b/dev-python/couchdb-python/metadata.xml
new file mode 100644
index 00000000000..805dbec4a0d
--- /dev/null
+++ b/dev-python/couchdb-python/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>djc@gentoo.org</email>
+ <name>Dirkjan Ochtman</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">CouchDB</remote-id>
+ <remote-id type="github">djc/couchdb-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cov-core/Manifest b/dev-python/cov-core/Manifest
new file mode 100644
index 00000000000..0183413ce92
--- /dev/null
+++ b/dev-python/cov-core/Manifest
@@ -0,0 +1,2 @@
+DIST cov-core-1.15.0.tar.gz 5890 SHA256 4a14c67d520fda9d42b0da6134638578caae1d374b9bb462d8de00587dba764c SHA512 1b962a6a7253c1f6530248f3a71058e7709ee5cca274166807f040163c9cc240e9e85e42820063476c1c0f6dfca81d45277738663ed818fe715b30db151ace16 WHIRLPOOL 8a4198b8914507aeeb44c66ece4397c98c86cb7a5206d5b69cfea34bda2399f6c37ad46935839a86edadafecbf534dbe8a275801f9b217e994576f399f0a884a
+DIST cov-core-1.7.tar.gz 5972 SHA256 8050c226fa73234b88e62630d64e0416c879202891309cbcdbb8b556222c3020 SHA512 8e1744f686262c5affc6e2d7b08ce6277b60e79156a4c2491f805325048702f765b64c40acd53d59b5fd7358d85bf3ab367270eef4a12ad209db5f661612b140 WHIRLPOOL cb85a234560bae9628853958a88e15abb85a570710fdfaf627b1a3c0242bf3d6b46bdecd14972744df5331d884c1b592266143f4ececa0b795fb4a682d1156a6
diff --git a/dev-python/cov-core/cov-core-1.15.0.ebuild b/dev-python/cov-core/cov-core-1.15.0.ebuild
new file mode 100644
index 00000000000..446ea79b0f5
--- /dev/null
+++ b/dev-python/cov-core/cov-core-1.15.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="plugin core for use by pytest-cov, nose-cov and nose2-cov"
+HOMEPAGE="https://bitbucket.org/memedough/cov-core/overview"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~hppa ia64 m68k ppc ppc64 s390 sh x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=">=dev-python/coverage-3.6[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/cov-core/cov-core-1.7.ebuild b/dev-python/cov-core/cov-core-1.7.ebuild
new file mode 100644
index 00000000000..bb61f48abc9
--- /dev/null
+++ b/dev-python/cov-core/cov-core-1.7.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_{3,4}} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="plugin core for use by pytest-cov, nose-cov and nose2-cov"
+HOMEPAGE="https://bitbucket.org/memedough/cov-core/overview"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha ~amd64 arm hppa ~ppc ~ppc64 sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/coverage[${PYTHON_USEDEP}]"
+DEPEND=""
diff --git a/dev-python/cov-core/metadata.xml b/dev-python/cov-core/metadata.xml
new file mode 100644
index 00000000000..9e8e0d2961c
--- /dev/null
+++ b/dev-python/cov-core/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">cov-core</remote-id>
+ <remote-id type="bitbucket">memedough/cov-core</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
new file mode 100644
index 00000000000..9316b3a0304
--- /dev/null
+++ b/dev-python/coverage/Manifest
@@ -0,0 +1,3 @@
+DIST coverage-3.6.tar.gz 232067 SHA256 df3bf169d4727f3fad146ca715a49a1f72a8258689651ef9de908022e739700d SHA512 fb9f26ba20dced48d01929251a08b0b9da2bc5910ccc734910aed76634bd98b538983880e2e29c2c4604f6b97ed3a947871dfe8c9a43acc4556484e4c77ee68e WHIRLPOOL c6163901763dadd4cfba13953dd2535778b0da73a4f08f1400534135d49d54558736c46253146cbe03f9680d33f3cd2a33f8be7795ff17054bf0608393ac6eca
+DIST coverage-3.7.1.tar.gz 284735 SHA256 d1aea1c4aa61b8366d6a42dd3650622fbf9c634ed24eaf7f379c8b970e5ed44e SHA512 d198b06db938119fad8c13b9a7bbf018a5406c29327c943014e3b9b33ea85f0fbadaef6565fba26a461a3f1ee31f4cbfb42503420cc587c846ce499e80fd5133 WHIRLPOOL f07d239053bf357fe3dca7bec04d390db9b6610060fd848c9f15ea9de2f0a141d66e68cba5833a63bde860f4377c9029574e6ea7ed76ffe2fda332703e3100ab
+DIST coverage-3.7.tar.gz 283419 SHA256 c50ee4c391a083d87e2345b0094a7ec24a07b98b4e435f134d02a62ea3827fdb SHA512 62d20d8a3f5be93c8eae513b61330cd5876df94cb7269ff90bcc0d4b946dd426b7bad9bcb74e2b6334a5c14178c408667c7dfd00d5362ee499c203d4ac55d189 WHIRLPOOL 910e766d2eaa7918611325beacb4ab2dd220cccf2478b01e635b8339f4bdd11823b69a1c5a630d20342188db7e1aae0ab0d26e85743ce3f0e24c1ead5f49e64b
diff --git a/dev-python/coverage/coverage-3.6.ebuild b/dev-python/coverage/coverage-3.6.ebuild
new file mode 100644
index 00000000000..e10e7fc728a
--- /dev/null
+++ b/dev-python/coverage/coverage-3.6.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="http://nedbatchelder.com/code/coverage/ http://pypi.python.org/pypi/coverage"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.[67] ]]; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+
+ distutils-r1_python_compile
+}
diff --git a/dev-python/coverage/coverage-3.7.1.ebuild b/dev-python/coverage/coverage-3.7.1.ebuild
new file mode 100644
index 00000000000..6a6883b318b
--- /dev/null
+++ b/dev-python/coverage/coverage-3.7.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="http://nedbatchelder.com/code/coverage/ http://pypi.python.org/pypi/coverage"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+
+ distutils-r1_python_compile
+}
diff --git a/dev-python/coverage/coverage-3.7.ebuild b/dev-python/coverage/coverage-3.7.ebuild
new file mode 100644
index 00000000000..53ba7774ab7
--- /dev/null
+++ b/dev-python/coverage/coverage-3.7.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="http://nedbatchelder.com/code/coverage/ http://pypi.python.org/pypi/coverage"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.[67] ]]; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+
+ distutils-r1_python_compile
+}
diff --git a/dev-python/coverage/metadata.xml b/dev-python/coverage/metadata.xml
new file mode 100644
index 00000000000..55232d3d816
--- /dev/null
+++ b/dev-python/coverage/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <longdescription lang="en">Coverage.py is a Python module that measures code coverage during Python
+execution. It uses the code analysis tools and tracing hooks provided in the
+Python standard library to determine which lines are executable, and which have
+been executed.</longdescription>
+ <upstream>
+ <remote-id type="pypi">coverage</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/crcmod/Manifest b/dev-python/crcmod/Manifest
new file mode 100644
index 00000000000..e2953d55400
--- /dev/null
+++ b/dev-python/crcmod/Manifest
@@ -0,0 +1 @@
+DIST crcmod-1.7.tar.gz 89670 SHA256 dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e SHA512 3c2f65004761c84f19d6ba95a0af74512108bad5007d9e20f8e684822e4196ce17073e58b47d2fa997e058e3d82782f3393458b6f0e86935418f38877d319a31 WHIRLPOOL 17b05332b71c5043ff870146714e49c84ce58fd9c408c040fcfdc4e9ebd3a340326da7cbc900f7ebf43f3b68e9cd4666ae5f0089aa327b47a0fda5a56ae89591
diff --git a/dev-python/crcmod/crcmod-1.7-r2.ebuild b/dev-python/crcmod/crcmod-1.7-r2.ebuild
new file mode 100644
index 00000000000..181bae11da9
--- /dev/null
+++ b/dev-python/crcmod/crcmod-1.7-r2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python CRC Generator module"
+HOMEPAGE="http://crcmod.sourceforge.net/"
+SRC_URI="mirror://sourceforge/crcmod/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+DOCS=( changelog test/examples.py )
+
+python_test() {
+ "${PYTHON}" test/test_crcmod.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/crcmod/metadata.xml b/dev-python/crcmod/metadata.xml
new file mode 100644
index 00000000000..d96d3dad153
--- /dev/null
+++ b/dev-python/crcmod/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The software in this package is a Python module for generating objects
+ that compute the Cyclic Redundancy Check (CRC). It includes a (optional)
+ C extension for fast calculation, as well as a pure Python
+ implementation.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">crcmod</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/crumbs/Manifest b/dev-python/crumbs/Manifest
new file mode 100644
index 00000000000..4b79e7206f8
--- /dev/null
+++ b/dev-python/crumbs/Manifest
@@ -0,0 +1,3 @@
+DIST crumbs-1.2.2.tar.gz 7721 SHA256 eb3ea05bab4ba34501e2d18da151d7036bfd68e948383d3f7303891463ff590f SHA512 be20aa24ef25d3fac1cba7e653b06e0ab394286032f7f01320c53ba88cff363a72d6302a44da7019acd3f2f04ea98d7a2f4d01b5f9f9cc0327391346a4a4ebf6 WHIRLPOOL 73f834900b19c2fd4dacb705ca6af5bc89fab6f8712115e3e894775c7bf6e5d87071faa2a5152350e1d7244751e2d6a9e07732c88e3ca40aae56ece560d77f72
+DIST crumbs-2.0.0.tar.gz 13134 SHA256 776634a652205791f30419dbd3f89f26eecb0bf041348690f4552deb7f61ebc1 SHA512 b518041ed7d3d1026b83901f3ffa2faf1da30fb39c598eb88eebabfeb3489c4ce2b2de1f0267bdb3e7d9366509efe0e109f54ec45b9297345f1224c2de5213c5 WHIRLPOOL 64b7e09898c5861ab950fae1331ef973f4c42cc57e2204f23aaf11dce8eb84b817d9ee44b58acebbb909d1266a38eed419a615e8102cc76a46b4b41bb846592f
+DIST crumbs-2.0.1.tar.gz 12377 SHA256 b537d608b9c54d8fc0bd73a4a60599fe2a68ba66ecd05f3f45a25d2301f439ca SHA512 d15a8f3484f8178a1d41555d1783fdf6356c97f05247cf3daf6c56af9e0bd2795ee187f7fde549f5e23b4883317608cc40a71dedfaf49e544c87a12a0f97738a WHIRLPOOL a74e0e61726ca7dbeb702ce92b369137b7c21da5e224a365c9fbf3e6221859c6307329447c6835ff824950d0155cf180d62616f10b6f3084cb041751e9e8d0c4
diff --git a/dev-python/crumbs/crumbs-1.2.2-r1.ebuild b/dev-python/crumbs/crumbs-1.2.2-r1.ebuild
new file mode 100644
index 00000000000..7d196a80f76
--- /dev/null
+++ b/dev-python/crumbs/crumbs-1.2.2-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Generalized all-in-one parameters module"
+HOMEPAGE="https://github.com/alunduil/crumbs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="inotify test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="inotify? ( dev-python/pyinotify[${PYTHON_USEDEP}] )"
+
+python_test() {
+ flake8 || die 'flake8'
+ nosetests || die 'nosetests'
+}
diff --git a/dev-python/crumbs/crumbs-2.0.0.ebuild b/dev-python/crumbs/crumbs-2.0.0.ebuild
new file mode 100644
index 00000000000..23bc8832bdb
--- /dev/null
+++ b/dev-python/crumbs/crumbs-2.0.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Generalized all-in-one parameters module"
+HOMEPAGE="https://github.com/alunduil/crumbs"
+SRC_URI="https://github.com/alunduil/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="inotify test"
+
+CDEPEND="inotify? ( dev-python/pyinotify[${PYTHON_USEDEP}] )"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_test() {
+ nosetests || die "Tests failed on ${EPYTHON}"
+}
diff --git a/dev-python/crumbs/crumbs-2.0.1.ebuild b/dev-python/crumbs/crumbs-2.0.1.ebuild
new file mode 100644
index 00000000000..e04f47aa7e6
--- /dev/null
+++ b/dev-python/crumbs/crumbs-2.0.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Generalized all-in-one parameters module"
+HOMEPAGE="https://github.com/alunduil/crumbs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="inotify test"
+
+CDEPEND="inotify? ( dev-python/pyinotify[${PYTHON_USEDEP}] )"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_test() {
+ nosetests || die "Tests failed on ${EPYTHON}"
+}
diff --git a/dev-python/crumbs/metadata.xml b/dev-python/crumbs/metadata.xml
new file mode 100644
index 00000000000..3ec159379e2
--- /dev/null
+++ b/dev-python/crumbs/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">crumbs</remote-id>
+ <remote-id type="github">alunduil/crumbs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cryptography-vectors/Manifest b/dev-python/cryptography-vectors/Manifest
new file mode 100644
index 00000000000..1f01c2bffc6
--- /dev/null
+++ b/dev-python/cryptography-vectors/Manifest
@@ -0,0 +1,12 @@
+DIST cryptography_vectors-0.5.4.tar.gz 19093455 SHA256 3537837ef31814fb25c082274a64042bf2c52b6108b99374d1eee505097ccf36 SHA512 b548130a4566928c9103b57c1b441fb8a52ced337d358126b6ce9e8bc9566690f321b6f83ed7858a5d6171465ec862f654624bebc9874bb6990502bab5f629d2 WHIRLPOOL c1e03779a72332bea7f41eb53e60a7eb41ca93201fe184434f51bc6e71333752c61dd15e503dbbd65862159a662a7115f8bc44eef59265abd74350b50cb01e6c
+DIST cryptography_vectors-0.6.1.tar.gz 19348556 SHA256 79d0cd0a4ae89e013f0a9e8df7a4bedc2ecdf3dc8ee1df64c5e4381756eb41cf SHA512 00a802cf8ee3a56236b67b1405f593300141e63f5354182ea5e229516b52ab870f3164009aa47bb75d2294d5587f4b0ad531f3cef867e70bcce87eadd1743cc0 WHIRLPOOL c37ace825f40664890fdcf600fc9213741f2abc168fc5794a80f9224d940bd980bffd4a3c0333f379d238247e97ea3f098a94632cbc2a5ee59e6a32bae8f9cb0
+DIST cryptography_vectors-0.7.1.tar.gz 21377829 SHA256 2b7592b7d8f2ff3a7e288a6fecda5129a4ec4067d6d7ce3ce061a5d2024ea676 SHA512 98a3b8138ab2754f9f6eb6ba06118718b7f1b30af99d00c205a33b435fe8e432af84328b5b26ec531c920f7c3091bf3189d1d884e543fc9e5b4bea93f6d5b94b WHIRLPOOL 2d041fb9908e2991562bd2b90781082b99a03440fcdd5727e2aff69b20abe3534119acd069a3459c4fd4c67bc2222ab01738ba36468494c111be713884ab27a7
+DIST cryptography_vectors-0.7.2.tar.gz 21377865 SHA256 36ad9bec8ed667e3720ff4b877b4dc728e54986a895fdc1d90d55c00b10a21c4 SHA512 be12f275874ec38ec768858ff2d0c9a058c324321dea2eb6e9f771636f2917ea59b39f6499634169876ae0dc01d3481f47f90638d1fb94e4e20b7bc7c59f0cba WHIRLPOOL 499f7a247557c2fb4def26f9a021022f9bf3418f741f34d8c5c3836a907716526ff4b8eb01edfae2432ff3d611661164e3a696feabbe10ddafc2ae65a8b28e07
+DIST cryptography_vectors-0.7.tar.gz 21375413 SHA256 73c84276e5932a4d6b28394c31393350f27b61f66619e5ef5b6932fa835ea084 SHA512 5cb54bb32822d454fa449dc8c5add75efb430722d62ea0c7b591b27d681db5384522d9892bfdd088d00e2ec933564566302ca7b14d94b9e79f11151b2b816f08 WHIRLPOOL 10f14c934d08289dca26a398ce58e4b7b262bf802bc3491831424b769922ddbd63957083da8a66646c74425aaa4234e6b8a1b8b9671213bebba1a607c1a33f01
+DIST cryptography_vectors-0.8.1.tar.gz 21396583 SHA256 4a69e66026bfce4b97f75e72fe262f5e8f71daddc081f6608e5b0db89e552504 SHA512 0d0a383a81247eb2027b2c33827041494cd1c3198957196f7c8aab840119a3c127951584efbe522885afb725bc99b923d15cbc371fb9c7bbd5b1067e3bc70c80 WHIRLPOOL 74db8741a270d9c00f8368bc191c400b60e5a3ec06cc4386e104cc8e50c896be853ab7135a6d8f251fdf7dbf12f5593235f41970254dae738fd476b26d01c6af
+DIST cryptography_vectors-0.8.2.tar.gz 21396554 SHA256 6e7c2c2761a210ae8af34c6797c291ef2b01cff787b08e433570ca4915973c06 SHA512 36760a13aeef4baa65c0eb94fb36a64360f065c7781bfcae049e671affeb931e842a58066b736e02a67bcc1cf9717c95d14e4c953cfd64c98a78b01495bb322e WHIRLPOOL b19c3de0b3bf739f2c407552f3ccc97d4cf248c13663d6c36eed1075e6cf51186d0d1a36ac752d5949f3d736e0a2f8a5e48f746ae85b8c6112c7b4d6df6f7d6b
+DIST cryptography_vectors-0.8.tar.gz 21394291 SHA256 330b6601dffa7ad75eaf48aa5c693471970895a8cee86d94d2431513ace20dfe SHA512 2e33b7818a63cd44fdd0d8cfa3e2d69e8371194acfb6cf48a4b41bce055ce4da4b25eb223dff975d6fcd04c834224705c417c3ddf339cdad40662fe30cde8ce8 WHIRLPOOL d610239aa8c134c2e755a5fdb9906b050fb9e8ce0c21a2c9497a27382e60e24169a53b7383c83d32f32c0798d7fc317e630c9167ee5861ec27afb63eb26f397c
+DIST cryptography_vectors-0.9.1.tar.gz 24986147 SHA256 46cf6c05103b5f83056b5eb5d0e38bb60e8e3767a2149ea1afa6b9dc79bf5a9b SHA512 8dd7bd0ab7d22511343de3c3d275ca31073b87bd7b0ca73628bfa4e2a1487c032d3b4e9ad00e603e48971a0bf4b4b58b0b5fbf0212ff6b2980cab4d2a936d73e WHIRLPOOL 7da6ca7e78094ec4745ae47a88760f7b9b34f2d07339e9e1cb9eab45a006ee6607bb34308fecf9dc0efc4c68dd26bf0d4c10ff5b1d4da48f8abbce741256482b
+DIST cryptography_vectors-0.9.2.tar.gz 24986082 SHA256 b443ca0c75383e7c6acba89acbb7de3f591e3a63f7cc7601e589f323bdc52b4c SHA512 152b8d44d4b9c979a060435016d16d8052e15ad6e3b20086fd1a3a38818843817ddfef72ba6d3c02e034747a4bd9c2a7eb171426d69f27bcc57988a6576d73b7 WHIRLPOOL 1dc6018215bbc5d518c232636757ef5962f06435b5bc1d2fad259158a422fe53a089aa149ba9188c274772a3d3a8438ba3a847dd2147752c91d3310705d2091c
+DIST cryptography_vectors-0.9.3.tar.gz 24986101 SHA256 aa3949852323aebb5d33e6a461caa25190f05a042ceb63b20c2810f83f855e43 SHA512 53bc8e1284c7fa9e1723866149edb3b7f2ef6ddc7f04e79ee6f11cfa00b4e32e81c8202ac4a99ffbc251687ca1d9305c2ebb3dc5ce295241646a5fb3e7ee877b WHIRLPOOL 0e1edcc8e796d2a490781dbf3608cc609f6a66f08f7add962b5f5659df2654666efabd7d81cb135e951e8834c243c8572de4483a1018c9c7239083edda95ea9d
+DIST cryptography_vectors-0.9.tar.gz 24983458 SHA256 d4accc8f5fb763cb65021c0e792a2884b8956ccfb467bc6b59124159e9746bca SHA512 6c3eff20139a9c714305dc09919633deff346ac6186df196a6ab130219b3a6467be33ffd64c9582d960505113e062975e0d9f2e5ffbe051ad47c6513a1580227 WHIRLPOOL b001f8c420139ab14e761dcc9c94322e82f8f6c6b7009cf1bdb025e6d5212aa7d4cb3a35e503d685c7216ee75edbcf370981e169ccff707daacb42d273f21266
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.5.4.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.5.4.ebuild
new file mode 100644
index 00000000000..2bd15fb97a7
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.5.4.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.6.1.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.6.1.ebuild
new file mode 100644
index 00000000000..596df6a48f8
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.6.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.7.1.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.7.1.ebuild
new file mode 100644
index 00000000000..00bdae97b34
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.7.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.7.2.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.7.2.ebuild
new file mode 100644
index 00000000000..00bdae97b34
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.7.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.7.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.7.ebuild
new file mode 100644
index 00000000000..00bdae97b34
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.7.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.8.1.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.8.1.ebuild
new file mode 100644
index 00000000000..00bdae97b34
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.8.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.8.2.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.8.2.ebuild
new file mode 100644
index 00000000000..ecbe8ef1b6e
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.8.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.8.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.8.ebuild
new file mode 100644
index 00000000000..00bdae97b34
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.8.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.9.1.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.9.1.ebuild
new file mode 100644
index 00000000000..ecbe8ef1b6e
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.9.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.9.2.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.9.2.ebuild
new file mode 100644
index 00000000000..ecbe8ef1b6e
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.9.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.9.3.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.9.3.ebuild
new file mode 100644
index 00000000000..ecbe8ef1b6e
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.9.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/cryptography-vectors-0.9.ebuild b/dev-python/cryptography-vectors/cryptography-vectors-0.9.ebuild
new file mode 100644
index 00000000000..ecbe8ef1b6e
--- /dev/null
+++ b/dev-python/cryptography-vectors/cryptography-vectors-0.9.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Test vectors for the cryptography package"
+HOMEPAGE="https://pypi.python.org/pypi/cryptography-vectors/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/cryptography-vectors/metadata.xml b/dev-python/cryptography-vectors/metadata.xml
new file mode 100644
index 00000000000..f7fa3df91c0
--- /dev/null
+++ b/dev-python/cryptography-vectors/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cryptography-vectors</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cryptography/Manifest b/dev-python/cryptography/Manifest
new file mode 100644
index 00000000000..791702e67d0
--- /dev/null
+++ b/dev-python/cryptography/Manifest
@@ -0,0 +1,9 @@
+DIST cryptography-0.5.4.tar.gz 320104 SHA256 5675999f3744cbc32a60cb0bba64de21405abced32ce19655212612262dd270d SHA512 bdfaed6271e21d8b5cef4e8d0cdb7fd4bfb5b607c0f14c7b33888301f9922035f337120c3252d2df16f1844129d4b18dd97abe566bccc18c829faa752af2b4a7 WHIRLPOOL 5522d40bef251b5005e17fa2f43c4f015a7422c2aa9a09cfed8f84365506a1c8d9a97d956d97a3130a46aa7a0d0e90258f9c365ffb196ad0df2be4f6548e3b10
+DIST cryptography-0.6.1.tar.gz 236721 SHA256 024910130a01eda0ce969764d893d2e397168ebb94181ca1ea3e23e19912329e SHA512 b99338bbbeb70f37e0bfcc6ef33ddff5beb74f7876a30d34deb3a433ddd77f821e5cc5dde228f792362ae7a261d4ceb3b702fb1a8c30ce15a1e6e4de98ef1afa WHIRLPOOL a641342fe13f584ee657aa917172810117416cd426746af30499e43174041c8031598c223398dace1ad1385e3905a27c9f6e5ac5def88a8b87e2ed3bfd95b9ce
+DIST cryptography-0.7.1.tar.gz 247309 SHA256 9ee59090b242ad0d6abcedebb9ab54358d5efd1a45706195f6e5928f7725bb76 SHA512 ae552fcb8005c98ded32b47edf61d4bf2b495c63b9ac744545d3d1ada7f6f64b1b23a5d9f396bf2a998fcc58370307c893f324806e0c825b9c63fe78698bdc4b WHIRLPOOL dfdb3ff90291c7f3dca3835532608b742c9768311b204bb4a41c62ed6d4ed48b812898a482d86ced10887daebe2b57b1451df51f297f9a19a7ce80a05446f938
+DIST cryptography-0.7.2.tar.gz 247477 SHA256 fab7fcdde360ec6614442d0321dcd0eff5e43544cb30d975e9d75a914a4cdf78 SHA512 5afc8e01ffcdbd829716e65663cca91ad7ec42f5b65f64f6f1d3189c5cb7a209dcd67698225e1bb54eb6428fa5abdd25405a7ae1d234d5194697d3b879483226 WHIRLPOOL a5ed7d6f9e9f51d9a41e1014968ccada84b13b5e6f80ad14278edb1eacbf7abf4ed5009b942845840ba84b50b4dd4bcd2c41032444e3452fd42c669babdcdbed
+DIST cryptography-0.8.1.tar.gz 268240 SHA256 f4e041bc83c1be94d87116a7aa201c378b7c6581be4d83994b2da0a84499f73b SHA512 84b32ca493f31efe00a4c18104dfcba4d1f6de0698f1606057b1473ae2217448a319d62c1b872955639129bdf5f69d2e7fcdf5b7ef9b0ecc0cd98c92f224f557 WHIRLPOOL c0fb0a1948fdc2f03127184d1dd16b5b97338953c6ab8c08c568df45cfec15d307797bb71a612667f4c856b6630fad6bd02d24df4d602c73e39b2b10f554f165
+DIST cryptography-0.8.2.tar.gz 268288 SHA256 1c9a022ab3decaf152093e2ef2d5ee4258c72c7d429446c86bd68ff8c0929db6 SHA512 8a76e325387284facdaa381c27fd8ca3c2e7e4c6dfe41bf6eccdfdc4004f8a5bd8a95f0ff6537dd012f5c7fcec5f86d96fe86a64ec15d63e4bf673d8461a8225 WHIRLPOOL bbee1a538daf9fffcdd87f132e678505f2c92def5e00a3c139c68cfc1a91308546705954d9d546696a9f50cb750ddc9e60fe42bbcdc48516c7e06662b7f715a7
+DIST cryptography-0.8.tar.gz 268083 SHA256 e54601e4dec2b8acb90f5ed3b93d23d280964adbefe1723ac82acc453a694480 SHA512 e17d2d31f1d6da782eb3531ca9dded14e137ddc61893ef17a8238997274a85e77e8a957e1eec3ed3960675694f97750ca1f6821a2e8d974795bca3b2be49e196 WHIRLPOOL ecef7a807934006ce2266ba0636a9a8b5bd30a49931ba9c83dabbd1bd6b47523dd3d32205d1ac4f94f2a8bfe4c1b23ac36fcddf4092d9e756beda74379dfc7dd
+DIST cryptography-0.9.2.tar.gz 302972 SHA256 bc9ddd1442ce67a5bbd5598eced127de000da55f0ce25498b1174746c0290b3c SHA512 3d13f0284d484911b1f7067966f3727de9019d24af379b1adb1e0377888680b9385792e481888d2b357bce20f250a948c22b34743b4aeb955d736e8ae9ca88da WHIRLPOOL 0832bfdaff40e89750d92ffd5298be5c39fc1b4606ee7f769a68fb469e9e2175837f1b3f660f774a793538e050f2081fd69201f882a5bd77713e1bacd3115370
+DIST cryptography-0.9.3.tar.gz 303075 SHA256 aed022f738dd9adb840d92960b0464ea1fbb222ba118938858eb93fe25151c2d SHA512 828dd6d3af940c91f77b9bcefb34ca9cc3ac05606d707889ff35bf708c3536414db46f8db7d7dcbffe2ad1f82834bc9edab1b28b05fee3f2a5f9f5a56abd697c WHIRLPOOL 33eb42741cf2426ffe16d50d0f555fee65637d812f9510016ceb708f9c591f38de2d65e4b4118f744ff9b73596727160501ec5d077bfe0935d088586909b979d
diff --git a/dev-python/cryptography/cryptography-0.5.4.ebuild b/dev-python/cryptography/cryptography-0.5.4.ebuild
new file mode 100644
index 00000000000..6db7161de38
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.5.4.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc ~ppc64 ~x86 ~x86-fbsd"
+IUSE="test"
+
+RDEPEND="dev-libs/openssl:0
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ =dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.6.1.ebuild b/dev-python/cryptography/cryptography-0.6.1.ebuild
new file mode 100644
index 00000000000..d9397589514
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.6.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ~ppc ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-libs/openssl:0
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+"
+DEPEND="${RDEPEND}
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+# Restricted until cffi fixes its compile on import issues
+RESTRICT="test"
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.7.1-r1.ebuild b/dev-python/cryptography/cryptography-0.7.1-r1.ebuild
new file mode 100644
index 00000000000..400af40eb90
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.7.1-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-libs/openssl:0
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3 pypy)"
+DEPEND="${RDEPEND}
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+PATCHES=( "${FILESDIR}"/0.7-setup.patch )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.7.2.ebuild b/dev-python/cryptography/cryptography-0.7.2.ebuild
new file mode 100644
index 00000000000..937062f6ecd
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.7.2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-libs/openssl:0
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3 pypy)"
+DEPEND="${RDEPEND}
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.8.1.ebuild b/dev-python/cryptography/cryptography-0.8.1.ebuild
new file mode 100644
index 00000000000..542f08c9891
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.8.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-libs/openssl:0
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3 pypy)"
+DEPEND="${RDEPEND}
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.8.2.ebuild b/dev-python/cryptography/cryptography-0.8.2.ebuild
new file mode 100644
index 00000000000..10f2391fd4b
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.8.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-libs/openssl:0
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3 pypy)"
+DEPEND="${RDEPEND}
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.8.ebuild b/dev-python/cryptography/cryptography-0.8.ebuild
new file mode 100644
index 00000000000..937062f6ecd
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.8.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-libs/openssl:0
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3 pypy)"
+DEPEND="${RDEPEND}
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.9.2.ebuild b/dev-python/cryptography/cryptography-0.9.2.ebuild
new file mode 100644
index 00000000000..6083bbc57fe
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.9.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-libs/openssl:0
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3 pypy)
+ dev-python/idna[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/ipaddress[${PYTHON_USEDEP}]' python2_7 pypy)
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/cryptography-0.9.3.ebuild b/dev-python/cryptography/cryptography-0.9.3.ebuild
new file mode 100644
index 00000000000..6083bbc57fe
--- /dev/null
+++ b/dev-python/cryptography/cryptography-0.9.3.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.python.org/pypi/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-libs/openssl:0
+ $(python_gen_cond_dep '>=dev-python/cffi-0.8:=[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3 pypy)
+ dev-python/idna[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/ipaddress[${PYTHON_USEDEP}]' python2_7 pypy)
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ~dev-python/cryptography-vectors-${PV}[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/cryptography/files/0.7-setup.patch b/dev-python/cryptography/files/0.7-setup.patch
new file mode 100644
index 00000000000..db5cc0239c7
--- /dev/null
+++ b/dev-python/cryptography/files/0.7-setup.patch
@@ -0,0 +1,22 @@
+https://github.com/pyca/cryptography/commit/5bea5ca0233be05e09d8c62fdeae86187e73a48e
+diff --git a/setup.py b/setup.py
+index ead5ec4..32a87ba 100644
+--- a/setup.py
++++ b/setup.py
+@@ -36,12 +36,14 @@
+
+ requirements = [
+ CFFI_DEPENDENCY,
+- "enum34",
+ "pyasn1",
+ SIX_DEPENDENCY,
+ SETUPTOOLS_DEPENDENCY
+ ]
+
++if sys.version_info < (3, 4):
++ requirements.append("enum34")
++
+ # If you add a new dep here you probably need to add it in the tox.ini as well
+ test_requirements = [
+ "pytest",
+
diff --git a/dev-python/cryptography/metadata.xml b/dev-python/cryptography/metadata.xml
new file mode 100644
index 00000000000..f215972e68f
--- /dev/null
+++ b/dev-python/cryptography/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cryptography</remote-id>
+ <remote-id type="github">pyca/cryptography</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cssselect/Manifest b/dev-python/cssselect/Manifest
new file mode 100644
index 00000000000..b12618b6b3a
--- /dev/null
+++ b/dev-python/cssselect/Manifest
@@ -0,0 +1 @@
+DIST cssselect-0.9.1.tar.gz 32952 SHA256 0535a7e27014874b27ae3a4d33e8749e345bdfa62766195208b7996bf1100682 SHA512 c4cd2c8d6fbfa99b836554685dd59e1e794e1fab06fcf4419a226b0608a05d58be5af54e507003f2a233a22f03d59d3d63c0bf19b3314f15c95ab3ce5f4db6cc WHIRLPOOL 0fabe49d4f504069eb782ba98c93a34fa9433fd4d10a545f46f5aa1a5fb3a898580f4e17d744052590e18fe7a0f06feca0527d86ac243282e826caddfb410324
diff --git a/dev-python/cssselect/cssselect-0.9.1.ebuild b/dev-python/cssselect/cssselect-0.9.1.ebuild
new file mode 100644
index 00000000000..e2aaeb386f3
--- /dev/null
+++ b/dev-python/cssselect/cssselect-0.9.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="parses CSS3 Selectors and translates them to XPath 1.0"
+HOMEPAGE="http://packages.python.org/cssselect/ http://pypi.python.org/pypi/cssselect"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/lxml[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_prepare_all() {
+ # prevent non essential d'load of files in doc build
+ sed -e 's:intersphinx_:#&:' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc ; then
+ "${PYTHON}" setup.py build_sphinx || die
+ fi
+}
+
+python_test() {
+ "${PYTHON}" ${PN}/tests.py -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cssselect/metadata.xml b/dev-python/cssselect/metadata.xml
new file mode 100644
index 00000000000..cd343cc5838
--- /dev/null
+++ b/dev-python/cssselect/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cssselect</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cssutils/Manifest b/dev-python/cssutils/Manifest
new file mode 100644
index 00000000000..dccbcc846cb
--- /dev/null
+++ b/dev-python/cssutils/Manifest
@@ -0,0 +1,2 @@
+DIST cssutils-0.9.10.tar.gz 622919 SHA256 08e2481f53d57e27fffb781bf8c313132c1079b8b1c18ff4f633f2df47011ca6 SHA512 c8fabc808a6d31f0d4a1b48b566277a15bb91974eb797d11d857b05e9e548e03d510d90265e43b9fa9b173eccb5f571c9306bda57c2515878e646b2be32b736e WHIRLPOOL 8d8455b5c6a0fb49d87c7097169c2670e7a2e09ade9fcaa70344a6aab70d7420e3e982488eb88ef118457936d9f917080ea576b879905ebff7dc8bf47815c9b2
+DIST cssutils-1.0.tar.gz 622909 SHA256 050f4e78a9c24a619cbb15c395105e73f3b3bec0204991a6d5e2f8bcca031753 SHA512 673e1de1028acbc8e3fe298b88207da73ee704b7eb89eb22d4606d5086c46a943e3bb48d2ba9b5a1685a253553bbd13d89f41546dca3deaf2d54d8d6f61f9b65 WHIRLPOOL 726a5f557e70bdc612ca70b8203ecf1670c4385eaf5c77aa3b21c3a13e80928e38fc7766efa2ae682a52b0a890675f5746190e0740389dee5427740bab817bff
diff --git a/dev-python/cssutils/cssutils-0.9.10-r1.ebuild b/dev-python/cssutils/cssutils-0.9.10-r1.ebuild
new file mode 100644
index 00000000000..1e6dba20333
--- /dev/null
+++ b/dev-python/cssutils/cssutils-0.9.10-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="A CSS Cascading Style Sheets library"
+HOMEPAGE="http://pypi.python.org/pypi/cssutils/ https://bitbucket.org/cthedot/cssutils"
+# Missing test data
+# https://bitbucket.org/cthedot/cssutils/pull-request/11
+#SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+HG_COMMIT="6fbc1877f6089610b733a92d21c2bbf25dc1ca28"
+SRC_URI="https://bitbucket.org/cthedot/cssutils/get/${HG_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc x86"
+IUSE="examples test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Disable test failing with dev-python/pyxml installed.
+ if has_version dev-python/pyxml; then
+ sed -e "s/test_linecol/_&/" -i src/tests/test_errorhandler.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ln -s "${S}/sheets" "${BUILD_DIR}/sheets" || die
+ set -- nosetests -P "${BUILD_DIR}/lib/cssutils/tests"
+ echo "$@"
+ "$@" || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cssutils/cssutils-1.0.ebuild b/dev-python/cssutils/cssutils-1.0.ebuild
new file mode 100644
index 00000000000..6b5a065fe0a
--- /dev/null
+++ b/dev-python/cssutils/cssutils-1.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="A CSS Cascading Style Sheets library"
+HOMEPAGE="http://pypi.python.org/pypi/cssutils/ https://bitbucket.org/cthedot/cssutils"
+# Missing test data
+# https://bitbucket.org/cthedot/cssutils/pull-request/11
+#SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+HG_COMMIT="6fbc1877f6089610b733a92d21c2bbf25dc1ca28"
+SRC_URI="https://bitbucket.org/cthedot/cssutils/get/${HG_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="examples test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Disable test failing with dev-python/pyxml installed.
+ if has_version dev-python/pyxml; then
+ sed -e "s/test_linecol/_&/" -i src/tests/test_errorhandler.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ln -s "${S}/sheets" "${BUILD_DIR}/sheets" || die
+ # exclude tests that connect to the network
+ set -- nosetests \
+ -e test_parseUrl -e test_handlers -P "${BUILD_DIR}/lib/cssutils/tests"
+ echo "$@"
+ "$@" || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cssutils/metadata.xml b/dev-python/cssutils/metadata.xml
new file mode 100644
index 00000000000..596676e6bf4
--- /dev/null
+++ b/dev-python/cssutils/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>lordvan@gentoo.org</email>
+ <name>Thomas Raschbacher</name>
+ </maintainer>
+ <longdescription lang="en">
+A Python package to parse and build CSS Cascading Style Sheets.
+</longdescription>
+ <upstream>
+ <remote-id type="google-code">cssutils</remote-id>
+ <remote-id type="pypi">cssutils</remote-id>
+ <remote-id type="bitbucket">cthedot/cssutils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ctypesgen/Manifest b/dev-python/ctypesgen/Manifest
new file mode 100644
index 00000000000..92a94955bcc
--- /dev/null
+++ b/dev-python/ctypesgen/Manifest
@@ -0,0 +1 @@
+DIST ctypesgen-0_p72.tar.bz2 85694 SHA256 1a43b7db43034fc88908c156ce701cb0a4c4f21b023f9e3fa46d488307c92b24 SHA512 eab85c71a2f98fd03ae582899de680bd861e7e6e20841ac087520f8b844dc686ea519b0510382cedec09ff3fa1d87fcc1c79878a2eb9219d7cc092423813e2e5 WHIRLPOOL b15e11d8d24280f4bdaf22fd3e6c8e13b36830e846774832ca584c0c816a0c814021ee95750b79df4a9ea701d99f0b1eda69f5e945a02184f788872aff409c95
diff --git a/dev-python/ctypesgen/ctypesgen-0_p72-r1.ebuild b/dev-python/ctypesgen/ctypesgen-0_p72-r1.ebuild
new file mode 100644
index 00000000000..242e09b05f6
--- /dev/null
+++ b/dev-python/ctypesgen/ctypesgen-0_p72-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper generator for ctypes"
+HOMEPAGE="http://code.google.com/p/ctypesgen/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+python_prepare_all() {
+ # r73 upstream
+ sed -i -e 's:libc:libm.so.6:' test/math_functions.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cp -r -l test "${BUILD_DIR}"/ || die
+
+ cd "${BUILD_DIR}"/test || die
+ local f
+ for f in {math_functions,simple_macros,structures}.py; do
+ "${PYTHON}" "${f}" || die "Test ${f} fails with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/ctypesgen/ctypesgen-0_p72.ebuild b/dev-python/ctypesgen/ctypesgen-0_p72.ebuild
new file mode 100644
index 00000000000..9fa93ee4528
--- /dev/null
+++ b/dev-python/ctypesgen/ctypesgen-0_p72.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2:2.5"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit distutils
+
+DESCRIPTION="Python wrapper generator for ctypes"
+HOMEPAGE="http://code.google.com/p/ctypesgen/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+# 2.4 restricted due to usage of ctypes module.
+RESTRICT_PYTHON_ABIS="2.4 3.*"
+
+PYTHON_MODNAME="ctypesgencore"
diff --git a/dev-python/ctypesgen/metadata.xml b/dev-python/ctypesgen/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/ctypesgen/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/curtsies/Manifest b/dev-python/curtsies/Manifest
new file mode 100644
index 00000000000..84852f4ca8d
--- /dev/null
+++ b/dev-python/curtsies/Manifest
@@ -0,0 +1,2 @@
+DIST curtsies-0.1.18.tar.gz 44353 SHA256 477121f256eea2b71237492e2924f05b54e1f91815d042bf91d7112b71d4edd4 SHA512 02ae86b215dca10e779061485cb18ab8b6fefbdad10e2bcad3c24890b79f81d1aae0b84467a23ca1951ffaa336fc2fe9b5137c1a10a65fafe0a0b540cc0c819c WHIRLPOOL 801738c450c2fd9343e01260240ebd5ed74e951c03a918808c8c2c47e8ec46afe425f4d8978dea894d2cdf36bc2e3bd19e9de2ed12a62e5786eebeed87dd9800
+DIST curtsies-0.2.3.tar.gz 42805 SHA256 5da88a67472ada96de3be2a9da4210080c7e4b2c1afc4c97075b3f51755e0dc4 SHA512 8d48fb147fc247b2241472543a5019a55ef1b8f029b0bb93c7de72cd9eeb1bfe9940520bb5a0509406915523b98e1dbd9f07499e9eb9649d6d70df51ba71606d WHIRLPOOL 6b3e37f630488f01b6451349fcbf5e81cde7cdf8e1590bc4c65bb9bdffb4b83f8d868c37624e3f1f932cc51d9af251914f8fa55bc88eeaacc6c2dd3eb91239ea
diff --git a/dev-python/curtsies/curtsies-0.1.18.ebuild b/dev-python/curtsies/curtsies-0.1.18.ebuild
new file mode 100644
index 00000000000..4c2cb332bdb
--- /dev/null
+++ b/dev-python/curtsies/curtsies-0.1.18.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Curses-like terminal wrapper, with colored strings"
+HOMEPAGE="https://github.com/thomasballinger/curtsies"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/blessings-1.5[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.1.4[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyte[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ nosetests tests || die
+}
diff --git a/dev-python/curtsies/curtsies-0.2.3.ebuild b/dev-python/curtsies/curtsies-0.2.3.ebuild
new file mode 100644
index 00000000000..4c2cb332bdb
--- /dev/null
+++ b/dev-python/curtsies/curtsies-0.2.3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Curses-like terminal wrapper, with colored strings"
+HOMEPAGE="https://github.com/thomasballinger/curtsies"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/blessings-1.5[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.1.4[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyte[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ nosetests tests || die
+}
diff --git a/dev-python/curtsies/metadata.xml b/dev-python/curtsies/metadata.xml
new file mode 100644
index 00000000000..6f57fe5515a
--- /dev/null
+++ b/dev-python/curtsies/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">curtsies</remote-id>
+ <remote-id type="github">thomasballinger/curtsies</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cvxopt/Manifest b/dev-python/cvxopt/Manifest
new file mode 100644
index 00000000000..4f7f06c52ac
--- /dev/null
+++ b/dev-python/cvxopt/Manifest
@@ -0,0 +1 @@
+DIST cvxopt-1.1.6.tar.gz 3352996 SHA256 7b4ccf3ed896dde6624623431c0b1f5e32d874384329ed716f51babcbf416227 SHA512 b9f5fd7870412423b60068d205efb99d3630012509cb659fb67a10d6175906768846d7c906cf2fcac4be29afd558619b71e2dca730041329195a2365dd1d722c WHIRLPOOL d43cf090ee0396a77851fb71e6e34c980152bccdd5fdb3ecc53d0a464a505ac87a1e7198d313ec669443970bcf8a2d616f03c2f861b7df2f620bd583a97ea140
diff --git a/dev-python/cvxopt/cvxopt-1.1.6-r2.ebuild b/dev-python/cvxopt/cvxopt-1.1.6-r2.ebuild
new file mode 100644
index 00000000000..256fcd3eb84
--- /dev/null
+++ b/dev-python/cvxopt/cvxopt-1.1.6-r2.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 toolchain-funcs eutils
+
+DESCRIPTION="Python package for convex optimization"
+HOMEPAGE="http://cvxopt.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc +dsdp examples fftw +glpk gsl"
+
+RDEPEND="
+ virtual/blas
+ virtual/cblas
+ virtual/lapack
+ sci-libs/cholmod:0=
+ sci-libs/umfpack:0=
+ dsdp? ( sci-libs/dsdp:0= )
+ fftw? ( sci-libs/fftw:3.0= )
+ glpk? ( sci-mathematics/glpk:0= )
+ gsl? ( sci-libs/gsl:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( dev-python/sphinx )"
+
+python_prepare_all(){
+ epatch "${FILESDIR}"/${PN}-1.1.6-setup.patch
+
+ has_version ">=sci-mathematics/glpk-4.49" && \
+ epatch "${FILESDIR}"/${PN}-1.1.6-glpk449.patch
+
+ rm -r src/C/SuiteSparse*/ || die
+
+ pkg_lib() {
+ local pkg=$(echo $1 | tr '[:lower:]' '[:upper:]')
+ local libs="$($(tc-getPKG_CONFIG) --libs-only-l $1 | \
+ sed -e 's:[ ]-l*\(pthread\|m\)\([ ]\|$\)::g' -e 's:[ ]*$::' | \
+ tr ' ' '\n' | sort -u | sed -e "s:^-l\(.*\):'\1':g" | \
+ tr '\n' ',' | sed -e 's:,$::')"
+ local libdir="$($(tc-getPKG_CONFIG) --libs-only-L $1 | \
+ sed -e 's:[ ]*$::' | \
+ tr ' ' '\n' | sort -u | sed -e "s:^-L\(.*\):'\1':g" | \
+ tr '\n' ',' | sed -e 's:,$::')"
+ local incdir="$($(tc-getPKG_CONFIG) --cflags-only-I $1 | \
+ sed -e 's:[ ]*$::' | \
+ tr ' ' '\n' | sort -u | sed -e "s:^-L\(.*\):'\1':g" | \
+ tr '\n' ',' | sed -e 's:,$::')"
+ sed -i \
+ -e "/${pkg}_LIB[ ]*=/s:\(.*[ ]*=[ ]*\[\).*${1}.*:\1${libs}\]:" \
+ -e "s:\(${pkg}_INC_DIR[ ]*=\).*$:\1 ${incdir}:" \
+ -e "s:\[ BLAS_LIB_DIR \]:\[ ${libdir} \]:g" \
+ setup.py || die
+ }
+
+ use_cvx() {
+ if use $1 ; then
+ sed -i \
+ -e "s/\(BUILD_${1^^} =\) 0/\1 1/" \
+ setup.py || die
+ fi
+ }
+
+ pkg_lib blas
+ pkg_lib lapack
+
+ use_cvx gsl
+ use_cvx fftw
+ use_cvx glpk
+ use_cvx dsdp
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && export VARTEXFONTS="${T}/fonts" && emake -C doc -B html
+}
+
+python_test() {
+ cd examples/doc/chap8
+ "${EPYTHON}" lp.py || die
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/build/html/. )
+ insinto /usr/share/doc/${PF}
+ use examples && doins -r examples
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cvxopt/files/cvxopt-1.1.6-glpk.patch b/dev-python/cvxopt/files/cvxopt-1.1.6-glpk.patch
new file mode 100644
index 00000000000..2887ccd0220
--- /dev/null
+++ b/dev-python/cvxopt/files/cvxopt-1.1.6-glpk.patch
@@ -0,0 +1,889 @@
+--- src/C/glpk.c.orig 2013-07-31 12:05:27.089955661 -0600
++++ src/C/glpk.c 2013-07-31 12:13:40.702115730 -0600
+@@ -22,6 +22,8 @@
+ #include "cvxopt.h"
+ #include "misc.h"
+ #include "glpk.h"
++#include <float.h>
++#include <limits.h>
+
+ PyDoc_STRVAR(glpk__doc__,
+ "Interface to the simplex and mixed integer LP algorithms in GLPK.\n\n"
+@@ -36,62 +38,15 @@ PyDoc_STRVAR(glpk__doc__,
+
+ static PyObject *glpk_module;
+
+-typedef struct {
+- char name[20];
+- int idx;
+- char type;
+-} param_tuple;
+-
+-static const param_tuple GLPK_PARAM_LIST[] = {
+- {"LPX_K_MSGLEV", LPX_K_MSGLEV, 'i'},
+- {"LPX_K_SCALE", LPX_K_SCALE, 'i'},
+- {"LPX_K_DUAL", LPX_K_DUAL, 'i'},
+- {"LPX_K_PRICE", LPX_K_PRICE, 'i'},
+- {"LPX_K_RELAX", LPX_K_RELAX, 'f'},
+- {"LPX_K_TOLBND", LPX_K_TOLBND, 'f'},
+- {"LPX_K_TOLDJ", LPX_K_TOLDJ, 'f'},
+- {"LPX_K_TOLPIV", LPX_K_TOLPIV, 'f'},
+- {"LPX_K_ROUND", LPX_K_ROUND, 'i'},
+- {"LPX_K_OBJLL", LPX_K_OBJLL, 'f'},
+- {"LPX_K_OBJUL", LPX_K_OBJUL, 'f'},
+- {"LPX_K_ITLIM", LPX_K_ITLIM, 'i'},
+- {"LPX_K_ITCNT", LPX_K_ITCNT, 'i'},
+- {"LPX_K_TMLIM", LPX_K_TMLIM, 'f'},
+- {"LPX_K_OUTFRQ", LPX_K_OUTFRQ, 'i'},
+- {"LPX_K_OUTDLY", LPX_K_OUTDLY, 'f'},
+- {"LPX_K_BRANCH", LPX_K_BRANCH, 'i'},
+- {"LPX_K_BTRACK", LPX_K_BTRACK, 'i'},
+- {"LPX_K_TOLINT", LPX_K_TOLINT, 'f'},
+- {"LPX_K_TOLOBJ", LPX_K_TOLOBJ, 'f'},
+- {"LPX_K_MPSINFO", LPX_K_MPSINFO, 'i'},
+- {"LPX_K_MPSOBJ", LPX_K_MPSOBJ, 'i'},
+- {"LPX_K_MPSORIG", LPX_K_MPSORIG, 'i'},
+- {"LPX_K_MPSWIDE", LPX_K_MPSWIDE, 'i'},
+- {"LPX_K_MPSFREE", LPX_K_MPSFREE, 'i'},
+- {"LPX_K_MPSSKIP", LPX_K_MPSSKIP, 'i'},
+- {"LPX_K_LPTORIG", LPX_K_LPTORIG, 'i'},
+- {"LPX_K_PRESOL", LPX_K_PRESOL, 'i'},
+-}; /* 28 paramaters */
+-
+-
+ #if PY_MAJOR_VERSION >= 3
+-static int get_param_idx(const char *str, int *idx, char *type)
++#define PYINT_CHECK(value) PyLong_Check(value)
++#define PYINT_AS_LONG(value) PyLong_AS_LONG(value)
++#define PYSTRING_FROMSTRING(str) PyUnicode_FromString(str)
+ #else
+-static int get_param_idx(char *str, int *idx, char *type)
++#define PYINT_CHECK(value) PyInt_Check(value)
++#define PYINT_AS_LONG(value) PyInt_AS_LONG(value)
++#define PYSTRING_FROMSTRING(str) PyString_FromString(str)
+ #endif
+-{
+- int i;
+-
+- for (i=0; i<28; i++) {
+- if (!strcmp(GLPK_PARAM_LIST[i].name, str)) {
+- *idx = GLPK_PARAM_LIST[i].idx;
+- *type = GLPK_PARAM_LIST[i].type;
+- return 1;
+- }
+- }
+- return 0;
+-}
+-
+
+ static char doc_simplex[] =
+ "Solves a linear program using GLPK.\n\n"
+@@ -127,11 +82,12 @@ static PyObject *simplex(PyObject *self,
+ {
+ matrix *c, *h, *b=NULL, *x=NULL, *z=NULL, *y=NULL;
+ PyObject *G, *A=NULL, *t=NULL, *param, *key, *value;
+- LPX *lp;
+- int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL, param_id;
++ glp_prob *lp;
++ glp_smcp smcp;
++ int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL;
+ int_t pos=0;
+ double *a=NULL, val;
+- char param_type, err_str[100];
++ char err_str[100];
+ #if PY_MAJOR_VERSION >= 3
+ const char *keystr;
+ #else
+@@ -183,18 +139,18 @@ static PyObject *simplex(PyObject *self,
+ return NULL;
+ }
+
+- lp = lpx_create_prob();
+- lpx_add_rows(lp, m+p);
+- lpx_add_cols(lp, n);
++ lp = glp_create_prob();
++ glp_add_rows(lp, m+p);
++ glp_add_cols(lp, n);
+
+ for (i=0; i<n; i++){
+- lpx_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
+- lpx_set_col_bnds(lp, i+1, LPX_FR, 0.0, 0.0);
++ glp_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
++ glp_set_col_bnds(lp, i+1, GLP_FR, 0.0, 0.0);
+ }
+ for (i=0; i<m; i++)
+- lpx_set_row_bnds(lp, i+1, LPX_UP, 0.0, MAT_BUFD(h)[i]);
++ glp_set_row_bnds(lp, i+1, GLP_UP, 0.0, MAT_BUFD(h)[i]);
+ for (i=0; i<p; i++)
+- lpx_set_row_bnds(lp, i+m+1, LPX_FX, MAT_BUFD(b)[i],
++ glp_set_row_bnds(lp, i+m+1, GLP_FX, MAT_BUFD(b)[i],
+ MAT_BUFD(b)[i]);
+
+ nnzmax = (SpMatrix_Check(G) ? SP_NNZ(G) : m*n ) +
+@@ -203,7 +159,7 @@ static PyObject *simplex(PyObject *self,
+ rn = (int *) calloc(nnzmax+1, sizeof(int));
+ cn = (int *) calloc(nnzmax+1, sizeof(int));
+ if (!a || !rn || !cn){
+- free(a); free(rn); free(cn); lpx_delete_prob(lp);
++ free(a); free(rn); free(cn); glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+@@ -242,84 +198,155 @@ static PyObject *simplex(PyObject *self,
+ nnz++;
+ }
+
+- lpx_load_matrix(lp, nnz, rn, cn, a);
++ glp_load_matrix(lp, nnz, rn, cn, a);
+ free(rn); free(cn); free(a);
+
+ if (!(t = PyTuple_New(A ? 4 : 3))){
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+ if (!(param = PyObject_GetAttrString(glpk_module, "options"))
+ || !PyDict_Check(param)){
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ PyErr_SetString(PyExc_AttributeError,
+ "missing glpk.options dictionary");
+ return NULL;
+ }
+
+- while (PyDict_Next(param, &pos, &key, &value))
++ glp_init_smcp(&smcp);
++ while (PyDict_Next(param, &pos, &key, &value)){
+ #if PY_MAJOR_VERSION >= 3
+- if ((PyUnicode_Check(key)) &&
+- get_param_idx(_PyUnicode_AsString(key), &param_id,
+- &param_type)){
++ if (PyUnicode_Check(key)){
+ keystr = _PyUnicode_AsString(key);
+ #else
+- if ((keystr = PyString_AsString(key)) && get_param_idx(keystr,
+- &param_id, &param_type)){
+-#endif
+- if (param_type == 'i'){
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value)){
+-#else
+- if (!PyInt_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for integer "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- if (!strcmp("LPX_K_PRESOL", keystr) &&
+-#if PY_MAJOR_VERSION >= 3
+- PyLong_AS_LONG(value) != 1){
+-#else
+- PyInt_AS_LONG(value) != 1){
++ if ((keystr = PyString_AsString(key))){
+ #endif
++ if (!strcmp("LPX_K_MSGLEV", keystr)){
++ switch (PYINT_AS_LONG(value)){
++ case 0: smcp.msg_lev = GLP_MSG_OFF; break;
++ case 1: smcp.msg_lev = GLP_MSG_ERR; break;
++ case 2: smcp.msg_lev = GLP_MSG_ON; break;
++ case 3: smcp.msg_lev = GLP_MSG_ALL; break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_SCALE", keystr)){
++ switch(PYINT_AS_LONG(value)){
++ case 0: glp_unscale_prob(lp); break;
++ case 1: glp_scale_prob(lp, GLP_SF_EQ); break;
++ case 2: glp_scale_prob(lp, GLP_SF_GM); break;
++ case 3: glp_scale_prob(lp, GLP_SF_GM | GLP_SF_EQ); break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_DUAL", keystr)){
++ switch(PYINT_AS_LONG(value)){
++ case 0: smcp.meth = GLP_PRIMAL; break;
++ case 1: smcp.meth = GLP_DUAL; break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_PRICE", keystr)){
++ switch(PYINT_AS_LONG(value)){
++ case 0: smcp.pricing = GLP_PT_STD; break;
++ case 1: smcp.pricing = GLP_PT_PSE; break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_RELAX", keystr)){
++ double relax = PyFloat_AsDouble(value);
++ if (relax < 0.0 || relax > 1.0)
++ goto error;
++ smcp.r_test = (relax == 0.0) ? GLP_RT_STD : GLP_RT_HAR;
++ } else if (!strcmp("LPX_K_TOLBND", keystr)){
++ smcp.tol_bnd = PyFloat_AsDouble(value);
++ if (smcp.tol_bnd < DBL_EPSILON || smcp.tol_bnd > 0.001)
++ goto error;
++ } else if (!strcmp("LPX_K_TOLDJ", keystr)){
++ smcp.tol_dj = PyFloat_AsDouble(value);
++ if (smcp.tol_dj < DBL_EPSILON || smcp.tol_dj > 0.001)
++ goto error;
++ } else if (!strcmp("LPX_K_TOLPIV", keystr)){
++ smcp.tol_piv = PyFloat_AsDouble(value);
++ if (smcp.tol_piv < DBL_EPSILON || smcp.tol_piv > 0.001)
++ goto error;
++ } else if (!strcmp("LPX_K_ROUND", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_OBJLL", keystr)){
++ smcp.obj_ll = PyFloat_AsDouble(value);
++ } else if (!strcmp("LPX_K_OBJUL", keystr)){
++ smcp.obj_ul = PyFloat_AsDouble(value);
++ } else if (!strcmp("LPX_K_ITLIM", keystr)){
++ smcp.it_lim = PYINT_AS_LONG(value);
++ if (smcp.it_lim < 0)
++ smcp.it_lim = INT_MAX;
++ } else if (!strcmp("LPX_K_ITCNT", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_TMLIM", keystr)){
++ smcp.tm_lim = (int)(PyFloat_AsDouble(value) * 1000.0);
++ if (smcp.tm_lim < 0)
++ smcp.tm_lim = INT_MAX;
++ } else if (!strcmp("LPX_K_OUTFRQ", keystr)){
++ smcp.out_frq = PYINT_AS_LONG(value);
++ if (smcp.out_frq <= 0)
++ goto error;
++ } else if (!strcmp("LPX_K_OUTDLY", keystr)){
++ smcp.out_dly = (int)(PyFloat_AsDouble(value) * 1000.0);
++ } else if (!strcmp("LPX_K_BRANCH", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_BTRACK", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_TOLINT", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_TOLOBJ", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSINFO", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSOBJ", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSORIG", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSWIDE", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSFREE", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSSKIP", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_LPTORIG", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_PRESOL", keystr)){
++ if (PYINT_AS_LONG(value) != 1)
+ PyErr_Warn(PyExc_UserWarning, "ignoring value of "
+ "GLPK parameter 'LPX_K_PRESOL'");
++ } else if (!strcmp("LPX_K_BINARIZE", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_USECUTS", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_BFTYPE", keystr)){
++ glp_bfcp bfcp;
++
++ glp_get_bfcp(lp, &bfcp);
++ switch(PYINT_AS_LONG(value)){
++ case 1: bfcp.type = GLP_BF_FT; break;
++ case 2: bfcp.type = GLP_BF_BG; break;
++ case 3: bfcp.type = GLP_BF_GR; break;
++ default: goto error;
+ }
+- else lpx_set_int_parm(lp, param_id,
+-#if PY_MAJOR_VERSION >= 3
+- PyLong_AS_LONG(value));
+-#else
+- PyInt_AS_LONG(value));
+-#endif
+- }
+- else {
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value) && !PyFloat_Check(value)){
+-#else
+- if (!PyInt_Check(value) && !PyFloat_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for floating point "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- lpx_set_real_parm(lp, param_id,
+- PyFloat_AsDouble(value));
++ glp_set_bfcp(lp, &bfcp);
++ } else if (!strcmp("LPX_K_MIPGAP", keystr)){
++ /* Ignored */
++ } else {
++ sprintf(err_str, "unknown GLPK parameter: %-.20s", keystr);
++ PyErr_SetString(PyExc_ValueError, err_str);
++ glp_delete_prob(lp);
++ Py_DECREF(param);
++ return NULL;
+ }
++ }
+ }
+- lpx_set_int_parm(lp, LPX_K_PRESOL, 1);
++ smcp.presolve = GLP_ON;
+ Py_DECREF(param);
+
+- switch (lpx_simplex(lp)){
++ switch (glp_simplex(lp, &smcp)){
+
+- case LPX_E_OK:
++ case 0:
+
+ x = (matrix *) Matrix_New(n,1,DOUBLE);
+ z = (matrix *) Matrix_New(m,1,DOUBLE);
+@@ -329,71 +356,61 @@ static PyObject *simplex(PyObject *self,
+ Py_XDECREF(z);
+ Py_XDECREF(y);
+ Py_XDECREF(t);
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("optimal"));
+-#else
+- PyString_FromString("optimal"));
+-#endif
++ PyTuple_SET_ITEM(t, 0, (PyObject *)PYSTRING_FROMSTRING("optimal"));
+
+ for (i=0; i<n; i++)
+- MAT_BUFD(x)[i] = lpx_get_col_prim(lp, i+1);
++ MAT_BUFD(x)[i] = glp_get_col_prim(lp, i+1);
+ PyTuple_SET_ITEM(t, 1, (PyObject *) x);
+
+ for (i=0; i<m; i++)
+- MAT_BUFD(z)[i] = -lpx_get_row_dual(lp, i+1);
++ MAT_BUFD(z)[i] = -glp_get_row_dual(lp, i+1);
+ PyTuple_SET_ITEM(t, 2, (PyObject *) z);
+
+ if (A){
+ for (i=0; i<p; i++)
+- MAT_BUFD(y)[i] = -lpx_get_row_dual(lp, m+i+1);
++ MAT_BUFD(y)[i] = -glp_get_row_dual(lp, m+i+1);
+ PyTuple_SET_ITEM(t, 3, (PyObject *) y);
+ }
+
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return (PyObject *) t;
+
+- case LPX_E_NOPFS:
++ case GLP_ENOPFS:
+
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("primal infeasible"));
+-#else
+- PyString_FromString("primal infeasible"));
+-#endif
++ PYSTRING_FROMSTRING("primal infeasible"));
+ break;
+
+- case LPX_E_NODFS:
++ case GLP_ENODFS:
+
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("dual infeasible"));
+-#else
+- PyString_FromString("dual infeasible"));
+-#endif
++ PYSTRING_FROMSTRING("dual infeasible"));
+ break;
+
+ default:
+
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("unknown"));
+-#else
+- PyString_FromString("unknown"));
+-#endif
++ PYSTRING_FROMSTRING("unknown"));
+ }
+
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+
+ PyTuple_SET_ITEM(t, 1, Py_BuildValue(""));
+ PyTuple_SET_ITEM(t, 2, Py_BuildValue(""));
+ if (A) PyTuple_SET_ITEM(t, 3, Py_BuildValue(""));
+
+ return (PyObject *) t;
++
++error:
++ sprintf(err_str, "invalid value for GLPK parameter: %-.20s", keystr);
++ PyErr_SetString(PyExc_ValueError, err_str);
++ glp_delete_prob(lp);
++ Py_DECREF(param);
++ return NULL;
+ }
+
+
+@@ -428,11 +445,12 @@ static PyObject *integer(PyObject *self,
+ matrix *c, *h, *b=NULL, *x=NULL;
+ PyObject *G, *A=NULL, *IntSet=NULL, *BinSet = NULL;
+ PyObject *t=NULL, *param, *key, *value;
+- LPX *lp;
+- int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL, param_id;
++ glp_prob *lp;
++ glp_iocp iocp;
++ int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL;
+ int_t pos=0;
+ double *a=NULL, val;
+- char param_type, err_str[100];
++ char err_str[100];
+ #if PY_MAJOR_VERSION >= 3
+ const char *keystr;
+ #else
+@@ -490,18 +508,18 @@ static PyObject *integer(PyObject *self,
+ if ((BinSet) && (!PyAnySet_Check(BinSet)))
+ PY_ERR_TYPE("invalid binary index set");
+
+- lp = lpx_create_prob();
+- lpx_add_rows(lp, m+p);
+- lpx_add_cols(lp, n);
++ lp = glp_create_prob();
++ glp_add_rows(lp, m+p);
++ glp_add_cols(lp, n);
+
+ for (i=0; i<n; i++){
+- lpx_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
+- lpx_set_col_bnds(lp, i+1, LPX_FR, 0.0, 0.0);
++ glp_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
++ glp_set_col_bnds(lp, i+1, GLP_FR, 0.0, 0.0);
+ }
+ for (i=0; i<m; i++)
+- lpx_set_row_bnds(lp, i+1, LPX_UP, 0.0, MAT_BUFD(h)[i]);
++ glp_set_row_bnds(lp, i+1, GLP_UP, 0.0, MAT_BUFD(h)[i]);
+ for (i=0; i<p; i++)
+- lpx_set_row_bnds(lp, i+m+1, LPX_FX, MAT_BUFD(b)[i],
++ glp_set_row_bnds(lp, i+m+1, GLP_FX, MAT_BUFD(b)[i],
+ MAT_BUFD(b)[i]);
+
+ nnzmax = (SpMatrix_Check(G) ? SP_NNZ(G) : m*n ) +
+@@ -510,7 +528,7 @@ static PyObject *integer(PyObject *self,
+ rn = (int *) calloc(nnzmax+1, sizeof(int));
+ cn = (int *) calloc(nnzmax+1, sizeof(int));
+ if (!a || !rn || !cn){
+- free(a); free(rn); free(cn); lpx_delete_prob(lp);
++ free(a); free(rn); free(cn); glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+@@ -549,77 +567,152 @@ static PyObject *integer(PyObject *self,
+ nnz++;
+ }
+
+- lpx_load_matrix(lp, nnz, rn, cn, a);
++ glp_load_matrix(lp, nnz, rn, cn, a);
+ free(rn); free(cn); free(a);
+
+ if (!(t = PyTuple_New(2))) {
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+ if (!(param = PyObject_GetAttrString(glpk_module, "options"))
+ || !PyDict_Check(param)){
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ PyErr_SetString(PyExc_AttributeError,
+ "missing glpk.options dictionary");
+ return NULL;
+ }
+
+- while (PyDict_Next(param, &pos, &key, &value))
+-#if PY_MAJOR_VERSION >= 3
+- if ((PyUnicode_Check(key)) && (keystr = PyUnicode_AS_DATA(key))
+- && get_param_idx(keystr, &param_id, &param_type)){
+-#else
+- if ((keystr = PyString_AsString(key)) && get_param_idx(keystr,
+- &param_id, &param_type)){
+-#endif
+- if (param_type == 'i'){
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value)){
+-#else
+- if (!PyInt_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for integer "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- if (!strcmp("LPX_K_PRESOL", keystr) &&
++ glp_init_iocp(&iocp);
++ while (PyDict_Next(param, &pos, &key, &value)) {
+ #if PY_MAJOR_VERSION >= 3
+- PyLong_AS_LONG(value) != 1){
++ if ((PyUnicode_Check(key)) && (keystr = PyUnicode_AS_DATA(key))){
+ #else
+- PyInt_AS_LONG(value) != 1){
++ if ((keystr = PyString_AsString(key))){
+ #endif
++ if (!strcmp("LPX_K_MSGLEV", keystr)){
++ switch (PYINT_AS_LONG(value)){
++ case 0: iocp.msg_lev = GLP_MSG_OFF; break;
++ case 1: iocp.msg_lev = GLP_MSG_ERR; break;
++ case 2: iocp.msg_lev = GLP_MSG_ON; break;
++ case 3: iocp.msg_lev = GLP_MSG_ALL; break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_SCALE", keystr)){
++ switch(PYINT_AS_LONG(value)){
++ case 0: glp_unscale_prob(lp); break;
++ case 1: glp_scale_prob(lp, GLP_SF_EQ); break;
++ case 2: glp_scale_prob(lp, GLP_SF_GM); break;
++ case 3: glp_scale_prob(lp, GLP_SF_GM | GLP_SF_EQ); break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_DUAL", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_PRICE", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_RELAX", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_TOLBND", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_TOLDJ", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_TOLPIV", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_ROUND", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_OBJLL", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_OBJUL", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_ITLIM", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_ITCNT", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_TMLIM", keystr)){
++ iocp.tm_lim = (int)(PyFloat_AsDouble(value) * 1000.0);
++ if (iocp.tm_lim < 0)
++ iocp.tm_lim = INT_MAX;
++ } else if (!strcmp("LPX_K_OUTFRQ", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_OUTDLY", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_BRANCH", keystr)){
++ switch(PYINT_AS_LONG(value)){
++ case 0: iocp.br_tech = GLP_BR_FFV; break;
++ case 1: iocp.br_tech = GLP_BR_LFV; break;
++ case 2: iocp.br_tech = GLP_BR_DTH; break;
++ case 3: iocp.br_tech = GLP_BR_MFV; break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_BTRACK", keystr)){
++ switch(PYINT_AS_LONG(value)){
++ case 0: iocp.bt_tech = GLP_BT_DFS; break;
++ case 1: iocp.bt_tech = GLP_BT_BFS; break;
++ case 2: iocp.bt_tech = GLP_BT_BPH; break;
++ case 3: iocp.bt_tech = GLP_BT_BLB; break;
++ default: goto error;
++ }
++ } else if (!strcmp("LPX_K_TOLINT", keystr)){
++ iocp.tol_int = PyFloat_AsDouble(value);
++ if (iocp.tol_int < DBL_EPSILON || iocp.tol_int > 0.001)
++ goto error;
++ } else if (!strcmp("LPX_K_TOLOBJ", keystr)){
++ iocp.tol_obj = PyFloat_AsDouble(value);
++ if (iocp.tol_obj < DBL_EPSILON || iocp.tol_obj > 0.001)
++ goto error;
++ } else if (!strcmp("LPX_K_MPSINFO", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSOBJ", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSORIG", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSWIDE", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSFREE", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_MPSSKIP", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_LPTORIG", keystr)){
++ /* Ignored */
++ } else if (!strcmp("LPX_K_PRESOL", keystr)){
++ if (PYINT_AS_LONG(value) != 1)
+ PyErr_Warn(PyExc_UserWarning, "ignoring value of "
+ "GLPK parameter 'LPX_K_PRESOL'");
++ } else if (!strcmp("LPX_K_BINARIZE", keystr)){
++ iocp.binarize = (PYINT_AS_LONG(value) == 0) ? GLP_OFF : GLP_ON;
++ } else if (!strcmp("LPX_K_USECUTS", keystr)){
++ int cuts = PYINT_AS_LONG(value);
++ if (cuts & ~0xFF)
++ goto error;
++ iocp.cov_cuts = (cuts & 1) ? GLP_ON : GLP_OFF;
++ iocp.clq_cuts = (cuts & 2) ? GLP_ON : GLP_OFF;
++ iocp.gmi_cuts = (cuts & 4) ? GLP_ON : GLP_OFF;
++ iocp.mir_cuts = (cuts & 8) ? GLP_ON : GLP_OFF;
++ } else if (!strcmp("LPX_K_BFTYPE", keystr)){
++ glp_bfcp bfcp;
++
++ glp_get_bfcp(lp, &bfcp);
++ switch(PYINT_AS_LONG(value)){
++ case 1: bfcp.type = GLP_BF_FT; break;
++ case 2: bfcp.type = GLP_BF_BG; break;
++ case 3: bfcp.type = GLP_BF_GR; break;
++ default: goto error;
+ }
+- else
+-#if PY_MAJOR_VERSION >= 3
+- lpx_set_int_parm(lp, param_id, PyLong_AS_LONG(value));
+-#else
+- lpx_set_int_parm(lp, param_id, PyInt_AS_LONG(value));
+-#endif
+- }
+- else {
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value) && !PyFloat_Check(value)){
+-#else
+- if (!PyInt_Check(value) && !PyFloat_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for floating point "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- lpx_set_real_parm(lp, param_id,
+- PyFloat_AsDouble(value));
++ glp_set_bfcp(lp, &bfcp);
++ } else if (!strcmp("LPX_K_MIPGAP", keystr)){
++ iocp.mip_gap = PyFloat_AsDouble(value);
++ if (iocp.mip_gap < 0.0)
++ goto error;
++ } else {
++ sprintf(err_str, "unknown GLPK parameter: %-.20s", keystr);
++ PyErr_SetString(PyExc_ValueError, err_str);
++ glp_delete_prob(lp);
++ Py_DECREF(param);
++ return NULL;
+ }
++ }
+ }
+- lpx_set_int_parm(lp, LPX_K_PRESOL, 1);
++ iocp.presolve = GLP_ON;
+ Py_DECREF(param);
+
+ if (IntSet) {
+@@ -628,22 +721,14 @@ static PyObject *integer(PyObject *self,
+ for (i=0; i<PySet_GET_SIZE(IntSet); i++) {
+
+ PyObject *tmp = PySequence_Fast_GET_ITEM(iter, i);
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(tmp)) {
+-#else
+- if (!PyInt_Check(tmp)) {
+-#endif
+- lpx_delete_prob(lp);
++ if (!PYINT_CHECK(tmp)) {
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR_TYPE("non-integer element in I");
+ }
+-#if PY_MAJOR_VERSION >= 3
+- int k = PyLong_AS_LONG(tmp);
+-#else
+- int k = PyInt_AS_LONG(tmp);
+-#endif
++ int k = PYINT_AS_LONG(tmp);
+ if ((k < 0) || (k >= n)) {
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR(PyExc_IndexError, "index element out of range in I");
+ }
+@@ -659,22 +744,14 @@ static PyObject *integer(PyObject *self,
+ for (i=0; i<PySet_GET_SIZE(BinSet); i++) {
+
+ PyObject *tmp = PySequence_Fast_GET_ITEM(iter, i);
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(tmp)) {
+-#else
+- if (!PyInt_Check(tmp)) {
+-#endif
+- lpx_delete_prob(lp);
++ if (!PYINT_CHECK(tmp)) {
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR_TYPE("non-binary element in I");
+ }
+-#if PY_MAJOR_VERSION >= 3
+- int k = PyLong_AS_LONG(tmp);
+-#else
+- int k = PyInt_AS_LONG(tmp);
+-#endif
++ int k = PYINT_AS_LONG(tmp);
+ if ((k < 0) || (k >= n)) {
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR(PyExc_IndexError, "index element out of range in B");
+ }
+@@ -686,117 +763,92 @@ static PyObject *integer(PyObject *self,
+ }
+
+
++ switch (glp_intopt(lp, &iocp)){
+
+- switch (lpx_intopt(lp)){
+-
+- case LPX_E_OK:
++ case 0:
+
+ x = (matrix *) Matrix_New(n,1,DOUBLE);
+ if (!x) {
+ Py_XDECREF(t);
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("optimal"));
+-#else
+- PyString_FromString("optimal"));
+-#endif
++ PyTuple_SET_ITEM(t, 0, (PyObject *)PYSTRING_FROMSTRING("optimal"));
+
+ for (i=0; i<n; i++)
+- MAT_BUFD(x)[i] = lpx_mip_col_val(lp, i+1);
++ MAT_BUFD(x)[i] = glp_mip_col_val(lp, i+1);
+ PyTuple_SET_ITEM(t, 1, (PyObject *) x);
+
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return (PyObject *) t;
+
+- case LPX_E_TMLIM:
++ case GLP_ETMLIM:
+
+ x = (matrix *) Matrix_New(n,1,DOUBLE);
+ if (!x) {
+ Py_XDECREF(t);
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("time limit exceeded"));
+-#else
+- PyString_FromString("time limit exceeded"));
+-#endif
++ PYSTRING_FROMSTRING("time limit exceeded"));
+
+ for (i=0; i<n; i++)
+- MAT_BUFD(x)[i] = lpx_mip_col_val(lp, i+1);
++ MAT_BUFD(x)[i] = glp_mip_col_val(lp, i+1);
+ PyTuple_SET_ITEM(t, 1, (PyObject *) x);
+
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return (PyObject *) t;
+
+
+- case LPX_E_FAULT:
++ case GLP_EBADB:
++ case GLP_ECOND:
++ case GLP_EBOUND:
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("invalid MIP formulation"));
+-#else
+- PyString_FromString("invalid MIP formulation"));
+-#endif
++ PYSTRING_FROMSTRING("invalid MIP formulation"));
+ break;
+
+- case LPX_E_NOPFS:
++ case GLP_ENOPFS:
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("primal infeasible"));
+-#else
+- PyString_FromString("primal infeasible"));
+-#endif
++ PYSTRING_FROMSTRING("primal infeasible"));
+ break;
+
+- case LPX_E_NODFS:
++ case GLP_ENODFS:
+
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("dual infeasible"));
+-#else
+- PyString_FromString("dual infeasible"));
+-#endif
++ PYSTRING_FROMSTRING("dual infeasible"));
+ break;
+
+- case LPX_E_ITLIM:
++ case GLP_EITLIM:
+
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("maxiters exceeded"));
+-#else
+- PyString_FromString("maxiters exceeded"));
+-#endif
++ PYSTRING_FROMSTRING("maxiters exceeded"));
+ break;
+
+- case LPX_E_SING:
++ case GLP_ESING:
+
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("singular or ill-conditioned basis"));
+-#else
+- PyString_FromString("singular or ill-conditioned basis"));
+-#endif
++ PYSTRING_FROMSTRING("singular or ill-conditioned basis"));
+ break;
+
+
+ default:
+
+ PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("unknown"));
+-#else
+- PyString_FromString("unknown"));
+-#endif
++ PYSTRING_FROMSTRING("unknown"));
+ }
+
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+
+ PyTuple_SET_ITEM(t, 1, Py_BuildValue(""));
+ return (PyObject *) t;
++
++error:
++ sprintf(err_str, "invalid value for GLPK parameter: %-.20s", keystr);
++ PyErr_SetString(PyExc_ValueError, err_str);
++ glp_delete_prob(lp);
++ Py_DECREF(param);
++ return NULL;
+ }
+
+
diff --git a/dev-python/cvxopt/files/cvxopt-1.1.6-glpk449.patch b/dev-python/cvxopt/files/cvxopt-1.1.6-glpk449.patch
new file mode 100644
index 00000000000..2a1cc6737be
--- /dev/null
+++ b/dev-python/cvxopt/files/cvxopt-1.1.6-glpk449.patch
@@ -0,0 +1,1082 @@
+--- src/C/glpk.c.orig 2014-03-24 09:39:39.510214726 -0700
++++ src/C/glpk.c 2014-03-24 09:38:41.251897138 -0700
+@@ -23,75 +23,271 @@
+ #include "misc.h"
+ #include "glpk.h"
+
++
+ PyDoc_STRVAR(glpk__doc__,
+ "Interface to the simplex and mixed integer LP algorithms in GLPK.\n\n"
+ "The GLPK control parameters have the default values listed in \n"
+- "the GLPK documentation, except for 'LPX_K_PRESOL', which is set\n"
++ "the GLPK documentation, except for 'presolve', which is set\n"
+ "to 1 and cannot be modified. The other parameters can be\n"
+- "modified by making an entry in the dictionary glpk.options.\n"
+- "For example, the command glpk.options['LPX_K_MSGLEV'] = 0 turns\n"
+- "off the printed output during execution of glpk.simplex().\n"
++ "modified by passing a smcp or iocp object to the appropriate function\n"
++ "For example, the commands param = glpk.smcp(msg_lev = 0), or \n"
++ "param=glpk.smcp(); param.msg_lev=1 turn off the printed output during"
++ " execution of glpk.simplex().\n"
+ "See the documentation at www.gnu.org/software/glpk/glpk.html for\n"
+ "the list of GLPK control parameters and their default values.");
+
+ static PyObject *glpk_module;
+
+-typedef struct {
+- char name[20];
+- int idx;
+- char type;
+-} param_tuple;
+-
+-static const param_tuple GLPK_PARAM_LIST[] = {
+- {"LPX_K_MSGLEV", LPX_K_MSGLEV, 'i'},
+- {"LPX_K_SCALE", LPX_K_SCALE, 'i'},
+- {"LPX_K_DUAL", LPX_K_DUAL, 'i'},
+- {"LPX_K_PRICE", LPX_K_PRICE, 'i'},
+- {"LPX_K_RELAX", LPX_K_RELAX, 'f'},
+- {"LPX_K_TOLBND", LPX_K_TOLBND, 'f'},
+- {"LPX_K_TOLDJ", LPX_K_TOLDJ, 'f'},
+- {"LPX_K_TOLPIV", LPX_K_TOLPIV, 'f'},
+- {"LPX_K_ROUND", LPX_K_ROUND, 'i'},
+- {"LPX_K_OBJLL", LPX_K_OBJLL, 'f'},
+- {"LPX_K_OBJUL", LPX_K_OBJUL, 'f'},
+- {"LPX_K_ITLIM", LPX_K_ITLIM, 'i'},
+- {"LPX_K_ITCNT", LPX_K_ITCNT, 'i'},
+- {"LPX_K_TMLIM", LPX_K_TMLIM, 'f'},
+- {"LPX_K_OUTFRQ", LPX_K_OUTFRQ, 'i'},
+- {"LPX_K_OUTDLY", LPX_K_OUTDLY, 'f'},
+- {"LPX_K_BRANCH", LPX_K_BRANCH, 'i'},
+- {"LPX_K_BTRACK", LPX_K_BTRACK, 'i'},
+- {"LPX_K_TOLINT", LPX_K_TOLINT, 'f'},
+- {"LPX_K_TOLOBJ", LPX_K_TOLOBJ, 'f'},
+- {"LPX_K_MPSINFO", LPX_K_MPSINFO, 'i'},
+- {"LPX_K_MPSOBJ", LPX_K_MPSOBJ, 'i'},
+- {"LPX_K_MPSORIG", LPX_K_MPSORIG, 'i'},
+- {"LPX_K_MPSWIDE", LPX_K_MPSWIDE, 'i'},
+- {"LPX_K_MPSFREE", LPX_K_MPSFREE, 'i'},
+- {"LPX_K_MPSSKIP", LPX_K_MPSSKIP, 'i'},
+- {"LPX_K_LPTORIG", LPX_K_LPTORIG, 'i'},
+- {"LPX_K_PRESOL", LPX_K_PRESOL, 'i'},
+-}; /* 28 paramaters */
++/* Wrappers around the option glpk structs */
++typedef struct{
++ PyObject_HEAD
++ glp_smcp obj;
++} pysmcp;
+
++/* Deallocation of smcp object */
++static void smcp_dealloc(pysmcp* self)
++{
++ Py_TYPE(self)->tp_free((PyObject*)self);
++}
+
+-#if PY_MAJOR_VERSION >= 3
+-static int get_param_idx(const char *str, int *idx, char *type)
+-#else
+-static int get_param_idx(char *str, int *idx, char *type)
+-#endif
++/* New smcp method */
++static PyObject *
++smcp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+ {
+- int i;
++ pysmcp *self;
++ self = (pysmcp *)type->tp_alloc(type, 0);
++ return (PyObject *)self;
++}
++
++/* Initialisation of smcp object */
++static int
++smcp_init(pysmcp *self, PyObject *args, PyObject *kwds)
++{
++ /*static char *kwlist[] = {"number", NULL};*/
++ static char *kwlist[] = { "msg_lev", "meth", "pricing", "r_test", "tol_bnd", "tol_dj", "tol_piv", "obj_ll", "obj_ul", "it_lim", "tm_lim", "out_frq", "out_dly", "presolve" };
++ glp_init_smcp(&self->obj);
++ if (! PyArg_ParseTupleAndKeywords(args, kwds, "|iiiidddddiiiii", kwlist,
++ &self->obj.msg_lev,
++ &self->obj.meth,
++ &self->obj.pricing,
++ &self->obj.r_test,
++ &self->obj.tol_bnd,
++ &self->obj.tol_dj,
++ &self->obj.tol_piv,
++ &self->obj.obj_ll,
++ &self->obj.obj_ul,
++ &self->obj.it_lim,
++ &self->obj.tm_lim,
++ &self->obj.out_frq,
++ &self->obj.out_dly,
++ &self->obj.presolve))
++ return -1;
+
+- for (i=0; i<28; i++) {
+- if (!strcmp(GLPK_PARAM_LIST[i].name, str)) {
+- *idx = GLPK_PARAM_LIST[i].idx;
+- *type = GLPK_PARAM_LIST[i].type;
+- return 1;
+- }
+- }
+ return 0;
+ }
+
++/* smcp members declaration */
++static PyMemberDef smcpMembers[] = {
++ {"msg_lev", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,msg_lev), 0, "message level: "},
++ {"meth", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,meth), 0, "simplex method option: "},
++ {"pricing", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,pricing), 0, "pricing technique: "},
++ {"r_test", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,r_test), 0, "ratio test technique: "},
++ {"tol_bnd", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_smcp,tol_bnd), 0, "spx.tol_bnd "},
++ {"tol_dj", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_smcp,tol_dj), 0, "spx.tol_dj "},
++ {"tol_piv", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_smcp,tol_piv), 0, "spx.tol_piv "},
++ {"obj_ll", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_smcp,obj_ll), 0, "spx.obj_ll "},
++ {"obj_ul", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_smcp,obj_ul), 0, "spx.obj_ul "},
++ {"it_lim", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,it_lim), 0, "spx.it_lim "},
++ {"tm_lim", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,tm_lim), 0, "spx.tm_lim (milliseconds) "},
++ {"out_frq", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,out_frq), 0, "spx.out_frq "},
++ {"out_dly", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,out_dly), 0, "spx.out_dly (milliseconds) "},
++ {"presolve", T_INT, offsetof(pysmcp,obj)+offsetof(glp_smcp,presolve), 0, "enable/disable using LP presolver "},
++};
++
++static PyTypeObject smcp_t = {
++ PyVarObject_HEAD_INIT(NULL, 0)
++ "glpk.smcp", /* tp_name */
++ sizeof(pysmcp), /* tp_basicsize */
++ 0, /* tp_itemsize */
++ (destructor)smcp_dealloc, /* tp_dealloc */
++ 0, /* tp_print */
++ 0, /* tp_getattr */
++ 0, /* tp_setattr */
++ 0, /* tp_reserved */
++ 0, /* tp_repr */
++ 0, /* tp_as_number */
++ 0, /* tp_as_sequence */
++ 0, /* tp_as_mapping */
++ 0, /* tp_hash */
++ 0, /* tp_call */
++ 0, /* tp_str */
++ 0, /* tp_getattro */
++ 0, /* tp_setattro */
++ 0, /* tp_as_buffer */
++ Py_TPFLAGS_DEFAULT |
++ Py_TPFLAGS_BASETYPE, /* tp_flags */
++ "simplex method control parameters", /* tp_doc */
++ 0, /* tp_traverse */
++ 0, /* tp_clear */
++ 0, /* tp_richcompare */
++ 0, /* tp_weaklistoffset */
++ 0, /* tp_iter */
++ 0, /* tp_iternext */
++ 0, /* tp_methods */
++ smcpMembers, /* tp_members */
++ 0, /* tp_getset */
++ 0, /* tp_base */
++ 0, /* tp_dict */
++ 0, /* tp_descr_get */
++ 0, /* tp_descr_set */
++ 0, /* tp_dictoffset */
++ (initproc)smcp_init, /* tp_init */
++ 0, /* tp_alloc */
++ smcp_new, /* tp_new */
++};
++
++
++/* Wrappers around the option glpk structs */
++typedef struct{
++ PyObject_HEAD
++ glp_iocp obj;
++} pyiocp;
++
++/* Deallocation of iocp object */
++static void iocp_dealloc(pysmcp* self)
++{
++ Py_TYPE(self)->tp_free((PyObject*)self);
++}
++
++/* New iocp method */
++static PyObject *
++iocp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
++{
++ pyiocp *self;
++ self = (pyiocp *)type->tp_alloc(type, 0);
++ return (PyObject *)self;
++}
++
++/* Initialisation of iocp object */
++static int
++iocp_init(pyiocp *self, PyObject *args, PyObject *kwds)
++{
++ /*static char *kwlist[] = {"number", NULL};*/
++ static char *kwlist[] = { "msg_lev", "br_tech", "bt_tech", "tol_int", "tol_obj", "tm_lim", "out_frq", "out_dly", "cb_size", "pp_tech", "mip_gap", "mir_cuts", "gmi_cuts", "cov_cuts", "clq_cuts", "presolve", "binarize", "fp_heur", "ps_heur", "ps_tm_lim", "use_sol", "save_sol", "alien",NULL};
++ glp_init_iocp(&self->obj);
++
++ if (! PyArg_ParseTupleAndKeywords(args, kwds, "|iiiddiiiiidiiiiiiiiiisi", kwlist,
++ &self->obj.msg_lev,
++ &self->obj.br_tech,
++ &self->obj.bt_tech,
++ &self->obj.tol_int,
++ &self->obj.tol_obj,
++ &self->obj.tm_lim,
++ &self->obj.out_frq,
++ &self->obj.out_dly,
++ &self->obj.cb_size,
++ &self->obj.pp_tech,
++ &self->obj.mip_gap,
++ &self->obj.mir_cuts,
++ &self->obj.gmi_cuts,
++ &self->obj.cov_cuts,
++ &self->obj.clq_cuts,
++ &self->obj.presolve,
++ &self->obj.binarize,
++ &self->obj.fp_heur,
++ &self->obj.ps_heur,
++ &self->obj.ps_tm_lim,
++ &self->obj.use_sol,
++ &self->obj.save_sol,
++ &self->obj.alien))
++ return -1;
++
++ return 0;
++}
++
++/* iocp members declaration */
++static PyMemberDef iocpMembers[] = {
++ {"msg_lev", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,msg_lev), 0, "message level (see glp_smcp) "},
++ {"br_tech", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,br_tech), 0, "branching technique: "},
++ {"bt_tech", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,bt_tech), 0, "backtracking technique: "},
++ {"tol_int", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_iocp,tol_int), 0, "mip.tol_int "},
++ {"tol_obj", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_iocp,tol_obj), 0, "mip.tol_obj "},
++ {"tm_lim", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,tm_lim), 0, "mip.tm_lim (milliseconds) "},
++ {"out_frq", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,out_frq), 0, "mip.out_frq (milliseconds) "},
++ {"out_dly", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,out_dly), 0, "mip.out_dly (milliseconds) "},
++ /*void (*cb_func)(glp_tree *T, void *info); [> mip.cb_func <]*/
++ /*void *cb_info; [> mip.cb_info <]*/
++ {"cb_size", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,cb_size), 0, "mip.cb_size "},
++ {"pp_tech", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,pp_tech), 0, "preprocessing technique: "},
++ {"mip_gap", T_DOUBLE, offsetof(pysmcp,obj)+offsetof(glp_iocp,mip_gap), 0, "relative MIP gap tolerance "},
++ {"mir_cuts", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,mir_cuts), 0, "MIR cuts (GLP_ON/GLP_OFF) "},
++ {"gmi_cuts", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,gmi_cuts), 0, "Gomory's cuts (GLP_ON/GLP_OFF) "},
++ {"cov_cuts", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,cov_cuts), 0, "cover cuts (GLP_ON/GLP_OFF) "},
++ {"clq_cuts", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,clq_cuts), 0, "clique cuts (GLP_ON/GLP_OFF) "},
++ {"presolve", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,presolve), 0, "enable/disable using MIP presolver "},
++ {"binarize", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,binarize), 0, "try to binarize integer variables "},
++ {"fp_heur", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,fp_heur), 0, "feasibility pump heuristic "},
++ {"ps_heur", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,ps_heur), 0, "proximity search heuristic "},
++ {"ps_tm_lim", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,ps_tm_lim), 0, "proxy time limit, milliseconds "},
++ {"use_sol", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,use_sol), 0, "use existing solution "},
++ {"save_sol",T_STRING,offsetof(pysmcp,obj)+offsetof(glp_iocp,save_sol),0, "filename to save every new solution"},
++ {"alien", T_INT, offsetof(pysmcp,obj)+offsetof(glp_iocp,alien), 0, "use alien solver "},
++};
++
++static PyTypeObject iocp_t = {
++ PyVarObject_HEAD_INIT(NULL, 0)
++ "glpk.iocp", /* tp_name */
++ sizeof(pyiocp), /* tp_basicsize */
++ 0, /* tp_itemsize */
++ (destructor)iocp_dealloc, /* tp_dealloc */
++ 0, /* tp_print */
++ 0, /* tp_getattr */
++ 0, /* tp_setattr */
++ 0, /* tp_reserved */
++ 0, /* tp_repr */
++ 0, /* tp_as_number */
++ 0, /* tp_as_sequence */
++ 0, /* tp_as_mapping */
++ 0, /* tp_hash */
++ 0, /* tp_call */
++ 0, /* tp_str */
++ 0, /* tp_getattro */
++ 0, /* tp_setattro */
++ 0, /* tp_as_buffer */
++ Py_TPFLAGS_DEFAULT |
++ Py_TPFLAGS_BASETYPE, /* tp_flags */
++ "integer optimizer control parameters", /* tp_doc */
++ 0, /* tp_traverse */
++ 0, /* tp_clear */
++ 0, /* tp_richcompare */
++ 0, /* tp_weaklistoffset */
++ 0, /* tp_iter */
++ 0, /* tp_iternext */
++ 0, /* tp_methods */
++ iocpMembers, /* tp_members */
++ 0, /* tp_getset */
++ 0, /* tp_base */
++ 0, /* tp_dict */
++ 0, /* tp_descr_get */
++ 0, /* tp_descr_set */
++ 0, /* tp_dictoffset */
++ (initproc)iocp_init, /* tp_init */
++ 0, /* tp_alloc */
++ iocp_new, /* tp_new */
++};
++
++
++
++/* Small helper function to generate the output string of the simplex function */
++inline static void set_output_string(PyObject* t,const char s[]) {
++ PyTuple_SET_ITEM(t, 0, (PyObject *)
++#if PY_MAJOR_VERSION >= 3
++ PyUnicode_FromString(s));
++#else
++ PyString_FromString(s));
++#endif
++ }
++
+
+ static char doc_simplex[] =
+ "Solves a linear program using GLPK.\n\n"
+@@ -126,21 +322,16 @@
+ PyObject *kwrds)
+ {
+ matrix *c, *h, *b=NULL, *x=NULL, *z=NULL, *y=NULL;
+- PyObject *G, *A=NULL, *t=NULL, *param, *key, *value;
+- LPX *lp;
+- int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL, param_id;
+- int_t pos=0;
++ PyObject *G, *A=NULL, *t=NULL;
++ glp_prob *lp;
++ glp_smcp *options = NULL;
++ pysmcp *smcpParm = NULL;
++ int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL;
+ double *a=NULL, val;
+- char param_type, err_str[100];
+-#if PY_MAJOR_VERSION >= 3
+- const char *keystr;
+-#else
+- char *keystr;
+-#endif
+- char *kwlist[] = {"c", "G", "h", "A", "b", NULL};
++ char *kwlist[] = {"c", "G", "h", "A", "b","options", NULL};
+
+- if (!PyArg_ParseTupleAndKeywords(args, kwrds, "OOO|OO", kwlist, &c,
+- &G, &h, &A, &b)) return NULL;
++ if (!PyArg_ParseTupleAndKeywords(args, kwrds, "OOO|OOO!", kwlist, &c,
++ &G, &h, &A, &b,&smcp_t,&smcpParm)) return NULL;
+
+ if ((Matrix_Check(G) && MAT_ID(G) != DOUBLE) ||
+ (SpMatrix_Check(G) && SP_ID(G) != DOUBLE) ||
+@@ -182,19 +373,30 @@
+ PyErr_SetString(PyExc_ValueError, "incompatible dimensions");
+ return NULL;
+ }
++ if(!smcpParm)
++ {
++ smcpParm = (pysmcp*)malloc(sizeof(*smcpParm));
++ glp_init_smcp(&(smcpParm->obj));
++ }
++ if(smcpParm)
++ {
++ Py_INCREF(smcpParm);
++ options = &smcpParm->obj;
++ options->presolve = 1;
++ }
+
+- lp = lpx_create_prob();
+- lpx_add_rows(lp, m+p);
+- lpx_add_cols(lp, n);
++ lp = glp_create_prob();
++ glp_add_rows(lp, m+p);
++ glp_add_cols(lp, n);
+
+ for (i=0; i<n; i++){
+- lpx_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
+- lpx_set_col_bnds(lp, i+1, LPX_FR, 0.0, 0.0);
++ glp_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
++ glp_set_col_bnds(lp, i+1, GLP_FR, 0.0, 0.0);
+ }
+ for (i=0; i<m; i++)
+- lpx_set_row_bnds(lp, i+1, LPX_UP, 0.0, MAT_BUFD(h)[i]);
++ glp_set_row_bnds(lp, i+1, GLP_UP, 0.0, MAT_BUFD(h)[i]);
+ for (i=0; i<p; i++)
+- lpx_set_row_bnds(lp, i+m+1, LPX_FX, MAT_BUFD(b)[i],
++ glp_set_row_bnds(lp, i+m+1, GLP_FX, MAT_BUFD(b)[i],
+ MAT_BUFD(b)[i]);
+
+ nnzmax = (SpMatrix_Check(G) ? SP_NNZ(G) : m*n ) +
+@@ -203,7 +405,7 @@
+ rn = (int *) calloc(nnzmax+1, sizeof(int));
+ cn = (int *) calloc(nnzmax+1, sizeof(int));
+ if (!a || !rn || !cn){
+- free(a); free(rn); free(cn); lpx_delete_prob(lp);
++ free(a); free(rn); free(cn); glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+@@ -242,84 +444,18 @@
+ nnz++;
+ }
+
+- lpx_load_matrix(lp, nnz, rn, cn, a);
++ glp_load_matrix(lp, nnz, rn, cn, a);
+ free(rn); free(cn); free(a);
+
+ if (!(t = PyTuple_New(A ? 4 : 3))){
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+- if (!(param = PyObject_GetAttrString(glpk_module, "options"))
+- || !PyDict_Check(param)){
+- lpx_delete_prob(lp);
+- PyErr_SetString(PyExc_AttributeError,
+- "missing glpk.options dictionary");
+- return NULL;
+- }
+-
+- while (PyDict_Next(param, &pos, &key, &value))
+-#if PY_MAJOR_VERSION >= 3
+- if ((PyUnicode_Check(key)) &&
+- get_param_idx(_PyUnicode_AsString(key), &param_id,
+- &param_type)){
+- keystr = _PyUnicode_AsString(key);
+-#else
+- if ((keystr = PyString_AsString(key)) && get_param_idx(keystr,
+- &param_id, &param_type)){
+-#endif
+- if (param_type == 'i'){
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value)){
+-#else
+- if (!PyInt_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for integer "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- if (!strcmp("LPX_K_PRESOL", keystr) &&
+-#if PY_MAJOR_VERSION >= 3
+- PyLong_AS_LONG(value) != 1){
+-#else
+- PyInt_AS_LONG(value) != 1){
+-#endif
+- PyErr_Warn(PyExc_UserWarning, "ignoring value of "
+- "GLPK parameter 'LPX_K_PRESOL'");
+- }
+- else lpx_set_int_parm(lp, param_id,
+-#if PY_MAJOR_VERSION >= 3
+- PyLong_AS_LONG(value));
+-#else
+- PyInt_AS_LONG(value));
+-#endif
+- }
+- else {
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value) && !PyFloat_Check(value)){
+-#else
+- if (!PyInt_Check(value) && !PyFloat_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for floating point "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- lpx_set_real_parm(lp, param_id,
+- PyFloat_AsDouble(value));
+- }
+- }
+- lpx_set_int_parm(lp, LPX_K_PRESOL, 1);
+- Py_DECREF(param);
+
+- switch (lpx_simplex(lp)){
++ switch (glp_simplex(lp,options)){
+
+- case LPX_E_OK:
++ case 0:
+
+ x = (matrix *) Matrix_New(n,1,DOUBLE);
+ z = (matrix *) Matrix_New(m,1,DOUBLE);
+@@ -329,65 +465,70 @@
+ Py_XDECREF(z);
+ Py_XDECREF(y);
+ Py_XDECREF(t);
+- lpx_delete_prob(lp);
++ Py_XDECREF(smcpParm);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("optimal"));
+-#else
+- PyString_FromString("optimal"));
+-#endif
++ set_output_string(t,"optimal");
+
+ for (i=0; i<n; i++)
+- MAT_BUFD(x)[i] = lpx_get_col_prim(lp, i+1);
++ MAT_BUFD(x)[i] = glp_get_col_prim(lp, i+1);
+ PyTuple_SET_ITEM(t, 1, (PyObject *) x);
+
+ for (i=0; i<m; i++)
+- MAT_BUFD(z)[i] = -lpx_get_row_dual(lp, i+1);
++ MAT_BUFD(z)[i] = -glp_get_row_dual(lp, i+1);
+ PyTuple_SET_ITEM(t, 2, (PyObject *) z);
+
+ if (A){
+ for (i=0; i<p; i++)
+- MAT_BUFD(y)[i] = -lpx_get_row_dual(lp, m+i+1);
++ MAT_BUFD(y)[i] = -glp_get_row_dual(lp, m+i+1);
+ PyTuple_SET_ITEM(t, 3, (PyObject *) y);
+ }
+
+- lpx_delete_prob(lp);
++ Py_XDECREF(smcpParm);
++ glp_delete_prob(lp);
+ return (PyObject *) t;
+-
+- case LPX_E_NOPFS:
+-
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("primal infeasible"));
+-#else
+- PyString_FromString("primal infeasible"));
+-#endif
++ case GLP_EBADB:
++ set_output_string(t,"incorrect initial basis");
+ break;
+-
+- case LPX_E_NODFS:
+-
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("dual infeasible"));
+-#else
+- PyString_FromString("dual infeasible"));
+-#endif
++ case GLP_ESING:
++ set_output_string(t,"singular initial basis matrix");
++ break;
++ case GLP_ECOND:
++ set_output_string(t,"ill-conditioned initial basis matrix");
++ break;
++ case GLP_EBOUND:
++ set_output_string(t,"incorrect bounds");
++ break;
++ case GLP_EFAIL:
++ set_output_string(t,"solver failure");
++ break;
++ case GLP_EOBJLL:
++ set_output_string(t,"objective function reached lower limit");
++ break;
++ case GLP_EOBJUL:
++ set_output_string(t,"objective function reached upper limit");
++ break;
++ case GLP_EITLIM:
++ set_output_string(t,"iteration limit exceeded");
++ break;
++ case GLP_ETMLIM:
++ set_output_string(t,"time limit exceeded");
++ break;
++ case GLP_ENOPFS:
++ set_output_string(t,"primal infeasible");
++ break;
++ case GLP_ENODFS:
++ set_output_string(t,"dual infeasible");
+ break;
+-
+ default:
+-
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("unknown"));
+-#else
+- PyString_FromString("unknown"));
+-#endif
++ set_output_string(t,"unknown");
++ break;
+ }
+
+- lpx_delete_prob(lp);
++ Py_XDECREF(smcpParm);
++ glp_delete_prob(lp);
+
+ PyTuple_SET_ITEM(t, 1, Py_BuildValue(""));
+ PyTuple_SET_ITEM(t, 2, Py_BuildValue(""));
+@@ -427,21 +568,28 @@
+ {
+ matrix *c, *h, *b=NULL, *x=NULL;
+ PyObject *G, *A=NULL, *IntSet=NULL, *BinSet = NULL;
+- PyObject *t=NULL, *param, *key, *value;
+- LPX *lp;
+- int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL, param_id;
+- int_t pos=0;
++ PyObject *t=NULL;
++ pyiocp *iocpParm = NULL;;
++ glp_iocp *options = NULL;
++ glp_prob *lp;
++ int m, n, p, i, j, k, nnz, nnzmax, *rn=NULL, *cn=NULL;
+ double *a=NULL, val;
+- char param_type, err_str[100];
+-#if PY_MAJOR_VERSION >= 3
+- const char *keystr;
+-#else
+- char *keystr;
+-#endif
+- char *kwlist[] = {"c", "G", "h", "A", "b", "I", "B", NULL};
++ char *kwlist[] = {"c", "G", "h", "A", "b", "I", "B","iocp", NULL};
++
++ if (!PyArg_ParseTupleAndKeywords(args, kwrds, "OOO|OOOOO!", kwlist, &c,
++ &G, &h, &A, &b, &IntSet, &BinSet,iocp_t,&iocpParm)) return NULL;
+
+- if (!PyArg_ParseTupleAndKeywords(args, kwrds, "OOO|OOOO", kwlist, &c,
+- &G, &h, &A, &b, &IntSet, &BinSet)) return NULL;
++ if(!iocpParm)
++ {
++ iocpParm = (pyiocp*)malloc(sizeof(*iocpParm));
++ glp_init_iocp(&(iocpParm->obj));
++ }
++ if(iocpParm)
++ {
++ Py_INCREF(iocpParm);
++ options = &iocpParm->obj;
++ options->presolve = 1;
++ }
+
+ if ((Matrix_Check(G) && MAT_ID(G) != DOUBLE) ||
+ (SpMatrix_Check(G) && SP_ID(G) != DOUBLE) ||
+@@ -490,18 +638,18 @@
+ if ((BinSet) && (!PyAnySet_Check(BinSet)))
+ PY_ERR_TYPE("invalid binary index set");
+
+- lp = lpx_create_prob();
+- lpx_add_rows(lp, m+p);
+- lpx_add_cols(lp, n);
++ lp = glp_create_prob();
++ glp_add_rows(lp, m+p);
++ glp_add_cols(lp, n);
+
+ for (i=0; i<n; i++){
+- lpx_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
+- lpx_set_col_bnds(lp, i+1, LPX_FR, 0.0, 0.0);
++ glp_set_obj_coef(lp, i+1, MAT_BUFD(c)[i]);
++ glp_set_col_bnds(lp, i+1, GLP_FR, 0.0, 0.0);
+ }
+ for (i=0; i<m; i++)
+- lpx_set_row_bnds(lp, i+1, LPX_UP, 0.0, MAT_BUFD(h)[i]);
++ glp_set_row_bnds(lp, i+1, GLP_UP, 0.0, MAT_BUFD(h)[i]);
+ for (i=0; i<p; i++)
+- lpx_set_row_bnds(lp, i+m+1, LPX_FX, MAT_BUFD(b)[i],
++ glp_set_row_bnds(lp, i+m+1, GLP_FX, MAT_BUFD(b)[i],
+ MAT_BUFD(b)[i]);
+
+ nnzmax = (SpMatrix_Check(G) ? SP_NNZ(G) : m*n ) +
+@@ -510,7 +658,7 @@
+ rn = (int *) calloc(nnzmax+1, sizeof(int));
+ cn = (int *) calloc(nnzmax+1, sizeof(int));
+ if (!a || !rn || !cn){
+- free(a); free(rn); free(cn); lpx_delete_prob(lp);
++ free(a); free(rn); free(cn); glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+@@ -549,79 +697,14 @@
+ nnz++;
+ }
+
+- lpx_load_matrix(lp, nnz, rn, cn, a);
++ glp_load_matrix(lp, nnz, rn, cn, a);
+ free(rn); free(cn); free(a);
+
+ if (!(t = PyTuple_New(2))) {
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ return PyErr_NoMemory();
+ }
+
+- if (!(param = PyObject_GetAttrString(glpk_module, "options"))
+- || !PyDict_Check(param)){
+- lpx_delete_prob(lp);
+- PyErr_SetString(PyExc_AttributeError,
+- "missing glpk.options dictionary");
+- return NULL;
+- }
+-
+- while (PyDict_Next(param, &pos, &key, &value))
+-#if PY_MAJOR_VERSION >= 3
+- if ((PyUnicode_Check(key)) && (keystr = PyUnicode_AS_DATA(key))
+- && get_param_idx(keystr, &param_id, &param_type)){
+-#else
+- if ((keystr = PyString_AsString(key)) && get_param_idx(keystr,
+- &param_id, &param_type)){
+-#endif
+- if (param_type == 'i'){
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value)){
+-#else
+- if (!PyInt_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for integer "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- if (!strcmp("LPX_K_PRESOL", keystr) &&
+-#if PY_MAJOR_VERSION >= 3
+- PyLong_AS_LONG(value) != 1){
+-#else
+- PyInt_AS_LONG(value) != 1){
+-#endif
+- PyErr_Warn(PyExc_UserWarning, "ignoring value of "
+- "GLPK parameter 'LPX_K_PRESOL'");
+- }
+- else
+-#if PY_MAJOR_VERSION >= 3
+- lpx_set_int_parm(lp, param_id, PyLong_AS_LONG(value));
+-#else
+- lpx_set_int_parm(lp, param_id, PyInt_AS_LONG(value));
+-#endif
+- }
+- else {
+-#if PY_MAJOR_VERSION >= 3
+- if (!PyLong_Check(value) && !PyFloat_Check(value)){
+-#else
+- if (!PyInt_Check(value) && !PyFloat_Check(value)){
+-#endif
+- sprintf(err_str, "invalid value for floating point "
+- "GLPK parameter: %-.20s", keystr);
+- PyErr_SetString(PyExc_ValueError, err_str);
+- lpx_delete_prob(lp);
+- Py_DECREF(param);
+- return NULL;
+- }
+- lpx_set_real_parm(lp, param_id,
+- PyFloat_AsDouble(value));
+- }
+- }
+- lpx_set_int_parm(lp, LPX_K_PRESOL, 1);
+- Py_DECREF(param);
+-
+ if (IntSet) {
+ PyObject *iter = PySequence_Fast(IntSet, "Critical error: not sequence");
+
+@@ -633,7 +716,7 @@
+ #else
+ if (!PyInt_Check(tmp)) {
+ #endif
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR_TYPE("non-integer element in I");
+ }
+@@ -643,7 +726,7 @@
+ int k = PyInt_AS_LONG(tmp);
+ #endif
+ if ((k < 0) || (k >= n)) {
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR(PyExc_IndexError, "index element out of range in I");
+ }
+@@ -664,7 +747,7 @@
+ #else
+ if (!PyInt_Check(tmp)) {
+ #endif
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR_TYPE("non-binary element in I");
+ }
+@@ -674,7 +757,7 @@
+ int k = PyInt_AS_LONG(tmp);
+ #endif
+ if ((k < 0) || (k >= n)) {
+- lpx_delete_prob(lp);
++ glp_delete_prob(lp);
+ Py_DECREF(iter);
+ PY_ERR(PyExc_IndexError, "index element out of range in B");
+ }
+@@ -686,114 +769,85 @@
+ }
+
+
++ switch (glp_intopt(lp,options)){
+
+- switch (lpx_intopt(lp)){
++ case 0:
+
+- case LPX_E_OK:
++ x = (matrix *) Matrix_New(n,1,DOUBLE);
++ if (!x) {
++ Py_XDECREF(iocpParm);
++ Py_XDECREF(t);
++ glp_delete_prob(lp);
++ return PyErr_NoMemory();
++ }
++ set_output_string(t,"optimal");
++ set_output_string(t,"optimal");
+
+- x = (matrix *) Matrix_New(n,1,DOUBLE);
+- if (!x) {
+- Py_XDECREF(t);
+- lpx_delete_prob(lp);
+- return PyErr_NoMemory();
+- }
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("optimal"));
+-#else
+- PyString_FromString("optimal"));
+-#endif
++ for (i=0; i<n; i++)
++ MAT_BUFD(x)[i] = glp_mip_col_val(lp, i+1);
++ PyTuple_SET_ITEM(t, 1, (PyObject *) x);
+
+- for (i=0; i<n; i++)
+- MAT_BUFD(x)[i] = lpx_mip_col_val(lp, i+1);
+- PyTuple_SET_ITEM(t, 1, (PyObject *) x);
++ Py_XDECREF(iocpParm);
++ glp_delete_prob(lp);
++ return (PyObject *) t;
+
+- lpx_delete_prob(lp);
+- return (PyObject *) t;
++ case GLP_ETMLIM:
+
+- case LPX_E_TMLIM:
++ x = (matrix *) Matrix_New(n,1,DOUBLE);
++ if (!x) {
++ Py_XDECREF(t);
++ Py_XDECREF(iocpParm);
++ glp_delete_prob(lp);
++ return PyErr_NoMemory();
++ }
++ set_output_string(t,"time limit exceeded");
+
+- x = (matrix *) Matrix_New(n,1,DOUBLE);
+- if (!x) {
+- Py_XDECREF(t);
+- lpx_delete_prob(lp);
+- return PyErr_NoMemory();
+- }
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("time limit exceeded"));
+-#else
+- PyString_FromString("time limit exceeded"));
+-#endif
++ for (i=0; i<n; i++)
++ MAT_BUFD(x)[i] = glp_mip_col_val(lp, i+1);
++ PyTuple_SET_ITEM(t, 1, (PyObject *) x);
+
+- for (i=0; i<n; i++)
+- MAT_BUFD(x)[i] = lpx_mip_col_val(lp, i+1);
+- PyTuple_SET_ITEM(t, 1, (PyObject *) x);
+-
+- lpx_delete_prob(lp);
+- return (PyObject *) t;
++ Py_XDECREF(iocpParm);
++ glp_delete_prob(lp);
++ return (PyObject *) t;
+
+
+- case LPX_E_FAULT:
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("invalid MIP formulation"));
+-#else
+- PyString_FromString("invalid MIP formulation"));
+-#endif
+- break;
++ case GLP_EBOUND:
++ set_output_string(t,"incorrect bounds");
++ break;
++ case GLP_EFAIL:
++ set_output_string(t,"invalid MIP formulation");
++ break;
+
+- case LPX_E_NOPFS:
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("primal infeasible"));
+-#else
+- PyString_FromString("primal infeasible"));
+-#endif
+- break;
++ case GLP_ENOPFS:
++ set_output_string(t,"primal infeasible");
++ break;
+
+- case LPX_E_NODFS:
++ case GLP_ENODFS:
++ set_output_string(t,"dual infeasible");
++ break;
+
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("dual infeasible"));
+-#else
+- PyString_FromString("dual infeasible"));
+-#endif
+- break;
++ case GLP_EMIPGAP:
++ set_output_string(t,"Relative mip gap tolerance reached");
++ break;
+
+- case LPX_E_ITLIM:
++ /*case LPX_E_ITLIM:
+
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("maxiters exceeded"));
+-#else
+- PyString_FromString("maxiters exceeded"));
+-#endif
+- break;
++ set_output_string(t,"maxiters exceeded");
++ break;*/
+
+- case LPX_E_SING:
++ /*case LPX_E_SING:
+
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("singular or ill-conditioned basis"));
+-#else
+- PyString_FromString("singular or ill-conditioned basis"));
+-#endif
+- break;
++ set_output_string(t,"singular or ill-conditioned basis");
++ break;*/
+
+
+- default:
++ default:
+
+- PyTuple_SET_ITEM(t, 0, (PyObject *)
+-#if PY_MAJOR_VERSION >= 3
+- PyUnicode_FromString("unknown"));
+-#else
+- PyString_FromString("unknown"));
+-#endif
+- }
++ set_output_string(t,"unknown");
++ }
+
+- lpx_delete_prob(lp);
++ Py_XDECREF(iocpParm);
++ glp_delete_prob(lp);
+
+ PyTuple_SET_ITEM(t, 1, Py_BuildValue(""));
+ return (PyObject *) t;
+@@ -819,10 +873,94 @@
+ NULL, NULL, NULL, NULL
+ };
+
++void addglpkConstants (void)
++{
++ PyModule_AddIntMacro(glpk_module, GLP_ON);
++ PyModule_AddIntMacro(glpk_module,GLP_OFF);
++
++ /* reason codes: */
++ PyModule_AddIntMacro(glpk_module,GLP_IROWGEN);
++ PyModule_AddIntMacro(glpk_module,GLP_IBINGO);
++ PyModule_AddIntMacro(glpk_module,GLP_IHEUR);
++ PyModule_AddIntMacro(glpk_module,GLP_ICUTGEN);
++ PyModule_AddIntMacro(glpk_module,GLP_IBRANCH);
++ PyModule_AddIntMacro(glpk_module,GLP_ISELECT);
++ PyModule_AddIntMacro(glpk_module,GLP_IPREPRO);
++
++ /* branch selection indicator: */
++ PyModule_AddIntMacro(glpk_module,GLP_NO_BRNCH);
++ PyModule_AddIntMacro(glpk_module,GLP_DN_BRNCH);
++ PyModule_AddIntMacro(glpk_module,GLP_UP_BRNCH);
++
++ /* return codes: */
++ PyModule_AddIntMacro(glpk_module,GLP_EBADB);
++ PyModule_AddIntMacro(glpk_module,GLP_ESING);
++ PyModule_AddIntMacro(glpk_module,GLP_ECOND);
++ PyModule_AddIntMacro(glpk_module,GLP_EBOUND);
++ PyModule_AddIntMacro(glpk_module,GLP_EFAIL);
++ PyModule_AddIntMacro(glpk_module,GLP_EOBJLL);
++ PyModule_AddIntMacro(glpk_module,GLP_EOBJUL);
++ PyModule_AddIntMacro(glpk_module,GLP_EITLIM);
++ PyModule_AddIntMacro(glpk_module,GLP_ETMLIM);
++ PyModule_AddIntMacro(glpk_module,GLP_ENOPFS);
++ PyModule_AddIntMacro(glpk_module,GLP_ENODFS);
++ PyModule_AddIntMacro(glpk_module,GLP_EROOT);
++ PyModule_AddIntMacro(glpk_module,GLP_ESTOP);
++ PyModule_AddIntMacro(glpk_module,GLP_EMIPGAP);
++ PyModule_AddIntMacro(glpk_module,GLP_ENOFEAS);
++ PyModule_AddIntMacro(glpk_module,GLP_ENOCVG);
++ PyModule_AddIntMacro(glpk_module,GLP_EINSTAB);
++ PyModule_AddIntMacro(glpk_module,GLP_EDATA);
++ PyModule_AddIntMacro(glpk_module,GLP_ERANGE);
++
++ /* condition indicator: */
++ PyModule_AddIntMacro(glpk_module,GLP_KKT_PE);
++ PyModule_AddIntMacro(glpk_module,GLP_KKT_PB);
++ PyModule_AddIntMacro(glpk_module,GLP_KKT_DE);
++ PyModule_AddIntMacro(glpk_module,GLP_KKT_DB);
++ PyModule_AddIntMacro(glpk_module,GLP_KKT_CS);
++
++ /* MPS file format: */
++ PyModule_AddIntMacro(glpk_module,GLP_MPS_DECK);
++ PyModule_AddIntMacro(glpk_module,GLP_MPS_FILE);
++
++ /* simplex method control parameters */
++ /* message level: */
++ PyModule_AddIntMacro(glpk_module,GLP_MSG_OFF);
++ PyModule_AddIntMacro(glpk_module,GLP_MSG_ERR);
++ PyModule_AddIntMacro(glpk_module,GLP_MSG_ON);
++ PyModule_AddIntMacro(glpk_module,GLP_MSG_ALL);
++ PyModule_AddIntMacro(glpk_module,GLP_MSG_DBG);
++ /* simplex method option: */
++ PyModule_AddIntMacro(glpk_module,GLP_PRIMAL);
++ PyModule_AddIntMacro(glpk_module,GLP_DUALP);
++ PyModule_AddIntMacro(glpk_module,GLP_DUAL);
++ /* pricing technique: */
++ PyModule_AddIntMacro(glpk_module,GLP_PT_STD);
++ PyModule_AddIntMacro(glpk_module,GLP_PT_PSE);
++ /* ratio test technique: */
++ PyModule_AddIntMacro(glpk_module,GLP_RT_STD);
++ PyModule_AddIntMacro(glpk_module,GLP_RT_HAR);
++
++ /* interior-point solver control parameters */
++ /* ordering algorithm: */
++ PyModule_AddIntMacro(glpk_module,GLP_ORD_NONE);
++ PyModule_AddIntMacro(glpk_module,GLP_ORD_QMD);
++ PyModule_AddIntMacro(glpk_module,GLP_ORD_AMD);
++ PyModule_AddIntMacro(glpk_module,GLP_ORD_SYMAMD);
++}
++
+ PyMODINIT_FUNC PyInit_glpk(void)
+ {
+ if (!(glpk_module = PyModule_Create(&glpk_module_def))) return NULL;
+- PyModule_AddObject(glpk_module, "options", PyDict_New());
++ if (PyType_Ready(&iocp_t) < 0 || (PyType_Ready(&smcp_t) < 0)) return NULL;
++ /* Adding macros */
++ addglpkConstants();
++ /* Adding option lists as objects */
++ Py_INCREF(&smcp_t);
++ PyModule_AddObject(glpk_module,"smcp",(PyObject*)&smcp_t);
++ Py_INCREF(&iocp_t);
++ PyModule_AddObject(glpk_module,"iocp",(PyObject*)&iocp_t);
+ if (import_cvxopt() < 0) return NULL;
+ return glpk_module;
+ }
+@@ -832,8 +970,13 @@
+ PyMODINIT_FUNC initglpk(void)
+ {
+ glpk_module = Py_InitModule3("cvxopt.glpk", glpk_functions,
+- glpk__doc__);
+- PyModule_AddObject(glpk_module, "options", PyDict_New());
++ glpk__doc__);
++ if (PyType_Ready(&iocp_t) < 0 || (PyType_Ready(&smcp_t) < 0)) return NULL;
++ addglpkConstants();
++ Py_INCREF(&smcp_t);
++ PyModule_AddObject(glpk_module,"smcp",(PyObject*)&smcp_t);
++ Py_INCREF(&iocp_t);
++ PyModule_AddObject(glpk_module,"iocp",(PyObject*)&iocp_t);
+ if (import_cvxopt() < 0) return;
+ }
+
diff --git a/dev-python/cvxopt/files/cvxopt-1.1.6-setup.patch b/dev-python/cvxopt/files/cvxopt-1.1.6-setup.patch
new file mode 100644
index 00000000000..c95f31bf604
--- /dev/null
+++ b/dev-python/cvxopt/files/cvxopt-1.1.6-setup.patch
@@ -0,0 +1,176 @@
+--- setup.py.orig 2013-05-16 21:36:29.616510963 +1200
++++ setup.py 2013-05-16 21:51:08.456347311 +1200
+@@ -2,7 +2,7 @@
+ from glob import glob
+
+ # Modifiy this if BLAS and LAPACK libraries are not in /usr/lib.
+-BLAS_LIB_DIR = '/usr/lib'
++BLAS_LIB_DIR = ''
+
+ # Default names of BLAS and LAPACK libraries
+ BLAS_LIB = ['blas']
+@@ -18,37 +18,37 @@
+ BUILD_GSL = 0
+
+ # Directory containing libgsl (used only when BUILD_GSL = 1).
+-GSL_LIB_DIR = '/usr/lib'
++GSL_LIB_DIR = ''
+
+ # Directory containing the GSL header files (used only when BUILD_GSL = 1).
+-GSL_INC_DIR = '/usr/include/gsl'
++GSL_INC_DIR = ''
+
+ # Set to 1 if you are installing the fftw module.
+ BUILD_FFTW = 0
+
+ # Directory containing libfftw3 (used only when BUILD_FFTW = 1).
+-FFTW_LIB_DIR = '/usr/lib'
++FFTW_LIB_DIR = ''
+
+ # Directory containing fftw.h (used only when BUILD_FFTW = 1).
+-FFTW_INC_DIR = '/usr/include'
++FFTW_INC_DIR = ''
+
+ # Set to 1 if you are installing the glpk module.
+ BUILD_GLPK = 0
+
+ # Directory containing libglpk (used only when BUILD_GLPK = 1).
+-GLPK_LIB_DIR = '/usr/lib'
++GLPK_LIB_DIR = ''
+
+ # Directory containing glpk.h (used only when BUILD_GLPK = 1).
+-GLPK_INC_DIR = '/usr/include'
++GLPK_INC_DIR = ''
+
+ # Set to 1 if you are installing the DSDP module.
+ BUILD_DSDP = 0
+
+ # Directory containing libdsdp (used only when BUILD_DSDP = 1).
+-DSDP_LIB_DIR = '/usr/lib'
++DSDP_LIB_DIR = ''
+
+ # Directory containing dsdp5.h (used only when BUILD_DSDP = 1).
+-DSDP_INC_DIR = '/usr/include/dsdp'
++DSDP_INC_DIR = ''
+
+ # No modifications should be needed below this line.
+
+@@ -61,39 +61,32 @@
+ # optional modules
+
+ if BUILD_GSL:
+- gsl = Extension('gsl', libraries = ['m', 'gsl'] + BLAS_LIB,
+- include_dirs = [ GSL_INC_DIR ],
+- library_dirs = [ GSL_LIB_DIR, BLAS_LIB_DIR ],
+- extra_link_args = BLAS_EXTRA_LINK_ARGS,
++ gsl = Extension('gsl', libraries = ['gsl'],
++ library_dirs = [ GSL_LIB_DIR ],
+ sources = ['src/C/gsl.c'] )
+ extmods += [gsl];
+
+ if BUILD_FFTW:
+- fftw = Extension('fftw', libraries = ['fftw3'] + BLAS_LIB,
+- include_dirs = [ FFTW_INC_DIR ],
+- library_dirs = [ FFTW_LIB_DIR, BLAS_LIB_DIR ],
+- extra_link_args = BLAS_EXTRA_LINK_ARGS,
++ fftw = Extension('fftw', libraries = ['fftw3'],
++ library_dirs = [ FFTW_LIB_DIR ],
+ sources = ['src/C/fftw.c'] )
+ extmods += [fftw];
+
+ if BUILD_GLPK:
+ glpk = Extension('glpk', libraries = ['glpk'],
+- include_dirs = [ GLPK_INC_DIR ],
+ library_dirs = [ GLPK_LIB_DIR ],
+ sources = ['src/C/glpk.c'] )
+ extmods += [glpk];
+
+ if BUILD_DSDP:
+- dsdp = Extension('dsdp', libraries = ['dsdp'] + LAPACK_LIB + BLAS_LIB,
+- include_dirs = [ DSDP_INC_DIR ],
+- library_dirs = [ DSDP_LIB_DIR, BLAS_LIB_DIR ],
+- extra_link_args = BLAS_EXTRA_LINK_ARGS,
++ dsdp = Extension('dsdp', libraries = ['dsdp'],
++ library_dirs = [ DSDP_LIB_DIR ],
+ sources = ['src/C/dsdp.c'] )
+ extmods += [dsdp];
+
+ # Required modules
+
+-base = Extension('base', libraries = ['m'] + LAPACK_LIB + BLAS_LIB,
++base = Extension('base', libraries = ['m'] + LAPACK_LIB,
+ library_dirs = [ BLAS_LIB_DIR ],
+ define_macros = MACROS,
+ extra_link_args = BLAS_EXTRA_LINK_ARGS,
+@@ -105,61 +98,36 @@
+ extra_link_args = BLAS_EXTRA_LINK_ARGS,
+ sources = ['src/C/blas.c'] )
+
+-lapack = Extension('lapack', libraries = LAPACK_LIB + BLAS_LIB,
++lapack = Extension('lapack', libraries = LAPACK_LIB,
+ library_dirs = [ BLAS_LIB_DIR ],
+ define_macros = MACROS,
+ extra_link_args = BLAS_EXTRA_LINK_ARGS,
+ sources = ['src/C/lapack.c'] )
+
+ umfpack = Extension('umfpack',
+- include_dirs = [ 'src/C/SuiteSparse/UMFPACK/Include',
+- 'src/C/SuiteSparse/AMD/Include',
+- 'src/C/SuiteSparse/AMD/Source',
+- 'src/C/SuiteSparse/SuiteSparse_config' ],
+ library_dirs = [ BLAS_LIB_DIR ],
+ define_macros = MACROS + [('NTIMER', '1'), ('NCHOLMOD', '1')],
+- libraries = LAPACK_LIB + BLAS_LIB,
++ libraries = [ 'umfpack' ],
+ extra_compile_args = ['-Wno-unknown-pragmas'],
+- extra_link_args = BLAS_EXTRA_LINK_ARGS,
+- sources = [ 'src/C/umfpack.c',
+- 'src/C/SuiteSparse/UMFPACK/Source/umfpack_global.c',
+- 'src/C/SuiteSparse/UMFPACK/Source/umfpack_tictoc.c' ] +
+- ['src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c'] +
+- glob('src/C/SuiteSparse_cvxopt_extra/umfpack/*'))
++ sources = [ 'src/C/umfpack.c' ])
+
+ # Build for int or long?
+ import sys
+ if sys.maxsize > 2**31: MACROS += [('DLONG',None)]
+
+ cholmod = Extension('cholmod',
+- library_dirs = [ BLAS_LIB_DIR ],
+- libraries = LAPACK_LIB + BLAS_LIB,
+- include_dirs = [ 'src/C/SuiteSparse/CHOLMOD/Include',
+- 'src/C/SuiteSparse/COLAMD',
+- 'src/C/SuiteSparse/AMD/Include',
+- 'src/C/SuiteSparse/COLAMD/Include',
+- 'src/C/SuiteSparse/SuiteSparse_config' ],
+- define_macros = MACROS + [('NPARTITION', '1'), ('NTIMER', '1')],
+- extra_link_args = BLAS_EXTRA_LINK_ARGS,
+- sources = [ 'src/C/cholmod.c' ] +
+- ['src/C/SuiteSparse/AMD/Source/' + s for s in ['amd_global.c',
+- 'amd_postorder.c', 'amd_post_tree.c', 'amd_2.c']] +
+- ['src/C/SuiteSparse/COLAMD/Source/' + s for s in ['colamd.c',
+- 'colamd_global.c']] +
+- ['src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c'] +
+- glob('src/C/SuiteSparse/CHOLMOD/Core/c*.c') +
+- glob('src/C/SuiteSparse/CHOLMOD/Cholesky/c*.c') +
+- ['src/C/SuiteSparse/CHOLMOD/Check/cholmod_check.c'] +
+- glob('src/C/SuiteSparse/CHOLMOD/Supernodal/c*.c') )
++ library_dirs = [ BLAS_LIB_DIR ],
++ libraries = ['cholmod'] + BLAS_LIB,
++ define_macros = MACROS + [('NPARTITION', '1'), ('NTIMER', '1')],
++ sources = [ 'src/C/cholmod.c' ])
+
+ amd = Extension('amd',
+- include_dirs = [ 'src/C/SuiteSparse/AMD/Include',
+- 'src/C/SuiteSparse/SuiteSparse_config' ],
+ define_macros = MACROS,
+- sources = [ 'src/C/amd.c' ] + glob('src/C/SuiteSparse/AMD/Source/*.c') )
++ libraries = ['amd'],
++ sources = [ 'src/C/amd.c' ])
+
+ misc_solvers = Extension('misc_solvers',
+- libraries = LAPACK_LIB + BLAS_LIB,
++ libraries = LAPACK_LIB,
+ library_dirs = [ BLAS_LIB_DIR ],
+ define_macros = MACROS,
+ extra_link_args = BLAS_EXTRA_LINK_ARGS,
diff --git a/dev-python/cvxopt/metadata.xml b/dev-python/cvxopt/metadata.xml
new file mode 100644
index 00000000000..9202e558f39
--- /dev/null
+++ b/dev-python/cvxopt/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-mathematics</herd>
+ <longdescription lang="en">
+ CVXOPT is a software for convex optimization based on
+ the Python programming language. Its main purpose is to make the
+ development of software for convex optimization applications
+ straightforward.
+</longdescription>
+ <use>
+ <flag name="dsdp">Use interior point library
+ <pkg>sci-libs/dsdp</pkg></flag>
+ <flag name="glpk">Use GNU Linear Programming Kit
+ <pkg>sci-mathematics/glpk</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="github">cvxopt/cvxopt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cx_Freeze/Manifest b/dev-python/cx_Freeze/Manifest
new file mode 100644
index 00000000000..894f6219fde
--- /dev/null
+++ b/dev-python/cx_Freeze/Manifest
@@ -0,0 +1,3 @@
+DIST cx_Freeze-4.3.1.tar.gz 53441 SHA256 11f8818ab4e1754c81c1226ce3430f29e6ba231a22a153ce3794a5cc464fa11b SHA512 3fbd179e6b0dcdc926c8827745dfe52df01c0ba1a36f5ae01240d977a251517ce9dba6b6f276a2a292f4a0bd91e923899da1bbd08671cee687a912980481e9e9 WHIRLPOOL dcbc2d29eafd4e3f4361da7a6501fa929bd1bd66b0f29b0d9cd717609b30150ea43387468565d41e663d1f8425f7889122da929c8b160473cb0580d2630e02a5
+DIST cx_Freeze-4.3.2.tar.gz 55816 SHA256 d634aae1e1d20b660d24245450b8a5ea3ad9c443cd735d8fbe17c1d93b8b23df SHA512 2ff4d695ac5ff23b68d0ee32c94948beef7c6be9a2b606e43c77bf954fe96c0dba6fa5186e3995c2937c6b5862fb3b0dd3e21c518626c1905a13b6d0abdcd3ec WHIRLPOOL e3ee3cc1b893f18b3afea645bdb7d5c72d5363380aa18a2416d2693c9f185a57442083f4bf19760ffdf7fe8e587ab835c2dbe56ed713c3bf59679a0d92bb1fca
+DIST cx_Freeze-4.3.3.tar.gz 58975 SHA256 eaac9ab61117c64371384766e0b9c6603d3bdb23cf306b257f31b8a3a5740729 SHA512 a707d5acca4a01a762d6ba9fde35e47405c03d769c15bf828bfa16bacb48f41c75f28d08cefb7e1825e2b9c85fae46f7728ecd9d095a11e2740286cc2d798d52 WHIRLPOOL 9a5623705842c08b7e9efb67829abac164224170f513c8f021e9f6da36c83a9faf966e763dc2fe8ad8e4c2622cbbcfa9ce0f370cd01735741e3807b113b1520a
diff --git a/dev-python/cx_Freeze/cx_Freeze-4.3.1-r2.ebuild b/dev-python/cx_Freeze/cx_Freeze-4.3.1-r2.ebuild
new file mode 100644
index 00000000000..5635f916386
--- /dev/null
+++ b/dev-python/cx_Freeze/cx_Freeze-4.3.1-r2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+inherit distutils-r1
+
+DESCRIPTION="Create standalone executables from Python scripts"
+HOMEPAGE="http://cx-freeze.sourceforge.net"
+SRC_URI="mirror://sourceforge/cx-freeze/${P}.tar.gz"
+
+LICENSE="PYTHON"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DOCS=( README.txt )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.3.2-buildsystem.patch" # bug #491602
+)
diff --git a/dev-python/cx_Freeze/cx_Freeze-4.3.2.ebuild b/dev-python/cx_Freeze/cx_Freeze-4.3.2.ebuild
new file mode 100644
index 00000000000..effe661d5af
--- /dev/null
+++ b/dev-python/cx_Freeze/cx_Freeze-4.3.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+inherit distutils-r1
+
+DESCRIPTION="Create standalone executables from Python scripts"
+HOMEPAGE="http://cx-freeze.sourceforge.net"
+SRC_URI="mirror://sourceforge/cx-freeze/${P}.tar.gz"
+
+LICENSE="PYTHON"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DOCS=( README.txt )
+
+PATCHES=(
+ "${FILESDIR}/${P}-buildsystem.patch" # bug #491602
+)
diff --git a/dev-python/cx_Freeze/cx_Freeze-4.3.3.ebuild b/dev-python/cx_Freeze/cx_Freeze-4.3.3.ebuild
new file mode 100644
index 00000000000..8f62d8769d0
--- /dev/null
+++ b/dev-python/cx_Freeze/cx_Freeze-4.3.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Create standalone executables from Python scripts"
+HOMEPAGE="http://cx-freeze.sourceforge.net"
+SRC_URI="mirror://sourceforge/cx-freeze/${P}.tar.gz"
+
+LICENSE="PYTHON"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.3.2-buildsystem.patch" # bug #491602
+)
+# test folder missing half the source content.
diff --git a/dev-python/cx_Freeze/files/cx_Freeze-4.3.2-buildsystem.patch b/dev-python/cx_Freeze/files/cx_Freeze-4.3.2-buildsystem.patch
new file mode 100644
index 00000000000..288443bba49
--- /dev/null
+++ b/dev-python/cx_Freeze/files/cx_Freeze-4.3.2-buildsystem.patch
@@ -0,0 +1,31 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Tue Nov 19 11:20:21 UTC 2013
+
+Respect LDFLAGS, remove stripping.
+Fixes Gentoo bug #491602
+
+--- a/cx_Freeze-4.3.2/setup.py
++++ b/cx_Freeze-4.3.2/setup.py
+@@ -78,11 +78,12 @@
+ extraArgs = ext.extra_link_args or []
+ if sys.platform != "win32":
+ vars = distutils.sysconfig.get_config_vars()
++ if vars["LINKFORSHARED"] and sys.platform != "darwin":
++ vars["LINKFORSHARED"] = vars["LINKFORSHARED"] + " " + os.environ["LDFLAGS"]
++ extraArgs.extend(vars["LINKFORSHARED"].split())
+ if not vars.get("Py_ENABLE_SHARED", 0):
+ libraryDirs.append(vars["LIBPL"])
+ libraries.append("python%s.%s" % sys.version_info[:2])
+- if vars["LINKFORSHARED"] and sys.platform != "darwin":
+- extraArgs.extend(vars["LINKFORSHARED"].split())
+ if vars["LIBS"]:
+ extraArgs.extend(vars["LIBS"].split())
+ if vars["LIBM"]:
+@@ -91,7 +92,6 @@
+ extraArgs.extend(vars["BASEMODLIBS"].split())
+ if vars["LOCALMODLIBS"]:
+ extraArgs.extend(vars["LOCALMODLIBS"].split())
+- extraArgs.append("-s")
+ elif ext.name.find("Win32GUI") > 0 \
+ and self.compiler.compiler_type == "mingw32":
+ extraArgs.append("-mwindows")
diff --git a/dev-python/cx_Freeze/metadata.xml b/dev-python/cx_Freeze/metadata.xml
new file mode 100644
index 00000000000..277c7f1ba6a
--- /dev/null
+++ b/dev-python/cx_Freeze/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">cx-freeze</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/cython/Manifest b/dev-python/cython/Manifest
new file mode 100644
index 00000000000..1b3ff65f3b7
--- /dev/null
+++ b/dev-python/cython/Manifest
@@ -0,0 +1,2 @@
+DIST Cython-0.22.1.tar.gz 1581021 SHA256 7fff120e65e7b66edb4a42823f5642bad3bc1e5601bf882d66aee50248cf0682 SHA512 96cfdcaa52b40cc1592e56429eefb3166280a1cecfb67e56b1cd3c4ecf9092bf7a85f340d87345f354f9ccce9e74fcb11b80251e74d10e85781fa371f3f58fef WHIRLPOOL 4de771f49897856a34bb4e5cf83156946e78390fec2c6e5f948e061187428b3dc706ffdfb699b67aa66551c040c65a80eb1a6efa95a9d3194a18ea7b90ccd6f7
+DIST Cython-0.22.tar.gz 1584483 SHA256 14307e7a69af9a0d0e0024d446af7e51cc0e3e4d0dfb10d36ba837e5e5844015 SHA512 856220fa579e272ac38dcef091760f527431ff3b98df9af6e68416fcf77d9659ac5abe5c7dee41331f359614637a4ff452033085335ee499830ed126ab584267 WHIRLPOOL d9919e1fe33f7ea02833c485e10667d8470d7c69901b2419c6c4c1d464f9ef2444795e14903cc66b6fee40ec5a4c20308c331ad93fd8818f207d0a21cccf9b2b
diff --git a/dev-python/cython/cython-0.22.1.ebuild b/dev-python/cython/cython-0.22.1.ebuild
new file mode 100644
index 00000000000..ad80457e8dd
--- /dev/null
+++ b/dev-python/cython/cython-0.22.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 flag-o-matic toolchain-funcs
+
+MY_PN="Cython"
+MY_P="${MY_PN}-${PV/_/}"
+
+DESCRIPTION="A Python to C compiler"
+HOMEPAGE="http://www.cython.org/ http://pypi.python.org/pypi/Cython"
+SRC_URI="http://www.cython.org/release/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+RDEPEND=""
+# On testing, setuptools invokes an error in running the testsuite cited in a number of recent bugs
+# spanning several packages. This bug has been fixed in the recent release of version 9.1
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-9.1[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/numpy[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_PN}-${PV%_*}"
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS}"
+ local CXXFLAGS="${CXXFLAGS}"
+ append-flags -fno-strict-aliasing
+ fi
+
+ # Python gets confused when it is in sys.path before build.
+ local PYTHONPATH=
+ export PYTHONPATH
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && unset XDG_CONFIG_HOME && emake -C docs html
+}
+
+python_test() {
+ tc-export CC
+ "${PYTHON}" runtests.py -vv --work-dir "${BUILD_DIR}"/tests \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGES.rst README.txt ToDo.txt USAGE.txt )
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( Demos/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cython/cython-0.22.ebuild b/dev-python/cython/cython-0.22.ebuild
new file mode 100644
index 00000000000..f149e18a328
--- /dev/null
+++ b/dev-python/cython/cython-0.22.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic toolchain-funcs
+
+MY_PN="Cython"
+MY_P="${MY_PN}-${PV/_/}"
+
+DESCRIPTION="A Python to C compiler"
+HOMEPAGE="http://www.cython.org/ http://pypi.python.org/pypi/Cython"
+SRC_URI="http://www.cython.org/release/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+RDEPEND=""
+# On testing, setuptools invokes an error in running the testsuite cited in a number of recent bugs
+# spanning several packages. This bug has been fixed in the recent release of version 9.1
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-9.1[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/numpy[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_PN}-${PV%_*}"
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS}"
+ local CXXFLAGS="${CXXFLAGS}"
+ append-flags -fno-strict-aliasing
+ fi
+
+ # Python gets confused when it is in sys.path before build.
+ local PYTHONPATH=
+ export PYTHONPATH
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && unset XDG_CONFIG_HOME && emake -C docs html
+}
+
+python_test() {
+ tc-export CC
+ "${PYTHON}" runtests.py -vv --work-dir "${BUILD_DIR}"/tests \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGES.rst README.txt ToDo.txt USAGE.txt )
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( Demos/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/cython/metadata.xml b/dev-python/cython/metadata.xml
new file mode 100644
index 00000000000..41e10f103ab
--- /dev/null
+++ b/dev-python/cython/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Cython is a language that makes writing C extensions for the Python
+ language as easy as Python itself. It's based on Pyrex, but supports
+ more cutting edge functionality and optimizations.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/cytoolz/Manifest b/dev-python/cytoolz/Manifest
new file mode 100644
index 00000000000..f2c258d24f7
--- /dev/null
+++ b/dev-python/cytoolz/Manifest
@@ -0,0 +1,3 @@
+DIST cytoolz-0.7.1.tar.gz 250988 SHA256 297b3cf8606afc3332e0d0b0da707b306f8cec6f8f9a962a04181caee9bbf27e SHA512 742acde6316d5fe0cda1cb7be86812ad79bad9b5402e3b7d3d29f22afce3222d14fa8fe5a41d9cb2f3a3745f6a7ca5db3395873a5dee3e55c661fc01bfa3b007 WHIRLPOOL a54572e85e160fb7dda5eeb3ef2e5c4aca9c4e5a390321112783cfad1e40100d37eb0d763d92d3335a4ffab50bb562ce7f8138b9bc4a5722ddbd115f625baad1
+DIST cytoolz-0.7.2.tar.gz 281930 SHA256 0800949df710aa487f52b1a9f97d8844e81e07067d6ec95581b1b792c098c159 SHA512 3423b25687b143e5c80bafbb20c1220f3030348844dc753c25e5aebd9ce0b0d3c571b386138c9f6d6546c22cd5a3f1ff73e0c2ae6ee5ad1f7607d90cc7e2da3c WHIRLPOOL bffb53e662aac32eacb7222103f79c89b8708628508e5fd6326a2bffbc30cd2a422b554c18acb537e7803cb80d1f9e6aee4501505f905358af9b19d4adf15ec1
+DIST cytoolz-0.7.3.tar.gz 304597 SHA256 202eb77cf2405c702c2172e5c2e66e3e2611f866640c99b38f24f96ad680dea8 SHA512 a9e83cb22b3b9af0c28754696c59a081e74e03b23f63eaf7bf31526d33b9d645bb82ec98e650e1a6c17d367951cbea6417c6b8c69ff3d80e2d45a8a44c97ed16 WHIRLPOOL fd16958c1158be3265c22a27d8c5a12510e20038cb846dac13ce6f24060096b64030bc4aea5f0c48bff6464b8fab048c3e3b0aef604e69693b38d5c9b7056051
diff --git a/dev-python/cytoolz/cytoolz-0.7.1.ebuild b/dev-python/cytoolz/cytoolz-0.7.1.ebuild
new file mode 100644
index 00000000000..bbd81d984d2
--- /dev/null
+++ b/dev-python/cytoolz/cytoolz-0.7.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Cython implementation of Toolz: High performance functional utilities"
+HOMEPAGE="https://pypi.python.org/pypi/cytoolz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/cython[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+ distutils-r1_python_compile
+}
diff --git a/dev-python/cytoolz/cytoolz-0.7.2-r2.ebuild b/dev-python/cytoolz/cytoolz-0.7.2-r2.ebuild
new file mode 100644
index 00000000000..eaa2e9af3bf
--- /dev/null
+++ b/dev-python/cytoolz/cytoolz-0.7.2-r2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Cython implementation of Toolz: High performance functional utilities"
+HOMEPAGE="https://pypi.python.org/pypi/cytoolz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# Informed by author the dep in toolz is not only required but the
+# tests are version sensitive.
+# https://github.com/pytoolz/cytoolz/issues/57
+RDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/toolz-0.7.1[${PYTHON_USEDEP}] )"
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib/ > /dev/null
+ PYTHONPATH=.:${PN} nosetests --with-doctest ${PN} || die "tests failed under ${EPYTHON}"
+ popd > /dev/null
+}
diff --git a/dev-python/cytoolz/cytoolz-0.7.3.ebuild b/dev-python/cytoolz/cytoolz-0.7.3.ebuild
new file mode 100644
index 00000000000..eaa2e9af3bf
--- /dev/null
+++ b/dev-python/cytoolz/cytoolz-0.7.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Cython implementation of Toolz: High performance functional utilities"
+HOMEPAGE="https://pypi.python.org/pypi/cytoolz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# Informed by author the dep in toolz is not only required but the
+# tests are version sensitive.
+# https://github.com/pytoolz/cytoolz/issues/57
+RDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/toolz-0.7.1[${PYTHON_USEDEP}] )"
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib/ > /dev/null
+ PYTHONPATH=.:${PN} nosetests --with-doctest ${PN} || die "tests failed under ${EPYTHON}"
+ popd > /dev/null
+}
diff --git a/dev-python/cytoolz/metadata.xml b/dev-python/cytoolz/metadata.xml
new file mode 100644
index 00000000000..99e0558beda
--- /dev/null
+++ b/dev-python/cytoolz/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cytoolz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/d2to1/Manifest b/dev-python/d2to1/Manifest
new file mode 100644
index 00000000000..72e6472cb96
--- /dev/null
+++ b/dev-python/d2to1/Manifest
@@ -0,0 +1,2 @@
+DIST d2to1-0.2.11.tar.gz 25237 SHA256 64097a1b9270458898a0047034e9ba422a6456f51771105f33edb6b38e19bfa8 SHA512 46a8b8b154b77bbef7bfeeeba1d6752899fad1b4cac8a6df699d42c848dcccc51e16db6429d171efd829fd051215f58fd9a5ec2edb62a06cf75f00ec5faac4da WHIRLPOOL 88d71211a96523002892f8aa03abfdfd33b6859480898d8f0b68af5f1386976aa5563fbb0e15dfe588dab37d216fa74c7d990cb9ea4b61b7f53a9b8f7f5b99fe
+DIST d2to1-0.2.12.tar.gz 35901 SHA256 d75c431beb8ed9d75af35093a88218fd5fc38944ddbebff6234bea0228af43d3 SHA512 a437d3652a63267470488de677e9d9e9844265480a8693f8b0163db8e1801f123888a14b78b0efb99c88598601cda5af7cfba993bd053c0683ed9ea22e8342a6 WHIRLPOOL d27067ce3e55ba7408c08717a4a7c13e2b0e1383a3529ea95b4faf8cab74aa787648192f51179ec3bb312c9159bc0bbc93ce2befeaa709e165550392ab07767e
diff --git a/dev-python/d2to1/d2to1-0.2.11.ebuild b/dev-python/d2to1/d2to1-0.2.11.ebuild
new file mode 100644
index 00000000000..ccf82401d9d
--- /dev/null
+++ b/dev-python/d2to1/d2to1-0.2.11.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Allows using distutils2-like setup.cfg files for a package metadata"
+HOMEPAGE="http://pypi.python.org/pypi/d2to1"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/d2to1/d2to1-0.2.12.ebuild b/dev-python/d2to1/d2to1-0.2.12.ebuild
new file mode 100644
index 00000000000..e1768efa21b
--- /dev/null
+++ b/dev-python/d2to1/d2to1-0.2.12.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Allows using distutils2-like setup.cfg files for a package metadata"
+HOMEPAGE="http://pypi.python.org/pypi/d2to1"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/d2to1/metadata.xml b/dev-python/d2to1/metadata.xml
new file mode 100644
index 00000000000..a328208040e
--- /dev/null
+++ b/dev-python/d2to1/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>d2to1 (the 'd' is for 'distutils') allows using distutils2-like
+ setup.cfg files for a package's metadata with a distribute/setuptools
+ setup.py script. It works by providing a distutils2-formatted setup.cfg
+ file containing all of a package's metadata, and a very minimal setup.py
+ which will slurp its arguments from the setup.cfg.</longdescription>
+ <upstream>
+ <remote-id type="pypi">d2to1</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dap/Manifest b/dev-python/dap/Manifest
new file mode 100644
index 00000000000..60a133ddfcc
--- /dev/null
+++ b/dev-python/dap/Manifest
@@ -0,0 +1 @@
+DIST dap-2.2.6.7.tar.gz 54055 SHA256 89601cb351681e7cdc621c2aa9d8788d180d2f16f6d341f55f513c489af8701a SHA512 8b9ee3fbbe15777f050f067be29a8d4e8e8b58aa8b430f69330da262593808838c8e0b3946a6f7932dc5d4d1b9dad12be73b98f82a6c399f7383f2630ad6ce47 WHIRLPOOL f5f055bfa3f303643ac0593a972b732f4b431284e8c959c49ca3e41182d3a8b0bfb844ba9471318308a54408fb08ee19525679c0d9460ce29753ecc616883894
diff --git a/dev-python/dap/dap-2.2.6.7-r1.ebuild b/dev-python/dap/dap-2.2.6.7-r1.ebuild
new file mode 100644
index 00000000000..9a98974ed06
--- /dev/null
+++ b/dev-python/dap/dap-2.2.6.7-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Data Access Protocol client and server"
+HOMEPAGE="http://pydap.org http://pypi.python.org/pypi/dap http://pypi.python.org/pypi/Pydap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="server"
+
+RDEPEND="dev-python/httplib2[${PYTHON_USEDEP}]
+ server? (
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/paste[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/pastescript[${PYTHON_USEDEP}]
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( docs/bugs docs/Changelog docs/history README TODO )
+
+src_prepare() {
+ sed -e "s/'dap.plugins'/'dap', 'dap.plugins'/" -i setup.py || die "sed failed"
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/dap/metadata.xml b/dev-python/dap/metadata.xml
new file mode 100644
index 00000000000..eb4573dd094
--- /dev/null
+++ b/dev-python/dap/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-geosciences</herd>
+ <herd>python</herd>
+ <use>
+ <flag name="server">Enable OpenDAP server support</flag>
+ </use>
+ <longdescription lang="en">pydap is a Python implementation of the Data Access Protocol
+ a.k.a. DODS or OPeNDAP. Using pydap as a client you can access
+ hundreds of scientific datasets. You can also use it to serve your
+ data from a variety of formats.</longdescription>
+ <upstream>
+ <remote-id type="pypi">dap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/datashape/Manifest b/dev-python/datashape/Manifest
new file mode 100644
index 00000000000..6ccd353f219
--- /dev/null
+++ b/dev-python/datashape/Manifest
@@ -0,0 +1,4 @@
+DIST datashape-0.4.2.tar.gz 79106 SHA256 56ca27c5eb090d3670d3f59d2cd4a9855c488495fd1888e6f723a21f42acfa32 SHA512 d12eecdce6ffeb77d9367fcf978c2cfddea3bd2daa53a2aea983464c41ff2a408f9d199462ed25eebf247f4bb0f9e827ac97a5acab19979a5d30789898441c49 WHIRLPOOL 5497a90258115e8db30414ab1bedbad88d38462e6606561c9be7645137557608ac12a384e93da08f3e2cb49c1ffbb5a3b5d33483376ee8f170cfe6af10a9dc32
+DIST datashape-0.4.4.tar.gz 80923 SHA256 c4142eadbdb986a350941e5427d35a2aa106934f9197e91ccb53809c4c79e394 SHA512 047127e070b1cbecd241a888a8b2d773ee149d05e08556644ae0add79f774be9795caab8b8c6de146dc9281ebfd93aadbcb54c2c08fc8fa7f1612834cecf9753 WHIRLPOOL 8294278a940f2a89e525e1133d5870c320b37d1cf1f48f24b267fa792c1599695e8b72cdda6a455500cd8d6d008d394791ba5ea71c7ff42d71da9059bcf47268
+DIST datashape-0.4.5.tar.gz 93549 SHA256 34d4922fa924ef474de2ef8b69833fe2d5da51703d74426f8c4354c9bb209d0f SHA512 f8fcaf923640e42d0ceb6cd607e89b74145443f33ec1d4c0018dc0093518d572ae890bf582487b0c2de6c9d793e96ebb7dc901a330150f2ef2f203b329db5968 WHIRLPOOL cb78a9fd8337d9047c473914f216a06ff3797cc3fc494982696ba8c379d3e50e7cc194f84557eada06fe8459d3711589ad6e1404eb2ae9e389e81e104d447ce0
+DIST datashape-0.4.6.tar.gz 94083 SHA256 872929d992929ee23ea939984d43d726458ddaa3367503bb4678edac81a4b854 SHA512 596b997ebf9f3b05d5c7d686514408630a987b5933ded24e5cfe1321ea32b1cb4b2f99b820c3e2ec608fdf5fcb1ec795f256bbc14c0ec2e6e8f21b61b083d696 WHIRLPOOL e85917492996b81d01f6c3c5577f5a446ce141c3518d332709a95d40584a77898b59264f3d03bd87a33d39df63854225020e604ca06341e090eeacd541a14047
diff --git a/dev-python/datashape/datashape-0.4.2.ebuild b/dev-python/datashape/datashape-0.4.2.ebuild
new file mode 100644
index 00000000000..e390a4bf85e
--- /dev/null
+++ b/dev-python/datashape/datashape-0.4.2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Language defining a data description protocol"
+HOMEPAGE="https://github.com/ContinuumIO/datashape"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/multipledispatch[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/'sphinx.ext.intersphinx', //" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/datashape/datashape-0.4.4.ebuild b/dev-python/datashape/datashape-0.4.4.ebuild
new file mode 100644
index 00000000000..e390a4bf85e
--- /dev/null
+++ b/dev-python/datashape/datashape-0.4.4.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Language defining a data description protocol"
+HOMEPAGE="https://github.com/ContinuumIO/datashape"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/multipledispatch[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/'sphinx.ext.intersphinx', //" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/datashape/datashape-0.4.5.ebuild b/dev-python/datashape/datashape-0.4.5.ebuild
new file mode 100644
index 00000000000..1b828232d29
--- /dev/null
+++ b/dev-python/datashape/datashape-0.4.5.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Language defining a data description protocol"
+HOMEPAGE="https://github.com/ContinuumIO/datashape"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/multipledispatch-0.4.7[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/'sphinx.ext.intersphinx', //" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/datashape/datashape-0.4.6.ebuild b/dev-python/datashape/datashape-0.4.6.ebuild
new file mode 100644
index 00000000000..1b828232d29
--- /dev/null
+++ b/dev-python/datashape/datashape-0.4.6.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Language defining a data description protocol"
+HOMEPAGE="https://github.com/ContinuumIO/datashape"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/multipledispatch-0.4.7[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/'sphinx.ext.intersphinx', //" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/datashape/metadata.xml b/dev-python/datashape/metadata.xml
new file mode 100644
index 00000000000..8731be10d26
--- /dev/null
+++ b/dev-python/datashape/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ DataShape is a language for describing data. It is an extension of
+ the NumPy dtype with an emphasis on cross language support.
+</longdescription>
+ <upstream>
+ <remote-id type="github">ContinuumIO/datashape</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dbus-python/Manifest b/dev-python/dbus-python/Manifest
new file mode 100644
index 00000000000..67bd685a80d
--- /dev/null
+++ b/dev-python/dbus-python/Manifest
@@ -0,0 +1 @@
+DIST dbus-python-1.2.0.tar.gz 602426 SHA256 e12c6c8b2bf3a9302f75166952cbe41d6b38c3441bbc6767dbd498942316c6df SHA512 013b23e08fa1ed43f53a756587fefbc9770f7c51e93510e555acbd77230b7200693419bba9a69680d790bbaf123f4a195afa38b3eee1143da950fee0b5130bce WHIRLPOOL 2b505646c21afd6238f32cda7aaf5f4b770d3c82b0d5c2c254f044729d6e06d3eab89cf816dbd22e96b8d8e1550297521dcb49fc90bb4825fdafd12d5beba5ee
diff --git a/dev-python/dbus-python/dbus-python-1.2.0-r1.ebuild b/dev-python/dbus-python/dbus-python-1.2.0-r1.ebuild
new file mode 100644
index 00000000000..8b025358fb7
--- /dev/null
+++ b/dev-python/dbus-python/dbus-python-1.2.0-r1.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit autotools eutils python-r1
+
+DESCRIPTION="Python bindings for the D-Bus messagebus"
+HOMEPAGE="http://www.freedesktop.org/wiki/Software/DBusBindings http://dbus.freedesktop.org/doc/dbus-python/"
+SRC_URI="http://dbus.freedesktop.org/releases/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~m68k-mint"
+IUSE="doc examples test"
+# API docs generated with epydoc, which is python2-only
+REQUIRED_USE="doc? ( python_targets_python2_7 )"
+
+RDEPEND=">=dev-libs/dbus-glib-0.100:=
+ >=sys-apps/dbus-1.6:=
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ dev-python/docutils[python_targets_python2_7?]
+ =dev-python/epydoc-3*[python_targets_python2_7?] )
+ test? ( dev-python/pygobject:3[${PYTHON_USEDEP}] )"
+
+src_prepare() {
+ # Update py-compile, bug 529502.
+ eautoreconf
+ python_copy_sources
+}
+
+src_configure() {
+ configuring() {
+ # epydoc is python2-only, bug #447642
+ local apidocs=--disable-api-docs
+ [[ ${EPYTHON/.*} = "python2" ]] && apidocs=$(use_enable doc api-docs)
+
+ econf \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ --disable-html-docs \
+ ${apidocs} \
+ PYTHON_LIBS="$(python-config --ldflags)"
+ # configure assumes that ${PYTHON}-config executable exists :/
+ }
+ python_foreach_impl run_in_build_dir configuring
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installing() {
+ default
+ [[ ${EPYTHON/.*} = "python2" ]] && use doc && dohtml -r api/*
+ }
+ python_foreach_impl run_in_build_dir installing
+ prune_libtool_files --modules
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/dbus-python/metadata.xml b/dev-python/dbus-python/metadata.xml
new file mode 100644
index 00000000000..1f701e5bb78
--- /dev/null
+++ b/dev-python/dbus-python/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>freedesktop</herd>
+ <maintainer>
+ <email>freedesktop-bugs@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/dbutils/Manifest b/dev-python/dbutils/Manifest
new file mode 100644
index 00000000000..d3655679a06
--- /dev/null
+++ b/dev-python/dbutils/Manifest
@@ -0,0 +1 @@
+DIST DBUtils-1.1.tar.gz 109943 SHA256 d62d1abaafdbd9245a53e9c901f4162125d0258ef8a489233dba4689cea0bff7 SHA512 34e2dd85e94bbf13804deb7a40707ed2d83174758af7282702e1614d34924a6ae085bca620da0233bfd8972a00332c022fe764e6e5efa642c3365879cdedf88e WHIRLPOOL d1ae1126c00acef91fbd01b6048adac5f81bec07ca523ef73684fcc0879e5b90e42d74c4e901eb65166cad4767f9d6c97ceca0434b971bd6606e62a2f2d0e818
diff --git a/dev-python/dbutils/dbutils-1.1-r1.ebuild b/dev-python/dbutils/dbutils-1.1-r1.ebuild
new file mode 100644
index 00000000000..eb0d95ab009
--- /dev/null
+++ b/dev-python/dbutils/dbutils-1.1-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="DBUtils"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Database connections for multi-threaded environments"
+HOMEPAGE="http://www.webwareforpython.org/DBUtils http://pypi.python.org/pypi/DBUtils"
+SRC_URI="http://www.webwareforpython.org/downloads/DBUtils/${MY_P}.tar.gz"
+
+LICENSE="OSL-2.0"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -i -e "s/, 'DBUtils.Tests'//" \
+ -e "s/, 'DBUtils.Examples'//" \
+ -e "/package_data=/d" \
+ setup.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests -s ${MY_PN}/Tests
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${S}/${MY_PN}"/Docs/. )
+ use examples && local EXAMPLES=( "${MY_PN}"/Examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dbutils/metadata.xml b/dev-python/dbutils/metadata.xml
new file mode 100644
index 00000000000..acf9520461d
--- /dev/null
+++ b/dev-python/dbutils/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<maintainer>
+<email>robbat2@gentoo.org</email>
+<name>Robin H. Johnson</name>
+</maintainer>
+<longdescription lang="en">
+DBUtils is a suite of tools providing solid, persistent and pooled connections
+to a database that can be used in all kinds of multi-threaded environments
+like Webware for Python or other web application servers. The suite supports
+DB-API 2 compliant database interfaces and the classic PyGreSQL interface.
+</longdescription>
+</pkgmetadata>
+
diff --git a/dev-python/ddt/Manifest b/dev-python/ddt/Manifest
new file mode 100644
index 00000000000..ce34b0340ed
--- /dev/null
+++ b/dev-python/ddt/Manifest
@@ -0,0 +1 @@
+DIST ddt-1.0.0.tar.gz 5535 SHA256 e24ecb7e2cf0bf43fa9d4255d3ae2bd0b7ce30b1d1b89ace7aa68aca1152f37a SHA512 4afec9fca19479acefb4f01bd550d696f437e53bf8e63cbb9dc16aa0b7f6c0214f5c7dc8118044b2d6e794de54ce3bac539f8de58202df74619eee1d8c7f85c1 WHIRLPOOL 0c6d54566147ce9fe9d2a0a3004f1bc053854b97048264442573102494fd8185f4d0f60127ca576b3a066d25756902538400944620745144e6042d4c72c25e71
diff --git a/dev-python/ddt/ddt-1.0.0.ebuild b/dev-python/ddt/ddt-1.0.0.ebuild
new file mode 100644
index 00000000000..bf447015b8c
--- /dev/null
+++ b/dev-python/ddt/ddt-1.0.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to multiply test cases"
+HOMEPAGE="http://pypi.python.org/pypi/ddt https://github.com/txels/ddt"
+SRC_URI="mirror://pypi/d/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ddt/metadata.xml b/dev-python/ddt/metadata.xml
new file mode 100644
index 00000000000..a3ec71bb61c
--- /dev/null
+++ b/dev-python/ddt/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+Data-Driven/Decorated Tests - long_description='A library to multiply test cases
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">ddt</remote-id>
+ <remote-id type="github">txels/ddt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/decorator/Manifest b/dev-python/decorator/Manifest
new file mode 100644
index 00000000000..d1715c3ce03
--- /dev/null
+++ b/dev-python/decorator/Manifest
@@ -0,0 +1,3 @@
+DIST decorator-3.4.0.tar.gz 30333 SHA256 c20b404cbb7ee5cebd506688e0114e3cd76f5ce233805a51f36e1a7988d9d783 SHA512 94ae8ff3bf694b72ad85a04d02ed9b58c42d50341fbc7307a12fc5abcb8042d8f67df80b53e63afd4b692c52fbefec83b80b591cba036deee21e281a5e8ff249 WHIRLPOOL 05b1c59e23ca3ca38cf06a08ae7ef253779c18050445f37a7f926e69456979ab539966e1821a0bd97b63aeef343a89a681a01d0da54182992cdc769c1cdda5b4
+DIST decorator-3.4.2.tar.gz 6115 SHA256 7320002ce61dea6aa24adc945d9d7831b3669553158905cdd12f5d0027b54b44 SHA512 48e5c65ba4243310267e4a75660a55091d5d354e35f31c3c37d886bdf2f8bf915b54d829b9a0a8affe35920e1c981c41a06bcac0eaa8930b47a6ed1c68a71566 WHIRLPOOL 51b7afd6e91967783ffccab73b9a26fb53e103da5e9116621268828874bd6ace55c37f6ba5881bbdfd3593d017b5eaa42c9017c0cbaa88360af69a2368b7eef7
+DIST decorator-4.0.2.tar.gz 64850 SHA256 1a089279d5de2471c47624d4463f2e5b3fc6a2cf65045c39bf714fc461a25206 SHA512 9f135c9c624557a90619e46002f12d54f8c53045420f524bbc52dee0b488268501467b207ea8f4445a8aa7d119af3e615cd76cbc25c1d1335d3bb581a1045ab3 WHIRLPOOL 1a4a31fe67d4cdfc58cb5486f83ee059a9211af5c5e48d57c9b22a24e08e5659a2e8b4519ecaba68fa603ef6e5a0756f69ee10fbe173d07ffe23204b579f2f18
diff --git a/dev-python/decorator/decorator-3.4.0-r1.ebuild b/dev-python/decorator/decorator-3.4.0-r1.ebuild
new file mode 100644
index 00000000000..f007a316aed
--- /dev/null
+++ b/dev-python/decorator/decorator-3.4.0-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simplifies the usage of decorators for the average programmer"
+HOMEPAGE="http://pypi.python.org/pypi/decorator http://code.google.com/p/micheles/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}"/${P}-test-failure-exit.patch
+)
+
+python_test() {
+ local t=documentation.py
+ [[ ${EPYTHON} == python3* ]] && t=documentation3.py
+
+ "${PYTHON}" ${t} || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/decorator/decorator-3.4.2.ebuild b/dev-python/decorator/decorator-3.4.2.ebuild
new file mode 100644
index 00000000000..81a946181b7
--- /dev/null
+++ b/dev-python/decorator/decorator-3.4.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simplifies the usage of decorators for the average programmer"
+HOMEPAGE="http://pypi.python.org/pypi/decorator http://code.google.com/p/micheles/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+# This release is missing no less than 8 files
+
+#python_test() {
+# local t=documentation.py
+# python_is_python3 && t=documentation3.py
+#
+# "${PYTHON}" ${t} || die "Tests fail with ${EPYTHON}"
+#}
diff --git a/dev-python/decorator/decorator-4.0.2.ebuild b/dev-python/decorator/decorator-4.0.2.ebuild
new file mode 100644
index 00000000000..3fafdcc465a
--- /dev/null
+++ b/dev-python/decorator/decorator-4.0.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simplifies the usage of decorators for the average programmer"
+HOMEPAGE="http://pypi.python.org/pypi/decorator http://code.google.com/p/micheles/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( docs/README.rst )
+
+python_test() {
+ "${PYTHON}" src/tests/test.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && dodoc documentation.pdf
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/decorator/files/decorator-3.4.0-test-failure-exit.patch b/dev-python/decorator/files/decorator-3.4.0-test-failure-exit.patch
new file mode 100644
index 00000000000..4126e2bdced
--- /dev/null
+++ b/dev-python/decorator/files/decorator-3.4.0-test-failure-exit.patch
@@ -0,0 +1,35 @@
+From fb1fc865000c92fc431a04d54116001c35ec0cdd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
+Date: Fri, 21 Dec 2012 00:29:53 +0100
+Subject: [PATCH] Exit with failure when doctests fail.
+
+---
+ documentation.py | 3 ++-
+ documentation3.py | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/documentation.py b/documentation.py
+index 3d5a5c0..0ddd681 100644
+--- a/documentation.py
++++ b/documentation.py
+@@ -1131,4 +1131,5 @@ def hello(user):
+ print('hello %s' % user)
+
+ if __name__ == '__main__':
+- import doctest; doctest.testmod()
++ import doctest
++ sys.exit(0 if doctest.testmod()[0] == 0 else 1)
+diff --git a/documentation3.py b/documentation3.py
+index bd86cc6..4162d56 100644
+--- a/documentation3.py
++++ b/documentation3.py
+@@ -1167,4 +1167,5 @@ def hello(user):
+ print('hello %s' % user)
+
+ if __name__ == '__main__':
+- import doctest; doctest.testmod()
++ import doctest
++ sys.exit(0 if doctest.testmod()[0] == 0 else 1)
+--
+1.8.0.2
+
diff --git a/dev-python/decorator/metadata.xml b/dev-python/decorator/metadata.xml
new file mode 100644
index 00000000000..cc991ffb909
--- /dev/null
+++ b/dev-python/decorator/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">The aim of the decorator python module is to simplify the usage of
+ decorators for the average programmer and to popularize
+ decorators usage giving examples of useful decorators, such as
+ memoize, tracing, redirecting_stdout, locked, etc.</longdescription>
+ <upstream>
+ <remote-id type="pypi">decorator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/decoratortools/Manifest b/dev-python/decoratortools/Manifest
new file mode 100644
index 00000000000..a7b4969ad99
--- /dev/null
+++ b/dev-python/decoratortools/Manifest
@@ -0,0 +1 @@
+DIST DecoratorTools-1.8.zip 29566 SHA256 da73f03a9fab80a205c8febcecee83f8a989eab8ce81affd7989210e4a3d9ea8 SHA512 b107b61d76c1c41ebe4f663d42fff3ecf184364fa46c234a8ad9df0d626bdd113c7527c6e1d97fc2d38c0fc76ff43dbe0190fc1297240c44d9ba490b11f6fa51 WHIRLPOOL efc61d822b3c8862fa2a927284e01b7c7e5d739afc576bc2bcca03f504b65d33119ba525de25f42d951291fc55279061998c8b9bca876185afdd88a2bbff42fb
diff --git a/dev-python/decoratortools/decoratortools-1.8-r1.ebuild b/dev-python/decoratortools/decoratortools-1.8-r1.ebuild
new file mode 100644
index 00000000000..af03a1de35e
--- /dev/null
+++ b/dev-python/decoratortools/decoratortools-1.8-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="DecoratorTools"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Class, function, and metaclass decorators"
+HOMEPAGE="http://pypi.python.org/pypi/DecoratorTools"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="|| ( PSF-2 ZPL )"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable tests broken with named tuples.
+ sed -e "s/additional_tests/_&/" -i test_decorators.py || die "sed failed"
+}
+
+python_test() {
+ esetup.py test && einfo "Tests passed under ${EPYTHON}" || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/decoratortools/metadata.xml b/dev-python/decoratortools/metadata.xml
new file mode 100644
index 00000000000..56f3768c360
--- /dev/null
+++ b/dev-python/decoratortools/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Use class and function decorators - even in Python 2.3 - now with source debugging for generated code.</longdescription>
+ <upstream>
+ <remote-id type="pypi">DecoratorTools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/deform/Manifest b/dev-python/deform/Manifest
new file mode 100644
index 00000000000..41580168f61
--- /dev/null
+++ b/dev-python/deform/Manifest
@@ -0,0 +1,2 @@
+DIST deform-0.9.8.tar.gz 1336542 SHA256 fd4a4f216d939423a4fe5ef86ec9523b0f5f048cc37a7c9beed3d8316a06a094 SHA512 561fb7bdeefa848c2eeac3a36a13116409be0b9c90ef515fc9a3ac8f31e071767a155734a104ac261794caf35d0aacd434f243f19ffe4321fdabac3d9ccec789 WHIRLPOOL 4fd24743b0b01a279a193b6b24a4743d03c2bf7fa272f58953343e497f35fd1c835f3e0c9fd53ec9bdfdbe239d754ca927458b16696acc1b79c06c0fcc6f295e
+DIST deform-0.9.9.tar.gz 1336829 SHA256 a0ddbeba3ed5f4b061a2c83423e00a421003600868d71021816897dfa1d4b77a SHA512 f0f615415696adba8add8f37c7ab8b8d213ec6d1eb68e2322961cef46df9e381b2368515b524d71eed110a33aa8a7f0aee8302e39b4d6a8871a0eb78108aca11 WHIRLPOOL fa3a2462ae3f9d5ec81305c15efb2ceca0335dde12f3ef801933caf306dcfd3c95d989f2c61e940a757b9a029e5a090fa05435b24b5d18b3665bdbfc6975c602
diff --git a/dev-python/deform/deform-0.9.8.ebuild b/dev-python/deform/deform-0.9.8.ebuild
new file mode 100644
index 00000000000..d612d9b5959
--- /dev/null
+++ b/dev-python/deform/deform-0.9.8.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Another form generation library"
+HOMEPAGE="http://docs.pylonsproject.org/projects/deform/en/latest/ http://pypi.python.org/pypi/deform https://github.com/Pylons/deform"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+# tests require zope.deprecation
+RESTRICT="test"
+
+RDEPEND=">=dev-python/translationstring-1.1[${PYTHON_USEDEP}]
+ >=dev-python/colander-1.0_alpha1[${PYTHON_USEDEP}]
+ >=dev-python/peppercorn-0.4[${PYTHON_USEDEP}]
+ >=dev-python/chameleon-1.2.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/beautifulsoup:4[${PYTHON_USEDEP}] )"
+
+# Include COPYRIGHT.txt because the license seems to require it.
+DOCS=( CHANGES.txt COPYRIGHT.txt README.txt )
+
+src_install() {
+ distutils-r1_src_install
+
+ # Install only the .rst source, as sphinx processing requires
+ # a theme only available from git that contains hardcoded
+ # references to files on https://static.pylonsproject.org/ (so
+ # the docs would not actually work offline). Install the
+ # source, which is somewhat readable.
+ docinto docs
+ dodoc docs/*.rst || die
+}
diff --git a/dev-python/deform/deform-0.9.9.ebuild b/dev-python/deform/deform-0.9.9.ebuild
new file mode 100644
index 00000000000..406b8a4cf99
--- /dev/null
+++ b/dev-python/deform/deform-0.9.9.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Another form generation library"
+HOMEPAGE="http://docs.pylonsproject.org/projects/deform/en/latest/ http://pypi.python.org/pypi/deform https://github.com/Pylons/deform"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+# tests require zope.deprecation
+RESTRICT="test"
+
+RDEPEND=">=dev-python/translationstring-1.1[${PYTHON_USEDEP}]
+ >=dev-python/colander-1.0_alpha1[${PYTHON_USEDEP}]
+ >=dev-python/peppercorn-0.4[${PYTHON_USEDEP}]
+ >=dev-python/chameleon-1.2.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/beautifulsoup:4[${PYTHON_USEDEP}] )"
+
+# Include COPYRIGHT.txt because the license seems to require it.
+DOCS=( CHANGES.txt COPYRIGHT.txt README.txt )
+
+src_install() {
+ distutils-r1_src_install
+
+ # Install only the .rst source, as sphinx processing requires
+ # a theme only available from git that contains hardcoded
+ # references to files on https://static.pylonsproject.org/ (so
+ # the docs would not actually work offline). Install the
+ # source, which is somewhat readable.
+ docinto docs
+ dodoc docs/*.rst || die
+}
diff --git a/dev-python/deform/metadata.xml b/dev-python/deform/metadata.xml
new file mode 100644
index 00000000000..7751d9e184f
--- /dev/null
+++ b/dev-python/deform/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">deform</remote-id>
+ <remote-id type="github">Pylons/deform</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/defusedxml/Manifest b/dev-python/defusedxml/Manifest
new file mode 100644
index 00000000000..ed7fd2fae28
--- /dev/null
+++ b/dev-python/defusedxml/Manifest
@@ -0,0 +1 @@
+DIST defusedxml-0.4.1.tar.gz 48889 SHA256 cd551d5a518b745407635bb85116eb813818ecaf182e773c35b36239fc3f2478 SHA512 78a7a1f3d1eed9d7cda00afaaccf8153c7f616303c53d3918341d75970d532932b04effcfc8b1b8ed88ba6d730cb56400e9e4ecee8aa7d2181c7577f1d535783 WHIRLPOOL 9f3f51af296e3fd16b2cd94029481fbabb687c986f39810dcba331c9d3e5e30e0b294f9f1f5ce031ea28053f33be1a13e89d65ef7d0c6a3333e81dc764868d7e
diff --git a/dev-python/defusedxml/defusedxml-0.4.1-r1.ebuild b/dev-python/defusedxml/defusedxml-0.4.1-r1.ebuild
new file mode 100644
index 00000000000..44a9452cb39
--- /dev/null
+++ b/dev-python/defusedxml/defusedxml-0.4.1-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="XML bomb protection for Python stdlib modules, an xml serialiser"
+HOMEPAGE="https://bitbucket.org/tiran/defusedxml"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="alpha amd64 arm hppa ~ppc64 x86"
+IUSE="examples"
+
+LICENSE="PSF-2"
+SLOT="0"
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( other/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/defusedxml/metadata.xml b/dev-python/defusedxml/metadata.xml
new file mode 100644
index 00000000000..1928bfb0b22
--- /dev/null
+++ b/dev-python/defusedxml/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">defusedxml</remote-id>
+ <remote-id type="bitbucket">tiran/defusedxml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/demjson/Manifest b/dev-python/demjson/Manifest
new file mode 100644
index 00000000000..d9917c95f89
--- /dev/null
+++ b/dev-python/demjson/Manifest
@@ -0,0 +1,3 @@
+DIST demjson-1.6.tar.gz 64299 SHA256 1d989c310e33569ecc178b8182e53bde8f748bf5ea10cfbc0e331f8c313f6e29 SHA512 aad21fb11998fc2bd6d9ce6cf3be448d0cb6636716109384dcf268aa3b5c6e37f20e579e51d72e554de3e9e4857b7ea850727009bf72bf020ee0f305e3c258f9 WHIRLPOOL efef0bd9e180b52c8d176e65302f0e9850cd30e8eae28323e7a3abe60319a81f1f1f5019ba5835937544816bea8965746276b6597dce610224193dfc5d415a65
+DIST demjson-2.2.2.tar.gz 130874 SHA256 5114563dd3a0324b6c9c74250528660adbb6a095b2a015038149e31a9b5727d5 SHA512 c5df57fdc286b33fbceada0ff8531d559fb183b29ca114fbfef7dfd0615ad5bae3882da91b6818ad58be5e20d3c2091db7cb75b1c31285b8ed5f466984b5fc15 WHIRLPOOL 6ca4e599128a896df098514d2b1983b025122ac07ee5ffa2f673c2d441482e32b7fa013a3896c2efedfcea9114dbe2049927b1754d4db9127bdf1ab9f32ddda3
+DIST demjson-2.2.3.tar.gz 131263 SHA256 9fb0f3c02fe500104680af2889a64d1637b395aebdb37341ae2309d77854f40c SHA512 058f8429967e21b30a9e28ec7790c372f5eb3126d7ab05c17d6f0548002650314048bf2f4eb3e2c8f75bb91169722c90eeeddb815ca166dfb14b2d1385504b14 WHIRLPOOL b665e19c5c28afd4636b2f33959f7a14d04706c8e8d7c77ef790fb12e3aff56a1cea35420caf7eceb06de8b001cab07a3e38d4252b7f67a3dbba99fcc4f1d476
diff --git a/dev-python/demjson/demjson-1.6.ebuild b/dev-python/demjson/demjson-1.6.ebuild
new file mode 100644
index 00000000000..28953531ef6
--- /dev/null
+++ b/dev-python/demjson/demjson-1.6.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils
+
+DESCRIPTION="encoder, decoder, and lint/validator for JSON (JavaScript Object Notation) compliant with RFC 4627"
+HOMEPAGE="http://deron.meranda.us/python/demjson/ http://pypi.python.org/pypi/demjson"
+SRC_URI="http://deron.meranda.us/python/${PN}/dist/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools"
+RDEPEND=""
+
+DOCS="AUTHORS.txt CHANGES.txt NEWS.txt THANKS.txt docs/*.txt"
+PYTHON_MODNAME="demjson.py"
+
+src_test() {
+ cd test
+
+ testing() {
+ PYTHONPATH="../build-${PYTHON_ABI}/lib" "$(PYTHON)" test_demjson.py
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+
+ if use doc; then
+ dohtml docs/*.html || die "Installation of documentation failed"
+ fi
+}
diff --git a/dev-python/demjson/demjson-2.2.2.ebuild b/dev-python/demjson/demjson-2.2.2.ebuild
new file mode 100644
index 00000000000..5ce72c9cddf
--- /dev/null
+++ b/dev-python/demjson/demjson-2.2.2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="encoder, decoder, and lint/validator for JSON (JavaScript Object Notation) compliant with RFC 4627"
+HOMEPAGE="http://deron.meranda.us/python/demjson/ http://pypi.python.org/pypi/demjson"
+SRC_URI="http://deron.meranda.us/python/${PN}/dist/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ cd test
+ if python_is_python3; then
+ 2to3 -w --no-diffs test_demjson.py
+ fi
+ "${PYTHON}" test_demjson.py
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ # Docs are .txt files
+ if use doc; then
+ dodoc docs/*.txt || die "Installation of documentation failed"
+ fi
+}
diff --git a/dev-python/demjson/demjson-2.2.3.ebuild b/dev-python/demjson/demjson-2.2.3.ebuild
new file mode 100644
index 00000000000..69d0794ca93
--- /dev/null
+++ b/dev-python/demjson/demjson-2.2.3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="encoder, decoder, and lint/validator for JSON (JavaScript Object Notation) compliant with RFC 4627"
+HOMEPAGE="http://deron.meranda.us/python/demjson/ http://pypi.python.org/pypi/demjson"
+SRC_URI="http://deron.meranda.us/python/${PN}/dist/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ cd test
+ if python_is_python3; then
+ 2to3 -w --no-diffs test_demjson.py
+ fi
+ "${PYTHON}" test_demjson.py
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ # Docs are .txt files
+ if use doc; then
+ dodoc docs/*.txt || die "Installation of documentation failed"
+ fi
+}
diff --git a/dev-python/demjson/metadata.xml b/dev-python/demjson/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/demjson/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/dicttoxml/Manifest b/dev-python/dicttoxml/Manifest
new file mode 100644
index 00000000000..8defe756281
--- /dev/null
+++ b/dev-python/dicttoxml/Manifest
@@ -0,0 +1,2 @@
+DIST dicttoxml-1.5.6.tar.gz 14627 SHA256 7b7375b1721cb64e5c69927335bf8dc8e0c83ebe9ed120526fe7043f0b70c52a SHA512 53f54c929afae4f84b532e96ab9876b19d24eb4ff2e6347f689257e582bc155e3552e1482118ed3f38f62d70b4f463441268d89b5c14f43ef16a2287c25aeef1 WHIRLPOOL f2ba052b486f84cf9a1c55812ebc94cf84c1d11f1ad26c16836349e0bd36747fb1bcbf8884cc253e38f32c7af62f9590248a464981a1f2e2219be47b0d8908a4
+DIST dicttoxml-1.6.6.tar.gz 15790 SHA256 8229dcbadbe8a417b5e221b0bd56dff8a8ffd250951e6e95d51d5c5e2a77cc68 SHA512 d2bf83f107b5d81a4fd04e9a5beb162db65808f7bb97d15de5d34beb8a4a2f68fce9e4c46f9c0c56d56c4fcce48181b3175a821834e4fb18d1ee4bc1ac952c8b WHIRLPOOL 3f9f9e96b7cc6185c1e170fab54088686765a04c9fab52bcbcf117716cfc7f3795dee48d1b6e92619924aed8c19261071030fe7b13349a84bd25c3acb0fd5304
diff --git a/dev-python/dicttoxml/dicttoxml-1.5.6.ebuild b/dev-python/dicttoxml/dicttoxml-1.5.6.ebuild
new file mode 100644
index 00000000000..4bbf5989408
--- /dev/null
+++ b/dev-python/dicttoxml/dicttoxml-1.5.6.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Converts a Python dictionary or other native data type into a valid XML string"
+HOMEPAGE="https://github.com/quandyfactory/dicttoxml"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
diff --git a/dev-python/dicttoxml/dicttoxml-1.6.6.ebuild b/dev-python/dicttoxml/dicttoxml-1.6.6.ebuild
new file mode 100644
index 00000000000..47489944bef
--- /dev/null
+++ b/dev-python/dicttoxml/dicttoxml-1.6.6.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Converts a Python dictionary or other ata type to a valid XML string"
+HOMEPAGE="https://github.com/quandyfactory/dicttoxml"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
diff --git a/dev-python/dicttoxml/metadata.xml b/dev-python/dicttoxml/metadata.xml
new file mode 100644
index 00000000000..c026e9d6223
--- /dev/null
+++ b/dev-python/dicttoxml/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">dicttoxml</remote-id>
+ <remote-id type="github">quandyfactory/dicttoxml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/diff-match-patch/Manifest b/dev-python/diff-match-patch/Manifest
new file mode 100644
index 00000000000..a8d49cad262
--- /dev/null
+++ b/dev-python/diff-match-patch/Manifest
@@ -0,0 +1 @@
+DIST diff-match-patch-20121119.tar.gz 54113 SHA256 9dba5611fbf27893347349fd51cc1911cb403682a7163373adacc565d11e2e4c SHA512 3daff80a6043a0413c515125a21839d9fa1d71f7e2441f4870ebefed35f1accea711814ad231c65de0e3468bbd01402c977fc063ab120b7d9f0e04ef555a8207 WHIRLPOOL ebd50cd7b86cb6c5b003f09d3c8efccda14cb1b2d158123b424f0c2bd40b37338ac8f13dcf464feb408d661db0ed6134fa9fc5c9954ebf35a3ebce206552b3aa
diff --git a/dev-python/diff-match-patch/diff-match-patch-20121119.ebuild b/dev-python/diff-match-patch/diff-match-patch-20121119.ebuild
new file mode 100644
index 00000000000..35d9c513165
--- /dev/null
+++ b/dev-python/diff-match-patch/diff-match-patch-20121119.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Diff, match and patch algorithms for plain text"
+HOMEPAGE="http://code.google.com/p/google-diff-match-patch/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/diff-match-patch/metadata.xml b/dev-python/diff-match-patch/metadata.xml
new file mode 100644
index 00000000000..e01e20080e1
--- /dev/null
+++ b/dev-python/diff-match-patch/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aidecoe@gentoo.org</email>
+ <name>Amadeusz Żołnowski</name>
+ </maintainer>
+ <longdescription lang="en">The Diff Match and Patch libraries offer robust algorithms to perform
+ the operations required for synchronizing plain text.
+ Diff: Compare two blocks of plain text and efficiently return a list of
+ differences.
+ Match: Given a search string, find its best fuzzy match in a block of
+ plain text. Weighted for both accuracy and location.
+ Patch: Apply a list of patches onto plain text. Use best-effort to apply
+ patch even when the underlying text doesn't match.
+ Diff Match and Patch libraries are currently available in Java,
+ JavaScript, C++, C#, Objective C, Lua and Python, although this package
+ contains only Python implementation. Regardless of language, each
+ library features the same API and the same functionality. All versions
+ also have comprehensive test harnesses.</longdescription>
+ <upstream>
+ <remote-id type="pypi">diff-match-patch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dingus/Manifest b/dev-python/dingus/Manifest
new file mode 100644
index 00000000000..45dcbd31a31
--- /dev/null
+++ b/dev-python/dingus/Manifest
@@ -0,0 +1 @@
+DIST dingus-0.3.4.tar.gz 6202 SHA256 eaacfcd17819eb9a0ee18c018be3a354a632a6e82b610d72f8a3bf33a1d7db35 SHA512 7fffe0a02037b8e85f4d58fac1b5e59af98a8fc4a298f67bf9cd813b369c469046dfbbdb07965df4aa8ada56de1f097c19ed448d99fc41047f02e5dec701e504 WHIRLPOOL a4fe81f496d81ca296a09f71e1aa18f9884f586c5343d7458fc2807fed5848e61080010a658c846720ae275f402e68a28b7c119776c4c95fb93adc654dd63e72
diff --git a/dev-python/dingus/dingus-0.3.4-r1.ebuild b/dev-python/dingus/dingus-0.3.4-r1.ebuild
new file mode 100644
index 00000000000..aaaeeee6350
--- /dev/null
+++ b/dev-python/dingus/dingus-0.3.4-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A record-then-assert mocking library"
+HOMEPAGE="http://pypi.python.org/pypi/dingus/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_prepare_all() {
+ sed -i -e '/data_files/d' setup.py || die #413769
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/dingus/metadata.xml b/dev-python/dingus/metadata.xml
new file mode 100644
index 00000000000..c8785f62bc7
--- /dev/null
+++ b/dev-python/dingus/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">dingus</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/discogs-client/Manifest b/dev-python/discogs-client/Manifest
new file mode 100644
index 00000000000..130842346f2
--- /dev/null
+++ b/dev-python/discogs-client/Manifest
@@ -0,0 +1,2 @@
+DIST discogs-client-2.0.2.tar.gz 25486 SHA256 7de2166ee4f7f5dc4cf1709b7a6abe6211a0046f2341874d2c67e5c6466351a8 SHA512 00634eb95018ccb2ece0adf4b7e3ea96674f0c8dd63d9bd151cdf9c871898fa24379f78065ebb677cc87eaffa31e91ba60051622a38c6bd774e010c20229b16e WHIRLPOOL ae54cdbb93d7fdfb26301f57a4ee3f0ec925a55a29c377c875221d62a0c54e54d957075ab04800fcc39aa3152317511ec775a66e6a5e25300558437c730faed5
+DIST discogs-client-2.2.0.tar.gz 27484 SHA256 b31e3fd8f17f46b9c7221182ed6be96774a334ac8be4e434ee99943d27170945 SHA512 e1f894cabab6c8162f0195164cd68fca7806149112d065c007991a4fb93de6bd4baa16230eaccde1e1d9d842930f6bb8ba64bd618352bc85051f64d3e7b13c0b WHIRLPOOL c903dc0348eddbd5c097972313cd04e7c9714f89ef8baac129b20ca01269b5be070f850f1d78b733bf408fb11ba40d26cae6b945bfb33bbdba16f8f9d5509a92
diff --git a/dev-python/discogs-client/discogs-client-2.0.2.ebuild b/dev-python/discogs-client/discogs-client-2.0.2.ebuild
new file mode 100644
index 00000000000..e092deb4096
--- /dev/null
+++ b/dev-python/discogs-client/discogs-client-2.0.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# Not py3 capable due to oauth2 supports py2 pypy only
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Official Python API client for Discogs"
+HOMEPAGE="http://github.com/discogs/discogs_client http://pypi.python.org/pypi/discogs-client"
+#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="https://github.com/discogs/${PN/-/_}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/oauth2[${PYTHON_USEDEP}]"
+# It's either this or make a test use flag to add RDEPEND behind it. Both work
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${P/-/_}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/discogs-client/discogs-client-2.2.0.ebuild b/dev-python/discogs-client/discogs-client-2.2.0.ebuild
new file mode 100644
index 00000000000..83536e3e32f
--- /dev/null
+++ b/dev-python/discogs-client/discogs-client-2.2.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# Not py3 capable due to oauth2 supports py2 pypy only
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Official Python API client for Discogs"
+HOMEPAGE="http://github.com/discogs/discogs_client http://pypi.python.org/pypi/discogs-client"
+#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="https://github.com/discogs/${PN/-/_}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/oauth2[${PYTHON_USEDEP}]
+ dev-python/oauthlib[${PYTHON_USEDEP}]
+ "
+# It's either this or make a test use flag to add RDEPEND behind it. Both work
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${P/-/_}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/discogs-client/files/README.patch b/dev-python/discogs-client/files/README.patch
new file mode 100644
index 00000000000..538e96aa5f2
--- /dev/null
+++ b/dev-python/discogs-client/files/README.patch
@@ -0,0 +1,25 @@
+From 7e914f37a851da1b7b52eb2bcb631f6148e41ee9 Mon Sep 17 00:00:00 2001
+From: Theofilos Intzoglou <int.teo@gmail.com>
+Date: Tue, 11 Jun 2013 21:24:35 +0300
+Subject: [PATCH] Fix README.mkd so that test_discogs_client.py doesn't fail
+
+---
+ README.mkd | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.mkd b/README.mkd
+index 73a609a..07f9724 100644
+--- a/README.mkd
++++ b/README.mkd
+@@ -185,7 +185,7 @@ Get a list of `Label`s representing sublabels associated with this `Label`:
+ Get the `Label`'s parent label, if it exists:
+
+ >>> label.parent_label
+- ...
++ <Label "...">
+
+ ### Possible `data` keys
+
+--
+1.8.1.6
+
diff --git a/dev-python/discogs-client/metadata.xml b/dev-python/discogs-client/metadata.xml
new file mode 100644
index 00000000000..b3d1da6cc08
--- /dev/null
+++ b/dev-python/discogs-client/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>int.teo@gmail.com</email>
+ <name>Theofilos Intzoglou</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">discogs-client</remote-id>
+ <remote-id type="github">discogs/discogs_client</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/disqus-python/Manifest b/dev-python/disqus-python/Manifest
new file mode 100644
index 00000000000..7d046cb5189
--- /dev/null
+++ b/dev-python/disqus-python/Manifest
@@ -0,0 +1 @@
+DIST disqus-python-0.4.2.tar.gz 9751 SHA256 aac773ab21fdea9e525de3e43bab6714899575f8fdccb70d31688fe6bc68020f SHA512 ad55c5d95ff9b382a187cfa13b2cc41ec8e90acb6378ebe11a32fc2dc7b125e3e9ebd94d8f24d686f56e87808cda7642d1356c1dfa1e4b7f5d7e1ee9e7875b0a WHIRLPOOL fcb3bd9ec7bdefc338ab7a60b60f0841a2ec591b9a907b52c0f61be0e3f168e004ca6d9b91b71bedd28f44ea37e24a6e7b6ca063abc23c03bcd0f2e120c0e36b
diff --git a/dev-python/disqus-python/disqus-python-0.4.2.ebuild b/dev-python/disqus-python/disqus-python-0.4.2.ebuild
new file mode 100644
index 00000000000..f388d2caf03
--- /dev/null
+++ b/dev-python/disqus-python/disqus-python-0.4.2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python client library for accessing the disqus.com API"
+HOMEPAGE="https://github.com/disqus/disqus-python"
+SRC_URI="mirror://pypi/d/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${EPYTHON}" "${S}/disqusapi/tests.py" || die
+}
diff --git a/dev-python/disqus-python/metadata.xml b/dev-python/disqus-python/metadata.xml
new file mode 100644
index 00000000000..8f105141f12
--- /dev/null
+++ b/dev-python/disqus-python/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">disqus/disqus-python</remote-id>
+ <remote-id type="pypi">disqus-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-annoying/Manifest b/dev-python/django-annoying/Manifest
new file mode 100644
index 00000000000..6383e75f787
--- /dev/null
+++ b/dev-python/django-annoying/Manifest
@@ -0,0 +1,3 @@
+DIST django-annoying-0.7.6.tar.gz 7355 SHA256 7cc80ef00d63c3863e03ed97a197f8b71c67b00a5bd9eaf0383a90dcc6117003 SHA512 86ceb5ae10fafb6e273c2ff31b25489482da3ded6eaf3fdade3d148563251e00f4c9af3ce7420ae68124709a6f8e1a8960824e2b170d77fc5d57f2364b8c7e31 WHIRLPOOL d6f451f21db9ee1415392cfb2d18037bfd39306f0a0301f4bc393a9c158754894cd7e7d3345ee30b071832980939820742e44defcaa6056c11df9984887a8c85
+DIST django-annoying-0.7.7.tar.gz 7277 SHA256 498ba1ab00da56b939772913f7d5b3a29997990b63518acfa5305e8bf03fed7b SHA512 37435fb08110bc0e06a2a8b35d4f45d96d7fed3c03b87a541fcd96a76ed2e36281f1f7632654f3f5f64597203097ac7b5def1e8dc32e500e973fd81686a208ab WHIRLPOOL 14df887e05b9d1d47f80982a89ab719a2244dc38fa02ec9f0666484d79923ad7a1df047e261b5f70be8b408df30def2f70b9ca93ab7637278b5302e1eeb5e2f9
+DIST django-annoying-0.8.2.tar.gz 9135 SHA256 5e394ebb65819b9d6b44389e0d0f107b3504921293b784ab7cabaa73045f6b2c SHA512 5d8475ccc8f20291218f8302c90b70c01488361924bf7ad142403f6dcb9d51c9d8558c0dc3b0686585aa2f80b8a5ec2875ffc6f940a5a4bd8750de8653815f0a WHIRLPOOL 468b4bc3a1688e35cb2005e3f65fb49bb168092915c49c3d624909a93a65f017b76bb1ce83778b2396dbec12f92cd9da400f12d07b4b807e107bb64024020d0b
diff --git a/dev-python/django-annoying/django-annoying-0.7.6-r1.ebuild b/dev-python/django-annoying/django-annoying-0.7.6-r1.ebuild
new file mode 100644
index 00000000000..ef005b01dc3
--- /dev/null
+++ b/dev-python/django-annoying/django-annoying-0.7.6-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This is django application that try to eliminate annoying things in Django framework"
+HOMEPAGE="http://bitbucket.org/offline/django-annoying/wiki/Home"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-annoying/django-annoying-0.7.7.ebuild b/dev-python/django-annoying/django-annoying-0.7.7.ebuild
new file mode 100644
index 00000000000..92e84cb5ee8
--- /dev/null
+++ b/dev-python/django-annoying/django-annoying-0.7.7.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This is django application that try to eliminate annoying things in Django framework"
+HOMEPAGE="http://bitbucket.org/offline/django-annoying/wiki/Home"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-annoying/django-annoying-0.8.2.ebuild b/dev-python/django-annoying/django-annoying-0.8.2.ebuild
new file mode 100644
index 00000000000..ef005b01dc3
--- /dev/null
+++ b/dev-python/django-annoying/django-annoying-0.8.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This is django application that try to eliminate annoying things in Django framework"
+HOMEPAGE="http://bitbucket.org/offline/django-annoying/wiki/Home"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-annoying/metadata.xml b/dev-python/django-annoying/metadata.xml
new file mode 100644
index 00000000000..51ac3214141
--- /dev/null
+++ b/dev-python/django-annoying/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-annoying</remote-id>
+ <remote-id type="bitbucket">offline/django-annoying</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-appconf/Manifest b/dev-python/django-appconf/Manifest
new file mode 100644
index 00000000000..be65e5bb578
--- /dev/null
+++ b/dev-python/django-appconf/Manifest
@@ -0,0 +1 @@
+DIST django-appconf-0.6.tar.gz 14072 SHA256 d3f4bcabcb3a9559775c5f4e94cef47f936b1df63703542bc8d912637452e75c SHA512 d2a4aea07eeabdc32ed85cf0625702f3e7861b82d1e47660f3761dedff42a3bd3bfcc54dc3d46072758bea1a34af160f7a908bf0925c05b7409f1224f4a7245d WHIRLPOOL f357a26a28476048ce97a1b85309c87382e750bb1ff9ea8552e194423e815b8945da5367200872096ede6177133094314e9a4a4ca4c5a058b273ab46aacb5091
diff --git a/dev-python/django-appconf/django-appconf-0.6.ebuild b/dev-python/django-appconf/django-appconf-0.6.ebuild
new file mode 100644
index 00000000000..b18bdd7d2a6
--- /dev/null
+++ b/dev-python/django-appconf/django-appconf-0.6.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A helper class for handling configuration defaults of packaged apps gracefully"
+HOMEPAGE="https://github.com/jezdez/django-appconf http://django-appconf.readthedocs.org/"
+SRC_URI="https://github.com/jezdez/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND=">=dev-python/django-1.4.1[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/django-discover-runner[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/docs.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd appconf/tests || die
+ set -- django-admin.py test appconf --settings=appconf.test_settings
+ echo "$@"
+ "$@" || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-appconf/files/docs.patch b/dev-python/django-appconf/files/docs.patch
new file mode 100644
index 00000000000..4b5d4861adf
--- /dev/null
+++ b/dev-python/django-appconf/files/docs.patch
@@ -0,0 +1,16 @@
+Prevent unwanted d'loading of un-needed oject.inv files in doc build
+diff -ur django-appconf-0.6.orig/docs/conf.py django-appconf-0.6/docs/conf.py
+--- docs/conf.py 2013-01-29 01:45:50.000000000 +0800
++++ docs/conf.py 2013-05-18 21:40:38.737985957 +0800
+@@ -218,11 +218,3 @@
+ ('index', 'django-appconf', u'django-appconf Documentation',
+ [u'Jannis Leidel and individual contributors'], 1)
+ ]
+-
+-
+-# Example configuration for intersphinx: refer to the Python standard library.
+-intersphinx_mapping = {
+- 'python': ('http://python.readthedocs.org/en/v2.7.2/', None),
+- 'django': ('http://django.readthedocs.org/en/latest/', None),
+- 'celery': ('http://celery.readthedocs.org/en/latest/', None),
+-}
diff --git a/dev-python/django-appconf/metadata.xml b/dev-python/django-appconf/metadata.xml
new file mode 100644
index 00000000000..0c00bb31978
--- /dev/null
+++ b/dev-python/django-appconf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">jezdez/django-appconf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-auth-ldap/Manifest b/dev-python/django-auth-ldap/Manifest
new file mode 100644
index 00000000000..a2e1627574e
--- /dev/null
+++ b/dev-python/django-auth-ldap/Manifest
@@ -0,0 +1,2 @@
+DIST django-auth-ldap-1.2.2.tar.gz 131086 SHA256 faa067b073f6ea73c1ceeb5e244187ae1b3cf4ec79846ff366fa996428434264 SHA512 676d1114faeb9a2956ed51c586afea7618c1bf62867d3525596599391f8327b8f22a075c4203311df88279c317ca37b9097b59e55a64330afee6eb1c5a9c9ac3 WHIRLPOOL ae84405b4855ad9701244ab6cbd5e5154d2e173e04896c27e0869680bb4e030b6847293bcc59ef4f7f56969778c7d403721bae0d7099e2f3724186908c7abbbd
+DIST django-auth-ldap-1.2.6.tar.gz 131385 SHA256 17671e1f0f1ef5c1242291f710956ba9446bf804ff907eab1fe533031b9411b5 SHA512 59d6d18ad2f890e26a728b9f45885d98d08d85a36bce0a28cd52e02f7c4a52def79d668c1948be37915fd0c3be72d50de983bf4a4b622ce7bbff7d3e040b63b7 WHIRLPOOL 5e673bc686f222e6704ca98f0ae8a7472bd85b6c33f3182f4a087d9a8b3174cdcd76521ce42033874979d00dee94cbdc2db5da32b8bdceb474edf3e8b498d1ee
diff --git a/dev-python/django-auth-ldap/django-auth-ldap-1.2.2.ebuild b/dev-python/django-auth-ldap/django-auth-ldap-1.2.2.ebuild
new file mode 100644
index 00000000000..56d66ed3ed5
--- /dev/null
+++ b/dev-python/django-auth-ldap/django-auth-ldap-1.2.2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# Although setup.py claims to support py3, python-ldap does not
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Django LDAP authentication backend"
+HOMEPAGE="http://pypi.python.org/pypi/django-auth-ldap http://bitbucket.org/psagers/django-auth-ldap/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/python-ldap-2.0[${PYTHON_USEDEP}]"
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/mockldap-0.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+#S="${WORKDIR}"/psagers-${PN}-80379ce59e6b
+
+PATCHES=( "${FILESDIR}"/docs.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ PYTHONPATH=. "${PYTHON}" test/manage.py test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-auth-ldap/django-auth-ldap-1.2.6.ebuild b/dev-python/django-auth-ldap/django-auth-ldap-1.2.6.ebuild
new file mode 100644
index 00000000000..03f5f912371
--- /dev/null
+++ b/dev-python/django-auth-ldap/django-auth-ldap-1.2.6.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# Although setup.py claims to support py3, python-ldap does not
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Django LDAP authentication backend"
+HOMEPAGE="http://pypi.python.org/pypi/django-auth-ldap http://bitbucket.org/psagers/django-auth-ldap/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/python-ldap-2.0[${PYTHON_USEDEP}]"
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/mockldap-0.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/docs.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ PYTHONPATH=. "${PYTHON}" test/manage.py test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-auth-ldap/files/docs.patch b/dev-python/django-auth-ldap/files/docs.patch
new file mode 100644
index 00000000000..c4e918fac53
--- /dev/null
+++ b/dev-python/django-auth-ldap/files/docs.patch
@@ -0,0 +1,18 @@
+Avoid unwanted d'loading for un-needed ojects.inv files
+diff -ur django-auth-ldap-1.1.4.orig/docs/source/conf.py django-auth-ldap-1.1.4/docs/source/conf.py
+--- docs/source/conf.py 2013-03-10 06:01:09.000000000 +0800
++++ docs/source/conf.py 2013-05-18 23:14:35.761187583 +0800
+@@ -29,13 +29,6 @@
+ 'daldocs',
+ ]
+
+-intersphinx_mapping = {
+- 'python': ('http://docs.python.org/', None),
+- 'django': ('https://docs.djangoproject.com/en/dev/',
+- 'https://docs.djangoproject.com/en/dev/_objects/'),
+- 'pythonldap': ('http://python-ldap.org/doc/html/', None),
+-}
+-
+ # Add any paths that contain templates here, relative to this directory.
+ templates_path = ['../_templates']
+
diff --git a/dev-python/django-auth-ldap/metadata.xml b/dev-python/django-auth-ldap/metadata.xml
new file mode 100644
index 00000000000..29b8b314b8c
--- /dev/null
+++ b/dev-python/django-auth-ldap/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-auth-ldap</remote-id>
+ <remote-id type="bitbucket">psagers/django-auth-ldap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-baker/Manifest b/dev-python/django-baker/Manifest
new file mode 100644
index 00000000000..c2eeb777151
--- /dev/null
+++ b/dev-python/django-baker/Manifest
@@ -0,0 +1 @@
+DIST django-baker-0.11.tar.gz 14920 SHA256 b656577f8234529374251ccf760a0e3e4cda613ea4a19ee17ae87647aeefc364 SHA512 98a64efec8a0cabe9c4091852f3dcbff95007c0ff2020b782f73ab6cc5e3d73cd52356546f1f64b55a69fefdf8f053d95d604584831cf07cb1b8037446892439 WHIRLPOOL 8feddec1f8dd57bdbfe7632c0da998ddaabdc0fb4711a84d9a31b1f0c4db15282311d41db323549a15fefebc41bde605b6f9052c215d756f56968c432529f33a
diff --git a/dev-python/django-baker/django-baker-0.11-r2.ebuild b/dev-python/django-baker/django-baker-0.11-r2.ebuild
new file mode 100644
index 00000000000..57c41e984e4
--- /dev/null
+++ b/dev-python/django-baker/django-baker-0.11-r2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Management command that generates views, forms, urls, admin, and templates for models"
+HOMEPAGE="https://pypi.python.org/pypi/django-baker https://github.com/krisfields/django-baker"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+PATCHES=(
+ "${FILESDIR}"/${P}-py3-backport.patch
+ "${FILESDIR}"/${P}-py3-iter.patch
+)
diff --git a/dev-python/django-baker/files/django-baker-0.11-py3-backport.patch b/dev-python/django-baker/files/django-baker-0.11-py3-backport.patch
new file mode 100644
index 00000000000..b2bc42859c2
--- /dev/null
+++ b/dev-python/django-baker/files/django-baker-0.11-py3-backport.patch
@@ -0,0 +1,50 @@
+From baf971a58d310d6d3bfe7ddea81b33c810e3d3cf Mon Sep 17 00:00:00 2001
+From: Tim Kamanin <tim@timonweb.com>
+Date: Sat, 21 Feb 2015 18:42:45 +0100
+Subject: [PATCH] Added Python 3 support
+
+---
+ django_baker/bakery.py | 4 ++--
+ django_baker/management/commands/bake.py | 3 ++-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/django_baker/bakery.py b/django_baker/bakery.py
+index ff04ef3..7c0cbc2 100644
+--- a/django_baker/bakery.py
++++ b/django_baker/bakery.py
+@@ -4,7 +4,7 @@
+ import re
+ from django.template.loader import get_template
+ from django.template import Context
+-
++from django.utils.six import iteritems
+
+ class Baker(object):
+ """
+@@ -16,7 +16,7 @@ def bake(self, apps_and_models):
+ """
+ Iterates a dictionary of apps and models and creates all the necessary files to get up and running quickly.
+ """
+- for app_label, models in apps_and_models.iteritems():
++ for app_label, models in iteritems(apps_and_models):
+ model_names = {model.__name__: self.get_field_names_for_model(model) for model in models}
+ self.create_directories(app_label)
+ self.create_init_files(app_label, model_names.keys(), models)
+diff --git a/django_baker/management/commands/bake.py b/django_baker/management/commands/bake.py
+index e602345..f7dc16a 100644
+--- a/django_baker/management/commands/bake.py
++++ b/django_baker/management/commands/bake.py
+@@ -1,3 +1,4 @@
++from __future__ import print_function
+ from django.core.management.base import BaseCommand, CommandError
+ from django.core.exceptions import ImproperlyConfigured
+ from django.db.models import get_app, get_models
+@@ -51,7 +52,7 @@ def get_selected_models(self, app, app_label, model_names):
+ """
+ if model_names:
+ try:
+- print app_label, model_names
++ print(app_label, model_names)
+ return [get_model(app_label, model_name) for model_name in model_names]
+ except:
+ raise CommandError("One or more of the models you entered for %s are incorrect." % app_label)
diff --git a/dev-python/django-baker/files/django-baker-0.11-py3-iter.patch b/dev-python/django-baker/files/django-baker-0.11-py3-iter.patch
new file mode 100644
index 00000000000..a2902b8f487
--- /dev/null
+++ b/dev-python/django-baker/files/django-baker-0.11-py3-iter.patch
@@ -0,0 +1,42 @@
+From c6c856c999cb9a9ce4ec8ecee714da7f6719019d Mon Sep 17 00:00:00 2001
+From: Matt Clement <mclement@savantgroup.com>
+Date: Tue, 3 Mar 2015 14:57:41 -0500
+Subject: [PATCH] Switch iteritems to items for Py3 compatibility
+
+---
+ django_baker/templates/django_baker/__init__urls | 2 +-
+ django_baker/templates/django_baker/forms | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/django_baker/templates/django_baker/__init__urls b/django_baker/templates/django_baker/__init__urls
+index 1baf063..d6c9bec 100644
+--- a/django_baker/templates/django_baker/__init__urls
++++ b/django_baker/templates/django_baker/__init__urls
+@@ -1,6 +1,6 @@
+ from django.conf.urls import patterns, include
+
+ urlpatterns = patterns('',
+-{% for model_name_slug, plural_model_name_slug in model_names_dict.iteritems %}
++{% for model_name_slug, plural_model_name_slug in model_names_dict.items %}
+ (r'^{{ plural_model_name_slug }}/', include('{{ app_label }}.urls.{{ model_name_slug }}_urls')),{% if forloop.first %} # NOQA{% endif %}{% endfor %}
+ )
+diff --git a/django_baker/templates/django_baker/forms b/django_baker/templates/django_baker/forms
+index 1f55c86..a21234d 100644
+--- a/django_baker/templates/django_baker/forms
++++ b/django_baker/templates/django_baker/forms
+@@ -1,7 +1,7 @@
+ from django import forms
+ from .models import {{ model_names|join:", " }}
+
+-{% for model_name, model_fields in model_names.iteritems %}
++{% for model_name, model_fields in model_names.items %}
+ class {{ model_name }}Form(forms.ModelForm):
+
+ class Meta:
+@@ -36,4 +36,4 @@ class {{ model_name }}Form(forms.ModelForm):
+ def save(self, commit=True):
+ return super({{ model_name }}Form, self).save(commit)
+ {% if not forloop.last %}
+-{% endif %}{% endfor %}
+\ No newline at end of file
++{% endif %}{% endfor %}
diff --git a/dev-python/django-baker/metadata.xml b/dev-python/django-baker/metadata.xml
new file mode 100644
index 00000000000..6c335039f30
--- /dev/null
+++ b/dev-python/django-baker/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-baker</remote-id>
+ <remote-id type="github">krisfields/django-baker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-celery/Manifest b/dev-python/django-celery/Manifest
new file mode 100644
index 00000000000..bfc7c48ce9c
--- /dev/null
+++ b/dev-python/django-celery/Manifest
@@ -0,0 +1 @@
+DIST django-celery-3.1.16.tar.gz 77411 SHA256 07a9c650a1f20e040cf5fffd0bcd920a81d0734915130d898c0325c5fafb2ec4 SHA512 8bada03237f2b6f45484fe15e985d4763944fe19b3ac7271a6b9d53058c13d903b0aba070cd813741e2a1a2c6c1d17b335f8712ca70c377d45892471ef7a59bc WHIRLPOOL a707ce0e31407e9a452d4930e93207dea31f22365a1c827dc917d9dc34d6a5c48f2bfc0aab41ce3b5a92877200265630e6fc17f7e7c80e0aac2ceb76a272a483
diff --git a/dev-python/django-celery/django-celery-3.1.16.ebuild b/dev-python/django-celery/django-celery-3.1.16.ebuild
new file mode 100644
index 00000000000..44b6fe2c148
--- /dev/null
+++ b/dev-python/django-celery/django-celery-3.1.16.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Celery Integration for Django"
+HOMEPAGE="http://celeryproject.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples test"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND=">=dev-python/celery-3.1.15[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/django-nose[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.0[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/mock[${PY2_USEDEP}]
+ dev-python/python-memcached[${PY2_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-issuetracker[${PY2_USEDEP}]
+ dev-python/python-memcached[${PY2_USEDEP}]
+ )"
+
+PY27_REQUSE="$(python_gen_useflags 'python2.7')"
+REQUIRED_USE="
+ doc? ( ${PY27_REQUSE} )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/celery/django-celery/issues/342
+ "${PYTHON}" tests/manage.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-celery/metadata.xml b/dev-python/django-celery/metadata.xml
new file mode 100644
index 00000000000..865a357b838
--- /dev/null
+++ b/dev-python/django-celery/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-celery</remote-id>
+ <remote-id type="github">github/django-celery</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-compressor/Manifest b/dev-python/django-compressor/Manifest
new file mode 100644
index 00000000000..c8e237acf1c
--- /dev/null
+++ b/dev-python/django-compressor/Manifest
@@ -0,0 +1,2 @@
+DIST django-compressor-1.4.tar.gz 103414 SHA256 47790524c754c34c37d960ab34ec7a3ef85002e56978fea69a4102f2856a4561 SHA512 620618675585248a38040d91e3c33a534758cc87c4b2cab16ac3d55f82e37be6d4d7058226f6366e14305465a29235e89acba937019cd28fe4285614797179e2 WHIRLPOOL 597d5f7530dc4ad67bc7cff294d4a46cad53328670ce530bbd76e6596c4f35e61edc04e1bac71e9a3b61f4a8efd73fdae38ccfdded65be800e45a30374b36fac
+DIST django-compressor-1.5.tar.gz 105855 SHA256 2f094de9c061f38b741db9fc88d359abc424f077b324fe33f5e93ecf91f8f2eb SHA512 d6c7a04263895a4195754a49bd4831053186c99d6fdd07977c26059eb931c982bd3b60848311e8469ad0e0298204a5fc3f0e63697a5af5608abf0b76e521c797 WHIRLPOOL 6626ea41b6465516126fe1f9eb66871df11ce5de80c35dd3024ba5fcd69cb6aa745c684201991bedd8ffc8356e2fc19495ee81a5165122ca70f5419b0749e269
diff --git a/dev-python/django-compressor/django-compressor-1.4.ebuild b/dev-python/django-compressor/django-compressor-1.4.ebuild
new file mode 100644
index 00000000000..630de33b6a2
--- /dev/null
+++ b/dev-python/django-compressor/django-compressor-1.4.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN="${PN/-/_}"
+
+DESCRIPTION="Compresses linked and inline javascript or CSS into a single cached file"
+HOMEPAGE="https://github.com/django-compressor/django-compressor"
+SRC_URI="https://github.com/jezdez/django_compressor/archive/${PV}.tar.gz -> ${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/django-appconf-0.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/versiontools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/django-discover-runner[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/html5lib[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/Coffin[${PYTHON_USEDEP}]
+ dev-python/jingo[${PYTHON_USEDEP}]
+ )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/django-compressor/django-compressor/issues/531 532
+ pushd "${BUILD_DIR}/lib" > /dev/null || die
+ if python_is_python3; then
+ sed -e s':test_cachekey:_&:' -e s':test_css:_&:g' \
+ -i compressor/tests/test_base.py || die
+ fi
+ set -- django-admin.py test compressor --settings=compressor.test_settings
+ echo "$@"
+ "$@" || die "Tests failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-compressor/django-compressor-1.5.ebuild b/dev-python/django-compressor/django-compressor-1.5.ebuild
new file mode 100644
index 00000000000..57fa46c7039
--- /dev/null
+++ b/dev-python/django-compressor/django-compressor-1.5.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN="${PN/-/_}"
+
+DESCRIPTION="Compresses linked and inline javascript or CSS into a single cached file"
+HOMEPAGE="https://github.com/django-compressor/django-compressor"
+SRC_URI="https://github.com/jezdez/django_compressor/archive/${PV}.tar.gz -> ${P}.tar.gz"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/django-appconf-0.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/versiontools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/django-discover-runner[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/html5lib[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/Coffin[${PYTHON_USEDEP}]
+ dev-python/jingo[${PYTHON_USEDEP}]
+ )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/django-compressor/django-compressor/issues/531 532
+ pushd "${BUILD_DIR}/lib" > /dev/null || die
+ if python_is_python3; then
+ sed -e s':test_cachekey:_&:' -e s':test_css:_&:g' \
+ -i compressor/tests/test_base.py || die
+ fi
+ set -- django-admin.py test compressor --settings=compressor.test_settings
+ echo "$@"
+ "$@" || die "Tests failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-compressor/files/django-compressor-1.4-test.patch b/dev-python/django-compressor/files/django-compressor-1.4-test.patch
new file mode 100644
index 00000000000..1d672bb5b8f
--- /dev/null
+++ b/dev-python/django-compressor/files/django-compressor-1.4-test.patch
@@ -0,0 +1,306 @@
+ compressor/tests/test_base.py | 6 +++---
+ compressor/tests/test_filters.py | 14 +++++++-------
+ compressor/tests/test_jinja2ext.py | 20 ++++++++++----------
+ compressor/tests/test_storages.py | 2 +-
+ compressor/tests/test_templatetags.py | 22 +++++++++++-----------
+ 5 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/compressor/tests/test_base.py b/compressor/tests/test_base.py
+index 46b1d91..6f70e80 100644
+--- a/compressor/tests/test_base.py
++++ b/compressor/tests/test_base.py
+@@ -112,7 +112,7 @@ class CompressorTestCase(SimpleTestCase):
+ hunks = '\n'.join([h for h in self.css_node.hunks()])
+ self.assertEqual(out, hunks)
+
+- def test_css_mtimes(self):
++ def _test_css_mtimes(self):
+ is_date = re.compile(r'^\d{10}[\.\d]+$')
+ for date in self.css_node.mtimes:
+ self.assertTrue(is_date.match(str(float(date))),
+@@ -122,7 +122,7 @@ class CompressorTestCase(SimpleTestCase):
+ settings.COMPRESS_ENABLED = False
+ self.assertEqualCollapsed(self.css, self.css_node.output())
+
+- def test_cachekey(self):
++ def _test_cachekey(self):
+ is_cachekey = re.compile(r'\w{12}')
+ self.assertTrue(is_cachekey.match(self.css_node.cachekey),
+ "cachekey is returning something that doesn't look like r'\w{12}'")
+@@ -265,6 +265,6 @@ class VerboseTestCase(CompressorTestCase):
+
+ class CacheBackendTestCase(CompressorTestCase):
+
+- def test_correct_backend(self):
++ def _test_correct_backend(self):
+ from compressor.cache import cache
+ self.assertEqual(cache.__class__, locmem.CacheClass)
+diff --git a/compressor/tests/test_filters.py b/compressor/tests/test_filters.py
+index b656a65..6b3e801 100644
+--- a/compressor/tests/test_filters.py
++++ b/compressor/tests/test_filters.py
+@@ -120,7 +120,7 @@ class CssAbsolutizingTestCase(TestCase):
+ settings.COMPRESS_URL = self.old_url
+ settings.COMPRESS_CSS_HASHING_METHOD = self.old_hashing_method
+
+- def test_css_absolute_filter(self):
++ def _test_css_absolute_filter(self):
+ filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
+ imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
+ params = {
+@@ -138,7 +138,7 @@ class CssAbsolutizingTestCase(TestCase):
+ "p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+
+- def test_css_absolute_filter_url_fragment(self):
++ def _test_css_absolute_filter_url_fragment(self):
+ filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
+ imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
+ params = {
+@@ -166,7 +166,7 @@ class CssAbsolutizingTestCase(TestCase):
+ filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
+ self.assertEqual(content, filter.input(filename=filename, basename='css/url/test.css'))
+
+- def test_css_absolute_filter_querystring(self):
++ def _test_css_absolute_filter_querystring(self):
+ filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
+ imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
+ params = {
+@@ -184,7 +184,7 @@ class CssAbsolutizingTestCase(TestCase):
+ output = "p { background: url('%(url)simg/python.png?foo&%(hash)s') }" % params
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+
+- def test_css_absolute_filter_https(self):
++ def _test_css_absolute_filter_https(self):
+ filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
+ imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
+ params = {
+@@ -202,7 +202,7 @@ class CssAbsolutizingTestCase(TestCase):
+ "p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+
+- def test_css_absolute_filter_relative_path(self):
++ def _test_css_absolute_filter_relative_path(self):
+ filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'static', 'whatever/../css/url/test.css')
+ imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
+ params = {
+@@ -219,7 +219,7 @@ class CssAbsolutizingTestCase(TestCase):
+ "p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+
+- def test_css_hunks(self):
++ def _test_css_hunks(self):
+ hash_dict = {
+ 'hash1': self.hashing_func(os.path.join(settings.COMPRESS_ROOT, 'img/python.png')),
+ 'hash2': self.hashing_func(os.path.join(settings.COMPRESS_ROOT, 'img/add.png')),
+@@ -276,7 +276,7 @@ class CssDataUriTestCase(TestCase):
+ """
+ self.css_node = CssCompressor(self.css)
+
+- def test_data_uris(self):
++ def _test_data_uris(self):
+ datauri_hash = get_hashed_mtime(os.path.join(settings.COMPRESS_ROOT, 'img/python.png'))
+ out = ['''.add { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlkoqCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94VTUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpKtE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0HglWNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1VMzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVPC4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnjahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQyu/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg=="); }
+ .add-with-hash { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlkoqCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94VTUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpKtE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0HglWNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1VMzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVPC4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnjahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQyu/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg=="); }
+diff --git a/compressor/tests/test_jinja2ext.py b/compressor/tests/test_jinja2ext.py
+index 5adc8ee..c7203c6 100644
+--- a/compressor/tests/test_jinja2ext.py
++++ b/compressor/tests/test_jinja2ext.py
+@@ -64,19 +64,19 @@ class TestJinja2CompressorExtension(TestCase):
+ template = self.env.from_string(template_string)
+ self.assertEqual(tag_body, template.render())
+
+- def test_empty_tag(self):
++ def _test_empty_tag(self):
+ template = self.env.from_string("""{% compress js %}{% block js %}
+ {% endblock %}{% endcompress %}""")
+ context = {'STATIC_URL': settings.COMPRESS_URL}
+ self.assertEqual('', template.render(context))
+
+- def test_empty_tag_with_kind(self):
++ def _test_empty_tag_with_kind(self):
+ template = self.env.from_string("""{% compress js %}{% block js %}
+ {% endblock %}{% endcompress js %}""")
+ context = {'STATIC_URL': settings.COMPRESS_URL}
+ self.assertEqual('', template.render(context))
+
+- def test_css_tag(self):
++ def _test_css_tag(self):
+ template = self.env.from_string("""{% compress css -%}
+ <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css" charset="utf-8">
+ <style type="text/css">p { border:5px solid green;}</style>
+@@ -86,7 +86,7 @@ class TestJinja2CompressorExtension(TestCase):
+ out = css_tag("/static/CACHE/css/e41ba2cc6982.css")
+ self.assertEqual(out, template.render(context))
+
+- def test_nonascii_css_tag(self):
++ def _test_nonascii_css_tag(self):
+ template = self.env.from_string("""{% compress css -%}
+ <link rel="stylesheet" href="{{ STATIC_URL }}css/nonasc.css" type="text/css" charset="utf-8">
+ <style type="text/css">p { border:5px solid green;}</style>
+@@ -95,7 +95,7 @@ class TestJinja2CompressorExtension(TestCase):
+ out = css_tag("/static/CACHE/css/799f6defe43c.css")
+ self.assertEqual(out, template.render(context))
+
+- def test_js_tag(self):
++ def _test_js_tag(self):
+ template = self.env.from_string("""{% compress js -%}
+ <script src="{{ STATIC_URL }}js/one.js" type="text/javascript" charset="utf-8"></script>
+ <script type="text/javascript" charset="utf-8">obj.value = "value";</script>
+@@ -104,7 +104,7 @@ class TestJinja2CompressorExtension(TestCase):
+ out = '<script type="text/javascript" src="/static/CACHE/js/066cd253eada.js"></script>'
+ self.assertEqual(out, template.render(context))
+
+- def test_nonascii_js_tag(self):
++ def _test_nonascii_js_tag(self):
+ template = self.env.from_string("""{% compress js -%}
+ <script src="{{ STATIC_URL }}js/nonasc.js" type="text/javascript" charset="utf-8"></script>
+ <script type="text/javascript" charset="utf-8">var test_value = "\u2014";</script>
+@@ -113,7 +113,7 @@ class TestJinja2CompressorExtension(TestCase):
+ out = '<script type="text/javascript" src="/static/CACHE/js/e214fe629b28.js"></script>'
+ self.assertEqual(out, template.render(context))
+
+- def test_nonascii_latin1_js_tag(self):
++ def _test_nonascii_latin1_js_tag(self):
+ template = self.env.from_string("""{% compress js -%}
+ <script src="{{ STATIC_URL }}js/nonasc-latin1.js" type="text/javascript" charset="latin-1"></script>
+ <script type="text/javascript">var test_value = "\u2014";</script>
+@@ -122,7 +122,7 @@ class TestJinja2CompressorExtension(TestCase):
+ out = '<script type="text/javascript" src="/static/CACHE/js/be9e078b5ca7.js"></script>'
+ self.assertEqual(out, template.render(context))
+
+- def test_css_inline(self):
++ def _test_css_inline(self):
+ template = self.env.from_string("""{% compress css, inline -%}
+ <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css" charset="utf-8">
+ <style type="text/css">p { border:5px solid green;}</style>
+@@ -134,7 +134,7 @@ class TestJinja2CompressorExtension(TestCase):
+ ])
+ self.assertEqual(out, template.render(context))
+
+- def test_js_inline(self):
++ def _test_js_inline(self):
+ template = self.env.from_string("""{% compress js, inline -%}
+ <script src="{{ STATIC_URL }}js/one.js" type="text/css" type="text/javascript" charset="utf-8"></script>
+ <script type="text/javascript" charset="utf-8">obj.value = "value";</script>
+@@ -143,7 +143,7 @@ class TestJinja2CompressorExtension(TestCase):
+ out = '<script type="text/javascript">obj={};obj.value="value";</script>'
+ self.assertEqual(out, template.render(context))
+
+- def test_nonascii_inline_css(self):
++ def _test_nonascii_inline_css(self):
+ org_COMPRESS_ENABLED = settings.COMPRESS_ENABLED
+ settings.COMPRESS_ENABLED = False
+ template = self.env.from_string('{% compress css %}'
+diff --git a/compressor/tests/test_storages.py b/compressor/tests/test_storages.py
+index 91a36f2..986fef1 100644
+--- a/compressor/tests/test_storages.py
++++ b/compressor/tests/test_storages.py
+@@ -34,7 +34,7 @@ class StorageTestCase(TestCase):
+ self.assertTrue(os.path.exists(os.path.join(settings.COMPRESS_ROOT, 'test.txt')))
+ self.assertTrue(os.path.exists(os.path.join(settings.COMPRESS_ROOT, 'test.txt.gz')))
+
+- def test_css_tag_with_storage(self):
++ def _test_css_tag_with_storage(self):
+ template = """{% load compress %}{% compress css %}
+ <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css">
+ <style type="text/css">p { border:5px solid white;}</style>
+diff --git a/compressor/tests/test_templatetags.py b/compressor/tests/test_templatetags.py
+index db0d1b7..f2f1cc6 100644
+--- a/compressor/tests/test_templatetags.py
++++ b/compressor/tests/test_templatetags.py
+@@ -34,12 +34,12 @@ class TemplatetagTestCase(TestCase):
+ def tearDown(self):
+ settings.COMPRESS_ENABLED = self.old_enabled
+
+- def test_empty_tag(self):
++ def _test_empty_tag(self):
+ template = """{% load compress %}{% compress js %}{% block js %}
+ {% endblock %}{% endcompress %}"""
+ self.assertEqual('', render(template, self.context))
+
+- def test_css_tag(self):
++ def _test_css_tag(self):
+ template = """{% load compress %}{% compress css %}
+ <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css">
+ <style type="text/css">p { border:5px solid green;}</style>
+@@ -48,7 +48,7 @@ class TemplatetagTestCase(TestCase):
+ out = css_tag("/static/CACHE/css/e41ba2cc6982.css")
+ self.assertEqual(out, render(template, self.context))
+
+- def test_uppercase_rel(self):
++ def _test_uppercase_rel(self):
+ template = """{% load compress %}{% compress css %}
+ <link rel="StyleSheet" href="{{ STATIC_URL }}css/one.css" type="text/css">
+ <style type="text/css">p { border:5px solid green;}</style>
+@@ -57,7 +57,7 @@ class TemplatetagTestCase(TestCase):
+ out = css_tag("/static/CACHE/css/e41ba2cc6982.css")
+ self.assertEqual(out, render(template, self.context))
+
+- def test_nonascii_css_tag(self):
++ def _test_nonascii_css_tag(self):
+ template = """{% load compress %}{% compress css %}
+ <link rel="stylesheet" href="{{ STATIC_URL }}css/nonasc.css" type="text/css">
+ <style type="text/css">p { border:5px solid green;}</style>
+@@ -66,7 +66,7 @@ class TemplatetagTestCase(TestCase):
+ out = css_tag("/static/CACHE/css/799f6defe43c.css")
+ self.assertEqual(out, render(template, self.context))
+
+- def test_js_tag(self):
++ def _test_js_tag(self):
+ template = """{% load compress %}{% compress js %}
+ <script src="{{ STATIC_URL }}js/one.js" type="text/javascript"></script>
+ <script type="text/javascript">obj.value = "value";</script>
+@@ -75,7 +75,7 @@ class TemplatetagTestCase(TestCase):
+ out = '<script type="text/javascript" src="/static/CACHE/js/066cd253eada.js"></script>'
+ self.assertEqual(out, render(template, self.context))
+
+- def test_nonascii_js_tag(self):
++ def _test_nonascii_js_tag(self):
+ template = """{% load compress %}{% compress js %}
+ <script src="{{ STATIC_URL }}js/nonasc.js" type="text/javascript"></script>
+ <script type="text/javascript">var test_value = "\u2014";</script>
+@@ -84,7 +84,7 @@ class TemplatetagTestCase(TestCase):
+ out = '<script type="text/javascript" src="/static/CACHE/js/e214fe629b28.js"></script>'
+ self.assertEqual(out, render(template, self.context))
+
+- def test_nonascii_latin1_js_tag(self):
++ def _test_nonascii_latin1_js_tag(self):
+ template = """{% load compress %}{% compress js %}
+ <script src="{{ STATIC_URL }}js/nonasc-latin1.js" type="text/javascript" charset="latin-1"></script>
+ <script type="text/javascript">var test_value = "\u2014";</script>
+@@ -115,7 +115,7 @@ class TemplatetagTestCase(TestCase):
+ <script type="text/javascript">obj.value = "value";</script>"""
+ self.assertEqual(out, render(template, context))
+
+- def test_named_compress_tag(self):
++ def _test_named_compress_tag(self):
+ template = """{% load compress %}{% compress js inline foo %}
+ <script type="text/javascript">obj.value = "value";</script>
+ {% endcompress %}
+@@ -150,14 +150,14 @@ class PrecompilerTemplatetagTestCase(TestCase):
+ settings.COMPRESS_ENABLED = self.old_enabled
+ settings.COMPRESS_PRECOMPILERS = self.old_precompilers
+
+- def test_compress_coffeescript_tag(self):
++ def _test_compress_coffeescript_tag(self):
+ template = """{% load compress %}{% compress js %}
+ <script type="text/coffeescript"># this is a comment.</script>
+ {% endcompress %}"""
+ out = script(src="/static/CACHE/js/e920d58f166d.js")
+ self.assertEqual(out, render(template, self.context))
+
+- def test_compress_coffeescript_tag_and_javascript_tag(self):
++ def _test_compress_coffeescript_tag_and_javascript_tag(self):
+ template = """{% load compress %}{% compress js %}
+ <script type="text/coffeescript"># this is a comment.</script>
+ <script type="text/javascript"># this too is a comment.</script>
+@@ -176,7 +176,7 @@ class PrecompilerTemplatetagTestCase(TestCase):
+ self.assertEqual(out, render(template, self.context))
+
+ @override_settings(COMPRESS_ENABLED=False)
+- def test_compress_coffeescript_tag_compress_enabled_is_false(self):
++ def _test_compress_coffeescript_tag_compress_enabled_is_false(self):
+ template = """{% load compress %}{% compress js %}
+ <script type="text/coffeescript"># this is a comment.</script>
+ {% endcompress %}"""
diff --git a/dev-python/django-compressor/metadata.xml b/dev-python/django-compressor/metadata.xml
new file mode 100644
index 00000000000..88fe76a763a
--- /dev/null
+++ b/dev-python/django-compressor/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">jezdez/django_compressor</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-crispy-forms/Manifest b/dev-python/django-crispy-forms/Manifest
new file mode 100644
index 00000000000..55e86a9b03b
--- /dev/null
+++ b/dev-python/django-crispy-forms/Manifest
@@ -0,0 +1 @@
+DIST django-crispy-forms-1.4.0.tar.gz 47444 SHA256 d0c9531ebdff8dc255f625e677ec2fab326522e3f4cd8f7a3e891d773d281510 SHA512 e06ec72a2fc44aa0f57fd507230289f78caebdb02d4af9adafd4b09a29b1df1be5301f3883c8b9007ecd0722683395451bbc382060eca5a459ddf6ef9edc2e1b WHIRLPOOL 05813292a863c69b3b0296ea7a7912bb8ca0f673fc07eaeff5053def516dc2b836725c7559e98cd8aa7ad59d4d686b2ff04bc53b027ea53413ea2329fa04e42d
diff --git a/dev-python/django-crispy-forms/django-crispy-forms-1.4.0.ebuild b/dev-python/django-crispy-forms/django-crispy-forms-1.4.0.ebuild
new file mode 100644
index 00000000000..658947e05ac
--- /dev/null
+++ b/dev-python/django-crispy-forms/django-crispy-forms-1.4.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Best way to have Django DRY forms"
+HOMEPAGE="https://pypi.python.org/pypi/django-crispy-forms/ http://github.com/maraujop/django-crispy-forms https://django-crispy-forms.readthedocs.org/en/latest/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# Missing DjangoTestSuiteRunner in django
+RESTRICT=test
+
+python_test() {
+ cd crispy_forms/tests || die
+ ${PYTHON} runtests.py || die
+}
diff --git a/dev-python/django-crispy-forms/metadata.xml b/dev-python/django-crispy-forms/metadata.xml
new file mode 100644
index 00000000000..3ba51420a77
--- /dev/null
+++ b/dev-python/django-crispy-forms/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-crispy-forms</remote-id>
+ <remote-id type="github">maraujop/django-crispy-forms</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-debug-toolbar/Manifest b/dev-python/django-debug-toolbar/Manifest
new file mode 100644
index 00000000000..ed99dfed149
--- /dev/null
+++ b/dev-python/django-debug-toolbar/Manifest
@@ -0,0 +1 @@
+DIST django-debug-toolbar-1.3.2.tar.gz 316106 SHA256 3cb9128c17a672864b0daa16065c9d80ff910cbc3b344a3e5d82eb0fb30a185c SHA512 d1428f1f729a190ddbf3a260bc428d7a78421519be60c7f07ad3e7f3498414d4ac0ec64d5772fcf89d6521f83bd9226fae104c43b4f0ad4deaf7cfb427d24b1c WHIRLPOOL f088dc6c4fb766a9e38b2f736a66126bdb75bd3cd7762c8ba06650b401639a644831e848012bd001cbd8ffdaad6b823303765f5f44d8bc79688f2d9b7da4592d
diff --git a/dev-python/django-debug-toolbar/django-debug-toolbar-1.3.2.ebuild b/dev-python/django-debug-toolbar/django-debug-toolbar-1.3.2.ebuild
new file mode 100644
index 00000000000..15af675b92d
--- /dev/null
+++ b/dev-python/django-debug-toolbar/django-debug-toolbar-1.3.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A configurable set of panels that display debug information"
+HOMEPAGE="
+ http://pypi.python.org/pypi/django-debug-toolbar/
+ https://github.com/django-debug-toolbar/django-debug-toolbar/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/django-1.4.2[${PYTHON_USEDEP}]
+ >=dev-python/python-sqlparse-0.1.10[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ # Prevent non essential d'loading by intersphinx
+ sed -e 's:intersphinx_mapping:_&:' -i docs/conf.py || die
+
+ # This prevents distutils from installing 'tests' package, rm magic no more needed
+ sed -e "/find_packages/s:'tests':'tests.\*', 'tests':" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ emake test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-debug-toolbar/metadata.xml b/dev-python/django-debug-toolbar/metadata.xml
new file mode 100644
index 00000000000..0c1990a0f2e
--- /dev/null
+++ b/dev-python/django-debug-toolbar/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">django-debug-toolbar/django-debug-toolbar</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-discover-runner/Manifest b/dev-python/django-discover-runner/Manifest
new file mode 100644
index 00000000000..514083ae078
--- /dev/null
+++ b/dev-python/django-discover-runner/Manifest
@@ -0,0 +1,2 @@
+DIST django-discover-runner-0.4.tar.gz 6764 SHA256 c802a9f19ee9cf55f478c3b664ee6f5ea8973b58248d24aa8c9e2dc65b9fa885 SHA512 594b06915f373b77da3cdbe3e91e989fa6b4befea55381dff63e457f6c5dba9d9b7e4ebd77b88f97b51176e002915bdc8d11bc8e95908cdb4089da2cf997897b WHIRLPOOL 77e127c1b90fb7d1115734a2852d0edfbce56ee3a60e55dbd2a948402819ba694bac1ba4631460b796080a7b4e1e1f84cc41b99dcc2986e1acce5ad2f9a61db4
+DIST django-discover-runner-1.0.tar.gz 9190 SHA256 0ba91fe722c256bcbfdeb36fac7eac0f27e5bfda55d98c4c1cf9ab62b5b084fe SHA512 669287ed7f801dbfe949e2affd9ee1861aa6a41fcc2e2403dc2e106dee3d23c8400d686ef750242bdc74d23eaf316fcf36071c82d7c458ff724305e5fe27410e WHIRLPOOL 67f0e6cf59f4aab1db1012f27e12cc0ea1e3101ed1c066cd1294ec2455f17ee5e4ce5afb3b381a4bd03cb4cd97863c284199ed77ba3c89d430668ab80d723528
diff --git a/dev-python/django-discover-runner/django-discover-runner-0.4.ebuild b/dev-python/django-discover-runner/django-discover-runner-0.4.ebuild
new file mode 100644
index 00000000000..5967def8492
--- /dev/null
+++ b/dev-python/django-discover-runner/django-discover-runner-0.4.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Django test runner based on unittest2's test discovery"
+HOMEPAGE="https://github.com/jezdez/django-discover-runner
+ https://pypi.python.org/pypi/django-discover-runner"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/django[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/django-discover-runner/django-discover-runner-1.0.ebuild b/dev-python/django-discover-runner/django-discover-runner-1.0.ebuild
new file mode 100644
index 00000000000..f80f174dcd4
--- /dev/null
+++ b/dev-python/django-discover-runner/django-discover-runner-1.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Django test runner based on unittest2's test discovery"
+HOMEPAGE="https://github.com/jezdez/django-discover-runner
+ https://pypi.python.org/pypi/django-discover-runner"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/django-discover-runner/metadata.xml b/dev-python/django-discover-runner/metadata.xml
new file mode 100644
index 00000000000..7c1cce3d2a3
--- /dev/null
+++ b/dev-python/django-discover-runner/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-discover-runner</remote-id>
+ <remote-id type="github">jezdez/django-discover-runner</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-endless-pagination/Manifest b/dev-python/django-endless-pagination/Manifest
new file mode 100644
index 00000000000..ed07e60365a
--- /dev/null
+++ b/dev-python/django-endless-pagination/Manifest
@@ -0,0 +1 @@
+DIST django-endless-pagination-2.0.tar.gz 61514 SHA256 a719f9d4e4fcd312774dcc3f260e85e9f5a4ad9a21c96d243b7cc048c3329c85 SHA512 d413c3e4f46c73c47e98eeb073bdbedaea3c03931c7147190594bc170489ae09325b43edae9c1eabe56f606b62bf93777f7444b0b174ff6303a5e30453578ac3 WHIRLPOOL 65929e5500e954ec9f8eaafc1c3519f2623148c1949b6ed39b00d172a3c4470e106e9fcea10925c9f21a254bf50be90e2c48281283e7235d00ed3e2bab0c7bfd
diff --git a/dev-python/django-endless-pagination/django-endless-pagination-2.0.ebuild b/dev-python/django-endless-pagination/django-endless-pagination-2.0.ebuild
new file mode 100644
index 00000000000..0557eacc969
--- /dev/null
+++ b/dev-python/django-endless-pagination/django-endless-pagination-2.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools supporting ajax, multiple and lazy pagination, Twitter-style and Digg-style pagination"
+HOMEPAGE="https://github.com/frankban/django-endless-pagination"
+SRC_URI="https://github.com/frankban/django-endless-pagination/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/django-1.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/django-nose[${PYTHON_USEDEP}]
+ dev-python/ipdb[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/xvfbwrapper[${PYTHON_USEDEP}]
+ )
+"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ unset PYTHONPATH
+ "${PYTHON}" tests/manage.py test || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${S}"/doc/_build/html/. )
+
+ #rm all OSX fork files, Bug #450842
+ pushd "${ED}" > /dev/null
+ rm -f $(find . -name "._*")
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-endless-pagination/metadata.xml b/dev-python/django-endless-pagination/metadata.xml
new file mode 100644
index 00000000000..33d45f7a153
--- /dev/null
+++ b/dev-python/django-endless-pagination/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">frankban/django-endless-pagination</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-evolution/Manifest b/dev-python/django-evolution/Manifest
new file mode 100644
index 00000000000..bf5d009b450
--- /dev/null
+++ b/dev-python/django-evolution/Manifest
@@ -0,0 +1,3 @@
+DIST django_evolution-0.6.9.tar.gz 65021 SHA256 7a526b1a39e07dd3df3612986896bd8bd5e7dd42a38a9779ce749a4e8f3015f4 SHA512 f3e0925546210bdcb622ed7e51ed6e032acfc721bee9dbd7ba96b4280b36c978657c8b3d68d17799c3cc654796f8cb4d7f6c05f6eaa49840471b7f1f5dc96651 WHIRLPOOL 043a1beb21c19765cbc207ba0ef5b2c1543ee78d2c6066dbf1b53f7c877783aa50d0193eab01547db38297204969a862e3330ca22865f1903f6d06b12983bfae
+DIST django_evolution-0.7.4.tar.gz 88467 SHA256 0b75bf163d5c859f171baf674503dfb3ca7d1d2ef082e5c5952d52b9ee6644e4 SHA512 6a6596211da7c0df1690e969b6116ee86ef2645886aab3d2026c1eadc0663f58f8c4025ffc30bb5b11f2f7ccedc687702396244c8fb12f1ea12b026521f90803 WHIRLPOOL e9f35d9c0ca8f8e199d1da3092904e38ec9e72e9602e342d7e5c0b20542d7f9ff591fae1b6a39b5703bb73a0822ae7f317d32f592301153aac7bbf7c56ef530b
+DIST django_evolution-0.7.5.tar.gz 89551 SHA256 db9ee54849ccce54736b18926bd3b839d5a0e61a713263851d3e220c49e96ce1 SHA512 f457fa53ff59bff09fa3fc3ad73ffc8f09ce306c756b022d2da097cba1f14b69dca03ff2c714ac470da7200f649c4765543a717a6ce851d1dbd4b0fc8fc84098 WHIRLPOOL 38cacf172047d97ef60cda119ca69bfada8b24687e21d7194c580bfff2def50e84c402223c086c9e870385b465d96556cc4b90ff9a0033937783529cab220be0
diff --git a/dev-python/django-evolution/django-evolution-0.6.9.ebuild b/dev-python/django-evolution/django-evolution-0.6.9.ebuild
new file mode 100644
index 00000000000..fe2e0c4d8d0
--- /dev/null
+++ b/dev-python/django-evolution/django-evolution-0.6.9.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A Django application that will run cron jobs for other django apps"
+HOMEPAGE="http://code.google.com/p/django-evolution/ http://pypi.python.org/pypi/django_evolution/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/django[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ # Fix installing 'tests' package in the global scope.
+ # http://code.google.com/p/django-evolution/issues/detail?id=134
+ sed -i -e 's:find_packages(:&exclude=("tests",):' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # http://code.google.com/p/django-evolution/issues/detail?id=135
+ # This is tested, any delay in die subsequent to (implicitly inherited) multiprocessing eclass
+ "${PYTHON}" tests/runtests.py || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc -r docs/
+}
diff --git a/dev-python/django-evolution/django-evolution-0.7.4.ebuild b/dev-python/django-evolution/django-evolution-0.7.4.ebuild
new file mode 100644
index 00000000000..3e463cafbb4
--- /dev/null
+++ b/dev-python/django-evolution/django-evolution-0.7.4.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# This is now py3 compatible however is only re'd for Djblets which is py2.7 compat only
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+RELEASE="0.7"
+
+DESCRIPTION="A Django application that will run cron jobs for other django apps"
+HOMEPAGE="http://code.google.com/p/django-evolution/ http://pypi.python.org/pypi/django_evolution/"
+SRC_URI="http://downloads.reviewboard.org/releases/${PN}/${RELEASE}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+DOCS=( NEWS docs/{evolution.txt,faq.txt} )
+#DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ # Draws 1 trivial fail under django django-1.4.x
+ "${PYTHON}" tests/runtests.py || die
+}
diff --git a/dev-python/django-evolution/django-evolution-0.7.5.ebuild b/dev-python/django-evolution/django-evolution-0.7.5.ebuild
new file mode 100644
index 00000000000..2906ac8ec47
--- /dev/null
+++ b/dev-python/django-evolution/django-evolution-0.7.5.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# This is now py3 compatible however is only re'd for Djblets which is py2.7 compat only
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+RELEASE="0.7"
+
+DESCRIPTION="A Django application that will run cron jobs for other django apps"
+HOMEPAGE="http://code.google.com/p/django-evolution/ http://pypi.python.org/pypi/django_evolution/"
+SRC_URI="http://downloads.reviewboard.org/releases/${PN}/${RELEASE}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+DOCS=( NEWS docs/{evolution.txt,faq.txt} )
+
+python_test() {
+ # Draws 1 trivial fail under django django-1.4.x
+ einfo "The testsuite is not compatible with >=django-1.7"
+ "${PYTHON}" tests/runtests.py || die
+}
diff --git a/dev-python/django-evolution/metadata.xml b/dev-python/django-evolution/metadata.xml
new file mode 100644
index 00000000000..51b6135cf7f
--- /dev/null
+++ b/dev-python/django-evolution/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django_evolution</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-extensions/Manifest b/dev-python/django-extensions/Manifest
new file mode 100644
index 00000000000..ace75d4c7f0
--- /dev/null
+++ b/dev-python/django-extensions/Manifest
@@ -0,0 +1,5 @@
+DIST django-extensions-1.4.0.tgz 185140 SHA256 04591eb842c21feb9441bda02b70be62760c2126acb33ad644fd40b967480145 SHA512 bbbbc641b8d1423f0365c6fa2467e5c93133c47cf84b629101f08ea4fac4d53f04d5ca75fd6d3fafae4160124d1c6e67a8da764c37432a65aaa95adfb8277b4d WHIRLPOOL f3689ef5f45f89a38a0a6c030fd9205ed8051c25766e9c7c1018acd5cb28cc92b8fe2e909a05c0d1b1250cb07ddf182d48791ee51a9faa6229cfc25125c03056
+DIST django-extensions-1.5.0.tgz 193691 SHA256 4922bab0ba7d25801f23d55ed9fd40eeb884e3b81e196a7b22f0720b9741e5f3 SHA512 9045b3c9ce83038462d797a81e17ab15959e6100519f7df08420bf3aa85e1fa542942a00af889bef62ca300f06d64fbdc8ab8e4da74fd067f5b34385689f04c1 WHIRLPOOL f54837321aaa49c0d8bd37527a4193b024594e8ceef5a94f44b54d3903237007b4dff47a0dd057db16456afdef05fde47bbf3b471ea465cf0b70198a2cdcaf3f
+DIST django-extensions-1.5.2.tar.gz 399105 SHA256 6b28b2b1029ca5891cc46303df7ce6a53f425b508b5633d188f612d54545b401 SHA512 9cf904397c3a1c7f924e23d9609e126bdcc19084b6d2aa7b9f1b7dfb88c8dfd0aa6c4686fab27747ed8dafb16dcc16c24a39e5b8fe29fa055f9feed5553ea86d WHIRLPOOL ae7657495a22cd5fdf8d5b6de5a893baa8215c22015997f048960d5820e932648af43e0dfdf99485134355c4fcdbed7da9c5e3a200e449571b39f7c8ae54ac3e
+DIST django-extensions-1.5.3.tar.gz 399785 SHA256 b88d4773697a16a0a2a9ba6fcb082c6c51ec9543ca0f634541680fec4a6867b1 SHA512 3fba49653e2120c0862f475502d5f9a52ddd57f7599eef4295591ff1bc744919d3a8e6a15752d3603a5843bea23362f1ec60a923e6aac05e5692be71d9f99dac WHIRLPOOL d0bc3c51bb42b09031c993526606d4df87266448b56f42daf5e76594c075c2f3dad4c89c4bfaa4fe5963e67ca987bd34cefb995d04de5bba693bfbdb7b8a9ae5
+DIST django-extensions-1.5.5.tar.gz 400104 SHA256 59c77d2c1bfd0bb1099dcba124a96b28c976c1c7bdcefc22be76aa2d9623654f SHA512 9cbb1687edaab4018f9fe9973f9be6930e8bb1730e40c3826b0288f8fc13ad4d8d8d70d89302f65164bde18a5e0832c944a18a4b4eadbbb3c2a45c186aeccabe WHIRLPOOL f4236d3c05c70eb15e56e992a61d7fa9c23a084be70efe9b642b64f466950f9652fd88dd9fd2ff0f60024866806b74a3091f3860d3674d4c8e0ec4378c1b11fa
diff --git a/dev-python/django-extensions/django-extensions-1.4.0.ebuild b/dev-python/django-extensions/django-extensions-1.4.0.ebuild
new file mode 100644
index 00000000000..23a8f43c093
--- /dev/null
+++ b/dev-python/django-extensions/django-extensions-1.4.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+GIT_HASH_TAG="32ffe9b"
+
+DESCRIPTION="Django Command Extensions"
+HOMEPAGE="http://github.com/django-extensions/django-extensions http://code.google.com/p/django-command-extensions/"
+SRC_URI="http://github.com/django-extensions/django-extensions/tarball/${PV}/${P}.tgz"
+
+LICENSE="BSD || ( MIT GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc graphviz s3 test vcard"
+# Req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PY2_USEDEP=$(python_gen_usedep 'python2*')
+RDEPEND=">=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ graphviz? ( dev-python/pygraphviz[${PY2_USEDEP}] )
+ s3? ( dev-python/boto[${PY2_USEDEP}] )
+ vcard? ( dev-python/vobject[${PY2_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/shortuuid[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${PN}-${PN}-${GIT_HASH_TAG}"
+
+PY2_REQUSE="|| ( $(python_gen_useflags python2* ) )"
+REQUIRED_USE="
+ graphviz? ( ${PY2_REQUSE} )
+ s3? ( ${PY2_REQUSE} )
+ vcard? ( ${PY2_REQUSE} )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" run_tests.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-extensions/django-extensions-1.5.0.ebuild b/dev-python/django-extensions/django-extensions-1.5.0.ebuild
new file mode 100644
index 00000000000..f26cc3148e1
--- /dev/null
+++ b/dev-python/django-extensions/django-extensions-1.5.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+GIT_HASH_TAG="d39ecfd"
+
+DESCRIPTION="Django Command Extensions"
+HOMEPAGE="http://github.com/django-extensions/django-extensions http://django-extensions.readthedocs.org"
+SRC_URI="http://github.com/django-extensions/django-extensions/tarball/${PV}/${P}.tgz"
+
+LICENSE="BSD || ( MIT GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+RDEPEND="
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/shortuuid[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tox[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${PN}-${PN}-${GIT_HASH_TAG}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" run_tests.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ echo ""
+ elog "Further enhancements can be achieved by installing the following packages:"
+ echo ""
+ optfeature "Use ipython in shell_plus" dev-python/ipython
+ optfeature "Use ptpython in shell_plus" dev-python/ptpython
+ optfeature "Renders a graphical overview of your project or specified apps." dev-python/pygraphviz
+ optfeature "sync your MEDIA_ROOT and STATIC_ROOT folders to S3" dev-python/boto
+ optfeature "RunServerPlus-typical runserver with Werkzeug debugger baked in" dev-python/werkzeug dev-python/watchdog
+}
diff --git a/dev-python/django-extensions/django-extensions-1.5.2.ebuild b/dev-python/django-extensions/django-extensions-1.5.2.ebuild
new file mode 100644
index 00000000000..fe2f15ecae8
--- /dev/null
+++ b/dev-python/django-extensions/django-extensions-1.5.2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Django Command Extensions"
+HOMEPAGE="http://github.com/django-extensions/django-extensions http://django-extensions.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD || ( MIT GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+RDEPEND="
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/shortuuid[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tox[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ echo ""
+ elog "Further enhancements can be achieved by installing the following packages:"
+ echo ""
+ optfeature "Use ipython in shell_plus" dev-python/ipython
+ optfeature "Use ptpython in shell_plus" dev-python/ptpython
+ optfeature "Renders a graphical overview of your project or specified apps." dev-python/pygraphviz
+ optfeature "sync your MEDIA_ROOT and STATIC_ROOT folders to S3" dev-python/boto
+ optfeature "RunServerPlus-typical runserver with Werkzeug debugger baked in" dev-python/werkzeug dev-python/watchdog
+}
diff --git a/dev-python/django-extensions/django-extensions-1.5.3.ebuild b/dev-python/django-extensions/django-extensions-1.5.3.ebuild
new file mode 100644
index 00000000000..fe2f15ecae8
--- /dev/null
+++ b/dev-python/django-extensions/django-extensions-1.5.3.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Django Command Extensions"
+HOMEPAGE="http://github.com/django-extensions/django-extensions http://django-extensions.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD || ( MIT GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+RDEPEND="
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/shortuuid[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tox[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ echo ""
+ elog "Further enhancements can be achieved by installing the following packages:"
+ echo ""
+ optfeature "Use ipython in shell_plus" dev-python/ipython
+ optfeature "Use ptpython in shell_plus" dev-python/ptpython
+ optfeature "Renders a graphical overview of your project or specified apps." dev-python/pygraphviz
+ optfeature "sync your MEDIA_ROOT and STATIC_ROOT folders to S3" dev-python/boto
+ optfeature "RunServerPlus-typical runserver with Werkzeug debugger baked in" dev-python/werkzeug dev-python/watchdog
+}
diff --git a/dev-python/django-extensions/django-extensions-1.5.5.ebuild b/dev-python/django-extensions/django-extensions-1.5.5.ebuild
new file mode 100644
index 00000000000..1c0e3348d6e
--- /dev/null
+++ b/dev-python/django-extensions/django-extensions-1.5.5.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Django Command Extensions"
+HOMEPAGE="http://github.com/django-extensions/django-extensions http://django-extensions.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD || ( MIT GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+RDEPEND="
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-python/django-1.5.4[${PYTHON_USEDEP}]
+ dev-python/shortuuid[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tox[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ echo ""
+ elog "Further enhancements can be achieved by installing the following packages:"
+ echo ""
+ optfeature "Use ipython in shell_plus" dev-python/ipython
+ optfeature "Use ptpython in shell_plus" dev-python/ptpython
+ optfeature "Renders a graphical overview of your project or specified apps." dev-python/pygraphviz
+ optfeature "sync your MEDIA_ROOT and STATIC_ROOT folders to S3" dev-python/boto
+ optfeature "RunServerPlus-typical runserver with Werkzeug debugger baked in" dev-python/werkzeug dev-python/watchdog
+}
diff --git a/dev-python/django-extensions/metadata.xml b/dev-python/django-extensions/metadata.xml
new file mode 100644
index 00000000000..c6f6e0c4a4d
--- /dev/null
+++ b/dev-python/django-extensions/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+ <use>
+ <flag name="graphviz">Create a diagram of your database entity relationships using <pkg>dev-python/pygraphviz</pkg>.</flag>
+ <flag name="s3">Upload your media files to S3.</flag>
+ <flag name="vcard">Export your users email addresses to the vcard format.</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">django-extensions</remote-id>
+ <remote-id type="github">django-extensions/django-extensions</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-formtools/Manifest b/dev-python/django-formtools/Manifest
new file mode 100644
index 00000000000..407ab6f3912
--- /dev/null
+++ b/dev-python/django-formtools/Manifest
@@ -0,0 +1 @@
+DIST django-formtools-1.0.tar.gz 70505 SHA256 647a5855277dcf335902eeeeeba3056e439493e6b7de70b942c988a6d8d70e04 SHA512 828ea5f5057d7ec72ab6cc6613e8af950f16595115bba658892e15aec39498f6e7c3dcb5c50ac4fc7ef54e12a640ed93e76a968f41bec59388630cdc43c9e3ce WHIRLPOOL ef8371e2e41b52b7c58fae2a5c58eef63354fddeeeaa2eb7808df45d003998a955842cf395cb07ce8cb7ea003b01f16b5834c2441ebf8548cd5e21d4ee0f2797
diff --git a/dev-python/django-formtools/django-formtools-1.0.ebuild b/dev-python/django-formtools/django-formtools-1.0.ebuild
new file mode 100644
index 00000000000..e1d5681a338
--- /dev/null
+++ b/dev-python/django-formtools/django-formtools-1.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="High-level abstractions for Django forms"
+HOMEPAGE="http://django-formtools.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="!<dev-python/django-1.8"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-python/django-1.8[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ emake test
+}
diff --git a/dev-python/django-formtools/metadata.xml b/dev-python/django-formtools/metadata.xml
new file mode 100644
index 00000000000..c2893eed6c6
--- /dev/null
+++ b/dev-python/django-formtools/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-formtools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-haystack/Manifest b/dev-python/django-haystack/Manifest
new file mode 100644
index 00000000000..541e729e56f
--- /dev/null
+++ b/dev-python/django-haystack/Manifest
@@ -0,0 +1,2 @@
+DIST django-haystack-2.2.0.tar.gz 155409 SHA256 31f5f08524dc46927a5ae1d4024d6496b5f990b0ed1012ad338293636d38fb78 SHA512 7bc27965650a759874c7e90b332994930a9318a4ca01245b04ade97559a6a125655c8a4fc182a3bcac63dbcd4bce76e71950218dff3116d3092d96f94e63e137 WHIRLPOOL 9869f57717a48edb3e27c7f7993ea03372620d81a71ee7f0dcbbd6a7e9bf09acda670b6d142f393ff242cb20af311962f99ca2f3821b161d92fe004dfc7d8d72
+DIST django-haystack-2.3.1.tar.gz 973789 SHA256 a30df888ee0da32c4837c328ecf859e992edb6d185efa7d49341cc1949dbb24d SHA512 c051523a63f32e066e3d8c83ef5cc9eec77a969801f57a0826073317c4d80bb24a67b4487638d38028ae288d9698d32483b2755f171a1b3cbb66f13b2b28a623 WHIRLPOOL 8752bf5c6197ef921447520b7da2a1ed3ae9da641c6cdecedfba41749a14f7a69b0ada343fd0aafc40726de9e6706c200caa1e68ad03018285be9e62f5140145
diff --git a/dev-python/django-haystack/django-haystack-2.2.0.ebuild b/dev-python/django-haystack/django-haystack-2.2.0.ebuild
new file mode 100644
index 00000000000..1da0cfe2494
--- /dev/null
+++ b/dev-python/django-haystack/django-haystack-2.2.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Pluggable search for Django"
+HOMEPAGE="http://haystacksearch.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+RDEPEND=">=dev-python/django-1.5.8[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-haystack/django-haystack-2.3.1.ebuild b/dev-python/django-haystack/django-haystack-2.3.1.ebuild
new file mode 100644
index 00000000000..df67e6d8d5c
--- /dev/null
+++ b/dev-python/django-haystack/django-haystack-2.3.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Pluggable search for Django"
+HOMEPAGE="http://haystacksearch.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/django-1.6[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/elasticsearch-py[$(python_gen_usedep 'python*')]
+ dev-python/geopy[$(python_gen_usedep 'python*')]
+ dev-python/lxml[$(python_gen_usedep 'python*')]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/pysolr-3.2.0[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/whoosh[${PYTHON_USEDEP}]
+ )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+RESTRICT="test"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ ${EPYTHON} test_haystack/solr_tests/server/wait-for-solr
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-haystack/metadata.xml b/dev-python/django-haystack/metadata.xml
new file mode 100644
index 00000000000..6e9dd6c3d80
--- /dev/null
+++ b/dev-python/django-haystack/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-haystack</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-international/Manifest b/dev-python/django-international/Manifest
new file mode 100644
index 00000000000..69d8b27d3b7
--- /dev/null
+++ b/dev-python/django-international/Manifest
@@ -0,0 +1,2 @@
+DIST django-international-0.0.3.tar.gz 16481 SHA256 3be26df5e77d43f04992d26d7a6fa1728f9571c2f8e7ad2f2edbe29d36772340 SHA512 9a42d150e3280f927fc55adcadd7e3618aa8b3fdc21e0f79bbc4943a7915505bb0dab7fab1359dc6e229adc59a5598627de6e529cb065afdbb173454879ebf88 WHIRLPOOL cc2c27cd04d2b29f8f0b62edf6b009e6863d5087343a4f637afd73c7c04f92587a4cc509587a669fdd421cf796a1616356ac92c9ecf413d6009ea0a280d67984
+DIST django-international-0.0.6.tar.gz 17104 SHA256 21e94cf90ac6befc267132916b8ca1b33100f95dab544184f42125968fb3b946 SHA512 a7ef5881467b88bd1d611476a8bc43ba54731f7bea8abd8790ca7b6912480c4b87ebc4d37a41859f60738d961b4a6c0221fabce5bc2d90c4fc83c8991567990c WHIRLPOOL 721196703beed43a88ee80a60a83ea037a75be07828eee787427018867b0ea0ab64ec1ad75b1a9a16e86bfd6460b8a393532c553b82bff78adf3e8e5f9a341b3
diff --git a/dev-python/django-international/django-international-0.0.3.ebuild b/dev-python/django-international/django-international-0.0.3.ebuild
new file mode 100644
index 00000000000..3e59838545f
--- /dev/null
+++ b/dev-python/django-international/django-international-0.0.3.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="Country and currency data for Django projects"
+HOMEPAGE="http://pypi.python.org/pypi/django-international https://bitbucket.org/monwara/django-international"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="BSD"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/django"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_install() {
+ distutils-r1_python_install_all
+ dodir usr/share/doc/${P}/fixtures
+ docompress -x usr/share/doc/${P}/fixtures
+ insinto usr/share/doc/${P}/fixtures
+ doins international/fixtures/countries_fixture.json
+}
diff --git a/dev-python/django-international/django-international-0.0.6.ebuild b/dev-python/django-international/django-international-0.0.6.ebuild
new file mode 100644
index 00000000000..dc928d29d8f
--- /dev/null
+++ b/dev-python/django-international/django-international-0.0.6.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="Country and currency data for Django projects"
+HOMEPAGE="http://pypi.python.org/pypi/django-international https://bitbucket.org/monwara/django-international"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="BSD"
+SLOT="0"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-international/metadata.xml b/dev-python/django-international/metadata.xml
new file mode 100644
index 00000000000..d8329320450
--- /dev/null
+++ b/dev-python/django-international/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-international</remote-id>
+ <remote-id type="bitbucket">monwara/django-international</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-ldap-groups/Manifest b/dev-python/django-ldap-groups/Manifest
new file mode 100644
index 00000000000..e2110c8f843
--- /dev/null
+++ b/dev-python/django-ldap-groups/Manifest
@@ -0,0 +1 @@
+DIST django-ldap-groups-0.1.3.tar.gz 8886 SHA256 39abf7f66e86163504055ae94ce2a58233b6dc6d50fedf2e436d63224090830a SHA512 0e9c5a1f1f38042f0a0dc9301c667a00b144ad0cbf15afd69cc44e241933626e0536752354ead4ae937ff3625c5ded86edaf0592a8e2c7b9f39ab86336e7d876 WHIRLPOOL b96a873d23632d1f8e3b94b6845094882beb994dfe3ff66e30d74b46137825ad2d0c99279846a869cbdb8cd1109c3c138f17cb9dcd7475f6e46e8ddf144a47b8
diff --git a/dev-python/django-ldap-groups/django-ldap-groups-0.1.3-r1.ebuild b/dev-python/django-ldap-groups/django-ldap-groups-0.1.3-r1.ebuild
new file mode 100644
index 00000000000..105cd0aef11
--- /dev/null
+++ b/dev-python/django-ldap-groups/django-ldap-groups-0.1.3-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A reusable application for the Django web framework"
+HOMEPAGE="http://code.google.com/p/django-ldap-groups"
+SRC_URI="http://django-ldap-groups.googlecode.com/files/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="${RDEPEND} dev-python/django[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( ldap_groups/README )
diff --git a/dev-python/django-ldap-groups/metadata.xml b/dev-python/django-ldap-groups/metadata.xml
new file mode 100644
index 00000000000..9121b3205ce
--- /dev/null
+++ b/dev-python/django-ldap-groups/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+</pkgmetadata>
+
diff --git a/dev-python/django-ldapdb/Manifest b/dev-python/django-ldapdb/Manifest
new file mode 100644
index 00000000000..09b38739c32
--- /dev/null
+++ b/dev-python/django-ldapdb/Manifest
@@ -0,0 +1 @@
+DIST django-ldapdb-0.3.2.tar.gz 11029 SHA256 b6bab3a4501419ff9ba1e50076b67c5f92e1c0b3d4b2c8c40014aadb5c06cc6d SHA512 d1f88f754bebda53b5f51c5120b070ce93e229a1c31d59bcdb5cbffdfdc1d590479ae5a2024805705d8bcf51bad8787d578a348ec78ffc5565bdeedb9ffa7b96 WHIRLPOOL 013869787a85a822712ea2331272651d43462320319256d5e07355502a7392cd601b084492f03fb40b2f12fa733ca0e87ecc283a4fc7ba71fd37bbdc9d1b0eb3
diff --git a/dev-python/django-ldapdb/django-ldapdb-0.3.2.ebuild b/dev-python/django-ldapdb/django-ldapdb-0.3.2.ebuild
new file mode 100644
index 00000000000..98fd200c73c
--- /dev/null
+++ b/dev-python/django-ldapdb/django-ldapdb-0.3.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An LDAP database backend for Django"
+HOMEPAGE="https://github.com/jlaine/django-ldapdb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/python-ldap-2.0[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-ldapdb/metadata.xml b/dev-python/django-ldapdb/metadata.xml
new file mode 100644
index 00000000000..185c5834bff
--- /dev/null
+++ b/dev-python/django-ldapdb/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-ldapdb</remote-id>
+ <remote-id type="github">jlaine/django-ldapdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-nose/Manifest b/dev-python/django-nose/Manifest
new file mode 100644
index 00000000000..76cc2b5b2ad
--- /dev/null
+++ b/dev-python/django-nose/Manifest
@@ -0,0 +1,3 @@
+DIST django-nose-1.3.tar.gz 25149 SHA256 3667d26a41fec30364a0ef72580832ca5328802d553f6d6e72af5ac21cb36365 SHA512 0e7f18d32340f912fcde96c3ed4ff63caec71ad178f9bd01e61087a228d7e93ecfd87c5d320a66093bce438561638daacd586a4ecb3198573b28607d33eb853f WHIRLPOOL 0acbbe147c0e434ef641843d10f9781ef26f3dc428ba8e613165ed43d6f5d1dea27bf513d9efcbd551c38c7a1945ae3b06aafb0a6d01c8714479f0c4836f1863
+DIST django-nose-1.4.1.tar.gz 26792 SHA256 224dd1bfd8fcdb9f67256c5430147b4c0105d72f6ac8ce3bca6b486449ec6062 SHA512 9ba42767bdfb0c359d9c693c5a7775767ba1a56c54531e75ff2b97e2e12d2a9f535c771c5b076b9024f3662a4143f115aa4bd84b9844ce8cb71f99c47722dcef WHIRLPOOL 49c285867adcbf0b17a388bfd6c8cd2603d8c7b50ec162b088409c1a049e43718f9bc37167d914327d474f6177fb38e01797a80f0c47bc02fd7db31cbe7e8761
+DIST django-nose-1.4.tar.gz 26477 SHA256 26cef3c6f62df2eee955a25195de6f793881317c0f5fd1a1c6f9e22f351a9313 SHA512 2df1377146304bc0356e24a212bee8ee55c05ccaafcd6fceca4afe5ae528335192c4a89c842f4c2df6965965c9536f0862903aff2141139cfc83695b41d56e32 WHIRLPOOL 7da21678b2b955972f14dc806aac7c5615048b5edae96bdcc17ee4d1302d714519a223356398f89b0d512aa3aa6979567682dd81b8bb6c99cd7cdd340fa66293
diff --git a/dev-python/django-nose/django-nose-1.3.ebuild b/dev-python/django-nose/django-nose-1.3.ebuild
new file mode 100644
index 00000000000..99ac1a9e124
--- /dev/null
+++ b/dev-python/django-nose/django-nose-1.3.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+RESTRICT="test" # missing south
+
+inherit distutils-r1
+
+DESCRIPTION="Django test runner that uses nose"
+HOMEPAGE="https://github.com/jbalogh/django-nose"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/nose-1.2.1[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# test? ( ${RDEPEND}
+# >=dev-python/south-0.7[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" testapp/runtests.py
+}
diff --git a/dev-python/django-nose/django-nose-1.4.1.ebuild b/dev-python/django-nose/django-nose-1.4.1.ebuild
new file mode 100644
index 00000000000..5cc34b373c9
--- /dev/null
+++ b/dev-python/django-nose/django-nose-1.4.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Django test runner that uses nose"
+HOMEPAGE="https://github.com/jbalogh/django-nose"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="test" # The testsuite currently broken See notes below
+
+RDEPEND=">=dev-python/nose-1.2.1[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# test? ( ${RDEPEND}
+# >=dev-python/south-0.7[${PYTHON_USEDEP}] )"
+# South currently doesn't support any versions of django in portage
+# that support python3. They are masked as is south which appears may be deprecated
+
+python_test() {
+ # https://github.com/django-nose/django-nose/issues/227
+ # Running tests by the bash script runtests.sh reveals a missing
+ # folder. Use of runtests.py works only for py2.7 due to
+ # south supporting only old versions of django.
+ # The testsuite has a massive rewrite set in the issue listed above.
+ ./runtests.sh
+# "${PYTHON}" testapp/runtests.py broken
+}
diff --git a/dev-python/django-nose/django-nose-1.4.ebuild b/dev-python/django-nose/django-nose-1.4.ebuild
new file mode 100644
index 00000000000..17870774ebd
--- /dev/null
+++ b/dev-python/django-nose/django-nose-1.4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+RESTRICT="test" # missing south now
+
+inherit distutils-r1
+
+DESCRIPTION="Django test runner that uses nose"
+HOMEPAGE="https://github.com/jbalogh/django-nose"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/nose-1.2.1[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# test? ( ${RDEPEND}
+# >=dev-python/south-0.7[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" testapp/runtests.py
+}
diff --git a/dev-python/django-nose/metadata.xml b/dev-python/django-nose/metadata.xml
new file mode 100644
index 00000000000..c3eb3f76770
--- /dev/null
+++ b/dev-python/django-nose/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-nose</remote-id>
+ <remote-id type="github">jbalogh/django-nose</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-oauth-plus/Manifest b/dev-python/django-oauth-plus/Manifest
new file mode 100644
index 00000000000..75203ab5307
--- /dev/null
+++ b/dev-python/django-oauth-plus/Manifest
@@ -0,0 +1 @@
+DIST django-oauth-plus-2.2.8.tar.gz 25911 SHA256 a9b08d846e23ce0227de8ccce72d453d3618a3de4f83959da2ae75f76b627867 SHA512 9237a2e2e52923b2fdfd3b7feff63e11f2c06c871faca3455189edba233e2a6513169481092f413c3ddea1c919f4b995fb465a505935388f1d803d094942ee07 WHIRLPOOL 9bf83c5052314cc1174ba4080653992569672a7c47a5b78896d7220b099346ac40e1a0f4c81738ec2638b76e942083953eb11e37925c2582cae5a5d098d49132
diff --git a/dev-python/django-oauth-plus/django-oauth-plus-2.2.8.ebuild b/dev-python/django-oauth-plus/django-oauth-plus-2.2.8.ebuild
new file mode 100644
index 00000000000..ede060f4f27
--- /dev/null
+++ b/dev-python/django-oauth-plus/django-oauth-plus-2.2.8.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+# Testsuite written for py2 only, no indication given in source
+
+inherit distutils-r1
+
+DESCRIPTION="Support of OAuth 1.0a in Django using python-oauth2"
+HOMEPAGE="http://pypi.python.org/pypi/django-oauth-plus http://code.welldev.org/django-oauth-plus/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/django-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oauth2-1.5.170[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_test() {
+ PYTHONPATH=.:oauth_provider
+ if "${PYTHON}" oauth_provider/runtests/runtests.py; then
+ einfo "Testsuite passed under ${EPYTHON}"
+ else
+ die "Testsuite failed under ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/django-oauth-plus/metadata.xml b/dev-python/django-oauth-plus/metadata.xml
new file mode 100644
index 00000000000..81c84aa20e2
--- /dev/null
+++ b/dev-python/django-oauth-plus/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-oauth-plus</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-openid-auth/Manifest b/dev-python/django-openid-auth/Manifest
new file mode 100644
index 00000000000..e3758b783ae
--- /dev/null
+++ b/dev-python/django-openid-auth/Manifest
@@ -0,0 +1 @@
+DIST django-openid-auth-0.5.tar.gz 32722 SHA256 2ceb25b16140d6ee02e1c65948c18aa184d62350452a2b4b2f44819b69866dfc SHA512 9d1444aa15d450acc6ffc1ddc8359253828b2cceeee57e98268c1ae25bbcb1e2facd1e065c9e29fa3b167efb86923d72408cc43442b18d6dbed4dca05c33548b WHIRLPOOL 56dc25394756e2dfaed1eca82db60b132ab5c728e08c898b3072f211044fbb6335c51dc11576f60a37f86b41e3fb7a8f8306029b0b559a3260ac57cbd1046d22
diff --git a/dev-python/django-openid-auth/django-openid-auth-0.5.ebuild b/dev-python/django-openid-auth/django-openid-auth-0.5.ebuild
new file mode 100644
index 00000000000..ce5bbe11938
--- /dev/null
+++ b/dev-python/django-openid-auth/django-openid-auth-0.5.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library that can be used to add OpenID support to Django applications"
+HOMEPAGE="https://launchpad.net/django-openid-auth"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${PN}-${PV}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/django-1.3[${PYTHON_USEDEP}]
+ >=dev-python/python-openid-2.2.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( example_consumer/ )
diff --git a/dev-python/django-openid-auth/metadata.xml b/dev-python/django-openid-auth/metadata.xml
new file mode 100644
index 00000000000..e314c7897b4
--- /dev/null
+++ b/dev-python/django-openid-auth/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ryanmcgrath/twython</remote-id>
+ <remote-id type="launchpad">django-openid-auth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-opensearch/Manifest b/dev-python/django-opensearch/Manifest
new file mode 100644
index 00000000000..7b03541a996
--- /dev/null
+++ b/dev-python/django-opensearch/Manifest
@@ -0,0 +1 @@
+DIST django-opensearch-0.2.4.tar.gz 15770 SHA256 483074213473a699b3b6558402bc1502bd378542f53fabeabf651304a0d25912 SHA512 6852f95b52a68cf1c48ceeaa365a691391e7a19363221e3bc32a9dd4c863e37a9611b1f31f91c342303b0e1b3418c4a27873d0a980e64aeab87ff2ccb1aba63d WHIRLPOOL c84fbd512905c081a82e513280e35f3cfb83bac0d47a2dd61c27d9b0af6952170d379dd7fddca9b69a54519f0eb284caf5624b1f60ddd5824f368d154e0ebad7
diff --git a/dev-python/django-opensearch/django-opensearch-0.2.4.ebuild b/dev-python/django-opensearch/django-opensearch-0.2.4.ebuild
new file mode 100644
index 00000000000..7584285541f
--- /dev/null
+++ b/dev-python/django-opensearch/django-opensearch-0.2.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A django reusable application to handle opensearch.xml"
+HOMEPAGE="https://github.com/vint21h/django-opensearch"
+SRC_URI="https://github.com/vint21h/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/django-1.7[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-opensearch/metadata.xml b/dev-python/django-opensearch/metadata.xml
new file mode 100644
index 00000000000..398e8255fbe
--- /dev/null
+++ b/dev-python/django-opensearch/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">vint21h/django-opensearch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-openstack-auth/Manifest b/dev-python/django-openstack-auth/Manifest
new file mode 100644
index 00000000000..b120c625172
--- /dev/null
+++ b/dev-python/django-openstack-auth/Manifest
@@ -0,0 +1,3 @@
+DIST django_openstack_auth-1.1.5.tar.gz 40893 SHA256 ad63e85575caae1107bd05afd8d27b45d4590cc1f6d3b63905959a7c457b1aef SHA512 43a95a1a5b9c24e15d4ff76660a52204c03d6679400632e870ee364c9f7de7b39128cc6acd883cd12abc80cbdfab44a3e3f2a803193eeac7d3e838be39a93ea2 WHIRLPOOL 2515c77ce6aa2c9f3e2860506ae0d5656f3dfda9bf17eb1fba5c307bf477de5aa22a3834b94c053a5f6fc439c9cf2a5b9bbeb7e87bef3bcf3e7739f55b80dd77
+DIST django_openstack_auth-1.2.0.tar.gz 75577 SHA256 5ad78e5c92502f1abfb10fd101c023adf74a3e728bd42ed19ffea2185680f9a6 SHA512 793f0763b47574574864c16c9d79787d44c84259304587b5d2b3375de04291c5d200699297960b3b3904b959ceee31f696fef2233659db9b846c6af06fd8c251 WHIRLPOOL 37632e35beb810979ffb7878c9ffed0258a64caf4a80f61050bb054d70b56e09c9f0f13dac2ce339b87ccdcbeba779893c2ce81912b95f50d52a88b947872092
+DIST django_openstack_auth-1.3.1.tar.gz 75165 SHA256 99c6e92170656eade430d31f79ddf60e66355ff7b84caf038ab1ecc879cff9ba SHA512 cf9b4a1c526f237a23dadab4a7e6a2bd1f80a8d6d89d9b83f4d0fb6fc4df80aba68ad344662fbeaddeca2ca8ec36856af1074da383368d85d56460ed199609aa WHIRLPOOL b99b9381ce9eb1357939b750a40f86373fcbbe411d90a23e15f2d1e77dcfab45e58ac69e4e774228dc1b0dc3d3a0649e451efc0f271e904a4241b06c80b4d8bd
diff --git a/dev-python/django-openstack-auth/django-openstack-auth-1.1.5.ebuild b/dev-python/django-openstack-auth/django-openstack-auth-1.1.5.ebuild
new file mode 100644
index 00000000000..48457ec1827
--- /dev/null
+++ b/dev-python/django-openstack-auth/django-openstack-auth-1.1.5.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Django authentication backend for use with the OpenStack Keystone
+Identity backend."
+HOMEPAGE="http://django_openstack_auth.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/django_openstack_auth/django_openstack_auth-${PV}.tar.gz"
+S="${WORKDIR}/django_openstack_auth-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox-0.5.3[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/django-1.4[${PYTHON_USEDEP}]
+ <dev-python/django-1.7[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" -m openstack_auth.tests.run_tests || die "Testsuite failed"
+}
diff --git a/dev-python/django-openstack-auth/django-openstack-auth-1.2.0.ebuild b/dev-python/django-openstack-auth/django-openstack-auth-1.2.0.ebuild
new file mode 100644
index 00000000000..23635efaa7e
--- /dev/null
+++ b/dev-python/django-openstack-auth/django-openstack-auth-1.2.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Django authentication backend for use with the OpenStack Keystone
+Identity backend."
+HOMEPAGE="http://django_openstack_auth.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/django_openstack_auth/django_openstack_auth-${PV}.tar.gz"
+S="${WORKDIR}/django_openstack_auth-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/django-1.4.2[${PYTHON_USEDEP}]
+ <dev-python/django-1.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" -m openstack_auth.tests.run_tests || die "Testsuite failed"
+}
diff --git a/dev-python/django-openstack-auth/django-openstack-auth-1.3.1.ebuild b/dev-python/django-openstack-auth/django-openstack-auth-1.3.1.ebuild
new file mode 100644
index 00000000000..53af5aa70a1
--- /dev/null
+++ b/dev-python/django-openstack-auth/django-openstack-auth-1.3.1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Django authentication backend for use with OpenStack Keystone Identity backend"
+HOMEPAGE="http://django_openstack_auth.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/django_openstack_auth/django_openstack_auth-${PV}.tar.gz"
+S="${WORKDIR}/django_openstack_auth-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+CDEPEND=">=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}] )
+ ${CDEPEND}
+ doc? ( ${CDEPEND} )"
+RDEPEND="
+ >=dev-python/django-1.4.2[${PYTHON_USEDEP}]
+ <dev-python/django-1.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Avoid warning in doc build due to missed file
+ if use doc; then
+ mkdir doc/source/_static || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # under sphinx-1.3.1 the build outputs a harmless warning about change of
+ # html_theme setting in conf.py. priot versions will have the right setting
+ if use doc; then
+ sphinx-build -b html -c doc/source/ doc/source/ doc/source/html || die
+ fi
+}
+
+python_test() {
+ "${PYTHON}" -m openstack_auth.tests.run_tests || die "Testsuite failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-openstack-auth/metadata.xml b/dev-python/django-openstack-auth/metadata.xml
new file mode 100644
index 00000000000..8147c037263
--- /dev/null
+++ b/dev-python/django-openstack-auth/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A Django authentication backend for use with the OpenStack Keystone Identity backend.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">django_openstack_auth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-otp-yubikey/Manifest b/dev-python/django-otp-yubikey/Manifest
new file mode 100644
index 00000000000..48d651b4e01
--- /dev/null
+++ b/dev-python/django-otp-yubikey/Manifest
@@ -0,0 +1,2 @@
+DIST django-otp-yubikey-0.2.0.tar.gz 11264 SHA256 72a62d0a0cec9ccf1a1a029b04b6b620f30ec501c0115a52ef6472a6817ba808 SHA512 f0b18fb262caa76a25af0a063c85c07b41f7d211dacd1db2dc6cd55995bc505a1e70535b70a95cba722685a3b34c8a304e9b829b9c3f27caae67921f86f7ffde WHIRLPOOL ccd74c242715cd54436ac451b2d69b8a4a75291ac4f2d05ec3c4ead0dba61329ea720149e369799e3772da97ecc4a70139c0ffb7bf658213072c44b5a2cdc3c9
+DIST django-otp-yubikey-0.3.1.tar.gz 14027 SHA256 584ca85fe05525c04575d760348c1c9adaec24fbab882b3c718a56dbd2f3386b SHA512 d7f13a22f2beb52a8566b5f5b43997344a6ea754bcd06fade0fa39872aad2ba2eecc11b9bccff340e2099c264dcae08faf6beb8d99f0508ae5d67646fcd79204 WHIRLPOOL 90e7cd6b63d322335aa725f30435c222542b4a59e6d7c1c5659ab150a1b00e757b13fdc40cef527e95731499e8f922fd900474bcd70b0b03feb6e06753c5df43
diff --git a/dev-python/django-otp-yubikey/django-otp-yubikey-0.2.0.ebuild b/dev-python/django-otp-yubikey/django-otp-yubikey-0.2.0.ebuild
new file mode 100644
index 00000000000..76647d02c00
--- /dev/null
+++ b/dev-python/django-otp-yubikey/django-otp-yubikey-0.2.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="django-otp plugin that verifies YubiKey OTP tokens"
+HOMEPAGE="https://bitbucket.org/psagers/django-otp"
+SRC_URI="mirror://pypi/d/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ dev-python/django-otp[${PYTHON_USEDEP}]
+ dev-python/yubiotp[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/django-otp-yubikey/django-otp-yubikey-0.3.1.ebuild b/dev-python/django-otp-yubikey/django-otp-yubikey-0.3.1.ebuild
new file mode 100644
index 00000000000..f72c43c0504
--- /dev/null
+++ b/dev-python/django-otp-yubikey/django-otp-yubikey-0.3.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="django-otp plugin that verifies YubiKey OTP tokens"
+HOMEPAGE="https://bitbucket.org/psagers/django-otp"
+SRC_URI="mirror://pypi/d/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/django-otp-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/yubiotp-0.2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/django-otp-yubikey/metadata.xml b/dev-python/django-otp-yubikey/metadata.xml
new file mode 100644
index 00000000000..c2fc810c4b5
--- /dev/null
+++ b/dev-python/django-otp-yubikey/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-otp-yubikey</remote-id>
+ <remote-id type="bitbucket">psagers/django-otp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-otp/Manifest b/dev-python/django-otp/Manifest
new file mode 100644
index 00000000000..762813281b0
--- /dev/null
+++ b/dev-python/django-otp/Manifest
@@ -0,0 +1,2 @@
+DIST django-otp-0.2.7.tar.gz 76879 SHA256 dfc305aa894da2b7111c8846d90254b0d9099f415e14165f6e784f5ceddd5f3f SHA512 b48c6dd505ed06b4028a1d27213ea759a1a54ca5f4e5c8dc2aad826535a80295fcdde3a1da455256927d26906e53ee40c47a0ab89de5c6331c2f3567e43fdae7 WHIRLPOOL eb819e389d924953537f0f9db2dff56631b07ea50f898abd398f873dad0144255e14984f6f5aa2ab0d0bd296163c995c7837ab6fafefab87646189047b839f52
+DIST django-otp-0.3.1.tar.gz 38800 SHA256 2aa9f24d655ca0c2583b7fc08c603c2861f337155e35fcc5aae9946e6985db45 SHA512 6eb78da109609ab843d97c170615a2273f32fa02cd9ca874f8e059c80736d98015477c1c15e8db2fba59a449b44c471f067e3ddb87776378e908c04e3a8a82db WHIRLPOOL fe27c2fbdd89ff279694d4b2baa0cd11354c104baccbad8282036ddd476da5b3cadb331d372c7114bcc77f885c606f875039e27b72f1d271fa1df7387e794d2a
diff --git a/dev-python/django-otp/django-otp-0.2.7.ebuild b/dev-python/django-otp/django-otp-0.2.7.ebuild
new file mode 100644
index 00000000000..407eec6f7e9
--- /dev/null
+++ b/dev-python/django-otp/django-otp-0.2.7.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A pluggable framework for adding two-factor authentication to Django using one-time passwords"
+HOMEPAGE="https://bitbucket.org/psagers/django-otp"
+SRC_URI="mirror://pypi/d/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/django-1.4.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-otp/django-otp-0.3.1.ebuild b/dev-python/django-otp/django-otp-0.3.1.ebuild
new file mode 100644
index 00000000000..407eec6f7e9
--- /dev/null
+++ b/dev-python/django-otp/django-otp-0.3.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A pluggable framework for adding two-factor authentication to Django using one-time passwords"
+HOMEPAGE="https://bitbucket.org/psagers/django-otp"
+SRC_URI="mirror://pypi/d/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/django-1.4.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-otp/metadata.xml b/dev-python/django-otp/metadata.xml
new file mode 100644
index 00000000000..c3c00c114af
--- /dev/null
+++ b/dev-python/django-otp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-otp</remote-id>
+ <remote-id type="bitbucket">psagers/django-otp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-picklefield/Manifest b/dev-python/django-picklefield/Manifest
new file mode 100644
index 00000000000..9717f0ede7f
--- /dev/null
+++ b/dev-python/django-picklefield/Manifest
@@ -0,0 +1,2 @@
+DIST django-picklefield-0.3.0.tar.gz 10334 SHA256 d1db231b9bec426a7f0b1c37ebbf4e5448658a4714820d74f847e2f769baa2f0 SHA512 01ba2f5227c3a4613212b9049cf69dfdcccba3aa79309a71fb107cbb0dd3976b9fe0e481ba79180c0a5d1b6e8039dbc367df35a3250ce57008d7fd572b1020ba WHIRLPOOL c696006ee777049058cc04fc6457f1931b855d6f74424a3e73ad87f5d25901a1ee6122b366c481351433b13cb6f20b9e61f417fc59808b30f31749293e86c074
+DIST django-picklefield-0.3.1.tar.gz 10410 SHA256 d99426be46fd92fe6b64b9f5c5926ea9859394e44ec3ef9e1f7c647d3a26657f SHA512 47e9aa8fda2374672c29dcb1068c9bddb0630bfc95cab401aa611123d1eeb3380f42efeee833542e187e052622d60aec1affb1c43cd96e9e69aadc187feba098 WHIRLPOOL eba9dc88dc688007568e5141e427eb9d49c80890d4da6df9487092471d52ab93556a919fda64e64d05e628f1715b03cba15b1cea7d225aba9f9546b35cf68ab1
diff --git a/dev-python/django-picklefield/django-picklefield-0.3.0.ebuild b/dev-python/django-picklefield/django-picklefield-0.3.0.ebuild
new file mode 100644
index 00000000000..5cf232e1ef7
--- /dev/null
+++ b/dev-python/django-picklefield/django-picklefield-0.3.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Implementation of a pickled object field for django"
+HOMEPAGE="http://github.com/shrubberysoft/django-picklefield"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/django-1.1.1[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-picklefield/django-picklefield-0.3.1.ebuild b/dev-python/django-picklefield/django-picklefield-0.3.1.ebuild
new file mode 100644
index 00000000000..fe29ccd8e21
--- /dev/null
+++ b/dev-python/django-picklefield/django-picklefield-0.3.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Implementation of a pickled object field for django"
+HOMEPAGE="http://github.com/shrubberysoft/django-picklefield"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=dev-python/django-1.1.1[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-picklefield/metadata.xml b/dev-python/django-picklefield/metadata.xml
new file mode 100644
index 00000000000..2443d3ac9a4
--- /dev/null
+++ b/dev-python/django-picklefield/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-picklefield</remote-id>
+ <remote-id type="github">shrubberysoft/django-picklefield</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-pipeline/Manifest b/dev-python/django-pipeline/Manifest
new file mode 100644
index 00000000000..1886b93e2b9
--- /dev/null
+++ b/dev-python/django-pipeline/Manifest
@@ -0,0 +1,2 @@
+DIST django-pipeline-1.3.25.tar.gz 41008 SHA256 92c4ba5543d3ad980cd3a65a121ced62a6ad6449a773269a693f54e0ca5c565f SHA512 2c66b8b60076a8d19049947a9465d96fd80098c6e560f6cb6ffa26fd17d267830d87913041f9876da1276b0224ef3e8b0183c56367741e11c0f010a236b87169 WHIRLPOOL 15ac71f71988b2c7f5bb2d7c322843c35f6e34532af526b72bc90c15458b512948b97af333aaa5d52f71fd785f70d9b04018f8337eefc037be2dd24f04c77d7f
+DIST django-pipeline-1.3.26.tar.gz 41054 SHA256 58433fc07cc81f213686b892caeb8d17d6ed4e00444ef95b35f21a5a3cc6357e SHA512 106c89e6a5509305548f6169f9b38d3a288bdf260c4b933ac1372c8471e897b8f6109cdecf70a4f77dff670e2b97abe4ed990903abfc188a59600189d0473284 WHIRLPOOL 7ead1f6dbc6df1a5c4b26869e6b4ae73cd416ed52f22ba1ff16b57a295f476c7973a56af9c05d1b50097e82dcd286207f648920b3acadd88fc40ad26aae10285
diff --git a/dev-python/django-pipeline/django-pipeline-1.3.25.ebuild b/dev-python/django-pipeline/django-pipeline-1.3.25.ebuild
new file mode 100644
index 00000000000..ff473614b8b
--- /dev/null
+++ b/dev-python/django-pipeline/django-pipeline-1.3.25.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An asset packaging library for Django"
+HOMEPAGE="http://pypi.python.org/pypi/django-pipeline/ https://github.com/cyberdelia/django-pipeline"
+
+# PyPi releases lack docs/ subdir:
+# https://github.com/cyberdelia/django-pipeline/pull/254
+SRC_URI="https://github.com/cyberdelia/django-pipeline/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/django-1.5.8[${PYTHON_USEDEP}]
+ dev-python/jsmin[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# As usual for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ PYTHONPATH=. django-admin.py test --settings=tests.settings tests \
+ || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ export PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.jsmin.JSMinCompressor'
+ distutils-r1_python_install
+}
diff --git a/dev-python/django-pipeline/django-pipeline-1.3.26.ebuild b/dev-python/django-pipeline/django-pipeline-1.3.26.ebuild
new file mode 100644
index 00000000000..d9ab3154478
--- /dev/null
+++ b/dev-python/django-pipeline/django-pipeline-1.3.26.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An asset packaging library for Django"
+HOMEPAGE="http://pypi.python.org/pypi/django-pipeline/ https://github.com/cyberdelia/django-pipeline"
+
+# PyPi releases lack docs/ subdir:
+# https://github.com/cyberdelia/django-pipeline/pull/254
+SRC_URI="https://github.com/cyberdelia/django-pipeline/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/django-1.5.8[${PYTHON_USEDEP}]
+ dev-python/jsmin[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/mock[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/${PV}-tests.patch )
+
+# As usual for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/cyberdelia/django-pipeline/issues/381
+ PYTHONPATH=. django-admin.py test --settings=tests.settings tests \
+ || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ export PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.jsmin.JSMinCompressor'
+ distutils-r1_python_install
+}
diff --git a/dev-python/django-pipeline/files/1.3.26-tests.patch b/dev-python/django-pipeline/files/1.3.26-tests.patch
new file mode 100644
index 00000000000..5cdf5e760c9
--- /dev/null
+++ b/dev-python/django-pipeline/files/1.3.26-tests.patch
@@ -0,0 +1,64 @@
+https://github.com/cyberdelia/django-pipeline/commit/ba7b8d0d1cb621521a2025fed3e60786a010836d
+diff --git a/docs/configuration.rst b/docs/configuration.rst
+index 4385e23..e200bc3 100644
+--- a/docs/configuration.rst
++++ b/docs/configuration.rst
+@@ -185,7 +185,7 @@ Other settings
+ (
+ (b'text/coffeescript', '.coffee'),
+ (b'text/less', '.less'),
+- (b'application/javascript', '.js'),
++ (b'text/javascript', '.js'),
+ (b'text/x-sass', '.sass'),
+ (b'text/x-scss', '.scss')
+ )
+diff --git a/tests/tests/test_template.py b/tests/tests/test_template.py
+index 84b6957..a303d03 100644
+--- a/tests/tests/test_template.py
++++ b/tests/tests/test_template.py
+@@ -35,19 +35,19 @@ def test_package_css_disabled(self):
+
+ def test_package_js(self):
+ template = self.env.from_string(u"""{% compressed_js "scripts" %}""")
+- self.assertEqual(u'<script type="application/javascript" src="/static/scripts.js" charset="utf-8"></script>', template.render())
++ self.assertEqual(u'<script type="text/javascript" src="/static/scripts.js" charset="utf-8"></script>', template.render())
+
+ def test_package_js_async(self):
+ template = self.env.from_string(u"""{% compressed_js "scripts_async" %}""")
+- self.assertEqual(u'<script async type="application/javascript" src="/static/scripts_async.js" charset="utf-8"></script>', template.render())
++ self.assertEqual(u'<script async type="text/javascript" src="/static/scripts_async.js" charset="utf-8"></script>', template.render())
+
+ def test_package_js_defer(self):
+ template = self.env.from_string(u"""{% compressed_js "scripts_defer" %}""")
+- self.assertEqual(u'<script defer type="application/javascript" src="/static/scripts_defer.js" charset="utf-8"></script>', template.render())
++ self.assertEqual(u'<script defer type="text/javascript" src="/static/scripts_defer.js" charset="utf-8"></script>', template.render())
+
+ def test_package_js_async_defer(self):
+ template = self.env.from_string(u"""{% compressed_js "scripts_async_defer" %}""")
+- self.assertEqual(u'<script async defer type="application/javascript" src="/static/scripts_async_defer.js" charset="utf-8"></script>', template.render())
++ self.assertEqual(u'<script async defer type="text/javascript" src="/static/scripts_async_defer.js" charset="utf-8"></script>', template.render())
+
+
+ class DjangoTest(TestCase):
+@@ -64,16 +64,16 @@ def test_compressed_css(self):
+
+ def test_compressed_js(self):
+ rendered = self.render_template(u"""{% load compressed %}{% compressed_js "scripts" %}""")
+- self.assertEqual(u'<script type="application/javascript" src="/static/scripts.js" charset="utf-8"></script>', rendered)
++ self.assertEqual(u'<script type="text/javascript" src="/static/scripts.js" charset="utf-8"></script>', rendered)
+
+ def test_compressed_js_async(self):
+ rendered = self.render_template(u"""{% load compressed %}{% compressed_js "scripts_async" %}""")
+- self.assertEqual(u'<script async type="application/javascript" src="/static/scripts_async.js" charset="utf-8"></script>', rendered)
++ self.assertEqual(u'<script async type="text/javascript" src="/static/scripts_async.js" charset="utf-8"></script>', rendered)
+
+ def test_compressed_js_defer(self):
+ rendered = self.render_template(u"""{% load compressed %}{% compressed_js "scripts_defer" %}""")
+- self.assertEqual(u'<script defer type="application/javascript" src="/static/scripts_defer.js" charset="utf-8"></script>', rendered)
++ self.assertEqual(u'<script defer type="text/javascript" src="/static/scripts_defer.js" charset="utf-8"></script>', rendered)
+
+ def test_compressed_js_async_defer(self):
+ rendered = self.render_template(u"""{% load compressed %}{% compressed_js "scripts_async_defer" %}""")
+- self.assertEqual(u'<script async defer type="application/javascript" src="/static/scripts_async_defer.js" charset="utf-8"></script>', rendered)
++ self.assertEqual(u'<script async defer type="text/javascript" src="/static/scripts_async_defer.js" charset="utf-8"></script>', rendered)
+
diff --git a/dev-python/django-pipeline/metadata.xml b/dev-python/django-pipeline/metadata.xml
new file mode 100644
index 00000000000..14c10d6cf43
--- /dev/null
+++ b/dev-python/django-pipeline/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">cyberdelia/django-pipeline</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-piston/Manifest b/dev-python/django-piston/Manifest
new file mode 100644
index 00000000000..c18b3ee9bd5
--- /dev/null
+++ b/dev-python/django-piston/Manifest
@@ -0,0 +1 @@
+DIST django-piston-0.2.3.tar.gz 34319 SHA256 fb015137ceb7934f4645f7eb91a05d7bd63ef6bb1bd84f557ce55fac38e38ae9 SHA512 205cb15b4e59e7cb4d744525e149480ce9f54afa6b514c038ecf20df9221b4193d5041963b7217f40454c34d77125a1e52f0e7bfed5a471b27b1694a3af2ef6a WHIRLPOOL 364c8273a7542c43e18059b9c0ea6a110577ae190d2faa8cb268045556cf9d1882771ae05d907c907467562994be1367435c498329515d554eb675618f3bc50f
diff --git a/dev-python/django-piston/django-piston-0.2.3-r1.ebuild b/dev-python/django-piston/django-piston-0.2.3-r1.ebuild
new file mode 100644
index 00000000000..63558b51ce1
--- /dev/null
+++ b/dev-python/django-piston/django-piston-0.2.3-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A mini-framework for Django for creating RESTful APIs"
+HOMEPAGE="http://bitbucket.org/jespern/django-piston/wiki/Home"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-piston/django-piston-9999.ebuild b/dev-python/django-piston/django-piston-9999.ebuild
new file mode 100644
index 00000000000..6e4947ce413
--- /dev/null
+++ b/dev-python/django-piston/django-piston-9999.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 mercurial
+
+DESCRIPTION="A mini-framework for Django for creating RESTful APIs"
+HOMEPAGE="http://bitbucket.org/jespern/django-piston/wiki/Home"
+EHG_REPO_URI="http://bitbucket.org/jespern/django-piston/"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${PN}"
diff --git a/dev-python/django-piston/metadata.xml b/dev-python/django-piston/metadata.xml
new file mode 100644
index 00000000000..dedfa7e1286
--- /dev/null
+++ b/dev-python/django-piston/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-piston</remote-id>
+ <remote-id type="bitbucket">jespern/django-piston</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-recaptcha/Manifest b/dev-python/django-recaptcha/Manifest
new file mode 100644
index 00000000000..32c49fb26f6
--- /dev/null
+++ b/dev-python/django-recaptcha/Manifest
@@ -0,0 +1,2 @@
+DIST django-recaptcha-1.0.3.tar.gz 11268 SHA256 ca47210207e81d8237ff0c5cf51ce07b95ff83dcf5f1e03bb813b6e0cb853af6 SHA512 9288ba1b4145dd6a08f39d226eeaa5f9ea6d9ff63714ff497fe808dfbe249918e4bb67790566044bceeb59ed293a8fcfe4fb41e279b17b2d7a0a0c5a53dd6463 WHIRLPOOL 079349c118a163c6ba6addd18001b1a50a3139c1ff7cd8729e0c77d51f2a798d6aa32e911fcdfc57727eddb5e9bde58639256ba254a759790a0077b6aeb766a5
+DIST django-recaptcha-1.0.4.tar.gz 12036 SHA256 8af0da767b07ca4d7a5a2be329776fe6dbab183c3da61ae30796e1a9354eea6c SHA512 45a149250c2f2ca9d00591027bd9f8264fc2ba90a5f09b4a96484326c0805d86f690bf02255a1a112d5705d357b6db2fdf97ca8f26681692f7c1f07118c9c2e4 WHIRLPOOL 620afa904beb41e09b9e178de08785f915c21170e43c558f66fb6f1fba175839bf9d39eeb7094056f1a4fef7b52d79074436699708932639be7f24419d06718b
diff --git a/dev-python/django-recaptcha/django-recaptcha-1.0.3.ebuild b/dev-python/django-recaptcha/django-recaptcha-1.0.3.ebuild
new file mode 100644
index 00000000000..e19a0dbec2a
--- /dev/null
+++ b/dev-python/django-recaptcha/django-recaptcha-1.0.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Django recaptcha form field/widget app"
+HOMEPAGE="http://github.com/praekelt/django-recaptcha http://pypi.python.org/pypi/django-recaptcha"
+#SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="https://github.com/praekelt/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/django-setuptest-0.1[${PYTHON_USEDEP}] )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/django-recaptcha/django-recaptcha-1.0.4.ebuild b/dev-python/django-recaptcha/django-recaptcha-1.0.4.ebuild
new file mode 100644
index 00000000000..4917c341d56
--- /dev/null
+++ b/dev-python/django-recaptcha/django-recaptcha-1.0.4.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Django recaptcha form field/widget app"
+HOMEPAGE="http://github.com/praekelt/django-recaptcha http://pypi.python.org/pypi/django-recaptcha"
+#SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="https://github.com/praekelt/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="<dev-python/django-1.8[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/django-setuptest-0.1[${PYTHON_USEDEP}] )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/django-recaptcha/files/django-recaptcha-fields.patch b/dev-python/django-recaptcha/files/django-recaptcha-fields.patch
new file mode 100644
index 00000000000..2bd0d32c967
--- /dev/null
+++ b/dev-python/django-recaptcha/files/django-recaptcha-fields.patch
@@ -0,0 +1,18 @@
+diff -ur django-recaptcha-0.0.6.orig/captcha/fields.py django-recaptcha-0.0.6/captcha/fields.py
+--- captcha/fields.py 2013-01-31 17:05:59.000000000 +0800
++++ captcha/fields.py 2013-03-07 01:44:54.804708648 +0800
+@@ -2,13 +2,12 @@
+ import sys
+
+ from django import forms
+-from django.conf import settings
+ from django.utils.encoding import smart_unicode
+ from django.utils.translation import ugettext_lazy as _
+
+ from captcha import client
+ from captcha.widgets import ReCaptcha
+-
++from captcha import test_settings as settings
+
+ class ReCaptchaField(forms.CharField):
+ default_error_messages = {
diff --git a/dev-python/django-recaptcha/files/django-recaptcha-settings.patch b/dev-python/django-recaptcha/files/django-recaptcha-settings.patch
new file mode 100644
index 00000000000..c28694ee4d1
--- /dev/null
+++ b/dev-python/django-recaptcha/files/django-recaptcha-settings.patch
@@ -0,0 +1,6 @@
+--- /dev/null 2013-03-05 00:07:00.881999836 +0800
++++ captcha/settings.py 2013-03-07 02:27:52.302580399 +0800
+@@ -0,0 +1,3 @@
++RECAPTCHA_PUBLIC_KEY='76wtgdfsjhsydt7r5FFGFhgsdfytd656sad75fgh'
++RECAPTCHA_PRIVATE_KEY='98dfg6df7g56df6gdfgdfg65JHJH656565GFGFGs'
++RECAPTCHA_USE_SSL='True'
diff --git a/dev-python/django-recaptcha/files/test_settings.py b/dev-python/django-recaptcha/files/test_settings.py
new file mode 100644
index 00000000000..5e66d9e454a
--- /dev/null
+++ b/dev-python/django-recaptcha/files/test_settings.py
@@ -0,0 +1,14 @@
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': 'test.sqlite',
+ }
+}
+
+INSTALLED_APPS = [
+ 'captcha',
+]
+
+RECAPTCHA_PRIVATE_KEY = '98dfg6df7g56df6gdfgdfg65JHJH656565GFGFGs'
+RECAPTCHA_PUBLIC_KEY = '76wtgdfsjhsydt7r5FFGFhgsdfytd656sad75fgh'
+RECAPTCHA_USE_SSL='True'
diff --git a/dev-python/django-recaptcha/metadata.xml b/dev-python/django-recaptcha/metadata.xml
new file mode 100644
index 00000000000..ea4eb75ba88
--- /dev/null
+++ b/dev-python/django-recaptcha/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-recaptcha</remote-id>
+ <remote-id type="github">preakelt/django-recaptcha</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-registration/Manifest b/dev-python/django-registration/Manifest
new file mode 100644
index 00000000000..a38e3959fe6
--- /dev/null
+++ b/dev-python/django-registration/Manifest
@@ -0,0 +1,2 @@
+DIST django-registration-0.8.tar.gz 284427 SHA256 a9062db28a2f06cb710a07444141d9ec1c499b08502f244f27a002f3e7230f0b SHA512 164508908da937c4f8aacdc5ffdd190b19a4da0174bd92f248b7db80d161fb9cd9beb20c62c7e213b0e060c17306036cf11ffc4e53c071b372ab8c721ca671ac WHIRLPOOL 287a72457e34f3063d09afa61edcc82809cf0690bc16aa81782fa42a228e364c7afd7666991e532b6a00bb6772bb3e6797a576a0495f6bd15431e9578c2b509f
+DIST django-registration-1.0.tar.gz 276715 SHA256 f19112fa1c1f34eb46427afa280398d9f044a604d68d6d0d15047243e0a71d93 SHA512 53b191e4c75629d3ce93e4817a843bc1b056a14558be892aa95dc060b8b0542ddcae79f7cb0b37c4e758e8d9da093e59a57591294539acfed39b998b7087e0e6 WHIRLPOOL 8698a109a6eaf7926936b10f594be414793a36f27386b703d0abeee631da4fcff6f12231f24c3db0dd8468556fdc7e683b4f93286c759b3a0a89e5f1e7633ba2
diff --git a/dev-python/django-registration/django-registration-0.8-r1.ebuild b/dev-python/django-registration/django-registration-0.8-r1.ebuild
new file mode 100644
index 00000000000..0075687b718
--- /dev/null
+++ b/dev-python/django-registration/django-registration-0.8-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An extensible user-registration application for Django"
+HOMEPAGE="http://www.bitbucket.org/ubernostrum/django-registration/wiki/ http://pypi.python.org/pypi/django-registration"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/django[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/django-registration/django-registration-1.0.ebuild b/dev-python/django-registration/django-registration-1.0.ebuild
new file mode 100644
index 00000000000..74da7dfaa78
--- /dev/null
+++ b/dev-python/django-registration/django-registration-1.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An extensible user-registration application for Django"
+HOMEPAGE="http://www.bitbucket.org/ubernostrum/django-registration/wiki/ http://pypi.python.org/pypi/django-registration"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+DEPEND="dev-python/django[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/django-registration/metadata.xml b/dev-python/django-registration/metadata.xml
new file mode 100644
index 00000000000..68d74dc9d82
--- /dev/null
+++ b/dev-python/django-registration/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jmbsvicetto@gentoo.org</email>
+ <name>Jorge Manuel B. S. Vicetto</name>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-registration</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-select2/Manifest b/dev-python/django-select2/Manifest
new file mode 100644
index 00000000000..20dab40bf07
--- /dev/null
+++ b/dev-python/django-select2/Manifest
@@ -0,0 +1,4 @@
+DIST Django-Select2-3.2.1.tar.gz 67816 SHA256 d39832622840edfc66882d0e449fd09c676669ff1f244548e5c721e91ab52482 SHA512 c4935455b013430e3ea941546a22b5468fcf9535ad2f1728ceed653133814cc3d126f3a88911de391af25068d8824f102748f6b02fc7007b586445adbbe0ed33 WHIRLPOOL 27e01d59dfce9eba871beb1c686112f6d5507123168899205262b0b719b6002502a9f5be0cab2625e57ed04acfd1b1b1fedae8f927f182992427f17362eff972
+DIST Django-Select2-4.0.0.tar.gz 75566 SHA256 9a186b6737baf7b000f6ea0f9c0e76475a73643c89a879fa4068e774af2862d5 SHA512 459b7885d4567d8aef89a527ed2913dddcb3d8bf1ec5993b6dd70b66c57ffdf60f418bdd7b4391b9e81815af3ce997d7f364880d6e272cf19a348834c9b3a54d WHIRLPOOL 92796dcaae59b2b91f6cd9178938dedde21e58e1225289b45e5a09450a52895d0d860360ba88070b024f611081ab95c95759bea26d417cffc1f3fd4ab016d991
+DIST Django-Select2-4.2.2.tar.gz 91269 SHA256 e0924aed8e9a35f6d755b464c44ea63396653b1dc82cdf1591d1a151e032aa70 SHA512 5262201804ac9cd9a13c228ba93d3753906d60bceb17ba860b855fb5106891223006acc79da9cf9d34ad32f6bcdf434f10d36135fab0305a8772f532d77982db WHIRLPOOL 25f9b3527bf023c737c9296311c1c9237cbe1ceee510d7036a44b71c7dd95d17e3c121e85d950e1b81fcc130bbee794bc2af4a004ee2d8d6668a0bb3adca50a5
+DIST Django-Select2-4.3.1.tar.gz 97158 SHA256 7cdf88f15b350ccc3b9e1bcd037c70289c270304df5e1bf6fc918aebb4b709bf SHA512 5d80531a96239e311559a66f33ebb2926ba02f3561038f035e80931a7d667d16b5b2215520f1da1aac38d6d2d92f0114f71c06bb07fac12dab954a0a03076499 WHIRLPOOL bde077e5032921ecd3599b70604b3f30dace7e904cc8f2fe3d4fd4ab1533d3631c8661f72e083d6d8f34277c12f3799c2e78db77470a689c1304baaabee740c8
diff --git a/dev-python/django-select2/django-select2-3.2.1.ebuild b/dev-python/django-select2/django-select2-3.2.1.ebuild
new file mode 100644
index 00000000000..f99ff3db16e
--- /dev/null
+++ b/dev-python/django-select2/django-select2-3.2.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Django-Select2"
+
+DESCRIPTION="A Django integration of Select2"
+HOMEPAGE="https://pypi.python.org/pypi/Django-Select2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-select2/django-select2-4.0.0.ebuild b/dev-python/django-select2/django-select2-4.0.0.ebuild
new file mode 100644
index 00000000000..f99ff3db16e
--- /dev/null
+++ b/dev-python/django-select2/django-select2-4.0.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Django-Select2"
+
+DESCRIPTION="A Django integration of Select2"
+HOMEPAGE="https://pypi.python.org/pypi/Django-Select2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-select2/django-select2-4.2.2.ebuild b/dev-python/django-select2/django-select2-4.2.2.ebuild
new file mode 100644
index 00000000000..03ab81cb9c9
--- /dev/null
+++ b/dev-python/django-select2/django-select2-4.2.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Django-Select2"
+
+DESCRIPTION="A Django integration of Select2"
+HOMEPAGE="https://pypi.python.org/pypi/Django-Select2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-select2/django-select2-4.3.1.ebuild b/dev-python/django-select2/django-select2-4.3.1.ebuild
new file mode 100644
index 00000000000..0b33ffb92fa
--- /dev/null
+++ b/dev-python/django-select2/django-select2-4.3.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Django-Select2"
+
+DESCRIPTION="A Django integration of Select2"
+HOMEPAGE="https://pypi.python.org/pypi/Django-Select2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-select2/metadata.xml b/dev-python/django-select2/metadata.xml
new file mode 100644
index 00000000000..8cbb6c54a2b
--- /dev/null
+++ b/dev-python/django-select2/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a Django integration of Select2
+ The app includes Select2 driven Django Widgets and Form Fields.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">Django-Select2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-setuptest/Manifest b/dev-python/django-setuptest/Manifest
new file mode 100644
index 00000000000..2a4da5f5541
--- /dev/null
+++ b/dev-python/django-setuptest/Manifest
@@ -0,0 +1 @@
+DIST django-setuptest-0.1.6.tar.gz 6929 SHA256 bdce4cf9cfc485b6324b3847fb84af69bdc965370073bc1c983bbf0901902eed SHA512 c2f2c1329d3541ac2e8d5895ddde2e1d1d1c2a819b3cc7168d333894e15128ff49b973a1570917abf06152634c915dada6df9f27ec9463ef79f02411c022d80d WHIRLPOOL e1c45eb3658b75bc82d0b3a5397c4199f5339c19c95e76e2fba0dddd02928da3c3480dc51eb41cef39c283c534a73f90bfbf5edc3289d24f6a5e44aea71e81e5
diff --git a/dev-python/django-setuptest/django-setuptest-0.1.6.ebuild b/dev-python/django-setuptest/django-setuptest-0.1.6.ebuild
new file mode 100644
index 00000000000..aa69ad7be26
--- /dev/null
+++ b/dev-python/django-setuptest/django-setuptest-0.1.6.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple test suite enabling Django app testing via setup.py"
+HOMEPAGE="https://github.com/praekelt/django-setuptest"
+SRC_URI="https://github.com/praekelt/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/pep8[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/django-setuptest/metadata.xml b/dev-python/django-setuptest/metadata.xml
new file mode 100644
index 00000000000..30e4fd3b2b6
--- /dev/null
+++ b/dev-python/django-setuptest/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">praekelt/django-setuptest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-social-auth/Manifest b/dev-python/django-social-auth/Manifest
new file mode 100644
index 00000000000..04664f61c97
--- /dev/null
+++ b/dev-python/django-social-auth/Manifest
@@ -0,0 +1 @@
+DIST django-social-auth-0.7.28.tar.gz 289666 SHA256 83bd23baa8011415af59bb76998697da758954204f47698073b8de51c95b20e9 SHA512 9215d8b50896553ad88029a0c89d2db6787468d657b8a34c6c120b3df8c909a42bc79fc54321c6b4dd386867e3479252976f8c0b36f211cc1270baf4b7cc4bf8 WHIRLPOOL 7a585fe7ed8e7d6addb2f4647a9314155131f68f27eefd95f067a580bbefcab21c92022a88b7e96dfefa5f5b346cfa60906557358f9d0a096b7db2f70c44c0ec
diff --git a/dev-python/django-social-auth/django-social-auth-0.7.28.ebuild b/dev-python/django-social-auth/django-social-auth-0.7.28.ebuild
new file mode 100644
index 00000000000..9309b716e63
--- /dev/null
+++ b/dev-python/django-social-auth/django-social-auth-0.7.28.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An easy to setup social authentication/authorization mechanism for Django projects"
+HOMEPAGE="http://pypi.python.org/pypi/django-social-auth/"
+SRC_URI="https://github.com/omab/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+LICENSE="BSD"
+SLOT="0"
+# Tests access and test logins to social media sites
+RESTRICT="test"
+
+RDEPEND=">=dev-python/django-1.2.5[${PYTHON_USEDEP}]
+ >=dev-python/oauth2-1.5.167[${PYTHON_USEDEP}]
+ >=dev-python/python-openid-2.2[${PYTHON_USEDEP}]
+ >=dev-python/selenium-2.29.0[${PYTHON_USEDEP}]
+ ~dev-python/mock-1.0.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading in doc build
+ sed -e 's:^intersphinx:_&:' -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-social-auth/metadata.xml b/dev-python/django-social-auth/metadata.xml
new file mode 100644
index 00000000000..73807df7488
--- /dev/null
+++ b/dev-python/django-social-auth/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">omab/django-social-auth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-tables2/Manifest b/dev-python/django-tables2/Manifest
new file mode 100644
index 00000000000..9c45f7e2e6e
--- /dev/null
+++ b/dev-python/django-tables2/Manifest
@@ -0,0 +1,2 @@
+DIST django-tables2-0.16.0.tar.gz 43672 SHA256 53a643166377c44a030d860f3c0f045c4b75e727432ddde4065a67c2df41bf33 SHA512 9d490bbcaab6049d74e81f25c0a2e1ebd3caa00930877661cc823dcfc429f020b3146ec778ccc840951e89f53047e8d6ad71cf7b689cfb76aa2eadf5db54280a WHIRLPOOL 907acbfb5599589ebf5dc49ebedd0f9e07003df7730a5bcc04667207140d9728fbed56afc08ed25167414bc4596a91e2106958223f5c48b5ccea2c6642b0365e
+DIST django-tables2-1.0.4.tar.gz 57679 SHA256 801b1df349f07f5b548cf4b3d5cddfc26e5969079c7d490f179fb649e76d24af SHA512 ae1381ab23b93759caef259b5063c2149a71c9a808bc4f0a621de454872b354d03e8d7002a95de693e4d3c456366341ac30f200edac069244a0b97d156295953 WHIRLPOOL 03cfd673a16692de118b4eafb7a3fec277daef4045d16508c9a97abcdf2321782703fb4e12b9f26e7fddf799e1d8040028f43a0584f4bdc59f481c504f21586f
diff --git a/dev-python/django-tables2/django-tables2-0.16.0-r1.ebuild b/dev-python/django-tables2/django-tables2-0.16.0-r1.ebuild
new file mode 100644
index 00000000000..d4992a761e1
--- /dev/null
+++ b/dev-python/django-tables2/django-tables2-0.16.0-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Table/data-grid framework for Django"
+HOMEPAGE="https://pypi.python.org/pypi/django-tables2/ https://github.com/bradleyayers/django-tables2/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+PATCHES=( "${FILESDIR}"/${P}-django-1.9-deprecation.patch )
diff --git a/dev-python/django-tables2/django-tables2-0.16.0.ebuild b/dev-python/django-tables2/django-tables2-0.16.0.ebuild
new file mode 100644
index 00000000000..2f19150eb0d
--- /dev/null
+++ b/dev-python/django-tables2/django-tables2-0.16.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Table/data-grid framework for Django"
+HOMEPAGE="https://pypi.python.org/pypi/django-tables2/ https://github.com/bradleyayers/django-tables2/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/django-tables2/django-tables2-1.0.4.ebuild b/dev-python/django-tables2/django-tables2-1.0.4.ebuild
new file mode 100644
index 00000000000..2f19150eb0d
--- /dev/null
+++ b/dev-python/django-tables2/django-tables2-1.0.4.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Table/data-grid framework for Django"
+HOMEPAGE="https://pypi.python.org/pypi/django-tables2/ https://github.com/bradleyayers/django-tables2/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/django-tables2/files/django-tables2-0.16.0-django-1.9-deprecation.patch b/dev-python/django-tables2/files/django-tables2-0.16.0-django-1.9-deprecation.patch
new file mode 100644
index 00000000000..12460d4ffbd
--- /dev/null
+++ b/dev-python/django-tables2/files/django-tables2-0.16.0-django-1.9-deprecation.patch
@@ -0,0 +1,118 @@
+From cb71f869bbc8aac3a14f3d4d1f67641e21892bba Mon Sep 17 00:00:00 2001
+From: Gert Steyn <gert@senseware.com>
+Date: Thu, 19 Mar 2015 12:20:42 +0200
+Subject: [PATCH] Changed from django.utils.datastructures.SortedDict
+ (deprecated) to collections.OrderedDict
+
+---
+ django_tables2/columns/base.py | 6 +++---
+ django_tables2/tables.py | 10 +++++-----
+ django_tables2/templatetags/django_tables2.py | 4 ++--
+ 3 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/django_tables2/columns/base.py b/django_tables2/columns/base.py
+index 20b3477..3b377e6 100644
+--- a/django_tables2/columns/base.py
++++ b/django_tables2/columns/base.py
+@@ -1,9 +1,9 @@
+ # coding: utf-8
+ from __future__ import absolute_import, unicode_literals
+ from django.db.models.fields import FieldDoesNotExist
+-from django.utils.datastructures import SortedDict
+ from django_tables2.templatetags.django_tables2 import title
+ from django_tables2.utils import A, AttributeDict, OrderBy, OrderByTuple
++from collections import OrderedDict
+ from itertools import islice
+ import six
+ import warnings
+@@ -498,7 +498,7 @@ class BoundColumns(object):
+ A `BoundColumns` object is a container for holding `BoundColumn` objects.
+ It provides methods that make accessing columns easier than if they were
+ stored in a `list` or `dict`. `Columns` has a similar API to a `dict` (it
+- actually uses a `~django.utils.datastructures.SortedDict` interally).
++ actually uses a `~collections.OrderedDict` interally).
+
+ At the moment you'll only come across this class when you access a
+ `.Table.columns` property.
+@@ -508,7 +508,7 @@ class BoundColumns(object):
+ """
+ def __init__(self, table):
+ self.table = table
+- self.columns = SortedDict()
++ self.columns = OrderedDict()
+ for name, column in six.iteritems(table.base_columns):
+ self.columns[name] = bc = BoundColumn(table, column, name)
+ bc.render = getattr(table, 'render_' + name, column.render)
+diff --git a/django_tables2/tables.py b/django_tables2/tables.py
+index 01a0671..2f31069 100644
+--- a/django_tables2/tables.py
++++ b/django_tables2/tables.py
+@@ -9,9 +9,9 @@
+ import sys
+ from django.core.paginator import Paginator
+ from django.db.models.fields import FieldDoesNotExist
+-from django.utils.datastructures import SortedDict
+ from django.template import RequestContext
+ from django.template.loader import get_template
++from collections import OrderedDict
+ import six
+ import warnings
+
+@@ -172,10 +172,10 @@ def __new__(mcs, name, bases, attrs):
+ if hasattr(base, "base_columns"):
+ parent_columns = list(base.base_columns.items()) + parent_columns
+ # Start with the parent columns
+- attrs["base_columns"] = SortedDict(parent_columns)
++ attrs["base_columns"] = OrderedDict(parent_columns)
+ # Possibly add some generated columns based on a model
+ if opts.model:
+- extra = SortedDict()
++ extra = OrderedDict()
+ # honor Table.Meta.fields, fallback to model._meta.fields
+ if opts.fields:
+ # Each item in opts.fields is the name of a model field or a
+@@ -194,7 +194,7 @@ def __new__(mcs, name, bases, attrs):
+ attrs["base_columns"].update(extra)
+
+ # Explicit columns override both parent and generated columns
+- attrs["base_columns"].update(SortedDict(cols))
++ attrs["base_columns"].update(OrderedDict(cols))
+ # Apply any explicit exclude setting
+ for exclusion in opts.exclude:
+ if exclusion in attrs["base_columns"]:
+@@ -204,7 +204,7 @@ def __new__(mcs, name, bases, attrs):
+ opts.sequence.expand(attrs["base_columns"].keys())
+ # Table's sequence defaults to sequence declared in Meta
+ #attrs['_sequence'] = opts.sequence
+- attrs["base_columns"] = SortedDict(((x, attrs["base_columns"][x]) for x in opts.sequence))
++ attrs["base_columns"] = OrderedDict(((x, attrs["base_columns"][x]) for x in opts.sequence))
+
+ # set localize on columns
+ for col_name in attrs["base_columns"].keys():
+diff --git a/django_tables2/templatetags/django_tables2.py b/django_tables2/templatetags/django_tables2.py
+index 1e72d74..1ca91de 100644
+--- a/django_tables2/templatetags/django_tables2.py
++++ b/django_tables2/templatetags/django_tables2.py
+@@ -5,12 +5,12 @@
+ from django.template import TemplateSyntaxError, Variable, Node
+ from django.template.loader import get_template, select_template
+ from django.template.defaultfilters import stringfilter, title as old_title
+-from django.utils.datastructures import SortedDict
+ from django.utils.http import urlencode
+ from django.utils.html import escape
+ from django.utils.safestring import mark_safe
+ import django_tables2 as tables
+ from django_tables2.config import RequestConfig
++from collections import OrderedDict
+ import re
+ import six
+ import tokenize
+@@ -35,7 +35,7 @@ def token_kwargs(bits, parser):
+ """
+ if not bits:
+ return {}
+- kwargs = SortedDict()
++ kwargs = OrderedDict()
+ while bits:
+ match = kwarg_re.match(bits[0])
+ if not match or not match.group(1):
diff --git a/dev-python/django-tables2/metadata.xml b/dev-python/django-tables2/metadata.xml
new file mode 100644
index 00000000000..a09809c9ef4
--- /dev/null
+++ b/dev-python/django-tables2/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-tables2</remote-id>
+ <remote-id type="github">bradleyayers/django-tables2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-tagging/Manifest b/dev-python/django-tagging/Manifest
new file mode 100644
index 00000000000..fe17ffa645c
--- /dev/null
+++ b/dev-python/django-tagging/Manifest
@@ -0,0 +1,3 @@
+DIST django-tagging-0.3.4.tar.gz 30792 SHA256 a3cee6e36c3cb7ccd9d13d71ca42cb8826914d66b20c3a5e987efa12b3a83a3d SHA512 f782aeedfa6133922e1223bea4a04b955ee44508e37acac57338b0b45df94f55cdf5e1c75142b92642df01019ff553a592f3c64ed7f3d758b3777feed15eb1bd WHIRLPOOL bc9c856ff253ada3ed1103ad5c6145a43309c87bbcc0eac232d9685a7e75fb4d8cd8cf4acb1a2be911ce66045cc8b62a1eb04cf4539d4282480f49bb14be8f8c
+DIST django-tagging-0.3.6.tar.gz 31914 SHA256 419a8e5c5fdc55f9ec88a15b5ca5343d4dc9461f5302c89180aef93c025ef40f SHA512 7124ab28de3e3cbf9c34ab0ba62d70c13bfe5f75ff8c36be8de0511d4dfa01d1b09904adcd5679ad885a100c4c563d6163aa2187b5e742b280543bf87a3b6c06 WHIRLPOOL 739e14ab4cfb2f150efbf07ab17e2632dd21b54ea74d02a926d114f8279b434387edea369d8b8a4a5dc808ddefa21e6f7423f4a412f9d418e8b084719743a8ac
+DIST django-tagging-0.4.tar.gz 44225 SHA256 033e3d1b352f0dacdf8588dc83521ac602a020f34f4c1c389912eaff2915e557 SHA512 96ee928a035cb195d0d6057f05028bf21e37bb3bb68a73f9d8915c04fa71837ea20e88f2dfe22bb1a8bdec8dd37d6b98543731fbf980cf4556f951366eae5526 WHIRLPOOL d2f05ca93a45f16943aeade92a2c8a9f1e42842430d7a93661b69340c8edc7c6e8c12f0ea24be5fbcfb90fc600348f4e1202b0ddab42166c07a50f6613a4a6a3
diff --git a/dev-python/django-tagging/django-tagging-0.3.4.ebuild b/dev-python/django-tagging/django-tagging-0.3.4.ebuild
new file mode 100644
index 00000000000..266579776b3
--- /dev/null
+++ b/dev-python/django-tagging/django-tagging-0.3.4.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Generic tagging application for Django"
+HOMEPAGE="http://code.google.com/p/django-tagging/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/django-1.0[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ use doc && DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-tagging/django-tagging-0.3.6.ebuild b/dev-python/django-tagging/django-tagging-0.3.6.ebuild
new file mode 100644
index 00000000000..44dced0ae7d
--- /dev/null
+++ b/dev-python/django-tagging/django-tagging-0.3.6.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Generic tagging application for Django"
+HOMEPAGE="http://code.google.com/p/django-tagging/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=">=dev-python/django-1.0[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ use doc && dodoc docs/overview.txt
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-tagging/django-tagging-0.4.ebuild b/dev-python/django-tagging/django-tagging-0.4.ebuild
new file mode 100644
index 00000000000..44dced0ae7d
--- /dev/null
+++ b/dev-python/django-tagging/django-tagging-0.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Generic tagging application for Django"
+HOMEPAGE="http://code.google.com/p/django-tagging/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=">=dev-python/django-1.0[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ use doc && dodoc docs/overview.txt
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-tagging/metadata.xml b/dev-python/django-tagging/metadata.xml
new file mode 100644
index 00000000000..ac081f94dc0
--- /dev/null
+++ b/dev-python/django-tagging/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">django-tagging</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-tastypie/Manifest b/dev-python/django-tastypie/Manifest
new file mode 100644
index 00000000000..447face09b8
--- /dev/null
+++ b/dev-python/django-tastypie/Manifest
@@ -0,0 +1 @@
+DIST django-tastypie-0.9.15.tar.gz 206823 SHA256 1509d8a93d4f0e16434469c5af850d3c1c625da902b54216771cc7b25634216a SHA512 dcb26f7bb131e658ff6a2d11ca8eb74db064986cd48e536fb4987a1cfe4c4958e99f60cf173b1bbbbc051f3e55bc31ff28e645a52f526b3a98461daddd865a74 WHIRLPOOL 62503c0f05e429950b2aacdbaeacfa2cc71eee24fad9e365373fda473b7bf54e3a251ec0b3133f128436922abc4ed8182f7405eb4a62e1a40628b2b44b596243
diff --git a/dev-python/django-tastypie/django-tastypie-0.9.15.ebuild b/dev-python/django-tastypie/django-tastypie-0.9.15.ebuild
new file mode 100644
index 00000000000..7488d57b958
--- /dev/null
+++ b/dev-python/django-tastypie/django-tastypie-0.9.15.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+RESTRICT="test"
+
+DESCRIPTION="A flexible and capable API layer for django utilising serialisers"
+HOMEPAGE="http://pypi.python.org/pypi/django-tastypie/ https://github.com/toastdriven/django-tastypie"
+SRC_URI="https://github.com/toastdriven/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="bip doc digest lxml test yaml"
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND=">=dev-python/mimeparse-0.1.3[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ >=dev-python/django-1.3[${PYTHON_USEDEP}]
+ dev-python/pyxml[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ bip? ( dev-python/biplist[${PYTHON_USEDEP}] )
+ digest? ( dev-python/python-digest[${PYTHON_USEDEP}] )
+ lxml? ( dev-python/lxml[${PYTHON_USEDEP}] )
+ yaml? ( dev-python/pyyaml[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/oauth2[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/python-digest[${PYTHON_USEDEP}]
+ dev-python/biplist[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/mimeparse-0.1.3[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=( "${FILESDIR}"/runtests.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+src_test() {
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ PYTHONPATH=.:tests ./tests/run_all_tests.sh || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-tastypie/files/runtests.patch b/dev-python/django-tastypie/files/runtests.patch
new file mode 100644
index 00000000000..473d3338101
--- /dev/null
+++ b/dev-python/django-tastypie/files/runtests.patch
@@ -0,0 +1,46 @@
+The run tests bash script keeps going on a fail. Patch corrects this for gentoo
+diff -ur django-tastypie-0.9.15.oirg/tests/run_all_tests.sh django-tastypie-0.9.15/tests/run_all_tests.sh
+--- tests/run_all_tests.sh 2013-05-03 10:36:43.000000000 +0800
++++ tests/run_all_tests.sh 2013-06-03 13:55:18.633474126 +0800
+@@ -10,9 +10,9 @@
+
+ #Don't run customuser tests if django's version is less than 1.5.
+ if [ $major -lt '2' -a $minor -lt '5' ]; then
+- ALL="core basic alphanumeric slashless namespaced related validation gis content_gfk authorization"
++ ALL="core basic alphanumeric slashless namespaced related validation content_gfk authorization"
+ else
+- ALL="core customuser basic alphanumeric slashless namespaced related validation gis content_gfk authorization"
++ ALL="core customuser basic alphanumeric slashless namespaced related validation content_gfk authorization"
+ fi
+
+
+@@ -26,15 +26,23 @@
+ fi
+
+ for type in $TYPES; do
+- echo "** $type **"
++ echo "** running test $type **"
+
+ if [ $type == 'related' ]; then
+- django-admin.py test ${type}_resource --settings=settings_$type
+- continue
++ if django-admin.py test ${type}_resource --settings=settings_$type; then
++ continue
++ else
++ echo "Test ${type} failed"
++ exit 1
++ fi
+ elif [ $type == 'gis' ]; then
+- createdb -T template_postgis tastypie.db
++ createdb -T template_posttastypie.db
+ fi
+
+- django-admin.py test $type --settings=settings_$type
+- echo; echo
++ if ! django-admin.py test $type --settings=settings_$type; then
++ echo "Test ${type} failed"
++ exit 1
++ else
++ echo; echo
++ fi
+ done
diff --git a/dev-python/django-tastypie/metadata.xml b/dev-python/django-tastypie/metadata.xml
new file mode 100644
index 00000000000..1d47d2cae77
--- /dev/null
+++ b/dev-python/django-tastypie/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <herd>python</herd>
+ <use>
+ <flag name="bip">An optional serialiser dev-python/biplist</flag>
+ <flag name="digest">Library to aid in implementing HTTP Digest Authentication</flag>
+ <flag name="lxml">An optional serialiser dev-python/lxml</flag>
+ <flag name="yaml">An optional serialiser dev-python/yaml</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">toastdriven/django-tastypie</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-tinymce/Manifest b/dev-python/django-tinymce/Manifest
new file mode 100644
index 00000000000..3eda6e5b60e
--- /dev/null
+++ b/dev-python/django-tinymce/Manifest
@@ -0,0 +1 @@
+DIST django-tinymce-1.5.3.tar.gz 2456745 SHA256 2c453782de95d38bb280c2e6a8e34cc0fc4783052c521c4000d73ea853d5d2d4 SHA512 1fae0e40f0d0803a723753e25160950d4a8bd3b443e2d7ad9101558ad20ab3b43f792aafaaf7c064636166860c445b3bec068317bab6203f346cac7753331eea WHIRLPOOL b1779f7464534d8910cc876ab59a264f6c70a3c74e9a60f965aa786881a9d5a320a9bdd2a4ead4ba278ed826b90e923a0b31ee7981e44327961aaff2a400f85b
diff --git a/dev-python/django-tinymce/django-tinymce-1.5.3.ebuild b/dev-python/django-tinymce/django-tinymce-1.5.3.ebuild
new file mode 100644
index 00000000000..d698bd2ad71
--- /dev/null
+++ b/dev-python/django-tinymce/django-tinymce-1.5.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="TinyMCE integration for Django"
+HOMEPAGE="https://github.com/aljosa/django-tinymce"
+SRC_URI="https://github.com/aljosa/${PN}/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ dev-python/django[${PYTHON_USEDEP}]
+"
+
+S="${WORKDIR}/${PN}-release-${PV}"
diff --git a/dev-python/django-tinymce/metadata.xml b/dev-python/django-tinymce/metadata.xml
new file mode 100644
index 00000000000..0432fe23ffb
--- /dev/null
+++ b/dev-python/django-tinymce/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">aljosa/django-tinymce</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-two-factor-auth/Manifest b/dev-python/django-two-factor-auth/Manifest
new file mode 100644
index 00000000000..e81b2e0eb8b
--- /dev/null
+++ b/dev-python/django-two-factor-auth/Manifest
@@ -0,0 +1,2 @@
+DIST django-two-factor-auth-1.1.1.tar.gz 101960 SHA256 19cf066f7a4c76147d3ad5e5e46cf078772064ecde83acf9ece93670ec92d9cf SHA512 f0ff3deeceb00b2b28d6237e1d4e4dbc2574c872b564abb491b77130b56aa7a705432ac93bf2a9ae9f03e780c58c409584d624f41bce690afd910edbc8bb5eae WHIRLPOOL 7f20d4060b549792a7e5e36857ded765e3d06df403163d38dfcb67a93ee0c62a10fd7bad5b1055c28693ae05e5c93bfe137b7095ad0ab2ec26b20c1627d4b8d6
+DIST django-two-factor-auth-1.2.0.tar.gz 102073 SHA256 45cd38798565886e47a9b42ab201f06a73583cf7dd2579684691e0ea510a96ec SHA512 f6b58d42dedc3e80428c4acc4b7f0d6323a4eb84869b35f5e128aef6e00c0a418f43146fb6aeaf5bd92d78842023e4e3e8667a95198feea804f2561c6f8e43d4 WHIRLPOOL fd243bbb65c286ef7b8bb8a132518f830c5b1879fa41ae3cbc730c09c5592755b9f9c1e2d60394678fd51bb2c3230d50307a13afb8bf651b50129813a9a3b1a0
diff --git a/dev-python/django-two-factor-auth/django-two-factor-auth-1.1.1.ebuild b/dev-python/django-two-factor-auth/django-two-factor-auth-1.1.1.ebuild
new file mode 100644
index 00000000000..c2d665df72c
--- /dev/null
+++ b/dev-python/django-two-factor-auth/django-two-factor-auth-1.1.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils distutils-r1
+
+DESCRIPTION="User-friendly Two-Factor Authentication for Django"
+HOMEPAGE="https://github.com/Bouke/django-two-factor-auth"
+SRC_URI="https://github.com/Bouke/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="test yubikey"
+
+CDEPEND=">=dev-python/django-1.4.2[${PYTHON_USEDEP}]
+ >=dev-python/django-otp-0.2.0[${PYTHON_USEDEP}]
+ dev-python/qrcode[${PYTHON_USEDEP}]
+ dev-python/twilio[${PYTHON_USEDEP}]
+ yubikey? ( dev-python/django-otp-yubikey[${PYTHON_USEDEP}] )
+ "
+
+RDEPEND="${CDEPEND}"
+DEPEND="test? (
+ dev-python/flake8[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ )"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ sed -i "/'qrcode/s/^/#/" setup.py || die
+}
+
+python_test() {
+ emake test
+}
diff --git a/dev-python/django-two-factor-auth/django-two-factor-auth-1.2.0.ebuild b/dev-python/django-two-factor-auth/django-two-factor-auth-1.2.0.ebuild
new file mode 100644
index 00000000000..c2d665df72c
--- /dev/null
+++ b/dev-python/django-two-factor-auth/django-two-factor-auth-1.2.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils distutils-r1
+
+DESCRIPTION="User-friendly Two-Factor Authentication for Django"
+HOMEPAGE="https://github.com/Bouke/django-two-factor-auth"
+SRC_URI="https://github.com/Bouke/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="test yubikey"
+
+CDEPEND=">=dev-python/django-1.4.2[${PYTHON_USEDEP}]
+ >=dev-python/django-otp-0.2.0[${PYTHON_USEDEP}]
+ dev-python/qrcode[${PYTHON_USEDEP}]
+ dev-python/twilio[${PYTHON_USEDEP}]
+ yubikey? ( dev-python/django-otp-yubikey[${PYTHON_USEDEP}] )
+ "
+
+RDEPEND="${CDEPEND}"
+DEPEND="test? (
+ dev-python/flake8[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ )"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ sed -i "/'qrcode/s/^/#/" setup.py || die
+}
+
+python_test() {
+ emake test
+}
diff --git a/dev-python/django-two-factor-auth/metadata.xml b/dev-python/django-two-factor-auth/metadata.xml
new file mode 100644
index 00000000000..34deff2ea34
--- /dev/null
+++ b/dev-python/django-two-factor-auth/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <use>
+ <flag name="yubikey">Adds support for Yubikeys via django-otp-yubikey</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">Bouke/django-two-factor-auth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django-xslt/Manifest b/dev-python/django-xslt/Manifest
new file mode 100644
index 00000000000..15d192b0f1f
--- /dev/null
+++ b/dev-python/django-xslt/Manifest
@@ -0,0 +1,2 @@
+DIST django-xslt-0.4.5.tar.gz 15717 SHA256 db3bad334310e13a37391cbd52fc1b0432165d9a97494c9413008c0fc8023ccb SHA512 25f3268d5eae29326ee93b5c4189389577bbf282e9f9007798de2ce96c6420d240c07e6a2abbbc57ce0bb4abb3aef557b545948a02b36a118afaefb30ca5a2b4 WHIRLPOOL 9654a2a3d7baf8ed3de9061cc43872db9e0a72f9331cce5bd804d5395611a0421d2cbec7f7a94fd73f48d439a702b0fbb98424ce15274511183398e317289fab
+DIST django-xslt-demoapp-0.4.5_p20120427.tar.bz2 5506 SHA256 a448e2cb6db716199915a1bc3a49ab28388cdb41d4ad3e7c6a0127e82143766f SHA512 200832172eac9c2729816c800fc32376ae62be2d832a398538054dca875fbedc41a300618f37f4d2b1cc36f36be20a6cbd86cc7f66e5ada476309e734c3f578d WHIRLPOOL 1afabf88e61bdb1e545bd84a0890953cd59d6e2811760e1d4c3f93307fd2f01b915404867af42265e19daa58c10cdb7b0538e31c468b8852cd960107063f00c0
diff --git a/dev-python/django-xslt/django-xslt-0.4.5-r1.ebuild b/dev-python/django-xslt/django-xslt-0.4.5-r1.ebuild
new file mode 100644
index 00000000000..fab013c4e28
--- /dev/null
+++ b/dev-python/django-xslt/django-xslt-0.4.5-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ test? ( http://dev.gentoo.org/~tampakrap/tarballs/${PN}-demoapp-0.4.5_p20120427.tar.bz2 )"
+
+DESCRIPTION="an XSLT template system for Django"
+HOMEPAGE="http://pypi.python.org/pypi/django-xslt/"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/lxml[${PYTHON_USEDEP}] )"
+
+python_test() {
+ export SECRET_KEY="green"
+ pushd "${WORKDIR}/demoapp" > /dev/null
+ if ! "${PYTHON}" -c "from django.conf import global_settings;global_settings.SECRET_KEY='$SECRET_KEY'" \
+ manage.py test; then
+ die "tests failed under ${EPYTHON}"
+ else
+ einfo "tests passed under ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/django-xslt/metadata.xml b/dev-python/django-xslt/metadata.xml
new file mode 100644
index 00000000000..7367468525e
--- /dev/null
+++ b/dev-python/django-xslt/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">django-xslt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
new file mode 100644
index 00000000000..ac13d020436
--- /dev/null
+++ b/dev-python/django/Manifest
@@ -0,0 +1,5 @@
+DIST Django-1.4.21.tar.gz 7878015 SHA256 934f1975218680d51c4da9d63a39bc5fb1ddaac48476fd34b9ab7903fd98bcf4 SHA512 25fca8362fa30822a5993a2f1d00bc7629b97acfac97daa406fc7658019e35f52ecc539cc875a8ece3b1edb140fd5260e8dd3a355c9405b693d191746df516fa WHIRLPOOL 50fdcd0129cbd23e0400b15b3da069318a731643f5817a8bc98872f9c402b2f23171a13eb031732c0753855440c357b0a54c155fdc0b7bc71761d40f2848acab
+DIST Django-1.5.10.tar.gz 8074324 SHA256 7cb4217e740f7d5d6d74617dbb9d960f9c09e8269c6762fe68c6e762219f4018 SHA512 5357116870370f7fd06f77e5bfad98f89c6bb131eb2828ded524422d0690d8842c3106e4e92614c374ab2549d205e77c98e4071894f0625dfe69a382171b1834 WHIRLPOOL e603767d6912e9bffd65161750baa626c315362c8c438a2c6fb25a47ecdc867bace998752a9acb6b8db1833f30e8bd7b9aa8fc87f823b906b394d4ab455aa265
+DIST Django-1.6.11.tar.gz 6764000 SHA256 7e50e573e484435873b3515d7982d80093b2695aba17fd0ff024307454dc3a56 SHA512 de6024b49e0344bf153f73ec344180fb701e415e4f9c330118821744d0e579436cc265724f7ef7213c9551847022ba9570312633f317b9003db533d06deb9829 WHIRLPOOL 5de086952bda9449f85798e8fe3bac82f11e1b856c1d39e340399e71ca6bf183318eebf1f536714567036485637166a929082a1ba9d6c1816f07c53dcc12c72a
+DIST Django-1.7.9.tar.gz 7605194 SHA256 4f3f9fe4e5d20ff8ed6a90b5d2f2df2d8fc054e478cdcc3db81c6b29bd217860 SHA512 349f6950ec7cb37c8ae44a5fc9b924ef0d02e244c834a65bbdbe84d8a993474c6e94f82ac0df5bd08594c8cc6f72bf9413b7b30091319dbb5c018f211d3e9e67 WHIRLPOOL 977e011027f4783aab9cbf53cf6015dc705f63f6b442bc403ede76562822fb0c09027fd89fe776455f1e3d55e636db4f6b586130ad41a709aafbe9eac003870a
+DIST Django-1.8.3.tar.gz 7284327 SHA256 2bb654fcc05fd53017c88caf2bc38b5c5ea23c91f8ac7f0a28b290daf2305bba SHA512 17943c4769bb11125ee23cee6e05ce120a769ff46b9b380219bb28a42d4119082c2041fbc826d59707cb9f2cd1dc19c94beb61ac644e8c4fa5ba3bd528efa06e WHIRLPOOL 2f0cb1df6f2029be61a9a350dc2d5a955d91652038f9c94e3e8717bfc7824e98486c6cbe3c4494bbbe451b82eb75d4ce00828c7b8f6d207cc22af6c65d565317
diff --git a/dev-python/django/django-1.4.21.ebuild b/dev-python/django/django-1.4.21.ebuild
new file mode 100644
index 00000000000..0fb19dc8aeb
--- /dev/null
+++ b/dev-python/django/django-1.4.21.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='sqlite?'
+
+inherit bash-completion-r1 distutils-r1 eutils versionator webapp
+
+MY_P="Django-${PV}"
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="http://www.djangoproject.com/ http://pypi.python.org/pypi/Django"
+SRC_URI="https://www.djangoproject.com/m/releases/$(get_version_component_range 1-2)/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="sqlite test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${PYTHON_DEPS//sqlite?/sqlite}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ <dev-python/numpy-1.9[$(python_gen_usedep 'python*')]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ )"
+
+# app-text/pytextile[${PYTHON_USEDEP}]
+# dev-python/markdown[${PYTHON_USEDEP}]
+# dev-python/selenium[${PYTHON_USEDEP}]
+# dev-python/py-bcrypt[${PYTHON_USEDEP}]
+
+S="${WORKDIR}/${MY_P}"
+
+WEBAPP_MANUAL_SLOT="yes"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.4.19-bashcomp.patch
+)
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ sed \
+ -e "s/test_correct_url_value_passes/_&/" \
+ -e "s/test_correct_url_with_redirect/_&/" \
+ -i tests/modeltests/validation/tests.py || die
+ sed \
+ -e "s/test_urlfield_3/_&/" \
+ -e "s/test_urlfield_4/_&/" \
+ -e "s/test_urlfield_10/_&/" \
+ -i tests/regressiontests/forms/tests/fields.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${PYTHON}" tests/runtests.py --settings=test_sqlite -v2 \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+ webapp_src_install
+
+ elog "Additional Backend support can be enabled via"
+ optfeature "MySQL backend support in python 2.7 only" dev-python/mysql-python
+ optfeature "MySQL backend support in python 2.7 - 3.4" dev-python/mysql-connector-python
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ optfeature "Memcached support" dev-python/python-memcached
+ optfeature "ImageField Support" virtual/python-imaging
+ echo ""
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ insinto "${MY_HTDOCSDIR#${EPREFIX}}"
+ doins -r django/contrib/admin/static/admin/.
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "A copy of the admin media is available to"
+ elog "webapp-config for installation in a webroot,"
+ elog "as well as the traditional location in python's"
+ elog "site-packages dir for easy development"
+ elog
+ ewarn "If you build Django ${PV} without USE=\"vhosts\""
+
+ # XXX: call webapp_pkg_postinst? the old ebuild didn't do that...
+ ewarn "webapp-config will automatically install the"
+ ewarn "admin media into the localhost webroot."
+}
diff --git a/dev-python/django/django-1.5.10.ebuild b/dev-python/django/django-1.5.10.ebuild
new file mode 100644
index 00000000000..8dcf5c5497d
--- /dev/null
+++ b/dev-python/django/django-1.5.10.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+PYTHON_REQ_USE='sqlite?'
+WEBAPP_NO_AUTO_INSTALL="yes"
+
+inherit bash-completion-r1 distutils-r1 versionator webapp
+
+MY_P="Django-${PV}"
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="http://www.djangoproject.com/ http://pypi.python.org/pypi/Django"
+SRC_URI="https://www.djangoproject.com/m/releases/$(get_version_component_range 1-2)/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc mysql postgres sqlite test"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+PY23_USEDEP=$(python_gen_usedep python2_7 'python{3_3,3_4}')
+RDEPEND="virtual/python-imaging[${PYTHON_USEDEP}]
+ postgres? ( dev-python/psycopg:2[${PY23_USEDEP}] )
+ mysql? ( >=dev-python/mysql-python-1.2.3[${PY2_USEDEP}] )"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-1.0.7[${PYTHON_USEDEP}] )
+ test? ( ${PYTHON_DEPS//sqlite?/sqlite} )"
+
+REQUIRED_USE="mysql? ( $(python_gen_useflags python2_7) )
+ postgres? ( || ( $(python_gen_useflags 'python{2_7,3_2,3_3}') ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+WEBAPP_MANUAL_SLOT="yes"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.5.4-objects.patch \
+ "${FILESDIR}"/${PN}-1.5-py3tests.patch )
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html
+ fi
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ # https://code.djangoproject.com/ticket/20514
+ PYTHONPATH=. "${PYTHON}" tests/runtests.py --settings=test_sqlite -v1 \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ # Port conflict in django.test.testcases.LiveServerTestCase.
+ # Several other races with temp files.
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+src_install() {
+ distutils-r1_src_install
+ webapp_src_install
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}
+
+ if use doc; then
+ rm -fr docs/_build/html/_sources
+ local HTML_DOCS=( docs/_build/html/. )
+ fi
+
+ insinto "${MY_HTDOCSDIR#${EPREFIX}}"
+ doins -r django/contrib/admin/static/admin/.
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "A copy of the admin media is available to webapp-config for installation in a"
+ elog "webroot, as well as the traditional location in python's site-packages dir"
+ elog "for easy development."
+ webapp_pkg_postinst
+}
diff --git a/dev-python/django/django-1.6.11.ebuild b/dev-python/django/django-1.6.11.ebuild
new file mode 100644
index 00000000000..83f336a2caf
--- /dev/null
+++ b/dev-python/django/django-1.6.11.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+PYTHON_REQ_USE='sqlite?'
+WEBAPP_NO_AUTO_INSTALL="yes"
+
+inherit bash-completion-r1 distutils-r1 eutils versionator webapp
+
+MY_P="Django-${PV}"
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="http://www.djangoproject.com/ http://pypi.python.org/pypi/Django"
+SRC_URI="https://www.djangoproject.com/m/releases/$(get_version_component_range 1-2)/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc sqlite test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.0.7[${PYTHON_USEDEP}] )
+ test? (
+ ${PYTHON_DEPS//sqlite?/sqlite}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ <dev-python/numpy-1.9[$(python_gen_usedep 'python*')]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )"
+
+# dev-python/bcrypt[${PYTHON_USEDEP}]
+# dev-python/selenium[${PYTHON_USEDEP}]
+
+S="${WORKDIR}/${MY_P}"
+
+WEBAPP_MANUAL_SLOT="yes"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.5-py3tests.patch
+ "${FILESDIR}"/${PN}-1.6-objects.patch
+ "${FILESDIR}"/${PN}-1.6.10-bashcomp.patch
+)
+
+pkg_setup() {
+ webapp_pkg_setup
+}
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ sed \
+ -e "s:test_sensitive_cookie_not_cached:_&:g" \
+ -i tests/cache/tests.py || die
+
+ distutils-r1_python_prepare_all
+}
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${PYTHON}" tests/runtests.py --settings=test_sqlite -v2 \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+ webapp_src_install
+
+ elog "Additional Backend support can be enabled via"
+ optfeature "MySQL backend support in python 2.7 only" dev-python/mysql-python
+ optfeature "MySQL backend support in python 2.7 - 3.4" dev-python/mysql-connector-python
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ optfeature "Memcached support" dev-python/python-memcached
+ optfeature "ImageField Support" virtual/python-imaging
+ echo ""
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ if use doc; then
+ rm -fr docs/_build/html/_sources || die
+ local HTML_DOCS=( docs/_build/html/. )
+ fi
+
+ insinto "${MY_HTDOCSDIR#${EPREFIX}}"
+ doins -r django/contrib/admin/static/admin/.
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "A copy of the admin media is available to webapp-config for installation in a"
+ elog "webroot, as well as the traditional location in python's site-packages dir"
+ elog "for easy development."
+ webapp_pkg_postinst
+}
diff --git a/dev-python/django/django-1.7.9.ebuild b/dev-python/django/django-1.7.9.ebuild
new file mode 100644
index 00000000000..f6eb6581442
--- /dev/null
+++ b/dev-python/django/django-1.7.9.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+PYTHON_REQ_USE='sqlite?'
+WEBAPP_NO_AUTO_INSTALL="yes"
+
+inherit bash-completion-r1 distutils-r1 eutils versionator webapp
+
+MY_P="Django-${PV}"
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="http://www.djangoproject.com/ http://pypi.python.org/pypi/Django"
+SRC_URI="https://www.djangoproject.com/m/releases/$(get_version_component_range 1-2)/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc sqlite test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.0.7[${PYTHON_USEDEP}] )
+ test? (
+ ${PYTHON_DEPS//sqlite?/sqlite}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/numpy[$(python_gen_usedep 'python*')]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )"
+
+# dev-python/python-sqlparse[${PYTHON_USEDEP}]
+# dev-python/bcrypt[${PYTHON_USEDEP}]
+# dev-python/selenium[${PYTHON_USEDEP}]
+# sci-libs/gdal[geos,${PYTHON_USEDEP}]
+
+S="${WORKDIR}/${MY_P}"
+
+WEBAPP_MANUAL_SLOT="yes"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.6-bashcomp.patch
+)
+
+pkg_setup() {
+ webapp_pkg_setup
+}
+
+python_prepare_all() {
+ # Prevent d'loading in the doc build
+ sed -e '/^ "sphinx.ext.intersphinx",/d' -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${PYTHON}" tests/runtests.py --settings=test_sqlite -v2 \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+ webapp_src_install
+
+ elog "Additional Backend support can be enabled via"
+ optfeature "MySQL backend support in python 2.7 only" dev-python/mysql-python
+ optfeature "MySQL backend support in python 2.7 - 3.4" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ optfeature "GEO Django" sci-libs/gdal[geos]
+ optfeature "Memcached support" dev-python/python-memcached
+ optfeature "ImageField Support" virtual/python-imaging
+ echo ""
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ if use doc; then
+ rm -fr docs/_build/html/_sources || die
+ local HTML_DOCS=( docs/_build/html/. )
+ fi
+
+ insinto "${MY_HTDOCSDIR#${EPREFIX}}"
+ doins -r django/contrib/admin/static/admin/.
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "A copy of the admin media is available to webapp-config for installation in a"
+ elog "webroot, as well as the traditional location in python's site-packages dir"
+ elog "for easy development."
+ webapp_pkg_postinst
+}
diff --git a/dev-python/django/django-1.8.3.ebuild b/dev-python/django/django-1.8.3.ebuild
new file mode 100644
index 00000000000..894542f566f
--- /dev/null
+++ b/dev-python/django/django-1.8.3.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+PYTHON_REQ_USE='sqlite?'
+WEBAPP_NO_AUTO_INSTALL="yes"
+
+inherit bash-completion-r1 distutils-r1 eutils versionator webapp
+
+MY_PN="Django"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="http://www.djangoproject.com/ http://pypi.python.org/pypi/Django"
+SRC_URI="
+ https://www.djangoproject.com/m/releases/$(get_version_component_range 1-2)/${MY_P}.tar.gz
+ mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz
+ "
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc sqlite test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.0.7[${PYTHON_USEDEP}] )
+ test? (
+ ${PYTHON_DEPS//sqlite?/sqlite}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/numpy[$(python_gen_usedep 'python*')]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+WEBAPP_MANUAL_SLOT="yes"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.6-bashcomp.patch
+)
+
+pkg_setup() {
+ webapp_pkg_setup
+}
+
+python_prepare_all() {
+ # Prevent d'loading in the doc build
+ sed -e '/^ "sphinx.ext.intersphinx",/d' -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${PYTHON}" tests/runtests.py --settings=test_sqlite -v2 \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ if use doc; then
+ rm -fr docs/_build/html/_sources || die
+ local HTML_DOCS=( docs/_build/html/. )
+ fi
+
+ insinto "${MY_HTDOCSDIR#${EPREFIX}}"
+ doins -r django/contrib/admin/static/admin/.
+ distutils-r1_python_install_all
+}
+
+src_install() {
+ distutils-r1_src_install
+ webapp_src_install
+}
+
+pkg_postinst() {
+ elog "Additional Backend support can be enabled via"
+ optfeature "MySQL backend support in python 2.7 only" dev-python/mysql-python
+ optfeature "MySQL backend support in python 2.7 - 3.4" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ echo ""
+ elog "Other features can be enhanced by"
+ optfeature "GEO Django" sci-libs/gdal[geos]
+ optfeature "Memcached support" dev-python/python-memcached
+ optfeature "ImageField Support" virtual/python-imaging
+ optfeature "Password encryption" dev-python/bcrypt
+ optfeature "High-level abstractions for Django forms" dev-python/django-formtools
+ echo ""
+ elog "A copy of the admin media is available to webapp-config for installation in a"
+ elog "webroot, as well as the traditional location in python's site-packages dir"
+ elog "for easy development."
+ webapp_pkg_postinst
+}
diff --git a/dev-python/django/django-9999.ebuild b/dev-python/django/django-9999.ebuild
new file mode 100644
index 00000000000..ef63c4d9d65
--- /dev/null
+++ b/dev-python/django/django-9999.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+PYTHON_REQ_USE='sqlite?'
+WEBAPP_NO_AUTO_INSTALL="yes"
+
+inherit bash-completion-r1 distutils-r1 eutils git-r3 versionator webapp
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="http://www.djangoproject.com/ http://pypi.python.org/pypi/Django"
+SRC_URI=""
+EGIT_REPO_URI="
+ https://github.com/django/django.git
+ "
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+IUSE="doc sqlite test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.0.7[${PYTHON_USEDEP}] )
+ test? (
+ ${PYTHON_DEPS//sqlite?/sqlite}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/numpy[$(python_gen_usedep 'python*')]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+WEBAPP_MANUAL_SLOT="yes"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.6-bashcomp.patch
+)
+
+pkg_setup() {
+ webapp_pkg_setup
+}
+
+python_prepare_all() {
+ # Prevent d'loading in the doc build
+ sed -e '/^ "sphinx.ext.intersphinx",/d' -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${PYTHON}" tests/runtests.py --settings=test_sqlite -v2 \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+ webapp_src_install
+
+ elog "Additional Backend support can be enabled via"
+ optfeature "MySQL backend support in python 2.7 only" dev-python/mysql-python
+ optfeature "MySQL backend support in python 2.7 - 3.4" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ echo
+ elog "Other features can be enhanced by"
+ optfeature "GEO Django" sci-libs/gdal[geos]
+ optfeature "Memcached support" dev-python/python-memcached
+ optfeature "ImageField Support" virtual/python-imaging
+ optfeature "Password encryption" dev-python/bcrypt
+ optfeature "Extended templating support" dev-python/jinja
+ echo ""
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ if use doc; then
+ rm -fr docs/_build/html/_sources || die
+ local HTML_DOCS=( docs/_build/html/. )
+ fi
+
+ insinto "${MY_HTDOCSDIR#${EPREFIX}}"
+ doins -r django/contrib/admin/static/admin/.
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "A copy of the admin media is available to webapp-config for installation in a"
+ elog "webroot, as well as the traditional location in python's site-packages dir"
+ elog "for easy development."
+ webapp_pkg_postinst
+}
diff --git a/dev-python/django/files/django-1.4.19-bashcomp.patch b/dev-python/django/files/django-1.4.19-bashcomp.patch
new file mode 100644
index 00000000000..26d5f7ee140
--- /dev/null
+++ b/dev-python/django/files/django-1.4.19-bashcomp.patch
@@ -0,0 +1,37 @@
+ extras/django_bash_completion | 17 +----------------
+ 1 file changed, 1 insertion(+), 16 deletions(-)
+
+diff --git a/extras/django_bash_completion b/extras/django_bash_completion
+old mode 100755
+new mode 100644
+index 1c3887e..748227d
+--- a/extras/django_bash_completion
++++ b/extras/django_bash_completion
+@@ -37,7 +37,7 @@ _django_completion()
+ COMP_CWORD=$COMP_CWORD \
+ DJANGO_AUTO_COMPLETE=1 $1 ) )
+ }
+-complete -F _django_completion -o default django-admin.py manage.py django-admin
++complete -F _django_completion -o default django-admin.py django-admin
+
+ _python_django_completion()
+ {
+@@ -55,18 +55,3 @@ _python_django_completion()
+ fi
+ fi
+ }
+-
+-# Support for multiple interpreters.
+-unset pythons
+-if command -v whereis &>/dev/null; then
+- python_interpreters=$(whereis python | cut -d " " -f 2-)
+- for python in $python_interpreters; do
+- pythons="${pythons} $(basename -- $python)"
+- done
+- pythons=$(echo $pythons | tr " " "\n" | sort -u | tr "\n" " ")
+-else
+- pythons=python
+-fi
+-
+-complete -F _python_django_completion -o default $pythons
+-
diff --git a/dev-python/django/files/django-1.5-py3tests.patch b/dev-python/django/files/django-1.5-py3tests.patch
new file mode 100644
index 00000000000..16b2cc209c0
--- /dev/null
+++ b/dev-python/django/files/django-1.5-py3tests.patch
@@ -0,0 +1,22 @@
+https://code.djangoproject.com/ticket/20514
+diff -ur Django-1.5.orig/django/contrib/gis/tests/test_measure.py Django-1.5/django/contrib/gis/tests/test_measure.py
+--- django/contrib/gis/tests/test_measure.py 2013-02-27 03:04:14.000000000 +0800
++++ django/contrib/gis/tests/test_measure.py 2013-05-28 04:40:18.983011224 +0800
+@@ -40,7 +40,7 @@
+ "Testing access in different units"
+ d = D(m=100)
+ self.assertEqual(d.km, 0.1)
+- self.assertAlmostEqual(d.ft, 328.084, 3)
++ self.assertAlmostEqual(d.ft, 328.084, places=3)
+
+ def testAccessInvalid(self):
+ "Testing access in invalid units"
+@@ -172,7 +172,7 @@
+ "Testing access in different units"
+ a = A(sq_m=100)
+ self.assertEqual(a.sq_km, 0.0001)
+- self.assertAlmostEqual(a.sq_ft, 1076.391, 3)
++ self.assertAlmostEqual(a.sq_ft, 1076.391, places=3)
+
+ def testAccessInvaliA(self):
+ "Testing access in invalid units"
diff --git a/dev-python/django/files/django-1.5.4-objects.patch b/dev-python/django/files/django-1.5.4-objects.patch
new file mode 100644
index 00000000000..48e649081d3
--- /dev/null
+++ b/dev-python/django/files/django-1.5.4-objects.patch
@@ -0,0 +1,31 @@
+Remove un-needed objects.inv files from d'loading during doc build
+diff -ur Django-1.5.1.orig/docs/conf.py Django-1.5.1/docs/conf.py
+--- docs/conf.py 2013-03-29 04:10:14.000000000 +0800
++++ docs/conf.py 2013-05-28 01:54:49.695008477 +0800
+@@ -91,12 +91,6 @@
+
+ # Links to Python's docs should reference the most recent version of the 2.x
+ # branch, which is located at this URL.
+-intersphinx_mapping = {
+- 'python': ('http://docs.python.org/2.7', None),
+- 'sphinx': ('http://sphinx.pocoo.org/', None),
+- 'six': ('http://pythonhosted.org/six/', None),
+- 'simplejson': ('http://simplejson.readthedocs.org/en/latest/', None),
+-}
+
+ # Python's docs don't change every week.
+ intersphinx_cache_limit = 90 # days
+# Fix creation of html docs on python 3
+# https://github.com/django/django/commit/a5733fcd7be7adb8b236825beff4ccda19900f9e
+diff -ur Django-1.5.1.orig/docs/_ext/djangodocs.py Django-1.5.1/docs/_ext/djangodocs.py
+--- docs/_ext/djangodocs.py 2013-03-29 04:07:21.000000000 +0800
++++ docs/_ext/djangodocs.py 2013-05-28 02:34:59.057009144 +0800
+@@ -204,7 +204,7 @@
+ if t == "templatefilter" and l == "ref/templates/builtins"],
+ }
+ outfilename = os.path.join(self.outdir, "templatebuiltins.js")
+- with open(outfilename, 'wb') as fp:
++ with open(outfilename, 'w') as fp:
+ fp.write('var django_template_builtins = ')
+ json.dump(templatebuiltins, fp)
+ fp.write(';\n')
diff --git a/dev-python/django/files/django-1.6-objects.patch b/dev-python/django/files/django-1.6-objects.patch
new file mode 100644
index 00000000000..597da6e6bb1
--- /dev/null
+++ b/dev-python/django/files/django-1.6-objects.patch
@@ -0,0 +1,18 @@
+#Remove un-needed objects.inv files from d'loading during doc build
+diff -ur Django-1.6.1.orig/docs/conf.py Django-1.6.1/docs/conf.py
+--- docs/conf.py 2013-12-12 14:37:59.000000000 -0500
++++ docs/conf.py 2014-01-16 20:57:36.253670094 -0500
+@@ -109,12 +109,6 @@
+
+ # Links to Python's docs should reference the most recent version of the 2.x
+ # branch, which is located at this URL.
+-intersphinx_mapping = {
+- 'python': ('http://docs.python.org/2.7', None),
+- 'sphinx': ('http://sphinx.pocoo.org/', None),
+- 'six': ('http://pythonhosted.org/six/', None),
+- 'simplejson': ('http://simplejson.readthedocs.org/en/latest/', None),
+-}
+
+ # Python's docs don't change every week.
+ intersphinx_cache_limit = 90 # days
+
diff --git a/dev-python/django/files/django-1.6.10-bashcomp.patch b/dev-python/django/files/django-1.6.10-bashcomp.patch
new file mode 100644
index 00000000000..7c6ceff076a
--- /dev/null
+++ b/dev-python/django/files/django-1.6.10-bashcomp.patch
@@ -0,0 +1,35 @@
+ extras/django_bash_completion | 17 +----------------
+ 1 file changed, 1 insertion(+), 16 deletions(-)
+
+diff --git a/extras/django_bash_completion b/extras/django_bash_completion
+index 8f85211..ab13755 100755
+--- a/extras/django_bash_completion
++++ b/extras/django_bash_completion
+@@ -37,7 +37,7 @@ _django_completion()
+ COMP_CWORD=$COMP_CWORD \
+ DJANGO_AUTO_COMPLETE=1 $1 ) )
+ }
+-complete -F _django_completion -o default django-admin.py manage.py django-admin
++complete -F _django_completion -o default django-admin.py django-admin
+
+ _python_django_completion()
+ {
+@@ -55,18 +55,3 @@ _python_django_completion()
+ fi
+ fi
+ }
+-
+-# Support for multiple interpreters.
+-unset pythons
+-if command -v whereis &>/dev/null; then
+- python_interpreters=$(whereis python | cut -d " " -f 2-)
+- for python in $python_interpreters; do
+- pythons="${pythons} ${python##*/}"
+- done
+- pythons=$(echo $pythons | tr " " "\n" | sort -u | tr "\n" " ")
+-else
+- pythons=python
+-fi
+-
+-complete -F _python_django_completion -o default $pythons
+-
diff --git a/dev-python/django/files/django-1.7.6-bashcomp.patch b/dev-python/django/files/django-1.7.6-bashcomp.patch
new file mode 100644
index 00000000000..ef76f8a873c
--- /dev/null
+++ b/dev-python/django/files/django-1.7.6-bashcomp.patch
@@ -0,0 +1,34 @@
+ extras/django_bash_completion | 16 +---------------
+ 1 file changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/extras/django_bash_completion b/extras/django_bash_completion
+index 3e02d8e..5a33938 100755
+--- a/extras/django_bash_completion
++++ b/extras/django_bash_completion
+@@ -37,7 +37,7 @@ _django_completion()
+ COMP_CWORD=$COMP_CWORD \
+ DJANGO_AUTO_COMPLETE=1 $1 ) )
+ }
+-complete -F _django_completion -o default django-admin.py manage.py django-admin
++complete -F _django_completion -o default django-admin.py django-admin
+
+ _python_django_completion()
+ {
+@@ -55,17 +55,3 @@ _python_django_completion()
+ fi
+ fi
+ }
+-
+-# Support for multiple interpreters.
+-unset pythons
+-if command -v whereis &>/dev/null; then
+- python_interpreters=$(whereis python | cut -d " " -f 2-)
+- for python in $python_interpreters; do
+- pythons="${pythons} ${python##*/}"
+- done
+- pythons=$(echo $pythons | tr " " "\n" | sort -u | tr "\n" " ")
+-else
+- pythons=python
+-fi
+-
+-complete -F _python_django_completion -o default $pythons
diff --git a/dev-python/django/metadata.xml b/dev-python/django/metadata.xml
new file mode 100644
index 00000000000..04a135c41dd
--- /dev/null
+++ b/dev-python/django/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Django</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dnspython/Manifest b/dev-python/dnspython/Manifest
new file mode 100644
index 00000000000..f5840dab04f
--- /dev/null
+++ b/dev-python/dnspython/Manifest
@@ -0,0 +1,3 @@
+DIST dnspython-1.11.1.tar.gz 129573 SHA256 c0c6fcf3ff52939e7eadd931282d083271f65cf0a174555a703563a400289768 SHA512 03b2d35ae638a05d1af5458e88ab3450c1bf835a4e704b630474f32b8f93844b625ab2fc0000fdf2490bc90e3ec01f56175be130b5de996546c8bcebe57dfc05 WHIRLPOOL d2ad625278ed519c98d2c5612d1384ac06e65a9e9ab01c646e41a8377306a97cacd88c5e090f14a41f161c6fe3e52222314e8bed638316c07f80d5b035062d1e
+DIST dnspython-1.12.0.tar.gz 135164 SHA256 03fb82af866001c4afa58c48027bcc4b80bbf0a7f27e1d861cf06393eea4724f SHA512 583d069ed7ee9b20f16a964023fa0300f15032c27de6d084205f73394f19a2d5bb1641ef95b08a8ddf1f622eeb5fa8cbfa62b8a2ee478a49b0dff0995e4ae42e WHIRLPOOL abf515aad901b0c752a0f133c293654f60750522cee69985126547602f321f6577e135077cbfa330a30fbc838b125af30b75cbb4f8fdd60d1444b0bd2446bb39
+DIST dnspython3-1.12.0.zip 226945 SHA256 e9630946207864c7a780798809cd2ec9c6bbde6ac88b97a2fda66f018eec1c8d SHA512 02c61eb91c2e872f2c8fa0e09b88d593a067130b5ac3ea6eabd0abec413ecb6d3b7d5472ca502334f4c441af249511109006ae6a7b41d36ba1db3e777971b3ae WHIRLPOOL d3624f8545c607441931dcc71a1e43c83df6e1bd938222d52c8d798b342c4faf15f200bf1da7ea1fd59d2fe96e82644b22c8815764bf7d6304573deee6261f5a
diff --git a/dev-python/dnspython/dnspython-1.11.1.ebuild b/dev-python/dnspython/dnspython-1.11.1.ebuild
new file mode 100644
index 00000000000..dda6e400fe0
--- /dev/null
+++ b/dev-python/dnspython/dnspython-1.11.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="DNS toolkit for Python"
+HOMEPAGE="http://www.dnspython.org/ http://pypi.python.org/pypi/dnspython"
+SRC_URI="http://www.dnspython.org/kits/${PV}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="examples test"
+
+DEPEND="dev-python/pycrypto[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=( ChangeLog README )
+
+python_prepare_all() {
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/../tests &> /dev/null
+ local test
+ for test in *.py; do
+ if ! "${PYTHON}" ${test}; then
+ die "test $test failed under ${EPYTHON}"
+ else
+ einfo "test $test"
+ fi
+ done
+ # make some order out of the output salad
+ einfo "Testsuite passed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dnspython/dnspython-1.12.0-r1.ebuild b/dev-python/dnspython/dnspython-1.12.0-r1.ebuild
new file mode 100644
index 00000000000..6f519f18583
--- /dev/null
+++ b/dev-python/dnspython/dnspython-1.12.0-r1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 multilib
+
+PN3="${PN}3"
+P3="${PN3}-${PV}"
+
+DESCRIPTION="DNS toolkit for Python"
+HOMEPAGE="http://www.dnspython.org/ http://pypi.python.org/pypi/dnspython"
+SRC_URI="http://www.dnspython.org/kits/${PV}/${P}.tar.gz
+ http://www.dnspython.org/kits3/${PV}/${P3}.zip"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="examples test"
+
+DEPEND="dev-python/pycrypto[${PYTHON_USEDEP}]
+ app-arch/unzip"
+RDEPEND="${DEPEND}"
+
+S2="${S}"
+S3="${WORKDIR}/${P3}"
+
+# For testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare() {
+ if python_is_python3; then
+ cp -r "${WORKDIR}/${P3}" "${BUILD_DIR}" || die
+ else
+ distutils-r1_python_prepare
+ fi
+}
+
+python_compile() {
+ if python_is_python3; then
+ run_in_build_dir distutils-r1_python_compile
+ else
+ distutils-r1_python_compile
+ fi
+}
+
+python_install(){
+ if python_is_python3; then
+ run_in_build_dir distutils-r1_python_install
+ else
+ distutils-r1_python_install
+ fi
+}
+
+python_test() {
+ if python_is_python3; then
+ pushd "${S3}/tests" &> /dev/null
+ else
+ pushd "${S2}/tests" &> /dev/null
+ fi
+ "${PYTHON}" utest.py || die "tests failed under ${EPYTHON}"
+ einfo "Testsuite passed under ${EPYTHON}"
+ popd &> /dev/null
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dnspython/dnspython-1.12.0.ebuild b/dev-python/dnspython/dnspython-1.12.0.ebuild
new file mode 100644
index 00000000000..7eb611adf1e
--- /dev/null
+++ b/dev-python/dnspython/dnspython-1.12.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="DNS toolkit for Python"
+HOMEPAGE="http://www.dnspython.org/ http://pypi.python.org/pypi/dnspython"
+SRC_URI="http://www.dnspython.org/kits/${PV}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="examples test"
+
+DEPEND="dev-python/pycrypto[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# For tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ pushd "${BUILD_DIR}"/../tests &> /dev/null
+ "${PYTHON}" utest.py || die "tests failed under ${EPYTHON}"
+ einfo "Testsuite passed under ${EPYTHON}"
+ popd &> /dev/null
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dnspython/metadata.xml b/dev-python/dnspython/metadata.xml
new file mode 100644
index 00000000000..e593ae87a7c
--- /dev/null
+++ b/dev-python/dnspython/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+dnspython is a DNS toolkit for Python. It supports almost all of the record
+types. It can be used for queries, zone transfers, and dynamic updates. It
+supports TSIG authenticated messages and EDNS0. dnspython provides both high
+and low level access to DNS. The high level classes perform queries for data
+of a given name, type, and class, and return an answer set. The low level
+classes allow direct manipulation of DNS zones, messages, names, and records.
+</longdescription>
+<longdescription lang="ja">
+DNSPythonはPython言語用のDNSツールキットです。ほとんどのレコード・タイプをサポー
+トします。クエリー、ゾーン・トランスファー、ダイナミック・アップデートができます
+。TSTGメッセージ認証とEDNS0をサポートします。DNSPythonは高水準でのアクセスと低水
+準でのアクセスの両方を提供します。高水準ではネーム、タイプ、クラスでクエリーを行
+い、その戻り値を使います。低水準はゾーン、メッセージ、ネーム、レコードを直接操作
+します。
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/docker-py/Manifest b/dev-python/docker-py/Manifest
new file mode 100644
index 00000000000..b3f18c8c0c1
--- /dev/null
+++ b/dev-python/docker-py/Manifest
@@ -0,0 +1,5 @@
+DIST docker-py-1.1.0-r1.tar.gz 60926 SHA256 c3373d120a83a80468c5340e2e36b20e6350a255309e50c56a57de4b5cad9d97 SHA512 14a9eacbee5e31c0dc9677c9250f27aa098f59634d6c07851e7d5d14e8ce9329e9a1519c70b2b4cd3f8532a06a022cd6d2ce4c0f7767ce6303aa38c972e25783 WHIRLPOOL 12c74f2c171f272c633f68be42c1a5061ace8ddf0522a0e7f9640673f332e78348d21c3bfe67c695a062d28c7b1049bdbfd2ecf4897ac00e28ce972630fcbd42
+DIST docker-py-1.2.2.tar.gz 69685 SHA256 85284a5b1a965e01a5d0a91f9f639ad5069143a276c123198fdafc3659280b38 SHA512 bf00b19e0ab56e5c0e8459234d09722ca504ecd933bfba61cb4ab4805410f53f6ad6083f2e964ef5a6eded2ea05aa01a89c27621064386bae145c7258ed996ad WHIRLPOOL bd7ff4579f924e02d18581b1aca00790dcb84afda03e4cde70b349bfdb4ad43aa2e06da2bcbe780f6074d98f9af9b14fb9d2ab4da9265e56b73288902c9ede7a
+DIST docker-py-1.2.3.tar.gz 69198 SHA256 66cba7beff9fca916d4c3f20220fa27ee8dcc639fe968f59e91201a7d0db6b22 SHA512 524d355e70dbf3666f61f0c8c42466d8d1a2e573fc1f347ff234f3a18803fed8d1296ccc106a78b48899d0282743b8bca08f6d36caec350ca374e8ebc7a4e55a WHIRLPOOL e77b8ad37f5c82738903353b578db8ee9d050c647af866cac9e4155646531b47a9e3d85ef6c42d64da2b1162616e49d06a5c16f33e19d56926e45546934be9a2
+DIST docker-py-1.3.0.tar.gz 70751 SHA256 ca898e2d742788b634ef5e449a74aa291c52bd5cf6eec8f03d30c616e235eb67 SHA512 d278d91bab3ea056463c83fdf9c19ea7201e459c350e433c8ab14063354540ac483f97d42f27286d6b84ce0c91089c23ad2de6c96549acb388e08732487e8d4d WHIRLPOOL 35e3c67a6019c710c876b0ca9afe4c681ccc7fcde3412075c671c6366c3a49ed783ca40a1e6f06afa18444961a85d94b9f726323a8ba0829b20625cc1a207df8
+DIST docker-py-1.3.1.tar.gz 71456 SHA256 4a980c55f22b97573b68f720ebc0b6f2a01cd9ec454d305bd13d2b83109a0bfa SHA512 f027a44cd15aa0a9d47a748c6f593e940ee4b6db0d8a933591e148bc9b0e6801c9ece3f81fc3a21eba762eff838ef40bf04fda299f28ba508e029b67658ee228 WHIRLPOOL 57d7429d58610bbef4473d5aabfe7f1771b2e3d4f083d44d6aba8f144bf44afeff9a0bcf458754f2787b54e1a1e07fddb9e66a42c16a6b1f20a8e1f9be3aa558
diff --git a/dev-python/docker-py/docker-py-1.1.0-r2.ebuild b/dev-python/docker-py/docker-py-1.1.0-r2.ebuild
new file mode 100644
index 00000000000..b88b834343e
--- /dev/null
+++ b/dev-python/docker-py/docker-py-1.1.0-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python client for Docker"
+HOMEPAGE="https://github.com/docker/docker-py"
+SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}-r1.tar.gz"
+
+S="${S}-r1"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/mkdocs-0.9[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-python/coverage-3.7.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/websocket-client-0.11.0[${PYTHON_USEDEP}]' python2_7)
+"
+
+python_compile_all() {
+ if use doc; then
+ mkdocs build || die "docs failed to build"
+ fi
+}
+
+python_test() {
+ "${PYTHON}" tests/test.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( site/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/docker-py/docker-py-1.2.2.ebuild b/dev-python/docker-py/docker-py-1.2.2.ebuild
new file mode 100644
index 00000000000..99111c89ed9
--- /dev/null
+++ b/dev-python/docker-py/docker-py-1.2.2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python client for Docker"
+HOMEPAGE="https://github.com/docker/docker-py"
+SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/mkdocs-0.9[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/mock-1.0.1[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/websocket-client-0.11.0[${PYTHON_USEDEP}]' python2_7)
+"
+
+python_compile_all() {
+ if use doc; then
+ mkdocs build || die "docs failed to build"
+ fi
+}
+
+python_test() {
+ "${PYTHON}" tests/test.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( site/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/docker-py/docker-py-1.2.3.ebuild b/dev-python/docker-py/docker-py-1.2.3.ebuild
new file mode 100644
index 00000000000..49e4d1c6952
--- /dev/null
+++ b/dev-python/docker-py/docker-py-1.2.3.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python client for Docker"
+HOMEPAGE="https://github.com/docker/docker-py"
+SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/mkdocs-0.9[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/mock-1.0.1[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/websocket-client-0.11.0[${PYTHON_USEDEP}]' python2_7)
+"
+
+python_compile_all() {
+ if use doc; then
+ mkdocs build || die "docs failed to build"
+ fi
+}
+
+python_test() {
+ "${PYTHON}" tests/test.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( site/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/docker-py/docker-py-1.3.0.ebuild b/dev-python/docker-py/docker-py-1.3.0.ebuild
new file mode 100644
index 00000000000..03c6f387699
--- /dev/null
+++ b/dev-python/docker-py/docker-py-1.3.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python client for Docker"
+HOMEPAGE="https://github.com/docker/docker-py"
+SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/mock-1.0.1[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ "${PYTHON}" tests/test.py || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/docker-py/docker-py-1.3.1.ebuild b/dev-python/docker-py/docker-py-1.3.1.ebuild
new file mode 100644
index 00000000000..704b20632fa
--- /dev/null
+++ b/dev-python/docker-py/docker-py-1.3.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python client for Docker"
+HOMEPAGE="https://github.com/docker/docker-py"
+SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/mkdocs-0.14.0[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/mock-1.0.1[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ if use doc; then
+ mkdocs build || die "docs failed to build"
+ fi
+}
+
+python_test() {
+ "${PYTHON}" tests/test.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( site/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/docker-py/metadata.xml b/dev-python/docker-py/metadata.xml
new file mode 100644
index 00000000000..c86b904c612
--- /dev/null
+++ b/dev-python/docker-py/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">docker/docker-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dockerpty/Manifest b/dev-python/dockerpty/Manifest
new file mode 100644
index 00000000000..a456e3f830c
--- /dev/null
+++ b/dev-python/dockerpty/Manifest
@@ -0,0 +1,3 @@
+DIST dockerpty-0.3.2.tar.gz 16808 SHA256 c937518704d5ced544a556f97efef57327690f1cd64d413767d79dadd062d85f SHA512 fccb52cfabe5bc8fe81e18179737a4aa9bb35d064d08b081dddd17805c47d8cc3aec23e49b3d0cc6b165fda158166965e56555a6ce8e633d5ba057d35e4061e4 WHIRLPOOL 0c0a1c0ce5e748f5771a776abfd3bb1300dc3d088ecec0620fa4ff6946ca9206297c770b57801380d2d160f358df91977ff977d3d3bfc9488958d53365939594
+DIST dockerpty-0.3.3.tar.gz 18583 SHA256 4b59a42c9b13c878439ccb2f75d017f88f306ab33fae7b20d8ac1f7e3fa72af7 SHA512 c5e0686c19b3ee3762c79d8f66602e25f3decd14c3ae35f514464c5e4c627e7653ca86f9e602535cb65c0d15d00ca5c687576214efe87a7309abca11cd6b8ea5 WHIRLPOOL 69bbf8bee0f52689e22827789fc05b64e6c09014e98a4075a746865567f8c790a533ce21f5e41319892b567fdbded6f428e0969a5b9c27b8726254d56901f6fa
+DIST dockerpty-0.3.4.tar.gz 18611 SHA256 d041b268264905818ca7cfc52e14b738c1ff2c21ef59ccbed5d5ef81d4a7591e SHA512 dee0cf8ae926bae3f5e96643e912d3cc2dbd782594fa148addac996909e7fec84e1e1579a8d00ce46479041e85496b0615cb4a68b635288d04a4ef73ad27b10d WHIRLPOOL ddd768c2b650301ac4c27fc9394d47f65303734abbbc1da7ddfdbd31ca89578a952b189e709a51134d0946985608af7ecb16108a52c8c6205b7ab58c0b7e7b61
diff --git a/dev-python/dockerpty/dockerpty-0.3.2.ebuild b/dev-python/dockerpty/dockerpty-0.3.2.ebuild
new file mode 100644
index 00000000000..8399d9dffeb
--- /dev/null
+++ b/dev-python/dockerpty/dockerpty-0.3.2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python library to use the pseudo-tty of a docker container"
+HOMEPAGE="https://github.com/d11wtq/dockerpty"
+SRC_URI="https://github.com/d11wtq/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/behave-1.2.4[${PYTHON_USEDEP}]
+ >=dev-python/docker-py-0.3.2[${PYTHON_USEDEP}]
+ >=dev-python/expects-0.4[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.5.2[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=">=dev-python/docker-py-0.3.2[${PYTHON_USEDEP}]"
+
+python_test() {
+ local RUN_FEATURES=0
+
+ ewarn "${PN} tests require portage to be in the docker group!"
+ getent group docker |& grep portage 1>/dev/null 2>&1
+ RUN_FEATURES+=$?
+
+ ewarn "${PN} tests require a running docker service!"
+ which docker 1>/dev/null 2>&1 && docker info 1>/dev/null 2>&1
+ RUN_FEATURES+=$?
+
+ if [[ ${RUN_FEATURES} -eq 0 ]]; then
+ behave || die "Feature tests failed under ${EPYTHON}"
+
+ fi
+
+ py.test tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/dockerpty/dockerpty-0.3.3.ebuild b/dev-python/dockerpty/dockerpty-0.3.3.ebuild
new file mode 100644
index 00000000000..1624bcb9cee
--- /dev/null
+++ b/dev-python/dockerpty/dockerpty-0.3.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python library to use the pseudo-tty of a docker container"
+HOMEPAGE="https://github.com/d11wtq/dockerpty"
+SRC_URI="https://github.com/d11wtq/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/behave-1.2.4[${PYTHON_USEDEP}]
+ >=dev-python/docker-py-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/expects-0.4[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.5.2[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=">=dev-python/six-1.3.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ local RUN_FEATURES=0
+
+ ewarn "${PN} tests require portage to be in the docker group!"
+ getent group docker |& grep portage 1>/dev/null 2>&1
+ RUN_FEATURES+=${?}
+
+ ewarn "${PN} tests require a running docker service!"
+ which docker 1>/dev/null 2>&1 && docker info 1>/dev/null 2>&1
+ RUN_FEATURES+=${?}
+
+ if [[ ${RUN_FEATURES} -eq 0 ]]; then
+ behave || die "Feature tests failed under ${EPYTHON}"
+
+ fi
+
+ py.test tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/dockerpty/dockerpty-0.3.4.ebuild b/dev-python/dockerpty/dockerpty-0.3.4.ebuild
new file mode 100644
index 00000000000..1624bcb9cee
--- /dev/null
+++ b/dev-python/dockerpty/dockerpty-0.3.4.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python library to use the pseudo-tty of a docker container"
+HOMEPAGE="https://github.com/d11wtq/dockerpty"
+SRC_URI="https://github.com/d11wtq/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/behave-1.2.4[${PYTHON_USEDEP}]
+ >=dev-python/docker-py-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/expects-0.4[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.5.2[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=">=dev-python/six-1.3.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ local RUN_FEATURES=0
+
+ ewarn "${PN} tests require portage to be in the docker group!"
+ getent group docker |& grep portage 1>/dev/null 2>&1
+ RUN_FEATURES+=${?}
+
+ ewarn "${PN} tests require a running docker service!"
+ which docker 1>/dev/null 2>&1 && docker info 1>/dev/null 2>&1
+ RUN_FEATURES+=${?}
+
+ if [[ ${RUN_FEATURES} -eq 0 ]]; then
+ behave || die "Feature tests failed under ${EPYTHON}"
+
+ fi
+
+ py.test tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/dockerpty/metadata.xml b/dev-python/dockerpty/metadata.xml
new file mode 100644
index 00000000000..5f64e0a5b6c
--- /dev/null
+++ b/dev-python/dockerpty/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">d11wtq/dockerpty</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/docopt/Manifest b/dev-python/docopt/Manifest
new file mode 100644
index 00000000000..a51154418ff
--- /dev/null
+++ b/dev-python/docopt/Manifest
@@ -0,0 +1 @@
+DIST docopt-0.6.2.tar.gz 25901 SHA256 49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491 SHA512 af138feccf8c37b374ee44fcda4938a88107d434df13c173214021b1a3348b152a595095a86982b66ac03a11db8e0f1e9e6a3a65c98deea92330311daeb831a3 WHIRLPOOL d6d00dd8e6e1063ba6d12339b6e7744bd993270173260efe8ba808e71945d3ac26a22adb005563d626ffa1e253022b88bf0bd1f9dd729bf6634be73d20108541
diff --git a/dev-python/docopt/docopt-0.6.2.ebuild b/dev-python/docopt/docopt-0.6.2.ebuild
new file mode 100644
index 00000000000..8151b4ae73e
--- /dev/null
+++ b/dev-python/docopt/docopt-0.6.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pythonic argument parser, that will make you smile"
+HOMEPAGE="https://pypi.python.org/pypi/docopt https://github.com/docopt/docopt"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ https://github.com/docopt/docopt/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+# not implemented in this version, git already has it
+RESTRICT=test
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/docopt/metadata.xml b/dev-python/docopt/metadata.xml
new file mode 100644
index 00000000000..ee9eaf6327d
--- /dev/null
+++ b/dev-python/docopt/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">docopt</remote-id>
+ <remote-id type="github">docopt/docopt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/docutils-glep/Manifest b/dev-python/docutils-glep/Manifest
new file mode 100644
index 00000000000..af4bd94c627
--- /dev/null
+++ b/dev-python/docutils-glep/Manifest
@@ -0,0 +1 @@
+DIST glep-0.4-r1.tbz2 4667 SHA256 d0b421869fb3437e96484687fd57f34d4f5cdd5a1fbdb2314f1474b1f9afa058 SHA512 098d9f5043a60af9dfac63f6472b576e66ffeda924902ca825ed63f573aeb8bad7c9f9a6853fd99e648683488ee6db2ee55c139df3dde06983b72cfb5dd8cdd3 WHIRLPOOL 277cdf4a7fe70990864a4f0fd592561bcf5edc1de8d4830da96c75093d47d8d64214b95ac5ae7960670a8520650a5e23355df248f61bddcd9cd5dc23cab0fe19
diff --git a/dev-python/docutils-glep/docutils-glep-0.4-r1.ebuild b/dev-python/docutils-glep/docutils-glep-0.4-r1.ebuild
new file mode 100644
index 00000000000..e90881b6cca
--- /dev/null
+++ b/dev-python/docutils-glep/docutils-glep-0.4-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit eutils python-r1
+
+MY_P=${PF/docutils-/}
+
+DESCRIPTION="Gentoo GLEP support for docutils"
+HOMEPAGE="http://www.gentoo.org/proj/en/glep/"
+SRC_URI="mirror://gentoo/${MY_P}.tbz2"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND=">=dev-python/docutils-0.10[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ epatch_user
+
+ # It's easier to move them around now.
+ # TODO: add python_newmodule?
+ mkdir {readers,transforms,writers} || die
+ mv {glepread,readers/glep}.py || die
+ mv {glepstrans,transforms/gleps}.py || die
+ mv glep_html writers/ || die
+}
+
+src_install() {
+ inst() {
+ python_doscript glep.py
+
+ python_moduleinto docutils
+ python_domodule readers transforms writers
+ }
+
+ python_foreach_impl inst
+}
diff --git a/dev-python/docutils-glep/metadata.xml b/dev-python/docutils-glep/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/docutils-glep/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/docutils/Manifest b/dev-python/docutils/Manifest
new file mode 100644
index 00000000000..915b23bb9ee
--- /dev/null
+++ b/dev-python/docutils/Manifest
@@ -0,0 +1,5 @@
+DIST docutils-0.10.tar.gz 1602552 SHA256 370624e61b6773da2f2fb17cc2a4eaea4bb596c3585d13f75ff193c1c738603e SHA512 255474d4d9efc427ecb2123939af64475335c1f2af2f1b398a0c540693629f6ce6b105fb45f6ef962800948e2844b5140ecc6b81218e3c8619d14c9c7f2705c4 WHIRLPOOL 7e25c5b9206f019acc9131a0b5baf05fd21d042d121e2c472a8d908cc668346e26572d6db6546200dc9b85fb9b8a462e3ada59eb9c760f9915efaa510ffe74fa
+DIST docutils-0.11.tar.gz 1611755 SHA256 9af4166adf364447289c5c697bb83c52f1d6f57e77849abcccd6a4a18a5e7ec9 SHA512 8e87581b27ce4fb5e97dcef56047f4bf3a076b98e9e42f5dc66f4c370e5893d1571e46f00fee6f1c8b9f8c8a79e128e4599b9ee213ad1dee2bf16a0246e187df WHIRLPOOL 0231e34e8c84a29f52f244dfe8d3fdbb8f2db9f6e5f26d0a5953c109a2620b15f86874e3b7604aeccf805f789abef7e7af5cc076dde25f2e2947bad11d2ae58c
+DIST docutils-0.12.tar.gz 1618353 SHA256 c7db717810ab6965f66c8cf0398a98c9d8df982da39b4cd7f162911eb89596fa SHA512 0087433f8b76e1d0302d2fab77fdbda941132d16ac1fcecb26ca66119687eefd9e2f6901e05d705f857fa31e2526136c9827dfd57c44cd295bd10dcce3faebf9 WHIRLPOOL 9b9d9d7315351e4b803195a157836df13a10fc706c0aea2c6ac7c6d01bd034870106d0ceedfbd7e9fae17420f3d116df30cc222ad5b3c7205d5eca767d550564
+DIST docutils-0.9.1.tar.gz 1541437 SHA256 e89f187dbbc6674f839239c89fec44af9f18809b66a8a55a41b57b9ee2356994 SHA512 ac1158c562533796f26d4bc451cc9cd371f7fad60d190aa43c763d53a15c2b7656962e7ef72248439896a5fd759c53f6aee14b08bca2292542e944fa9bb044e9 WHIRLPOOL 6b197c1e96a218d9a3a2116ea6e68cae22130c77025fe6e6942f698a918b96579a9216daf23e01cb1c54c7d52ddcc4a3e8ec1b8279ae7be7e3044e044e14c039
+DIST glep-0.4-r1.tbz2 4667 SHA256 d0b421869fb3437e96484687fd57f34d4f5cdd5a1fbdb2314f1474b1f9afa058 SHA512 098d9f5043a60af9dfac63f6472b576e66ffeda924902ca825ed63f573aeb8bad7c9f9a6853fd99e648683488ee6db2ee55c139df3dde06983b72cfb5dd8cdd3 WHIRLPOOL 277cdf4a7fe70990864a4f0fd592561bcf5edc1de8d4830da96c75093d47d8d64214b95ac5ae7960670a8520650a5e23355df248f61bddcd9cd5dc23cab0fe19
diff --git a/dev-python/docutils/docutils-0.10.ebuild b/dev-python/docutils/docutils-0.10.ebuild
new file mode 100644
index 00000000000..46483c512f6
--- /dev/null
+++ b/dev-python/docutils/docutils-0.10.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Documentation Utilities"
+HOMEPAGE="http://docutils.sourceforge.net/ http://pypi.python.org/pypi/docutils"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2 GPL-3 public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="glep"
+
+DEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ glep? ( dev-python/docutils-glep[${PYTHON_USEDEP}] )"
+
+PATCHES=(
+ # fix buildhtml.py option parsing
+ "${FILESDIR}"/${P}-optparser.patch
+)
+
+python_compile_all() {
+ # Generate html docs from reStructured text sources.
+
+ # Place html4css1.css in base directory to ensure that the generated reference to it is correct.
+ cp docutils/writers/html4css1/html4css1.css . || die
+
+ cd tools || die
+ "${PYTHON}" buildhtml.py --input-encoding=utf-8 \
+ --stylesheet-path=../html4css1.css, --traceback ../docs || die
+}
+
+python_test() {
+ local tests=test
+ [[ ${EPYTHON} == python3* ]] && tests=test3
+
+ cp -r -l ${tests} "${BUILD_DIR}"/test || die
+ ln -s "${S}"/docs "${BUILD_DIR}"/ || die
+ "${PYTHON}" "${BUILD_DIR}"/test/alltests.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # Install tools.
+ python_doscript tools/{buildhtml,quicktest}.py
+}
+
+install_txt_doc() {
+ local doc="${1}"
+ local dir="txt/$(dirname ${doc})"
+ docinto "${dir}"
+ dodoc "${doc}"
+}
+
+python_install_all() {
+ local DOCS=( *.txt )
+ local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css )
+
+ distutils-r1_python_install_all
+
+ local doc
+ while IFS= read -r -d '' doc; do
+ install_txt_doc "${doc}"
+ done < <(find docs tools -name '*.txt' -print0)
+}
diff --git a/dev-python/docutils/docutils-0.11.ebuild b/dev-python/docutils/docutils-0.11.ebuild
new file mode 100644
index 00000000000..354b591443a
--- /dev/null
+++ b/dev-python/docutils/docutils-0.11.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Documentation Utilities"
+HOMEPAGE="http://docutils.sourceforge.net/ http://pypi.python.org/pypi/docutils"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2 GPL-3 public-domain"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+PATCHES=( "${FILESDIR}"/docutils-0.11-python3.3-odt-writer.patch )
+
+python_compile_all() {
+ # Generate html docs from reStructured text sources.
+
+ # Place html4css1.css in base directory to ensure that the generated reference to it is correct.
+ cp docutils/writers/html4css1/html4css1.css . || die
+
+ cd tools || die
+ "${PYTHON}" buildhtml.py --input-encoding=utf-8 \
+ --stylesheet-path=../html4css1.css, --traceback ../docs || die
+}
+
+python_test() {
+ if python_is_python3; then
+ pushd test3 > /dev/null || die
+ else
+ pushd test > /dev/null || die
+ fi
+ "${PYTHON}" alltests.py || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # Install tools.
+ python_doscript tools/{buildhtml,quicktest}.py
+}
+
+install_txt_doc() {
+ local doc="${1}"
+ local dir="txt/$(dirname ${doc})"
+ docinto "${dir}"
+ dodoc "${doc}"
+}
+
+python_install_all() {
+ local DOCS=( *.txt )
+ local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css )
+
+ distutils-r1_python_install_all
+
+ local doc
+ while IFS= read -r -d '' doc; do
+ install_txt_doc "${doc}"
+ done < <(find docs tools -name '*.txt' -print0)
+}
diff --git a/dev-python/docutils/docutils-0.12.ebuild b/dev-python/docutils/docutils-0.12.ebuild
new file mode 100644
index 00000000000..334fa8ee3d6
--- /dev/null
+++ b/dev-python/docutils/docutils-0.12.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Documentation Utilities"
+HOMEPAGE="http://docutils.sourceforge.net/ http://pypi.python.org/pypi/docutils"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2 GPL-3 public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+python_compile_all() {
+ # Generate html docs from reStructured text sources.
+
+ # Place html4css1.css in base directory to ensure that the generated reference to it is correct.
+ cp docutils/writers/html4css1/html4css1.css . || die
+
+ cd tools || die
+ "${PYTHON}" buildhtml.py --input-encoding=utf-8 \
+ --stylesheet-path=../html4css1.css, --traceback ../docs || die
+}
+
+python_test() {
+ if python_is_python3; then
+ pushd test3 > /dev/null || die
+ else
+ pushd test > /dev/null || die
+ fi
+ "${PYTHON}" alltests.py || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # Install tools.
+ python_doscript tools/{buildhtml,quicktest}.py
+}
+
+install_txt_doc() {
+ local doc="${1}"
+ local dir="txt/$(dirname ${doc})"
+ docinto "${dir}"
+ dodoc "${doc}"
+}
+
+python_install_all() {
+ local DOCS=( *.txt )
+ local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css )
+
+ distutils-r1_python_install_all
+
+ local doc
+ while IFS= read -r -d '' doc; do
+ install_txt_doc "${doc}"
+ done < <(find docs tools -name '*.txt' -print0)
+}
diff --git a/dev-python/docutils/docutils-0.9.1-r1.ebuild b/dev-python/docutils/docutils-0.9.1-r1.ebuild
new file mode 100644
index 00000000000..5ddc1285112
--- /dev/null
+++ b/dev-python/docutils/docutils-0.9.1-r1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Documentation Utilities"
+HOMEPAGE="http://docutils.sourceforge.net/ http://pypi.python.org/pypi/docutils"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+SRC_URI+=" glep? ( mirror://gentoo/glep-0.4-r1.tbz2 )"
+
+LICENSE="BSD-2 GPL-3 public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="glep"
+
+RDEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+GLEP_SRC="${WORKDIR}/glep-0.4-r1"
+
+python_prepare_all() {
+ # It's easier to move them around now.
+ # TODO: add python_newmodule?
+ if use glep; then
+ mkdir "${GLEP_SRC}"/{read,trans} || die
+ mv "${GLEP_SRC}"/{glepread,read/glep}.py || die
+ mv "${GLEP_SRC}"/{glepstrans,trans/gleps}.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # Generate html docs from reStructured text sources.
+
+ # Place html4css1.css in base directory to ensure that the generated reference to it is correct.
+ cp docutils/writers/html4css1/html4css1.css . || die
+
+ cd tools || die
+ "${PYTHON}" buildhtml.py --input-encoding=utf-8 \
+ --stylesheet-path=../html4css1.css --traceback ../docs || die
+}
+
+python_test() {
+ local tests=test
+ [[ ${EPYTHON} == python3* ]] && tests=test3
+
+ cp -r -l ${tests} "${BUILD_DIR}"/test || die
+ ln -s "${S}"/docs "${BUILD_DIR}"/ || die
+ "${PYTHON}" "${BUILD_DIR}"/test/alltests.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # Install tools.
+ python_doscript tools/{buildhtml,quicktest}.py
+
+ # Install Gentoo GLEP tools.
+ if use glep; then
+ python_doscript "${GLEP_SRC}"/glep.py
+
+ python_moduleinto docutils/readers
+ python_domodule "${GLEP_SRC}"/read/glep.py
+ python_moduleinto docutils/transforms
+ python_domodule "${GLEP_SRC}"/trans/gleps.py
+ python_moduleinto docutils/writers
+ python_domodule "${GLEP_SRC}"/glep_html
+ fi
+}
+
+install_txt_doc() {
+ local doc="${1}"
+ local dir="txt/$(dirname ${doc})"
+ docinto "${dir}"
+ dodoc "${doc}"
+}
+
+python_install_all() {
+ local DOCS=( *.txt )
+ local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css )
+
+ distutils-r1_python_install_all
+
+ local doc
+ while IFS= read -r -d '' doc; do
+ install_txt_doc "${doc}"
+ done < <(find docs tools -name '*.txt' -print0)
+}
diff --git a/dev-python/docutils/files/docutils-0.10-optparser.patch b/dev-python/docutils/files/docutils-0.10-optparser.patch
new file mode 100644
index 00000000000..a65fbde71ce
--- /dev/null
+++ b/dev-python/docutils/files/docutils-0.10-optparser.patch
@@ -0,0 +1,34 @@
+Patch by Arfrever
+http://sourceforge.net/tracker/?func=detail&aid=3598893&group_id=38414&atid=422030
+
+Index: docutils/frontend.py
+===================================================================
+--- docutils/frontend.py (revision 7578)
++++ docutils/frontend.py (working copy)
+@@ -158,7 +158,7 @@
+
+ def validate_colon_separated_string_list(
+ setting, value, option_parser, config_parser=None, config_section=None):
+- if isinstance(value, unicode):
++ if isinstance(value, basestring):
+ value = value.split(':')
+ else:
+ last = value.pop()
+@@ -171,7 +171,7 @@
+ """
+ # `value` is already a list when given as command line option
+ # and "action" is "append"
+- if isinstance(value, unicode):
++ if isinstance(value, basestring):
+ value = [value]
+ # this function is called for every option added to `value`
+ # -> split the last item and apped the result:
+@@ -731,7 +731,7 @@
+ """Wrapper around sys.stderr catching en-/decoding errors"""
+
+ def read(self, filenames, option_parser):
+- if type(filenames) in (str, unicode):
++ if isinstance(filenames, basestring):
+ filenames = [filenames]
+ for filename in filenames:
+ try:
diff --git a/dev-python/docutils/files/docutils-0.11-python3.3-odt-writer.patch b/dev-python/docutils/files/docutils-0.11-python3.3-odt-writer.patch
new file mode 100644
index 00000000000..e84256f3dc4
--- /dev/null
+++ b/dev-python/docutils/files/docutils-0.11-python3.3-odt-writer.patch
@@ -0,0 +1,30 @@
+--- a/docutils/writers/odf_odt/__init__.py
++++ b/docutils/writers/odf_odt/__init__.py
+@@ -88,16 +88,20 @@
+ # that support for the ability to get the parent of an element.
+ #
+ if WhichElementTree == 'elementtree':
+- class _ElementInterfaceWrapper(etree._ElementInterface):
++ import weakref
++ _parents = weakref.WeakKeyDictionary()
++ if isinstance(etree.Element, type):
++ _ElementInterface = etree.Element
++ else:
++ _ElementInterface = etree._ElementInterface
++ class _ElementInterfaceWrapper(_ElementInterface):
+ def __init__(self, tag, attrib=None):
+- etree._ElementInterface.__init__(self, tag, attrib)
+- if attrib is None:
+- attrib = {}
+- self.parent = None
++ _ElementInterface.__init__(self, tag, attrib)
++ _parents[self] = None
+ def setparent(self, parent):
+- self.parent = parent
++ _parents[self] = parent
+ def getparent(self):
+- return self.parent
++ return _parents[self]
+
+
+ #
diff --git a/dev-python/docutils/files/docutils-0.6-extra_modules.patch b/dev-python/docutils/files/docutils-0.6-extra_modules.patch
new file mode 100644
index 00000000000..ca5de4b7fc4
--- /dev/null
+++ b/dev-python/docutils/files/docutils-0.6-extra_modules.patch
@@ -0,0 +1,24 @@
+--- setup.py
++++ setup.py
+@@ -182,19 +182,8 @@
+ List of (module name, minimum __version__ string, [attribute names])."""
+
+ def get_extras():
+- extras = []
+- for module_name, version, attributes in extra_modules:
+- try:
+- module = __import__(module_name)
+- if version and module.__version__ < version:
+- raise ValueError
+- for attribute in attributes or []:
+- getattr(module, attribute)
+- print ('"%s" module already present; ignoring extras/%s.py.'
+- % (module_name, module_name))
+- except (ImportError, AttributeError, ValueError):
+- extras.append(module_name)
+- return extras
++ # Old method does not work for upgrading/downgrading docutils.
++ return ["roman"]
+
+
+ if __name__ == '__main__' :
diff --git a/dev-python/docutils/files/docutils-0.7-encoding.patch b/dev-python/docutils/files/docutils-0.7-encoding.patch
new file mode 100644
index 00000000000..9a88f9fedaa
--- /dev/null
+++ b/dev-python/docutils/files/docutils-0.7-encoding.patch
@@ -0,0 +1,83 @@
+--- docutils/nodes.py
++++ docutils/nodes.py
+@@ -27,6 +27,7 @@
+ import warnings
+ import types
+ import unicodedata
++import locale
+
+ # ==============================
+ # Functional Node Base Classes
+@@ -328,6 +329,9 @@
+ else:
+ def __new__(cls, data, rawsource=None):
+ """Prevent the rawsource argument from propagating to str."""
++ encoding = locale.getdefaultlocale()[1]
++ if isinstance(data, str) and encoding is not None:
++ data = data.decode(encoding)
+ return reprunicode.__new__(cls, data)
+
+ def __init__(self, data, rawsource=''):
+--- docutils/parsers/rst/directives/misc.py
++++ docutils/parsers/rst/directives/misc.py
+@@ -10,6 +10,7 @@
+ import os.path
+ import re
+ import time
++import locale
+ from docutils import io, nodes, statemachine, utils
+ from docutils.parsers.rst import Directive, convert_directive_function
+ from docutils.parsers.rst import directives, roles, states
+@@ -66,8 +67,16 @@
+ input_encoding_error_handler),
+ handle_io_errors=None)
+ except IOError, error:
+- raise self.severe('Problems with "%s" directive path:\n%s: %s.' %
+- (self.name, error.__class__.__name__, str(error)))
++ if sys.version_info < (3,):
++ error_string = str(error)
++ encoding = locale.getdefaultlocale()[1]
++ if encoding is not None:
++ error_string = error_string.decode(encoding)
++ raise self.severe(u'Problems with "%s" directive path:\n%s: %s.' %
++ (self.name, error.__class__.__name__, error_string))
++ else:
++ raise self.severe('Problems with "%s" directive path:\n%s: %s.' %
++ (self.name, error.__class__.__name__, str(error)))
+ # Hack: Since Python 2.6, the string interpolation returns a
+ # unicode object if one of the supplied %s replacements is a
+ # unicode object. IOError has no `__unicode__` method and the
+--- tools/buildhtml.py
++++ tools/buildhtml.py
+@@ -15,8 +15,8 @@
+ __docformat__ = 'reStructuredText'
+
+
++import locale
+ try:
+- import locale
+ locale.setlocale(locale.LC_ALL, '')
+ except:
+ pass
+@@ -236,8 +236,19 @@
+ writer_name=pub_struct.writer_name,
+ settings=settings)
+ except ApplicationError, error:
+- print >>sys.stderr, (' Error (%s): %s'
+- % (error.__class__.__name__, error))
++ if sys.version_info < (3,):
++ encoding = locale.getdefaultlocale()[1]
++ if isinstance(error.message, unicode) and encoding is not None:
++ error_message = (u' Error (%s): %s'
++ % (error.__class__.__name__, error))
++ error_message = error_message.encode(encoding)
++ else:
++ error_message = (' Error (%s): %s'
++ % (error.__class__.__name__, error))
++ print >>sys.stderr, error_message
++ else:
++ print >>sys.stderr, (' Error (%s): %s'
++ % (error.__class__.__name__, error))
+
+
+ if __name__ == "__main__":
diff --git a/dev-python/docutils/files/docutils-0.7-python-3.2-configparser.patch b/dev-python/docutils/files/docutils-0.7-python-3.2-configparser.patch
new file mode 100644
index 00000000000..3f67f244cfd
--- /dev/null
+++ b/dev-python/docutils/files/docutils-0.7-python-3.2-configparser.patch
@@ -0,0 +1,49 @@
+http://sourceforge.net/tracker/?func=detail&atid=422030&aid=3149845&group_id=38414
+
+--- docutils/frontend.py
++++ docutils/frontend.py
+@@ -671,7 +671,7 @@
+ raise KeyError('No option with dest == %r.' % dest)
+
+
+-class ConfigParser(CP.ConfigParser):
++class ConfigParser(CP.RawConfigParser):
+
+ old_settings = {
+ 'pep_stylesheet': ('pep_html writer', 'stylesheet'),
+@@ -693,7 +693,7 @@
+ """
+
+ def __init__(self, *args, **kwargs):
+- CP.ConfigParser.__init__(self, *args, **kwargs)
++ CP.RawConfigParser.__init__(self, *args, **kwargs)
+
+ self._files = []
+ """List of paths of configuration files read."""
+@@ -708,7 +708,7 @@
+ except IOError:
+ continue
+ try:
+- CP.ConfigParser.readfp(self, fp, filename)
++ CP.RawConfigParser.readfp(self, fp, filename)
+ except UnicodeDecodeError:
+ sys.stderr.write(self.not_utf8_error % (filename, filename))
+ fp.close()
+@@ -749,7 +749,7 @@
+ except KeyError:
+ continue
+ if option.validator:
+- value = self.get(section, setting, raw=1)
++ value = self.get(section, setting)
+ try:
+ new_value = option.validator(
+ setting, value, option_parser,
+@@ -778,7 +778,7 @@
+ section_dict = {}
+ if self.has_section(section):
+ for option in self.options(section):
+- section_dict[option] = self.get(section, option, raw=1)
++ section_dict[option] = self.get(section, option)
+ return section_dict
+
+
diff --git a/dev-python/docutils/files/docutils-0.7-python-3.2-xml.etree.ElementTree.patch b/dev-python/docutils/files/docutils-0.7-python-3.2-xml.etree.ElementTree.patch
new file mode 100644
index 00000000000..0e77f7e974a
--- /dev/null
+++ b/dev-python/docutils/files/docutils-0.7-python-3.2-xml.etree.ElementTree.patch
@@ -0,0 +1,16 @@
+http://svn.berlios.de/viewvc/docutils?view=revision&revision=7013
+
+--- docutils/writers/odf_odt/__init__.py
++++ docutils/writers/odf_odt/__init__.py
+@@ -300,7 +300,10 @@
+
+ def ToString(et):
+ outstream = StringIO.StringIO()
+- et.write(outstream)
++ if sys.version_info >= (3, 2):
++ et.write(outstream, encoding="unicode")
++ else:
++ et.write(outstream)
+ s1 = outstream.getvalue()
+ outstream.close()
+ return s1
diff --git a/dev-python/docutils/metadata.xml b/dev-python/docutils/metadata.xml
new file mode 100644
index 00000000000..b75fdfa0d43
--- /dev/null
+++ b/dev-python/docutils/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="glep">Install support for GLEPs</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">docutils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dogpile-cache/Manifest b/dev-python/dogpile-cache/Manifest
new file mode 100644
index 00000000000..246402e2b3c
--- /dev/null
+++ b/dev-python/dogpile-cache/Manifest
@@ -0,0 +1,3 @@
+DIST dogpile.cache-0.5.1.tar.gz 169450 SHA256 1f3165222bc23418cb9d3f1a2c9d554a091f412e5bc871ea0c48a19b576d06c0 SHA512 e9b9b8b7caf269cfecc8d333bd04714d908860e1e54720ce3329fae7be14995f8de6f1225e0cf6a782d5ef53ddd3482acc36a3440eb772e03f3d5029faeecc5c WHIRLPOOL ba14fc61604c78af038b6520079bbca1a46a889abebf69305f5722142cd47a45da966d8db64ec24cc7148363a22b109d89e4200087cc235a0721aea94f5c6a2c
+DIST dogpile.cache-0.5.2.tar.gz 173765 SHA256 acdcb69e7eb8421678172fe8709d6d92bf7249022a70e4d7c84316d4e2d1d1b5 SHA512 dcce0e06de4d053e16020ca32f210c79a7eab21b7d09a8041e655940f03e32c91919a26d75114fffa087bc8a33052d5b1b04aeaea92d663ba4237f2990de2f05 WHIRLPOOL 8cec6f397487dbd2d61e1ed0f9b96f08d0f560af2f13b92b819d5fb402616d59a8c1a50aab518c07413af40b9405214ff4b66448912e33839a7a8b9920541b76
+DIST dogpile.cache-0.5.4.tar.gz 185676 SHA256 9eab7a5dc05ad1b6573144c4a2717226b5c38811f9ec29b514e774535a91ea24 SHA512 ae73b8c82745cbde7b46f532e127c044a01e7b85d2e91b5f0a16da51fb9d70d48e2de55278db68f892a9b604e4f32e19a4a73c11393e04b599c8892280f9b5fe WHIRLPOOL 97b6dd6374940f081d60a7eba43844f17f39dbfa6df14ef18e9e8241b844f467126f4ffca3dd284408855d46c7f2299bb24bc9f2715271e2303e440a3b912f95
diff --git a/dev-python/dogpile-cache/dogpile-cache-0.5.1.ebuild b/dev-python/dogpile-cache/dogpile-cache-0.5.1.ebuild
new file mode 100644
index 00000000000..b45f5251061
--- /dev/null
+++ b/dev-python/dogpile-cache/dogpile-cache-0.5.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="API built on a lock allowing access to expiring values while a single thread generates a new value."
+HOMEPAGE="https://bitbucket.org/zzzeek/dogpile.cache"
+SRC_URI="mirror://pypi/${PN:0:1}/dogpile.cache/dogpile.cache-${PV}.tar.gz"
+S="${WORKDIR}/dogpile.cache-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-core-0.4.1[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/dogpile-cache/dogpile-cache-0.5.2.ebuild b/dev-python/dogpile-cache/dogpile-cache-0.5.2.ebuild
new file mode 100644
index 00000000000..280e6fe8bb4
--- /dev/null
+++ b/dev-python/dogpile-cache/dogpile-cache-0.5.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="API built on a lock allowing access to expiring values while a single thread generates a new value."
+HOMEPAGE="https://bitbucket.org/zzzeek/dogpile.cache"
+SRC_URI="mirror://pypi/${PN:0:1}/dogpile.cache/dogpile.cache-${PV}.tar.gz"
+S="${WORKDIR}/dogpile.cache-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/dogpile-core-0.4.1[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-core-0.4.1[${PYTHON_USEDEP}] )"
+
+# for testsuite
+DISTUTILS_NO_PARALLEL_BUILD=1
+# This time half the doc files are missing; Do you want them? toss a coin
+
+python_test() {
+ # crikey. testsuite written for py3, 5 tests fail under py2.7
+ if [[ "${EPYTHON}" != "python2.7" ]]; then
+ nosetests || die "test failed under ${EPYTHON}"
+ else
+ einfo "testsuite restricted for python2.7"
+ fi
+}
diff --git a/dev-python/dogpile-cache/dogpile-cache-0.5.4.ebuild b/dev-python/dogpile-cache/dogpile-cache-0.5.4.ebuild
new file mode 100644
index 00000000000..ab2ca0440e3
--- /dev/null
+++ b/dev-python/dogpile-cache/dogpile-cache-0.5.4.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="API built on a lock allowing access to expiring values while a single thread generates a new value."
+HOMEPAGE="https://bitbucket.org/zzzeek/dogpile.cache"
+SRC_URI="mirror://pypi/${PN:0:1}/dogpile.cache/dogpile.cache-${PV}.tar.gz"
+S="${WORKDIR}/dogpile.cache-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/dogpile-core-0.4.1[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-core-0.4.1[${PYTHON_USEDEP}] )"
+
+# for testsuite
+DISTUTILS_NO_PARALLEL_BUILD=1
+# This time half the doc files are missing; Do you want them? toss a coin
+
+python_test() {
+ # crikey. testsuite written for py3, 5 tests fail under py2.7
+ if [[ "${EPYTHON}" != "python2.7" ]]; then
+ nosetests || die "test failed under ${EPYTHON}"
+ else
+ einfo "testsuite restricted for python2.7"
+ fi
+}
diff --git a/dev-python/dogpile-cache/metadata.xml b/dev-python/dogpile-cache/metadata.xml
new file mode 100644
index 00000000000..108d29fd0ac
--- /dev/null
+++ b/dev-python/dogpile-cache/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A caching API built around the concept of a "dogpile lock", which allows
+ continued access to an expiring data value while
+ a single thread generates a new value.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">dogpile.cache</remote-id>
+ <remote-id type="bitbucket">zzzeek/dogpile.cache</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dogpile-core/Manifest b/dev-python/dogpile-core/Manifest
new file mode 100644
index 00000000000..9507d33c43a
--- /dev/null
+++ b/dev-python/dogpile-core/Manifest
@@ -0,0 +1 @@
+DIST dogpile.core-0.4.1.tar.gz 99534 SHA256 af2555702811d56846778d39451cf822b04b3f13347080c121a4977fefdfcbff SHA512 f4c37297788677afe6ab17ba5aa928f9770b0edbd1a675cd4ad512ef0c15cf1e2d765d9b7a9fe3638f0a646e0ad51d54c9b4ded33611022744226bfde1aa9896 WHIRLPOOL 09677b564eee99202e66bba97b9e8db36a75aa1c3e86616a043db8b6bff318031c2afe72f9c243e19cc106e546aa9cc422820aeee505a7f5627f64c808af1eec
diff --git a/dev-python/dogpile-core/dogpile-core-0.4.1.ebuild b/dev-python/dogpile-core/dogpile-core-0.4.1.ebuild
new file mode 100644
index 00000000000..44e7416b498
--- /dev/null
+++ b/dev-python/dogpile-core/dogpile-core-0.4.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A lock which allows a thread to generate an expensive resource while other threads use the old value"
+HOMEPAGE="https://bitbucket.org/zzzeek/dogpile.core"
+SRC_URI="mirror://pypi/${PN:0:1}/dogpile.core/dogpile.core-${PV}.tar.gz"
+S="${WORKDIR}/dogpile.core-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/dogpile-core/metadata.xml b/dev-python/dogpile-core/metadata.xml
new file mode 100644
index 00000000000..79fa0556ac6
--- /dev/null
+++ b/dev-python/dogpile-core/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A "dogpile" lock, one which allows a single thread to generate an
+ expensive resource while other threads use the "old" value,
+ until the "new" value is ready.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">dogpile.core</remote-id>
+ <remote-id type="bitbucket">zzzeek/dogpile.core</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/doit-py/Manifest b/dev-python/doit-py/Manifest
new file mode 100644
index 00000000000..b2c8982b240
--- /dev/null
+++ b/dev-python/doit-py/Manifest
@@ -0,0 +1 @@
+DIST doit-py-0.3.0.tar.gz 16151 SHA256 af015e61b1aade838d299a508e72b35d714b67a9b903c65c2863427f5c3883fc SHA512 c6cbb326a7635b78d0c22ff7db8a722aedf8d66b85db4017e1a2566f1d8f1f96d4e00407cfec2180d20091addaf731a916da1a3970553cb4bebec87df90fc609 WHIRLPOOL becc06fd65d0afcf2b9034f7943f5cb01362ad06dabc154051dd5c5d0bf0b4cc35b94e5ee0a54b873ac1c32c82cd122b78e274fda597252ebdda1f5b78ef09dd
diff --git a/dev-python/doit-py/doit-py-0.3.0.ebuild b/dev-python/doit-py/doit-py-0.3.0.ebuild
new file mode 100644
index 00000000000..a687d8b50cf
--- /dev/null
+++ b/dev-python/doit-py/doit-py-0.3.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="doit tasks for python stuff"
+HOMEPAGE="http://pythonhosted.org/doit-py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="
+ virtual/python-pathlib[${PYTHON_USEDEP}]
+ dev-python/doit[${PYTHON_USEDEP}]
+ dev-python/configclass[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/doit-py/metadata.xml b/dev-python/doit-py/metadata.xml
new file mode 100644
index 00000000000..d1a0e484be6
--- /dev/null
+++ b/dev-python/doit-py/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">doit-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/doit/Manifest b/dev-python/doit/Manifest
new file mode 100644
index 00000000000..65364978172
--- /dev/null
+++ b/dev-python/doit/Manifest
@@ -0,0 +1,3 @@
+DIST doit-0.23.0.tar.gz 316588 SHA256 5d0421be6e5528e3be11bd0ede5c232e0c91f2b98b55688d7db1ce0638e1efbb SHA512 f2298d76d9ce3e7ed5f356bfdeeef8d5d99ebae74571666a3d2b3843fc63f5a8f76cd6cdedcfe8fc81bc653ecf04951c11f50abd16e9aa8fc7539e3c224b0e4c WHIRLPOOL cfb09484e25cfbc9618ef5b4a750010d16281a13772a37a8da59f2f6e1ebed77bbc40c06f263062c0464e6689415aeac695c0ef9e5cfe561349efea61f8be8e3
+DIST doit-0.27.0.tar.gz 193700 SHA256 06662c8677fb3e925c262559b7d3c5d8e08a10320be3386a7d348702e8e3ed8a SHA512 afca1029873c9fca0632ef43bc75762eed0738b7e4c1b8e9babf10543b15f78c526794462a83fa2fac1b35f2ff9152afbce8660b1dfbd86ce9dd73d47c70a9f7 WHIRLPOOL 60c022977b6dfe9e3e66d206315ac23a291c4df58bc07b4f8120622f257b636b80340dc267e5615de5876d40a500cf0fbaf3f531c6f41dce53d91ebdc6d65d7e
+DIST doit-0.28.0.tar.gz 213582 SHA256 12a2febde2566728344acbdb6ad92f82417228cd548f0f467187d1e67047513f SHA512 ff1eeb1819ad8a962b98c6d96aef8173bc9793a3afd6e2086f1f80fa60eba73c71e16c1467be89f2f78c9c9516f3c780bf57d7f461df96940f2feb51afd2ad3a WHIRLPOOL cf759118284c8e7b74299bf7fa92e99bdf5302e7f1dacd86c301a14d13eca5a5611d2cd57b0411a76439df64add439627040dcc6902b2d43ffd95a3c942441da
diff --git a/dev-python/doit/doit-0.23.0-r1.ebuild b/dev-python/doit/doit-0.23.0-r1.ebuild
new file mode 100644
index 00000000000..3b568b0c6eb
--- /dev/null
+++ b/dev-python/doit/doit-0.23.0-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit eutils distutils-r1
+
+DESCRIPTION="Automation tool"
+HOMEPAGE="http://python-doit.sourceforge.net/ http://pypi.python.org/pypi/doit"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="test"
+
+RDEPEND="dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+DOCS=( AUTHORS CHANGES README TODO.txt dev_requirements.txt )
+
+python_prepare_all() {
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+ # Tests of this file fail due to setting of a tmp dir which can be fixed.
+ # This known spurious cause does not warrant halting a testsuite
+ rm -f tests/test_cmd_strace.py || die
+
+ # These 2 tests succeed on running the suite a second time, so they are NOT broken
+ # A gentoo test phase is run only once, so these unbroken tests can be safely skipped.
+ sed -e s':testInit:_&:' -e s':testLoop:_&:' \
+ -i tests/test_filewatch.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Testsuite is designed to be run by py.test, called by runtests.py
+ # https://bitbucket.org/schettino72/doit/issue/78/tests-that-fail-under-pypy
+ if [[ "${EPYTHON}" == pypy-c2.0 ]]; then
+ sed -e 's:test_corrupted_file:_&:' \
+ -e 's:test_corrupted_file_unrecognized_excep_pdep:_&:' \
+ -i tests/test_dependency.py || die
+ elif [[ "${EPYTHON}" == python2.6 ]]; then
+ rm -f tests/test___main__.py || die
+ sed -e 's:test_invalid_param_stdout:_&:' \
+ -i tests/test_action.py || die
+ sed -e 's:test_run_wait:_&:' \
+ -i tests/test_cmd_auto.py || die
+ fi
+ "${PYTHON}" runtests.py
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ dodoc -r doc
+ docompress -x /usr/share/doc/${PF}/doc
+}
diff --git a/dev-python/doit/doit-0.27.0.ebuild b/dev-python/doit/doit-0.27.0.ebuild
new file mode 100644
index 00000000000..28383a86b04
--- /dev/null
+++ b/dev-python/doit/doit-0.27.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit eutils distutils-r1
+
+DESCRIPTION="Automation tool"
+HOMEPAGE="http://python-doit.sourceforge.net/ http://pypi.python.org/pypi/doit"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND="dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+DOCS=( AUTHORS CHANGES README.rst TODO.txt dev_requirements.txt )
+
+python_prepare_all() {
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+ # Tests of this file fail due to setting of a tmp dir which can be fixed.
+ # This known spurious cause does not warrant halting a testsuite
+ rm -f tests/test_cmd_strace.py || die
+
+ # These 2 tests succeed on running the suite a second time, so they are NOT broken
+ # A gentoo test phase is run only once, so these unbroken tests can be safely skipped.
+ sed -e s':testInit:_&:' -e s':testLoop:_&:' \
+ -i tests/test_filewatch.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Testsuite is designed to be run by py.test, called by runtests.py
+ # https://bitbucket.org/schettino72/doit/issue/78/tests-that-fail-under-pypy
+ if [[ "${EPYTHON}" == pypy-c2.0 ]]; then
+ sed -e 's:test_corrupted_file:_&:' \
+ -e 's:test_corrupted_file_unrecognized_excep_pdep:_&:' \
+ -i tests/test_dependency.py || die
+ elif [[ "${EPYTHON}" == python2.6 ]]; then
+ rm -f tests/test___main__.py || die
+ sed -e 's:test_invalid_param_stdout:_&:' \
+ -i tests/test_action.py || die
+ sed -e 's:test_run_wait:_&:' \
+ -i tests/test_cmd_auto.py || die
+ fi
+ "${PYTHON}" runtests.py
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ dodoc -r doc
+ docompress -x /usr/share/doc/${PF}/doc
+}
diff --git a/dev-python/doit/doit-0.28.0.ebuild b/dev-python/doit/doit-0.28.0.ebuild
new file mode 100644
index 00000000000..7b064bfd577
--- /dev/null
+++ b/dev-python/doit/doit-0.28.0.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit eutils distutils-r1
+
+DESCRIPTION="Automation tool"
+HOMEPAGE="http://python-doit.sourceforge.net/ http://pypi.python.org/pypi/doit"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/doit-py-0.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/configparser[${PYTHON_USEDEP}]' python2_7 pypy)
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+
+PY27_REQUSE="$(python_gen_useflags 'python2.7')"
+REQUIRED_USE="doc? ( ${PY27_REQUSE} )"
+
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Disable test failing due to impact on PATH run in a sandbox
+ sed -e s':test_target:_&:' -i tests/test_cmd_strace.py || die
+
+ # Test requires connection to an absent database
+ sed -e s':testIgnoreAll:_&:' -i tests/test_cmd_ignore.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ local -x TMPDIR="${T}"
+ # disable tests where pypy's treatment of some tests' use of a db is incompatible
+
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_remove_all:_&:' -i tests/test_dependency.py || die
+ sed -e 's:testForgetAll:_&:' -i tests/test_cmd_forget.py || die
+ sed -e 's:test_not_picklable:_&:' \
+ -e 's:test_task_not_picklabe_multiprocess:_&:' \
+ -i tests/test_runner.py || die
+ fi
+
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_src_install
+}
diff --git a/dev-python/doit/metadata.xml b/dev-python/doit/metadata.xml
new file mode 100644
index 00000000000..2613155c2f8
--- /dev/null
+++ b/dev-python/doit/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>yngwin@gentoo.org</email>
+ <name>Ben de Groot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">doit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/doublex-expects/Manifest b/dev-python/doublex-expects/Manifest
new file mode 100644
index 00000000000..06e4626443b
--- /dev/null
+++ b/dev-python/doublex-expects/Manifest
@@ -0,0 +1 @@
+DIST doublex-expects-0.4.0.tar.gz 4633 SHA256 59693e28bf9c15b9c2cb85bb2d7af53c48ea9ce4cd094746be375672eef45f1e SHA512 be8eabaf73684a2368d527838a18b3e8c516c4fe63aad3d87765e347b7a84450cb9b76d86ba26c2b684440ecb5d5ff77c82cc7f432ffa7f0ab28a2e01599dd10 WHIRLPOOL 5f2e271e7f50c4b6d74fb359f774074b80ea6fb830d3e2c706d046c199e2fbc2c0125ea72e755d245494a9e3d1b6109c420bf6398314cbce09cf85784e672297
diff --git a/dev-python/doublex-expects/doublex-expects-0.4.0.ebuild b/dev-python/doublex-expects/doublex-expects-0.4.0.ebuild
new file mode 100644
index 00000000000..9264d8ba3b8
--- /dev/null
+++ b/dev-python/doublex-expects/doublex-expects-0.4.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Expects plugin for Doublex test doubles assertions"
+HOMEPAGE="https://github.com/jaimegildesagredo/doublex-expects"
+SRC_URI="https://github.com/jaimegildesagredo/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/mamba-0.8[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ dev-python/doublex[${PYTHON_USEDEP}]
+ >=dev-python/expects-0.4.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ mamba || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/doublex-expects/metadata.xml b/dev-python/doublex-expects/metadata.xml
new file mode 100644
index 00000000000..9166ffaba6b
--- /dev/null
+++ b/dev-python/doublex-expects/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">jaimegildesagredo/doublex-expects</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/doublex/Manifest b/dev-python/doublex/Manifest
new file mode 100644
index 00000000000..9ee03028cb8
--- /dev/null
+++ b/dev-python/doublex/Manifest
@@ -0,0 +1,2 @@
+DIST doublex-1.7.tar.gz 28964 SHA256 b8488c08cae47039671a343d54346e28ba7532f55963b5fd78a03cdae6a60391 SHA512 053d195abc8bc725eb04dda312b3e69bdddbb965f2936f93b624118046ea98fcea4b3163c48593354ff6ccacbdea9826799147b7dee0e4ce14e0899604c3809e WHIRLPOOL 85e16c1647fd9ae338f797dadea88c9d75b51e5d658c9e381b5b3420fc74e61f52b5e1346968238091d0f8ea0c6540f1b070c3591b779e92b416a90b112cb6d3
+DIST doublex-1.8.1.tar.gz 69685 SHA256 80e01004c744615b308c745068bf8df3425551037cbea6d97a3d91477765d65a SHA512 30d2b572862370da8402cc2cfa5481d3278f0fefd2d5b2f5be126a793c8e165df0e2ae6089ba321e71d994f14024b882933c1523f7a0b9e341bf75644b49e073 WHIRLPOOL 81283c427df9347c65e58ac82c9b2b87555cd47b3047672b2af59b354944e7ace7e48030d71335fcea570e5e34834d4aed7c38984eb91141565e94c70d4de631
diff --git a/dev-python/doublex/doublex-1.7.ebuild b/dev-python/doublex/doublex-1.7.ebuild
new file mode 100644
index 00000000000..414cc621dbf
--- /dev/null
+++ b/dev-python/doublex/doublex-1.7.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Test doubles for Python"
+HOMEPAGE="https://bitbucket.org/DavidVilla/python-doublex"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/unittest2[${PYTHON_USEDEP}]' 'python2*')
+ )
+"
+RDEPEND=""
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ rm "${D}"/usr/README.rst || die "Couldn't remove spurious README.rst"
+}
diff --git a/dev-python/doublex/doublex-1.8.1.ebuild b/dev-python/doublex/doublex-1.8.1.ebuild
new file mode 100644
index 00000000000..84fe635528c
--- /dev/null
+++ b/dev-python/doublex/doublex-1.8.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python test doubles"
+HOMEPAGE="https://bitbucket.org/DavidVilla/python-doublex"
+SRC_URI="https://bitbucket.org/DavidVilla/python-${PN}/get/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="dev-python/pyhamcrest[${PYTHON_USEDEP}]"
+DEPEND="
+ ${CDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/unittest2[${PYTHON_USEDEP}]' 'python2*')
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs
+}
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+
+ rm "${D}"/usr/README.rst || die "Couldn't remove spurious README.rst"
+}
diff --git a/dev-python/doublex/metadata.xml b/dev-python/doublex/metadata.xml
new file mode 100644
index 00000000000..8ad3a1836d1
--- /dev/null
+++ b/dev-python/doublex/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">doublex</remote-id>
+ <remote-id type="bitbucket">DavidVilla/python-doublex</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dpkt/Manifest b/dev-python/dpkt/Manifest
new file mode 100644
index 00000000000..9d1547fc93e
--- /dev/null
+++ b/dev-python/dpkt/Manifest
@@ -0,0 +1 @@
+DIST dpkt-1.8.tar.gz 76311 SHA256 c56de2f9dc2f4654a356de0f0d458bb7b1c86c374988e8b4f358556f7dbe0507 SHA512 25af49a7b79d192382103e056e762e2933f37b6c72f490c9c6740883e18fdde6c983d640aa27514f15f77ac27e2f037b1943adcaa6046872f53d92e08de73cb3 WHIRLPOOL ede240f2a30f8fe9176784feb40b69e1f1f07ce8b88f75817b12c18193b1f6d227fab95f2f57e475c69aa137466863172dda07221cc203cc0d0e816f4a5c4962
diff --git a/dev-python/dpkt/dpkt-1.8-r1.ebuild b/dev-python/dpkt/dpkt-1.8-r1.ebuild
new file mode 100644
index 00000000000..17d304cddba
--- /dev/null
+++ b/dev-python/dpkt/dpkt-1.8-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols"
+HOMEPAGE="http://code.google.com/p/dpkt/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND=""
+
+DOCS=( AUTHORS CHANGES HACKING )
+
+python_test() {
+ "${PYTHON}" tests/test-perf2.py || die
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/dpkt/metadata.xml b/dev-python/dpkt/metadata.xml
new file mode 100644
index 00000000000..00e58c73a3d
--- /dev/null
+++ b/dev-python/dpkt/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">dpkt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dreampie/Manifest b/dev-python/dreampie/Manifest
new file mode 100644
index 00000000000..88f82925f63
--- /dev/null
+++ b/dev-python/dreampie/Manifest
@@ -0,0 +1 @@
+DIST dreampie-1.2.1.tar.gz 168980 SHA256 8e82093f2f02a5c552715259d43931ae3128873643aa39958ace232235eac6c2 SHA512 e29d4b767985515c36d72c70d75a80985b8caf1c81ecb3126960998bca5cfe99f34ff8c5b2ce6a273a08761889718ed64b566f93642016a60c4ae6ac839b3a07 WHIRLPOOL 13081f106de2633488e3dfc232d5435b0f4959482274487663a7c1a1674c63c4d41adf3294f4b8016ca13615f7b4e1e0054b9eef753af7decdee6e97df262b4b
diff --git a/dev-python/dreampie/dreampie-1.2.1.ebuild b/dev-python/dreampie/dreampie-1.2.1.ebuild
new file mode 100644
index 00000000000..aa431b74fe0
--- /dev/null
+++ b/dev-python/dreampie/dreampie-1.2.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="pygtk-based python shell"
+HOMEPAGE="http://dreampie.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygtk[${PYTHON_USEDEP}]
+ dev-python/pygtksourceview[${PYTHON_USEDEP}]"
+DEPEND=""
diff --git a/dev-python/dreampie/metadata.xml b/dev-python/dreampie/metadata.xml
new file mode 100644
index 00000000000..6328bc55808
--- /dev/null
+++ b/dev-python/dreampie/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>
+ pygtk-based python shell with autocompletion
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">dreampie</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/drpython/Manifest b/dev-python/drpython/Manifest
new file mode 100644
index 00000000000..8b128f38160
--- /dev/null
+++ b/dev-python/drpython/Manifest
@@ -0,0 +1 @@
+DIST DrPython_3.11.4.zip 824982 SHA256 37a2e4873fb6accd1145f89518db101458c2f43fbc3ea7cf3e2de446bf353f42 SHA512 13943eb28d7155e99e0ffb57903ddde25c964c908ac848f14041c456bc6aa71bab7cad1101e489c09ba5efb5af35e33895a518021bb607f5047844927bcebf2b WHIRLPOOL 56fd68e4abda8f39bbd86060eb397d4bd9360547e26cbca875f8256cadc19efd5de4bedb6d61f116cf63b3cd5167bf0dec9e21bddbbd0d75fdb6c246350ba483
diff --git a/dev-python/drpython/drpython-3.11.4.ebuild b/dev-python/drpython/drpython-3.11.4.ebuild
new file mode 100644
index 00000000000..aeb0837694d
--- /dev/null
+++ b/dev-python/drpython/drpython-3.11.4.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="DrPython"
+MY_P="${MY_PN}_${PV}"
+
+DESCRIPTION="A powerful cross-platform IDE for Python"
+HOMEPAGE="http://drpython.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc x86"
+IUSE=""
+
+RDEPEND=">=dev-python/wxpython-2.6"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+S="${WORKDIR}/${PN}"
+
+PAYTCHES=( "${FILESDIR}/${PN}-165-wxversion.patch" )
+
+python_prepare_all() {
+ sed \
+ -e "/'drpython.pyw', 'drpython.lin'/d" \
+ -e "/scripts=\['postinst.py'\],/d" \
+ -i setup.py || die "sed failed"
+ sed -e "s/arguments)c/arguments)/" -i examples/DrScript/SetTerminalArgs.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_install() {
+ make_wrapper drpython "${PYTHON}" $(python_get_sitedir)/${PN}/drpython.py
+ distutils-r1_python_install
+}
+
+pkg_postinst() {
+ elog "DrPython plugins are available on DrPython homepage:"
+ elog "http://sourceforge.net/projects/drpython/files/DrPython%20Plugins/"
+}
diff --git a/dev-python/drpython/files/drpython-165-wxversion.patch b/dev-python/drpython/files/drpython-165-wxversion.patch
new file mode 100644
index 00000000000..bab247c2110
--- /dev/null
+++ b/dev-python/drpython/files/drpython-165-wxversion.patch
@@ -0,0 +1,12 @@
+diff -Naur drpython-orig/drpython_wx26.py drpython/drpython_wx26.py
+--- drpython_wx26.py 2007-03-23 19:20:02.000000000 -0600
++++ drpython_wx26.py 2007-12-03 18:36:01.000000000 -0600
+@@ -34,7 +34,7 @@
+
+ ## testfile for older version
+ import wxversion
+-wxversion.select("2.60-msw-ansi")
++wxversion.select("2.6")
+
+ if __name__ == '__main__':
+ import drpython
diff --git a/dev-python/drpython/metadata.xml b/dev-python/drpython/metadata.xml
new file mode 100644
index 00000000000..f0809cae54a
--- /dev/null
+++ b/dev-python/drpython/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+DrPython is a highly customizable, simple, and clean
+editing environment for developing Python programs. It
+is intended primarily for use in schools, and is a tribute to
+DrScheme.
+</longdescription>
+ <longdescription lang="ja">
+DrPythonはPython言語プログラム用の、柔軟で、簡単で、安定した開発環境です。DrSchemeに触発され、学校での教材となる事が念頭にあります。
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">drpython</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dugong/Manifest b/dev-python/dugong/Manifest
new file mode 100644
index 00000000000..fbbddcfbe20
--- /dev/null
+++ b/dev-python/dugong/Manifest
@@ -0,0 +1,2 @@
+DIST dugong-3.4.tar.bz2 190012 SHA256 148a65931b52e030f8eb5e1dd2740eb62754ad0c831d15c22f923f7f8274ad33 SHA512 67cf314629298249bfe0305ce2d79f66b71d6415090fab9721e62c38549863098b3048f2936532073dfe52438cf638fbc4ce46cbdbae14b7dd5158e8d9a1cdbb WHIRLPOOL b8be0bb5f7475f85ae219199a993362759646a9972934be14372b16455b18f1f2f33f4bdb553ef762e887673dc198ac6f07d863fe715a70721f2e4763752b9af
+DIST dugong-3.5.tar.bz2 192228 SHA256 44bc81cd25b2e8762458b59f2f2382a3e59869c457edbbcdfe03541e576f1978 SHA512 204d8fceb63e9036f026e5a23da028a41600a740ceaa42f54474a1986c19cb224ca335d81c24c257dd761ac0f58443091df1d95fb0e1776eb3227c18d5331e39 WHIRLPOOL 678525106190b82c0be3d2c0ab72d006a8bd1b4343071bfa8d9702a7d8619859406f39a59a6bd87160d9ca31bf026cb547a55bc75907f645eba2da24ab77c1e3
diff --git a/dev-python/dugong/dugong-3.4.ebuild b/dev-python/dugong/dugong-3.4.ebuild
new file mode 100644
index 00000000000..873b143d16d
--- /dev/null
+++ b/dev-python/dugong/dugong-3.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for communicating with HTTP 1.1 servers"
+HOMEPAGE="https://bitbucket.org/nikratio/python-dugong/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dugong/dugong-3.5.ebuild b/dev-python/dugong/dugong-3.5.ebuild
new file mode 100644
index 00000000000..bc5504152f1
--- /dev/null
+++ b/dev-python/dugong/dugong-3.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for communicating with HTTP 1.1 servers"
+HOMEPAGE="https://bitbucket.org/nikratio/python-dugong/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dugong/files/3.2-aborted_write.patch b/dev-python/dugong/files/3.2-aborted_write.patch
new file mode 100644
index 00000000000..bf25a3772e1
--- /dev/null
+++ b/dev-python/dugong/files/3.2-aborted_write.patch
@@ -0,0 +1,45 @@
+https://bitbucket.org/nikratio/python-dugong/issue/13/test_aborted_write-failures-in-latest
+diff --git a/test/test_dugong.py b/test/test_dugong.py
+--- a/test/test_dugong.py
++++ b/test/test_dugong.py
+@@ -540,7 +540,7 @@
+ conn.readall()
+
+ def test_aborted_write1(conn, monkeypatch):
+- BUFSIZE = 64*1024
++ BUFSIZE = 640*1024
+
+ # Monkeypatch request handler
+ def do_PUT(self):
+@@ -561,8 +561,9 @@
+
+ # Try to write data
+ with pytest.raises(ConnectionClosed):
+- for _ in range(50):
++ for _ in range(5000):
+ conn.write(b'f' * BUFSIZE)
++ time.sleep(0.1)
+
+ # Nevertheless, try to read response
+ resp = conn.read_response()
+@@ -570,7 +571,7 @@
+ assert resp.reason == 'Please stop!'
+
+ def test_aborted_write2(conn, monkeypatch):
+- BUFSIZE = 64*1024
++ BUFSIZE = 640*1024
+
+ # Monkeypatch request handler
+ def do_PUT(self):
+@@ -589,8 +590,9 @@
+
+ # Try to write data
+ with pytest.raises(ConnectionClosed):
+- for _ in range(50):
++ for _ in range(5000):
+ conn.write(b'f' * BUFSIZE)
++ time.sleep(0.1)
+
+ # Nevertheless, try to read response
+ assert_raises(ConnectionClosed, conn.read_response)
+
diff --git a/dev-python/dugong/files/3.2-extract_links.patch b/dev-python/dugong/files/3.2-extract_links.patch
new file mode 100644
index 00000000000..0e8d251bdd8
--- /dev/null
+++ b/dev-python/dugong/files/3.2-extract_links.patch
@@ -0,0 +1,26 @@
+# HG changeset patch
+# User Nikolaus Rath <Nikolaus@rath.org>
+# Date 1407732767 25200
+# Node ID 1cfd473db8736251291e106ce6cd488011626276
+# Parent cd7ad81f4eea24e530db152edd6d8831dc5bd7bc
+Make extract_links.py Python 3.3 compatible again.
+
+Fixes issue #15.
+
+diff --git a/examples/extract_links.py b/examples/extract_links.py
+--- a/examples/extract_links.py
++++ b/examples/extract_links.py
+@@ -30,7 +30,11 @@
+
+ class LinkExtractor(HTMLParser):
+ def __init__(self):
+- super().__init__(convert_charrefs=True)
++ if sys.version_info < (3,4):
++ # Python 3.3 doesn't know about convert_charrefs
++ super().__init__()
++ else:
++ super().__init__(convert_charrefs=True)
+ self.links = []
+
+ def handle_starttag(self, tag, attrs):
+
diff --git a/dev-python/dugong/files/3.2-timeout.patch b/dev-python/dugong/files/3.2-timeout.patch
new file mode 100644
index 00000000000..5ee43f7367c
--- /dev/null
+++ b/dev-python/dugong/files/3.2-timeout.patch
@@ -0,0 +1,19 @@
+https://bitbucket.org/nikratio/python-dugong/issue/14/test_send_timeout-ssl-failure-in-latest
+diff --git a/test/test_dugong.py b/test/test_dugong.py
+--- a/test/test_dugong.py
++++ b/test/test_dugong.py
+@@ -726,11 +728,11 @@
+
+ # We don't know how much data can be buffered, so we
+ # claim to send a lot and do so in a loop.
+- len_ = 1024**3
++ len_ = 10 * 1024**3
+ conn.send_request('PUT', '/recv_something', body=BodyFollowing(len_))
+ with pytest.raises(dugong.ConnectionTimedOut):
+ while len_ > 0:
+- conn.write(b'x' * min(len_, 16*1024))
++ conn.write(b'x' * min(len_, 640*1024))
+
+
+ DUMMY_DATA = ','.join(str(x) for x in range(10000)).encode()
+
diff --git a/dev-python/dugong/files/3.3-test-timeout.patch b/dev-python/dugong/files/3.3-test-timeout.patch
new file mode 100644
index 00000000000..afd39120797
--- /dev/null
+++ b/dev-python/dugong/files/3.3-test-timeout.patch
@@ -0,0 +1,128 @@
+https://bitbucket.org/nikratio/python-dugong/commits/0e9d67700bc8
+diff --git a/test/test_dugong.py b/test/test_dugong.py
+--- a/test/test_dugong.py
++++ b/test/test_dugong.py
+@@ -99,6 +99,12 @@
+ request.addfinalizer(conn.disconnect)
+ return conn
+
++@pytest.fixture()
++def random_fh(request):
++ fh = open('/dev/urandom', 'rb')
++ request.addfinalizer(fh.close)
++ return fh
++
+ def check_http_connection():
+ '''Skip test if we can't connect to ssl test server'''
+
+@@ -170,12 +176,12 @@
+ conn.get_ssl_cipher()
+ conn.get_ssl_peercert()
+
+-def test_blocking_send(conn):
++def test_blocking_send(conn, random_fh):
+ # Send requests until we block because all TCP buffers are full
+
+- path = '/send_100_1200-byte_chunks'
++ path = '/send_102400_random_bytes'
+ for count in itertools.count():
+- crt = conn.co_send_request('GET', path, body=DUMMY_DATA[:8192])
++ crt = conn.co_send_request('GET', path, body=random_fh.read(8192))
+ flag = False
+ for io_req in crt:
+ if not io_req.poll(1):
+@@ -539,7 +545,7 @@
+ conn.read_response()
+ conn.readall()
+
+-def test_aborted_write1(conn, monkeypatch):
++def test_aborted_write1(conn, monkeypatch, random_fh):
+ BUFSIZE = 64*1024
+
+ # Monkeypatch request handler
+@@ -562,14 +568,14 @@
+ # Try to write data
+ with pytest.raises(ConnectionClosed):
+ for _ in range(50):
+- conn.write(b'f' * BUFSIZE)
++ conn.write(random_fh.read(BUFSIZE))
+
+ # Nevertheless, try to read response
+ resp = conn.read_response()
+ assert resp.status == 401
+ assert resp.reason == 'Please stop!'
+
+-def test_aborted_write2(conn, monkeypatch):
++def test_aborted_write2(conn, monkeypatch, random_fh):
+ BUFSIZE = 64*1024
+
+ # Monkeypatch request handler
+@@ -590,7 +596,7 @@
+ # Try to write data
+ with pytest.raises(ConnectionClosed):
+ for _ in range(50):
+- conn.write(b'f' * BUFSIZE)
++ conn.write(random_fh.read(BUFSIZE))
+
+ # Nevertheless, try to read response
+ assert_raises(ConnectionClosed, conn.read_response)
+@@ -716,12 +722,13 @@
+ assert conn.read(50) == b'x' * 25
+ assert_raises(dugong.ConnectionTimedOut, conn.read, 50)
+
+-def test_send_timeout(conn, monkeypatch):
++def test_send_timeout(conn, monkeypatch, random_fh):
+ conn.timeout = 1
+
+ def do_PUT(self):
+ # Read just a tiny bit
+ self.rfile.read(256)
++ time.sleep(2*conn.timeout)
+ monkeypatch.setattr(MockRequestHandler, 'do_PUT', do_PUT)
+
+ # We don't know how much data can be buffered, so we
+@@ -730,7 +737,7 @@
+ conn.send_request('PUT', '/recv_something', body=BodyFollowing(len_))
+ with pytest.raises(dugong.ConnectionTimedOut):
+ while len_ > 0:
+- conn.write(b'x' * min(len_, 16*1024))
++ conn.write(random_fh.read(min(len_, 16*1024)))
+
+
+ DUMMY_DATA = ','.join(str(x) for x in range(10000)).encode()
+@@ -743,6 +750,14 @@
+ def log_message(self, format, *args):
+ pass
+
++ def setup(self):
++ super().setup()
++ self.random_fh = open('/dev/urandom', 'rb')
++
++ def finish(self):
++ super().finish()
++ self.random_fh.close()
++
+ def handle_expect_100(self):
+ if self.handle_errors():
+ return
+@@ -782,14 +797,17 @@
+ self.wfile.close()
+ return
+
+- hit = re.match(r'^/send_([0-9]+)_bytes', self.path)
++ hit = re.match(r'^/send_([0-9]+)_(random_)?bytes', self.path)
+ if hit:
+ len_ = int(hit.group(1))
+ self.send_response(200)
+ self.send_header("Content-Type", 'application/octet-stream')
+ self.send_header("Content-Length", str(len_))
+ self.end_headers()
+- self.wfile.write(DUMMY_DATA[:len_])
++ if hit.group(2):
++ self.wfile.write(self.random_fh.read(len_))
++ else:
++ self.wfile.write(DUMMY_DATA[:len_])
+ return
+
+ hit = re.match(r'^/send_([0-9]+)_([0-9]+)-byte_chunks(?:_delay_([0-9]+)_ms)?',
+
diff --git a/dev-python/dugong/metadata.xml b/dev-python/dugong/metadata.xml
new file mode 100644
index 00000000000..31e4106d113
--- /dev/null
+++ b/dev-python/dugong/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">dugong</remote-id>
+ <remote-id type="bitbucket">nikratio/python-dugong</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest
new file mode 100644
index 00000000000..6609e2b5ee7
--- /dev/null
+++ b/dev-python/dulwich/Manifest
@@ -0,0 +1,3 @@
+DIST dulwich-0.10.0.tar.gz 272600 SHA256 518bb4aa3e5ad81982bfe571594af81ab9f78feb4e33bfade6c1553afff69237 SHA512 a5aa321e1265ee6c96c763a357d204eda7b9d4d6e90e0b18898342f34b9babf4d43857b9974d6bf442f9ba4da54fed4342c5724772cc9028138e8ec75d2e4896 WHIRLPOOL a032b962f106f0b8c9b9dd3238b135a04b6c6787c0344b8c3235c14e0bd3392ee5298776ff318a8bbafacbb60451dd685febd4a01160d017be3ea49541349af9
+DIST dulwich-0.10.1a.tar.gz 272688 SHA256 666600ab5eb0b6d531879ee0f65dfefd71bce2e21ab3910c28f7789e15b6330b SHA512 dfd2fc71d34c503380de385423fe2e0bc64307803616edafc598056888846f526492fa5d17026f1b4c9617b684a25860051999b2f5eb5b6f760a22fe9937ac3f WHIRLPOOL 5dd1439108e43fbcd616f4a05fff97ab5ae440ee6172dbd6f1472566d325957041a12204b2c647f203dccbf49afe0a3c0aff2012c04e71c097847eb22ab129d5
+DIST dulwich-0.9.9.tar.gz 270127 SHA256 084e762c8d4d0c0002823249db57b8e735c99c409dacc2849565dd3c0c288496 SHA512 5039e8e80c51b8ee0df2ba0805fa63d9b476a05c86b6bd9eaf9348ac03a83f0f1208e259ae6bcf40fb2c94ffb57c9b45bff852e367b8bee95c10e672d3dc19d5 WHIRLPOOL 2a79d25f1233d9a6a242d064af179486810555eb3c9803c336ae152095318a32eb8588779cb07f84b073a05bf7f083ba3b3d4c8d2b4f8929b2aa3d01c29a0a01
diff --git a/dev-python/dulwich/dulwich-0.10.0.ebuild b/dev-python/dulwich/dulwich-0.10.0.ebuild
new file mode 100644
index 00000000000..e6ec665da7d
--- /dev/null
+++ b/dev-python/dulwich/dulwich-0.10.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
+HOMEPAGE="https://github.com/jelmer/dulwich/ http://pypi.python.org/pypi/dulwich"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/gevent[$(python_gen_usedep python2_7)] )"
+RDEPEND=""
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/jelmer/dulwich/issues/196
+ if [[ "${EPYTHON}" == pypy ]]; then
+ "${PYTHON}" -m unittest dulwich.tests.test_suite || die "Tests failed under pypy"
+ else
+ emake check
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dulwich/dulwich-0.10.1a.ebuild b/dev-python/dulwich/dulwich-0.10.1a.ebuild
new file mode 100644
index 00000000000..e6ec665da7d
--- /dev/null
+++ b/dev-python/dulwich/dulwich-0.10.1a.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
+HOMEPAGE="https://github.com/jelmer/dulwich/ http://pypi.python.org/pypi/dulwich"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/gevent[$(python_gen_usedep python2_7)] )"
+RDEPEND=""
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/jelmer/dulwich/issues/196
+ if [[ "${EPYTHON}" == pypy ]]; then
+ "${PYTHON}" -m unittest dulwich.tests.test_suite || die "Tests failed under pypy"
+ else
+ emake check
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dulwich/dulwich-0.9.9.ebuild b/dev-python/dulwich/dulwich-0.9.9.ebuild
new file mode 100644
index 00000000000..b88c0a3fc58
--- /dev/null
+++ b/dev-python/dulwich/dulwich-0.9.9.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
+HOMEPAGE="https://github.com/jelmer/dulwich/ http://pypi.python.org/pypi/dulwich"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/gevent[$(python_gen_usedep python2_7)] )"
+RDEPEND=""
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/jelmer/dulwich/issues/196
+ if [[ "${EPYTHON}" == pypy ]]; then
+ "${PYTHON}" -m unittest dulwich.tests.test_suite || die "Tests failed under pypy"
+ else
+ emake check
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dulwich/metadata.xml b/dev-python/dulwich/metadata.xml
new file mode 100644
index 00000000000..ebfc99cf10b
--- /dev/null
+++ b/dev-python/dulwich/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grobian@gentoo.org</email>
+ <name>Fabian Groffen</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">dulwich</remote-id>
+ <remote-id type="github">jelmer/dulwich</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dynd-python/Manifest b/dev-python/dynd-python/Manifest
new file mode 100644
index 00000000000..97437440fdf
--- /dev/null
+++ b/dev-python/dynd-python/Manifest
@@ -0,0 +1,2 @@
+DIST dynd-python-0.6.5.tar.gz 231313 SHA256 63552c19d7da7a6dd417d75de45af61aa70f336e09d48fea0f5f9f571b41785d SHA512 46af19bc26c8f410ac26d4e756a726a56f2d852bfa21dca03c4c47210ed9074a7e017bdd2ecb1de3d00af37815b4a20885cd7945af4c8536941e9106bcf49f12 WHIRLPOOL 7a8941b0b678f4cf83eea7906ef060afa60a3d3168ca1a375ba8349b26cdba2437624150b8494d8f26bbb80f4cf4a8ca30685fb38aa9088b62e7df927dcdc8e0
+DIST dynd-python-0.6.6.tar.gz 233618 SHA256 cfd71413832c8c44f8357268ffce99f013184c339bfda5a9186610e57f32644d SHA512 c6be9acf0a4dd2446d613cc0c251b56fcd529fac733ecd63d0450806d7f4af2191ef4e861d015177140ca997464b591562a9f478ea83638516fab8552ee88c06 WHIRLPOOL b60e3d774fab77df19788b6eb8f812a19126a109ca7158de7eed2ffbacb3da7866935c39da985323dba3e79817225732d4ebd27d584913709ab527dbf05781ad
diff --git a/dev-python/dynd-python/dynd-python-0.6.5.ebuild b/dev-python/dynd-python/dynd-python-0.6.5.ebuild
new file mode 100644
index 00000000000..222419ecfad
--- /dev/null
+++ b/dev-python/dynd-python/dynd-python-0.6.5.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit cmake-utils python-r1
+
+# change each release, to avoid git in tree dependency
+DYND_GIT_SHA1=e5578b6b862c025dd757f77aaae69be48cde5613
+
+DESCRIPTION="Python exposure of multidimensionnal array library libdynd"
+HOMEPAGE="https://github.com/ContinuumIO/dynd-python"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+
+IUSE="doc test"
+
+RDEPEND="
+ ~dev-libs/libdynd-${PV}
+ >=dev-python/numpy-1.5[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ >=dev-python/cython-0.19[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.6.2-out-of-git-versioning.patch )
+
+src_prepare() {
+ cmake-utils_src_prepare
+ # each relase comes with a different set...
+ # remove forced strong flags
+ sed -i \
+ -e "s|@DYND_GIT_SHA1@|${DYND_GIT_SHA1}|" \
+ -e "s|@DYND_VERSION@|${PV}|" \
+ -e 's|-g -fomit-frame-pointer||' \
+ -e 's|-Werror||g' \
+ CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_SEPARATE_LIBDYND=ON
+ -DDYND_INSTALL_LIB=ON
+ $(cmake-utils_use test DYND_BUILD_TESTS)
+ )
+ python_foreach_impl cmake-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl cmake-utils_src_make
+ use doc && emake -C doc html
+}
+
+src_test() {
+ testing() {
+ cmake-utils_src_make DESTDIR="${WORKDIR}-test-${EPYTHON}" install
+ cd "${WORKDIR}-test-${EPYTHON}"/$(python_get_sitedir) || die
+ ${PYTHON} -c 'import dynd; dynd.test()' || die
+ }
+ python_foreach_impl testing
+}
+
+src_install() {
+ python_foreach_impl cmake-utils_src_install
+ dodoc README.md
+ use doc && dohtml -r doc/build/html/*
+}
diff --git a/dev-python/dynd-python/dynd-python-0.6.6.ebuild b/dev-python/dynd-python/dynd-python-0.6.6.ebuild
new file mode 100644
index 00000000000..ac4f487841c
--- /dev/null
+++ b/dev-python/dynd-python/dynd-python-0.6.6.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit cmake-utils python-r1
+
+# change each release, to avoid git in tree dependency
+DYND_GIT_SHA1=d7ec36c6f1beb0621d6037ab0953db7e4c1b9150
+
+DESCRIPTION="Python exposure of multidimensionnal array library libdynd"
+HOMEPAGE="https://github.com/ContinuumIO/dynd-python"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ ~dev-libs/libdynd-${PV}
+ >=dev-python/numpy-1.5[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ >=dev-python/cython-0.19[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.6.2-out-of-git-versioning.patch )
+
+src_prepare() {
+ cmake-utils_src_prepare
+ # each relase comes with a different set...
+ # remove forced strong flags
+ sed -i \
+ -e "s|@DYND_GIT_SHA1@|${DYND_GIT_SHA1}|" \
+ -e "s|@DYND_VERSION@|${PV}|" \
+ -e 's|-g -fomit-frame-pointer||' \
+ -e 's|-Werror||g' \
+ CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_SEPARATE_LIBDYND=ON
+ -DDYND_INSTALL_LIB=ON
+ $(cmake-utils_use test DYND_BUILD_TESTS)
+ )
+ python_foreach_impl cmake-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl cmake-utils_src_make
+ use doc && emake -C doc html
+}
+
+src_test() {
+ testing() {
+ cmake-utils_src_make DESTDIR="${WORKDIR}-test-${EPYTHON}" install
+ cd "${WORKDIR}-test-${EPYTHON}"/$(python_get_sitedir) || die
+ ${PYTHON} -c 'import dynd; dynd.test()' || die
+ }
+ python_foreach_impl testing
+}
+
+src_install() {
+ python_foreach_impl cmake-utils_src_install
+ dodoc README.md
+ use doc && dohtml -r doc/build/html/*
+}
diff --git a/dev-python/dynd-python/files/dynd-python-0.6.0-out-of-git-versioning.patch b/dev-python/dynd-python/files/dynd-python-0.6.0-out-of-git-versioning.patch
new file mode 100644
index 00000000000..003091da3e7
--- /dev/null
+++ b/dev-python/dynd-python/files/dynd-python-0.6.0-out-of-git-versioning.patch
@@ -0,0 +1,13 @@
+--- CMakeLists.txt.orig 2014-02-10 18:35:07.332899916 -0800
++++ CMakeLists.txt 2014-02-10 18:38:03.220956236 -0800
+@@ -86,8 +86,8 @@
+ endif()
+
+ # Get the git revision
+-get_git_head_revision("${CMAKE_CURRENT_SOURCE_DIR}" GIT_REFSPEC DYND_PYTHON_GIT_SHA1)
+-git_describe("${CMAKE_CURRENT_SOURCE_DIR}" DYND_PYTHON_VERSION_STRING --dirty --match "v[0-9]*")
++set(DYND_PYTHON_GIT_SHA1 "2eaece194769aa55b505274692bfaafa4ef68ac6")
++set(DYND_PYTHON_VERSION_STRING "v0.6.0")
+ message(STATUS "DyND-Python version: ${DYND_PYTHON_VERSION_STRING}")
+ configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/git_version.cpp.in"
diff --git a/dev-python/dynd-python/files/dynd-python-0.6.2-out-of-git-versioning.patch b/dev-python/dynd-python/files/dynd-python-0.6.2-out-of-git-versioning.patch
new file mode 100644
index 00000000000..29c3541b327
--- /dev/null
+++ b/dev-python/dynd-python/files/dynd-python-0.6.2-out-of-git-versioning.patch
@@ -0,0 +1,14 @@
+--- CMakeLists.txt.orig 2014-05-12 14:00:52.000000000 +0400
++++ CMakeLists.txt 2014-05-12 14:03:39.000000000 +0400
+@@ -86,8 +86,9 @@
+ endif()
+
+ # Get the git revision
+-get_git_head_revision("${CMAKE_CURRENT_SOURCE_DIR}" GIT_REFSPEC DYND_PYTHON_GIT_SHA1)
+-git_describe("${CMAKE_CURRENT_SOURCE_DIR}" DYND_PYTHON_VERSION_STRING --dirty --always --match "v*")
++SET(DYND_PYTHON_GIT_SHA1 "@DYND_PYTHON_GIT_SHA1@")
++SET(DYND_PYTHON_VERSION_STRING "@DYND_PYTHON_VERSION@")
++
+ message(STATUS "DyND-Python version: ${DYND_PYTHON_VERSION_STRING}")
+ configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/git_version.cpp.in"
diff --git a/dev-python/dynd-python/metadata.xml b/dev-python/dynd-python/metadata.xml
new file mode 100644
index 00000000000..3de4fa34392
--- /dev/null
+++ b/dev-python/dynd-python/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <herd>python</herd>
+ <longdescription lang="en">
+ DyND-Python, a component of the Blaze project, is the Python
+ exposure of the DyND dynamic multi-dimensional array library.
+</longdescription>
+ <upstream>
+ <remote-id type="github">ContinuumIO/dynd-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ecdsa/Manifest b/dev-python/ecdsa/Manifest
new file mode 100644
index 00000000000..f6cbee22c93
--- /dev/null
+++ b/dev-python/ecdsa/Manifest
@@ -0,0 +1,2 @@
+DIST ecdsa-0.11-r1.tar.gz 45689 SHA256 8e3b6c193f91dc94b2f3b0261e3eabbdc604f78ff99fdad324a56fdd0b5e958c SHA512 77fc2bc26456d90a630e2ef98d94a1448b30e1c3bcebf81c52f12f8ce0ea305eceacc87e14273d340a70c60ad83fad61361c9dea83dea04546ed3604875b78fb WHIRLPOOL 744a6cc26518bf2a24667aa945a94d6fa0d713df27fc3a46f4379b4cb975f98041a338a7995fe377e222f9d1e39707afbd4b4f97dfa65e54bdd4af1e5174f5b0
+DIST ecdsa-0.13.tar.gz 55579 SHA256 64cf1ee26d1cde3c73c6d7d107f835fed7c6a2904aef9eac223d57ad800c43fa SHA512 f21d4d196404455135a1a2255c889ffa26160ea1e9b9d16c914ea82614831816acb6d27c86aac68cdaafa8b1d5fefe065b5f49ce45acaae4a035cd7f08a97594 WHIRLPOOL fb1d368a5198fd1780c2dfdf8bbee8679fd91d1182037e7dfc755e979d4b31c03b97f374186059e3baf47417a78a33aef043f7826a2738619c17f59857d0da43
diff --git a/dev-python/ecdsa/ecdsa-0.11-r1.ebuild b/dev-python/ecdsa/ecdsa-0.11-r1.ebuild
new file mode 100644
index 00000000000..87bc8736bef
--- /dev/null
+++ b/dev-python/ecdsa/ecdsa-0.11-r1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# pypy has test failures with some BadSignatureErrors
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="ECDSA cryptographic signature library in pure Python"
+HOMEPAGE="http://github.com/warner/python-ecdsa"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz -> ${P}-r1.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 sparc x86 ~x86-fbsd ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint"
+IUSE=""
diff --git a/dev-python/ecdsa/ecdsa-0.13.ebuild b/dev-python/ecdsa/ecdsa-0.13.ebuild
new file mode 100644
index 00000000000..e074c7ce395
--- /dev/null
+++ b/dev-python/ecdsa/ecdsa-0.13.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="ECDSA cryptographic signature library in pure Python"
+HOMEPAGE="http://github.com/warner/python-ecdsa"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-fbsd ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/ecdsa/metadata.xml b/dev-python/ecdsa/metadata.xml
new file mode 100644
index 00000000000..1a173811bf0
--- /dev/null
+++ b/dev-python/ecdsa/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <maintainer>
+ <email>luke-jr+gentoobugs@utopios.org</email>
+ <name>Luke Dashjr</name>
+ </maintainer>
+ <maintainer>
+ <email>maksverver@geocities.com</email>
+ <name>Maks Verver</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ecdsa</remote-id>
+ <remote-id type="github">warner/python-ecdsa</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/editobj/Manifest b/dev-python/editobj/Manifest
new file mode 100644
index 00000000000..ca9b744eb9b
--- /dev/null
+++ b/dev-python/editobj/Manifest
@@ -0,0 +1 @@
+DIST EditObj-0.5.7.tar.gz 39802 SHA256 9c72f7d9a9e31e9d7500b29583909246f5d3d7baf4b190f6be1dea4eb1da18ff SHA512 0b7603b00a09942d1ebd2b50203b698598b54a2334d5b69b638d5f4b0ff7273afeab5f4e0dbccc3eecc3349fc08dead1a6e056b858f419faecc7837a5af2df03 WHIRLPOOL 1af08ec076b693201919c5c17c1750bf0dc234a4b41c8c732535d2060c39ab99dc50c53fc80004d755cfbb9fa3ebb49822e38c0b60ec92b28b89b13263f88627
diff --git a/dev-python/editobj/editobj-0.5.7-r1.ebuild b/dev-python/editobj/editobj-0.5.7-r1.ebuild
new file mode 100644
index 00000000000..050b48d98d4
--- /dev/null
+++ b/dev-python/editobj/editobj-0.5.7-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH="tk"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*"
+
+inherit distutils
+
+MY_P="${P/editobj/EditObj}"
+
+DESCRIPTION="EditObj can create a dialog box to edit ANY Python object"
+SRC_URI="http://download.gna.org/songwrite/${MY_P}.tar.gz"
+HOMEPAGE="http://home.gna.org/oomadness/en/editobj/index.html"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 ia64 ppc x86"
+SLOT="0"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_install() {
+ distutils_src_install
+
+ insinto /usr/share/doc/${PF}
+ doins -r demo
+}
diff --git a/dev-python/editobj/editobj-0.5.7-r2.ebuild b/dev-python/editobj/editobj-0.5.7-r2.ebuild
new file mode 100644
index 00000000000..4b1762e3b25
--- /dev/null
+++ b/dev-python/editobj/editobj-0.5.7-r2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="tk"
+
+inherit distutils-r1
+
+MY_P="${P/editobj/EditObj}"
+
+DESCRIPTION="EditObj can create a dialog box to edit ANY Python object"
+SRC_URI="http://download.gna.org/songwrite/${MY_P}.tar.gz"
+HOMEPAGE="http://home.gna.org/oomadness/en/editobj/index.html"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+SLOT="0"
+IUSE="+examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_install_all() {
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/editobj/metadata.xml b/dev-python/editobj/metadata.xml
new file mode 100644
index 00000000000..a0703461b6b
--- /dev/null
+++ b/dev-python/editobj/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+EditObj can create a dialog box to edit ANY Python object. It also
+includes a Tk tree widget, an event and a multiple undo-redo
+frameworks.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/edpwd/Manifest b/dev-python/edpwd/Manifest
new file mode 100644
index 00000000000..d71ba30a4a3
--- /dev/null
+++ b/dev-python/edpwd/Manifest
@@ -0,0 +1 @@
+DIST edpwd-0.0.7.tar.gz 3801 SHA256 736d225c26ec5c06a2231b063f0da213de3d4652583c2eb022d7755f93216a2a SHA512 35f78057af96a197c3ad5887638a6b24dc1353cbc8d676d71ee2ca31e24582cdc3b68b8cd4d321d935019711d9cc249b13760422760b16b0e5359ccecef5e39d WHIRLPOOL 9b838ed6eb00b25b6ce8a0dc7c8071d7fecaf7a961394232aef3d326b056040e4744bb338822a1e08b32a9c8ff253049a7501a123fe5d337c7e0462d574d3bbb
diff --git a/dev-python/edpwd/edpwd-0.0.7.ebuild b/dev-python/edpwd/edpwd-0.0.7.ebuild
new file mode 100644
index 00000000000..f8e19c8f696
--- /dev/null
+++ b/dev-python/edpwd/edpwd-0.0.7.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Encrypt/Decrypt Password Library that wraps up Blowfish"
+HOMEPAGE="http://pypi.python.org/pypi/edpwd/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/setuptools-0.6.30[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/pycrypto[${PYTHON_USEDEP}]"
+
+python_test() {
+ set -- "${PYTHON}" setup.py test
+ echo "${@}"
+ "${@}" || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/edpwd/metadata.xml b/dev-python/edpwd/metadata.xml
new file mode 100644
index 00000000000..b445c930e02
--- /dev/null
+++ b/dev-python/edpwd/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tampakrap@gmail.com</email>
+ <name>Theo Chatzimichos</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">edpwd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/egenix-mx-base/Manifest b/dev-python/egenix-mx-base/Manifest
new file mode 100644
index 00000000000..a2e34ba76da
--- /dev/null
+++ b/dev-python/egenix-mx-base/Manifest
@@ -0,0 +1,2 @@
+DIST egenix-mx-base-3.2.5.tar.gz 4575752 SHA256 bfd0d2aeef73532697c857db26ea11a3574280b1d439d42501c36b4c1d989dce SHA512 707d4cb96de04f967c1a37d156f41d9570b580088132f96533b7b4319c1fc0492a29b01ce1dba9527d7fc7cada99da8767a55c0994c285af81af82fd0f370a42 WHIRLPOOL 6f1a190c3d3dad516b58005815fb283c74cba6a3bb87a9f4dfe1f1bb18789ef8731af8e151e1e855feb0338734ea6232c984d259836607bafa3ddbeb0956887f
+DIST egenix-mx-base-3.2.8.tar.gz 4597088 SHA256 0da55233e45bc3f88870e62e60a79c2c86bad4098b8128343fd7be877f44a3c0 SHA512 26a8d53c2a8ccfe088ac201d0b50d9becc402220746dae2f4fe67b55a1c0cff29b6b7f635f689752c4d444bb05b5edc30972354301830ae24e13b845596dcff9 WHIRLPOOL caba8296c996dc847b0039d5b088f3ddf8e2fae36af1bdb563ca705bf39d6d00aed490c785e303bce9cb79c425f2ca32a244e6f8cfdfdf529548fe2ddd1e3d39
diff --git a/dev-python/egenix-mx-base/egenix-mx-base-3.2.5.ebuild b/dev-python/egenix-mx-base/egenix-mx-base-3.2.5.ebuild
new file mode 100644
index 00000000000..c8c0c60688d
--- /dev/null
+++ b/dev-python/egenix-mx-base/egenix-mx-base-3.2.5.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="eGenix utils for Python"
+HOMEPAGE="http://www.egenix.com/products/python/mxBase http://pypi.python.org/pypi/egenix-mx-base"
+SRC_URI="http://downloads.egenix.com/python/${P}.tar.gz"
+
+LICENSE="eGenixPublic-1.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE=""
+
+# distutils.command.config writes to CWD, bug #450516
+# mxSetup.py is broken with --build-lib
+#DISTUTILS_IN_SOURCE_BUILD=1
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+python_prepare_all() {
+ # Don't install documentation in site-packages directories.
+ sed -e "/\.pdf/d" -i egenix_mx_base.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local t
+
+ while IFS= read -r -d '' t
+ do
+ "${PYTHON}" "${t}" || die "${t} failed with ${EPYTHON}"
+ done < <(find -name test.py -print0)
+}
+
+python_install() {
+ local f dest=${D}$(python_get_includedir)/mx
+
+ distutils-r1_python_install \
+ build --build-platlib "${BUILD_DIR}"/lib
+
+ mkdir -p "${dest}" || die
+ while IFS= read -r -d '' f
+ do
+ mv -f "${f}" "${dest}" || die
+ done < <(find "${D}$(python_get_sitedir)/mx" -type f -name "*.h" -print0)
+}
+
+python_install_all() {
+ local f
+
+ distutils-r1_python_install_all
+
+ dohtml -a html -r mx
+ while IFS= read -r -d '' f
+ do
+ dodoc "${f}"
+ done < <(find -name '*.pdf' -print0)
+}
diff --git a/dev-python/egenix-mx-base/egenix-mx-base-3.2.8.ebuild b/dev-python/egenix-mx-base/egenix-mx-base-3.2.8.ebuild
new file mode 100644
index 00000000000..b93dce70cd2
--- /dev/null
+++ b/dev-python/egenix-mx-base/egenix-mx-base-3.2.8.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="eGenix utils for Python"
+HOMEPAGE="http://www.egenix.com/products/python/mxBase http://pypi.python.org/pypi/egenix-mx-base"
+SRC_URI="http://downloads.egenix.com/python/${P}.tar.gz"
+
+LICENSE="eGenixPublic-1.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE=""
+# Correct broken tests
+PATCHES=( "${FILESDIR}"/${PN}-3.2.6-tests.patch )
+
+python_prepare_all() {
+ # Don't install documentation in site-packages directories.
+ sed -e "/\.pdf/d" -i egenix_mx_base.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local t
+
+ while IFS= read -r -d '' t
+ do
+ "${PYTHON}" "${t}" || die "${t} failed with ${EPYTHON}"
+ done < <(find -name test.py -print0)
+}
+
+python_install() {
+ local f dest=${D}$(python_get_includedir)/mx
+
+ distutils-r1_python_install \
+ build --build-platlib "${BUILD_DIR}"/lib
+
+ mkdir -p "${dest}" || die
+ while IFS= read -r -d '' f
+ do
+ mv -f "${f}" "${dest}" || die
+ done < <(find "${D}$(python_get_sitedir)/mx" -type f -name "*.h" -print0)
+}
+
+python_install_all() {
+ local f
+
+ distutils-r1_python_install_all
+
+ dohtml -a html -r mx
+ while IFS= read -r -d '' f
+ do
+ dodoc "${f}"
+ done < <(find -name '*.pdf' -print0)
+}
diff --git a/dev-python/egenix-mx-base/files/egenix-mx-base-3.2.6-tests.patch b/dev-python/egenix-mx-base/files/egenix-mx-base-3.2.6-tests.patch
new file mode 100644
index 00000000000..25a95b3b19f
--- /dev/null
+++ b/dev-python/egenix-mx-base/files/egenix-mx-base-3.2.6-tests.patch
@@ -0,0 +1,34 @@
+reverse or annul them. Either or
+diff -ur egenix-mx-base-3.2.6.orig/mx/DateTime/mxDateTime/testslotops.py egenix-mx-base-3.2.6/mx/DateTime/mxDateTime/testslotops.py
+--- mx/DateTime/mxDateTime/testslotops.py 2011-07-26 17:12:50.000000000 +0800
++++ mx/DateTime/mxDateTime/testslotops.py 2014-03-28 20:18:05.841240713 +0800
+@@ -54,10 +54,10 @@
+ # DateTime op DateTimeDelta
+ assert t1 != td1
+ assert t2 != td1
+- assert t1 < td1
+- assert t2 < td1
+- assert not (t1 > td1)
+- assert not (t2 > td1)
++ assert t1 > td1
++ assert t2 > td1
++ assert not (t1 < td1)
++ assert not (t2 < td1)
+
+ # DateTime op floats
+ assert t1 == t1_ticks
+@@ -259,10 +259,10 @@
+ # DateTimeDelta op DateTime
+ assert td1 != t1
+ assert td2 != t1
+- assert td1 > t1
+- assert td2 > t1
+- assert not (td1 < t1)
+- assert not (td2 < t1)
++# assert td1 > t1
++# assert td2 > t1
++# assert not (td1 < t1)
++# assert not (td2 < t1)
+
+ # DateTimeDelta op floats
+ assert td1 == td1_seconds
diff --git a/dev-python/egenix-mx-base/metadata.xml b/dev-python/egenix-mx-base/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/egenix-mx-base/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/egg-python/Manifest b/dev-python/egg-python/Manifest
new file mode 100644
index 00000000000..2fc6771cd4c
--- /dev/null
+++ b/dev-python/egg-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-extras-2.25.3.tar.bz2 370489 SHA256 ca346264e00e193f0866cabd8801d3b7ce70dae7b8b296e41e5b3a45c9b0275c SHA512 6994b8b5d6ccc009edc7ddfad373b9164d8162f1007972652f6086dca30cac6941ab68ef467d15c972ab05c4ae0e19ec72edc2643636d22a01a3f5a719251467 WHIRLPOOL b0adfcef8bbb978d063a932393e17de9c8c519194f40085ecd03824ec4fb4421c84e0a4853a5a2d9fc40c94d8c0c261828447ac5fd69cff4ece39c52fc833590
diff --git a/dev-python/egg-python/egg-python-2.25.3-r1.ebuild b/dev-python/egg-python/egg-python-2.25.3-r1.ebuild
new file mode 100644
index 00000000000..9d1b446e95b
--- /dev/null
+++ b/dev-python/egg-python/egg-python-2.25.3-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+# We don't support the egg.recent bindings that are also provided - they are
+# deprecated, have deps we don't really want and there are no users in-tree.
+GNOME_ORG_MODULE="gnome-python-extras"
+G_PY_BINDINGS="eggtray"
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils gnome-python-common-r1
+
+DESCRIPTION="EggTrayIcon bindings for Python"
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND=">=dev-python/libbonobo-python-2.22.1[${PYTHON_USEDEP}]
+ >=dev-python/libgnome-python-2.22.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ gnome-base/gnome-common"
+# eautoreconf needs gnome-base/gnome-common
+
+EXAMPLES=( examples/egg/trayicon.py )
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-python-libs.patch" #344231
+ sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac || die
+ eautoreconf
+ gnome-python-common-r1_src_prepare
+}
diff --git a/dev-python/egg-python/files/egg-python-2.25.3-python-libs.patch b/dev-python/egg-python/files/egg-python-2.25.3-python-libs.patch
new file mode 100644
index 00000000000..ab691272cbb
--- /dev/null
+++ b/dev-python/egg-python/files/egg-python-2.25.3-python-libs.patch
@@ -0,0 +1,59 @@
+From 7824fd5291f570de3c2c64185035d1a6a0a3445a Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Mon, 13 Aug 2012 04:42:47 -0400
+Subject: [PATCH] Replace horrible slow python libs search
+
+---
+ acinclude.m4 | 36 ++----------------------------------
+ 1 files changed, 2 insertions(+), 34 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 8694a65..f5373eb 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -59,40 +59,8 @@ $1],dnl
+ [AC_MSG_RESULT(not found)
+ $2])
+ CPPFLAGS="$save_CPPFLAGS"
+-
+- # This bit is copied from Planner. murrayc.
+- # Check for Python library path
+- AC_MSG_CHECKING([for Python library path])
+-
+- # Win32 has libpython25.a instead of libpython2.5.a, so we look
+- # for both. TODO: Only look for libpython25.a on Windows, and for
+- # libpython2.5.a on unix.
+- WIN32_PYTHON_VERSION=`echo $PYTHON_VERSION | sed "s,\.,,"`
+-
+- python_path=`dirname $PYTHON | sed "s,/bin.*$,,"`
+- for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
+- if test -e "$i"; then
+- python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
+- if test -n "$python_path" ; then
+- python_lib="python$PYTHON_VERSION"
+- break
+- fi
+-
+- # Additionally test WIN32_PYTHON_VERSION
+- python_path=`find $i -type f -name libpython$WIN32_PYTHON_VERSION.* -print | sed "1q"`
+- if test -n "$python_path" ; then
+- python_lib="python$WIN32_PYTHON_VERSION"
+- break
+- fi
+- fi
+- done
+-
+- python_path=`echo $python_path | sed "s,/libpython.*$,,"`
+- AC_MSG_RESULT([$python_path])
+- if test -z "$python_path" ; then
+- AC_MSG_ERROR([cannot find Python library path])
+- fi
+- AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -l$python_lib"])
++PYTHON_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; print('-L%s -lpython${PYTHON_VERSION}' % distutils.sysconfig.get_config_var('LIBDIR'))"`
++AC_SUBST([PYTHON_LDFLAGS],["$PYTHON_LDFLAGS"])
+ ])
+
+ dnl
+--
+1.7.8.6
+
diff --git a/dev-python/egg-python/metadata.xml b/dev-python/egg-python/metadata.xml
new file mode 100644
index 00000000000..d9234ae60f5
--- /dev/null
+++ b/dev-python/egg-python/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/elasticsearch-curator/Manifest b/dev-python/elasticsearch-curator/Manifest
new file mode 100644
index 00000000000..70b47b7d97b
--- /dev/null
+++ b/dev-python/elasticsearch-curator/Manifest
@@ -0,0 +1,6 @@
+DIST elasticsearch-1.4.2.tar.gz 27734207 SHA256 31dd6c049745f7dac201f94852b778b0841d6869d358fd80d4c897d0bf73b53c SHA512 b82e644b0b81489ce0d4fc72ca0efa3545c55c4d947faec2537035d440be83bac0f794f1a2863d87649e36f87d250c1f4e46ae57053b50948f47f9ff2a3bf6b6 WHIRLPOOL ac40778a999bc92230547b1405f259b7d348983767a87c71e18ed9ef45367ebf0b5b0517ef57bd423fa47ce4387e982aa7ee4a4ec9b2be75a4771e8d737f0cc5
+DIST elasticsearch-1.4.4.tar.gz 27900004 SHA256 a3158d474e68520664debaea304be22327fc7ee1f410e0bfd940747b413e8586 SHA512 afc24c5d778d346e24c656e040fb7d0036e16ae42b35ca4f97b2e4d31dc815467ae5462f922ea5222307acf0fa0579f6cd38c603bc996c1f4ba723aa6a2b01ed WHIRLPOOL 37a1a057539ae29525a78fa51f3d19f403e389129e54054edfa1bbd08d12bdbb88acb4e879b6795aa63d583fd70eedefcae5b13b6bf1a7c8314e3aafa49e2b33
+DIST elasticsearch-1.7.0.tar.gz 28501532 SHA256 6fabed2db09e1b88587df15269df328ecef33e155b3c675a2a6d2299bda09c95 SHA512 090186218d7bfcef2f1cf497b08edeae71f2bdae1ddbe97a04e3e288c9a41bdf069ee7ef51202596b17ac9a33840edc4d655a08313ecb732a1f37029b60740d4 WHIRLPOOL 0dfd8f5095dfbbbcda788da0661fc5ec9af7d2fa174dbb365ad021ff7e48d42035f63a45ba6cb9fc20fc8e86500fc81cfcb2f0c46f99015b6f84a2c2be762bd4
+DIST elasticsearch-curator-2.1.2.tar.gz 35706 SHA256 93185f57e4fcd84970b78936271c3ddcba69c54d9a799acafe7d16483134cce0 SHA512 4bc4f74ab7d710173f173d47ad5e8c8918267bbc888a2b1b301e799747f73375b159671940cf7d3cc62361adbb320bc3e772d149eb7ff227d4893788810946f1 WHIRLPOOL 156e92a0a5fa4797651d1c066b955304b082edcda815784c5ddb5a025c93f9b4f222f15e5d7ce74e4740bd1c3ab5e67fe21e651186e0062ff3f0e418b0390b09
+DIST elasticsearch-curator-3.0.0.tar.gz 55418 SHA256 72ec58f15344649dbfec54c80731e6b0b80bb3c0575061ca75580d49f9982fe0 SHA512 acf2a86af682118a0c5ece1d8b557e6b43ada667f8c172cd7d8f66280b07e5e79ec6da5a674b338348fc1e94a6d2bcffd8e1ff61f7bd9ef43cd6458eb371c50a WHIRLPOOL bab3479082209c1efea77b6385a49782617143fd28c6956c13cbc3c1d36256c3d45c316abb3b6982e5822b811ac69a18cfcaa5dc4ec4e3634b155a241d0cb0f4
+DIST elasticsearch-curator-3.2.3.tar.gz 82745 SHA256 f3e499719cd7e0d13a6e7e339c034ed91039f9295767484bd217574fd1a04a9e SHA512 55668d7c5d0cda386983f499e93bba5f2ff1520569ee6e3ac296b1dc86daf302ec6a5c5c8c0eb48e821ace2c40fa523990a06dcd1099b1359dd15ae5dbfe5ae4 WHIRLPOOL 06ac9e72a43731ba864fb883b2a89da82e0a12249ba3962f9ce9ebe2fb41dbea6bb378cf05d365e1379d3836183a0c75aae4e8c87b123a211f55cbf0258e7d53
diff --git a/dev-python/elasticsearch-curator/elasticsearch-curator-2.1.2.ebuild b/dev-python/elasticsearch-curator/elasticsearch-curator-2.1.2.ebuild
new file mode 100644
index 00000000000..81749c806cf
--- /dev/null
+++ b/dev-python/elasticsearch-curator/elasticsearch-curator-2.1.2.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+MY_PN="curator"
+ES_VERSION="1.4.2"
+
+inherit distutils-r1
+
+DESCRIPTION="Tending time-series indices in Elasticsearch"
+HOMEPAGE="https://github.com/elasticsearch/curator"
+SRC_URI="https://github.com/elasticsearch/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ test? ( https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-${ES_VERSION}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/elasticsearch-py-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/elasticsearch-py-2.0.0[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ virtual/jre:1.7
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nosexcover[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_test() {
+ ES="${WORKDIR}/elasticsearch-${ES_VERSION}"
+ ES_PORT="25123"
+ ES_LOG="${ES}/logs/elasticsearch.log"
+ PID="${ES}/elasticsearch.pid"
+
+ # run Elasticsearch instance on custom port
+ sed -i "s/#http.port: 9200/http.port: ${ES_PORT}/g" ${ES}/config/elasticsearch.yml
+ ${ES}/bin/elasticsearch -d -p ${PID}
+
+ for i in `seq 10`; do
+ grep -q "started" ${ES_LOG} 2> /dev/null
+ if [ $? -eq 0 ]; then
+ einfo "Elasticsearch started"
+ eend 0
+ break
+ elif grep -q 'BindException\[Address already in use\]' "${ES_LOG}" 2>/dev/null; then
+ eend 1
+ eerror "Elasticsearch already running"
+ die "Cannot start Elasticsearch for tests"
+ else
+ einfo "Waiting for Elasticsearch"
+ eend 1
+ sleep 2
+ continue
+ fi
+ done
+
+ export TEST_ES_SERVER="localhost:${ES_PORT}"
+ esetup.py test || die "Tests failed on ${EPYTHON}"
+
+ pkill -F ${PID}
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/elasticsearch-curator/elasticsearch-curator-3.0.0.ebuild b/dev-python/elasticsearch-curator/elasticsearch-curator-3.0.0.ebuild
new file mode 100644
index 00000000000..8fcfbd88347
--- /dev/null
+++ b/dev-python/elasticsearch-curator/elasticsearch-curator-3.0.0.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+MY_PN="curator"
+ES_VERSION="1.4.4"
+
+inherit distutils-r1
+
+DESCRIPTION="Tending time-series indices in Elasticsearch"
+HOMEPAGE="https://github.com/elasticsearch/curator"
+SRC_URI="https://github.com/elasticsearch/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ test? ( https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-${ES_VERSION}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/elasticsearch-py-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/elasticsearch-py-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/click-3.3[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ virtual/jre:1.7
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nosexcover[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_test() {
+ ES="${WORKDIR}/elasticsearch-${ES_VERSION}"
+ ES_PORT="25123"
+ ES_LOG="${ES}/logs/elasticsearch.log"
+ PID="${ES}/elasticsearch.pid"
+
+ # run Elasticsearch instance on custom port
+ sed -i "s/#http.port: 9200/http.port: ${ES_PORT}/g; \
+ s/#cluster.name: elasticsearch/cluster.name: gentoo-es-curator-test/g" \
+ ${ES}/config/elasticsearch.yml
+
+ # start local instance of elasticsearch
+ ${ES}/bin/elasticsearch -d -p ${PID}
+
+ for i in `seq 10`; do
+ grep -q "started" ${ES_LOG} 2> /dev/null
+ if [ $? -eq 0 ]; then
+ einfo "Elasticsearch started"
+ eend 0
+ break
+ elif grep -q 'BindException\[Address already in use\]' "${ES_LOG}" 2>/dev/null; then
+ eend 1
+ eerror "Elasticsearch already running"
+ die "Cannot start Elasticsearch for tests"
+ else
+ einfo "Waiting for Elasticsearch"
+ eend 1
+ sleep 2
+ continue
+ fi
+ done
+
+ export TEST_ES_SERVER="localhost:${ES_PORT}"
+ esetup.py test || die "Tests failed on ${EPYTHON}"
+
+ pkill -F ${PID}
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ ewarn ""
+ ewarn "For Python 3 support information please read: http://click.pocoo.org/3/python3/"
+ ewarn ""
+ ewarn "Example usage on Python 3:"
+ ewarn "export LC_ALL=en_US.UTF-8"
+ ewarn "export LANG=en_US.UTF-8"
+ ewarn "curator ..."
+}
diff --git a/dev-python/elasticsearch-curator/elasticsearch-curator-3.2.3.ebuild b/dev-python/elasticsearch-curator/elasticsearch-curator-3.2.3.ebuild
new file mode 100644
index 00000000000..0300333aeb2
--- /dev/null
+++ b/dev-python/elasticsearch-curator/elasticsearch-curator-3.2.3.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+MY_PN="curator"
+ES_VERSION="1.7.0"
+
+inherit distutils-r1
+
+DESCRIPTION="Tending time-series indices in Elasticsearch"
+HOMEPAGE="https://github.com/elasticsearch/curator"
+SRC_URI="https://github.com/elasticsearch/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ test? ( https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-${ES_VERSION}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/elasticsearch-py-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/elasticsearch-py-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/click-3.3[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ || ( virtual/jre:1.8 virtual/jre:1.7 )
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nosexcover[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_test() {
+ ES="${WORKDIR}/elasticsearch-${ES_VERSION}"
+ ES_PORT="25123"
+ ES_LOG="${ES}/logs/elasticsearch.log"
+ PID="${ES}/elasticsearch.pid"
+
+ # run Elasticsearch instance on custom port
+ sed -i "s/#http.port: 9200/http.port: ${ES_PORT}/g; \
+ s/#cluster.name: elasticsearch/cluster.name: gentoo-es-curator-test/g" \
+ ${ES}/config/elasticsearch.yml
+
+ # Elasticsearch 1.6+ needs to set path.repo
+ echo "path.repo: /" >> ${ES}/config/elasticsearch.yml
+
+ # start local instance of elasticsearch
+ ${ES}/bin/elasticsearch -d -p ${PID}
+
+ for i in `seq 10`; do
+ grep -q "started" ${ES_LOG} 2> /dev/null
+ if [ $? -eq 0 ]; then
+ einfo "Elasticsearch started"
+ eend 0
+ break
+ elif grep -q 'BindException\[Address already in use\]' "${ES_LOG}" 2>/dev/null; then
+ eend 1
+ eerror "Elasticsearch already running"
+ die "Cannot start Elasticsearch for tests"
+ else
+ einfo "Waiting for Elasticsearch"
+ eend 1
+ sleep 2
+ continue
+ fi
+ done
+
+ export TEST_ES_SERVER="localhost:${ES_PORT}"
+ esetup.py test || die "Tests failed on ${EPYTHON}"
+
+ pkill -F ${PID}
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ ewarn ""
+ ewarn "For Python 3 support information please read: http://click.pocoo.org/3/python3/"
+ ewarn ""
+ ewarn "Example usage on Python 3:"
+ ewarn "export LC_ALL=en_US.UTF-8"
+ ewarn "export LANG=en_US.UTF-8"
+ ewarn "curator ..."
+}
diff --git a/dev-python/elasticsearch-curator/metadata.xml b/dev-python/elasticsearch-curator/metadata.xml
new file mode 100644
index 00000000000..ffe20745f0f
--- /dev/null
+++ b/dev-python/elasticsearch-curator/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomas Mozes</name>
+ <description>Proxy maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">elasticsearch/curator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/elasticsearch-py/Manifest b/dev-python/elasticsearch-py/Manifest
new file mode 100644
index 00000000000..6999e9a4312
--- /dev/null
+++ b/dev-python/elasticsearch-py/Manifest
@@ -0,0 +1,3 @@
+DIST elasticsearch-py-1.4.0.tar.gz 74498 SHA256 7959787b47c3523e9c9aeffec441091fcd2b293d26c4fd5f576cf84cfb85ef63 SHA512 dbe51362f68d40e95a0cfefde4feb8d9d9c61b4f4795cbf69fd70bf981f290812ebac19a20ae8594cc39ac46a3c35ddfe450ff436fca0fada060736128478cf7 WHIRLPOOL a6730bcccc1201048f82aed6e63b7e73f38150002dd9889c575c9edf52834bc6f9a8256977ac27b092f3865074e4699729cc766564a4b731766d77d6a6de6324
+DIST elasticsearch-py-1.5.0.tar.gz 77037 SHA256 275eaeb2f64c8eba8691d953ac0d8a16e4f759d9cad797323b7cbd0ef87a69ce SHA512 10d473a221be3deb086dca0c5463324647e38f8be4f4bbea934079b002f1414d30c98976c56fd2fc55c97d24ed2338137a9983194e8bf82c95cc70321ee5ee86 WHIRLPOOL 3aa83b9bfd5363ea39baf58cc7bdaaa9606085e471e7e683518cf707642fc9a514264c51cf3e296db071a2a5333f58b8e1335bc4473477df9d085bea63c584ba
+DIST elasticsearch-py-1.6.0.tar.gz 77205 SHA256 59dd03284ab7314e5eb50d13ba92df65efb93778ca318906baad5776b152aff7 SHA512 09cdec0b3f50707b9a5e11534fe28507db669e4da44bbda1952d07b6ac8e3aea0c0c05297db26d9425c2247724681fa4e5485e9525571ff64f070e700a9a9b07 WHIRLPOOL 04f43a848cc811d1bee22d2bf7931a4348fb4a455172e381bedad5179d72313320009cb8b2dfdadb252aacc13cc1a4ef15b311488401d6b2bc23e242272bb74b
diff --git a/dev-python/elasticsearch-py/elasticsearch-py-1.4.0.ebuild b/dev-python/elasticsearch-py/elasticsearch-py-1.4.0.ebuild
new file mode 100644
index 00000000000..f25a4e9b8ec
--- /dev/null
+++ b/dev-python/elasticsearch-py/elasticsearch-py-1.4.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="official Python low-level client for Elasticsearch"
+HOMEPAGE="http://elasticsearch-py.rtfd.org/"
+SRC_URI="https://github.com/elasticsearch/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86"
+IUSE=""
+
+DEPEND="dev-python/urllib3[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/elasticsearch-py/elasticsearch-py-1.5.0.ebuild b/dev-python/elasticsearch-py/elasticsearch-py-1.5.0.ebuild
new file mode 100644
index 00000000000..973f5ccd770
--- /dev/null
+++ b/dev-python/elasticsearch-py/elasticsearch-py-1.5.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="official Python low-level client for Elasticsearch"
+HOMEPAGE="http://elasticsearch-py.rtfd.org/"
+SRC_URI="https://github.com/elasticsearch/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~x86"
+IUSE="examples doc test"
+
+RDEPEND=">=dev-python/urllib3-1.8[${PYTHON_USEDEP}]
+ <dev-python/urllib3-2.0[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/requests-3.0.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Remove tests attempting to connect ot the network
+ rm -rf test_elasticsearch/test_server/ || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test_all() {
+ # For unknown reason the testsuite fails to iterate the set of impls of PYTHON_COMPAT
+ # but they all pass on testing when run individually
+ "${PYTHON}" test_elasticsearch/run_tests.py
+
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/elasticsearch-py/elasticsearch-py-1.6.0.ebuild b/dev-python/elasticsearch-py/elasticsearch-py-1.6.0.ebuild
new file mode 100644
index 00000000000..ce8d2e9685c
--- /dev/null
+++ b/dev-python/elasticsearch-py/elasticsearch-py-1.6.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="official Python low-level client for Elasticsearch"
+HOMEPAGE="http://elasticsearch-py.rtfd.org/"
+SRC_URI="https://github.com/elasticsearch/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~x86"
+IUSE="examples doc test"
+
+RDEPEND=">=dev-python/urllib3-1.8[${PYTHON_USEDEP}]
+ <dev-python/urllib3-2.0[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/requests-3.0.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}] )"
+# nosexcover is listed for tests but is not essential
+
+python_prepare_all() {
+ # Remove tests attempting to connect ot the network
+ rm -rf test_elasticsearch/test_server/ || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test_all() {
+ # For unknown reason the testsuite fails to iterate the set of impls of PYTHON_COMPAT
+ # but they all pass on testing when run individually
+ "${PYTHON}" test_elasticsearch/run_tests.py
+
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/elasticsearch-py/metadata.xml b/dev-python/elasticsearch-py/metadata.xml
new file mode 100644
index 00000000000..83ea614f4e7
--- /dev/null
+++ b/dev-python/elasticsearch-py/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomas Mozes</name>
+ <description>Proxy maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">elasticsearch/elasticsearch-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/elementtree/Manifest b/dev-python/elementtree/Manifest
new file mode 100644
index 00000000000..4c9d78d3722
--- /dev/null
+++ b/dev-python/elementtree/Manifest
@@ -0,0 +1 @@
+DIST elementtree-1.2.6-20050316.tar.gz 41752 SHA256 b29d5f2417cb331562c8c5f8ebef2a895ba540261c4245f526143c6a31bccb04 SHA512 f213cf5bd9a79b59a2033c652d9d53087fd07dd3550db1771b8ba97168c3a5722d31ac5ff8699830df0f14a1d9f0caf8d237e8c6153568e16347d8b212771baf WHIRLPOOL d68e7e2cf02753c0d982406c4df01272c2fd1ec784bfb097d09a363fe36b4a73b7b8b9af07b0069b409e810ed5075e10419cc0ce86a21e5065621a7a12acb5d4
diff --git a/dev-python/elementtree/elementtree-1.2.6-r3.ebuild b/dev-python/elementtree/elementtree-1.2.6-r3.ebuild
new file mode 100644
index 00000000000..acdc6dce7c5
--- /dev/null
+++ b/dev-python/elementtree/elementtree-1.2.6-r3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P="${P}-20050316"
+
+DESCRIPTION="A light-weight XML object model for Python"
+HOMEPAGE="http://effbot.org/zone/element-index.htm http://pypi.python.org/pypi/elementtree"
+SRC_URI="http://effbot.org/downloads/${MY_P}.tar.gz"
+
+LICENSE="ElementTree"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e "s/distutils.core/setuptools/" -i setup.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" selftest.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/elementtree/metadata.xml b/dev-python/elementtree/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/elementtree/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/elib-intl/Manifest b/dev-python/elib-intl/Manifest
new file mode 100644
index 00000000000..a2b203c98c2
--- /dev/null
+++ b/dev-python/elib-intl/Manifest
@@ -0,0 +1 @@
+DIST elib-intl-0_pre20110711.tar.gz 29362 SHA256 55daacfd3fee466fb354ddbd6f92c61364841c3d6e6bf4d80247c7757e20c5f7 SHA512 f44388761bc1c371c0cba5ec8b3513b073eba1d620e1ebd696008999d748f8c2473d5100d625036436157c92283b29d700ad6672d7909ca284703e3146d02abf WHIRLPOOL 99b95e57c617f727fb1f02842f209d8684cd55aeb3d51c72c41ea88ce59ca756350ddce8c8906b71c57fbd65844924d9d4bb22fff1199b7c17047c1789f30e0a
diff --git a/dev-python/elib-intl/elib-intl-0_pre20110711.ebuild b/dev-python/elib-intl/elib-intl-0_pre20110711.ebuild
new file mode 100644
index 00000000000..62b4926c1ce
--- /dev/null
+++ b/dev-python/elib-intl/elib-intl-0_pre20110711.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Enhanced internationalization (I18N) services for your Python modules and applications"
+HOMEPAGE="https://github.com/dieterv/elib.intl/"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+LICENSE="GPL-3 LGPL-3"
+SLOT="0"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools
+ ${RDEPEND}"
diff --git a/dev-python/elib-intl/metadata.xml b/dev-python/elib-intl/metadata.xml
new file mode 100644
index 00000000000..aac09801897
--- /dev/null
+++ b/dev-python/elib-intl/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>nixphoeni@gentoo.org</email>
+ <name>Joe Sapp</name>
+ </maintainer>
+ <longdescription>
+ The elib.intl module provides enhanced internationalization
+ (I18N) services for your Python modules and applications.
+ </longdescription>
+ <upstream>
+ <maintainer>
+ <email>dieterv@optionexplicit.be</email>
+ <name>Dieter Verfaillie</name>
+ </maintainer>
+ <bugs-to>https://github.com/dieterv/elib.intl/issues</bugs-to>
+ <remote-id type="github">dieterv/elib.intl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/eliot/Manifest b/dev-python/eliot/Manifest
new file mode 100644
index 00000000000..6d02cbfdf0c
--- /dev/null
+++ b/dev-python/eliot/Manifest
@@ -0,0 +1 @@
+DIST eliot-0.4.0.tar.gz 67581 SHA256 adc2d43434a3059dfef21841a30df7bce5f223b4486ce8c1f04ce9d5e0e027bd SHA512 f63b487905996bf06c2efccc66c5b9214e13d672f9c3ddcfa5f2a65dc909953b489111469251501efa2e46b3911b213ffe404c6fddfea92646e086e439fb6503 WHIRLPOOL 9c72e8826cccb78a1e81968ac46bf8ca3a273b44551326051b54c9f5ecb6e6f78683b2a09741573188def2be82d1f0b03576627e0d653d229519ccd6504c4f99
diff --git a/dev-python/eliot/eliot-0.4.0.ebuild b/dev-python/eliot/eliot-0.4.0.ebuild
new file mode 100644
index 00000000000..1a78c4b70d2
--- /dev/null
+++ b/dev-python/eliot/eliot-0.4.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Logging as Storytelling"
+HOMEPAGE="https://github.com/hybridcluster/${PN}"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ "
+
+python_compile_all() {
+ emake -C "${S}/docs" man
+ use doc && emake -C "${S}/docs" html
+}
+
+python_install_all() {
+ doman "${S}/docs/build/man/"*
+ use doc && dohtml -r "${S}/docs/build/html/"*
+}
+
+python_test() {
+ py.test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/eliot/metadata.xml b/dev-python/eliot/metadata.xml
new file mode 100644
index 00000000000..78caa438e2d
--- /dev/null
+++ b/dev-python/eliot/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ryao@gentoo.org</email>
+ <name>Richard Yao</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">eliot</remote-id>
+ <remote-id type="github">hybridcluster/eliot</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/embedly/Manifest b/dev-python/embedly/Manifest
new file mode 100644
index 00000000000..bf0ca5497b4
--- /dev/null
+++ b/dev-python/embedly/Manifest
@@ -0,0 +1,2 @@
+DIST Embedly-0.4.3.tar.gz 6702 SHA256 e12e32bf600538e4dc8d0e4ea5c5f8e91b58ac21dc7c14168a16e16db0e7d812 SHA512 3e5d0d0389105c6beadf397da0d42238d56b831644e61f3c915307c57661210970c967c9babd84c0609a1e7ed3e2640ae60d46c4cf3f764596a4e1acc188c532 WHIRLPOOL 68d7eaed4ccd2f6b2de5f2a86f569c2c6d4af2656988cc289a178462becd20224d10ae8224e364d1707c6999b321c9050c831c341de2c07dd6143f7ebca451be
+DIST Embedly-0.5.0.tar.gz 7812 SHA256 e10bca4b5e25e8f30e93eb459921f787b08efc4004b6370a68f4c8984f6f16e1 SHA512 c85abacaa33b7897ccda79dc3746497f4eefe54bac3eef0aaa7c9120fec14ff6b7652a342303bea0667f60c2e31cb1591a22cddeff6827c87c6e2b1cc3274469 WHIRLPOOL b9a53ec896a4656404878473df9794163b4c792313636e077b90c991df18245dac32ebc109c08eb770c18ca3b9d0529bd03785ec7c6f12b70355e7f483cd8539
diff --git a/dev-python/embedly/embedly-0.4.3-r1.ebuild b/dev-python/embedly/embedly-0.4.3-r1.ebuild
new file mode 100644
index 00000000000..784d2b6a820
--- /dev/null
+++ b/dev-python/embedly/embedly-0.4.3-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Embedly"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python Library for Embedly"
+HOMEPAGE="https://github.com/embedly/embedly-python/ http://pypi.python.org/pypi/Embedly"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/embedly/embedly-0.5.0.ebuild b/dev-python/embedly/embedly-0.5.0.ebuild
new file mode 100644
index 00000000000..82da33df0e5
--- /dev/null
+++ b/dev-python/embedly/embedly-0.5.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="Embedly"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python Library for Embedly"
+HOMEPAGE="https://github.com/embedly/embedly-python/ http://pypi.python.org/pypi/Embedly"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+# Testsuite relies upon connection to various sites on the net
diff --git a/dev-python/embedly/metadata.xml b/dev-python/embedly/metadata.xml
new file mode 100644
index 00000000000..c097ac69086
--- /dev/null
+++ b/dev-python/embedly/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Embedly</remote-id>
+ <remote-id type="github">embedly/embedly-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/empy/Manifest b/dev-python/empy/Manifest
new file mode 100644
index 00000000000..cea0a79f572
--- /dev/null
+++ b/dev-python/empy/Manifest
@@ -0,0 +1,2 @@
+DIST empy-3.3.2.tar.gz 138168 SHA256 99f016af2770c48ab57a65df7aae251360dc69a1514c15851458a71d4ddfea9c SHA512 d9098823bbb26e4447aae9042e389e000f893615117512f9b786eedbc6875dee6b7f6be50021f68a4bd6e200b364852206b36bff5c48ae1754c8f0d49682d5f2 WHIRLPOOL 575c5f3db72e404ffc3f5ff74a6bab5636bcd33b54c09c15d2d5a8e8f9bef769356ec05da13d5bd23a1c64053c5978e5138f4266d7b4cedd977b56c109912944
+DIST empy-3.3.tar.gz 137144 SHA256 c625436d03cff8adbbade639d14a2df9bc4c4de99ec3a821ad4d6eeb66ade805 SHA512 36304577839f5e6b2fb9bb2c2d72880e1f16886b2afadbcb38fd31a85620bb0369e837b8a1d74eab09a074bfe1f7be199b38842673106e0d26f1d9abc53987a7 WHIRLPOOL 404db523f8ed8eaed297ab70b483eed8058c978ce025a35ceab70fa503fc1eefae15c8da9924cba6331a0f57a4c19f8c33cf93277614ae328ed8ad280fe62192
diff --git a/dev-python/empy/empy-3.3-r1.ebuild b/dev-python/empy/empy-3.3-r1.ebuild
new file mode 100644
index 00000000000..f5833ad4eaf
--- /dev/null
+++ b/dev-python/empy/empy-3.3-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A powerful and robust templating system for Python"
+HOMEPAGE="http://www.alcyone.com/software/empy/"
+SRC_URI="http://www.alcyone.com/software/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm ia64 ppc x86"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND=""
+
+python_prepare_all() {
+ sed -e "s:/usr/local/bin/python:/usr/bin/python:g" -i em.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" em.py sample.em | diff sample.bench -
+ if [[ ${PIPESTATUS[0]} -ne 0 || ${PIPESTATUS[1]} -ne 0 ]]; then
+ die "Testing failed with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc; then
+ dodir /usr/share/doc/"${PF}"/examples
+ insinto /usr/share/doc/"${PF}"/examples
+ doins sample.em sample.bench
+ #3.3 has the html in this funny place. Fix in later version:
+ dohtml doc/home/max/projects/empy/doc/em/*
+ dohtml doc/home/max/projects/empy/doc/em.html
+ dohtml doc/index.html
+ fi
+}
diff --git a/dev-python/empy/empy-3.3.2.ebuild b/dev-python/empy/empy-3.3.2.ebuild
new file mode 100644
index 00000000000..62e123ea354
--- /dev/null
+++ b/dev-python/empy/empy-3.3.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A powerful and robust templating system for Python"
+HOMEPAGE="http://www.alcyone.com/software/empy/"
+SRC_URI="http://www.alcyone.com/software/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~x86"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" em.py sample.em | diff sample.bench -
+ if [[ ${PIPESTATUS[0]} -ne 0 || ${PIPESTATUS[1]} -ne 0 ]]; then
+ die "Testing failed with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc; then
+ dodir /usr/share/doc/"${PF}"/examples
+ insinto /usr/share/doc/"${PF}"/examples
+ doins sample.em sample.bench
+ #3.3 has the html in this funny place. Fix in later version:
+ dohtml doc/home/max/projects/empy/doc/em/*
+ dohtml doc/home/max/projects/empy/doc/em.html
+ dohtml doc/index.html
+ fi
+}
diff --git a/dev-python/empy/metadata.xml b/dev-python/empy/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/empy/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/enable/Manifest b/dev-python/enable/Manifest
new file mode 100644
index 00000000000..8be035dcb02
--- /dev/null
+++ b/dev-python/enable/Manifest
@@ -0,0 +1 @@
+DIST enable-4.4.1.tar.gz 2507048 SHA256 6bdba2754410b89d6c0531482a20b930c2a3965d843f374eda7e1e1902a03bdb SHA512 72c879f19e26a4311b900cb4665969b9f806ce47b23c214a25e3ec308cc5300b6d71084a793215b05302fbeba09e13a4561e661c3bddb700d529bd31cfeb4dff WHIRLPOOL be172d97a979270b3a355436a323f72e00eb1fe1544cfd73091f6d56eded44b463198c48bbb8dbabc06e9a417cf24fdd898eecae316376cd1b9845cd4af03d02
diff --git a/dev-python/enable/enable-4.4.1.ebuild b/dev-python/enable/enable-4.4.1.ebuild
new file mode 100644
index 00000000000..7987e1a87db
--- /dev/null
+++ b/dev-python/enable/enable-4.4.1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx flag-o-matic
+
+DESCRIPTION="Enthought Tool Suite: Drawing and interaction packages"
+HOMEPAGE="http://code.enthought.com/projects/enable/ http://pypi.python.org/pypi/enable"
+SRC_URI="https://github.com/enthought/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/reportlab[${PYTHON_USEDEP}]
+ >=dev-python/traitsui-4[${PYTHON_USEDEP}]
+ >=media-libs/freetype-2
+ virtual/opengl
+ virtual/glu
+ x11-libs/libX11"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-lang/swig:0
+ dev-python/cython[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ )"
+
+python_prepare_all() {
+ append-cflags -fno-strict-aliasing
+
+ sed -e 's:html_favicon = "et.ico":html_favicon = "_static/et.ico":' \
+ -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ # https://github.com/enthought/enable/issues/158
+ PYTHONPATH=.:kiva \
+ VIRTUALX_COMMAND="nosetests" virtualmake
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/enable/files/enable-3.3.0-nofreetype.patch b/dev-python/enable/files/enable-3.3.0-nofreetype.patch
new file mode 100644
index 00000000000..56000986dff
--- /dev/null
+++ b/dev-python/enable/files/enable-3.3.0-nofreetype.patch
@@ -0,0 +1,127 @@
+--- Enable-3.3.0.orig/enthought/kiva/agg/setup.py 2010-02-25 13:15:07.000000000 -0500
++++ Enable-3.3.0/enthought/kiva/agg/setup.py 2010-03-21 14:55:37.000000000 -0500
+@@ -4,59 +4,6 @@
+ import re
+ import platform
+
+-freetype2_sources =['autofit/autofit.c',
+- 'base/ftbase.c','base/ftsystem.c','base/ftinit.c',
+- 'base/ftglyph.c','base/ftmm.c','base/ftbdf.c',
+- 'base/ftbbox.c','base/ftdebug.c','base/ftxf86.c',
+- 'base/fttype1.c',
+- 'bdf/bdf.c',
+- 'cff/cff.c',
+- 'cid/type1cid.c',
+- 'lzw/ftlzw.c',
+- 'pcf/pcf.c','pfr/pfr.c',
+- 'psaux/psaux.c',
+- 'pshinter/pshinter.c',
+- 'psnames/psnames.c',
+- 'raster/raster.c',
+- 'sfnt/sfnt.c',
+- 'smooth/smooth.c',
+- 'truetype/truetype.c',
+- 'type1/type1.c',
+- 'type42/type42.c',
+- 'winfonts/winfnt.c',
+- 'gzip/ftgzip.c',
+- 'base/ftmac.c',
+- ]
+-
+-freetype2_dirs = [
+- 'autofit',
+- 'base',
+- 'bdf',
+- 'cache',
+- 'cff',
+- 'cid',
+- 'gxvalid',
+- 'gzip',
+- 'lzw',
+- 'otvalid',
+- 'pcf',
+- 'pfr',
+- 'psaux',
+- 'pshinter',
+- 'psnames',
+- 'raster',
+- 'sfnt',
+- 'smooth',
+- 'tools',
+- 'truetype',
+- 'type1',
+- 'type42',
+- 'winfonts',
+- 'gzip'
+- ]
+-
+-
+-
+ def configuration(parent_package='',top_path=None):
+ from numpy.distutils.misc_util import Configuration
+ from numpy.distutils.system_info import dict_append, get_info
+@@ -85,45 +32,11 @@
+ plat = 'x11' # use with gtk2, it's slow but reliable
+ #plat = 'gdkpixbuf2'
+
+-
+- #-------------------------------------------------------------------------
+- # Add the freetype library (agg 2.4 links against this)
+- #-------------------------------------------------------------------------
+-
+- prefix = config.paths('freetype2/src')[0]
+- freetype_lib = 'freetype2_src'
+-
+- def get_ft2_sources((lib_name, build_info), build_dir):
+- sources = [prefix + "/" + s for s in freetype2_sources]
+- if sys.platform=='darwin':
+- return sources[:]
+- return sources[:-1]
+-
+- ft2_incl_dirs = ['freetype2/src/' + s for s in freetype2_dirs] \
+- + ['freetype2/include', 'freetype2/src']
+- ft2_incl_dirs = config.paths(*ft2_incl_dirs)
+- if sys.platform == 'darwin':
+- ft2_incl_dirs.append("/Developer/Headers/FlatCarbon")
+-
+- config.add_library(freetype_lib,
+- sources = [get_ft2_sources],
+- include_dirs = ft2_incl_dirs,
+-
+- # This macro was introduced in Freetype 2.2; if it is
+- # not defined, then the ftheader.h file (one of the
+- # primary headers) won't pull in any additional internal
+- # Freetype headers, and the library will mysteriously
+- # fail to build.
+- macros = [("FT2_BUILD_LIBRARY", None)],
+-
+- depends = ['freetype2'],
+- )
+-
+ #-------------------------------------------------------------------------
+ # Add the Agg sources
+ #-------------------------------------------------------------------------
+
+- agg_include_dirs = [agg_dir+'/include',agg_dir+'/font_freetype'] + ft2_incl_dirs
++ agg_include_dirs = [agg_dir+'/include',agg_dir+'/font_freetype'] + ["/usr/include/freetype2/"]
+ agg_sources = [agg_dir+'/src/*.cpp',
+ agg_dir+'/font_freetype/*.cpp']
+ config.add_library(agg_lib,
+@@ -137,7 +50,7 @@
+ if sys.platform == 'darwin':
+ define_macros = [('__DARWIN__', None)]
+ macros = [('__DARWIN__', None)]
+- extra_link_args = ['-framework', 'Carbon']
++ extra_link_args = ['-framework', 'Carbon', '-Wl,-search_paths_first']
+ else:
+ define_macros = []
+ macros = []
+@@ -191,7 +104,7 @@
+
+ build_info = {}
+ kiva_lib = 'kiva_src'
+- build_libraries = [kiva_lib, agg_lib, freetype_lib]
++ build_libraries = [kiva_lib, agg_lib, "freetype"]
+ if sys.platform == "win32":
+ build_libraries += ["opengl32", "glu32"]
+ elif sys.platform == "darwin":
diff --git a/dev-python/enable/files/enable-4-rogue-tests.patch b/dev-python/enable/files/enable-4-rogue-tests.patch
new file mode 100644
index 00000000000..f08f7b00ce3
--- /dev/null
+++ b/dev-python/enable/files/enable-4-rogue-tests.patch
@@ -0,0 +1,47 @@
+diff -ur enable-4.3.0.orig/enable/savage/svg/tests/test_document.py enable-4.3.0/enable/savage/svg/tests/test_document.py
+--- enable/savage/svg/tests/test_document.py 2013-03-28 21:58:28.000000000 +0800
++++ enable/savage/svg/tests/test_document.py 2013-05-14 21:23:18.641569707 +0800
+@@ -63,6 +63,7 @@
+ 0
+ )
+
++ @unittest.skip("This tests accesses the internet")
+ def testURLFallback(self):
+ self.document.state["fill"] = "url(http://google.com) red"
+ self.assertEqual(
+diff -ur enable-4.3.0.orig/enable/tests/kiva_graphics_context_test_case.py enable-4.3.0/enable/tests/kiva_graphics_context_test_case.py
+--- enable/tests/kiva_graphics_context_test_case.py 2013-03-28 21:58:28.000000000 +0800
++++ enable/tests/kiva_graphics_context_test_case.py 2013-05-14 21:24:53.897573114 +0800
+@@ -1,4 +1,3 @@
+-
+ import numpy as np
+ import unittest
+
+@@ -8,6 +7,7 @@
+ class TestGCErrors(unittest.TestCase):
+ """Test some cases where a ValueError should be raised."""
+
++ @unittest.expectedFailure
+ def test_bad_image_size(self):
+ arr = np.array([[1, 2], [3, 4]], dtype=np.uint8)
+ gc = GraphicsContext((50, 50))
+diff -ur enable-4.3.0.orig/kiva/quartz/__init__.py enable-4.3.0/kiva/quartz/__init__.py
+--- kiva/quartz/__init__.py 2013-03-28 21:58:28.000000000 +0800
++++ kiva/quartz/__init__.py 2013-05-14 21:32:10.473588730 +0800
+@@ -2,16 +2,3 @@
+ # :Copyright: 2004, Enthought, Inc.
+ # :License: BSD Style
+
+-from mac_context import get_mac_context
+-
+-
+-def get_macport(dc):
+- """
+- Returns the Port or the CGContext of a wxDC (or child class) instance.
+- """
+- if 'GetCGContext' in dir(dc):
+- ptr = dc.GetCGContext()
+- return int(ptr)
+- else:
+- from macport import get_macport as _get_macport
+- return _get_macport(str(dc.this))
diff --git a/dev-python/enable/metadata.xml b/dev-python/enable/metadata.xml
new file mode 100644
index 00000000000..85360f54f06
--- /dev/null
+++ b/dev-python/enable/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The Enable project from the Enthought Tool Suite provides two
+ related multi-platform packages for drawing GUI objects:
+ * Enable: An object drawing library that supports containment and
+ event notification.
+ * Kiva: A multi-platform DisplayPDF vector drawing engine.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">enthought/enable</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/enaml/Manifest b/dev-python/enaml/Manifest
new file mode 100644
index 00000000000..480e0f8de1d
--- /dev/null
+++ b/dev-python/enaml/Manifest
@@ -0,0 +1,2 @@
+DIST enaml-0.6.8.tar.gz 4550240 SHA256 e0f3f5775bfd471b9ca748a547cde1b9b129e0e43f1b6adbcde6fcdcbbb18a9f SHA512 8942ae1f44aee97acc1813e684534ce982fcc48090a9295e95c56a8bbc2063a94c2561ff0752cb5ff9f1f08b7ebaa44bb3b16ea78cbb0821efdcb56f3cf72446 WHIRLPOOL d1d912cb62f3b33c848d89ed9e8f2bb4e03d5f9732903f7bd8180ed58cbf80993600b629e7753909c4d599db74d1d369a59b5dc568e2cb46773e579914e213bc
+DIST enaml-0.9.8.tar.gz 1455642 SHA256 c646f12dc7928555f2f24a10706c0d668b11a5e63e4b878dcb267247bf22a1d5 SHA512 e9b88d1fbb9e82564d3a865f74685b1b1f8b8918e29dd4d7ce7d6b4b2e6d386c6388e99f9bf0adb02fb9277a57519f8502a33bd6e0548fd1a4d52d0a4b33cf02 WHIRLPOOL f9c6874f7fec569acdbf74c5cdd24c6189506980ca65028c3ea53ed076338a5edea6b19d018d19b8662385b058d9c96c7e36239a1f86d8c1cdcada559f49bfd8
diff --git a/dev-python/enaml/enaml-0.6.8-r1.ebuild b/dev-python/enaml/enaml-0.6.8-r1.ebuild
new file mode 100644
index 00000000000..da0b0835d02
--- /dev/null
+++ b/dev-python/enaml/enaml-0.6.8-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: framework for writing declarative interfaces"
+HOMEPAGE="http://code.enthought.com/projects/enaml/ http://pypi.python.org/pypi/enaml"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/casuarius[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+ dev-python/traits[${PYTHON_USEDEP}]
+ || (
+ dev-python/wxpython:*[${PYTHON_USEDEP}] \
+ dev-python/PyQt4[${PYTHON_USEDEP}] \
+ dev-python/pyside[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/wxpython[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # crash doc and gone upstream (> 0.2.0)
+ sed -i -e '/enthought.debug.api/d' enamldoc/sphinx_ext.py || die
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ export ETS_TOOLKIT=qt4
+ export QT_API=pyside
+ VIRTUALX_COMMAND="nosetests -v" virtualmake
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/enaml/enaml-0.9.8.ebuild b/dev-python/enaml/enaml-0.9.8.ebuild
new file mode 100644
index 00000000000..8caf0e45412
--- /dev/null
+++ b/dev-python/enaml/enaml-0.9.8.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx flag-o-matic
+
+DESCRIPTION="Enthought Tool Suite: framework for writing declarative interfaces"
+HOMEPAGE="http://code.enthought.com/projects/enaml/ http://pypi.python.org/pypi/enaml"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/atom-0.3.8[${PYTHON_USEDEP}]
+ >=dev-python/kiwisolver-0.1.2[${PYTHON_USEDEP}]
+ >=dev-python/ply-3.4[${PYTHON_USEDEP}]
+ || (
+ dev-python/wxpython:*[${PYTHON_USEDEP}] \
+ dev-python/PyQt4[${PYTHON_USEDEP}] \
+ dev-python/pyside[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/wxpython[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+# The testsuite antagonises gentoo conventions far beyond what can currently be dealt with
+# It also passes all once run
+RESTRICT="test"
+
+# Doc build now fails, missing required folder, use doc removed for now
+# https://github.com/nucleic/enaml/issues/170
+#python_compile_all() {
+# use doc && emake -C docs html
+#}
+
+python_prepare_all() {
+ append-flags -fno-strict-aliasing
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ export ETS_TOOLKIT=qt4
+ export QT_API=pyside
+ VIRTUALX_COMMAND="nosetests -v" virtualmake
+}
+
+python_install_all() {
+# use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/enaml/metadata.xml b/dev-python/enaml/metadata.xml
new file mode 100644
index 00000000000..f19f96398f5
--- /dev/null
+++ b/dev-python/enaml/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Enaml is a framework for writing declarative user interfaces in
+ Python. It provides a Yaml-ish/Pythonic syntax language for
+ declaring a ui that binds and reacts to changes in the user's
+ models. Code can freely call back and forth between Python and Enaml.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">enaml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/encore/Manifest b/dev-python/encore/Manifest
new file mode 100644
index 00000000000..fb78dc54656
--- /dev/null
+++ b/dev-python/encore/Manifest
@@ -0,0 +1,3 @@
+DIST encore-0.3.tar.gz 104057 SHA256 994a564140327a2caf9147407d42c249e1b10ccce76b506bbe3016fd76c14261 SHA512 d5ba216cc7cb3181b20d7cf4362def8a52f7d940380791c863b7e6b9f8c35f8c6eee1d2d3c9dd81fa593db92ccb22e6980e4e3582ce0be029a4511b11b9fe16b WHIRLPOOL 3a0e20b09dd4e47eb2ec015cc89c9123804a8c6ed9d8a31a4c60c913099741047c92663d34698835dc40d3d75055fababf789231e348139be35c1923e2403ea3
+DIST encore-0.4.0.tar.gz 51877 SHA256 22afbd51fc72dc0139c46bf02752e3213573fc54bdf764656dc6cea7d8846c2c SHA512 5a2bed4d47225e2fdd0f4c914e18c1fc4b8b4782c4be5d62b91c7ca7ae8b5a19598ebeeddc5d6a2531217b011021b3dd14b846f23f338447ce922de628529e4c WHIRLPOOL 1b124fad326a58ff65b85fcb54280ddc51dc14805f78ed5b6f9a4f10b21848ffac3a3e62d4ee0bdd53ee52aae4a7637cdf2d79b6b55905e807aada81bcc16169
+DIST encore-0.5.1.tar.gz 71248 SHA256 0e90fd798e3b274b7f41e2989f27a22b41ec331976753a804f27f5781012c3b2 SHA512 410d37bd326ac5b8433dd5896c3e167387e83380cc55efa7405b4c3f918108cee60e6d3c78c3ff41aa2b1f46939cb3c4e2e495b9f77a9c2483a77e1973bd2d17 WHIRLPOOL 3ed37349e3ad5db6979472b2808a11b7f43cc7e1074265dfb2ed2480b2890dca64af86e66bad9578184915f4e24577ab1715defeaba8e6610e33292fdab6fd16
diff --git a/dev-python/encore/encore-0.3.ebuild b/dev-python/encore/encore-0.3.ebuild
new file mode 100644
index 00000000000..acc2303ff36
--- /dev/null
+++ b/dev-python/encore/encore-0.3.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Enthought Tool Suite: collection of core-level utility modules"
+HOMEPAGE="https://github.com/enthought/encore"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( dataflow.txt )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ if [[ ${EPYTHON} == python2.6 ]]; then
+ ewarn "Tests disabled for ${EPYTHON}"
+ return 0
+ fi
+ nosetests || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ use doc && dohtml -r docs/build/html/*
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/encore/encore-0.4.0.ebuild b/dev-python/encore/encore-0.4.0.ebuild
new file mode 100644
index 00000000000..906ff33c11a
--- /dev/null
+++ b/dev-python/encore/encore-0.4.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Enthought Tool Suite: collection of core-level utility modules"
+HOMEPAGE="https://github.com/enthought/encore"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ if [[ ${EPYTHON} == python2.6 ]]; then
+ ewarn "Tests disabled for ${EPYTHON}"
+ return 0
+ fi
+ nosetests || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ use doc && dohtml -r docs/build/html/*
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/encore/encore-0.5.1.ebuild b/dev-python/encore/encore-0.5.1.ebuild
new file mode 100644
index 00000000000..bc0fe5be292
--- /dev/null
+++ b/dev-python/encore/encore-0.5.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Enthought Tool Suite: collection of core-level utility modules"
+HOMEPAGE="https://github.com/enthought/encore"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="virtual/python-futures[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/${P}-pypy-tests.patch )
+
+python_test() {
+ "${PYTHON}" -m unittest discover ./${PN}/events || die
+ # PYTHONPATH goes astray & '-m unittest discover' loses its way. nose works
+ # https://github.com/enthought/encore/issues/84
+ # tests for storage simply aren't written to cater to pypy
+ if [[ "${EPYTHON}" == python2.7 ]]; then
+ nosetests ./${PN}/storage || die
+ fi
+}
diff --git a/dev-python/encore/files/encore-0.5.1-pypy-tests.patch b/dev-python/encore/files/encore-0.5.1-pypy-tests.patch
new file mode 100644
index 00000000000..c7673efa7c4
--- /dev/null
+++ b/dev-python/encore/files/encore-0.5.1-pypy-tests.patch
@@ -0,0 +1,36 @@
+diff -ur encore-0.5.1.orig/encore/events/tests/test_event_manager.py encore-0.5.1/encore/events/tests/test_event_manager.py
+--- encore/events/tests/test_event_manager.py 2014-01-06 22:40:24.000000000 +0800
++++ encore/events/tests/test_event_manager.py 2014-05-05 17:56:16.606026933 +0800
+@@ -10,7 +10,7 @@
+ import mock
+ import weakref
+ import threading
+-
++import sys
+ # Local imports.
+ from encore.events.event_manager import EventManager, BaseEvent
+ from encore.events.api import (get_event_manager, set_event_manager,
+@@ -429,6 +429,7 @@
+ self.evt_mgr.emit(BaseEvent())
+ self.assertEqual(data, [1])
+
++ @unittest.skipIf(hasattr(sys, 'pypy_version_info'), "test written for py2 garbage collection methods")
+ def test_method_weakref(self):
+ """ Test if methods do not prevent garbage collection of objects.
+ """
+@@ -464,6 +465,7 @@
+ self.evt_mgr.emit(obj)
+ self.assertEqual(data, [1, 2])
+
++ @unittest.skipIf(hasattr(sys, 'pypy_version_info'), "test written for py2 garbage collection methods")
+ def test_method_collect(self):
+ """ Test if object garbage collection disconnects listener method.
+ """
+@@ -481,6 +483,7 @@
+ self.assertEqual(data, [])
+ self.assertEqual(len(list(self.evt_mgr.get_listeners(BaseEvent))), 0)
+
++ @unittest.skipIf(hasattr(sys, 'pypy_version_info'), "test written for py2 garbage collection methods")
+ def test_method_disconnect(self):
+ """ Test if method disconnect works.
+ """
diff --git a/dev-python/encore/metadata.xml b/dev-python/encore/metadata.xml
new file mode 100644
index 00000000000..c1fb9cafc0f
--- /dev/null
+++ b/dev-python/encore/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ This package consists of a collection of core utility packages
+ useful for building Python applications. This package is intended to
+ be at the bottom of the software stack and have zero required
+ external dependencies aside from the Python Standard Library.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">encore</remote-id>
+ <remote-id type="github">enthought/encore</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/enum34/Manifest b/dev-python/enum34/Manifest
new file mode 100644
index 00000000000..af0a5a33488
--- /dev/null
+++ b/dev-python/enum34/Manifest
@@ -0,0 +1,2 @@
+DIST enum34-1.0.4.tar.gz 32944 SHA256 d3c19f26a6a34629c18c775f59dfc5dd595764c722b57a2da56ebfb69b94e447 SHA512 21b91f1d0e15cc909e733473f603077eff7222c90da84b0a5f2db921ba41ac996b9237cc8adf1d07913b7eaf8f8e70ac6955abbb191f2e7cc54966710a1c96a9 WHIRLPOOL 178d1d5a9ec4e5a7a467e31c9b28e1f799e593e36a0c9a888f64ec86051277cb1c50ae01ed81c95cd3f7ae1e7f287dda9b4049c7e1977fcd427711fcf3990792
+DIST enum34-1.0.tar.gz 32331 SHA256 384b593703b057e0b19d90ff62844b1c8796da2e6bd9957d6ce9119bdeade635 SHA512 8eefcb42449927e419c87016d534b1fb335a85daa49c7ae3cc4549bc92dbb6d1a02158542a8cba1fbff4bbad2c4830c6f465b13e8d5ec6d2aae5752efecdf1d3 WHIRLPOOL 28b02767afe416404ba9d0c4db972c869383a72cfc6cb1a75f93b01e2636bac139743f5acb2dbe06083c655a1854cfb8a3c7f1ce1eba340a38d457e3e71e63b3
diff --git a/dev-python/enum34/enum34-1.0.4.ebuild b/dev-python/enum34/enum34-1.0.4.ebuild
new file mode 100644
index 00000000000..34ff1fa0226
--- /dev/null
+++ b/dev-python/enum34/enum34-1.0.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy pypy3 ) # Do NOT add python3_4—see DESCRIPTION
+
+inherit distutils-r1
+
+DESCRIPTION="Python 3.4 Enum backported"
+HOMEPAGE="https://pypi.python.org/pypi/enum34"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" enum/test_enum.py || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local DOCS=( enum/doc/. enum/README enum/LICENSE )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/enum34/enum34-1.0.ebuild b/dev-python/enum34/enum34-1.0.ebuild
new file mode 100644
index 00000000000..f020af2b7bb
--- /dev/null
+++ b/dev-python/enum34/enum34-1.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python 3.4 Enum backported"
+HOMEPAGE="https://pypi.python.org/pypi/enum34"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm64 ia64 m68k ~mips s390 sh x86"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" enum/test_enum.py || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local DOCS=( enum/doc/. enum/README enum/LICENSE )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/enum34/metadata.xml b/dev-python/enum34/metadata.xml
new file mode 100644
index 00000000000..ffc7ca79d5d
--- /dev/null
+++ b/dev-python/enum34/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">enum34</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/envisage/Manifest b/dev-python/envisage/Manifest
new file mode 100644
index 00000000000..7ce4072866a
--- /dev/null
+++ b/dev-python/envisage/Manifest
@@ -0,0 +1 @@
+DIST envisage-4.4.0.tar.gz 192529 SHA256 ce9274a1afef8e4b660344eda2b32c4aa23fa35aa61dadc33d5a85eb284270f6 SHA512 7cc8fa82ea9bfd53f1a6cc90551d97972dd4b7abe9476515ea617ab6a32d7f2f65b2815ed934633f96b0f1445b763b9350e5d0e37ed99768c9a2ca32e588f91f WHIRLPOOL a108b28877821fe7acc0841726f7357c75eeb6b2734fcec12fd7c700b5fff41b9c0bb84b47be95f0776529fb70b58481b6a2b1ec1ad70763799e58ac152286db
diff --git a/dev-python/envisage/envisage-4.4.0.ebuild b/dev-python/envisage/envisage-4.4.0.ebuild
new file mode 100644
index 00000000000..4bed58bfcd0
--- /dev/null
+++ b/dev-python/envisage/envisage-4.4.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# py2.6 fails testsuite horribly
+PYTHON_COMPAT=python2_7
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Extensible application framework"
+HOMEPAGE="http://code.enthought.com/projects/envisage"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=">=dev-python/traits-4[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/traits-4[${PYTHON_USEDEP}]
+ dev-python/apptools[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ )"
+
+# tests are buggy version after version
+RESTRICT=test
+
+python_test() {
+ VIRTUALX_COMMAND="nosetests" virtualmake
+}
diff --git a/dev-python/envisage/metadata.xml b/dev-python/envisage/metadata.xml
new file mode 100644
index 00000000000..9344c917f99
--- /dev/null
+++ b/dev-python/envisage/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang="en">
+ Envisage is a Python-based framework for building extensible
+ applications, that is, applications whose functionality can be
+ extended by adding "plug-ins". Envisage provides a standard
+ mechanism for features to be added to an application, whether by the
+ original developer or by someone else. In fact, when you build an
+ application using Envisage, the entire application consists
+ primarily of plug-ins. In this respect, it is similar to the Eclipse
+ and Netbeans frameworks for Java applications.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">envisage</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/envoy/Manifest b/dev-python/envoy/Manifest
new file mode 100644
index 00000000000..867df262936
--- /dev/null
+++ b/dev-python/envoy/Manifest
@@ -0,0 +1 @@
+DIST envoy-0.0.3.tar.gz 4190 SHA256 22b02009cfda2cf2cdb94a75a15ac3fd910aea8685c53e8e03715c7e9d8e8bde SHA512 3af97b95d61f12ef0d8dc71234023a69123667ef26feec9342bda4c3307629728be589be3ac7d118f6cf17aeb6b5ee91c23f37f84c411f117f5e76a5b024a967 WHIRLPOOL fca1eb6de99d90c8c94598bf5524f8ff5e41ab96f5b351e8bcd20cfc729fc8a4f360d744d25f5af4d80dd6b5ad3624a5fb041041268c4ebcf7d5154ccf62db56
diff --git a/dev-python/envoy/envoy-0.0.3.ebuild b/dev-python/envoy/envoy-0.0.3.ebuild
new file mode 100644
index 00000000000..0347ba0f991
--- /dev/null
+++ b/dev-python/envoy/envoy-0.0.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple API for running external processes"
+HOMEPAGE="https://github.com/kennethreitz/envoy http://pypi.python.org/pypi/envoy"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ # and it fails almost all;https://github.com/kennethreitz/envoy/issues/58
+ "${PYTHON}" test_envoy.py
+}
diff --git a/dev-python/envoy/files/test_envoy.py b/dev-python/envoy/files/test_envoy.py
new file mode 100644
index 00000000000..8c83a0816a2
--- /dev/null
+++ b/dev-python/envoy/files/test_envoy.py
@@ -0,0 +1,52 @@
+import unittest
+import envoy
+import time
+
+class SimpleTest(unittest.TestCase):
+
+ def test_input(self):
+ r = envoy.run("sed s/i/I/g", "Hi")
+ self.assertEqual(r.std_out.rstrip(), "HI")
+ self.assertEqual(r.status_code, 0)
+
+ def test_pipe(self):
+ r = envoy.run("echo -n 'hi'| tr [:lower:] [:upper:]")
+ self.assertEqual(r.std_out, "HI")
+ self.assertEqual(r.status_code, 0)
+
+ def test_timeout(self):
+ r = envoy.run('yes | head', timeout=1)
+ self.assertEqual(r.std_out, 'y\ny\ny\ny\ny\ny\ny\ny\ny\ny\n')
+ self.assertEqual(r.status_code, 0)
+
+ # THIS TEST FAILS BECAUSE expand_args DOESN'T HANDLE QUOTES PROPERLY
+ def test_quoted_args(self):
+ sentinel = 'quoted_args' * 3
+ r = envoy.run("python -c 'print \"%s\"'" % sentinel)
+ self.assertEqual(r.std_out.rstrip(), sentinel)
+ self.assertEqual(r.status_code, 0)
+
+class ConnectedCommandTests(unittest.TestCase):
+
+ def test_status_code_none(self):
+ c = envoy.connect("sleep 5")
+ self.assertEqual(c.status_code, None)
+
+ def test_status_code_success(self):
+ c = envoy.connect("sleep 1")
+ time.sleep(2)
+ self.assertEqual(c.status_code, 0)
+
+ def test_status_code_failure(self):
+ c = envoy.connect("sleeep 1")
+ self.assertEqual(c.status_code, 127)
+
+ def test_input(self):
+ test_string = 'asdfQWER'
+ r = envoy.connect("cat | tr [:lower:] [:upper:]")
+ r.send(test_string)
+ self.assertEqual(r.std_out, test_string.upper())
+ self.assertEqual(r.status_code, 0)
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/dev-python/envoy/metadata.xml b/dev-python/envoy/metadata.xml
new file mode 100644
index 00000000000..5b4829404b8
--- /dev/null
+++ b/dev-python/envoy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">envoy</remote-id>
+ <remote-id type="github">kennethreitz/envoy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/enzyme/Manifest b/dev-python/enzyme/Manifest
new file mode 100644
index 00000000000..a5f026ad479
--- /dev/null
+++ b/dev-python/enzyme/Manifest
@@ -0,0 +1,2 @@
+DIST enzyme-0.4.1.tar.gz 47953 SHA256 f2167fa97c24d1103a94d4bf4eb20f00ca76c38a37499821049253b2059c62bb SHA512 62a85c076a7eb320249a507dcc9dd26572e3a9b9643e0a960ed114a80c75213e6e5028a726fbcdd0c2c46c53af980a69828a54a66af9a17af3210273376395b3 WHIRLPOOL 5055306ce3747b1aa2f6a9bf5ac85c705426e1eaa1e946780f626cbda2cf26d508baf9f6781faeb62d09266df00e6b2c7942493d9139e82eda502cc175cb711c
+DIST matroska_test_w1_1.zip 184550509 SHA256 d86f96e165e695e6cf5324ebca184f2df723872f02965b565820d265b53004eb SHA512 f170a8e83dab15228f992b3692330163da2402b8e436c7fa195ac1ecc06cf1eaf1a48d8c99a85c031122c158c2d4006023aae75d5b7805385ba25a6d601cb78f WHIRLPOOL 3d0a16871fc7df0a3ef3f34f7c496eff188400a9796a2ad66667112ef0de7deecf025196898bd24ea395f8c44e75156a8b8c09d40a92e98d833d995473eefa9e
diff --git a/dev-python/enzyme/enzyme-0.4.1.ebuild b/dev-python/enzyme/enzyme-0.4.1.ebuild
new file mode 100644
index 00000000000..0e9b9962fbe
--- /dev/null
+++ b/dev-python/enzyme/enzyme-0.4.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python video metadata parser"
+HOMEPAGE="https://github.com/Diaoul/enzyme https://pypi.python.org/pypi/enzyme"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ test? ( http://downloads.sourceforge.net/project/matroska/test_files/matroska_test_w1_1.zip )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ if use test; then
+ mkdir enzyme/tests/test_{parsers,mkv} || die
+ ln -s "${WORKDIR}"/test* enzyme/tests/test_parsers/ || die
+ ln -s "${WORKDIR}"/test* enzyme/tests/test_mkv/ || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/enzyme/enzyme-9999.ebuild b/dev-python/enzyme/enzyme-9999.ebuild
new file mode 100644
index 00000000000..51ac2e14943
--- /dev/null
+++ b/dev-python/enzyme/enzyme-9999.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+EGIT_REPO_URI="https://github.com/Diaoul/enzyme.git"
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="Python video metadata parser"
+HOMEPAGE="https://github.com/Diaoul/enzyme https://pypi.python.org/pypi/enzyme"
+SRC_URI="test? ( http://downloads.sourceforge.net/project/matroska/test_files/matroska_test_w1_1.zip )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ if use test; then
+ mkdir enzyme/tests/test_{parsers,mkv} || die
+ ln -s "${WORKDIR}"/test* enzyme/tests/test_parsers/ || die
+ ln -s "${WORKDIR}"/test* enzyme/tests/test_mkv/ || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/enzyme/metadata.xml b/dev-python/enzyme/metadata.xml
new file mode 100644
index 00000000000..83efd6259c5
--- /dev/null
+++ b/dev-python/enzyme/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>nikoli@gmx.us</email>
+ <name>Nikoli</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">enzyme</remote-id>
+ <remote-id type="github">Diaoul/enzyme</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/epsilon/Manifest b/dev-python/epsilon/Manifest
new file mode 100644
index 00000000000..f78f3c15e9b
--- /dev/null
+++ b/dev-python/epsilon/Manifest
@@ -0,0 +1,2 @@
+DIST Epsilon-0.6.0.tar.gz 96243 SHA256 2be3a6ef877c4e17ca9dadd6b484fe31bdf16c20b949ec6a8b15677e08c512fa SHA512 0ce7ba2eb86811dc50a0e86b9f3d85be1a4f930f86659c2381a1d80455e1e86362b8719c92ae2ad951a34264e5d0649ec5de96f1179734c7fab6c3abc6fb037b WHIRLPOOL 6aa363b44a42f29ec836cf46b2fdfe3bb57541a9fe282b57ea888f4906b9c438c9eb99d5a0876cb11108b7337a0691c45810a3e44579023f0b660e8752952120
+DIST Epsilon-0.7.0.tar.gz 81218 SHA256 81419d50b17a20efd75440d43e4b07fe3c2a5e6d619f39318dab9031a0680032 SHA512 d1927ca431df3233a94296ca9e1f5dd70d6d61091d23f77df2222c6472d9a5f7b55c5c8dd2a75d0fead41af862c9e3a6a0ea9a31e21447459d5182f0d677d9b2 WHIRLPOOL 8cbab28e5e05b44b521c5f66494de1e2f4bee7713487cfb9d87bfcc108dc05b6534919934fd53cb1b0dc7aee633187351973b78cfdabf0584d6b294104a05a57
diff --git a/dev-python/epsilon/epsilon-0.6.0-r2.ebuild b/dev-python/epsilon/epsilon-0.6.0-r2.ebuild
new file mode 100644
index 00000000000..14d90c1870f
--- /dev/null
+++ b/dev-python/epsilon/epsilon-0.6.0-r2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1 eutils
+
+DESCRIPTION="Epsilon is a Python utilities package, most famous for its Time class"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodEpsilon http://pypi.python.org/pypi/Epsilon"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="dev-python/twisted-core[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/epsilon_plugincache_portagesandbox.patch" )
+
+# epsilon doesn't install any plugins, so override the default
+TWISTED_PLUGINS=()
+
+python_prepare_all() {
+ # Rename to avoid file-collisions
+ mv bin/benchmark bin/epsilon-benchmark
+ sed -i \
+ -e "s#bin/benchmark#bin/epsilon-benchmark#" \
+ setup.py || die "sed failed"
+
+ #These test are removed upstream
+ rm -f epsilon/test/test_sslverify.py epsilon/sslverify.py || die
+ #See bug 357157 comment 5 for Ian Delaney's explanation of this fix
+ sed -e 's:month) 2004 9:month) 2004 14:' \
+ -i epsilon/test/test_extime.py || die
+ # Release tests need DivmodCombinator.
+ rm -f epsilon/test/test_release.py* epsilon/release.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ dodoc NAME.txt NEWS.txt
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/epsilon/epsilon-0.7.0.ebuild b/dev-python/epsilon/epsilon-0.7.0.ebuild
new file mode 100644
index 00000000000..7a530fb2f27
--- /dev/null
+++ b/dev-python/epsilon/epsilon-0.7.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1 eutils
+
+DESCRIPTION="Epsilon is a Python utilities package, most famous for its Time class"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodEpsilon http://pypi.python.org/pypi/Epsilon"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/twisted-core-13.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ ${DEPEND}"
+
+PATCHES=( "${FILESDIR}/epsilon_plugincache_portagesandbox.patch" )
+
+# epsilon doesn't install any plugins, so override the default
+TWISTED_PLUGINS=()
+
+python_prepare_all() {
+ # Rename to avoid file-collisions
+ mv bin/benchmark bin/epsilon-benchmark
+ sed -i \
+ -e "s#bin/benchmark#bin/epsilon-benchmark#" \
+ setup.py || die "sed failed"
+
+ #These test are removed upstream
+ rm -f epsilon/test/test_sslverify.py epsilon/sslverify.py || die
+ #See bug 357157 comment 5 for Ian Delaney's explanation of this fix
+ sed -e 's:month) 2004 9:month) 2004 14:' \
+ -i epsilon/test/test_extime.py || die
+ # Release tests need DivmodCombinator.
+ rm -f epsilon/test/test_release.py* epsilon/release.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ dodoc NAME.txt NEWS.txt
+
+ distutils-r1_python_install_all
+}
+
+#Lets run some tests, having prepped them
+python_test() {
+ # No testrunner seems stipulated within the source; pytest and nosetests both work
+ nosetests ${PN}/test || die "testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/epsilon/files/epsilon_plugincache_portagesandbox.patch b/dev-python/epsilon/files/epsilon_plugincache_portagesandbox.patch
new file mode 100644
index 00000000000..06bd5573201
--- /dev/null
+++ b/dev-python/epsilon/files/epsilon_plugincache_portagesandbox.patch
@@ -0,0 +1,12 @@
+--- epsilon/setuphelper.py.orig 2009-02-11 08:15:39.000000000 +0100
++++ epsilon/setuphelper.py 2009-02-11 08:18:56.000000000 +0100
+@@ -21,6 +21,9 @@
+ def _regeneratePluginCache(pluginPackages):
+ print 'Regenerating cache with path: ',
+ pprint.pprint(sys.path)
++ if os.getenv("PORTAGE_PLUGINCACHE_NOOP") != None:
++ print 'Not regenerating plugin cache for portage sandbox usage.'
++ return
+ from twisted import plugin
+ for pluginModule in pluginModules([
+ p + ".plugins" for p in pluginPackages]):
diff --git a/dev-python/epsilon/metadata.xml b/dev-python/epsilon/metadata.xml
new file mode 100644
index 00000000000..326df3b5593
--- /dev/null
+++ b/dev-python/epsilon/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">A small utility package that depends on tools too recent for Twisted
+ (like datetime in python2.4) but performs generic enough functions
+ that it can be used in projects that don't want to share Divmod's
+ other projects' large footprint.</longdescription>
+ <upstream>
+ <remote-id type="pypi">Epsilon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/epydoc/Manifest b/dev-python/epydoc/Manifest
new file mode 100644
index 00000000000..cd98b569eb2
--- /dev/null
+++ b/dev-python/epydoc/Manifest
@@ -0,0 +1 @@
+DIST epydoc-3.0.1.tar.gz 1785792 SHA256 d4e5c8d90937d01b05170f592c1fa9b29e9ed0498dfe7f0eb2a3af61725b6ad1 SHA512 5c4011f0018ab956c0e1fe5fe0c1608fa2416439a60b5836a9d2d95e359428086ba403bcb5ed53e64d9d4979441ca6d537d9e5b8d6224d2202e7df3332d9ea83 WHIRLPOOL d72247342d02a71765410c8da5cfa31a17049fcb916400ec202bff81fec2246cbd93d145ba3a7f333de25de6b72a34097080d9419272656a8ec4a72eea2291cd
diff --git a/dev-python/epydoc/epydoc-3.0.1-r2.ebuild b/dev-python/epydoc/epydoc-3.0.1-r2.ebuild
new file mode 100644
index 00000000000..8c52adcb71d
--- /dev/null
+++ b/dev-python/epydoc/epydoc-3.0.1-r2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1
+
+DESCRIPTION="Tool for generating API documentation for Python modules from docstrings"
+HOMEPAGE="http://epydoc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc latex tk"
+
+DEPEND=""
+RDEPEND="dev-python/docutils[${PYTHON_USEDEP}]
+ latex? ( virtual/latex-base
+ dev-texlive/texlive-latexextra
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-docutils-0.6.patch
+ "${FILESDIR}"/${PN}-python-2.6.patch
+)
+
+python_install() {
+ distutils-r1_python_install
+
+ use tk || rm "${D}$(python_get_sitedir)"/epydoc/gui.py*
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+
+ doman man/epydoc.1
+ if use tk; then
+ doman man/epydocgui.1
+ else
+ rm -f "${ED}"usr/bin/epydocgui*
+ fi
+}
diff --git a/dev-python/epydoc/files/epydoc-docutils-0.6.patch b/dev-python/epydoc/files/epydoc-docutils-0.6.patch
new file mode 100644
index 00000000000..35f44108a1e
--- /dev/null
+++ b/dev-python/epydoc/files/epydoc-docutils-0.6.patch
@@ -0,0 +1,27 @@
+Make epydoc work with docutils-0.6.
+
+Patch created by Engelbert Gruber (grubert) and adjusted by Martin von Gagern.
+
+References:
+http://sourceforge.net/tracker/?func=detail&aid=2895197&group_id=32455&atid=405618
+http://thread.gmane.org/gmane.text.docutils.devel/4888/focus=4924
+http://bugs.gentoo.org/287546
+
+Index: epydoc-3.0.1/epydoc/markup/restructuredtext.py
+===================================================================
+--- epydoc-3.0.1.orig/epydoc/markup/restructuredtext.py
++++ epydoc-3.0.1/epydoc/markup/restructuredtext.py
+@@ -304,10 +304,11 @@ class _SummaryExtractor(NodeVisitor):
+ # Extract the first sentence.
+ for child in node:
+ if isinstance(child, docutils.nodes.Text):
+- m = self._SUMMARY_RE.match(child.data)
++ data = child.astext()
++ m = self._SUMMARY_RE.match(data)
+ if m:
+ summary_pieces.append(docutils.nodes.Text(m.group(1)))
+- other = child.data[m.end():]
++ other = data[m.end():]
+ if other and not other.isspace():
+ self.other_docs = True
+ break
diff --git a/dev-python/epydoc/files/epydoc-python-2.6.patch b/dev-python/epydoc/files/epydoc-python-2.6.patch
new file mode 100644
index 00000000000..84bb22d879c
--- /dev/null
+++ b/dev-python/epydoc/files/epydoc-python-2.6.patch
@@ -0,0 +1,60 @@
+diff -Nur epydoc-3.0.1/epydoc/docparser.py epydoc-3.0.1/epydoc/docparser.py
+--- epydoc-3.0.1/epydoc/docparser.py
++++ epydoc-3.0.1/epydoc/docparser.py
+@@ -72,6 +72,26 @@
+ from epydoc.compat import *
+
+ ######################################################################
++## Tokenizer change in 2.6
++######################################################################
++
++def comment_includes_nl():
++ """ Determine whether comments are parsed as one or two tokens... """
++ readline = iter(u'\n#\n\n'.splitlines(True)).next
++ tokens = [
++ token.tok_name[tup[0]] for tup in tokenize.generate_tokens(readline)
++ ]
++ if tokens == ['NL', 'COMMENT', 'NL', 'ENDMARKER']:
++ return True
++ elif tokens == ['NL', 'COMMENT', 'NL', 'NL', 'ENDMARKER']:
++ return False
++ raise AssertionError(
++ "Tokenizer returns unexexpected tokens: %r" % tokens
++ )
++
++comment_includes_nl = comment_includes_nl()
++
++######################################################################
+ ## Doc Parser
+ ######################################################################
+
+@@ -520,6 +540,10 @@
+ # inside that block, not outside it.
+ start_group = None
+
++ # If the comment tokens do not include the NL, every comment token
++ # sets this to True in order to swallow the next NL token unprocessed.
++ comment_nl_waiting = False
++
+ # Check if the source file declares an encoding.
+ encoding = get_module_encoding(module_doc.filename)
+
+@@ -570,7 +594,9 @@
+ # then discard them: blank lines are not allowed between a
+ # comment block and the thing it describes.
+ elif toktype == tokenize.NL:
+- if comments and not line_toks:
++ if comment_nl_waiting:
++ comment_nl_waiting = False
++ elif comments and not line_toks:
+ log.warning('Ignoring docstring comment block followed by '
+ 'a blank line in %r on line %r' %
+ (module_doc.filename, srow-1))
+@@ -578,6 +604,7 @@
+
+ # Comment token: add to comments if appropriate.
+ elif toktype == tokenize.COMMENT:
++ comment_nl_waiting = not comment_includes_nl
+ if toktext.startswith(COMMENT_DOCSTRING_MARKER):
+ comment_line = toktext[len(COMMENT_DOCSTRING_MARKER):].rstrip()
+ if comment_line.startswith(" "):
diff --git a/dev-python/epydoc/metadata.xml b/dev-python/epydoc/metadata.xml
new file mode 100644
index 00000000000..eec5b980b54
--- /dev/null
+++ b/dev-python/epydoc/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ Epydoc is a python documentation system without output similar to javadoc.
+ Epydoc uses python doc-strings, importing modules, and introsepction in
+ order to do its thing -- if your modules are not safe to import, you
+ should look for another tool. Documentation mark-up is done with restructed
+ text (reST).
+ </longdescription>
+ <longdescription lang="ja">
+ Epydocは、Javadocに似た出力をする以外はPython言語のための
+ ドキュメンテーションシステムです。Epydocはdoc-stringsを使い、
+ モジュールをインポートし、それらが自己&gt;分析したものを使います。
+ -- もしあなたが指定したモジュールがインポートするには安
+ 全でないのだとしたら、他のツールを使うべきです。ドキュメンテーション
+ の書式は再構造的文章(reST)です。
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">epydoc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/errorhandler/Manifest b/dev-python/errorhandler/Manifest
new file mode 100644
index 00000000000..38b3f945bbb
--- /dev/null
+++ b/dev-python/errorhandler/Manifest
@@ -0,0 +1 @@
+DIST errorhandler-1.1.1.tar.gz 8321 SHA256 2baa97a8a256fe72960d196bbdee4404162186f539c4d73b3f1c072db18463e9 SHA512 a2f875537103086be956becfdac25a43a646a89b404b6a7a2a243c6d2ddbc29d55948b781529d0a0fa82b163187747f3396b62ed0be98d39834de038cc4a1fd2 WHIRLPOOL dd296200b2a451ae36225122d69e215e463a777ca162ed4b98067e146080e5fa91fd4ee8a219fc0999a05461aa69c712866e57c3b31c9a19366d82ea8efdad8a
diff --git a/dev-python/errorhandler/errorhandler-1.1.1-r2.ebuild b/dev-python/errorhandler/errorhandler-1.1.1-r2.ebuild
new file mode 100644
index 00000000000..5c40874590c
--- /dev/null
+++ b/dev-python/errorhandler/errorhandler-1.1.1-r2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Logging framework handler that tracks when messages above a certain level have been logged"
+HOMEPAGE="http://pypi.python.org/pypi/errorhandler"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="
+ dev-python/pkginfo[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-test.patch
+ "${FILESDIR}"/docs.patch
+)
+
+python_prepare_all() {
+ sed -e 's:../bin/sphinx-build:/usr/bin/sphinx-build:' -i docs/Makefile || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" -c "import errorhandler.tests as et, unittest; \
+ unittest.TextTestRunner().run(et.test_suite())" \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/errorhandler/files/docs.patch b/dev-python/errorhandler/files/docs.patch
new file mode 100644
index 00000000000..10c704d6fec
--- /dev/null
+++ b/dev-python/errorhandler/files/docs.patch
@@ -0,0 +1,12 @@
+diff -ur errorhandler-1.1.1.orig/docs/conf.py errorhandler-1.1.1/docs/conf.py
+--- docs/conf.py 2009-11-07 20:08:10.000000000 +0800
++++ docs/conf.py 2013-06-07 14:05:17.321475285 +0800
+@@ -8,8 +8,6 @@
+ 'sphinx.ext.intersphinx'
+ ]
+
+-intersphinx_mapping = {'http://docs.python.org/dev': None}
+-
+ # General
+ source_suffix = '.txt'
+ master_doc = 'index'
diff --git a/dev-python/errorhandler/files/errorhandler-1.1.1-test.patch b/dev-python/errorhandler/files/errorhandler-1.1.1-test.patch
new file mode 100644
index 00000000000..126b508b992
--- /dev/null
+++ b/dev-python/errorhandler/files/errorhandler-1.1.1-test.patch
@@ -0,0 +1,9 @@
+diff -ur errorhandler-1.1.1.orig/errorhandler/tests.py errorhandler-1.1.1/errorhandler/tests.py
+--- errorhandler/tests.py 2010-03-01 16:41:46.000000000 +0800
++++ errorhandler/tests.py 2012-04-26 02:28:11.991954681 +0800
+@@ -134,3 +134,5 @@
+ tearDown=tearDown,
+ optionflags=options),
+ ))
++if __name__ == "__main__":
++ unittest.main()
diff --git a/dev-python/errorhandler/metadata.xml b/dev-python/errorhandler/metadata.xml
new file mode 100644
index 00000000000..917f28e0157
--- /dev/null
+++ b/dev-python/errorhandler/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">errorhandler</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ets/Manifest b/dev-python/ets/Manifest
new file mode 100644
index 00000000000..5a73bd67d29
--- /dev/null
+++ b/dev-python/ets/Manifest
@@ -0,0 +1 @@
+DIST ets-4.4.1.tar.gz 5074 SHA256 af3614663dda07a03380960d30f36752f07e4c00debfd991cfe11b4726fd2c85 SHA512 50e8b0a4777e2ba433366ea6a34ef7c31ed9f41b2d662360839aa2ebaf40b0a9c613b3c472518be0931c5f523a7b383a382e9bd401e7b713f29337d4fd3a2c35 WHIRLPOOL 6ff5a49976767c068f65a04d9b7953d21e7eb58fbb0959b67f2237d839ed3bbaed729f1cb741d07262297d4b1d8e1be01b9fcd89daaea3c9e5b835863c848c8d
diff --git a/dev-python/ets/ets-4.4.1.ebuild b/dev-python/ets/ets-4.4.1.ebuild
new file mode 100644
index 00000000000..907d9d85633
--- /dev/null
+++ b/dev-python/ets/ets-4.4.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Meta package for the Enthought Tool Suite"
+HOMEPAGE="http://code.enthought.com/projects/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+# see the setup_data.py file for version numbers
+RDEPEND="
+ >=dev-python/apptools-4.2.0[doc?,examples?,${PYTHON_USEDEP}]
+ >=dev-python/blockcanvas-4.0.3[doc?,${PYTHON_USEDEP}]
+ >=dev-python/casuarius-1.1[${PYTHON_USEDEP}]
+ >=dev-python/chaco-4.4.1[${PYTHON_USEDEP}]
+ >=dev-python/codetools-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/enable-4.3.0[doc?,examples?,${PYTHON_USEDEP}]
+ >=dev-python/enaml-0.6.8[doc?,examples?,${PYTHON_USEDEP}]
+ >=dev-python/encore-0.4.0[doc?,examples?,${PYTHON_USEDEP}]
+ >=dev-python/envisage-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/etsdevtools-4.0.2[doc?,examples?,${PYTHON_USEDEP}]
+ >=dev-python/etsproxy-0.1.2[${PYTHON_USEDEP}]
+ >=dev-python/graphcanvas-4.0.2[examples?,${PYTHON_USEDEP}]
+ >=sci-visualization/mayavi-4.3.0[doc?,examples?,${PYTHON_USEDEP}]
+ >=dev-python/pyface-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/scimath-4.1.2[doc?,${PYTHON_USEDEP}]
+ >=dev-python/traits-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/traitsui-4.4.0[${PYTHON_USEDEP}]"
+
+DEPEND=""
diff --git a/dev-python/ets/metadata.xml b/dev-python/ets/metadata.xml
new file mode 100644
index 00000000000..842e52c7610
--- /dev/null
+++ b/dev-python/ets/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang="en">
+ The Enthought Tool Suite (ETS) is a collection of Python components
+ developed by Enthought and its partners to construct custom scientific
+ applications. It includes a wide variety of components including:
+ * An extensible application framework
+ * Application building blocks
+ * 2-D and 3-D graphics libraries
+ * Scientific and math libraries
+ * Developer tools
+ This metapackage contains the dependencies for installing all of the
+ components comprised by the suite.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">ets</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/etsdevtools/Manifest b/dev-python/etsdevtools/Manifest
new file mode 100644
index 00000000000..8c05a21dd37
--- /dev/null
+++ b/dev-python/etsdevtools/Manifest
@@ -0,0 +1 @@
+DIST etsdevtools-4.0.2.tar.gz 4222266 SHA256 6b0e8906deab4cbb449e2be559526f0a958c062678b70b04a6978a7c00fb6310 SHA512 41e88997d74397f8780c47c87080629661790aefaabeb9463503f7a7331aefbb7ba42a9754382f43adf6143c28db999af70b287a221b8cdbd44b2b7443b2b23d WHIRLPOOL 9dedd133088d6b40d1f923c984371aecc2fc0ebd4a930bec5f4948e3e5c304b2a41b6e6c2749a49dc77b24f74872aa93311321a8c4daa83da2f0098848ab7662
diff --git a/dev-python/etsdevtools/etsdevtools-4.0.2-r1.ebuild b/dev-python/etsdevtools/etsdevtools-4.0.2-r1.ebuild
new file mode 100644
index 00000000000..36a5262147c
--- /dev/null
+++ b/dev-python/etsdevtools/etsdevtools-4.0.2-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=python2_7
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Tools to support Python development"
+HOMEPAGE="http://code.enthought.com/projects/dev_tools.php http://pypi.python.org/pypi/etsdevtools"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/traits[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ >=dev-python/traitsui-4[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ x11-apps/xhost
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ VIRTUALX_COMMAND="nosetests -v" virtualmake
+}
+
+python_install_all() {
+ find -name "*LICENSE*.txt" -delete
+ use doc && dohtml -r docs/build/html/*
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/etsdevtools/metadata.xml b/dev-python/etsdevtools/metadata.xml
new file mode 100644
index 00000000000..c8989724952
--- /dev/null
+++ b/dev-python/etsdevtools/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The ETSDevTools project from the Enthought Tool Suite includes a
+ set of packages that can be used during the development of a
+ software project, for understanding, debugging, testing, and
+ inspecting code:
+ * Enthought Developer Tool Suite (enthought.developer): A
+ collection of utilities, designed to ease the development and
+ debugging of Traits-based programs. They can be used as plug-ins
+ to your Envisage application while you are developing it, and then
+ removed when you are ready to release it.
+ * Endo: A Traits-aware tool for processing API documentation of
+ Python code. It extracts not only docstrings, but also plain
+ comments that immediately precede variable assignments (both
+ module-scope variables and class attributes).
+ * enthought.guitest: A collection of utilities for unit testing
+ user interfaces (translation of the Perl X11::GUITest and
+ Win32::GuiTest modules).
+ * enthought.testing: Scripts related to running unit tests, based
+ on testoob, and also allowing running test suites in separate
+ processes and aggregating the results.
+ * enthought.debug: A collection of debugging tools, not to be
+ included in production code. NOTE: These tools are functional, but
+ are not being developed or supported. They have been mainly
+ superceded by the tools in the Enthought Developer Tool Suite.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/etsproxy/Manifest b/dev-python/etsproxy/Manifest
new file mode 100644
index 00000000000..0a233155bb6
--- /dev/null
+++ b/dev-python/etsproxy/Manifest
@@ -0,0 +1 @@
+DIST etsproxy-0.1.2.tar.gz 119646 SHA256 be852bc033396a89ea8d567174d07009f6e25e74ccb8d096a365475a37e93eae SHA512 f97a55127f6c1200a5a0bf581f24fc2718b8619c9cd137158c9c28511f2ad9c7a0a03998931bab25c193ed540d96d2325f390052591c8239ea7ea06cf5fd98ae WHIRLPOOL 08256398503fa674221087faefd882f7ed27d8e93eea48773c802106fe979034d6dae90660db8b689a44afa2359fe420ff2b851afd54e69c2a694ee9b80a6881
diff --git a/dev-python/etsproxy/etsproxy-0.1.2-r1.ebuild b/dev-python/etsproxy/etsproxy-0.1.2-r1.ebuild
new file mode 100644
index 00000000000..30df6d95557
--- /dev/null
+++ b/dev-python/etsproxy/etsproxy-0.1.2-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Enthought Tool Suite: Proxy modules for backwards compatibility"
+HOMEPAGE="http://pypi.python.org/pypi/etsproxy"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="!<dev-python/apptools-4
+ !<dev-python/blockcanvas-4
+ !<dev-python/chaco-4
+ !<dev-python/codetools-4
+ !<dev-python/enable-4
+ !<dev-python/enthoughtbase-4
+ !<dev-python/envisagecore-4
+ !<dev-python/envisageplugins-4
+ !<dev-python/etsdevtools-4
+ !<dev-python/etsprojecttools-4
+ !<dev-python/graphcanvas-4
+ !<sci-visualization/mayavi-4
+ !<dev-python/scimath-4
+ !<dev-python/traits-4
+ !<dev-python/traitsbackendwx-4
+ !<dev-python/traitsbackendqt-4
+ !<dev-python/traitsgui-4"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/etsproxy/metadata.xml b/dev-python/etsproxy/metadata.xml
new file mode 100644
index 00000000000..aead56b6723
--- /dev/null
+++ b/dev-python/etsproxy/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang="en">
+ This is the ETS proxy package, it contains the proxy modules for all
+ ETS projects which map the old enthought namespace imports to the
+ namespace-refactored ETS packages. It should be only needed to
+ switch from ETS-3 to ETS-4 packages.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/eunuchs/Manifest b/dev-python/eunuchs/Manifest
new file mode 100644
index 00000000000..ccae4e0926b
--- /dev/null
+++ b/dev-python/eunuchs/Manifest
@@ -0,0 +1 @@
+DIST eunuchs_20050320.1.tar.gz 8448 SHA256 2ca782d49b4065b37226f2a3f839e73d5d4c78d661ec9d2cf6219887135f9408 SHA512 b3272de7ac2a41c2c632aa17424dcc74ef3b6d536be5684bd54e4f22ce2d7c6546ac7b1b7cef2611f00b467780b11a30eca9c8804c0f8839a13adff6894ce88d WHIRLPOOL 7b39613719bbb0c228a7702fdfe56a96d8e90057dabb9c4a1abe56f8c590524275dc321d92f10eb78990480b12f87115d2f93c016b35c4320ea4bed2727321da
diff --git a/dev-python/eunuchs/eunuchs-20050320.1-r1.ebuild b/dev-python/eunuchs/eunuchs-20050320.1-r1.ebuild
new file mode 100644
index 00000000000..ee99e2d7835
--- /dev/null
+++ b/dev-python/eunuchs/eunuchs-20050320.1-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Missing manly parts of UNIX API for Python"
+HOMEPAGE="http://www.inoi.fi/open/trac/eunuchs http://pypi.python.org/pypi/python-eunuchs"
+SRC_URI="mirror://debian/pool/main/e/${PN}/${PN}_${PV}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ia64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}/${P}-python-2.5.patch" )
+DOCS=( examples/ )
+
+python_test() {
+ ${PYTHON} examples/test-socketpair.py || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/eunuchs/files/eunuchs-20050320.1-python-2.5.patch b/dev-python/eunuchs/files/eunuchs-20050320.1-python-2.5.patch
new file mode 100644
index 00000000000..dfad7a8dce7
--- /dev/null
+++ b/dev-python/eunuchs/files/eunuchs-20050320.1-python-2.5.patch
@@ -0,0 +1,11 @@
+--- lib/eunuchs/sendmsg.c
++++ lib/eunuchs/sendmsg.c
+@@ -101,7 +101,7 @@
+ real_controllen += CMSG_SPACE(sizeof *info);
+ } else {
+ char *data;
+- int len;
++ Py_ssize_t len;
+
+ if (PyString_AsStringAndSize(rest, &data, &len))
+ return NULL; // TODO leaks
diff --git a/dev-python/eunuchs/metadata.xml b/dev-python/eunuchs/metadata.xml
new file mode 100644
index 00000000000..1bf73a68539
--- /dev/null
+++ b/dev-python/eunuchs/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Eunuchs is a library of Python extensions that complement the
+ standard libraries in parts where full support for the UNIX API (or
+ the Linux API) is missing.
+
+ Most of the functions wrapped by Eunuchs are low-level, dirty, but
+ absolutely necessary functions for real systems programming. The aim
+ is to have the functions added to mainstream Python libraries.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/eventlet/Manifest b/dev-python/eventlet/Manifest
new file mode 100644
index 00000000000..a28398c4ad5
--- /dev/null
+++ b/dev-python/eventlet/Manifest
@@ -0,0 +1,4 @@
+DIST eventlet-0.13.0.tar.gz 276599 SHA256 d98118f01c064a6d256a264d4b939b2c6ad0814875c3b37859306c6ed1b4982c SHA512 eed2e4b648922c8a012938f5a3a06db6a7fc8ffb98f710e47c757a1410aa984865ca8fe4e4012e00ad2e16e9208222ed44d7e495c967090bab38d51170090d53 WHIRLPOOL 55b5926135b83d967b7bf0e691d9977f3455f30e096e4d1fda1e27cad51125afd47cc750155b3d70e5d7f0f8fd65e73091eb6add646186e268c53e62eabc23af
+DIST eventlet-0.15.2.tar.gz 301581 SHA256 eaec368ce7b819f8615dcb51f63dcb5c910538cdedc99e4bba4c90ed0bf70fdc SHA512 1166d480ecca9ba01b3c660b79168895c938ace33f1b8244f184c306de6e99302a1b131cc0ad6c363d65b04ccd7fb58107a39a669b9817ec43c5c167e12c3ec5 WHIRLPOOL 1754607a5702404a71b8698fefe9f399b9761ed3b22b9ff5ed85b358c6354f4e280b2861e3537d927daa279eaa09b3b760da0de85a1a1bcbe9d1633427e4f2ae
+DIST eventlet-0.17.1.tar.gz 277110 SHA256 de9c23eb94e55150b25150822a28f91656028987353fef3f687cc285d018dd5a SHA512 c39158c9b60d2bc615abfaf93fc76e32017e57c389f148080ec30ac0fdb090a53fbb6bf24a361845772e02d330fc5b9e6682d77228b811f499b9a8c86452c2eb WHIRLPOOL c6fe8d5abb83fd304887281614b87d59125be7bfd478ab76bd882dd1e9fca16a64acab60b7012bb6283d99d88937a313b84bf818728839d320e8f537421bc83f
+DIST eventlet-0.17.4.tar.gz 284480 SHA256 8721e9714eaff8d20f2407e0d3a80069db6b57c9226c26ee9db25c541d06556d SHA512 fee3ef0ebe7aaf8cb87283af71ca8902c4480b47cf2109be96e6fcbcf25a743e411715fa73b31e820b152ef4403ccbd5a45117e69565e8e49fd1795a5cc19e3d WHIRLPOOL e78344ac9e7f7f1c4bd6fc65f0a35dec317c10b12821a73dc875d79a94e36f16ddda5551e3326c600ea553ef05382b4cd2f7a88b6600899ae74a8b4556eb155e
diff --git a/dev-python/eventlet/eventlet-0.13.0.ebuild b/dev-python/eventlet/eventlet-0.13.0.ebuild
new file mode 100644
index 00000000000..3bb3d9b5656
--- /dev/null
+++ b/dev-python/eventlet/eventlet-0.13.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Highly concurrent networking library"
+HOMEPAGE="http://pypi.python.org/pypi/eventlet"
+SRC_URI="mirror://pypi/e/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples test"
+
+RDEPEND=">=dev-python/greenlet-0.3[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+src_test() {
+ # Tests bind to static addresses, bug #456920
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/eventlet/eventlet-0.15.2.ebuild b/dev-python/eventlet/eventlet-0.15.2.ebuild
new file mode 100644
index 00000000000..c9a554c15a5
--- /dev/null
+++ b/dev-python/eventlet/eventlet-0.15.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Highly concurrent networking library"
+HOMEPAGE="http://pypi.python.org/pypi/eventlet https://github.com/eventlet/eventlet/"
+SRC_URI="mirror://pypi/e/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+RDEPEND=">=dev-python/greenlet-0.3[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7 )
+ test? ( ${RDEPEND}
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die
+ fi
+
+ # Prevent file collisions from teestsuite
+ sed -e "s:'tests', :'tests', 'tests.*', :" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # https://github.com/eventlet/eventlet/issues/152
+ use doc && emake -C doc html
+}
+
+src_test() {
+ # Tests bind to static addresses, bug #456920
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ # Several errors 1 failure
+ # https://github.com/eventlet/eventlet/issues/151
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/eventlet/eventlet-0.17.1.ebuild b/dev-python/eventlet/eventlet-0.17.1.ebuild
new file mode 100644
index 00000000000..b78e9421892
--- /dev/null
+++ b/dev-python/eventlet/eventlet-0.17.1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Highly concurrent networking library"
+HOMEPAGE="http://pypi.python.org/pypi/eventlet https://github.com/eventlet/eventlet/"
+SRC_URI="mirror://pypi/e/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples test"
+
+RDEPEND=">=dev-python/greenlet-0.3[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7 )
+ test? ( ${RDEPEND}
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die
+ fi
+
+ if use test; then
+# sed -i '/This is a Python 3 module/d' eventlet/green/http/__init__.py || die
+# sed -i 's/^import/from OpenSSL import/g' eventlet/green/OpenSSL/__init__.py || die
+# sed -i 's/^from version/from OpenSSL.version/' eventlet/green/OpenSSL/__init__.py || die
+ sed -i 's/TEST_TIMEOUT = 1/TEST_TIMEOUT = 10/' tests/__init__.py || die
+ fi
+
+ # Prevent file collisions from teestsuite
+ sed -e "s:'tests', :'tests', 'tests.*', :" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # https://github.com/eventlet/eventlet/issues/152
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # Several errors 1 failure
+ # https://github.com/eventlet/eventlet/issues/151
+ nosetests tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/eventlet/eventlet-0.17.4.ebuild b/dev-python/eventlet/eventlet-0.17.4.ebuild
new file mode 100644
index 00000000000..3c13f1657eb
--- /dev/null
+++ b/dev-python/eventlet/eventlet-0.17.4.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Highly concurrent networking library"
+HOMEPAGE="http://pypi.python.org/pypi/eventlet https://github.com/eventlet/eventlet/"
+SRC_URI="mirror://pypi/e/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+RDEPEND=">=dev-python/greenlet-0.3[${PYTHON_USEDEP}]"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7 )
+ test? ( ${RDEPEND}
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die
+ fi
+
+ if use test; then
+# sed -i '/This is a Python 3 module/d' eventlet/green/http/__init__.py || die
+# sed -i 's/^import/from OpenSSL import/g' eventlet/green/OpenSSL/__init__.py || die
+# sed -i 's/^from version/from OpenSSL.version/' eventlet/green/OpenSSL/__init__.py || die
+ sed -i 's/TEST_TIMEOUT = 1/TEST_TIMEOUT = 10/' tests/__init__.py || die
+ fi
+
+ # Prevent file collisions from teestsuite
+ sed -e "s:'tests', :'tests', 'tests.*', :" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # https://github.com/eventlet/eventlet/issues/152
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # Several errors 1 failure
+ # https://github.com/eventlet/eventlet/issues/151
+ nosetests tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/eventlet/metadata.xml b/dev-python/eventlet/metadata.xml
new file mode 100644
index 00000000000..fba4a279988
--- /dev/null
+++ b/dev-python/eventlet/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">eventlet</remote-id>
+ <remote-id type="github">eventlet/eventlet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/execnet/Manifest b/dev-python/execnet/Manifest
new file mode 100644
index 00000000000..82658ac0e0f
--- /dev/null
+++ b/dev-python/execnet/Manifest
@@ -0,0 +1,2 @@
+DIST execnet-1.2.0.tar.gz 163876 SHA256 951714caa0ae80237f4ffc1f08450e9e2e5f8f902beaf1ad294020875d6f8c2c SHA512 bf4eb1c07832628863f3d315510628343bc4504050311a277a86100a825df8ed5f6b65f58db28ea6733f3886b6007eae7fd33586721374f9ffb3687e9b95d5c4 WHIRLPOOL 898d9427d55e316f2cdfe06d8dadd0f40d8d2374802b419c9b7aac279eed36919f8dc0084c9c253b3b3d75e9dd50ec2748ef2227e803bf900d7d8b0d5395c45e
+DIST execnet-1.3.0.tar.gz 170489 SHA256 ecdfd5613cc78fe99aaf3e351bc870d1428202d78744ea48c893bf34a1fcbdbe SHA512 b047639ede7f5eeb600358bf983d1db617438a8ed9dcaa6e0ba470fe15703f2ce8d3f413a6b6dc575c0090744fde82ba3ba0e684bdeda86a6261941125c71a10 WHIRLPOOL 54d6cebfabcabfd5c3baebadd66fe8837c79cead4900ec1b9d55478d2eb2cbd77be9dfbb108b4049836b5cd316316bd4304b11377d372e5d5b8ef23f684e5838
diff --git a/dev-python/execnet/execnet-1.2.0-r2.ebuild b/dev-python/execnet/execnet-1.2.0-r2.ebuild
new file mode 100644
index 00000000000..ffc44038b52
--- /dev/null
+++ b/dev-python/execnet/execnet-1.2.0-r2.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Rapid multi-Python deployment"
+HOMEPAGE="http://codespeak.net/execnet/ http://pypi.python.org/pypi/execnet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/1.2.0-tests.patch )
+
+python_prepare_all() {
+ # Remove doctest that access an i'net site
+ rm doc/example/test_info.txt || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # https://bitbucket.org/hpk42/execnet/issue/10
+ unset PYTHONDONTWRITEBYTECODE
+ py.test testing || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/execnet/execnet-1.3.0.ebuild b/dev-python/execnet/execnet-1.3.0.ebuild
new file mode 100644
index 00000000000..79473245bf2
--- /dev/null
+++ b/dev-python/execnet/execnet-1.3.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Rapid multi-Python deployment"
+HOMEPAGE="http://codespeak.net/execnet/ http://pypi.python.org/pypi/execnet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+#PATCHES=( "${FILESDIR}"/1.2.0-tests.patch )
+
+python_prepare_all() {
+ # Remove doctest that access an i'net site
+ rm doc/example/test_info.txt || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # https://bitbucket.org/hpk42/execnet/issue/10
+ unset PYTHONDONTWRITEBYTECODE
+ py.test testing || die "Tests fail with ${EPYTHON}"
+
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/execnet/files/1.2.0-tests.patch b/dev-python/execnet/files/1.2.0-tests.patch
new file mode 100644
index 00000000000..13bed5d5960
--- /dev/null
+++ b/dev-python/execnet/files/1.2.0-tests.patch
@@ -0,0 +1,115 @@
+# HG changeset patch
+# User holger krekel <holger@merlinux.eu>
+# Date 1412585605 -7200
+# Node ID c9303c302995a4fb844553d4977c55abc72e2020
+# Parent 47ff3652b0aed191f7bafc741c211d1415f65224
+fix issue35: adapt some doctests, fix some channel tests for py3.
+Also modernize tox.ini a bit.
+--rebased
+diff -ur execnet-1.2.0.orig/doc/example/test_group.txt execnet-1.2.0/doc/example/test_group.txt
+--- doc/example/test_group.txt 2014-01-29 19:50:22.000000000 +0800
++++ doc/example/test_group.txt 2014-10-10 19:51:00.108828123 +0800
+@@ -14,7 +14,7 @@
+ >>> group
+ <Group ['gw0', 'gw1']>
+ >>> list(group)
+- [<PopenGateway id='gw0' receive-live, 0 active channels>, <PopenGateway id='gw1' receive-live, 0 active channels>]
++ [<Gateway id='gw0' receive-live, thread model, 0 active channels>, <Gateway id='gw1' receive-live, thread model, 0 active channels>]
+ >>> 'gw0' in group and 'gw1' in group
+ True
+ >>> group['gw0'] == group[0]
+@@ -37,7 +37,7 @@
+ >>> gw = group.makegateway("popen//id=sub1")
+ >>> assert gw.id == "sub1"
+ >>> group['sub1']
+- <PopenGateway id='sub1' receive-live, 0 active channels>
++ <Gateway id='sub1' receive-live, thread model, 0 active channels>
+
+ Getting (auto) IDs before instantiation
+ ------------------------------------------------------
+diff -ur execnet-1.2.0.orig/doc/example/test_proxy.txt execnet-1.2.0/doc/example/test_proxy.txt
+--- doc/example/test_proxy.txt 2014-01-29 19:50:22.000000000 +0800
++++ doc/example/test_proxy.txt 2014-10-10 19:16:50.380156509 +0800
+@@ -18,10 +18,10 @@
+ >>> group.defaultspec = 'popen//via=master'
+ >>> master = group.makegateway('popen//id=master')
+ >>> master
+- <Gateway id='master' receive-live, 0 active channels>
++ <Gateway id='master' receive-live, thread model, 0 active channels>
+ >>> slave = group.makegateway()
+ >>> slave
+- <Gateway id='gw0' receive-live, 0 active channels>
++ <Gateway id='gw0' receive-live, thread model, 0 active channels>
+ >>> group
+ <Group ['master', 'gw0']>
+
+diff -ur execnet-1.2.0.orig/testing/test_channel.py execnet-1.2.0/testing/test_channel.py
+--- testing/test_channel.py 2014-01-29 19:50:22.000000000 +0800
++++ testing/test_channel.py 2014-10-10 19:21:00.943955387 +0800
+@@ -68,25 +68,19 @@
+
+ def test_channel_error_reporting(self, gw):
+ channel = gw.remote_exec('def foo():\n return foobar()\nfoo()\n')
+- try:
+- channel.receive()
+- except channel.RemoteError:
+- e = sys.exc_info()[1]
+- assert str(e).startswith('Traceback (most recent call last):')
+- assert str(e).find('NameError: global name \'foobar\' '
+- 'is not defined') > -1
+- else:
+- pytest.fail('No exception raised')
++ excinfo = pytest.raises(channel.RemoteError, channel.receive)
++ msg = str(excinfo.value)
++ assert msg.startswith('Traceback (most recent call last):')
++ assert "NameError" in msg
++ assert "foobar" in msg
+
+ def test_channel_syntax_error(self, gw):
+ # missing colon
+ channel = gw.remote_exec('def foo()\n return 1\nfoo()\n')
+- try:
+- channel.receive()
+- except channel.RemoteError:
+- e = sys.exc_info()[1]
+- assert str(e).startswith('Traceback (most recent call last):')
+- assert str(e).find('SyntaxError') > -1
++ excinfo = pytest.raises(channel.RemoteError, channel.receive)
++ msg = str(excinfo.value)
++ assert msg.startswith('Traceback (most recent call last):')
++ assert "SyntaxError" in msg
+
+ def test_channel_iter(self, gw):
+ channel = gw.remote_exec("""
+diff -ur execnet-1.2.0.orig/tox.ini execnet-1.2.0/tox.ini
+--- tox.ini 2014-01-29 19:50:22.000000000 +0800
++++ tox.ini 2014-10-10 20:14:22.806301771 +0800
+@@ -1,16 +1,11 @@
+ [tox]
+-envlist=py26,py27,py32,py33,pypy,flakes
+-distshare={homedir}/.tox/distshare
+-
+-[tox:hudson]
+-distshare={toxworkdir}/distshare
+-sdistsrc={distshare}/execnet-*
++envlist=py26,py27,py33,py34,pypy,flakes
+
+ [testenv]
+ changedir=testing
+ deps=pytest
+ pytest-timeout
+-commands=py.test -rsfxX --junitxml={envlogdir}/junit-{envname}.xml []
++commands=py.test -rsfxX {posargs}
+
+ [testenv:flakes]
+ changedir=
+@@ -26,8 +21,7 @@
+ deps=sphinx
+ pytest
+ commands=
+- py.test \
+- -rsfxX -v --junitxml={envlogdir}/junit-{envname}.xml check_sphinx.py
++ py.test -rsfxX -v check_sphinx.py
+
+ [pytest]
+ timeout = 20
diff --git a/dev-python/execnet/metadata.xml b/dev-python/execnet/metadata.xml
new file mode 100644
index 00000000000..e0ad54d79ca
--- /dev/null
+++ b/dev-python/execnet/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>Interact with Python interpreters
+ across version, platform and network barriers.</longdescription>
+ <upstream>
+ <remote-id type="pypi">execnet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/expects/Manifest b/dev-python/expects/Manifest
new file mode 100644
index 00000000000..97781582990
--- /dev/null
+++ b/dev-python/expects/Manifest
@@ -0,0 +1,5 @@
+DIST expects-0.2.1.tar.gz 22474 SHA256 0c70230281f68c4c93a4a1ba98da37ccc2529c849a28c555ab93050f2a084321 SHA512 c7a51f35e4c1468df19838b9dd74a9fe214c906b7bbf203f61841d2f0cfe60cffd1388b841a39ce14a59394594e148cbaf1777b08b90879136421186ab757585 WHIRLPOOL 0e62e27c4d96156463c1b8001459c6795a4398b7ec8a23283c3bccba7cbe4feb0a763e6086c2ffda7762d82e2a481812049f6920ccbade9e27e6046cf58601b0
+DIST expects-0.4.2.tar.gz 23813 SHA256 b1e0b27141f784fe81a143153f23d3c8220fe8ec1003eb580b3eeb38eb778007 SHA512 6701a1a3099073c70d8f729b7ca72e4b9b3eb6d6f9e7d6d2d654a3b684c5ab101c343b4c3556f45d763ab1479dbc3eb3db209c4d9f5d2254cc4111e74a4a3c1a WHIRLPOOL 44ef85ca96225c22f91468e8b8b6368a26138f0fb9ee22dc89c282fb91adf4425d177ba62891239515affc639053165c6080f972c9435619c50a47fd81a27894
+DIST expects-0.7.1.tar.gz 398062 SHA256 8c6c26b41877f8133b8bdbef1dda2eeb49367f63909e93aee6402c93db37d08f SHA512 969fe68d9978e1d22a0ef3cfcd2072ca5aaefcfaa52e9aa3b20791fc9e82a4cd7962096320b1898a9bdb64803174c15908351966fc5bcdbbe54954fbe85962cc WHIRLPOOL 9a7c6d48943f3ca14657ffa603c1d353d440c39b5ca51c29dccc15936dd3897a72a7951cef95305f07a01ed5659a53df1920b14208e66b141a1c5348cc83cd30
+DIST expects-0.7.2.tar.gz 398201 SHA256 ed72a184c2453b4f244cf887ee4545ac40dc0d88a1a224eabf150980a88877a9 SHA512 55db29e2bbba881933bf5d28e38f2c1e1087b4e43f15359a2af40e91066658973244fac4dcaf7eca79d6006d78d232232acbd1a2fc03ec1df62223e1226fb94a WHIRLPOOL 9eae839eb607f29f57be70e39fc6adb02fa8b9038d070016c090f75dec5ce05528fd3d18ca72e1d2aaa4205df31f20521fc23ad741b1b73b54262ac273e9e14e
+DIST expects-0.8.0_rc1.tar.gz 27424 SHA256 3822d470c3bebe749928e360e7bfdecf0ac6541717040de31cb265f1372dfb43 SHA512 5130b545164fdb8d8306b5d4fc3d83dcfaf9bb56428b9140def434bb1339b479568ba7aab88f5eedf646cadca12ee331163af5be0937633049baf695b309653b WHIRLPOOL 951ab90c1b3c143b3109676207c5f2a5480238555d10662f45c1a1336618c0e38307801aa0e61fc8bc978d333f3f44cd64da811742ebc65008815e635d0536d9
diff --git a/dev-python/expects/expects-0.2.1.ebuild b/dev-python/expects/expects-0.2.1.ebuild
new file mode 100644
index 00000000000..51fcf020d5c
--- /dev/null
+++ b/dev-python/expects/expects-0.2.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Expressive and extensible TDD/BDD assertion library for Python"
+HOMEPAGE="https://github.com/jaimegildesagredo/expects"
+SRC_URI="https://github.com/jaimegildesagredo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ~dev-python/mamba-0.6[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -f "${HOME}"/.pydistutils.cfg || die "Couldn't remove pydistutils.cfg"
+
+ distutils_install_for_testing
+
+ mamba || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/expects/expects-0.4.2.ebuild b/dev-python/expects/expects-0.4.2.ebuild
new file mode 100644
index 00000000000..9de15d2664c
--- /dev/null
+++ b/dev-python/expects/expects-0.4.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Expressive and extensible TDD/BDD assertion library for Python"
+HOMEPAGE="https://github.com/jaimegildesagredo/expects"
+SRC_URI="https://github.com/jaimegildesagredo/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-python/mamba-0.8.2[${PYTHON_USEDEP}]
+ <dev-python/mamba-0.9[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ mamba || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/expects/expects-0.7.1.ebuild b/dev-python/expects/expects-0.7.1.ebuild
new file mode 100644
index 00000000000..5021b32a0c2
--- /dev/null
+++ b/dev-python/expects/expects-0.7.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Expressive and extensible TDD/BDD assertion library for Python"
+HOMEPAGE="https://github.com/jaimegildesagredo/expects"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mamba[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ mamba || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/expects/expects-0.7.2.ebuild b/dev-python/expects/expects-0.7.2.ebuild
new file mode 100644
index 00000000000..5021b32a0c2
--- /dev/null
+++ b/dev-python/expects/expects-0.7.2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Expressive and extensible TDD/BDD assertion library for Python"
+HOMEPAGE="https://github.com/jaimegildesagredo/expects"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mamba[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ mamba || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/expects/expects-0.8.0_rc1.ebuild b/dev-python/expects/expects-0.8.0_rc1.ebuild
new file mode 100644
index 00000000000..f96e4611ab6
--- /dev/null
+++ b/dev-python/expects/expects-0.8.0_rc1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+MY_PV=${PV/_/}
+
+DESCRIPTION="Expressive and extensible TDD/BDD assertion library for Python"
+HOMEPAGE="https://github.com/jaimegildesagredo/expects"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${PN}-${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mamba[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ mamba || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/expects/metadata.xml b/dev-python/expects/metadata.xml
new file mode 100644
index 00000000000..eaa12ec40d9
--- /dev/null
+++ b/dev-python/expects/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">expects</remote-id>
+ <remote-id type="github">jaimegildesagredo/expects</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/extras/Manifest b/dev-python/extras/Manifest
new file mode 100644
index 00000000000..5f95b344395
--- /dev/null
+++ b/dev-python/extras/Manifest
@@ -0,0 +1 @@
+DIST extras-0.0.3.tar.gz 6231 SHA256 7a60d84cb661b477c41a5ea35e931ae93860af8cd259ecc0a38a32ef1ae9ffc0 SHA512 7b08d094717a27fbb522d49c0c538e98baccef6540216479d176b55b94f3f0b97c4b70ed48f3802a1bf08a58fe9a319a113d4ca04d9dadcb85e3a99bf7490a3c WHIRLPOOL a80db53c4b536d1a98c03237cc56607ca477619d1789a4a4c4795c843212eb1bdc64f0fe2a0ae1d4a4bab351ec68e07acb9ae494e537630ba841826116121d2c
diff --git a/dev-python/extras/extras-0.0.3.ebuild b/dev-python/extras/extras-0.0.3.ebuild
new file mode 100644
index 00000000000..d066a64c0dd
--- /dev/null
+++ b/dev-python/extras/extras-0.0.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Useful extra bits for Python that should be in the standard library"
+HOMEPAGE="https://github.com/testing-cabal/extras/ http://pypi.python.org/pypi/extras/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/testtools[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" ${PN}/tests/test_extras.py || die
+ einfo "test_extras passed under ${EPYTHON}"
+}
diff --git a/dev-python/extras/metadata.xml b/dev-python/extras/metadata.xml
new file mode 100644
index 00000000000..2a25cb3f7f8
--- /dev/null
+++ b/dev-python/extras/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">extras</remote-id>
+ <remote-id type="github">testing-cabal/extras</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/extremes/Manifest b/dev-python/extremes/Manifest
new file mode 100644
index 00000000000..6b26d634b3f
--- /dev/null
+++ b/dev-python/extremes/Manifest
@@ -0,0 +1 @@
+DIST extremes-1.1.1.zip 10360 SHA256 e92564d2535929a18c51b75c8904e13ab5e78a6d75fee8c70d04e09812fc8545 SHA512 a0b951306e9d5ef84c6498268a3476e7ed889f0be950a529774e2d8c4f155d4c10cbacd20864ed37aea5512ba65a267e414eb2b4f7cc6d67b21a020d82da8ec2 WHIRLPOOL 67a3a7aa5b4f32497f262097d34ac750f34a89471290f7eb7b9a3a3491f36bc08e6db0341f852ca3f575767dc21a9b8d4f97a9f0d7ce68559eb2cb6564d51a55
diff --git a/dev-python/extremes/extremes-1.1.1.ebuild b/dev-python/extremes/extremes-1.1.1.ebuild
new file mode 100644
index 00000000000..444ed101a60
--- /dev/null
+++ b/dev-python/extremes/extremes-1.1.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="Extremes"
+DESCRIPTION="Production-quality 'Min' and 'Max' objects"
+HOMEPAGE="http://pypi.python.org/pypi/Extremes"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip -> ${P}.zip"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+LICENSE="ZPL"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_PN}-${PV}
+
+python_test() {
+ "${PYTHON}" peak/util/extremes.py && einfo "Tests passed under ${EPYTHON}" \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/extremes/metadata.xml b/dev-python/extremes/metadata.xml
new file mode 100644
index 00000000000..dbb8c845251
--- /dev/null
+++ b/dev-python/extremes/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Extremes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/eyeD3/Manifest b/dev-python/eyeD3/Manifest
new file mode 100644
index 00000000000..e8228841049
--- /dev/null
+++ b/dev-python/eyeD3/Manifest
@@ -0,0 +1 @@
+DIST eyeD3-0.7.5.tgz 221685 SHA256 6a60f6dff7c8b74fee11eb378447b3bbbd2433ca5f7a00846840b0b2ddec9222 SHA512 9f57e05e4db78618e73ec15ca6ac7b983e13c24ae926bfb9194ee4fc1d735f80308dfc5bdac6016f5491bdb06d46b645d7ac54247d581467a8a22129fae85ba5 WHIRLPOOL 08c8e3771d263548e8f3213653f6846ee0d55ebd56816cddf03d80dd6d6b7d7906ef85045d13f599137e74ce0d59a76a4862a2ff5ae5d3e1637df7794a6cccbf
diff --git a/dev-python/eyeD3/eyeD3-0.7.5.ebuild b/dev-python/eyeD3/eyeD3-0.7.5.ebuild
new file mode 100644
index 00000000000..d7f3535b4ea
--- /dev/null
+++ b/dev-python/eyeD3/eyeD3-0.7.5.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# still appears ill prepared for python3; see bugs 501338, 501340
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for manipulating ID3 (v1 + v2) tags in Python"
+HOMEPAGE="http://eyed3.nicfit.net/"
+SRC_URI="http://eyed3.nicfit.net/releases/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0.7"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/paver[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # prevent the build system from installing unwrapped bash script
+ # and prevent it from pulling optional python-magic
+ sed -i -e '/scripts/d' \
+ -e '/install_requires/d' pavement.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ sed -e "s:python:${EPYTHON}:" bin/eyeD3 > "${TMPDIR}"/eyeD3 || die
+ python_doexe "${TMPDIR}"/eyeD3
+}
diff --git a/dev-python/eyeD3/metadata.xml b/dev-python/eyeD3/metadata.xml
new file mode 100644
index 00000000000..414a5eeccf5
--- /dev/null
+++ b/dev-python/eyeD3/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sound</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/fabric/Manifest b/dev-python/fabric/Manifest
new file mode 100644
index 00000000000..89b337410db
--- /dev/null
+++ b/dev-python/fabric/Manifest
@@ -0,0 +1,3 @@
+DIST Fabric-1.10.0.tar.gz 208969 SHA256 edb2702b4655600f0a49a97e654c79f5b21490ce30f77d1313dd851f0b60335a SHA512 991341dfb3f71e938c2a2e30f5bc158be84cb1600ab64c4f7c5c49decd0a38bc57615f9e07edfbed70d9ca796592d7c1a4f7f3e25a40c4d31049015df928b2e3 WHIRLPOOL c07ba33bd6e7832fd5527ec14e206d74a6a2b983dbb49a43d972f31e15e22f9642df4809adff72f43f92fca5c1d758a4ac540ed87e22f46adc25094b2aa4ccb3
+DIST Fabric-1.10.1.tar.gz 209750 SHA256 ab9c54e9496c89ae96ed4aa669e01c792376d75a7389ec90d4292282cc26f008 SHA512 a00f46ac28c61d20575af9f34e4e2bc54a79e836c29b395bbdf58538b6c75523a7ec6f3f40caf0f270d2ec8b0500806b14e80c4ed4d2077e39f4dbdd773d8637 WHIRLPOOL 88b5865ec80ff923292b0ba4a868a06fa5cc0f68b3a8ab2fbfb68f17422b9b60a365ea3b14b5f04929425bbcf9350acbc72dc1733200c18a80d954c3c1762ce9
+DIST Fabric-1.10.2.tar.gz 212942 SHA256 666a3da92273532d3a49dd1ac53e3d721c5ec2f2512cd7dddb7ce19e29e9f038 SHA512 3102616a8fbc6237df74eb9b506e95628487d2bb112a56826d388a943b6e8af926f4f174a8d8810b27b63e58d2018667d927795c6a5e53833a1d3fc87324b0af WHIRLPOOL f08af6300432655786692a99385f4cd4d8605ac3bd952dd198706bd975c737431df7aaa6dc2d737719ca029305cb3e3359876ac32702f3ad539b65a5ad5501fb
diff --git a/dev-python/fabric/fabric-1.10.0-r1.ebuild b/dev-python/fabric/fabric-1.10.0-r1.ebuild
new file mode 100644
index 00000000000..c9e68f06407
--- /dev/null
+++ b/dev-python/fabric/fabric-1.10.0-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Fabric"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A simple pythonic tool for remote execution and deployment"
+HOMEPAGE="http://fabfile.org http://pypi.python.org/pypi/Fabric"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/paramiko-1.10[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7
+ dev-python/alabaster[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ <dev-python/fudge-1.0[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Re-set intersphinx_mapping for doc build
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -e "s|'http://docs.python.org/2.6', None|'${PYTHON_DOC}', '${PYTHON_DOC_INVENTORY}'|" \
+ -e "s| 'www'| #'www'|" \
+ -i sites/docs/conf.py || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c sites/docs/ sites/docs/ sites/docs/html || die
+ fi
+}
+
+src_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ nosetests tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( sites/docs/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fabric/fabric-1.10.1.ebuild b/dev-python/fabric/fabric-1.10.1.ebuild
new file mode 100644
index 00000000000..0fae319ba27
--- /dev/null
+++ b/dev-python/fabric/fabric-1.10.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Fabric"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A simple pythonic tool for remote execution and deployment"
+HOMEPAGE="http://fabfile.org http://pypi.python.org/pypi/Fabric"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/paramiko-1.10[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7
+ dev-python/alabaster[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ <dev-python/fudge-1.0[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Re-set intersphinx_mapping for doc build
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -e "s|'http://docs.python.org/2.6', None|'${PYTHON_DOC}', '${PYTHON_DOC_INVENTORY}'|" \
+ -e "s| 'www'| #'www'|" \
+ -i sites/docs/conf.py || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c sites/docs/ sites/docs/ sites/docs/html || die
+ fi
+}
+
+python_test() {
+ nosetests tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( sites/docs/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fabric/fabric-1.10.2.ebuild b/dev-python/fabric/fabric-1.10.2.ebuild
new file mode 100644
index 00000000000..00b36432bd9
--- /dev/null
+++ b/dev-python/fabric/fabric-1.10.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Fabric"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A simple pythonic tool for remote execution and deployment"
+HOMEPAGE="http://fabfile.org http://pypi.python.org/pypi/Fabric"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/paramiko-1.10[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7
+ dev-python/alabaster[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ <dev-python/fudge-1.0[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Re-set intersphinx_mapping for doc build
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -e "s|'http://docs.python.org/2.6', None|'${PYTHON_DOC}', '${PYTHON_DOC_INVENTORY}'|" \
+ -e "s| 'www'| #'www'|" \
+ -i sites/docs/conf.py || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c sites/docs/ sites/docs/ sites/docs/html || die
+ fi
+}
+
+python_test() {
+ # 1 failure, reported https://github.com/fabric/fabric/issues/1360
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( sites/docs/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fabric/files/doc-extensions.patch b/dev-python/fabric/files/doc-extensions.patch
new file mode 100644
index 00000000000..e426d6197b3
--- /dev/null
+++ b/dev-python/fabric/files/doc-extensions.patch
@@ -0,0 +1,13 @@
+releases module cannot be found and would cause un-needed d'loading
+diff -ur Fabric-1.8.3.orig/docs/conf.py Fabric-1.8.3/docs/conf.py
+--- docs/conf.py 2014-02-15 01:28:56.000000000 +0800
++++ docs/conf.py 2014-04-09 22:55:42.851674861 +0800
+@@ -26,7 +26,7 @@
+
+ # Add any Sphinx extension module names here, as strings. They can be extensions
+ # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+-extensions = ['sphinx.ext.autodoc', 'releases']
++extensions = ['sphinx.ext.autodoc']
+
+ # 'releases' (changelog) settings
+ releases_issue_uri = "https://github.com/fabric/fabric/issues/%s"
diff --git a/dev-python/fabric/files/fabric-1.4.2-git_tags_docs.patch b/dev-python/fabric/files/fabric-1.4.2-git_tags_docs.patch
new file mode 100644
index 00000000000..46e9044a45c
--- /dev/null
+++ b/dev-python/fabric/files/fabric-1.4.2-git_tags_docs.patch
@@ -0,0 +1,21 @@
+--- docs/conf.py.org 2012-05-08 02:08:14.000000000 -0400
++++ docs/conf.py 2012-05-10 10:06:28.000000000 -0400
+@@ -170,12 +170,13 @@
+ html_theme = 'default'
+ html_style = 'rtd.css'
+
+-from fabric.api import local, hide
+-with hide('everything'):
+- get_tags = 'git tag | sort -r | egrep "(1\.[^0]+)\.."'
+- fabric_tags = local(get_tags, True).split()
+-html_context = {'fabric_tags': fabric_tags}
++#from fabric.api import local, hide
++#with hide('everything'):
++# get_tags = 'git tag | sort -r | egrep "(1\.[^0]+)\.."'
++# fabric_tags = local(get_tags, True).split()
++#html_context = {'fabric_tags': fabric_tags}
+
++html_context={'fabric_tags': ['1.4.2', '1.4.1', '1.4.0', '1.3.7', '1.3.6', '1.3.5', '1.3.4', '1.3.3', '1.3.2', '1.3.1', '1.3.0', '1.2.6', '1.2.5', '1.2.4', '1.2.3', '1.2.2', '1.2.1', '1.2.0', '1.1.8', '1.1.7', '1.1.6', '1.1.5', '1.1.4', '1.1.3', '1.1.2', '1.1.1', '1.1.0']}
+
+ # Theme options are theme-specific and customize the look and feel of a theme
+ # further. For a list of options available for each theme, see the
diff --git a/dev-python/fabric/metadata.xml b/dev-python/fabric/metadata.xml
new file mode 100644
index 00000000000..d64f1992692
--- /dev/null
+++ b/dev-python/fabric/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Fabric</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/falcon/Manifest b/dev-python/falcon/Manifest
new file mode 100644
index 00000000000..edffeee60fe
--- /dev/null
+++ b/dev-python/falcon/Manifest
@@ -0,0 +1,4 @@
+DIST falcon-0.1.6.tar.gz 186870 SHA256 325503ae704420b91ffcb4c188d5ab15ae467b6168d7ccfacf905db1667022e3 SHA512 033b06d643dc910d62830d42a559a1fa1933b93c8f93b136c0ba89429cf3eadd912b5512f2add2ae904c3ff192046718a8d40a53d3a05506dfc2722cf5437668 WHIRLPOOL 1d93d1ffae86a167ab278fff3d6d653ea6b4df41723ea21f5149fa7316145ca9d8d6b8cde7ec1d018699cdbd86ebec87f682fd7a0f887f9e3f2926b18b6282ab
+DIST falcon-0.1.7.tar.gz 193151 SHA256 15c22f481b6152cb625d44ee852ec02cf775cb49f1fc9fa71cbc8d4fcccfbe7c SHA512 665a0bdd02c8e9a0806c863164fde33a6a10a1ac8c2ec9c3194da0ca41e411c19ec5b2a84cce521abb510588c23b4bb5fab25af58d5c17fbbf8e7c3304839b9a WHIRLPOOL 598f43cc59fd0d160e8a0fdb50385306c88a6becb5982110b4d9bd981e61768f1d33b46a51e44dfd0ec93114d156a56c9046e62daa044077246befa90009563d
+DIST falcon-0.1.8.tar.gz 202170 SHA256 e16c0e3062c4d6977e3ce892807d7e822c622f2743d9d97bd8be9babee29b63b SHA512 e0ec028c1d1dc3fba722bd91f9bb315523367313bef40238579a96ca49de37f4c63e53746bf6ab40add053320925378860e3571e32401151c00d4afcbad9b7ca WHIRLPOOL 1fa22d3167a12f992c5974864020ddcc89d6c9001d324e972b3e9fd8040ab8577cf955488c869fde662e0dfa98ed8c24e26f36b9b81ac9c282838aea6684e809
+DIST falcon-0.1.9.tar.gz 202209 SHA256 c8190ddf37dd8cf90f325a27185916e336e229292595f892043f55a502c04f94 SHA512 442a04c925f4af69bb0f1906c4123e68ef423e4040fbde82cecc200a44410665c0f97ad28e7f59e4139aae1209ba1df1dd445c5a44e6b975bed9416a97e681e8 WHIRLPOOL de1ff7b57a553efe9647b19c844107dc2a18dae0366c866ddf6d6035e40c1c532ad1bb81d03bc48af506996b4978c76392c98b4de5e8ba374dc3e6b4f334a27c
diff --git a/dev-python/falcon/falcon-0.1.6.ebuild b/dev-python/falcon/falcon-0.1.6.ebuild
new file mode 100644
index 00000000000..42c26a4b8d8
--- /dev/null
+++ b/dev-python/falcon/falcon-0.1.6.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Python 2.6 is supported, but depends on ordereddict, which has been in
+# improvise for months and is a minimal package. If needed
+# please let me know. PyPy also works
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A supersonic micro-framework for building cloud APIs"
+HOMEPAGE="http://falconframework.org/ https://pypi.python.org/pypi/falcon"
+SRC_URI="https://github.com/racker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+cython test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ cython? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})] )"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+src_prepare() {
+ if ! use cython; then
+ sed -i -e 's/if with_cython:/if False:/' setup.py \
+ || die 'sed failed.'
+ fi
+}
diff --git a/dev-python/falcon/falcon-0.1.7.ebuild b/dev-python/falcon/falcon-0.1.7.ebuild
new file mode 100644
index 00000000000..e3b2b3a64f1
--- /dev/null
+++ b/dev-python/falcon/falcon-0.1.7.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Python 2.6 is supported, but depends on ordereddict, which has been in
+# improvise for months and is a minimal package. If needed
+# please let me know. PyPy also works
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A supersonic micro-framework for building cloud APIs"
+HOMEPAGE="http://falconframework.org/ https://pypi.python.org/pypi/falcon"
+SRC_URI="https://github.com/racker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+cython test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ dev-python/mimeparse[${PYTHON_USEDEP}]
+ cython? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})] )"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+src_prepare() {
+ if ! use cython; then
+ sed -i -e 's/if with_cython:/if False:/' setup.py \
+ || die 'sed failed.'
+ fi
+}
diff --git a/dev-python/falcon/falcon-0.1.8.ebuild b/dev-python/falcon/falcon-0.1.8.ebuild
new file mode 100644
index 00000000000..4cf1192409f
--- /dev/null
+++ b/dev-python/falcon/falcon-0.1.8.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Python 2.6 is supported, but depends on ordereddict, which has been in
+# improvise for months and is a minimal package. If needed
+# please let me know. PyPy also works
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A supersonic micro-framework for building cloud APIs"
+HOMEPAGE="http://falconframework.org/ https://pypi.python.org/pypi/falcon"
+SRC_URI="https://github.com/racker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+cython test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ dev-python/mimeparse[${PYTHON_USEDEP}]
+ cython? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})] )"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+src_prepare() {
+ if ! use cython; then
+ sed -i -e 's/if with_cython:/if False:/' setup.py \
+ || die 'sed failed.'
+ fi
+
+ # fix tests installation : potential file collision
+ sed -e 's@^where = tests@where = falcon/tests@g' -i setup.cfg || die
+ mv tests falcon/
+}
diff --git a/dev-python/falcon/falcon-0.1.9.ebuild b/dev-python/falcon/falcon-0.1.9.ebuild
new file mode 100644
index 00000000000..4cf1192409f
--- /dev/null
+++ b/dev-python/falcon/falcon-0.1.9.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Python 2.6 is supported, but depends on ordereddict, which has been in
+# improvise for months and is a minimal package. If needed
+# please let me know. PyPy also works
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A supersonic micro-framework for building cloud APIs"
+HOMEPAGE="http://falconframework.org/ https://pypi.python.org/pypi/falcon"
+SRC_URI="https://github.com/racker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+cython test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ dev-python/mimeparse[${PYTHON_USEDEP}]
+ cython? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})] )"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/cython[$(python_gen_usedep python{2_7,3_3})]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+src_prepare() {
+ if ! use cython; then
+ sed -i -e 's/if with_cython:/if False:/' setup.py \
+ || die 'sed failed.'
+ fi
+
+ # fix tests installation : potential file collision
+ sed -e 's@^where = tests@where = falcon/tests@g' -i setup.cfg || die
+ mv tests falcon/
+}
diff --git a/dev-python/falcon/metadata.xml b/dev-python/falcon/metadata.xml
new file mode 100644
index 00000000000..6e6c7a6301a
--- /dev/null
+++ b/dev-python/falcon/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <use>
+ <flag name="cython">Build cython-based python modules</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">racker/falcon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/feedgenerator/Manifest b/dev-python/feedgenerator/Manifest
new file mode 100644
index 00000000000..0ac1127adb9
--- /dev/null
+++ b/dev-python/feedgenerator/Manifest
@@ -0,0 +1,2 @@
+DIST feedgenerator-1.6.tar.gz 21517 SHA256 ec66b671a946381e02ee97b5f4746959c4bda960be4994ce39be5a7f5eb445fe SHA512 6b96094209ae206be75909f2ad9a9420a06e1fa47b8a5e28db4da16c5b157014f9f8d1677edc8a7347384fe0f0a91aa4f664257adfa994a46b6dc49d9349472b WHIRLPOOL f334860efbce23b2ab9c3217f035d5f1263cc59ac7434b6be68f62b683d3b765f88f0c1566a1ef34634e167b3746720b6718577e54c47afcadd0676e115e74d5
+DIST feedgenerator-1.7.tar.gz 22155 SHA256 5d6b0b10134ac392be0c0c3a39c0e1d7e9c17cc7894590f75981e3f497a4a60f SHA512 359e584af7766b1a67c752df88ad67f06f9b2a6677d2e858484286b079e33b47192a5cf141fc86eb5590d86175e24d3fa1e87506773c28f6a35b2dc545520044 WHIRLPOOL 0d9d2b22ac0c6b31ae3b53d48e07d9707d83d895ce6b16f59ecf6d03269435d7bd88b9309673de688b09b68a120bd316b6ad51efc7d9cdc3b73882217f2fecb2
diff --git a/dev-python/feedgenerator/feedgenerator-1.6.ebuild b/dev-python/feedgenerator/feedgenerator-1.6.ebuild
new file mode 100644
index 00000000000..da6bc740e30
--- /dev/null
+++ b/dev-python/feedgenerator/feedgenerator-1.6.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Standalone version of django.utils.feedgenerator"
+HOMEPAGE="http://pypi.python.org/pypi/feedgenerator"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/six[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # Allow pypy to read MANIFEST.in
+ ln -s tests_feedgenerator tests || die
+}
+
+python_test() {
+ "${PYTHON}" setup.py test
+}
diff --git a/dev-python/feedgenerator/feedgenerator-1.7.ebuild b/dev-python/feedgenerator/feedgenerator-1.7.ebuild
new file mode 100644
index 00000000000..4b1cf7c8210
--- /dev/null
+++ b/dev-python/feedgenerator/feedgenerator-1.7.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Standalone version of django.utils.feedgenerator"
+HOMEPAGE="http://pypi.python.org/pypi/feedgenerator"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/six[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # Allow pypy to read MANIFEST.in
+ ln -s tests_feedgenerator tests || die
+}
+
+python_test() {
+ "${PYTHON}" setup.py test
+}
diff --git a/dev-python/feedgenerator/metadata.xml b/dev-python/feedgenerator/metadata.xml
new file mode 100644
index 00000000000..802d27dc6b5
--- /dev/null
+++ b/dev-python/feedgenerator/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">feedgenerator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/feedparser/Manifest b/dev-python/feedparser/Manifest
new file mode 100644
index 00000000000..666cbb2fbb2
--- /dev/null
+++ b/dev-python/feedparser/Manifest
@@ -0,0 +1 @@
+DIST feedparser-5.1.3.tar.bz2 202373 SHA256 7f6507d400d07edfd1ea8205da36808009b0c539f5b8a6e0ab54337b955e6dc3 SHA512 6a0374e001295566316ad86a581c875cd367fc6200e30296bf917cdff7fa2a83c05565b747c37079f38755ce94565d56890a995be7ee020d0f9466ee1b7c079b WHIRLPOOL bacb6cf0563ee7feb476ea4b767586cb6fbd649d036f72f18b60330e4b4120ccb1e65a923e121108eecf64ea2343fd7a40dd56d7bf71384ff3f52ad20a59a54b
diff --git a/dev-python/feedparser/feedparser-5.1.3-r2.ebuild b/dev-python/feedparser/feedparser-5.1.3-r2.ebuild
new file mode 100644
index 00000000000..7ae303fee95
--- /dev/null
+++ b/dev-python/feedparser/feedparser-5.1.3-r2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_{3,4}} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Parse RSS and Atom feeds in Python"
+HOMEPAGE="http://code.google.com/p/feedparser/ http://pypi.python.org/pypi/feedparser"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.bz2"
+
+# sgmllib is licensed under PSF-2.
+LICENSE="BSD-2 PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+# Tests have issues with chardet installed, and are just kind of buggy.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-backport_fix_for_chardet-py3.patch
+)
+
+python_prepare_all() {
+ mv feedparser/sgmllib3.py feedparser/_feedparser_sgmllib.py || die
+ epatch "${FILESDIR}/${PN}-5.1-sgmllib.patch"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cp feedparser/feedparsertest.py "${BUILD_DIR}" || die
+ ln -s "${S}/feedparser/tests" "${BUILD_DIR}/tests" || die
+ cd "${BUILD_DIR}" || die
+ if [[ ${EPYTHON} == python3* ]]; then
+ 2to3 --no-diffs -w -n feedparsertest.py || die
+ fi
+ "${PYTHON}" feedparsertest.py || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/feedparser/files/feedparser-5.0.1-sgmllib.patch b/dev-python/feedparser/files/feedparser-5.0.1-sgmllib.patch
new file mode 100644
index 00000000000..426290370d4
--- /dev/null
+++ b/dev-python/feedparser/files/feedparser-5.0.1-sgmllib.patch
@@ -0,0 +1,26 @@
+--- feedparser/feedparser.py
++++ feedparser/feedparser.py
+@@ -135,7 +135,11 @@
+ #ACCEPTABLE_URI_SCHEMES = ()
+
+ # ---------- required modules (should come with any Python distribution) ----------
+-import sgmllib, re, sys, copy, urlparse, time, types, cgi, urllib, urllib2, datetime
++import re, sys, copy, urlparse, time, types, cgi, urllib, urllib2, datetime
++try:
++ import sgmllib
++except ImportError:
++ import _feedparser_sgmllib as sgmllib
+ try:
+ from io import BytesIO as _StringIO
+ except ImportError:
+--- setup.py
++++ setup.py
+@@ -17,7 +17,7 @@
+ download_url = 'http://code.google.com/p/feedparser/',
+ platforms = ['POSIX', 'Windows'],
+ package_dir = {'': 'feedparser'},
+- py_modules = ['feedparser'],
++ py_modules = ['feedparser', '_feedparser_sgmllib'],
+ keywords = ['atom', 'cdf', 'feed', 'parser', 'rdf', 'rss'],
+ classifiers = [
+ 'Development Status :: 5 - Production/Stable',
diff --git a/dev-python/feedparser/files/feedparser-5.1-sgmllib.patch b/dev-python/feedparser/files/feedparser-5.1-sgmllib.patch
new file mode 100644
index 00000000000..63c12ba0c36
--- /dev/null
+++ b/dev-python/feedparser/files/feedparser-5.1-sgmllib.patch
@@ -0,0 +1,78 @@
+From 812793c07d3202d3f5bc39091aec2e7071d000c8 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 1 Jan 2012 19:30:57 +0100
+Subject: [PATCH] Use shipped sgmllib for Python 3.x
+
+---
+ feedparser/feedparser.py | 19 +++----------------
+ setup.py | 2 +-
+ 2 files changed, 4 insertions(+), 17 deletions(-)
+
+diff --git a/feedparser/feedparser.py b/feedparser/feedparser.py
+index 8275c29..9a8a053 100644
+--- a/feedparser/feedparser.py
++++ b/feedparser/feedparser.py
+@@ -204,17 +204,9 @@ else:
+ try:
+ import sgmllib
+ except ImportError:
+- # This is probably Python 3, which doesn't include sgmllib anymore
+- _SGML_AVAILABLE = 0
++ import _feedparser_sgmllib as sgmllib
+
+- # Mock sgmllib enough to allow subclassing later on
+- class sgmllib(object):
+- class SGMLParser(object):
+- def goahead(self, i):
+- pass
+- def parse_starttag(self, i):
+- pass
+-else:
++if True:
+ _SGML_AVAILABLE = 1
+
+ # sgmllib defines a number of module-level regular expressions that are
+@@ -2520,9 +2512,6 @@ class _RelativeURIResolver(_BaseHTMLProcessor):
+ _BaseHTMLProcessor.unknown_starttag(self, tag, attrs)
+
+ def _resolveRelativeURIs(htmlSource, baseURI, encoding, _type):
+- if not _SGML_AVAILABLE:
+- return htmlSource
+-
+ p = _RelativeURIResolver(baseURI, encoding, _type)
+ p.feed(htmlSource)
+ return p.output()
+@@ -2803,8 +2792,6 @@ class _HTMLSanitizer(_BaseHTMLProcessor):
+
+
+ def _sanitizeHTML(htmlSource, encoding, _type):
+- if not _SGML_AVAILABLE:
+- return htmlSource
+ p = _HTMLSanitizer(encoding, _type)
+ htmlSource = htmlSource.replace('<![CDATA[', '&lt;![CDATA[')
+ p.feed(htmlSource)
+@@ -3890,7 +3877,7 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer
+ result['bozo'] = 1
+ result['bozo_exception'] = feedparser.exc or e
+ use_strict_parser = 0
+- if not use_strict_parser and _SGML_AVAILABLE:
++ if not use_strict_parser:
+ feedparser = _LooseFeedParser(baseuri, baselang, 'utf-8', entities)
+ feedparser.feed(data.decode('utf-8', 'replace'))
+ result['feed'] = feedparser.feeddata
+diff --git a/setup.py b/setup.py
+index a4a60fe..8c15451 100644
+--- a/setup.py
++++ b/setup.py
+@@ -16,7 +16,7 @@ setup(
+ download_url = 'http://code.google.com/p/feedparser/',
+ platforms = ['POSIX', 'Windows'],
+ package_dir = {'': 'feedparser'},
+- py_modules = ['feedparser'],
++ py_modules = ['feedparser', '_feedparser_sgmllib'],
+ keywords = ['atom', 'cdf', 'feed', 'parser', 'rdf', 'rss'],
+ classifiers = [
+ 'Development Status :: 5 - Production/Stable',
+--
+1.7.8.1
+
diff --git a/dev-python/feedparser/files/feedparser-5.1.3-backport_fix_for_chardet-py3.patch b/dev-python/feedparser/files/feedparser-5.1.3-backport_fix_for_chardet-py3.patch
new file mode 100644
index 00000000000..6b03ddea8cb
--- /dev/null
+++ b/dev-python/feedparser/files/feedparser-5.1.3-backport_fix_for_chardet-py3.patch
@@ -0,0 +1,32 @@
+From 20a32910f4a521788ba93a8c809cf0db702bed5b Mon Sep 17 00:00:00 2001
+From: Kurt McKee <contactme@kurtmckee.org>
+Date: Mon, 17 Dec 2012 10:41:13 -0600
+Subject: [PATCH] Fix chardet support in Python 3
+
+Fixes issue 384.
+Thanks to Google user Arfrever.TFA for reporting this!
+---
+ NEWS | 1 +
+ feedparser/feedparser.py | 6 +++++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/feedparser/feedparser.py b/feedparser/feedparser.py
+index c78e6a3..e977ae8 100644
+--- a/feedparser/feedparser.py
++++ b/feedparser/feedparser.py
+@@ -3766,7 +3766,11 @@ def convert_to_utf8(http_headers, data):
+ chardet_encoding = None
+ tried_encodings = []
+ if chardet:
+- chardet_encoding = unicode(chardet.detect(data)['encoding'] or '', 'ascii', 'ignore')
++ chardet_encoding = chardet.detect(data)['encoding']
++ if not chardet_encoding:
++ chardet_encoding = ''
++ if not isinstance(chardet_encoding, unicode):
++ chardet_encoding = unicode(chardet_encoding, 'ascii', 'ignore')
+ # try: HTTP encoding, declared XML encoding, encoding sniffed from BOM
+ for proposed_encoding in (rfc3023_encoding, xml_encoding, bom_encoding,
+ chardet_encoding, u'utf-8', u'windows-1252', u'iso-8859-2'):
+--
+1.8.5.5
+
diff --git a/dev-python/feedparser/metadata.xml b/dev-python/feedparser/metadata.xml
new file mode 100644
index 00000000000..ec031c36b1f
--- /dev/null
+++ b/dev-python/feedparser/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>Parse RSS and Atom feeds in Python. 2000 unit tests. Open source.</longdescription>
+ <upstream>
+ <remote-id type="google-code">feedparser</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/fexpect/Manifest b/dev-python/fexpect/Manifest
new file mode 100644
index 00000000000..1c7698ca081
--- /dev/null
+++ b/dev-python/fexpect/Manifest
@@ -0,0 +1 @@
+DIST fexpect-0.2.tar.gz 6260 SHA256 d037d1282a43ed38b3edc6b33dabaa543b8b274e92753cbb565d21aa10f52a0c SHA512 45b14bfc50f5e2a5dca45594b024a213c270196a89b1ee51c6a8107d6f8b46ab1ca1362331372492307a2e42adef60be444465d33248788ae2ba2728e42cf580 WHIRLPOOL 2dfd4092ab30870c36ad2dedcaaeff65e58bd1530f3a71831c2ad41d4f4dbdb484c8f79a6baffc585dc48e855ddd9e8c08a3f1c8993628c689907dc3c79bf174
diff --git a/dev-python/fexpect/fexpect-0.2.ebuild b/dev-python/fexpect/fexpect-0.2.ebuild
new file mode 100644
index 00000000000..de6a48b575a
--- /dev/null
+++ b/dev-python/fexpect/fexpect-0.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension for fabric to handle prompts through pexpect"
+HOMEPAGE="https://github.com/ilogue/fexpect"
+SRC_URI="https://github.com/ilogue/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD-2"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/fabric[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/shortuuid[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/fexpect/metadata.xml b/dev-python/fexpect/metadata.xml
new file mode 100644
index 00000000000..2ab56b42c05
--- /dev/null
+++ b/dev-python/fexpect/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ilogue/fexpect</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/figleaf/Manifest b/dev-python/figleaf/Manifest
new file mode 100644
index 00000000000..ed0b37d2719
--- /dev/null
+++ b/dev-python/figleaf/Manifest
@@ -0,0 +1 @@
+DIST figleaf-0.6.1.tar.gz 59051 SHA256 04d22485db08f9f60c7de92407753423fa0f574c00211e409e8b0f9482f2f062 SHA512 c759ff9c0946e05a913f85c628acfa1a5636fa422ca93aa10ed8999baafebef395dabf69cc0b6d740bfa11608dc6f2ad6e8001ca314f476d2f582f5d217b8937 WHIRLPOOL 79ed1b9ea789b7317592a73b1dcf258e1ee5b3e11bdf711786010818c24b4517a2268372491f906b884988adfe6ea98328bd0df7519867ed5823d90311f262c0
diff --git a/dev-python/figleaf/figleaf-0.6.1-r1.ebuild b/dev-python/figleaf/figleaf-0.6.1-r1.ebuild
new file mode 100644
index 00000000000..163f350175d
--- /dev/null
+++ b/dev-python/figleaf/figleaf-0.6.1-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Code coverage tool"
+HOMEPAGE="http://darcs.idyll.org/~t/projects/figleaf/doc/ http://pypi.python.org/pypi/figleaf"
+SRC_URI="http://darcs.idyll.org/~t/projects/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+DOCS="doc/*.txt doc/ChangeLog"
+
+python_test() {
+ nosetests || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/figleaf/metadata.xml b/dev-python/figleaf/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/figleaf/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/fixtures/Manifest b/dev-python/fixtures/Manifest
new file mode 100644
index 00000000000..e77ecb0acf1
--- /dev/null
+++ b/dev-python/fixtures/Manifest
@@ -0,0 +1,4 @@
+DIST fixtures-0.3.14.tar.gz 34586 SHA256 4cc3313e52519d2671bd22aacd4b3fde9d96b31eb49db04a7cd5ccc61fec5139 SHA512 096466bfd2d2c2bb73461145e060d351fb4cba4ab52885ee7dc376ce68aced190d4f8d9969e7a94fcf90dcafd9bd6579a3ce2bcccfee33218571cb84c87ac795 WHIRLPOOL ee32650518e8a0fa86f7064d7a4952caed8a4f51a69de959014f82c58ac60765b13e02486261dca118194c683d056d5f3fb2ff0cdccd9abec7316e095862b7a5
+DIST fixtures-1.2.0.tar.gz 45318 SHA256 bb3b677a069d9fc3eb0fbc452965ac8a6c95edc778f3bd05b789ed46d1527b01 SHA512 c2730a2bb1cd5d7fbdf0499fa3cf3b62063d4632207a15e40fa0f6a4ccc0fa0afa786a115ac02cf01eaaac931ea1927bf979ffd446ec41d324862b3f69a8e9c7 WHIRLPOOL 322af23609b331023d03a27305c22e9b078f9d7f08924e217b525a5a64b6c28eec7262c9500cb3fe830095a7a693d0bdc84f952525d94bb1e7e56e627590eb8d
+DIST fixtures-1.3.0.tar.gz 48941 SHA256 81c43b99ee63b2849a7a07c2ddcf147dea0c36260cd71352b649397d427d8f30 SHA512 48bcfd125af25cb594a01b5509730acf1ab8dcc3b19d67c572bad8fb4cd837bd02caa3086bd937fcf5e0ff72cf404988333899471103f37ecff54445e928e433 WHIRLPOOL e871e2092eecadf8a1b1fcd568d3704962e5b03b8374ec3bfee74dedbc1dee5efc3d24b1054e3424ed64830e2f94b1828948810052ef3dccfe5f9051df64c920
+DIST fixtures-1.3.1.tar.gz 49741 SHA256 b63cf3bb37f83ff815456e2d0e118535ae9a4bf43e76d9a1cf3286041bf717ce SHA512 ce6ec1e1edeca34cdca86ca802cf1a468dde141f1ce2345ae9d9fd797e5ae4f9d69f9adbbbc90c6f8f070c6e75932f6d34f08a2f3d2d3109c7c7334cc4e3fe68 WHIRLPOOL 9b94c3a727ad46bee4cb99c2b907c0f38c7a2cf07846abfa90f8996849313dbf27d26742565853eaa580ddd9d42a3176ce691dd25fee5cdd8a1046866bb46695
diff --git a/dev-python/fixtures/fixtures-0.3.14-r2.ebuild b/dev-python/fixtures/fixtures-0.3.14-r2.ebuild
new file mode 100644
index 00000000000..93a2d52e772
--- /dev/null
+++ b/dev-python/fixtures/fixtures-0.3.14-r2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Fixtures, reusable state for writing clean tests and more"
+HOMEPAGE="https://launchpad.net/python-fixtures https://pypi.python.org/pypi/fixtures"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# nose not listed but provides coverage output of tests
+# run of test files by python lacks any output except on fail
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.22[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/testtools-0.9.22"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ pushd "${BUILD_DIR}"/ > /dev/null
+ ln -sf ../README .
+ nosetests lib/${PN}/tests/test_*.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/fixtures/fixtures-1.2.0.ebuild b/dev-python/fixtures/fixtures-1.2.0.ebuild
new file mode 100644
index 00000000000..30711fa855f
--- /dev/null
+++ b/dev-python/fixtures/fixtures-1.2.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Fixtures, reusable state for writing clean tests and more"
+HOMEPAGE="https://launchpad.net/python-fixtures https://pypi.python.org/pypi/fixtures"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# nose not listed but provides coverage output of tests
+# run of test files by python lacks any output except on fail
+DEPEND="test? ( >=dev-python/testtools-0.9.22[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/testtools-0.9.22"
+#DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/fixtures/fixtures-1.3.0.ebuild b/dev-python/fixtures/fixtures-1.3.0.ebuild
new file mode 100644
index 00000000000..4368613f0bf
--- /dev/null
+++ b/dev-python/fixtures/fixtures-1.3.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Fixtures, reusable state for writing clean tests and more"
+HOMEPAGE="https://launchpad.net/python-fixtures https://pypi.python.org/pypi/fixtures"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# nose not listed but provides coverage output of tests
+# run of test files by python lacks any output except on fail
+RDEPEND="dev-python/pbr[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.22[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+#DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/fixtures/fixtures-1.3.1-r1.ebuild b/dev-python/fixtures/fixtures-1.3.1-r1.ebuild
new file mode 100644
index 00000000000..56e3e7490ed
--- /dev/null
+++ b/dev-python/fixtures/fixtures-1.3.1-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Fixtures, reusable state for writing clean tests and more"
+HOMEPAGE="https://launchpad.net/python-fixtures https://pypi.python.org/pypi/fixtures"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# nose not listed but provides coverage output of tests
+# run of test files by python lacks any output except on fail
+RDEPEND="
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.22[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[$(python_gen_usedep python2_7 pypy)] )"
+#DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/fixtures/metadata.xml b/dev-python/fixtures/metadata.xml
new file mode 100644
index 00000000000..af43239d85e
--- /dev/null
+++ b/dev-python/fixtures/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Fixtures defines a Python contract for reusable state / support logic,
+ primarily for unit testing. Helper and adaption logic is included to make
+ it easy to write your own fixtures using the fixtures contract. Glue code
+ is provided that makes using fixtures that meet the Fixtures contract in
+ unittest compatible test cases easy and straight forward.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">fixtures</remote-id>
+ <remote-id type="launchpad">python-fixtures</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flake8/Manifest b/dev-python/flake8/Manifest
new file mode 100644
index 00000000000..1f57485ac49
--- /dev/null
+++ b/dev-python/flake8/Manifest
@@ -0,0 +1,5 @@
+DIST flake8-2.0.tar.gz 10511 SHA256 8dce4f7e64cc202cc6da93eab84b2ce660110ff684b6738bba64a0a431b3bc69 SHA512 6e3d8030562c4489dce8d4b17464ea8c0239b7c28fcefb7c67bff645e18628bc3074ff0ff197ab54228544d0ff85c2ff9509502c8f98371d8dc5df6f1e3ec047 WHIRLPOOL 46dabf0120b97cf20b58d76745dd0c23aec69f4eeb25b8605944c7ca4f8a05580c6c9df3ce7ec4e507f2402ddb53da2a6730cf6b246eec8472562ec33fcbb9e2
+DIST flake8-2.1.0.tar.gz 25010 SHA256 098ab7991067c08cfaa4716de20066d90f66dbc71502114ea8cad9a9fd5c9512 SHA512 bf961d76ed08dafe7c2a9b767594577a57a2276166e515f1d84654223aa50879c5ee1e20919b3a4c7576c7d549037c8cfe67c11ab1f6648a0205200f5060950b WHIRLPOOL 48982d33cd32f557796ef103da441f46d3a6ddbf1d1cace66f3ceac8b31bf78389c72df4a717881fe3735f6301b8ce0831908d32010f94ce72fc5414404261d4
+DIST flake8-2.2.5.tar.gz 28333 SHA256 285e8bd730c0b6fdfbe23c32d2936bffba401f23cab132e8722c68be80d6f182 SHA512 fe5e06d3a7699e3f348181108f1ab3ee9eb1f2b0422de582a172d3a4aed42a5cf839ef8a5b5b113da1e0c3c2b53ed7b43af1ca24314ea842d0d3d3735eba1dee WHIRLPOOL 6c1e737a760876d410fd116bf2b8104f932b6751b5970096ddadcead5937fba21772fb28c1addf8026eda5ec573eb07cd920e46fb711d79f46de559d229c8705
+DIST flake8-2.4.0.tar.gz 67257 SHA256 d26a9d0252da9f831b8277b824961bb10b1f9d79f4752d32e4814b7bcd1e089b SHA512 fda9b8478550cc1b3cb05a0de0c8a008a41e8842c8d27268baa3114abb7358445267bb114942a155b089582314fe952f0714e34d738c054ab8bf46869a2c1b98 WHIRLPOOL f8a516f0d6cabe67484afd0393f0ca13b9cb9e89f28304ea1ea01aaab4b7ccf5d332cdefcf209eb7847e0616c72fe3d152f6f280029d45dbacd7f4d067d92b0f
+DIST flake8-2.4.1.tar.gz 50324 SHA256 2e7ebbe59d8c85e626e36d99f0db2f578394313d3f7ce9dc9f1da57ef6cd7537 SHA512 8ddd07d6be53b06efcf7dd9aa2daa070ab209f7177e46f32a3bcae545acbb5e020aa27aeab54426798ae6c3722b38928b06dc3e53115cc624a16fa0fa97f4840 WHIRLPOOL 9a653900523eded448c5cbeca0b111ba220be39ad307e46ded35a1454904cb59f5e0765425d90e99ae0c853b2931fbe910c4412e73771098bb0a3543adb8cabb
diff --git a/dev-python/flake8/flake8-2.0-r1.ebuild b/dev-python/flake8/flake8-2.0-r1.ebuild
new file mode 100644
index 00000000000..100faea2f57
--- /dev/null
+++ b/dev-python/flake8/flake8-2.0-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="the modular source code checker: pep8, pyflakes and co"
+HOMEPAGE="http://bitbucket.org/tarek/flake8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~hppa ia64 ppc ppc64 x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ >=dev-python/pyflakes-0.6.1[${PYTHON_USEDEP}]
+ >=dev-python/pep8-1.4.3[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.2[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test || die "Tests failed for ${EPYTHON}"
+}
diff --git a/dev-python/flake8/flake8-2.1.0.ebuild b/dev-python/flake8/flake8-2.1.0.ebuild
new file mode 100644
index 00000000000..9eb9bd333d8
--- /dev/null
+++ b/dev-python/flake8/flake8-2.1.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A wrapper around PyFlakes, pep8 & mccabe"
+HOMEPAGE="http://bitbucket.org/tarek/flake8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+# requires.txt inc. mccabe however that creates a circular dep
+RDEPEND=">=dev-python/pyflakes-0.7.3[${PYTHON_USEDEP}]
+ >=dev-python/pep8-1.4.6[${PYTHON_USEDEP}]"
+PDEPEND=">=dev-python/mccabe-0.2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${PDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # This tests requires / assumes this version is already installed.
+ sed -e 's:test_register_extensions:_&:' -i flake8/tests/test_engine.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/flake8/flake8-2.2.5.ebuild b/dev-python/flake8/flake8-2.2.5.ebuild
new file mode 100644
index 00000000000..a7a0617003b
--- /dev/null
+++ b/dev-python/flake8/flake8-2.2.5.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A wrapper around PyFlakes, pep8 & mccabe"
+HOMEPAGE="http://bitbucket.org/tarek/flake8 https://pypi.python.org/pypi/flake8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="alpha amd64 arm hppa ~ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+# requires.txt inc. mccabe however that creates a circular dep
+RDEPEND=">=dev-python/pyflakes-0.7.3[${PYTHON_USEDEP}]
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]"
+PDEPEND=">=dev-python/mccabe-0.2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${PDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # This tests requires / assumes this version is already installed.
+ sed -e 's:test_register_extensions:_&:' -i flake8/tests/test_engine.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/flake8/flake8-2.4.0-r1.ebuild b/dev-python/flake8/flake8-2.4.0-r1.ebuild
new file mode 100644
index 00000000000..6268e476de3
--- /dev/null
+++ b/dev-python/flake8/flake8-2.4.0-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A wrapper around PyFlakes, pep8 & mccabe"
+HOMEPAGE="http://bitbucket.org/tarek/flake8 https://pypi.python.org/pypi/flake8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+# requires.txt inc. mccabe however that creates a circular dep
+RDEPEND=">=dev-python/pyflakes-0.8.1[${PYTHON_USEDEP}]
+ <dev-python/pyflakes-0.9[${PYTHON_USEDEP}]
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ <dev-python/pep8-1.6.0[${PYTHON_USEDEP}]
+ "
+PDEPEND=">=dev-python/mccabe-0.2.1[${PYTHON_USEDEP}]
+ <dev-python/mccabe-0.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${PDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7) )"
+
+python_prepare_all() {
+ # This tests requires / assumes this version is already installed.
+ sed -e 's:test_register_extensions:_&:' -i flake8/tests/test_engine.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/flake8/flake8-2.4.0.ebuild b/dev-python/flake8/flake8-2.4.0.ebuild
new file mode 100644
index 00000000000..b29ce1ec447
--- /dev/null
+++ b/dev-python/flake8/flake8-2.4.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A wrapper around PyFlakes, pep8 & mccabe"
+HOMEPAGE="http://bitbucket.org/tarek/flake8 https://pypi.python.org/pypi/flake8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+# requires.txt inc. mccabe however that creates a circular dep
+RDEPEND=">=dev-python/pyflakes-0.7.3[${PYTHON_USEDEP}]
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]"
+PDEPEND=">=dev-python/mccabe-0.2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${PDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # This tests requires / assumes this version is already installed.
+ sed -e 's:test_register_extensions:_&:' -i flake8/tests/test_engine.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/flake8/flake8-2.4.1.ebuild b/dev-python/flake8/flake8-2.4.1.ebuild
new file mode 100644
index 00000000000..aee5c60a9fd
--- /dev/null
+++ b/dev-python/flake8/flake8-2.4.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A wrapper around PyFlakes, pep8 & mccabe"
+HOMEPAGE="http://bitbucket.org/tarek/flake8 https://pypi.python.org/pypi/flake8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+# requires.txt inc. mccabe however that creates a circular dep
+RDEPEND=">=dev-python/pyflakes-0.8.1[${PYTHON_USEDEP}]
+ <dev-python/pyflakes-0.9[${PYTHON_USEDEP}]
+ >=dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ <dev-python/pep8-1.6.0[${PYTHON_USEDEP}]
+ "
+PDEPEND=">=dev-python/mccabe-0.2.1[${PYTHON_USEDEP}]
+ <dev-python/mccabe-0.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${PDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7) )"
+
+python_prepare_all() {
+ # This tests requires / assumes this version is already installed.
+ sed -e 's:test_register_extensions:_&:' -i flake8/tests/test_engine.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/flake8/metadata.xml b/dev-python/flake8/metadata.xml
new file mode 100644
index 00000000000..6a0b5bd9365
--- /dev/null
+++ b/dev-python/flake8/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">flake8</remote-id>
+ <remote-id type="bitbucket">tarek/flake8</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-admin/Manifest b/dev-python/flask-admin/Manifest
new file mode 100644
index 00000000000..d0d803e02bb
--- /dev/null
+++ b/dev-python/flask-admin/Manifest
@@ -0,0 +1,3 @@
+DIST Flask-Admin-1.0.6.tar.gz 235842 SHA256 c16d1bb1b6c2b6ac8db8486b9a5e1919d1a073252e3fb0c0c226406470113a54 SHA512 a30e2678a063d45d55ccf41cfec07fd16973cc8c770b1e7f16d11b9aba693049b1d9d4cff81d8ae8f2548d019f977f0906728e98d23d229d76bf135a079abc8f WHIRLPOOL 9851b8f7e59c5b7bf99e2e58a0ad72076578f12564146a282b9e3e0e79bd31bec7a1fd394dc807b8152165fce617c6a7b025cfaa987680a649412a3d1c3f8e8c
+DIST Flask-Admin-1.1.0.tar.gz 735408 SHA256 28380393143a9b209e22c256494ba3ab1b6aea86f183962451896e26e75a8609 SHA512 35e21cda38ba8658940356240df7b3feec7619a5ab7c31c70c8a962b385d391d78d6440716c7dfce00fb48bf1243799de2a3d53b3cd0b7eee45137e2ebd3273d WHIRLPOOL d2790169dd3711864ee190c328bc5502622706af6a3c306b7d8c00459a0859af4b527b0dec449a824459361f4602fd1c1f7a96212e2585c3d46df3beb48197ec
+DIST Flask-Admin-1.2.0.tar.gz 790881 SHA256 beb4b3edc25319e8848889ff2460f489cf85a457a46d1f1cbc09f332452d0260 SHA512 77be8cabfde74ccaef4818e914d792583b54dcdeedb15f89bcc89e074e18333a9a40d9ea03bef6c3409c24a18cd9ede06fbf9f3a7529c63ef28affd705a2d42a WHIRLPOOL abf61615f724586a3074b3ca546be96d9d332c8ffb1cf15111b9c837c7c2b9495a6664eb7cdc6ba9b4cbda6694ea2219547e302b621aa170a1d6c6355191d6aa
diff --git a/dev-python/flask-admin/flask-admin-1.0.6.ebuild b/dev-python/flask-admin/flask-admin-1.0.6.ebuild
new file mode 100644
index 00000000000..307cf37bf51
--- /dev/null
+++ b/dev-python/flask-admin/flask-admin-1.0.6.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+#RESTRICT="test" # we're still missing some of the dependencies
+
+MY_PN="Flask-Admin"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple and extensible admin interface framework for Flask"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-wtf[${PYTHON_USEDEP}]
+ dev-python/flask-pymongo[${PYTHON_USEDEP}]
+ dev-python/flask-peewee[${PYTHON_USEDEP}]
+ dev-python/flask-mongoengine[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed \
+ -e 's:find_packages():find_packages(exclude=["*.examples", "*.examples.*", "examples.*", "examples"]):g' \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-admin/flask-admin-1.1.0.ebuild b/dev-python/flask-admin/flask-admin-1.1.0.ebuild
new file mode 100644
index 00000000000..5716fdce2fe
--- /dev/null
+++ b/dev-python/flask-admin/flask-admin-1.1.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+#RESTRICT="test" # we're still missing some of the dependencies
+
+MY_PN="Flask-Admin"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple and extensible admin interface framework for Flask"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND="
+ >=dev-python/flask-0.7[${PYTHON_USEDEP}]
+ dev-python/wtforms[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-wtf[${PYTHON_USEDEP}]
+ dev-python/flask-pymongo[${PYTHON_USEDEP}]
+ dev-python/flask-peewee[${PYTHON_USEDEP}]
+ dev-python/flask-mongoengine[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed \
+ -e 's:find_packages():find_packages(exclude=["*.examples", "*.examples.*", "examples.*", "examples"]):g' \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-admin/flask-admin-1.2.0.ebuild b/dev-python/flask-admin/flask-admin-1.2.0.ebuild
new file mode 100644
index 00000000000..f98ad9148da
--- /dev/null
+++ b/dev-python/flask-admin/flask-admin-1.2.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+#RESTRICT="test" # we're still missing some of the dependencies
+
+MY_PN="Flask-Admin"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple and extensible admin interface framework for Flask"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND="
+ >=dev-python/flask-0.7[${PYTHON_USEDEP}]
+ dev-python/wtforms[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-wtf[${PYTHON_USEDEP}]
+ dev-python/flask-pymongo[${PYTHON_USEDEP}]
+ dev-python/flask-peewee[${PYTHON_USEDEP}]
+ dev-python/flask-mongoengine[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed \
+ -e 's:find_packages():find_packages(exclude=["*.examples", "*.examples.*", "examples.*", "examples"]):g' \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-admin/metadata.xml b/dev-python/flask-admin/metadata.xml
new file mode 100644
index 00000000000..1c2961df65f
--- /dev/null
+++ b/dev-python/flask-admin/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Admin</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-babel/Manifest b/dev-python/flask-babel/Manifest
new file mode 100644
index 00000000000..5f0e2693202
--- /dev/null
+++ b/dev-python/flask-babel/Manifest
@@ -0,0 +1,2 @@
+DIST Flask-Babel-0.8.tar.gz 44520 SHA256 a255d77910ddfbebc6318c618d9a23cda5d018c86c7e0dea64dc860a16cb3daa SHA512 76e34df0748ec0ee2c0964ab07e85dd708c38601e55626fcc40b5a6064e5f2065c1969c4f888827225daf0ce2bf0a41670ba020f7d52b93915f4120cc478798d WHIRLPOOL 35f914bc4e765e03ccf699bbba696980b1ea48e07491d9e401c9ac76ce701575e8d0d69a63c144ad45fd2df76c7d3948b15cadfdbbc7ffd528ee5eca73e0bd31
+DIST Flask-Babel-0.9.tar.gz 38881 SHA256 4afd150f360434b00684ba7848358f7961072fd0658a6e81aaa578522699fb4c SHA512 c667c8a532332bb3dd0d694932d17f7f9b2b51f68151767624116853b2e71f2a6b4c47164d17a6f368b67a5cabce97495b18147655fb36aee5034c058d3b9a89 WHIRLPOOL 28309a4a27bfd0fbe30be52613ee9eef5110e3cc38e863c6de200cced579476870e01b92edaeb08fd29e0deabcaa13d14742d188960742d61cf8ba5384476cd1
diff --git a/dev-python/flask-babel/flask-babel-0.8-r1.ebuild b/dev-python/flask-babel/flask-babel-0.8-r1.ebuild
new file mode 100644
index 00000000000..38812392d29
--- /dev/null
+++ b/dev-python/flask-babel/flask-babel-0.8-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Babel"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="i18n and l10n support for Flask based on Babel and pytz"
+HOMEPAGE="http://packages.python.org/Flask-Babel/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/Babel[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/speaklater-1.2[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-babel/flask-babel-0.9.ebuild b/dev-python/flask-babel/flask-babel-0.9.ebuild
new file mode 100644
index 00000000000..f1c3a5091cc
--- /dev/null
+++ b/dev-python/flask-babel/flask-babel-0.9.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Babel"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="i18n and l10n support for Flask based on Babel and pytz"
+HOMEPAGE="http://packages.python.org/Flask-Babel/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/Babel[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/speaklater-1.2[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/flask-babel/metadata.xml b/dev-python/flask-babel/metadata.xml
new file mode 100644
index 00000000000..4b2d2a83f5b
--- /dev/null
+++ b/dev-python/flask-babel/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Babel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-cors/Manifest b/dev-python/flask-cors/Manifest
new file mode 100644
index 00000000000..f291c524a16
--- /dev/null
+++ b/dev-python/flask-cors/Manifest
@@ -0,0 +1,2 @@
+DIST flask-cors-1.8.0.tar.gz 17368 SHA256 da01f3ecf6d3d5c9c45ccdd95e6f93bc04a31f403ff5e4ad2e6c0fca99eb2cf1 SHA512 185a4e5785223d547373ff40d18dee2112a8da2dec2ecb39cb7b7c394e9220551e46302590870393c35902dd12e58d3d7cd4fb8fa052828b21d4107457a080fa WHIRLPOOL 1631d5c8e4521a31adcf061a6fbb21b9019835d3718ff02d16d2fe48af57d23d6cef01d740887d6b592ee420ba0c74ccb27a3a402547257823bc7a894793373a
+DIST flask-cors-1.9.0.tar.gz 22846 SHA256 d1237b21c3f98ea8bed387efdf1db1d1078df9c480f8fe06db21ff130420200b SHA512 0ed2d4fdd80b43bbbcab4257c3917ea12b39a9da89989e3cad5575d1ebca1523f9cefaca6c36b4dae81629f65936b2cdf3af04c789b28cc03d5660062c2a0e56 WHIRLPOOL 8356937c86d67da4084405d2a1565165da07a467f979c324d72dc4630f3abb7b1f2f906d700592a730a94a19fa12346014788863fa2f7041b5a015300349e16d
diff --git a/dev-python/flask-cors/flask-cors-1.8.0.ebuild b/dev-python/flask-cors/flask-cors-1.8.0.ebuild
new file mode 100644
index 00000000000..899087975fc
--- /dev/null
+++ b/dev-python/flask-cors/flask-cors-1.8.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Cors"
+MY_P="${MY_PN}-${PV}"
+
+if [[ "${PV}" == "9999" ]]; then
+ inherit git-2
+ EGIT_REPO_URI="git://github.com/wcdolphin/${PN}.git"
+ SRC_URI=""
+else
+ SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="A Flask extension for Cross Origin Resource Sharing (CORS)"
+HOMEPAGE="https://github.com/wcdolphin/flask-cors https://pypi.python.org/pypi/Flask-Cors"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/flask-cors/flask-cors-1.9.0.ebuild b/dev-python/flask-cors/flask-cors-1.9.0.ebuild
new file mode 100644
index 00000000000..23f893bcd9a
--- /dev/null
+++ b/dev-python/flask-cors/flask-cors-1.9.0.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Cors"
+MY_P="${MY_PN}-${PV}"
+
+if [[ "${PV}" == "9999" ]]; then
+ inherit git-2
+ EGIT_REPO_URI="git://github.com/wcdolphin/${PN}.git"
+ SRC_URI=""
+else
+ SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="A Flask extension for Cross Origin Resource Sharing (CORS)"
+HOMEPAGE="https://github.com/wcdolphin/flask-cors https://pypi.python.org/pypi/Flask-Cors"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ ${RDEPEND}
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-cors/metadata.xml b/dev-python/flask-cors/metadata.xml
new file mode 100644
index 00000000000..57ead952707
--- /dev/null
+++ b/dev-python/flask-cors/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>wking@tremily.us</email>
+ <name>W. Trevor King</name>
+ <description>proxy maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Flask-Cors</remote-id>
+ <remote-id type="github">wcdolphin/flask-cors</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-dashed/Manifest b/dev-python/flask-dashed/Manifest
new file mode 100644
index 00000000000..fb4a197c962
--- /dev/null
+++ b/dev-python/flask-dashed/Manifest
@@ -0,0 +1 @@
+DIST Flask-Dashed-0.1b2.tar.gz 325834 SHA256 fe49940e39a9eaeafa9d26eb81db0fee1eba54d87ef3a5d7489072cd221c28b0 SHA512 daccb1e4ac83a598c25c7ef202f50f08c19473aa27d8c936a9918b3e45bc9da06de7499a3976e6fff001fd81cec787093594a13c814bf26e2315793a0c8efded WHIRLPOOL e6e520ae230028bf23c1950faf075ccc36cb5bd6b4dfa47f04f39e863943bd75963d51c5f5864dbd50b73bb76505126ff2820a1349beb5af63ff0893e8f0e0bd
diff --git a/dev-python/flask-dashed/flask-dashed-0.1b_p2.ebuild b/dev-python/flask-dashed/flask-dashed-0.1b_p2.ebuild
new file mode 100644
index 00000000000..164c6db1794
--- /dev/null
+++ b/dev-python/flask-dashed/flask-dashed-0.1b_p2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Dashed"
+MY_PV="${PV/_p/}"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="Admin app framework for flask"
+HOMEPAGE="http://pythonhosted.org/${MY_PN}/ https://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-wtf[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ distutils-r1_src_prepare
+ rm -rf "${S}/tests"
+}
diff --git a/dev-python/flask-dashed/metadata.xml b/dev-python/flask-dashed/metadata.xml
new file mode 100644
index 00000000000..bdd76fd9f02
--- /dev/null
+++ b/dev-python/flask-dashed/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Dashed</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-evolution/Manifest b/dev-python/flask-evolution/Manifest
new file mode 100644
index 00000000000..724832d83d1
--- /dev/null
+++ b/dev-python/flask-evolution/Manifest
@@ -0,0 +1,2 @@
+DIST Flask-Evolution-0.5.tar.gz 3582 SHA256 f1a177eebd7908bc2390956754cf9b7c6d29f915d760db867d4b094843020dbb SHA512 94c7861a218563e6e72b831728bd199d2eb4850a14fab5e144cde9d44fe2545ea739019250073a27bed588b2bbfc88da7067ce3495dab355398bc0aba5a5960d WHIRLPOOL b7874931624b0a88954bb8bcd980b614cd672a52d88c6870f254268f79a1a071279d8a7262f79d79bf3f60ca87d85cd34e468856e3a86b6262e389230429079c
+DIST Flask-Evolution-0.6.tar.gz 3480 SHA256 54be57ccc4cac5a5fe54fa4635e792e69bd1959a6d60318fe8c0a414f3963591 SHA512 04fd348b7ed0dc93d864bf012dd9708a8c4c0fac81cd31ddffe91159a7631f42095bb9d6bcacc08cc5498d836e3497b4ea9896f1df039a12eb78d5e2c236c7ba WHIRLPOOL 4a17cc623bc68caa3c50368bcddfc556722047110fcd435fdd62af9769e81717192943863bd0c34d76f4b1c41c270571983e0cfbf5c5b6215738e290a2f2b6de
diff --git a/dev-python/flask-evolution/flask-evolution-0.5-r1.ebuild b/dev-python/flask-evolution/flask-evolution-0.5-r1.ebuild
new file mode 100644
index 00000000000..784459466fa
--- /dev/null
+++ b/dev-python/flask-evolution/flask-evolution-0.5-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Evolution"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple migrations for Flask/SQLAlchemy projects"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-Evolution"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/flask-script[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/flask-evolution/flask-evolution-0.6.ebuild b/dev-python/flask-evolution/flask-evolution-0.6.ebuild
new file mode 100644
index 00000000000..51beca1d5c7
--- /dev/null
+++ b/dev-python/flask-evolution/flask-evolution-0.6.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Evolution"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple migrations for Flask/SQLAlchemy projects"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-Evolution"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/flask-script[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/flask-evolution/metadata.xml b/dev-python/flask-evolution/metadata.xml
new file mode 100644
index 00000000000..5042ee1f20e
--- /dev/null
+++ b/dev-python/flask-evolution/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Evolution</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-login/Manifest b/dev-python/flask-login/Manifest
new file mode 100644
index 00000000000..0df5d760ed0
--- /dev/null
+++ b/dev-python/flask-login/Manifest
@@ -0,0 +1 @@
+DIST Flask-Login-0.2.11.tar.gz 11099 SHA256 83d5f10e5c4f214feed6cc41c212db63a58a15ac32e56df81591bfa0a5cee3e5 SHA512 7a9f8a782d182255f5e96a53c5d3a13479b5bac5f8d4af75b7407e3d5f4854cc7b54aa0ff46b29701c050d99de159cea04fff22dea762391447ffefdb7059905 WHIRLPOOL 7f2147d2966ec8a53b4b30a01778336e7e7934fe48bc17009efedfdd05a76b90926622b1917e2ea23599907984eb6683e5f701e7101ce42dce8743e1a65c2038
diff --git a/dev-python/flask-login/flask-login-0.2.11.ebuild b/dev-python/flask-login/flask-login-0.2.11.ebuild
new file mode 100644
index 00000000000..11f179ef757
--- /dev/null
+++ b/dev-python/flask-login/flask-login-0.2.11.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Login"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Login session support for Flask"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-Login"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=dev-python/flask-0.10[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/flask-login/metadata.xml b/dev-python/flask-login/metadata.xml
new file mode 100644
index 00000000000..f5a779b38f1
--- /dev/null
+++ b/dev-python/flask-login/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Login</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-mail/Manifest b/dev-python/flask-mail/Manifest
new file mode 100644
index 00000000000..93a7df7886d
--- /dev/null
+++ b/dev-python/flask-mail/Manifest
@@ -0,0 +1,2 @@
+DIST Flask-Mail-0.9.0.tar.gz 43457 SHA256 db9669d1eac783e73f06406f36bb5f71eae99b6c24e5849d76934641e3f6263e SHA512 273f21f36b46c8c86c34d5377764a684cfb53501201d5ec4d17f6ce59de1ce0654904790d3ca03a0947106d1384de65faf73d917892c386d00cebbe7aae4bc66 WHIRLPOOL 4e8103ac69c9e280ec2370b7e5dd43bc439d4cd6aa5afad1d9f1861141469120523d636d297826dae5fa60b4adfc84a3d12fd08338a9afb9ad235eef072b3399
+DIST Flask-Mail-0.9.1.tar.gz 45654 SHA256 22e5eb9a940bf407bcf30410ecc3708f3c56cc44b29c34e1726fe85006935f41 SHA512 1d19f0bade77c66e73624d8af0919165f8b6f208a00c1e4025049b50ad56912557b8446cb80f8567adf697e92b126954a5f130bd9fa7a2345d4e98e35b29ac47 WHIRLPOOL ecaecab331b47b8901448c50e0dc480a657df773f8c851f85cb4cb6814b820e9fdf0d23b7c51c74e69ad7be1e4e9da32304e23795c28502cf5bb9bd1ee57bfda
diff --git a/dev-python/flask-mail/flask-mail-0.9.0.ebuild b/dev-python/flask-mail/flask-mail-0.9.0.ebuild
new file mode 100644
index 00000000000..336523715ae
--- /dev/null
+++ b/dev-python/flask-mail/flask-mail-0.9.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Mail"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Flask extension for sending email"
+HOMEPAGE="http://pythonhosted.org/Flask-Mail/ https://pypi.python.org/pypi/Flask-Mail"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/blinker[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-mail/flask-mail-0.9.1.ebuild b/dev-python/flask-mail/flask-mail-0.9.1.ebuild
new file mode 100644
index 00000000000..63de88d1630
--- /dev/null
+++ b/dev-python/flask-mail/flask-mail-0.9.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Mail"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Flask extension for sending email"
+HOMEPAGE="http://pythonhosted.org/Flask-Mail/ https://pypi.python.org/pypi/Flask-Mail"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/blinker[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/speaklater[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy) )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-mail/metadata.xml b/dev-python/flask-mail/metadata.xml
new file mode 100644
index 00000000000..62864dbf709
--- /dev/null
+++ b/dev-python/flask-mail/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Mail</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-migrate/Manifest b/dev-python/flask-migrate/Manifest
new file mode 100644
index 00000000000..0b7da32f79b
--- /dev/null
+++ b/dev-python/flask-migrate/Manifest
@@ -0,0 +1,4 @@
+DIST Flask-Migrate-1.2.0.tar.gz 7288 SHA256 37e548cd0c497194243c8c2e2c6296e72ac7d65ba4ad1fd3d8cd5848af5fed2a SHA512 56e9223be0c30179dd0f117b60650e484528650da24acf852c52c1c7f0554d83d6f2ba35191c02cc0cb72091dee48b0888183b560f439d42fa09e0f86524f6b9 WHIRLPOOL 869f37262fde54e69a245d725be80e773d635397bd8afc112f264ef76939f34a81bdee8bf4ef510399b604552d9ad2fc79bcffcb975cf7070157cbebce639a20
+DIST Flask-Migrate-1.3.0.tar.gz 8400 SHA256 8d142bcae64d45eda6efab821283841380749653e49030aea59f0059071d134a SHA512 dbec7fee9027f9446c57a3d24b171a59dcde1e7023e20efc7eb578f41b7c5228a6704edf2cf7afec5e2fc5f8c37a76abeae5a1b9cf0d95c132e7e834f31f7b14 WHIRLPOOL f8c43f3427cbd6cc72e39cfb4f4329f9e826b2b71ca3310d6831121c5a6c9f7915d3a5308f885cb27ad2d3d77197d411bda026d9636c25bbc122069c41a011f6
+DIST Flask-Migrate-1.3.1.tar.gz 8608 SHA256 d16342313936b383f30e7bc1863bd38686ac9f187a50df4161014f0207bf290b SHA512 3ed504811560e7af509187fc6850204244dc295a6d7d43505e98363af2ea282fabd2cfc2b54d5f8f5d847a8569c3a4e3fe28a7996bbb28ed829975c4014da324 WHIRLPOOL 09fcc61de8654a257257959af90917afb83b5fc9ffaee1f131eeaf557797e048c8ea740875b8c0cd7de8f10c48b5c5f2bcd33047f6f73b730d001432c1f32da3
+DIST Flask-Migrate-1.4.0.zip 12820 SHA256 e63b1aafc7bec62a63ccb8e0f5856a271ab986a044aa81a022e0c68243439258 SHA512 ca9a94fd18d302f1448c0cc188749a4585cb108efdd02ef5a51d295207a48d54540818734dcc831a068d968a1cf166d45f1815b4f0e44f4fe7455b982293a3da WHIRLPOOL f1dd52a9af10ac6cb4598f544a151e15eba51ceb5b3c742f66299f0e4870a96ce571ca59dc52e01836721add741bf32d2959377804b0f09a14ab4ef76361aaaa
diff --git a/dev-python/flask-migrate/flask-migrate-1.2.0.ebuild b/dev-python/flask-migrate/flask-migrate-1.2.0.ebuild
new file mode 100644
index 00000000000..bd0e3ff5108
--- /dev/null
+++ b/dev-python/flask-migrate/flask-migrate-1.2.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Migrate"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy database migrations for Flask applications using Alembic"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/alembic[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/flask-script[${PYTHON_USEDEP}]
+ "
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-migrate/flask-migrate-1.3.0.ebuild b/dev-python/flask-migrate/flask-migrate-1.3.0.ebuild
new file mode 100644
index 00000000000..f68e15a7856
--- /dev/null
+++ b/dev-python/flask-migrate/flask-migrate-1.3.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Migrate"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy database migrations for Flask applications using Alembic"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/alembic[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/flask-script[${PYTHON_USEDEP}]
+ "
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-migrate/flask-migrate-1.3.1.ebuild b/dev-python/flask-migrate/flask-migrate-1.3.1.ebuild
new file mode 100644
index 00000000000..2c3a39985dc
--- /dev/null
+++ b/dev-python/flask-migrate/flask-migrate-1.3.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Migrate"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy database migrations for Flask applications using Alembic"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/alembic[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/flask-script[${PYTHON_USEDEP}]
+ "
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-migrate/flask-migrate-1.4.0.ebuild b/dev-python/flask-migrate/flask-migrate-1.4.0.ebuild
new file mode 100644
index 00000000000..bcd69cbe75d
--- /dev/null
+++ b/dev-python/flask-migrate/flask-migrate-1.4.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Migrate"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy database migrations for Flask applications using Alembic"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/alembic[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/flask-script[${PYTHON_USEDEP}]
+ "
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-migrate/metadata.xml b/dev-python/flask-migrate/metadata.xml
new file mode 100644
index 00000000000..d996c47be0a
--- /dev/null
+++ b/dev-python/flask-migrate/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Migrate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-mongoengine/Manifest b/dev-python/flask-mongoengine/Manifest
new file mode 100644
index 00000000000..6cf7d424d28
--- /dev/null
+++ b/dev-python/flask-mongoengine/Manifest
@@ -0,0 +1,2 @@
+DIST flask-mongoengine-0.7.0.tar.gz 103676 SHA256 e5031d1f812181699b10fec76d7c9c6633f19f8b686dcee48371e9216884f2b4 SHA512 3a9ce923b5d391e4fbdacc87d32e6cd8e0ada592c9fce585cf6dc38b8c116966cd70c83c2f2b77f580348722351c129ef38d7788f9ae2bd27d043de0d5487493 WHIRLPOOL 20583285ec18871b750c045a1dc911d6c836b152a27816b81805f12808dd68450236139245fd6ea07c9239544a7a62dafd358feaf13304910b6c6301f5f32567
+DIST flask-mongoengine-0.7.1.tar.gz 103947 SHA256 8ab895611a92b1e16f8467ddda0d4e8addee0ccf478f61d161ff58417caa06f2 SHA512 5da5c0a9794a108c2ff3adc3a6a415216841f060db54483b96421769879e7961c1137b787ad2ebd0ceb80a2187e4c7eaaecca4cb57c517e43aaf4845ac618c99 WHIRLPOOL afb4cf0a02678d1f4cfaa9c6d35d6086cf2e1f49a4b739348463173175f5928c7bacb2eecd3257bb0782021a5276761c187377ca3f2ec80560cdd086a86aa5c9
diff --git a/dev-python/flask-mongoengine/flask-mongoengine-0.7.0.ebuild b/dev-python/flask-mongoengine/flask-mongoengine-0.7.0.ebuild
new file mode 100644
index 00000000000..4d55ca66db9
--- /dev/null
+++ b/dev-python/flask-mongoengine/flask-mongoengine-0.7.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+RESTRICT="test" # broken
+
+DESCRIPTION="Flask support for MongoDB and with WTF model forms"
+HOMEPAGE="https://pypi.python.org/pypi/flask-mongoengine/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/mongoengine[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+ "
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-mongoengine/flask-mongoengine-0.7.1.ebuild b/dev-python/flask-mongoengine/flask-mongoengine-0.7.1.ebuild
new file mode 100644
index 00000000000..c4c0b97eb07
--- /dev/null
+++ b/dev-python/flask-mongoengine/flask-mongoengine-0.7.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+RESTRICT="test" # broken
+
+DESCRIPTION="Flask support for MongoDB and with WTF model forms"
+HOMEPAGE="https://pypi.python.org/pypi/flask-mongoengine/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/mongoengine-0.7.10[${PYTHON_USEDEP}]
+ dev-python/flask-wtf[${PYTHON_USEDEP}]
+ "
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-mongoengine/metadata.xml b/dev-python/flask-mongoengine/metadata.xml
new file mode 100644
index 00000000000..866f98192a3
--- /dev/null
+++ b/dev-python/flask-mongoengine/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">flask-mongoengine</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-openid/Manifest b/dev-python/flask-openid/Manifest
new file mode 100644
index 00000000000..d60228524cd
--- /dev/null
+++ b/dev-python/flask-openid/Manifest
@@ -0,0 +1,2 @@
+DIST Flask-OpenID-1.2.3.tar.gz 40847 SHA256 5674538d05212b3d9a541d6dbe5d121fe2ecbcdd02e336fe772c9b2226f44a8d SHA512 86003beb3b922f3c1151088ae3880966fa52e5fd087be196f6d5e0e57ef3b3310a3b48ada11931a55c08a67583f1e72eab3d52fc2c1581ffb2c521aa07517291 WHIRLPOOL fe8c885e061b98934a7eca4ec075a15c997f81ce831c150eade313bc5e46e64c71a5a33119d53d7ab73d3587a6b578128421d9c95e2ac7f2d732b506cd698f02
+DIST Flask-OpenID-1.2.4.tar.gz 42570 SHA256 7ac41a5816e32a69333f6798046b7bf73d8d9a6c0051ff8c687c336fe1fefcb2 SHA512 3a9cf29c425747fd2f00b0200c99eece4c66b29e3ef56c78c945f9da1029fceb59053798a26209289625c2e2a2e9118531ac2fced82758c76bc8002ec1d58ae7 WHIRLPOOL b072e34245f3e2d504b424769dcbe29c975fbb4133031bf8e4881592ceec99f9ac897b562b37c9cf33a9ef25074513a1d4db2c8b52950147d3e9d6e10c761dae
diff --git a/dev-python/flask-openid/flask-openid-1.2.3.ebuild b/dev-python/flask-openid/flask-openid-1.2.3.ebuild
new file mode 100644
index 00000000000..6ba345f951a
--- /dev/null
+++ b/dev-python/flask-openid/flask-openid-1.2.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-OpenID"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="OpenID support for Flask"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-OpenID"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/flask-0.3[${PYTHON_USEDEP}]
+ >=dev-python/python-openid-2.0[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-openid/flask-openid-1.2.4.ebuild b/dev-python/flask-openid/flask-openid-1.2.4.ebuild
new file mode 100644
index 00000000000..387208c8082
--- /dev/null
+++ b/dev-python/flask-openid/flask-openid-1.2.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-OpenID"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="OpenID support for Flask"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-OpenID"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/flask-0.3[${PYTHON_USEDEP}]
+ >=dev-python/python-openid-2.0[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-openid/metadata.xml b/dev-python/flask-openid/metadata.xml
new file mode 100644
index 00000000000..1aeddf3772f
--- /dev/null
+++ b/dev-python/flask-openid/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-OpenID</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-peewee/Manifest b/dev-python/flask-peewee/Manifest
new file mode 100644
index 00000000000..1300a8063ea
--- /dev/null
+++ b/dev-python/flask-peewee/Manifest
@@ -0,0 +1,2 @@
+DIST flask-peewee-0.6.5.tar.gz 702466 SHA256 7b39fac44b86e057a44fc059193e444cefbf3aa7807ba3022fa090ac50ce89c2 SHA512 4e1f01d78d1c778cd95a784920d8cfbddc712b8224d93cd0dfe566ee007b781dc4b353bb27c4240475234660363b2b77093d504bf5ef90f358e116f8373020d5 WHIRLPOOL 14e89a5cdf83dbebe377eead7fefcbc56463c889f753fb56198808f0c739c67a68e39c8ff3ad0a304d0843f99147a9771bf0769a731ad28e2d07d28ae084824f
+DIST flask-peewee-0.6.6.tar.gz 707197 SHA256 eab798e102d0e5d7ddba995ac7a82e34e7da815839fa16ee62aa6e4f4a2ee161 SHA512 046a7f89920986cf6847a6cceeb2ed7994317b5957530f6bee3d371445a7db9cb2500943b29da9a6ccfe5c3372e06a392e140480989eb65811b3b92d6bed9c52 WHIRLPOOL dd28bb5c21eb57b6167a5a24594aa7dd74620c28a01321a59f6f15f9773b5c69cf6bc4a2b49ba0e8e72af6b238546419404c13df8aed146f4ee8695cda5f7636
diff --git a/dev-python/flask-peewee/flask-peewee-0.6.5.ebuild b/dev-python/flask-peewee/flask-peewee-0.6.5.ebuild
new file mode 100644
index 00000000000..cc1ebb87bd8
--- /dev/null
+++ b/dev-python/flask-peewee/flask-peewee-0.6.5.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+RESTRICT="test" # broken
+
+DESCRIPTION="Flask integration layer for the Peewee ORM"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/peewee[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+ "
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-peewee/flask-peewee-0.6.6.ebuild b/dev-python/flask-peewee/flask-peewee-0.6.6.ebuild
new file mode 100644
index 00000000000..09b0fc765fe
--- /dev/null
+++ b/dev-python/flask-peewee/flask-peewee-0.6.6.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+RESTRICT="test" # broken
+
+DESCRIPTION="Flask integration layer for the Peewee ORM"
+HOMEPAGE="https://pypi.python.org/pypi/Flask-Admin"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/peewee[${PYTHON_USEDEP}]
+ dev-python/wtforms[${PYTHON_USEDEP}]
+ dev-python/wtf-peewee[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( example/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-peewee/metadata.xml b/dev-python/flask-peewee/metadata.xml
new file mode 100644
index 00000000000..5703928ba3a
--- /dev/null
+++ b/dev-python/flask-peewee/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">flask-peewee</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-principal/Manifest b/dev-python/flask-principal/Manifest
new file mode 100644
index 00000000000..8df2b5e67a4
--- /dev/null
+++ b/dev-python/flask-principal/Manifest
@@ -0,0 +1 @@
+DIST Flask-Principal-0.4.0.tar.gz 5452 SHA256 f5d6134b5caebfdbb86f32d56d18ee44b080876a27269560a96ea35f75c99453 SHA512 18f8f7766af62f99ccd52e34919e3f161ffb727c227c2714d651fad9bf6df3958289389e9b9cfe22d01a150985d1a631db3222626be1c4b12daea22434e4c85e WHIRLPOOL 8bd3dd1d0e5b876fd6cb4cf95b2ed6ce7e077404dd4c2781460dbc333c38c4f0eb55855737ebe0c3042c83c5aa5b7bf4d2c7ca5a9d4b8f8ec9901009b8713c0d
diff --git a/dev-python/flask-principal/flask-principal-0.4.0.ebuild b/dev-python/flask-principal/flask-principal-0.4.0.ebuild
new file mode 100644
index 00000000000..c76e13f8458
--- /dev/null
+++ b/dev-python/flask-principal/flask-principal-0.4.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Principal"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Identity management for flask"
+HOMEPAGE="http://pythonhosted.org/${MY_PN}/ https://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/blinker[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-principal/metadata.xml b/dev-python/flask-principal/metadata.xml
new file mode 100644
index 00000000000..ed62904727c
--- /dev/null
+++ b/dev-python/flask-principal/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Principal</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-pymongo/Manifest b/dev-python/flask-pymongo/Manifest
new file mode 100644
index 00000000000..b4f8dbd6170
--- /dev/null
+++ b/dev-python/flask-pymongo/Manifest
@@ -0,0 +1,2 @@
+DIST flask-pymongo-0.3.0.tar.gz 21019 SHA256 b1ab5c38f43a8f7ae3e981fb8e0a5d58fb47b066ba0c1b647738e68690f62473 SHA512 669e2c2df4c3378aec0a9f401120ceee2bfb0452a093beca6e7adaffd764bfe0a90a5e5b82d0945933693c3c179f3a0bf56cd4a2e03ab0522065eb650550ff44 WHIRLPOOL 4563628d4d77dbcc9253520636875774655865ba9510b955afe5509da3e9e872b97355649b61ad59e4693c018216f82b7757129d32c112cb95212bfa0c703c23
+DIST flask-pymongo-0.3.1.tar.gz 21712 SHA256 21f807bd6c46d16203a9bb056a01516d6bd437a8a34b28ae38f345c3d16e9dc9 SHA512 cae90061b25187ebdd321af584fc7d6a8497c373dcde63641c60e6c77c985740f613043fd9efffe011486178cd3b7ff8b770ab9ccd5a37cadbfd9fd2ddbae4b5 WHIRLPOOL 8303233be2fff47fcccf363bdbebd29522fac2e00dc17dd90af275a7be77edb325772cb21c3e2cb4d7fca7eb64176c9b231c09b7c8af5a7dadc41279a5398d36
diff --git a/dev-python/flask-pymongo/files/docbuild.patch b/dev-python/flask-pymongo/files/docbuild.patch
new file mode 100644
index 00000000000..232a5b8fc6c
--- /dev/null
+++ b/dev-python/flask-pymongo/files/docbuild.patch
@@ -0,0 +1,16 @@
+Avoid un-needed d'loading
+diff -ur Flask-PyMongo-0.2.1.orig/docs/conf.py Flask-PyMongo-0.2.1/docs/conf.py
+--- docs/conf.py 2012-12-23 00:52:16.000000000 +0800
++++ docs/conf.py 2013-06-10 01:26:28.430485499 +0800
+@@ -247,11 +247,3 @@
+
+ # How to display URL addresses: 'footnote', 'no', or 'inline'.
+ #texinfo_show_urls = 'footnote'
+-
+-
+-# Example configuration for intersphinx: refer to the Python standard library.
+-intersphinx_mapping = {
+- 'python': ('http://docs.python.org/', None),
+- 'flask': ('http://flask.pocoo.org/docs/', None),
+- 'pymongo': ('http://api.mongodb.org/python/current/', None),
+-}
diff --git a/dev-python/flask-pymongo/flask-pymongo-0.3.0.ebuild b/dev-python/flask-pymongo/flask-pymongo-0.3.0.ebuild
new file mode 100644
index 00000000000..4f80d54e592
--- /dev/null
+++ b/dev-python/flask-pymongo/flask-pymongo-0.3.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-PyMongo"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="PyMongo support for Flask"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-PyMongo"
+SRC_URI="https://github.com/dcrosta/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+#SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+RESTRICT="test"
+
+RDEPEND=">=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/docbuild.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # fix me
+ nosetests tests/{test_url_converter.py,test_wrappers.py} || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-pymongo/flask-pymongo-0.3.1.ebuild b/dev-python/flask-pymongo/flask-pymongo-0.3.1.ebuild
new file mode 100644
index 00000000000..93a03fe8632
--- /dev/null
+++ b/dev-python/flask-pymongo/flask-pymongo-0.3.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="Flask-PyMongo"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="PyMongo support for Flask"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-PyMongo"
+SRC_URI="https://github.com/dcrosta/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+#SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+RESTRICT="test"
+
+RDEPEND=">=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.4[${PYTHON_USEDEP}]
+ <dev-python/pymongo-3.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/docbuild.patch )
+
+python_prepare_all() {
+ # Req'd to avoid file collisions
+ sed -e s":find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+# Testsuite appears to require a running local instance of a pymongo server
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-pymongo/metadata.xml b/dev-python/flask-pymongo/metadata.xml
new file mode 100644
index 00000000000..024aa03937d
--- /dev/null
+++ b/dev-python/flask-pymongo/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ultrabug@gentoo.org</email>
+ <name>Alexys Jacob</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Flask-PyMongo</remote-id>
+ <remote-id type="github">dcrosta/flask-pymongo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-restful/Manifest b/dev-python/flask-restful/Manifest
new file mode 100644
index 00000000000..7fe496ab6c7
--- /dev/null
+++ b/dev-python/flask-restful/Manifest
@@ -0,0 +1,6 @@
+DIST flask-restful-0.2.12.tar.gz 96159 SHA256 fb44cff325a7f9581007c1f01c6d6f78a8d97ea95a7455b894e0004847213c04 SHA512 4a270431b07c0f3d11fc1a618ba58675b8c869af448894a8067ca297454584decdfe97a0a686f9398599d4888f4f57545d4514d90ee655169ab2b35c8acb1de4 WHIRLPOOL e9d6d9f6d43e912b45a8b4f0f93b3e329922b449d98fd4a2afe09bd14ea78547fbb62f6a9268bce41640b9da1d409bf9500ecfc971a4409401493f6b2e1d0f19
+DIST flask-restful-0.3.0.tar.gz 103123 SHA256 17cb9ef93f6a8329e3bbbf6956fa67e3415efcd142d7da34d5b154409a884078 SHA512 6cb768e591e9a5257eb22406c6857fd24f2cfcccf739c008cc92bda7b03b253726b42fc95fc0e121c4635c7d0a25a816186ba4497fb3b53277d8f0e6aa13f862 WHIRLPOOL 34511a91241a7e421878631ae9d91ffacb8863592e17b7e8c893c084a41f22b7ce96ecc81816a1195e94e34d16723216bc9a222a38fe49473f2254ffb6ddf121
+DIST flask-restful-0.3.1.tar.gz 103801 SHA256 b2171bb730511e2fc54d071a5b8d9f5e852273dcc72a092b0fd937b98956da74 SHA512 264497864297e2621d9a47a08f02bd8632b4030e3d09cb9ac9d04b431fee8cc1e3801220c7fb05fae0e2230e33461e1c7bcefc6b69432f10ac748b9845f1356b WHIRLPOOL 0776e4c2bcd9be0db9cc6664fb21c7433cbb0a8d6c4738890ad041830c9e8e98583a5d9f73ed1c69d5a4cb9457991cf59fc6e177e2541bb157f452f81c8d6359
+DIST flask-restful-0.3.2.tar.gz 106082 SHA256 0b91c5ac2fdfa3cebb25c2110ab24636833e5209eb186a8bd109f563a355ae1f SHA512 e35901f297ed9ec76f4be94c9511a12b7370f00ed959a22fab6804e739a13bf885023f00baf3fad29a59cc873c9d5d0b2e85b7e4657d3203983dc6775d71c89a WHIRLPOOL 7403fafbc37e8080731c7ad71076e986f2a06d30a216257bb10c08c5d230a88a4bde043af13e590be976e8c1953a829fe76827bb5a10db638dddf8b28282f9da
+DIST flask-restful-0.3.3.tar.gz 109947 SHA256 0aeb8f00c96335f90df304a57f36caecd12befccd333a39708f8929f0a528042 SHA512 f8e48048a25b38a09321efc98649970d959d41bf5cc15f5111e1326396ff305b2dbca757a3198a4ed8cf59a6d0144a981178926c1fecc462132888198b4dd8e6 WHIRLPOOL d4db2f013fb92a593731ea19eba6f0daf0f498ebc9fca17f1da8d23b75e243323004e8fe7425813740dc6bcd9c80780a1836a1f37d403a35a94667ecf8fa8a93
+DIST flask-restful-0.3.4.tar.gz 110669 SHA256 c991d85187e1e0e3e58713d62fc8543fe51d7479ee04151061cf9e452e1e2161 SHA512 3f4debac812ddb511f77802e184e24d1ebf023fd282ba37375484260118cafbad479033deed4e5cf9d2681880059fecf9ac34aafad230186f3e3e1cca2f2033b WHIRLPOOL 96e2a0d007fd8042d2e0d344c7042abf24cc3649b11a36330965a1ffaeeb8a21a04651cbdd486757e704b39773a5b8f8146e6d4ddb4477ad462b1ae7edc74567
diff --git a/dev-python/flask-restful/files/flask-restful-0.2.12-tests.patch b/dev-python/flask-restful/files/flask-restful-0.2.12-tests.patch
new file mode 100644
index 00000000000..9ddd44a1f6a
--- /dev/null
+++ b/dev-python/flask-restful/files/flask-restful-0.2.12-tests.patch
@@ -0,0 +1,21 @@
+--- flask-restful-0.2.12/tests/test_fields.py
++++ flask-restful-0.2.12/tests/test_fields.py
+@@ -2,13 +2,17 @@
+ import unittest
+ from mock import Mock
+ from flask.ext.restful.fields import MarshallingException
+-from flask.ext.restful.utils.ordereddict import OrderedDict
+ from flask_restful import fields
+ from datetime import datetime
+ from flask import Flask
+ #noinspection PyUnresolvedReferences
+ from nose.tools import assert_equals # you need it for tests in form of continuations
+
++try:
++ from collections import OrderedDict
++except ImportError:
++ from flask.ext.restful.utils.ordereddict import OrderedDict
++
+
+ class Foo(object):
+ def __init__(self):
diff --git a/dev-python/flask-restful/flask-restful-0.2.12.ebuild b/dev-python/flask-restful/flask-restful-0.2.12.ebuild
new file mode 100644
index 00000000000..5f07f38e487
--- /dev/null
+++ b/dev-python/flask-restful/flask-restful-0.2.12.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple framework for creating REST APIs"
+HOMEPAGE="http://flask-restful.readthedocs.org/ https://github.com/twilio/flask-restful/"
+SRC_URI="https://github.com/twilio/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples paging test"
+
+RDEPEND="
+ >=dev-python/aniso8601-0.82[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ paging? ( >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}"/${P}-tests.patch )
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_compile_all() {
+ cd docs || die
+ emake man $(usex doc html "")
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ local DOCS=( AUTHORS.md CHANGES.md CONTRIBUTING.md README.md )
+
+ doman docs/_build/man/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restful/flask-restful-0.3.0.ebuild b/dev-python/flask-restful/flask-restful-0.3.0.ebuild
new file mode 100644
index 00000000000..bb9114d486b
--- /dev/null
+++ b/dev-python/flask-restful/flask-restful-0.3.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple framework for creating REST APIs"
+HOMEPAGE="http://flask-restful.readthedocs.org/ https://github.com/twilio/flask-restful/"
+SRC_URI="https://github.com/twilio/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples paging test"
+
+RDEPEND="
+ >=dev-python/aniso8601-0.82[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ paging? ( >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_compile_all() {
+ cd docs || die
+ emake man $(usex doc html "")
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ local DOCS=( AUTHORS.md CHANGES.md CONTRIBUTING.md README.md )
+
+ doman docs/_build/man/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restful/flask-restful-0.3.1.ebuild b/dev-python/flask-restful/flask-restful-0.3.1.ebuild
new file mode 100644
index 00000000000..bb9114d486b
--- /dev/null
+++ b/dev-python/flask-restful/flask-restful-0.3.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple framework for creating REST APIs"
+HOMEPAGE="http://flask-restful.readthedocs.org/ https://github.com/twilio/flask-restful/"
+SRC_URI="https://github.com/twilio/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples paging test"
+
+RDEPEND="
+ >=dev-python/aniso8601-0.82[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ paging? ( >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_compile_all() {
+ cd docs || die
+ emake man $(usex doc html "")
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ local DOCS=( AUTHORS.md CHANGES.md CONTRIBUTING.md README.md )
+
+ doman docs/_build/man/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restful/flask-restful-0.3.2.ebuild b/dev-python/flask-restful/flask-restful-0.3.2.ebuild
new file mode 100644
index 00000000000..161e096c9de
--- /dev/null
+++ b/dev-python/flask-restful/flask-restful-0.3.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple framework for creating REST APIs"
+HOMEPAGE="http://flask-restful.readthedocs.org/ https://github.com/twilio/flask-restful/"
+SRC_URI="https://github.com/twilio/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples paging test"
+
+RDEPEND="
+ >=dev-python/aniso8601-0.82[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ paging? ( >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_compile_all() {
+ cd docs || die
+ emake man $(usex doc html "")
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ local DOCS=( AUTHORS.md CHANGES.md CONTRIBUTING.md README.md )
+
+ doman docs/_build/man/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restful/flask-restful-0.3.3.ebuild b/dev-python/flask-restful/flask-restful-0.3.3.ebuild
new file mode 100644
index 00000000000..161e096c9de
--- /dev/null
+++ b/dev-python/flask-restful/flask-restful-0.3.3.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple framework for creating REST APIs"
+HOMEPAGE="http://flask-restful.readthedocs.org/ https://github.com/twilio/flask-restful/"
+SRC_URI="https://github.com/twilio/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples paging test"
+
+RDEPEND="
+ >=dev-python/aniso8601-0.82[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ paging? ( >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_compile_all() {
+ cd docs || die
+ emake man $(usex doc html "")
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ local DOCS=( AUTHORS.md CHANGES.md CONTRIBUTING.md README.md )
+
+ doman docs/_build/man/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restful/flask-restful-0.3.4.ebuild b/dev-python/flask-restful/flask-restful-0.3.4.ebuild
new file mode 100644
index 00000000000..161e096c9de
--- /dev/null
+++ b/dev-python/flask-restful/flask-restful-0.3.4.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple framework for creating REST APIs"
+HOMEPAGE="http://flask-restful.readthedocs.org/ https://github.com/twilio/flask-restful/"
+SRC_URI="https://github.com/twilio/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples paging test"
+
+RDEPEND="
+ >=dev-python/aniso8601-0.82[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.8[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ paging? ( >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_compile_all() {
+ cd docs || die
+ emake man $(usex doc html "")
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ local DOCS=( AUTHORS.md CHANGES.md CONTRIBUTING.md README.md )
+
+ doman docs/_build/man/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restful/metadata.xml b/dev-python/flask-restful/metadata.xml
new file mode 100644
index 00000000000..48555571de7
--- /dev/null
+++ b/dev-python/flask-restful/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">twilio/flask-restful</remote-id>
+ </upstream>
+ <use>
+ <flag name="paging">Enable resource paging support</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/flask-restless/Manifest b/dev-python/flask-restless/Manifest
new file mode 100644
index 00000000000..1fa827e4ead
--- /dev/null
+++ b/dev-python/flask-restless/Manifest
@@ -0,0 +1,3 @@
+DIST flask-restless-0.15.0.tar.gz 515022 SHA256 78c07508018f6c417c3f383553d249ae08acf66864b786c1cbb5464cda2b5502 SHA512 156223295a2b1fcb270ed132a9023caa77632559155342381277f427fa069457977f8122bb21425281f1039aaef48c411a5f2677be403a0965abad4af199d775 WHIRLPOOL baaba2a60c424eb75faca35a0840d15b5215489c8ae6c39e513183253d66657f03e6e9544ff57edb0e1b7591f436bb46d7909a8f53179ad866c0fb63daa73111
+DIST flask-restless-0.16.0.tar.gz 520939 SHA256 df1c8e0e10923dbb7d6515dd6ecdcc9f0a88136f8378bbd23028371ceff40b9c SHA512 fd2910163c3210e7951924bfc57d62e249489a3dec978b935b22b6fa15a277bbdb82928e1baa42605a9c3b018cbd9ac70767acec98cfd0d33778aafbd04c9aee WHIRLPOOL af3725e69970818e259ac3dcd1d76bce273c1922a8e7a0a964dda72ee131a1fcd38103795907f116a776d917febb541e9def82d221aad0b30155c2ce12d0ce80
+DIST flask-restless-0.17.0.tar.gz 527502 SHA256 8c82c4c5c7977b88fd2fc8e6586252afb64b4f802ef4197dfe5630b3fc9a69eb SHA512 96183a8bb285a916e6ad680089c70b4c00fcc72ea26a6862537314f6b588b597ff78f2f1c3de0ae24f7dfc7af53a3412c8179801afa9eaeaeb3505695d44076e WHIRLPOOL 21eec21cd4afb51860ce253b1745cf7b9ee63337e3a4f3fb0b2309f76fc4446189c59741f786575ba7f5d993eee8f7839a0baa35ad191abc2551fc7b5403544e
diff --git a/dev-python/flask-restless/files/docbuild.patch b/dev-python/flask-restless/files/docbuild.patch
new file mode 100644
index 00000000000..7e4c6550f96
--- /dev/null
+++ b/dev-python/flask-restless/files/docbuild.patch
@@ -0,0 +1,57 @@
+A number of these settings are simply unworkable in gentoo
+diff -ur flask-restless-0.11.0.orig/docs/conf.py flask-restless-0.11.0/docs/conf.py
+--- docs/conf.py 2013-05-19 01:50:21.000000000 +0800
++++ docs/conf.py 2013-06-10 23:39:05.741199580 +0800
+@@ -99,7 +99,6 @@
+
+ # The name of the Pygments (syntax highlighting) style to use.
+ #pygments_style = 'sphinx'
+-pygments_style = 'flask_theme_support.FlaskyStyle'
+
+ # A list of ignored prefixes for module index sorting.
+ #modindex_common_prefix = []
+@@ -110,14 +110,11 @@
+ # The theme to use for HTML and HTML Help pages. See the documentation for
+ # a list of builtin themes.
+ #html_theme = 'default'
+-html_theme = 'flask'
++#html_theme = 'flask'
+
+ # Theme options are theme-specific and customize the look and feel of a theme
+ # further. For a list of options available for each theme, see the
+ # documentation.
+-html_theme_options = {
+- 'index_logo': 'flask-restless.png'
+-}
+
+ # Add any paths that contain custom themes here, relative to this directory.
+ html_theme_path = ['_themes']
+@@ -253,25 +250,12 @@
+ [u'Jeffrey Finkelstein'], 1)
+ ]
+
+-
+-# Example configuration for intersphinx: refer to the Python standard library.
+-intersphinx_mapping = {'python': ('http://docs.python.org/', None),
+- 'flask': ('http://flask.pocoo.org/docs', None),
+- 'sqlalchemy': ('http://sqlalchemy.org/docs', None),
+- 'flasksqlalchemy':
+- ('http://packages.python.org/Flask-SQLAlchemy',
+- None)}
+-
+ # fall back if theme is not there
+ try:
+- __import__('flask_theme_support')
++ from flaskext import themes
++ themes.html_theme = 'flask'
+ except ImportError, e:
+- print '-' * 74
+- print 'Warning: Flask themes unavailable. Building with default theme'
+- print 'If you want the Flask themes, run this command and build again:'
+- print
+- print ' git submodule update --init'
+- print '-' * 74
++ print 'flask theme unavailable'
+
+ pygments_style = 'tango'
+ html_theme = 'default'
diff --git a/dev-python/flask-restless/files/mapping.patch b/dev-python/flask-restless/files/mapping.patch
new file mode 100644
index 00000000000..725a20d828f
--- /dev/null
+++ b/dev-python/flask-restless/files/mapping.patch
@@ -0,0 +1,13 @@
+A number of these settings are simply unworkable in gentoo
+diff -ur flask-restless-0.11.0.orig/docs/conf.py flask-restless-0.11.0/docs/conf.py
+--- docs/conf.py 2013-05-19 01:50:21.000000000 +0800
++++ docs/conf.py 2013-06-10 23:39:05.741199580 +0800
+@@ -26,7 +26,7 @@
+
+ # Add any Sphinx extension module names here, as strings. They can be extensions
+ # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx']
++extensions = ['sphinx.ext.autodoc']
+ extensions += ['sphinxcontrib.httpdomain']
+ extensions += ['sphinxcontrib.issuetracker']
+
diff --git a/dev-python/flask-restless/flask-restless-0.15.0.ebuild b/dev-python/flask-restless/flask-restless-0.15.0.ebuild
new file mode 100644
index 00000000000..46a17697155
--- /dev/null
+++ b/dev-python/flask-restless/flask-restless-0.15.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+PYTHON_REQ_USE="sqlite"
+inherit distutils-r1
+
+DESCRIPTION="Flask extension for easy ReSTful API generation"
+HOMEPAGE="http://packages.python.org/Flask-Restless/"
+SRC_URI="https://github.com/jfinkels/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( AGPL-3 BSD )"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="doc examples test"
+
+RDEPEND=">=dev-python/flask-0.7[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/mimerender[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-httpdomain-1.1.7[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.11[${PYTHON_USEDEP}]
+ dev-python/flask-themes[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+python_compile_all() {
+ if use doc; then
+ if ! "${PYTHON}" -c "import flask_restless"; then
+ eerror "flask-restless is not installed. Building of the docs"
+ eerror "requires flask-restless to be installed."
+ eerror "emerge with USE=-doc followed bu USE=doc"
+ die
+ fi
+ # Changes connect to read issues @ github
+ rm -f docs/changelog.rst
+ einfo "Generating html docs for ${PN}"
+ PYTHONPATH=${PYTHONPATH}"${S}"/docs emake -C docs html \
+ || die "Generating html docs for ${PN} failed"
+ fi
+}
+
+python_test() {
+ nosetests -w tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restless/flask-restless-0.16.0.ebuild b/dev-python/flask-restless/flask-restless-0.16.0.ebuild
new file mode 100644
index 00000000000..e724b7f249c
--- /dev/null
+++ b/dev-python/flask-restless/flask-restless-0.16.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+PYTHON_REQ_USE="sqlite"
+inherit distutils-r1
+
+DESCRIPTION="Flask extension for easy ReSTful API generation"
+HOMEPAGE="http://packages.python.org/Flask-Restless/"
+SRC_URI="https://github.com/jfinkels/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( AGPL-3 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc examples test"
+
+RDEPEND=">=dev-python/flask-0.7[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/mimerender[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-httpdomain-1.1.7[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.11[${PYTHON_USEDEP}]
+ dev-python/flask-themes[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+python_compile_all() {
+ if use doc; then
+ if ! "${PYTHON}" -c "import flask_restless"; then
+ eerror "flask-restless is not installed. Building of the docs"
+ eerror "requires flask-restless to be installed."
+ eerror "emerge with USE=-doc followed bu USE=doc"
+ die
+ fi
+ # Changes connect to read issues @ github
+ rm -f docs/changelog.rst
+ einfo "Generating html docs for ${PN}"
+ PYTHONPATH=${PYTHONPATH}"${S}"/docs emake -C docs html \
+ || die "Generating html docs for ${PN} failed"
+ fi
+}
+
+python_test() {
+ nosetests -w tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restless/flask-restless-0.17.0.ebuild b/dev-python/flask-restless/flask-restless-0.17.0.ebuild
new file mode 100644
index 00000000000..e724b7f249c
--- /dev/null
+++ b/dev-python/flask-restless/flask-restless-0.17.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+PYTHON_REQ_USE="sqlite"
+inherit distutils-r1
+
+DESCRIPTION="Flask extension for easy ReSTful API generation"
+HOMEPAGE="http://packages.python.org/Flask-Restless/"
+SRC_URI="https://github.com/jfinkels/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( AGPL-3 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc examples test"
+
+RDEPEND=">=dev-python/flask-0.7[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/mimerender[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-httpdomain-1.1.7[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.11[${PYTHON_USEDEP}]
+ dev-python/flask-themes[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+python_compile_all() {
+ if use doc; then
+ if ! "${PYTHON}" -c "import flask_restless"; then
+ eerror "flask-restless is not installed. Building of the docs"
+ eerror "requires flask-restless to be installed."
+ eerror "emerge with USE=-doc followed bu USE=doc"
+ die
+ fi
+ # Changes connect to read issues @ github
+ rm -f docs/changelog.rst
+ einfo "Generating html docs for ${PN}"
+ PYTHONPATH=${PYTHONPATH}"${S}"/docs emake -C docs html \
+ || die "Generating html docs for ${PN} failed"
+ fi
+}
+
+python_test() {
+ nosetests -w tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-restless/metadata.xml b/dev-python/flask-restless/metadata.xml
new file mode 100644
index 00000000000..ec77a3779bc
--- /dev/null
+++ b/dev-python/flask-restless/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">jfinkels/flask-restless</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-script/Manifest b/dev-python/flask-script/Manifest
new file mode 100644
index 00000000000..eb6c84e1418
--- /dev/null
+++ b/dev-python/flask-script/Manifest
@@ -0,0 +1 @@
+DIST Flask-Script-2.0.5.tar.gz 42580 SHA256 cef76eac751396355429a14c38967bb14d4973c53e07dec94af5cc8fb017107f SHA512 257b724c05dde79c99b028c7fa1980b700f273010de82fa9f1bb090b23519297d8bad87e436fa88a63feabfcd8908041d4a5ad9a673e08f4ed15e97310f16fbb WHIRLPOOL 2f05e8524a6f0ff0beca342f77f9c4b4f7f73cca65b2aa1fc21b4184ccc3a2e253f3d07a88c07c56c9ed1e5f3f9e12c4b6999bfdc85a35569def4107d0fbfb8e
diff --git a/dev-python/flask-script/flask-script-2.0.5.ebuild b/dev-python/flask-script/flask-script-2.0.5.ebuild
new file mode 100644
index 00000000000..135719a0af9
--- /dev/null
+++ b/dev-python/flask-script/flask-script-2.0.5.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Script"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Flask support for writing external scripts"
+HOMEPAGE="http://packages.python.org/Flask-Script/ http://pypi.python.org/pypi/Flask-Script"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/flask-0.10.1-r1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation by" ${PYTHON}
+ PYTHONPATH=".." emake -C docs html || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ py.test tests.py || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-script/metadata.xml b/dev-python/flask-script/metadata.xml
new file mode 100644
index 00000000000..b84dae7ac32
--- /dev/null
+++ b/dev-python/flask-script/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Script</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-security/Manifest b/dev-python/flask-security/Manifest
new file mode 100644
index 00000000000..0ee2118fc8e
--- /dev/null
+++ b/dev-python/flask-security/Manifest
@@ -0,0 +1 @@
+DIST Flask-Security-1.7.4.tar.gz 41467 SHA256 f0b8ee98ab983d96b808c97d4bc0d6ede9fd7adf88f436dde7f38fb66aa1e2ed SHA512 9d0f7db3250f6cab5af4e60cdffd2fffe28ef2dc30e38a479eb91f04c559308b5c530784fc4d9bbf410fd3f6060830f150b8cdb56a3a2d650c4873a14e09b622 WHIRLPOOL b747c9e9e73eb82c4c4ebd6d61289e09e383f5055ec2dcee12af74117119431ef341f01917ab108e19fa02b7e84a10fd03c33c8407c00f1668b86ef3236267c2
diff --git a/dev-python/flask-security/flask-security-1.7.4.ebuild b/dev-python/flask-security/flask-security-1.7.4.ebuild
new file mode 100644
index 00000000000..0ce0ba47b31
--- /dev/null
+++ b/dev-python/flask-security/flask-security-1.7.4.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-Security"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple security for Flask apps"
+HOMEPAGE="http://pythonhosted.org/${MY_PN}/ https://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+# packages of this type require local running instances of databases
+# which then require connect to localhost
+RESTRICT="test"
+
+RDEPEND=">=dev-python/flask-0.9[${PYTHON_USEDEP}]
+ >=dev-python/itsdangerous-0.17[${PYTHON_USEDEP}]
+ >=dev-python/passlib-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/flask-login-0.1.3[${PYTHON_USEDEP}]
+ >=dev-python/flask-mail-0.7.3[${PYTHON_USEDEP}]
+ >=dev-python/flask-wtf-0.8[${PYTHON_USEDEP}]
+ >=dev-python/flask-principal-0.3.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/flask-mongoengine[${PYTHON_USEDEP}]
+ dev-python/flask-peewee[${PYTHON_USEDEP}]
+ dev-python/bcrypt[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-security/metadata.xml b/dev-python/flask-security/metadata.xml
new file mode 100644
index 00000000000..ca747f04c2e
--- /dev/null
+++ b/dev-python/flask-security/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Security</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-socketio/Manifest b/dev-python/flask-socketio/Manifest
new file mode 100644
index 00000000000..3a30c7af99d
--- /dev/null
+++ b/dev-python/flask-socketio/Manifest
@@ -0,0 +1 @@
+DIST flask-socketio-0.6.0.tar.gz 6804 SHA256 5b004bc9a74421ec3983f5167a7cab70853b132a9c9c09d808c07f96bbf6ecd9 SHA512 3093fb659e8fe86a866bf9183401995a6615b3dfc8687549fa5845747935b6cd6bfc7bb56c969489f47fdb1a5420d744817b6a7dce636ab653ef62a08d353b1e WHIRLPOOL 1ff182a51ac24a61e02a6bf46612932bfdb4121737e27c34e324c859e9fe43a6db408fa162d0ff3b3952e8cb9bfa1e9d0f7b9e57149bce8af461fe5f4e829356
diff --git a/dev-python/flask-socketio/flask-socketio-0.6.0.ebuild b/dev-python/flask-socketio/flask-socketio-0.6.0.ebuild
new file mode 100644
index 00000000000..4348a53db7b
--- /dev/null
+++ b/dev-python/flask-socketio/flask-socketio-0.6.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-SocketIO"
+DESCRIPTION="Socket.IO integration for Flask applications."
+HOMEPAGE="https://flask-socketio.readthedocs.org/ https://github.com/miguelgrinberg/${MY_PN}/ https://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/flask-0.9[${PYTHON_USEDEP}]
+ >=dev-python/gevent-socketio-0.3.6[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# pypi tarball does not contain tests
+RESTRICT="test"
+
+python_test() {
+ PYTHONPATH="${PWD}" python ./test_socketio.py || die
+}
diff --git a/dev-python/flask-socketio/metadata.xml b/dev-python/flask-socketio/metadata.xml
new file mode 100644
index 00000000000..809844fdb92
--- /dev/null
+++ b/dev-python/flask-socketio/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-SocketIO</remote-id>
+ <remote-id type="github">miguelgrinberg/Flask-SocketIO</remote-id>
+ </upstream>
+ <maintainer>
+ <email>zmedico@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/flask-sqlalchemy/Manifest b/dev-python/flask-sqlalchemy/Manifest
new file mode 100644
index 00000000000..a3b927ff039
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/Manifest
@@ -0,0 +1,3 @@
+DIST Flask-SQLAlchemy-0.16.tar.gz 97968 SHA256 eaffc4252657229bb8da7447726e9e74b83087b96a3b8990121361b322985b6f SHA512 a6a8f5043aba14fb7fc2c59631d76ec0277d1a01f8b6bd4890271a59f9480ed40665747630194a43a5c19f694e932f86e56b1dfe4a3060176941c82c310ea5fa WHIRLPOOL c3f5fc30c956d39518229289cf7017b589392e18b448d2ec9d5650ed21d5d26309e1f2a60e4bc0e4e5f5cc8fc943f51f0cdc9e8f99d801ab6bfcb6c9600499c6
+DIST Flask-SQLAlchemy-1.0.tar.gz 92063 SHA256 7f0e218fa9066b34b73fdc470386a37ee117b8a862db98c1bca8236d8cffe7a1 SHA512 0ab84f4f5a0709c25d6177431787898f13543bd5a97fc67da9a376be66bfb27d1d7437d28a73e5052b5d20cab237b22a16add91159efaabdd133ca2f546fa5b4 WHIRLPOOL b0b394354975943d216d9fd690012cfd32c3b263ade0d85d92ebee856905fddbb523b3db5e6ec74574ddff0de57ec3162884db6e1563f9a5b71b1223279a7b0e
+DIST Flask-SQLAlchemy-2.0.tar.gz 93413 SHA256 990387d2cff83df7feb40e9d6b286f2679144258480249cbd47b88dc0939e886 SHA512 7a1962764a5481d0f7ce0ec0beb260dfbd930e76cc426e3f645cdd436f920ebb01ef8bb369c29d2e0bf4a4db29f4a660de8f44ea9110c95e440c0506922c8690 WHIRLPOOL f2c4966262d27f56e48a0a35f9b38595c95327eb7fa5cf6296d4d913ec2d933fc6092d6e08a705643e62210b5b03bda2857c6b9a939f9212f142bcb8b0c40243
diff --git a/dev-python/flask-sqlalchemy/files/mapping.patch b/dev-python/flask-sqlalchemy/files/mapping.patch
new file mode 100644
index 00000000000..32bee9c4f14
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/files/mapping.patch
@@ -0,0 +1,16 @@
+diff -ur Flask-SQLAlchemy-1.0.orig/docs/conf.py Flask-SQLAlchemy-1.0/docs/conf.py
+--- docs/conf.py 2013-01-27 08:57:36.000000000 +0800
++++ docs/conf.py 2014-04-03 18:08:34.772268079 +0800
+@@ -224,9 +224,9 @@
+
+
+ # Example configuration for intersphinx: refer to the Python standard library.
+-intersphinx_mapping = {'http://docs.python.org/': None,
+- 'http://flask.pocoo.org/docs/': None,
+- 'http://www.sqlalchemy.org/docs/': None}
++#intersphinx_mapping = {'http://docs.python.org/': None,
++# 'http://flask.pocoo.org/docs/': None,
++# 'http://www.sqlalchemy.org/docs/': None}
+ pygments_style = 'flask_theme_support.FlaskyStyle'
+
+ # fall back if theme is not there
diff --git a/dev-python/flask-sqlalchemy/flask-sqlalchemy-0.16-r1.ebuild b/dev-python/flask-sqlalchemy/flask-sqlalchemy-0.16-r1.ebuild
new file mode 100644
index 00000000000..17742a65653
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/flask-sqlalchemy-0.16-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-SQLAlchemy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy support for Flask applications"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -ie "s/flaskext/flask.ext/" test.py || die
+}
+
+python_test() {
+ #https://github.com/mitsuhiko/flask-sqlalchemy/issues/128
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0-r1.ebuild b/dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0-r1.ebuild
new file mode 100644
index 00000000000..3838e5f3722
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-SQLAlchemy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy support for Flask applications"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=">=dev-python/flask-0.10[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Patch out un-needed d'loading of obj.inv files in doc build
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+# Req'd for tests in py3
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ #https://github.com/mitsuhiko/flask-sqlalchemy/issues/128
+ if python_is_python3; then
+ sed -e s':test_model_signals:_&:' -i test_sqlalchemy.py || die
+ fi
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0.ebuild b/dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0.ebuild
new file mode 100644
index 00000000000..e3e5fd57ed1
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/flask-sqlalchemy-1.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-SQLAlchemy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy support for Flask applications"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ #https://github.com/mitsuhiko/flask-sqlalchemy/issues/128
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/flask-sqlalchemy/flask-sqlalchemy-2.0.ebuild b/dev-python/flask-sqlalchemy/flask-sqlalchemy-2.0.ebuild
new file mode 100644
index 00000000000..2b0b5f45012
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/flask-sqlalchemy-2.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-SQLAlchemy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy support for Flask applications"
+HOMEPAGE="http://pypi.python.org/pypi/Flask-SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.10[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Patch out un-needed d'loading of obj.inv files in doc build
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+# Req'd for tests in py3
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( "${BUILD_DIR}"/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-sqlalchemy/metadata.xml b/dev-python/flask-sqlalchemy/metadata.xml
new file mode 100644
index 00000000000..10b93c9a332
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Flask-SQLAlchemy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-testing/Manifest b/dev-python/flask-testing/Manifest
new file mode 100644
index 00000000000..338d697104f
--- /dev/null
+++ b/dev-python/flask-testing/Manifest
@@ -0,0 +1,2 @@
+DIST Flask-Testing-0.4.1.tar.gz 39879 SHA256 d8c4d97d79de517a5d6e348bcc6aaccc45832827afa25ca15cdf8a5a16e543a2 SHA512 b7b71a40545aebed2616b5867951078930bc5d2ab6bf4bc259fab4f8d127ace3830f71bdb4a654c96bf5379bce49930c84e77486c8111b0645bfc515428592b0 WHIRLPOOL e3310b41b53da9847ad3143db30359af8a3eb515da42cc4ffc3068d681abb78a8d11302fb26d085197627aae7d7408175819a108dcf25fd2c0270e02ceaef9b7
+DIST Flask-Testing-0.4.2.tar.gz 40994 SHA256 921c7c653e0d511ed87fbf70d984e27afea8dfa7e10b358689863d7a63e05321 SHA512 57f1a58f352637b6c1d4dc5aa8b3cac215eae334f355d40b6c777f9c5a769c745ce11f2a98818669ec2c29fc170fd86fe4670bb66bd4e4607174b21c5c2067e3 WHIRLPOOL a1fc0723660c25cb18ea5eb4c283c79eb379f2d8cee1bf8fda6ed8b10391cdf0080fa3e2e1ce6cdc50845548a5d9be3f4b20ef267c1350a14049adfbdcfa8e20
diff --git a/dev-python/flask-testing/files/0.4.2-test-fix.patch b/dev-python/flask-testing/files/0.4.2-test-fix.patch
new file mode 100644
index 00000000000..a0933e475af
--- /dev/null
+++ b/dev-python/flask-testing/files/0.4.2-test-fix.patch
@@ -0,0 +1,17 @@
+https://github.com/jarus/flask-testing/commit/c969b41b31f60a5a8bacd44b3eb63d1642f2d8bf
+diff --git a/flask_testing/utils.py b/flask_testing/utils.py
+index add12ef..9b479df 100644
+--- a/flask_testing/utils.py
++++ b/flask_testing/utils.py
+@@ -143,8 +143,8 @@ def _post_teardown(self):
+
+ if _is_signals:
+ template_rendered.disconnect(self._add_template)
+- if hasattr(self, '_true_render'):
+- templating._render = self._true_render
++ if hasattr(self, '_original_template_render'):
++ templating._render = self._original_template_render
+
+ if self.run_gc_after_test:
+ gc.collect()
+
diff --git a/dev-python/flask-testing/flask-testing-0.4.1.ebuild b/dev-python/flask-testing/flask-testing-0.4.1.ebuild
new file mode 100644
index 00000000000..981b65aaca5
--- /dev/null
+++ b/dev-python/flask-testing/flask-testing-0.4.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Unit testing for Flask"
+HOMEPAGE="http://pythonhosted.org/Flask-Testing/
+ https://pypi.python.org/pypi/Flask-Testing/"
+MY_PN="Flask-Testing"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/twill[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/blinker[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-testing/flask-testing-0.4.2.ebuild b/dev-python/flask-testing/flask-testing-0.4.2.ebuild
new file mode 100644
index 00000000000..c9c8d527903
--- /dev/null
+++ b/dev-python/flask-testing/flask-testing-0.4.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Testing"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Unit testing for Flask"
+HOMEPAGE="http://pythonhosted.org/Flask-Testing/ https://pypi.python.org/pypi/Flask-Testing/"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/twill[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/blinker[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/${PV}-test-fix.patch )
+
+python_test() {
+ # test phase appears to run only py2.7 but if it passes for py2.7 is passes for pypy
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-testing/metadata.xml b/dev-python/flask-testing/metadata.xml
new file mode 100644
index 00000000000..9efb699b494
--- /dev/null
+++ b/dev-python/flask-testing/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Testing</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-themes/Manifest b/dev-python/flask-themes/Manifest
new file mode 100644
index 00000000000..eba20ac0e21
--- /dev/null
+++ b/dev-python/flask-themes/Manifest
@@ -0,0 +1 @@
+DIST Flask-Themes-0.1.3.tar.gz 9723 SHA256 0586fdd29a4ccfaa37effc92652a3fe50c6a37d929493d5ab7b4b747be08d9fc SHA512 baf609b8b08446dda5b5d6d39bc0a2e7406f9270d70924c795243384be8967c82f82adcebe5e060352a0c33b763d600eeb5600d3116c10bdbbb3ceddfadf764a WHIRLPOOL 7c77e4ce39d3c9e1ac9f4fb5d3fe9b3bea71a71a2619e11a0bcbd413bd9215606f1beb76ca27dcbebd2dfefcfe835c84eb2a0bfc337a17ee9aa021edad75aeab
diff --git a/dev-python/flask-themes/files/fixtests.patch b/dev-python/flask-themes/files/fixtests.patch
new file mode 100644
index 00000000000..014508e4ddd
--- /dev/null
+++ b/dev-python/flask-themes/files/fixtests.patch
@@ -0,0 +1,23 @@
+diff -ur Flask-Themes-0.1.3.orig/tests/test-themes.py Flask-Themes-0.1.3/tests/test-themes.py
+--- tests/test-themes.py 2011-07-14 06:36:33.000000000 +0800
++++ tests/test-themes.py 2013-06-10 18:20:25.901480529 +0800
+@@ -129,8 +129,8 @@
+
+ with app.test_request_context('/'):
+ assert template_exists('hello.html')
+- assert template_exists('_themes/cool/hello.html')
+- assert not template_exists('_themes/plain/hello.html')
++ assert template_exists('cool/hello.html')
++ assert not template_exists('themes/plain/hello.html')
+
+ def test_loader(self):
+ app = Flask(__name__)
+@@ -140,7 +140,7 @@
+ with app.test_request_context('/'):
+ if USING_BLUEPRINTS:
+ src = themes_blueprint.jinja_loader.get_source(
+- app.jinja_env, '_themes/cool/hello.html'
++ app.jinja_env, 'cool/hello.html'
+ )
+ else:
+ src = themes_mod.jinja_loader.get_source(
diff --git a/dev-python/flask-themes/flask-themes-0.1.3-r1.ebuild b/dev-python/flask-themes/flask-themes-0.1.3-r1.ebuild
new file mode 100644
index 00000000000..1f26f4f1cd6
--- /dev/null
+++ b/dev-python/flask-themes/flask-themes-0.1.3-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Flask-Themes"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Infrastructure for theming support in Flask applications"
+HOMEPAGE="http://packages.python.org/Flask-Themes/ http://pypi.python.org/pypi/Flask-Themes"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=dev-python/flask-0.6[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/fixtests.patch )
+
+python_test() {
+ # suite fails miserably under py3. Cannot even find upstream repo to file. pypi.org does NOT help
+ if ! python_is_python3; then
+ PYTHONPATH=.:tests nosetests || die "Tests failed under ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/flask-themes/metadata.xml b/dev-python/flask-themes/metadata.xml
new file mode 100644
index 00000000000..3823ab5220d
--- /dev/null
+++ b/dev-python/flask-themes/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Themes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-uploads/Manifest b/dev-python/flask-uploads/Manifest
new file mode 100644
index 00000000000..2062a55cf23
--- /dev/null
+++ b/dev-python/flask-uploads/Manifest
@@ -0,0 +1 @@
+DIST Flask-Uploads-0.1.3.tar.gz 9312 SHA256 2ed695257bb9e3ab93aacf88022f78e1167c748ba8ec19c180ede4af36a4d4de SHA512 eb52c8b22ecc909a37149a9b6df91f47bff0f48ef768325a6e8cc1031b1c1977894a1aaaf70726484316de1782daa26ea96d24114d10490b0d271b2a87efd8ae WHIRLPOOL 9a240e9b797d535622cbb7fbc324a7763ec53e3a9a3d0267176fbc202013c4bb2a3671515320f3157b6086de8b8cd653154080bffa69fe082710109be6789c6c
diff --git a/dev-python/flask-uploads/flask-uploads-0.1.3.ebuild b/dev-python/flask-uploads/flask-uploads-0.1.3.ebuild
new file mode 100644
index 00000000000..41504bd8b6a
--- /dev/null
+++ b/dev-python/flask-uploads/flask-uploads-0.1.3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Flexible and efficient upload handling for Flask"
+HOMEPAGE="http://pythonhosted.org/Flask-Testing/
+ https://pypi.python.org/pypi/Flask-Testing/"
+MY_PN="Flask-Uploads"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/flask-0.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-uploads/metadata.xml b/dev-python/flask-uploads/metadata.xml
new file mode 100644
index 00000000000..bae55d55e1d
--- /dev/null
+++ b/dev-python/flask-uploads/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-Uploads</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-whooshalchemy/Manifest b/dev-python/flask-whooshalchemy/Manifest
new file mode 100644
index 00000000000..4de6da7a435
--- /dev/null
+++ b/dev-python/flask-whooshalchemy/Manifest
@@ -0,0 +1,2 @@
+DIST Flask-WhooshAlchemy-0.55a.tar.gz 7355 SHA256 50c9539ad72d401ce2e95cfe16b41c7d4a325b1142e3fd9bc8e49bf4a134cc85 SHA512 795961106683a7e8b9a51b1b20d09aac9ffb680bf99a1b4feefafb75924f175bb51ca7fa8c0b02f92c1287300b25cefb719fff6bd1e60f94ab11f6f942162e68 WHIRLPOOL cf398001c633c83761ee1c0bf55d15387cbca19e1214191049ff7d3e5c5f0c10fadfc8a3535a43f3869404f8c49361f4e51c07e9e4bb43ffbec53ecc55d72d65
+DIST Flask-WhooshAlchemy-0.56.tar.gz 8528 SHA256 8320ba75040bd37c2810d5ab9a4bd9f3ccadebbef93c805fe0578403f8785baa SHA512 acf7607ad909382bbf3016467cd8e402c98b4618a5822ba6097671becba43f1cac48f6415ce967c4f85c71b71fdafd30c36e5b65e9fc99500c0aad83ea1c650c WHIRLPOOL c08ae0add692379cb1571ff957b4b45447d350c770ad64dde3a5592cbf1b704ee1466f740bc8d6b82750a962695424588717af197e0859a96a28669a935b5e40
diff --git a/dev-python/flask-whooshalchemy/flask-whooshalchemy-0.55a.ebuild b/dev-python/flask-whooshalchemy/flask-whooshalchemy-0.55a.ebuild
new file mode 100644
index 00000000000..bc23b9252ad
--- /dev/null
+++ b/dev-python/flask-whooshalchemy/flask-whooshalchemy-0.55a.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+RESTRICT="test"
+
+inherit distutils-r1
+
+MY_PN="Flask-WhooshAlchemy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Whoosh extension to Flask/SQLAlchemy"
+HOMEPAGE="https://github.com/gyllstromk/Flask-WhooshAlchemy https://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/blinker[${PYTHON_USEDEP}]
+ dev-python/whoosh[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/flask-testing[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-whooshalchemy/flask-whooshalchemy-0.56.ebuild b/dev-python/flask-whooshalchemy/flask-whooshalchemy-0.56.ebuild
new file mode 100644
index 00000000000..2f92b7be324
--- /dev/null
+++ b/dev-python/flask-whooshalchemy/flask-whooshalchemy-0.56.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+RESTRICT="test" # appears pretty borken
+
+inherit distutils-r1
+
+MY_PN="Flask-WhooshAlchemy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Whoosh extension to Flask/SQLAlchemy"
+HOMEPAGE="https://github.com/gyllstromk/Flask-WhooshAlchemy https://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/blinker[${PYTHON_USEDEP}]
+ dev-python/whoosh[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+# test? (
+# dev-python/flask-testing[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/flask-whooshalchemy/metadata.xml b/dev-python/flask-whooshalchemy/metadata.xml
new file mode 100644
index 00000000000..193b0a1a649
--- /dev/null
+++ b/dev-python/flask-whooshalchemy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-WhooshAlchemy</remote-id>
+ <remote-id type="github">gyllstromk/Flask-WhooshAlchemy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-wtf/Manifest b/dev-python/flask-wtf/Manifest
new file mode 100644
index 00000000000..b0cdc1f4f00
--- /dev/null
+++ b/dev-python/flask-wtf/Manifest
@@ -0,0 +1,4 @@
+DIST Flask-WTF-0.10.2.tar.gz 246659 SHA256 2926a265e6aa163a2102a8f058ad89acb9304665c476cea9687243bcc8f99b45 SHA512 f4736f38a3443903ac6c9f55d448b1f079641721f471d24c1492c54ec1e96b2390c6669325156e8233ecb5c38744f3186ccf47d5df79b6f0c881bd9032836df2 WHIRLPOOL 0890f0004483be6cb5b2fdcbfeb93f83c5c431d40c5fa39c69b31d97941e465149bb4fbbae4be0a0c2ab553b4d398d66179993fc518391ac9205e58dff85a234
+DIST Flask-WTF-0.10.3.tar.gz 247240 SHA256 40da66462df074c2a0fd209e6047972bc226125f6c484c8e367ea10e71ddd718 SHA512 c8cbc817afca7efbc2c0302c4fa3625874159c10e4664b502693acfa3ffcca34aee0a6f17528b45340f1e7f103f87ac72178f2ca4d589307bde12fe47ac5cf50 WHIRLPOOL 08b1b66813a558918ed3e9da8ae2d0db9947f11bf6fccb2ec6f8de1e359422d4431754e982a81a959129230aa39c70470bbad944451238f6c1136976286f303b
+DIST Flask-WTF-0.11.tar.gz 247005 SHA256 2f53a4b314ec26824d0b70f0766b7dd74c6df77bcf8b64de88e1354bc900874b SHA512 213188fd9fb199e4c52cf3e74f5e66846217b817ecf2ffe08ddb5c7cda2ab10a88e3c655364b64393137be1fd105c7d973f82cbd0eca0bfb28bfa3118f5bee15 WHIRLPOOL 559353d70a15e99b18aeb2a54b3c4e27bf5ef0afd870f71085a2dd7384f5b72cfaee9376f45c6280ce19099b3a59152621c8630c9330f5527a03299ae77ec6ce
+DIST Flask-WTF-0.12.tar.gz 247397 SHA256 bd99316c97ed1d1cb90b8f0c242c86420a891a6a2058f20717e424bf5b0bb80e SHA512 d9861a4fa6ace46fb2a632ff51777bc30af9b63c4f2a35cbe4a68a2777468eb7b6e1813ce331472458c05ce7069f73d998b4e9d3fd9d6ef56fc3abf0bb219a9e WHIRLPOOL 4b044ab1ff2409468f1d1e21a79605432a817322784103cdbfb1708a745cab0f7b8d406607fa5fc594b311daadbcf7e23876fbc2021f2ce9e7d05f8c0852a77b
diff --git a/dev-python/flask-wtf/flask-wtf-0.10.2.ebuild b/dev-python/flask-wtf/flask-wtf-0.10.2.ebuild
new file mode 100644
index 00000000000..8d8e300b0f4
--- /dev/null
+++ b/dev-python/flask-wtf/flask-wtf-0.10.2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+# silly captcha test trying to access things over the network
+RESTRICT="test"
+
+inherit distutils-r1
+
+MY_PN="Flask-WTF"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple integration of Flask and WTForms, including CSRF, file upload and Recaptcha integration"
+HOMEPAGE="http://pythonhosted.org/Flask-WTF/ https://pypi.python.org/pypi/Flask-WTF"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/wtforms-1.0.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-testing[${PYTHON_USEDEP}]
+ dev-python/flask-uploads[${PYTHON_USEDEP}]
+ dev-python/speaklater[${PYTHON_USEDEP}]
+ dev-python/flask-babel[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/werkzeug[${PYTHON_USEDEP}]' python2_7 )
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-wtf/flask-wtf-0.10.3.ebuild b/dev-python/flask-wtf/flask-wtf-0.10.3.ebuild
new file mode 100644
index 00000000000..a2d55e01bfa
--- /dev/null
+++ b/dev-python/flask-wtf/flask-wtf-0.10.3.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+# silly captcha test trying to access things over the network
+RESTRICT="test"
+
+inherit distutils-r1
+
+MY_PN="Flask-WTF"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple integration of Flask and WTForms, including CSRF, file upload and Recaptcha integration"
+HOMEPAGE="http://pythonhosted.org/Flask-WTF/ https://pypi.python.org/pypi/Flask-WTF"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/wtforms-1.0.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-testing[${PYTHON_USEDEP}]
+ dev-python/flask-uploads[${PYTHON_USEDEP}]
+ dev-python/speaklater[${PYTHON_USEDEP}]
+ dev-python/flask-babel[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/werkzeug[${PYTHON_USEDEP}]' python2_7 )
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-wtf/flask-wtf-0.11.ebuild b/dev-python/flask-wtf/flask-wtf-0.11.ebuild
new file mode 100644
index 00000000000..94a4bb8cbf4
--- /dev/null
+++ b/dev-python/flask-wtf/flask-wtf-0.11.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+# silly captcha test trying to access things over the network
+RESTRICT="test"
+
+inherit distutils-r1
+
+MY_PN="Flask-WTF"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple integration of Flask and WTForms, including CSRF, file upload and Recaptcha integration"
+HOMEPAGE="http://pythonhosted.org/Flask-WTF/ https://pypi.python.org/pypi/Flask-WTF"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/wtforms-1.0.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-testing[${PYTHON_USEDEP}]
+ dev-python/flask-uploads[${PYTHON_USEDEP}]
+ dev-python/speaklater[${PYTHON_USEDEP}]
+ dev-python/flask-babel[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/werkzeug[${PYTHON_USEDEP}]' python2_7 )
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-wtf/flask-wtf-0.12.ebuild b/dev-python/flask-wtf/flask-wtf-0.12.ebuild
new file mode 100644
index 00000000000..94a4bb8cbf4
--- /dev/null
+++ b/dev-python/flask-wtf/flask-wtf-0.12.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+# silly captcha test trying to access things over the network
+RESTRICT="test"
+
+inherit distutils-r1
+
+MY_PN="Flask-WTF"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple integration of Flask and WTForms, including CSRF, file upload and Recaptcha integration"
+HOMEPAGE="http://pythonhosted.org/Flask-WTF/ https://pypi.python.org/pypi/Flask-WTF"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/wtforms-1.0.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/flask-testing[${PYTHON_USEDEP}]
+ dev-python/flask-uploads[${PYTHON_USEDEP}]
+ dev-python/speaklater[${PYTHON_USEDEP}]
+ dev-python/flask-babel[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/werkzeug[${PYTHON_USEDEP}]' python2_7 )
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask-wtf/metadata.xml b/dev-python/flask-wtf/metadata.xml
new file mode 100644
index 00000000000..8ff11cb9112
--- /dev/null
+++ b/dev-python/flask-wtf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-WTF</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask-xml-rpc/Manifest b/dev-python/flask-xml-rpc/Manifest
new file mode 100644
index 00000000000..41b462626ac
--- /dev/null
+++ b/dev-python/flask-xml-rpc/Manifest
@@ -0,0 +1 @@
+DIST Flask-XML-RPC-0.1.2.tar.gz 5756 SHA256 4adc7482240a916e8c2205cba38b4bd6e648692d189419686a3116768fa48ab7 SHA512 0e083b70576b0d09a316f8be9a779eeb24723caede172fe51168b2b125553b7916e65012813976d46b03787d1f5c24ad6524267d432a246aaf8b222023481e85 WHIRLPOOL e50373eb0cdc7453d94204fc2f3d6c6eba03233e0c313138cd62d1a6c312463aa6f170228ca7f00697bcb1df0e50e4dd7fc2b1d03c2a227c49687d247e14b71a
diff --git a/dev-python/flask-xml-rpc/flask-xml-rpc-0.1.2-r1.ebuild b/dev-python/flask-xml-rpc/flask-xml-rpc-0.1.2-r1.ebuild
new file mode 100644
index 00000000000..22db8a3be29
--- /dev/null
+++ b/dev-python/flask-xml-rpc/flask-xml-rpc-0.1.2-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Flask-XML-RPC"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="XML-RPC support for Flask applications"
+HOMEPAGE="http://packages.python.org/Flask-XML-RPC/ http://pypi.python.org/pypi/Flask-XML-RPC"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/flask[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/flask-xml-rpc/metadata.xml b/dev-python/flask-xml-rpc/metadata.xml
new file mode 100644
index 00000000000..e0e8cc3a894
--- /dev/null
+++ b/dev-python/flask-xml-rpc/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask-XML-RPC</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flask/Manifest b/dev-python/flask/Manifest
new file mode 100644
index 00000000000..f28be9727e4
--- /dev/null
+++ b/dev-python/flask/Manifest
@@ -0,0 +1 @@
+DIST Flask-0.10.1.tar.gz 544247 SHA256 4c83829ff83d408b5e1d4995472265411d2c414112298f2eb4b359d9e4563373 SHA512 0008d62d03a46b071c7d0510513d011a9bfd2b77df7f677371a446ca9805d16b1ee5e17dd8dd7cde6443a629370234e44735e20381de20a7da385969797f053f WHIRLPOOL f30a306ed00fe6d4c8e47b781c556c576b99b3545f833ae06f6b778d91c3127dc0adcc34d48221a0f1db1bb1633f2329d6085b7a4550afc672530525fdff474f
diff --git a/dev-python/flask/files/flask-0.10.1-is_package.patch b/dev-python/flask/files/flask-0.10.1-is_package.patch
new file mode 100644
index 00000000000..611d931d502
--- /dev/null
+++ b/dev-python/flask/files/flask-0.10.1-is_package.patch
@@ -0,0 +1,13 @@
+https://github.com/mitsuhiko/flask/issues/487
+diff -ur Flask-0.10.1.orig/flask/helpers.py Flask-0.10.1/flask/helpers.py
+--- flask/helpers.py 2013-06-14 06:35:43.000000000 +0800
++++ flask/helpers.py 2013-08-16 16:18:36.194006290 +0800
+@@ -679,7 +679,7 @@
+ filename = sys.modules[import_name].__file__
+ package_path = os.path.abspath(os.path.dirname(filename))
+ # package_path ends with __init__.py for a package
+- if loader.is_package(root_mod_name):
++ if package_path.endswith('__init__.py'):
+ package_path = os.path.dirname(package_path)
+
+ site_parent, site_folder = os.path.split(package_path)
diff --git a/dev-python/flask/files/flask-0.10.1-sort_json.patch b/dev-python/flask/files/flask-0.10.1-sort_json.patch
new file mode 100644
index 00000000000..e78cd0dee82
--- /dev/null
+++ b/dev-python/flask/files/flask-0.10.1-sort_json.patch
@@ -0,0 +1,54 @@
+https://github.com/mitsuhiko/flask/commit/a2bc61b5ab19e899735f8945f68123b4cea570d5
+diff --git a/flask/testsuite/helpers.py b/flask/testsuite/helpers.py
+index 636f67f..7de70c0 100644
+--- a/flask/testsuite/helpers.py
++++ b/flask/testsuite/helpers.py
+@@ -173,7 +173,33 @@ def index():
+ c = app.test_client()
+ rv = c.get('/')
+ lines = [x.strip() for x in rv.data.strip().decode('utf-8').splitlines()]
+- self.assert_equal(lines, [
++ sorted_by_str = [
++ '{',
++ '"values": {',
++ '"0": "foo",',
++ '"1": "foo",',
++ '"10": "foo",',
++ '"11": "foo",',
++ '"12": "foo",',
++ '"13": "foo",',
++ '"14": "foo",',
++ '"15": "foo",',
++ '"16": "foo",',
++ '"17": "foo",',
++ '"18": "foo",',
++ '"19": "foo",',
++ '"2": "foo",',
++ '"3": "foo",',
++ '"4": "foo",',
++ '"5": "foo",',
++ '"6": "foo",',
++ '"7": "foo",',
++ '"8": "foo",',
++ '"9": "foo"',
++ '}',
++ '}'
++ ]
++ sorted_by_int = [
+ '{',
+ '"values": {',
+ '"0": "foo",',
+@@ -198,8 +224,12 @@ def index():
+ '"19": "foo"',
+ '}',
+ '}'
+- ])
++ ]
+
++ try:
++ self.assert_equal(lines, sorted_by_int)
++ except AssertionError:
++ self.assert_equal(lines, sorted_by_str)
+
+ class SendfileTestCase(FlaskTestCase):
+
diff --git a/dev-python/flask/files/flask-0.10.1-test_appcontext.patch b/dev-python/flask/files/flask-0.10.1-test_appcontext.patch
new file mode 100644
index 00000000000..11dee7a9f6b
--- /dev/null
+++ b/dev-python/flask/files/flask-0.10.1-test_appcontext.patch
@@ -0,0 +1,14 @@
+https://github.com/mitsuhiko/flask/commit/f88cc2d2f9d14d97e33ddd2bbaa4b1885db06e1c.
+diff --git a/flask/testsuite/signals.py b/flask/testsuite/signals.py
+index e061932..45ca45d 100644
+--- a/flask/testsuite/signals.py
++++ b/flask/testsuite/signals.py
+@@ -102,7 +102,7 @@ def test_appcontext_signals(self):
+ def record_push(sender, **kwargs):
+ recorded.append('push')
+ def record_pop(sender, **kwargs):
+- recorded.append('push')
++ recorded.append('pop')
+
+ @app.route('/')
+ def index():
diff --git a/dev-python/flask/flask-0.10.1-r1.ebuild b/dev-python/flask/flask-0.10.1-r1.ebuild
new file mode 100644
index 00000000000..a879f6dfc54
--- /dev/null
+++ b/dev-python/flask/flask-0.10.1-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A microframework based on Werkzeug, Jinja2 and good intentions"
+MY_PN="Flask"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/mitsuhiko/flask/"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+RDEPEND="dev-python/blinker[${PYTHON_USEDEP}]
+ >=dev-python/itsdangerous-0.21[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.4[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/werkzeug-0.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+# Usual; test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/${P}-is_package.patch
+ "${FILESDIR}"/${P}-sort_json.patch
+ "${FILESDIR}"/${P}-test_appcontext.patch )
+
+python_test() {
+ "${PYTHON}" run-tests.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask/flask-0.10.1-r2.ebuild b/dev-python/flask/flask-0.10.1-r2.ebuild
new file mode 100644
index 00000000000..e997dee4b8b
--- /dev/null
+++ b/dev-python/flask/flask-0.10.1-r2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A microframework based on Werkzeug, Jinja2 and good intentions"
+MY_PN="Flask"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/mitsuhiko/flask/"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="dev-python/blinker[${PYTHON_USEDEP}]
+ >=dev-python/itsdangerous-0.21[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.4[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/werkzeug-0.7[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}"
+# Usual; test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/${P}-is_package.patch
+ "${FILESDIR}"/${P}-sort_json.patch
+ "${FILESDIR}"/${P}-test_appcontext.patch )
+
+python_prepare_all() {
+ # Prevent un-needed d'loading
+ sed -e "s/ 'sphinx.ext.intersphinx',//" -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" run-tests.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask/flask-9999.ebuild b/dev-python/flask/flask-9999.ebuild
new file mode 100644
index 00000000000..e94ede26320
--- /dev/null
+++ b/dev-python/flask/flask-9999.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 git-2
+
+EGIT_REPO_URI="git://github.com/mitsuhiko/flask.git
+ https://github.com/mitsuhiko/flask.git"
+
+DESCRIPTION="A microframework based on Werkzeug, Jinja2 and good intentions"
+MY_PN="Flask"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/Flask"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="examples test"
+
+RDEPEND="dev-python/blinker[${PYTHON_USEDEP}]
+ >=dev-python/itsdangerous-0.21[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.4[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/werkzeug-0.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+#if LIVE
+SRC_URI=
+KEYWORDS=
+#endif
+
+python_test() {
+ py.test tests || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/flask/metadata.xml b/dev-python/flask/metadata.xml
new file mode 100644
index 00000000000..5525ec93ab4
--- /dev/null
+++ b/dev-python/flask/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Flask</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/flup/Manifest b/dev-python/flup/Manifest
new file mode 100644
index 00000000000..23708fc3d37
--- /dev/null
+++ b/dev-python/flup/Manifest
@@ -0,0 +1 @@
+DIST flup-1.0.2.tar.gz 49051 SHA256 4bad317a5fc1ce3d4fe5e9b6d846ec38a8023e16876785d4f88102f2c8097dd9 SHA512 65c610f9ddc3df6ed6deb6753b2b15ce4f4579efd9dfd25166d3b6803e5d7058fee6617388c9c67c39f7db54da5c918181dcbddfbb7be4a78cf8b65501af4c4a WHIRLPOOL 03c60b9f51699f2b3171e35a1e4fef3fbd47ef07c7150f61cd5bbd2ae1b9094580745b0bcf951aa79d1ea1157ef7c76945470177aba9f2f93733508fc306e8db
diff --git a/dev-python/flup/flup-1.0.2-r1.ebuild b/dev-python/flup/flup-1.0.2-r1.ebuild
new file mode 100644
index 00000000000..6e429230f64
--- /dev/null
+++ b/dev-python/flup/flup-1.0.2-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Random assortment of WSGI servers"
+HOMEPAGE="http://www.saddi.com/software/flup/"
+SRC_URI="http://www.saddi.com/software/${PN}/dist/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ia64 ppc ~ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/flup/metadata.xml b/dev-python/flup/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/flup/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest
new file mode 100644
index 00000000000..605b70fc8f9
--- /dev/null
+++ b/dev-python/fonttools/Manifest
@@ -0,0 +1,2 @@
+DIST fonttools-2.4.tar.gz 348885 SHA256 95e5d8a67e2dae3ea237f9bebc449e0af42f12f03683db34f617e5b15d9d4fb0 SHA512 d63f4d715b2af2716145e6798cfbcde5a96da0d778f1a394bf8850afb0d4643ee87399a031c1f97f67d46ec545eb548ef137e794b1b02964ad04d54e468ac570 WHIRLPOOL dfc654fb40ec8cb7f7c3767e33bcdf6a0048ff42b53f97e9df893402f8470f95ba85dda436263b3f4a5281d19f48d8b21b2be551973421a17b6ed25ff211eef0
+DIST fonttools-2.5.tar.gz 229374 SHA256 c89603f9f3346f48f4a24f786422e935423554e0a9172dcd3ec8ffbd556d2159 SHA512 03e5943dbf821563d1997de50ee3a5d46c56d22d8ec48d03211fe4c51913154da36655bce5f5b003551fbcc7daa39919f1d1d21f2dd8d61c1f6186cee74f694f WHIRLPOOL 48b75a2b7b525c46f6de9b3b258873ef2965d9b9ba10679e4958e0dcde3d031c2ded9f8d7beb0dc41233ca028bc83ea3b4f75df6b4457f6f3a8ccf6b547af45f
diff --git a/dev-python/fonttools/fonttools-2.4.ebuild b/dev-python/fonttools/fonttools-2.4.ebuild
new file mode 100644
index 00000000000..eeb2dc35649
--- /dev/null
+++ b/dev-python/fonttools/fonttools-2.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
+HOMEPAGE="http://fonttools.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ~arm64 ia64 ppc x86"
+IUSE=""
+
+DEPEND=">=dev-python/numpy-1.0.2[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ DOCS=( README.txt Doc/{changes.txt,install.txt} )
+ HTML_DOCS=( Doc/documentation.html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fonttools/fonttools-2.5.ebuild b/dev-python/fonttools/fonttools-2.5.ebuild
new file mode 100644
index 00000000000..2c5409582d6
--- /dev/null
+++ b/dev-python/fonttools/fonttools-2.5.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
+HOMEPAGE="https://github.com/behdad/fonttools/"
+SRC_URI="https://github.com/behdad/fonttools/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/numpy-1.0.2[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ DOCS=( README.md Doc/{changes.txt,install.txt} )
+ HTML_DOCS=( Doc/documentation.html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fonttools/metadata.xml b/dev-python/fonttools/metadata.xml
new file mode 100644
index 00000000000..36fc172f9f8
--- /dev/null
+++ b/dev-python/fonttools/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>fonts</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">fonttools</remote-id>
+ <remote-id type="github">behdad/fonttools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/foolscap/Manifest b/dev-python/foolscap/Manifest
new file mode 100644
index 00000000000..6f89300b4f3
--- /dev/null
+++ b/dev-python/foolscap/Manifest
@@ -0,0 +1,3 @@
+DIST foolscap-0.6.4.tar.gz 479664 SHA256 74b283dd68a3c9d68ebf4e9b4ebf5cfb37480915b6a808ac930fe858a66f8d99 SHA512 014ec256b6192b509bebaef4d716f0d57c78062ae92621567d6be29b9f4cfad431cf691bb13b361f5eb1e383f62c5c164821154b35d2a06081369a175835012e WHIRLPOOL f1254636e9f668a669e14098490147143a723360a291320e6bc7ce8914b2049c024760dede4f5eec01bd4d4be0c709d7a4fd56d1e61f376a40f63942cbb27356
+DIST foolscap-0.7.0.tar.gz 478999 SHA256 fba0e016079442c9e69e2752727a1307f4110a1c62319a059650b2ab044b29d8 SHA512 b2eb5415376d4e8e4ee3fd9ecef80a02d195d6b44059e5292c2daa7dcfdea9deafd8678ff89391128244a8d41fb6a69a92f9e4f07cc599f7358783dc8cb70f15 WHIRLPOOL 58bc4b34d36e1edfa3bbcadb6a16704820af8b6448bf09d6d5e95c23edf60f41481d6792fcae808c0bd8bb3f71b18ed794c0be00e77cc67f160cb3b026567384
+DIST foolscap-0.8.0.tar.gz 475062 SHA256 6ab49e8c52ee49597148802a877593ddb6ca9a63cb32eaae8bff2900667be1c9 SHA512 4f491ac1e35e76b7fcee5994312e34696921eb7a9b0913e919142fe2807e32aad5ddbbffec3bfe5e1f4333ec38e0ee607ea9cfe5007b385ab6a15ea913c80f45 WHIRLPOOL 5b8c26eb081cf211683d6a8ed3177267793fe2aa3258b2e6b381aaa4d367ae4c0fb61b0902a186874efad9d2150303378d4468c573992047ac0994998ba2f534
diff --git a/dev-python/foolscap/foolscap-0.6.4-r1.ebuild b/dev-python/foolscap/foolscap-0.6.4-r1.ebuild
new file mode 100644
index 00000000000..acb53bf367a
--- /dev/null
+++ b/dev-python/foolscap/foolscap-0.6.4-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="RPC protocol for Twisted"
+HOMEPAGE="http://foolscap.lothar.com/trac http://pypi.python.org/pypi/foolscap"
+SRC_URI="http://${PN}.lothar.com/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc ssl"
+
+RDEPEND=">=dev-python/twisted-core-2.4.0[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]
+ ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ local -x LC_ALL=C
+ trial ${PN} || die "Tests fail for ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dodoc doc/*.txt
+ dohtml -A py,tpl,xhtml -r doc/*
+ fi
+}
diff --git a/dev-python/foolscap/foolscap-0.7.0.ebuild b/dev-python/foolscap/foolscap-0.7.0.ebuild
new file mode 100644
index 00000000000..f400ed6bed4
--- /dev/null
+++ b/dev-python/foolscap/foolscap-0.7.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="RPC protocol for Twisted"
+HOMEPAGE="http://foolscap.lothar.com/trac http://pypi.python.org/pypi/foolscap"
+SRC_URI="http://${PN}.lothar.com/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ~ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc +ssl test"
+
+RDEPEND=">=dev-python/twisted-core-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-2.5.0[${PYTHON_USEDEP}]
+ ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+python_test() {
+ trial ${PN} || die "Tests fail for ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dodoc doc/*.txt
+ dohtml -A py,tpl,xhtml -r doc/*
+ fi
+}
diff --git a/dev-python/foolscap/foolscap-0.8.0.ebuild b/dev-python/foolscap/foolscap-0.8.0.ebuild
new file mode 100644
index 00000000000..0b182db8daa
--- /dev/null
+++ b/dev-python/foolscap/foolscap-0.8.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="RPC protocol for Twisted"
+HOMEPAGE="http://foolscap.lothar.com/trac http://pypi.python.org/pypi/foolscap"
+SRC_URI="http://${PN}.lothar.com/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc +ssl test"
+
+# setup.py stipulates >=twisted-core-2.5.0 but failures occur in testsuite under -15.x
+RDEPEND="
+ >=dev-python/twisted-core-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/twisted-core-15.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/twisted-web-15.0.0[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]
+ ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ "
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+python_test() {
+ trial ${PN} || die "Tests fail for ${EPYTHON}"
+}
+
+python_compile_all() {
+ local i;
+ if use doc; then
+ pushd doc > /dev/null
+ mkdir build || die
+ for i in ./*.rst
+ do
+ rst2html.py $i > ./build/${i/rst/html} || die
+ done
+ popd > /dev/null
+ fi
+}
+
+python_test() {
+ trial ${PN} || die "Tests fail for ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/foolscap/metadata.xml b/dev-python/foolscap/metadata.xml
new file mode 100644
index 00000000000..de8f9439ef0
--- /dev/null
+++ b/dev-python/foolscap/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+<longdescription>
+This is a ground-up rewrite of Perspective Broker, which itself is Twisted's
+native RPC/RMI protocol (Remote Procedure Call / Remote Method Invocation).
+If you have control of both ends of the wire, and are thus not constrained to
+use some other protocol like HTTP/XMLRPC/CORBA/etc, you might consider using
+Foolscap.
+
+Fundamentally, Foolscap allows you to make a python object in one process
+available to code in other processes, which means you can invoke its methods
+remotely. This includes a data serialization layer to convey the object
+graphs for the arguments and the eventual response, and an object reference
+system to keep track of which objects you are connecting to. It uses a
+capability-based security model, such that once you create a non-public
+object, it is only accessible to clients to whom you've given the
+(unguessable) FURL. You can of course publish world-visible objects that
+have well-known FURLs.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">foolscap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/formencode/Manifest b/dev-python/formencode/Manifest
new file mode 100644
index 00000000000..66f91a3d807
--- /dev/null
+++ b/dev-python/formencode/Manifest
@@ -0,0 +1,2 @@
+DIST FormEncode-1.2.4.tar.gz 240034 SHA256 8270840ee832055463b3d3328f8ae4b881e1fbe84353c97af1d913df3401feb9 SHA512 493c7b40bef72de9587633a46d01feed0d711dfc8a63dc610c706c50673c3201d1eb737f29b3ce2464c5c5d228d03415ceca48472f5baffc548db2604ba4a2f9 WHIRLPOOL aefd1dd670bc54f7775c3e6b59bf032014b992494ced70a8e891de256ad9ded5c3277c35e8794153194ab539d4e46a36b99d23bbd293fd35cad6dc355e395da0
+DIST FormEncode-1.3.0.zip 347674 SHA256 e6757280244a0d04e9cef51beeeafb4124087c27b7944c7d41341d0a30f7af78 SHA512 12c7c9fa36173c209682a6e1d68a074c64c9a5bd30e4f6b6b851b55d43c350ce1f79f666a9176add65f6bde554bc5deeb82ac965005f9457c4c2b0447af0cea9 WHIRLPOOL b2fa93f0f2eb2c417da43f22f41cb27edf18346560468927fc320aa93c1f6614ec7b76860427f843e3b50017a907c110a05269d281c76f99415b76480d395645
diff --git a/dev-python/formencode/formencode-1.2.4.ebuild b/dev-python/formencode/formencode-1.2.4.ebuild
new file mode 100644
index 00000000000..c8dec4e487c
--- /dev/null
+++ b/dev-python/formencode/formencode-1.2.4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils
+
+MY_PN="FormEncode"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="HTML form validation, generation, and conversion package"
+HOMEPAGE="http://formencode.org/ http://pypi.python.org/pypi/FormEncode"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ~sparc x86 ~amd64-linux ~x86-linux ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="docs/*.txt"
diff --git a/dev-python/formencode/formencode-1.3.0-r1.ebuild b/dev-python/formencode/formencode-1.3.0-r1.ebuild
new file mode 100644
index 00000000000..e1eba513df3
--- /dev/null
+++ b/dev-python/formencode/formencode-1.3.0-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="FormEncode"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="HTML form validation, generation, and conversion package"
+HOMEPAGE="http://formencode.org/ http://pypi.python.org/pypi/FormEncode"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pycountry[${PYTHON_USEDEP}]
+ >=dev-python/dnspython-1.12.0-r1[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+RESTRICT="test"
+DOCS=( docs/. )
+
+S="${WORKDIR}/${MY_P}"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -e '/package_data.*..docs/d' -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # https://github.com/formencode/formencode/issues/78
+ # 5 failures under py2.7. Although the package claims to cater to py3, the suite fails horribly
+ # Main problem is that it is written requiring to be system installed, then run.
+ # Suite found to pass on extended testing using tox.
+ nosetests || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/formencode/metadata.xml b/dev-python/formencode/metadata.xml
new file mode 100644
index 00000000000..c05d7f72e27
--- /dev/null
+++ b/dev-python/formencode/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">FormEncode</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/fpconst/Manifest b/dev-python/fpconst/Manifest
new file mode 100644
index 00000000000..147dae5fc99
--- /dev/null
+++ b/dev-python/fpconst/Manifest
@@ -0,0 +1 @@
+DIST fpconst-0.7.3.tar.gz 9697 SHA256 1a5c2e4a1ecefd9981988cea15068699eccbc55e350af3471e782083d390c727 SHA512 c6394ca2bd5d431bd7902a35bb31b976d1ef7461b4b576c77859f4132288a288ccdcf38805cc9f49228a989b94d74846cae3e99b382a5546866f327b436c5cdf WHIRLPOOL f6bd4f327fa2045ec8d1dc31d20faad81600ec0d1d6b347142cb1ef3192d968fe10abfb24587fb1888113b0eb26509c7882e80c7b20892b2e9cfe5d610e54844
diff --git a/dev-python/fpconst/fpconst-0.7.3-r1.ebuild b/dev-python/fpconst/fpconst-0.7.3-r1.ebuild
new file mode 100644
index 00000000000..c7bbe82303d
--- /dev/null
+++ b/dev-python/fpconst/fpconst-0.7.3-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Module for handling IEEE 754 floating point special values"
+HOMEPAGE="http://chaco.bst.rochester.edu:8080/statcomp/projects/RStatServer/fpconst/ http://pypi.python.org/pypi/fpconst http://sourceforge.net/projects/rsoap/files/"
+SRC_URI="mirror://sourceforge/rsoap/${P}.tar.gz"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+SLOT="0"
+LICENSE="GPL-2"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+DOCS=( CHANGELOG README pep-0754.txt )
+
+python_test() {
+ "${PYTHON}" -m fpconst || die "Self-tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/fpconst/metadata.xml b/dev-python/fpconst/metadata.xml
new file mode 100644
index 00000000000..d32a30d6c41
--- /dev/null
+++ b/dev-python/fpconst/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">rsoap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/freezegun/Manifest b/dev-python/freezegun/Manifest
new file mode 100644
index 00000000000..7c56ce17681
--- /dev/null
+++ b/dev-python/freezegun/Manifest
@@ -0,0 +1 @@
+DIST freezegun-0.3.5.tar.gz 43439 SHA256 ee59b2eedd4011eeaae8a95eec31aa977ec355df7f4eca1067f402cb79429e0a SHA512 2dfa6c8f06f58b241f4902bf3be838205ced0161a2b56b425eac20b3db1feb797254afabc0b1de5b6be2b79f003b03b7bedc1cc0d9dd7f666c443184a071ec88 WHIRLPOOL d3c7245b916d14d31b7f067741d3297df3c11b97ffde0b9b2ba51036d0cae6d5ab63cccdcfbc0cd1bd145ff23ac0159d948e0d6af42e4c41458e9842e2948bc2
diff --git a/dev-python/freezegun/freezegun-0.3.5.ebuild b/dev-python/freezegun/freezegun-0.3.5.ebuild
new file mode 100644
index 00000000000..adeb55e48c3
--- /dev/null
+++ b/dev-python/freezegun/freezegun-0.3.5.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Let your Python tests travel through time"
+HOMEPAGE="https://github.com/spulec/freezegun"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/freezegun/metadata.xml b/dev-python/freezegun/metadata.xml
new file mode 100644
index 00000000000..f42b5d09f39
--- /dev/null
+++ b/dev-python/freezegun/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">freezegun</remote-id>
+ <remote-id type="github">spulec/freezegun</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/frozen-flask/Manifest b/dev-python/frozen-flask/Manifest
new file mode 100644
index 00000000000..de665f77b1f
--- /dev/null
+++ b/dev-python/frozen-flask/Manifest
@@ -0,0 +1 @@
+DIST Frozen-Flask-0.11.tar.gz 106927 SHA256 c348e0165b161efa44770157eba3e006cc6a1e9867bfd74670cbc56529cc5512 SHA512 a734c6e090f08b01756b677a577c013e0198272a9e469410be81e5214eceb34d98e163410e8e04850036c58c5e7c9e718145e69cd26dd9e30c821f6949aede76 WHIRLPOOL 60a54174665e96b4f3921b72bb1f5f313f53c983d84e3dc6fd917f7273ace98a364638d925776eb5cfa6b709d8ee7c935cd3b9bbbb8926550513e3a54e517d59
diff --git a/dev-python/frozen-flask/frozen-flask-0.11-r1.ebuild b/dev-python/frozen-flask/frozen-flask-0.11-r1.ebuild
new file mode 100644
index 00000000000..acf049c3e6b
--- /dev/null
+++ b/dev-python/frozen-flask/frozen-flask-0.11-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Frozen-Flask"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Freezes a Flask application into a set of static files"
+HOMEPAGE="https://github.com/SimonSapin/Frozen-Flask http://pypi.python.org/pypi/Frozen-Flask"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/flask-0.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ sed -e 's:^intersphinx_mapping:#intersphinx_mapping:' -i docs/conf.py || die
+ mkdir docs/_build || die
+ sphinx-build -c docs docs docs/_build || die
+ fi
+}
+
+python_test() {
+ nosetests || die Tests failed under $"{EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( "${S}"/docs/_build/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/frozen-flask/metadata.xml b/dev-python/frozen-flask/metadata.xml
new file mode 100644
index 00000000000..f0f9f1aa390
--- /dev/null
+++ b/dev-python/frozen-flask/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Frozen-Flask</remote-id>
+ <remote-id type="github">SimonSapin/Frozen-Flask</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/fudge/Manifest b/dev-python/fudge/Manifest
new file mode 100644
index 00000000000..8ad6cae44a9
--- /dev/null
+++ b/dev-python/fudge/Manifest
@@ -0,0 +1,3 @@
+DIST fudge-0.9.6.tar.gz 81653 SHA256 34690c4692e8717f4d6a2ab7d841070c93c8d0ea0d2615b47064e291f750b1a0 SHA512 69b2fa5bdd678779c0a8d9863a67e1e6724828720d2764f9f8958bc3598dcf39b22f9827efccb03014961d27d6e214c2125f639bab200b63c824c2306e3bb617 WHIRLPOOL 176df990c9adebe2d4f969603e48b2f1a797cf9935de3daeab98c078314a3fd88a19affdff5b784db5d570a3264f8cc849305b2e4761a7128c2cca7eed79062f
+DIST fudge-1.0.3.tar.gz 87558 SHA256 f8c8bfb3c0199dd06108c0c5a80e3645c7a071e0917b1a3bc73c761800809251 SHA512 7bbbcf517b2570fae20b882467aa7b739fcc9db2cd4fd2c363536da1a2bdd7c016417f42dcdb27c8422213c847eed7d8a90fd9d43eade2a238e5fc62630d5a6a WHIRLPOOL 9e02ea4d849e364ac979bf41c6fc626cdebf4b60186d9b63afe5dafa85ee4c73a9cdfbbc9762dd994e6b909f86f27caf4abe9f44394e203cbe900149f90f7960
+DIST fudge-1.1.0.tar.gz 86418 SHA256 eba59a926fa1df1ab6dddd69a7a8af21865b16cad800cb4d1af75070b0f52afb SHA512 061d9303d28509d4e22eb2036d041359f872be85911dd85bb16e4d13bfc1cf27637f8206f215f4a37d63108ab2500d2af3f6a1a3e206fe461ead9163e0519417 WHIRLPOOL 3425a95652a778b784af99aed54ab90caf3b94fa171c9991e35b5a561ce44e14c2d337c88a3bcd2ea52499dce7d642b70b0be27a45c13fb3d0025abfbbd6d8df
diff --git a/dev-python/fudge/fudge-0.9.6-r1.ebuild b/dev-python/fudge/fudge-0.9.6-r1.ebuild
new file mode 100644
index 00000000000..1992e4aae0d
--- /dev/null
+++ b/dev-python/fudge/fudge-0.9.6-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Replace real objects with fakes (mocks, stubs, etc) while testing"
+HOMEPAGE="http://farmdev.com/projects/fudge/ http://pypi.python.org/pypi/fudge"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ find -name "._*" -delete || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fudge/fudge-1.0.3-r2.ebuild b/dev-python/fudge/fudge-1.0.3-r2.ebuild
new file mode 100644
index 00000000000..8aae7215178
--- /dev/null
+++ b/dev-python/fudge/fudge-1.0.3-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Replace real objects with fakes (mocks, stubs, etc) while testing"
+HOMEPAGE="http://farmdev.com/projects/fudge/ http://pypi.python.org/pypi/fudge"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ find -name "._*" -delete || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fudge/fudge-1.1.0.ebuild b/dev-python/fudge/fudge-1.1.0.ebuild
new file mode 100644
index 00000000000..663ac7825fe
--- /dev/null
+++ b/dev-python/fudge/fudge-1.1.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Replace real objects with fakes (mocks, stubs, etc) while testing"
+HOMEPAGE="http://farmdev.com/projects/fudge/ http://pypi.python.org/pypi/fudge"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/fudge/metadata.xml b/dev-python/fudge/metadata.xml
new file mode 100644
index 00000000000..c3c08bae4d1
--- /dev/null
+++ b/dev-python/fudge/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">fudge</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/funcparserlib/Manifest b/dev-python/funcparserlib/Manifest
new file mode 100644
index 00000000000..21d314235f5
--- /dev/null
+++ b/dev-python/funcparserlib/Manifest
@@ -0,0 +1 @@
+DIST funcparserlib-0.3.6.tar.gz 30401 SHA256 b7992eac1a3eb97b3d91faa342bfda0729e990bd8a43774c1592c091e563c91d SHA512 efa52f788aa902b099660cb8bc60a025085a8c383e52bd0824a0c3ae28a6c13804a0659de0c80b4dcd839ee70491805d4eecda6cea221e35c3750ec569098c24 WHIRLPOOL c4bbf1f332f7fd6319fae178e810ea3ef83e403ee9ee89cacf1ec652c36a9047b5ed8fd9a41350eeb826633ec9ac6564d81ce88021670a079f82f256949d25d8
diff --git a/dev-python/funcparserlib/funcparserlib-0.3.6.ebuild b/dev-python/funcparserlib/funcparserlib-0.3.6.ebuild
new file mode 100644
index 00000000000..f8c6ab90473
--- /dev/null
+++ b/dev-python/funcparserlib/funcparserlib-0.3.6.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Recursive descent parsing library based on functional combinators"
+HOMEPAGE="https://code.google.com/p/funcparserlib/ https://pypi.python.org/pypi/funcparserlib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ local m=unittest
+ cd "${BUILD_DIR}"/lib || die
+ "${PYTHON}" -m ${m} discover || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( doc/*.md )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/funcparserlib/metadata.xml b/dev-python/funcparserlib/metadata.xml
new file mode 100644
index 00000000000..a8d1bb227df
--- /dev/null
+++ b/dev-python/funcparserlib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">funcparserlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/funcsigs/Manifest b/dev-python/funcsigs/Manifest
new file mode 100644
index 00000000000..6cfe4a495b4
--- /dev/null
+++ b/dev-python/funcsigs/Manifest
@@ -0,0 +1 @@
+DIST funcsigs-0.4.tar.gz 25697 SHA256 d83ce6df0b0ea6618700fe1db353526391a8a3ada1b7aba52fed7a61da772033 SHA512 64d821e94049ae906b9e5c8a2590f80a7d1d819554258e20f4170207576e5c8f65d32759a3f65bcb05fe721fa502658ff5767cd435932ea926c792c62ebe96d5 WHIRLPOOL d34cbcc061a341155b24b67af89f3fe0d14b659965ef4c9c14748996d33f3fd31d41492f097166236ebea54ea3ddd0e147c52f21f1410b2141169668811b9f66
diff --git a/dev-python/funcsigs/funcsigs-0.4.ebuild b/dev-python/funcsigs/funcsigs-0.4.ebuild
new file mode 100644
index 00000000000..ba5ebc1d926
--- /dev/null
+++ b/dev-python/funcsigs/funcsigs-0.4.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python function signatures from PEP362 for Python 2.7"
+HOMEPAGE="https://pypi.python.org/pypi/funcsigs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 ~hppa x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/unittest2[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/funcsigs/metadata.xml b/dev-python/funcsigs/metadata.xml
new file mode 100644
index 00000000000..f22d9fa5f25
--- /dev/null
+++ b/dev-python/funcsigs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">funcsigs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/functest/Manifest b/dev-python/functest/Manifest
new file mode 100644
index 00000000000..a391e66887e
--- /dev/null
+++ b/dev-python/functest/Manifest
@@ -0,0 +1 @@
+DIST functest-0.8.8.tar.gz 9972 SHA256 73e4a8a325e2f1e8028c25e2530ac86064434b4583ec87dc6780208ba80d6fdd SHA512 31b95b90222044d4f7605c652730ea463fbc22f0fc3369afd60a870cd12c5edf333de15490d324a7d68476a82bed87de0f6dd30fb710af2e5d4338d7acbfc27d WHIRLPOOL fbeb06f00e450f2f73e1397308e3859f3d05146e36ef616b02f7192c6ce51ae0d8a9f7bf1a5f2d84bac6ddc29f0e3c22d726c4cc64853cf0e768c952c6f73fcb
diff --git a/dev-python/functest/functest-0.8.8-r1.ebuild b/dev-python/functest/functest-0.8.8-r1.ebuild
new file mode 100644
index 00000000000..8c0e9050bbd
--- /dev/null
+++ b/dev-python/functest/functest-0.8.8-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Functest is a test tool/framework for testing in Python"
+HOMEPAGE="http://code.google.com/p/functest/ http://pypi.python.org/pypi/functest"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_prepare_all() {
+ # purge test folder to avoid file collisions
+ sed -e "s:find_packages():find_packages(exclude=['tests','tests.*']):" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ PATH="scripts:${PATH}" nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/functest/metadata.xml b/dev-python/functest/metadata.xml
new file mode 100644
index 00000000000..071babc1aa0
--- /dev/null
+++ b/dev-python/functest/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">functest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/fuse-python/Manifest b/dev-python/fuse-python/Manifest
new file mode 100644
index 00000000000..753829c9f13
--- /dev/null
+++ b/dev-python/fuse-python/Manifest
@@ -0,0 +1 @@
+DIST fuse-python-0.2.1.tar.gz 57833 SHA256 11ead462f8d0f8302ee07b33fe93dc42c653861a16c8802a31903a7355b8351b SHA512 f89c738352ca23e92b5c0222dde0a13bbee4d86432e9c339080203ed5bf4f885c42a0a3a252ed485f26b569d87e68dc0d78c55d8f7b2f3ce0cbac8afb251bdaa WHIRLPOOL ebd717570ceb539323af332e2e2057d549f6cf510b3558cd7cf1aa462645d283125d217498eaa97adff8a3c1c3af1da36235debf40ba97d886d63dcc8de54242
diff --git a/dev-python/fuse-python/fuse-python-0.2.1-r1.ebuild b/dev-python/fuse-python/fuse-python-0.2.1-r1.ebuild
new file mode 100644
index 00000000000..be8f6dc1ba7
--- /dev/null
+++ b/dev-python/fuse-python/fuse-python-0.2.1-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+KEYWORDS="amd64 x86"
+DESCRIPTION="Python FUSE bindings"
+HOMEPAGE="http://fuse.sourceforge.net/wiki/index.php/FusePython"
+
+SRC_URI="mirror://sourceforge/fuse/${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND=">=sys-fs/fuse-2.0"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/fuse-python/metadata.xml b/dev-python/fuse-python/metadata.xml
new file mode 100644
index 00000000000..9daaf4d446a
--- /dev/null
+++ b/dev-python/fuse-python/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">fuse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/fusil/Manifest b/dev-python/fusil/Manifest
new file mode 100644
index 00000000000..69efd20565a
--- /dev/null
+++ b/dev-python/fusil/Manifest
@@ -0,0 +1 @@
+DIST fusil-1.5.tar.gz 138910 SHA256 1b6e269f47636b5fd1ddd25940aa1beaae68c05c076b3ad6bcef72db5865729b SHA512 0d84bfd2d9b8e509989723de26b30c3ec2824612dbdcc097ff3e998fd4efa6b1293cb78743e098ad5012d4981b8e8036f3ad3f9c6acf2dc30e3ff1f707c7d1c0 WHIRLPOOL d0747c9f53af8ccaa9155fa05726928b0a52b5cef6fc76f7ab38b3219ca3d1c82c396737de3427fe3129d257f91853659ea7f2ab158c31a4349b53d906c5121d
diff --git a/dev-python/fusil/files/1.4-python25.patch b/dev-python/fusil/files/1.4-python25.patch
new file mode 100644
index 00000000000..b36643b5c4a
--- /dev/null
+++ b/dev-python/fusil/files/1.4-python25.patch
@@ -0,0 +1,12 @@
+diff --git a/setup.py b/setup.py
+index 712796e..40ea469 100755
+--- a/setup.py
++++ b/setup.py
+@@ -17,6 +17,7 @@
+ # - set version to n+1
+ # - add a new empty section in the changelog for version n+1
+
++from __future__ import with_statement
+ from imp import load_source
+ from os import path
+ from sys import argv
diff --git a/dev-python/fusil/fusil-1.5.ebuild b/dev-python/fusil/fusil-1.5.ebuild
new file mode 100644
index 00000000000..befb160edbd
--- /dev/null
+++ b/dev-python/fusil/fusil-1.5.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 user
+
+DESCRIPTION="Fusil the fuzzer is a Python library used to write fuzzing programs"
+HOMEPAGE="http://bitbucket.org/haypo/fusil/wiki/Home http://pypi.python.org/pypi/fusil"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+DEPEND="doc? ( dev-python/docutils[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/python-ptrace-0.7[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ if use doc; then
+ emake -C doc RST2HTML="rst2html.py" || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ enewgroup fusil
+ enewuser fusil -1 -1 -1 "fusil"
+}
diff --git a/dev-python/fusil/metadata.xml b/dev-python/fusil/metadata.xml
new file mode 100644
index 00000000000..c9788744da7
--- /dev/null
+++ b/dev-python/fusil/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">fusil</remote-id>
+ <remote-id type="bitbucket">haypo/fusil</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/futures/Manifest b/dev-python/futures/Manifest
new file mode 100644
index 00000000000..e03eb7c9c4f
--- /dev/null
+++ b/dev-python/futures/Manifest
@@ -0,0 +1,3 @@
+DIST futures-2.2.0.tar.gz 26786 SHA256 151c057173474a3a40f897165951c0e33ad04f37de65b6de547ddef107fd0ed3 SHA512 5f2a835b4b3f6bf1c4f086984a2e1d6ab30004b9af9298ef8afb23549014695ba26b43500dad3ee873e52aacd75911a42cd4ec9dfae6522cb99476a480dc83ee WHIRLPOOL 5c38f64759d0f2a15a536e8a5cb5c7473ce61d46242fc0c0bc737dfe91ce9b6573c1291a6f305953b96cd6298e1e41f7e27b45a2f0c2647315826ad9a1246ccd
+DIST futures-3.0.2.tar.gz 24908 SHA256 dc3fc91508e49e0fd2f8625f0132d16e49c80f882e7e1d565c56b0d5dfbae257 SHA512 01525c16914506d1e82910c5994aacc011d1ed01e91b7e403203ed1aa22a8caa3ff759ff399dd72628bc211dcab0893852ac177f792711ee9f9037a64c7e5723 WHIRLPOOL a59740472ca7cf339beb9ed44095d7f02b5701fcb2a28e41adc4dc6da63f23e5a629602010183ed611c4f60ba1a109563bd87242adb729ece12b57d63379e160
+DIST futures-3.0.3.tar.gz 24959 SHA256 2fe2342bb4fe8b8e217f0d21b5921cbe5408bf966d9f92025e707e881b198bed SHA512 2fa14df90e583ca86c47441b170a93435eb82fd37bb2e15d98e79c32fbe40fc3f602d762805de05fa8007df4a3ce92840915be59481b94ab4863aae884da74bd WHIRLPOOL 661a1174815766717eb7b130929c7aeef08079228df8f092093ee6cf40f84041ae6729cc7c0f2b05080efd0d80c0f7885c3ae333f7e5f3d21ccf2cfc20cbaa44
diff --git a/dev-python/futures/futures-2.2.0.ebuild b/dev-python/futures/futures-2.2.0.ebuild
new file mode 100644
index 00000000000..2ef8e01104d
--- /dev/null
+++ b/dev-python/futures/futures-2.2.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+inherit distutils-r1
+
+DESCRIPTION="Backport of the concurrent.futures package from Python 3.2"
+HOMEPAGE="http://code.google.com/p/pythonfutures http://pypi.python.org/pypi/futures"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # tests that fail under pypy
+ # http://code.google.com/p/pythonfutures/issues/detail?id=27
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_del_shutdown:_&:g' \
+ -e 's:test_repr:_&:' -i test_futures.py || die
+ fi
+ "${PYTHON}" test_futures.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGES )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/futures/futures-3.0.2.ebuild b/dev-python/futures/futures-3.0.2.ebuild
new file mode 100644
index 00000000000..4f46c60f123
--- /dev/null
+++ b/dev-python/futures/futures-3.0.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+inherit distutils-r1
+
+DESCRIPTION="Backport of the concurrent.futures package from Python 3.2"
+HOMEPAGE="http://code.google.com/p/pythonfutures http://pypi.python.org/pypi/futures"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # tests that fail under pypy
+ # http://code.google.com/p/pythonfutures/issues/detail?id=27
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_del_shutdown:_&:g' \
+ -e 's:test_repr:_&:' -i test_futures.py || die
+ fi
+ "${PYTHON}" test_futures.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGES )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/futures/futures-3.0.3.ebuild b/dev-python/futures/futures-3.0.3.ebuild
new file mode 100644
index 00000000000..d96d2e8c333
--- /dev/null
+++ b/dev-python/futures/futures-3.0.3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+inherit distutils-r1
+
+DESCRIPTION="Backport of the concurrent.futures package from Python 3.2"
+HOMEPAGE="http://code.google.com/p/pythonfutures http://pypi.python.org/pypi/futures"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # tests that fail under pypy
+ # http://code.google.com/p/pythonfutures/issues/detail?id=27
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_del_shutdown:_&:g' \
+ -e 's:test_repr:_&:' -i test_futures.py || die
+ fi
+ "${PYTHON}" test_futures.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGES )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/futures/metadata.xml b/dev-python/futures/metadata.xml
new file mode 100644
index 00000000000..ed9c72e5375
--- /dev/null
+++ b/dev-python/futures/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">futures</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gconf-python/Manifest b/dev-python/gconf-python/Manifest
new file mode 100644
index 00000000000..a5edcb54102
--- /dev/null
+++ b/dev-python/gconf-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-2.28.1.tar.bz2 562220 SHA256 759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8 SHA512 632d91d416f8209c2bc8d576d1229069e00f2cfeedb3441a5f151e12973ed740c0bb26d18d5c16cfeeb64ca35933537997277450001cffd96d8d5077027d45f2 WHIRLPOOL cd4ea19fabd26c55866d8789628fdc3c834e73932381431216d65c5e9b42ad529e83f74d498951f07f060d3049f1739b6db99dbdbe34575eed469ceb23a51c5b
diff --git a/dev-python/gconf-python/gconf-python-2.28.1-r1.ebuild b/dev-python/gconf-python/gconf-python-2.28.1-r1.ebuild
new file mode 100644
index 00000000000..1f5f60dfbc9
--- /dev/null
+++ b/dev-python/gconf-python/gconf-python-2.28.1-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1
+
+DESCRIPTION="Python bindings for the GConf library"
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ia64 ~mips ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="examples"
+
+RDEPEND="dev-python/pygobject:2[${PYTHON_USEDEP}]
+ >=gnome-base/gconf-2.11.1
+ !<dev-python/gnome-python-2.22.1"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/gconf/. )
diff --git a/dev-python/gconf-python/metadata.xml b/dev-python/gconf-python/metadata.xml
new file mode 100644
index 00000000000..888e60bf6a9
--- /dev/null
+++ b/dev-python/gconf-python/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/gcs-oauth2-boto-plugin/Manifest b/dev-python/gcs-oauth2-boto-plugin/Manifest
new file mode 100644
index 00000000000..a210483bc6d
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/Manifest
@@ -0,0 +1,3 @@
+DIST gcs-oauth2-boto-plugin-1.7.tar.gz 13573 SHA256 a83dab83fb55c633bc5a80e6491e2aa00542914e7f550a8fecd1bb273d4b4dd4 SHA512 9972c7334d7710f3aa4f2aeb3b733a376fded6670b0fd950432af5b544b3e4e140bd8726112ab03bee79ee619660d1a71ac24f130be8de070671c2b8c400b8ae WHIRLPOOL 871aeb3db56d4e2727d5b42d3a0a97ca026d51c51abb7d439b0a372560713b53b9a2a5ad59e10bdd78bad591e37a08545bc2ce738d835583a3be319af503c7ca
+DIST gcs-oauth2-boto-plugin-1.8.tar.gz 13248 SHA256 cb4f3c608c953c9f6eecbad0dd33c6a2dba283cf1cd332ceaac1a9ba8a17c64b SHA512 5504fc38d58ee68a78ee2b8e6c3757045494d000748382bc26888a65085cec08d2d137c63cb51afd1cef72d31b3f0cac5d40014548cca47c5322a67a7f1ef204 WHIRLPOOL 238ee67cdad11162abe614fad7d6eb6175a27fc132c790e17f4380373b8c8d48906e5ac361c4d3c34fbac85e851bdf6426c3660434bf809d4abca87f6cb995a9
+DIST gcs-oauth2-boto-plugin-1.9.tar.gz 14625 SHA256 82e70621354a0291ff312d060fedf25f8016eb0af215d443562ac2b26f94b28d SHA512 439def0c7b78a103bd3041600e25eaede44c3aac8a161f12acd6dee98cd8404b03229df24cf4e7814d63600ca50793496a80893f1e32f8ed8ac4a2825dd07df8 WHIRLPOOL ba28ac45e909a2410f36c81ba7f5e83e9c71963b1fd4d69df7fe425d26f066ea8376cf935f6b732c57d98b7d2e770d68a2658953279f0985725970af9d206dd6
diff --git a/dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.7-use-friendy-version-checks.patch b/dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.7-use-friendy-version-checks.patch
new file mode 100644
index 00000000000..665b1c4f01b
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.7-use-friendy-version-checks.patch
@@ -0,0 +1,13 @@
+--- a/setup.py
++++ b/setup.py
+@@ -36,9 +36,7 @@ requires = [
+ 'python-gflags>=2.0',
+ 'google-api-python-client>=1.1',
+ 'pyOpenSSL>=0.13',
+- # Not using 1.02 because of:
+- # https://code.google.com/p/socksipy-branch/issues/detail?id=3
+- 'SocksiPy-branch==1.01',
++ 'SocksiPy-branch>=1.01',
+ 'retry_decorator>=1.0.0',
+ ]
+
diff --git a/dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.8-use-friendy-version-checks.patch b/dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.8-use-friendy-version-checks.patch
new file mode 100644
index 00000000000..c89b7a69b46
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/files/gcs-oauth2-boto-plugin-1.8-use-friendy-version-checks.patch
@@ -0,0 +1,13 @@
+--- a/setup.py
++++ b/setup.py
+@@ -36,9 +36,7 @@ requires = [
+ 'httplib2>=0.8',
+ 'google-api-python-client>=1.1',
+ 'pyOpenSSL>=0.13',
+- # Not using 1.02 because of:
+- # https://code.google.com/p/socksipy-branch/issues/detail?id=3
+- 'SocksiPy-branch==1.01',
++ 'SocksiPy-branch>=1.01',
+ 'retry_decorator>=1.0.0',
+ ]
+
diff --git a/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.7.ebuild b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.7.ebuild
new file mode 100644
index 00000000000..a464e167651
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.7.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OAuth 2.0 plugin for Google Cloud Storage credentials in the Boto library"
+HOMEPAGE="https://pypi.python.org/pypi/gcs-oauth2-boto-plugin"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+PATCHES=(
+ "${FILESDIR}/${P}-use-friendy-version-checks.patch"
+)
+
+# Keep versions in sync with setup.py.
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ >=dev-python/boto-2.29.1[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ >=dev-python/google-api-python-client-1.1[${PYTHON_USEDEP}]
+ >=dev-python/python-gflags-2.0[${PYTHON_USEDEP}]
+ >=dev-python/retry-decorator-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/socksipy-1.01[${PYTHON_USEDEP}]"
diff --git a/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8-r1.ebuild b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8-r1.ebuild
new file mode 100644
index 00000000000..37cd19b3eba
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OAuth 2.0 plugin for Google Cloud Storage credentials in the Boto library"
+HOMEPAGE="https://pypi.python.org/pypi/gcs-oauth2-boto-plugin"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+PATCHES=(
+ "${FILESDIR}/${P}-use-friendy-version-checks.patch"
+)
+
+# Keep versions in sync with setup.py.
+DEPEND="${PYTHON_DEPS}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${PYTHON_DEPS}
+ >=dev-python/boto-2.29.1[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ >=dev-python/google-api-python-client-1.1[${PYTHON_USEDEP}]
+ >=dev-python/retry-decorator-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/socksipy-1.01[${PYTHON_USEDEP}]"
diff --git a/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8.ebuild b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8.ebuild
new file mode 100644
index 00000000000..8f77b80b993
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OAuth 2.0 plugin for Google Cloud Storage credentials in the Boto library"
+HOMEPAGE="https://pypi.python.org/pypi/gcs-oauth2-boto-plugin"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+PATCHES=(
+ "${FILESDIR}/${P}-use-friendy-version-checks.patch"
+)
+
+# Keep versions in sync with setup.py.
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ >=dev-python/boto-2.29.1[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ >=dev-python/google-api-python-client-1.1[${PYTHON_USEDEP}]
+ >=dev-python/retry-decorator-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/socksipy-1.01[${PYTHON_USEDEP}]"
diff --git a/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.9.ebuild b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.9.ebuild
new file mode 100644
index 00000000000..72ad10f4063
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.9.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OAuth 2.0 plugin for Google Cloud Storage credentials in the Boto library"
+HOMEPAGE="https://pypi.python.org/pypi/gcs-oauth2-boto-plugin"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.8-use-friendy-version-checks.patch"
+)
+
+# Keep versions in sync with setup.py.
+DEPEND="${PYTHON_DEPS}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${PYTHON_DEPS}
+ >=dev-python/boto-2.29.1[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ >=dev-python/google-api-python-client-1.1[${PYTHON_USEDEP}]
+ >=dev-python/retry-decorator-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/socksipy-1.01[${PYTHON_USEDEP}]"
diff --git a/dev-python/gcs-oauth2-boto-plugin/metadata.xml b/dev-python/gcs-oauth2-boto-plugin/metadata.xml
new file mode 100644
index 00000000000..3ccdc0e87b2
--- /dev/null
+++ b/dev-python/gcs-oauth2-boto-plugin/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">gcs-oauth2-boto-plugin</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gdata/Manifest b/dev-python/gdata/Manifest
new file mode 100644
index 00000000000..99da60a57ef
--- /dev/null
+++ b/dev-python/gdata/Manifest
@@ -0,0 +1,3 @@
+DIST gdata-2.0.14.tar.gz 1872888 SHA256 ba291d2b9d36a0f1b1b31a5a3ac3ba11f1bcce21c915a6ec78d109a43dafb1b0 SHA512 88f8c6e8f2fb1c7774c44833ce1817b842bcf054f960f1270c9bd53adb22922bf18691ef8dc83b571d2308227722620fb0adfe4b35b04bf54d4b8f319af872a0 WHIRLPOOL d59354aac324b872800818ba7b924658396652b33b898ec8629629d62a503b854b472c604febd021aae303a174775191059a285e7aa1fa2b91cdacfd2f4657d1
+DIST gdata-2.0.17.tar.gz 2398047 SHA256 ad72274532d726304733c5bfc01bffab8c7a34ce7e730deed849aecb62c5aa2d SHA512 814755099ecd4691f13786600975b28be662312c10b22af22e2e4acf31832e8d8dd14da75940afc596fff0cfa26c7def984abc8b7a9175facf1bd662d652ceaf WHIRLPOOL 55ab0d05d606ef2130e1ce904d7caa646ca146508cd5585a10277757909b4bca34ead0a846c85b49f3207520c0481655a4f3da6b21237745ff7a2613a3f64cc5
+DIST gdata-2.0.18.tar.gz 2475552 SHA256 56e7d22de819c22b13ceb0fe1869729b4287f89ebbd4bb55380d7bcf61a1fdb6 SHA512 57d01a8e41fd7507621c10a4ea3e66223aa1d481365269daecdb5ef1bd725915448bcfa5aca9bef3a7fb4b735627d7916b7f971f1c05d7bf840069346e98ceef WHIRLPOOL a3ed7e084436ad858b35970ebc0b73216ca4f041448c1916c0e1ba28f9b6135c0aa80dfb3aa6a5cf31ba6ca0b999e3633e2d6801e5c2c495da0d40feac61afe6
diff --git a/dev-python/gdata/gdata-2.0.14.ebuild b/dev-python/gdata/gdata-2.0.14.ebuild
new file mode 100644
index 00000000000..56b17f241ac
--- /dev/null
+++ b/dev-python/gdata/gdata-2.0.14.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH="ssl(+) xml"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils
+
+MY_P="gdata-${PV}"
+
+DESCRIPTION="Python client library for Google data APIs"
+HOMEPAGE="http://code.google.com/p/gdata-python-client/ http://pypi.python.org/pypi/gdata"
+SRC_URI="http://gdata-python-client.googlecode.com/files/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_MODNAME="atom gdata"
+
+src_test() {
+ testing() {
+ PYTHONPATH="build-${PYTHON_ABI}/lib" "$(PYTHON)" tests/run_data_tests.py -v || return 1
+
+ # run_service_tests.py requires interaction (and a valid Google account), so skip it.
+ # PYTHONPATH="build-${PYTHON_ABI}/lib" "$(PYTHON)" tests/run_service_tests.py -v || return 1
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r samples/* || die "Installation of examples failed"
+ fi
+}
diff --git a/dev-python/gdata/gdata-2.0.17-r1.ebuild b/dev-python/gdata/gdata-2.0.17-r1.ebuild
new file mode 100644
index 00000000000..1406e3ff2c6
--- /dev/null
+++ b/dev-python/gdata/gdata-2.0.17-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="ssl(+),xml(+)"
+
+inherit distutils-r1
+
+MY_P="gdata-${PV}"
+
+DESCRIPTION="Python client library for Google data APIs"
+HOMEPAGE="http://code.google.com/p/gdata-python-client/ http://pypi.python.org/pypi/gdata"
+SRC_URI="http://gdata-python-client.googlecode.com/files/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~arm-linux ~x86-linux"
+IUSE="examples"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ # run_service_tests.py requires interaction (and a valid Google account), so skip it.
+ "${PYTHON}" tests/run_data_tests.py -v || die "Test failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( samples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/gdata/gdata-2.0.18.ebuild b/dev-python/gdata/gdata-2.0.18.ebuild
new file mode 100644
index 00000000000..0c7294ec6a8
--- /dev/null
+++ b/dev-python/gdata/gdata-2.0.18.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="ssl(+),xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Python client library for Google data APIs"
+HOMEPAGE="http://code.google.com/p/gdata-python-client/ http://pypi.python.org/pypi/gdata"
+SRC_URI="http://gdata-python-client.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="examples"
+
+python_test() {
+ # run_service_tests.py requires interaction (and a valid Google account), so skip it.
+ "${PYTHON}" tests/run_data_tests.py -v || die "Test failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( samples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/gdata/metadata.xml b/dev-python/gdata/metadata.xml
new file mode 100644
index 00000000000..e0962e2b130
--- /dev/null
+++ b/dev-python/gdata/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">gdata-python-client</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gdmodule/Manifest b/dev-python/gdmodule/Manifest
new file mode 100644
index 00000000000..de634ca0177
--- /dev/null
+++ b/dev-python/gdmodule/Manifest
@@ -0,0 +1 @@
+DIST gdmodule-0.56.tar.gz 48748 SHA256 a3a2fd6378e32f10a348c4db428a91e2c1adc28de6ec35c0619a52e379f4edec SHA512 9570a9c06a1c7d76af760fffe30cfde9a840620c608f0d55123898e030d6f3ab4c91fe75bf02b326f13f4a85ea5429c6a0ec0cd20fdc27fa83e656b81f7cce88 WHIRLPOOL e05702ca2fe129b9548f301a73b8a8b461f060dfef67e7b5135756ab70b6a996c55037c9ec60952a2577ed2468141af20ebe128f5312449b8e909092d6f8c5ad
diff --git a/dev-python/gdmodule/files/gdmodule-0.56-fix-libs.patch b/dev-python/gdmodule/files/gdmodule-0.56-fix-libs.patch
new file mode 100644
index 00000000000..bb46490986a
--- /dev/null
+++ b/dev-python/gdmodule/files/gdmodule-0.56-fix-libs.patch
@@ -0,0 +1,116 @@
+--- Setup.py.orig 2005-03-11 04:29:59.000000000 +0000
++++ Setup.py 2010-12-06 07:15:26.332707178 +0000
+@@ -1,102 +1,11 @@
+ # Setup for gdmodule 0.50 and later
+
+ from distutils.core import setup, Extension
+-import os, glob, sys, string
+
+ # version of this gdmodule package
+ this_version = "0.56"
+
+-# directory existence tester
+-
+-def dirtest(lst):
+- rlst = []
+- for d in lst:
+- try:
+- if os.listdir(d):
+- rlst.append(d)
+- except:
+- pass
+- return rlst
+-
+-def filetest(path, names):
+- rlst = []
+- for d in path:
+- for i in range(len(names)):
+- found = glob.glob(os.path.join(d, "lib%s.*" % names[i]))
+- if found:
+- rlst.append(names[i])
+- names[i] = None
+- names = filter(None, names)
+- return rlst
+-
+-def remove(itm, lst):
+- r = range(len(lst))
+- r.reverse()
+- for i in r:
+- if lst[i] == itm:
+- del lst[i]
+-
+-# library_dirs option is rather non-portable, but since I am targetting
+-# Unixoid OS's I will just look for the usual suspects.
+-
+-libdirs = dirtest([
+- "/usr/local/lib", "/sw/lib", "/usr/lib",
+- "/usr/lib/X11", "/usr/X11R6/lib",
+- "/opt/gnome/lib",
+-])
+-
+-# include_dirs are also non-portable; same trick here.
+-
+-incdirs = dirtest([
+- "/usr/local/include", "/sw/include", "/usr/include",
+- "/usr/include/X11", "/usr/X11R6/include",
+- "/opt/gnome/include",
+-])
+-
+-# Try to identify our libraries
+-
+-want_libs = [
+- "gd",
+- "jpeg", "png", "gif", "z",
+- "X11", "Xpm",
+- "ttf", "freetype",
+-]
+-
+-libs = filetest(libdirs, want_libs)
+-
+-missing = []
+-
+-for l in want_libs:
+- if l and l not in libs:
+- missing.append(l)
+-
+-if missing:
+- print "WARNING: Missing", string.join(missing, ", "), "Libraries"
+-
+-# hand-clean the libs
+-
+-if "gd" not in libs:
+- print "Can't find GD library."
+- sys.exit(0)
+-
+-if "ttf" in libs and "freetype" in libs:
+- remove("ttf", libs)
+-
+-if "Xpm" in libs and "X11" not in libs:
+- remove("Xpm", libs)
+-
+-if "png" in libs and "z" not in libs:
+- remove("png", libs)
+-
+-if "z" in libs and "png" not in libs:
+- remove("png", libs)
+-
+-# build the macro list
+-
+-macros = []
+-
+-for l in libs:
+- macros.append(( "HAVE_LIB%s" % l.upper(), None ))
++libs = [ "gd" ]
+
+ # OK, now do it!
+
+@@ -111,8 +20,7 @@
+ py_modules=["gd"],
+ ext_modules=[
+ Extension("_gd", ["_gdmodule.c"],
+- include_dirs=incdirs, library_dirs=libdirs,
+- libraries=libs, define_macros=macros)],
++ libraries=libs)],
+ )
+
+ # end of file... I guess we're done.
diff --git a/dev-python/gdmodule/gdmodule-0.56-r2.ebuild b/dev-python/gdmodule/gdmodule-0.56-r2.ebuild
new file mode 100644
index 00000000000..b6b49762708
--- /dev/null
+++ b/dev-python/gdmodule/gdmodule-0.56-r2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Python extensions for gd"
+HOMEPAGE="https://github.com/Solomoriah/gdmodule"
+SRC_URI="http://newcenturycomputers.net/projects/download.cgi/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~ppc-macos ~x86-linux"
+IUSE="jpeg png truetype xpm"
+
+RDEPEND="
+ media-libs/gd[jpeg?,png?,truetype?,xpm?]
+ media-libs/giflib
+ jpeg? ( virtual/jpeg:0 )
+ png? ( media-libs/libpng:0 )
+ truetype? ( media-libs/freetype:2 )
+ xpm? ( x11-libs/libXpm )"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-fix-libs.patch )
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ mv Setup.py setup.py || die
+
+ # append unconditionally because it is enabled id media-libs/gd by default
+ append-cppflags -DHAVE_LIBGIF
+
+ use jpeg && append-cppflags -DHAVE_LIBJPEG
+ use png && append-cppflags -DHAVE_LIBPNG
+ use truetype && append-cppflags -DHAVE_LIBFREETYPE
+ use xpm && append-cppflags -DHAVE_LIBXPM
+}
diff --git a/dev-python/gdmodule/metadata.xml b/dev-python/gdmodule/metadata.xml
new file mode 100644
index 00000000000..0651bcd4e84
--- /dev/null
+++ b/dev-python/gdmodule/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ This module is a python wrapper for the GD library.
+</longdescription>
+ <upstream>
+ <remote-id type="github">Solomoriah/gdmodule</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/genshi/Manifest b/dev-python/genshi/Manifest
new file mode 100644
index 00000000000..01aa62c85bb
--- /dev/null
+++ b/dev-python/genshi/Manifest
@@ -0,0 +1 @@
+DIST Genshi-0.7.tar.gz 491579 SHA256 1d154402e68bc444a55bcac101f96cb4e59373100cc7a2da07fbf3e5cc5d7352 SHA512 2d0042d4da4566725ddd80b73c5b7be09f479f5529e4aa69903edc2a98905ff6de42a0d5a6f02986d7962deb7740c4a3acf6955a8b77fdb42d3cf4ca037de6bf WHIRLPOOL 5e1a7af061d28a581c8a028ae7343a2b80697eb8bca01c8609345a3f2146db190a596d3488c0bde5aa132ac930d591ff1babd033ccb532c7cac7d2931751f906
diff --git a/dev-python/genshi/files/genshi-0.6-html_test.patch b/dev-python/genshi/files/genshi-0.6-html_test.patch
new file mode 100644
index 00000000000..4f74d6b999f
--- /dev/null
+++ b/dev-python/genshi/files/genshi-0.6-html_test.patch
@@ -0,0 +1,37 @@
+Add/Change #501 (test_sanitize_remove_src_javascript fails due to HTMLParser bugfixes in cpython)
+Add/Change #500 (test_sanitize_remove_script_elem fails due to HTMLParser bugfixes in cpython)
+--- a/genshi/filters/tests/html.py
++++ b/genshi/filters/tests/html.py
+@@ -365,9 +365,12 @@
+ self.assertEquals('', (html | HTMLSanitizer()).render())
+ html = HTML('<SCRIPT SRC="http://example.com/"></SCRIPT>')
+ self.assertEquals('', (html | HTMLSanitizer()).render())
+- self.assertRaises(ParseError, HTML, '<SCR\0IPT>alert("foo")</SCR\0IPT>')
+- self.assertRaises(ParseError, HTML,
+- '<SCRIPT&XYZ SRC="http://example.com/"></SCRIPT>')
++ html = HTML('<SCR\0IPT>alert("foo")</SCR\0IPT>')
++ self.assertEquals('&lt;SCR\x00IPT&gt;alert("foo")',
++ (html | HTMLSanitizer()).render())
++ html = HTML('<SCRIPT&XYZ SRC="http://example.com/"></SCRIPT>')
++ self.assertEquals('&lt;SCRIPT&amp;XYZ; SRC="http://example.com/"&gt;',
++ (html | HTMLSanitizer()).render())
+
+ def test_sanitize_remove_onclick_attr(self):
+ html = HTML('<div onclick=\'alert("foo")\' />')
+
+--- a/genshi/filters/tests/html.py
++++ b/genshi/filters/tests/html.py
+@@ -437,9 +440,9 @@
+ # Case-insensitive protocol matching
+ html = HTML('<IMG SRC=\'JaVaScRiPt:alert("foo")\'>')
+ self.assertEquals('<img/>', (html | HTMLSanitizer()).render())
+- # Grave accents (not parsed)
+- self.assertRaises(ParseError, HTML,
+- '<IMG SRC=`javascript:alert("RSnake says, \'foo\'")`>')
++ # Grave accents.
++ html = HTML('<IMG SRC=`javascript:alert("RSnake says, \'foo\'")`>')
++ self.assertEquals('<img/>', (html | HTMLSanitizer()).render())
+ # Protocol encoded using UTF-8 numeric entities
+ html = HTML('<IMG SRC=\'&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;'
+ '&#112;&#116;&#58;alert("foo")\'>')
+
diff --git a/dev-python/genshi/genshi-0.7.ebuild b/dev-python/genshi/genshi-0.7.ebuild
new file mode 100644
index 00000000000..b053ac35102
--- /dev/null
+++ b/dev-python/genshi/genshi-0.7.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_P="Genshi-${PV}"
+
+DESCRIPTION="Python toolkit for stream-based generation of output for the web"
+HOMEPAGE="http://genshi.edgewall.org/ http://pypi.python.org/pypi/Genshi"
+SRC_URI="http://ftp.edgewall.com/pub/genshi/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ~ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ "${PYTHON}" setup.py test
+}
+
+python_install_all() {
+ if use doc; then
+ dodoc doc/*.txt
+ dohtml -r doc/*
+ fi
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/genshi/metadata.xml b/dev-python/genshi/metadata.xml
new file mode 100644
index 00000000000..ee7e8b2450a
--- /dev/null
+++ b/dev-python/genshi/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/geoip-python/Manifest b/dev-python/geoip-python/Manifest
new file mode 100644
index 00000000000..099df7cb3d9
--- /dev/null
+++ b/dev-python/geoip-python/Manifest
@@ -0,0 +1 @@
+DIST geoip-api-python-1.3.2.tar.gz 35674 SHA256 95e966e9d62b73a7933434b61b0e09fdf25190047ea4d3b92922e03a7e83034d SHA512 284209a6894d55ef95844c5c4c7aafff99ebcb13996e5ff64a0c31b38677e13c11d51fd8b0250d0fa097f15805c27b572d5aa12c2b217a839afe3cdd0851c414 WHIRLPOOL bd123b2417b2d0aa0e9d91e3b24276b806e470ce7bcd90977676fb3a52af5c5096932c542100221e0aed4723f93e00b5949fa3bc7970ef6f312b4a5512f3dc7d
diff --git a/dev-python/geoip-python/geoip-python-1.3.2.ebuild b/dev-python/geoip-python/geoip-python-1.3.2.ebuild
new file mode 100644
index 00000000000..8981f059abd
--- /dev/null
+++ b/dev-python/geoip-python/geoip-python-1.3.2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="geoip-api-python"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python bindings for GeoIP"
+HOMEPAGE="https://github.com/maxmind/geoip-api-python"
+SRC_URI="https://github.com/maxmind/${MY_PN}/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ~sparc x86 ~x86-fbsd"
+IUSE="examples test"
+
+RDEPEND=">=dev-libs/geoip-1.4.8"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( README.rst ChangeLog.md )
+
+python_compile() {
+ if [[ python_is_python3 || "$EPYTHON}" == 'pypy3' ]]; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/geoip-python/metadata.xml b/dev-python/geoip-python/metadata.xml
new file mode 100644
index 00000000000..8f105d0a09d
--- /dev/null
+++ b/dev-python/geoip-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">maxmind/geoip-api-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/geopy/Manifest b/dev-python/geopy/Manifest
new file mode 100644
index 00000000000..2900b61d480
--- /dev/null
+++ b/dev-python/geopy/Manifest
@@ -0,0 +1,3 @@
+DIST geopy-1.10.0.tar.gz 69671 SHA256 d1445731b20762b4e1d13e98d6370ff39a58fb29bd526afe1a44d510e91ee815 SHA512 943eb188090597786d5df9d1dac652dda81dd85d8edc57d9ffd4197b8a9a89c54a01ae4d6263eae64f69dc8437234a1ca797e869856d978c367b8db4c2c82f54 WHIRLPOOL f996abff6aaab85b98267d39c9284cb45e0d5d636e8df14baa8bae8b67c97ca8472076fac5f30fae0f19a7a390ae6247afcac3afc91d14197f51d44249ce6eb2
+DIST geopy-1.8.1.tar.gz 67542 SHA256 63b805535cbe178367ee8f5e0221fab9fa691eef5797decac1e0851d16173dcf SHA512 0df2e67ed35d5cc3f796e3188df3a37d8fa101a4b6feb6b760ea08087ba44c350765a8c1032012b5e762454fa15c520f97d59ff942f07047927ef4872232a57c WHIRLPOOL 44c3f68a26ba23ca3ffae52dba5dc575a1cf54a53ea1e39d9566d97c58bcdb26b98934befc7cf012adbd266cee8a10b72d6880d1765af7f23486292b249c91a2
+DIST geopy-1.9.1.tar.gz 67158 SHA256 e95989f5baf2cc5c2cee6186355f24b3fa8ce01faabea4e2bfcb083109416462 SHA512 ad6281626a03778754bec2e776419327609b3e6e47d6641520787ed2af87106fb2842a89667da680317a6c745970ac23b66c9b0fe8e50a2d223fc3169fe013b9 WHIRLPOOL e0f6fef1a061ff2d88e6ea1a37786405b1b0cac7d0982cb7bd650582b10726a6fa682c9c6577be6cec1d90b52d3f4828d221ac07d4aff6b04b93ff95f2c69110
diff --git a/dev-python/geopy/files/1.1.3-formatpy3.patch b/dev-python/geopy/files/1.1.3-formatpy3.patch
new file mode 100644
index 00000000000..35c0b0f30c4
--- /dev/null
+++ b/dev-python/geopy/files/1.1.3-formatpy3.patch
@@ -0,0 +1,15 @@
+https://github.com/geopy/geopy/commit/fe0cd3c6c92b7d7ac47cb2292260485c5b3791c1
+diff --git a/geopy/format.py b/geopy/format.py
+index 965a127..63b1e94 100644
+--- a/geopy/format.py
++++ b/geopy/format.py
+@@ -30,7 +30,7 @@
+ ABBR_ARCSEC = 'arcsec'
+
+ DEGREES_FORMAT = (
+- "%(degrees)d%(deg)s %(minutes)d%(arcmin)s %(seconds)s%(arcsec)s"
++ "%(degrees)d%(deg)s %(minutes)d%(arcmin)s %(seconds)g%(arcsec)s"
+ )
+
+ UNICODE_SYMBOLS = {
+
diff --git a/dev-python/geopy/files/1.1.3-tests-env-vars.patch b/dev-python/geopy/files/1.1.3-tests-env-vars.patch
new file mode 100644
index 00000000000..8c0b914e62a
--- /dev/null
+++ b/dev-python/geopy/files/1.1.3-tests-env-vars.patch
@@ -0,0 +1,198 @@
+https://github.com/geopy/geopy/commit/6c9714c480d62dcd04d514dcad10785d5a0816c2
+diff --git a/test/geocoders/arcgis.py b/test/geocoders/arcgis.py
+index fdca58c..b154a60 100644
+--- a/test/geocoders/arcgis.py
++++ b/test/geocoders/arcgis.py
+@@ -7,6 +7,10 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('ARCGIS_USERNAME')),
++ "No ARCGIS_USERNAME env variable set"
++)
+ class ArcGISTestCase(GeocoderTestBase):
+
+ @classmethod
+diff --git a/test/geocoders/baidu.py b/test/geocoders/baidu.py
+index 8ba249c..827ab12 100644
+--- a/test/geocoders/baidu.py
++++ b/test/geocoders/baidu.py
+@@ -6,8 +6,8 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['BAIDU_KEY'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('BAIDU_KEY')),
+ "No BAIDU_KEY env variable set"
+ )
+ class BaiduTestCase(GeocoderTestBase):
+diff --git a/test/geocoders/bing.py b/test/geocoders/bing.py
+index 17b1aae..d23e99b 100644
+--- a/test/geocoders/bing.py
++++ b/test/geocoders/bing.py
+@@ -6,8 +6,8 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['BING_KEY'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('BING_KEY')),
+ "No BING_KEY env variable set"
+ )
+ class BingTestCase(GeocoderTestBase):
+diff --git a/test/geocoders/dotus.py b/test/geocoders/dotus.py
+index e777278..d2bbfa2 100644
+--- a/test/geocoders/dotus.py
++++ b/test/geocoders/dotus.py
+@@ -5,9 +5,9 @@
+ from geopy.geocoders import GeocoderDotUS
+ from test.geocoders.util import GeocoderTestBase, env
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['GEOCODERDOTUS_USERNAME'] is not None and \
+- env['GEOCODERDOTUS_PASSWORD'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('GEOCODERDOTUS_USERNAME')) and \
++ bool(env.get('GEOCODERDOTUS_PASSWORD')),
+ "No GEOCODERDOTUS_USERNAME and GEOCODERDOTUS_PASSWORD env variables set"
+ )
+ class GeocoderDotUSTestCase(GeocoderTestBase): # pylint: disable=R0904,C0111
+diff --git a/test/geocoders/geocodefarm.py b/test/geocoders/geocodefarm.py
+index 151bac6..ffa28a4 100644
+--- a/test/geocoders/geocodefarm.py
++++ b/test/geocoders/geocodefarm.py
+@@ -8,8 +8,8 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['GEOCODEFARM_KEY'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('GEOCODEFARM_KEY')),
+ "GEOCODEFARM_KEY env variable not set"
+ )
+ class GeocodeFarmTestCase(GeocoderTestBase): # pylint: disable=R0904,C0111
+diff --git a/test/geocoders/geonames.py b/test/geocoders/geonames.py
+index 7ff6f11..3dcc3b4 100644
+--- a/test/geocoders/geonames.py
++++ b/test/geocoders/geonames.py
+@@ -4,21 +4,23 @@
+ from geopy.geocoders import GeoNames
+ from test.geocoders.util import GeocoderTestBase, env
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['GEONAMES_USERNAME'] is not None,
++
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('GEONAMES_USERNAME')),
+ "No GEONAMES_USERNAME env variable set"
+ )
+ class GeoNamesTestCase(GeocoderTestBase):
+
+ @classmethod
+ def setUpClass(cls):
+- cls.geocoder = GeoNames(username=env['GEONAMES_USERNAME'])
+ cls.delta = 0.04
+
+ def test_unicode_name(self):
+ """
+ GeoNames.geocode unicode
+ """
++ # work around ConfigurationError raised in GeoNames init
++ self.geocoder = GeoNames(username=env['GEONAMES_USERNAME'])
+ self.geocode_run(
+ {"query": u"\u6545\u5bab"},
+ {"latitude": 30.90097, "longitude": 118.49436},
+diff --git a/test/geocoders/mapquest.py b/test/geocoders/mapquest.py
+index eb12781..03ba4d8 100644
+--- a/test/geocoders/mapquest.py
++++ b/test/geocoders/mapquest.py
+@@ -5,8 +5,8 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['MAPQUEST_KEY'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('MAPQUEST_KEY')),
+ "No MAPQUEST_KEY env variable set"
+ )
+ class MapQuestTestCase(GeocoderTestBase):
+diff --git a/test/geocoders/opencage.py b/test/geocoders/opencage.py
+index c00114f..eb65000 100644
+--- a/test/geocoders/opencage.py
++++ b/test/geocoders/opencage.py
+@@ -5,8 +5,8 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['OPENCAGE_KEY'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('OPENCAGE_KEY')),
+ "No OPENCAGE_KEY env variables set"
+ )
+ class OpenCageTestCase(GeocoderTestBase):
+diff --git a/test/geocoders/placefinder.py b/test/geocoders/placefinder.py
+index 3bf0a66..ed3304f 100644
+--- a/test/geocoders/placefinder.py
++++ b/test/geocoders/placefinder.py
+@@ -6,8 +6,8 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['YAHOO_KEY'] is not None and env['YAHOO_SECRET'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('YAHOO_KEY')) and bool(env.get('YAHOO_SECRET')),
+ "YAHOO_KEY and YAHOO_SECRET env variables not set"
+ )
+ class YahooPlaceFinderTestCase(GeocoderTestBase): # pylint: disable=R0904,C0111
+diff --git a/test/geocoders/smartystreets.py b/test/geocoders/smartystreets.py
+index 83f3b34..ed9e7f2 100644
+--- a/test/geocoders/smartystreets.py
++++ b/test/geocoders/smartystreets.py
+@@ -5,17 +5,19 @@
+ from test.geocoders.util import GeocoderTestBase, env
+
+
+-@unittest.skipUnless( # pylint: disable=R0904,C0111
+- env['LIVESTREETS_AUTH_KEY'] is not None,
++@unittest.skipUnless( # pylint: disable=R0904,C0111
++ bool(env.get('LIVESTREETS_AUTH_KEY')),
+ "No LIVESTREETS_AUTH_KEY env variable set"
+ )
+ class LiveAddressTestCase(GeocoderTestBase):
+- def setUp(self):
+- self.geocoder = LiveAddress(
++
++ @classmethod
++ def setUpClass(cls):
++ cls.geocoder = LiveAddress(
+ auth_token=env['LIVESTREETS_AUTH_KEY'],
+ scheme='http'
+ )
+- self.delta = 0.04
++ cls.delta = 0.04
+
+ def test_geocode(self):
+ """
+diff --git a/test/geocoders/util.py b/test/geocoders/util.py
+index 4a130f1..7de103d 100644
+--- a/test/geocoders/util.py
++++ b/test/geocoders/util.py
+@@ -12,6 +12,9 @@
+ env.update(json.loads(fp.read()))
+ except IOError:
+ keys = (
++ 'ARCGIS_USERNAME',
++ 'ARCGIS_PASSWORD',
++ 'ARCGIS_REFERER',
+ 'YAHOO_KEY',
+ 'YAHOO_SECRET',
+ 'BING_KEY',
+
diff --git a/dev-python/geopy/files/1.1.3-version-compat.patch b/dev-python/geopy/files/1.1.3-version-compat.patch
new file mode 100644
index 00000000000..78333a217c6
--- /dev/null
+++ b/dev-python/geopy/files/1.1.3-version-compat.patch
@@ -0,0 +1,12 @@
+diff --git a/geopy/geocoders/placefinder.py b/geopy/geocoders/placefinder.py
+index 97950fe..814dbaf 100644
+--- a/geopy/geocoders/placefinder.py
++++ b/geopy/geocoders/placefinder.py
+@@ -71,7 +71,6 @@ def __init__(
+ client_secret=self.consumer_secret,
+ signature_method=u"HMAC-SHA1",
+ signature_type=u"AUTH_HEADER",
+- encoding=None # already UTF-8
+ )
+ self.api = "https://yboss.yahooapis.com/geo/placefinder"
+
diff --git a/dev-python/geopy/geopy-1.10.0.ebuild b/dev-python/geopy/geopy-1.10.0.ebuild
new file mode 100644
index 00000000000..6a1833d27ba
--- /dev/null
+++ b/dev-python/geopy/geopy-1.10.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Geocoding Toolbox for Python"
+HOMEPAGE="http://www.geopy.org/ https://github.com/geopy/geopy"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+IUSE="test doc timezone yahoo"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="yahoo? ( >=dev-python/requests-oauthlib-0.4.0[${PYTHON_USEDEP}]
+ dev-python/placefinder[${PYTHON_USEDEP}] )
+ timezone? ( dev-python/pytz[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/pylint[${PYTHON_USEDEP}] )
+ doc? ( $(python_gen_cond_dep 'dev-python/sphinx[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/python-docs-2.7.6-r1:2.7 )"
+
+REQUIRED_USE="test? ( yahoo timezone )"
+
+python_prepare_all() {
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+
+ # prevent install of test folder to avoid file collisions
+ sed -e "s:find_packages():find_packages(exclude=['test','test.*']):" -i setup.py || die
+}
+
+python_test() {
+ # Ignore rogue class IGNFranceTestCase demanding elements beyond a normal testsuite
+ # i.e. "You should provide an api key and a username with a password"
+ # Cannot decipher how to skip or exclude this "context=IGNFranceTestCase"
+ # It appears it MAY stem from nose rather than geopy's suite
+ nosetests --verbose || die "Tests failed under ${EPYTHON}"
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/geopy/geopy-1.8.1.ebuild b/dev-python/geopy/geopy-1.8.1.ebuild
new file mode 100644
index 00000000000..3027bb2e0fc
--- /dev/null
+++ b/dev-python/geopy/geopy-1.8.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Geocoding Toolbox for Python"
+HOMEPAGE="http://www.geopy.org/ https://github.com/geopy/geopy"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+IUSE="test doc yahoo"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="yahoo? ( >=dev-python/requests-oauthlib-0.4.0[${PYTHON_USEDEP}]
+ dev-python/placefinder[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/pylint[${PYTHON_USEDEP}] )
+ doc? ( $(python_gen_cond_dep 'dev-python/sphinx[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/python-docs-2.7.6-r1:2.7 )"
+
+python_prepare_all() {
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+
+ # prevent install of test folder to avoid file collisions
+ sed -e "s:find_packages():find_packages(exclude=['test','test.*']):" -i setup.py || die
+}
+
+python_test() {
+ # Ignore rogue class IGNFranceTestCase demanding elements beyond a normal testsuite
+ # i.e. "You should provide an api key and a username with a password"
+ # Cannot decipher how to skip or exclude this "context=IGNFranceTestCase"
+ # It appears it MAY stem from nose rather than geopy's suite
+ nosetests --verbose || die "Tests failed under ${EPYTHON}"
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/geopy/geopy-1.9.1.ebuild b/dev-python/geopy/geopy-1.9.1.ebuild
new file mode 100644
index 00000000000..6a1833d27ba
--- /dev/null
+++ b/dev-python/geopy/geopy-1.9.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Geocoding Toolbox for Python"
+HOMEPAGE="http://www.geopy.org/ https://github.com/geopy/geopy"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+IUSE="test doc timezone yahoo"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="yahoo? ( >=dev-python/requests-oauthlib-0.4.0[${PYTHON_USEDEP}]
+ dev-python/placefinder[${PYTHON_USEDEP}] )
+ timezone? ( dev-python/pytz[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/pylint[${PYTHON_USEDEP}] )
+ doc? ( $(python_gen_cond_dep 'dev-python/sphinx[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/python-docs-2.7.6-r1:2.7 )"
+
+REQUIRED_USE="test? ( yahoo timezone )"
+
+python_prepare_all() {
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+
+ # prevent install of test folder to avoid file collisions
+ sed -e "s:find_packages():find_packages(exclude=['test','test.*']):" -i setup.py || die
+}
+
+python_test() {
+ # Ignore rogue class IGNFranceTestCase demanding elements beyond a normal testsuite
+ # i.e. "You should provide an api key and a username with a password"
+ # Cannot decipher how to skip or exclude this "context=IGNFranceTestCase"
+ # It appears it MAY stem from nose rather than geopy's suite
+ nosetests --verbose || die "Tests failed under ${EPYTHON}"
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/geopy/metadata.xml b/dev-python/geopy/metadata.xml
new file mode 100644
index 00000000000..54c8bb9d352
--- /dev/null
+++ b/dev-python/geopy/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">geopy</remote-id>
+ <remote-id type="pypi">geopy</remote-id>
+ <remote-id type="github">geopy/geopy</remote-id>
+ </upstream>
+ <use>
+ <flag name="yahoo">Enables use of YahooPlaceFinder</flag>
+ <flag name="timezone">Enables localized date support</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/gevent-socketio/Manifest b/dev-python/gevent-socketio/Manifest
new file mode 100644
index 00000000000..3797786ccb5
--- /dev/null
+++ b/dev-python/gevent-socketio/Manifest
@@ -0,0 +1,2 @@
+DIST gevent-socketio-0.3.5-rc2.tar.gz 22210 SHA256 ab38b6b97b369626cfa87eb4d2e1cfddf67c45e138e9bc61321e30f32e85facd SHA512 22a7c4c03b527eecb929ea896d8fdcfd2b299a06707cd30772f6762ecfc45e35f0c39053a57fb1ae06748aa58f3c246a1b9c9c3d917851d63f1275a70a7c14b3 WHIRLPOOL f7c2ab35e5036adaeda141c9ec75eb5767db5711c4ba6af8ba1698fa81142c21435c5b694f25cf9af55ff822a7f1a3a9b630c39e659b7f06bd270747318bc778
+DIST gevent-socketio-0.3.6.tar.gz 264203 SHA256 53394ab93fbd84d9dbbb2bef85349f6a503bfc53d86a9be8653250f1a0412aff SHA512 e64ad7c42f9a80e031b443920d7d770bbc58fdbbd4787585dbab0e7d455819e5b09bddf9915867afede45e26deb4087173f6e730ebd0dccaf64ba0bd63b2fd98 WHIRLPOOL eecd771b561a2d89f186e61d8357a946e9c9412cff0d0fc6c36ec0f473bd2aab40efa2516e6b286c1e5986cbb32354b6ebea410ac594a0ae976d123bad2d1e81
diff --git a/dev-python/gevent-socketio/gevent-socketio-0.3.5_rc2-r1.ebuild b/dev-python/gevent-socketio/gevent-socketio-0.3.5_rc2-r1.ebuild
new file mode 100644
index 00000000000..4929ea92c2e
--- /dev/null
+++ b/dev-python/gevent-socketio/gevent-socketio-0.3.5_rc2-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="gevent-socketio"
+MY_P="${MY_PN}-${PV/_/-}"
+
+DESCRIPTION="SocketIO server based on the Gevent pywsgi server"
+HOMEPAGE="http://pypi.python.org/pypi/gevent-socketio/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/gevent-websocket[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/gevent[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/versiontools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/gevent-socketio/gevent-socketio-0.3.6.ebuild b/dev-python/gevent-socketio/gevent-socketio-0.3.6.ebuild
new file mode 100644
index 00000000000..119c13b6c9a
--- /dev/null
+++ b/dev-python/gevent-socketio/gevent-socketio-0.3.6.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SocketIO server based on the Gevent pywsgi server"
+HOMEPAGE="http://pypi.python.org/pypi/gevent-socketio/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/gevent-websocket[${PYTHON_USEDEP}]
+ dev-python/gevent[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/versiontools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test -v || die
+}
diff --git a/dev-python/gevent-socketio/metadata.xml b/dev-python/gevent-socketio/metadata.xml
new file mode 100644
index 00000000000..3faf5402a93
--- /dev/null
+++ b/dev-python/gevent-socketio/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>ultrabug@gentoo.org</email>
+ <name>Ultrabug</name>
+ <description>main maintainer</description>
+ </maintainer>
+ <maintainer>
+ <email>julien@thebault.co</email>
+ <name>Lujeni</name>
+ <description>Proxy Maintainer. CC on bugs</description>
+ </maintainer>
+ <longdescription>SocketIO server based on the Gevent pywsgi server</longdescription>
+ <upstream>
+ <remote-id type="pypi">gevent-socketio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gevent-websocket/Manifest b/dev-python/gevent-websocket/Manifest
new file mode 100644
index 00000000000..aa1589af29e
--- /dev/null
+++ b/dev-python/gevent-websocket/Manifest
@@ -0,0 +1,2 @@
+DIST gevent-websocket-0.9.3.tar.gz 16463 SHA256 6475220340f9f8895a0f51bd2b9df3511bc7765dc055f49e997584bdaee3381f SHA512 71d6a81f04bae36e7122890b37082df188c28f5901bffcd8c774b2bf1cbcc603ff7ff9f854ab17ef00564d36b19787e3a9267e6e299f9837c1d682e63acadb73 WHIRLPOOL 27f84f0452b5be4cc0da03fb5e38710ce7fa3be052c1e41c4b9bc87a7aef40a13c714c24444a681b755eaeaa91e614aff92cb95b49fb03e004f8d44751a5737c
+DIST gevent-websocket-0.9.5.tar.gz 16970 SHA256 0091d6e6aa7298510cadcccb8068e1097a50d4e19090d0c055a93068d4530056 SHA512 fdaa8c704e1d0869700cf67c3a1c04246bfd816f98beac9c755b723a2074aa26344991c924ebdd7de5661065cde48ad412685014c53fdb92df12401cad3c358c WHIRLPOOL f566ec09f2d7739b0f70600c684471b768756c4b94b0462979ba770c5a17bc984b47e2ceb7ca1c0cf2ad26fa9fd9284326294450f013cd43fa243e7140aa7285
diff --git a/dev-python/gevent-websocket/gevent-websocket-0.9.3.ebuild b/dev-python/gevent-websocket/gevent-websocket-0.9.3.ebuild
new file mode 100644
index 00000000000..87a025043a0
--- /dev/null
+++ b/dev-python/gevent-websocket/gevent-websocket-0.9.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Websocket handler for the gevent pywsgi server"
+HOMEPAGE="http://pypi.python.org/pypi/gevent-websocket/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/gevent[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/gevent-websocket/gevent-websocket-0.9.5.ebuild b/dev-python/gevent-websocket/gevent-websocket-0.9.5.ebuild
new file mode 100644
index 00000000000..edcf9042b6a
--- /dev/null
+++ b/dev-python/gevent-websocket/gevent-websocket-0.9.5.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Websocket handler for the gevent pywsgi server"
+HOMEPAGE="http://pypi.python.org/pypi/gevent-websocket/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/gevent[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/gevent-websocket/metadata.xml b/dev-python/gevent-websocket/metadata.xml
new file mode 100644
index 00000000000..6f1ce8d98ff
--- /dev/null
+++ b/dev-python/gevent-websocket/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>ultrabug@gentoo.org</email>
+ <name>Ultrabug</name>
+ <description>main maintainer</description>
+</maintainer>
+<maintainer>
+ <email>julien@thebault.co</email>
+ <name>Lujeni</name>
+ <description>Proxy Maintainer. CC on bugs</description>
+</maintainer>
+<longdescription>
+ Websocket handler for the gevent pywsgi server
+</longdescription>
+<upstream>
+ <remote-id type="pypi">gevent-websocket</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/gevent/Manifest b/dev-python/gevent/Manifest
new file mode 100644
index 00000000000..e35130347e8
--- /dev/null
+++ b/dev-python/gevent/Manifest
@@ -0,0 +1,3 @@
+DIST gevent-1.0.1.tar.gz 1455636 SHA256 4627e215d058f71d95e6b26d9e7be4c263788a4756bd2858a93775f6c072df43 SHA512 4790e06b49536ad15856cf551c7ad4d717be2ceda8bc7d39fc35a0132d21f302e033f3294da426be4f6c0476554163776e5ffd82d89962503a720c453ff96461 WHIRLPOOL a1d552f89e9d3db1720fd0db1dbfb6ffc7ed4db87ee5816e5c44843f3c5bba9afbfc21ab2cfcf5bfc84ea70fea3caf6f8fbdbc2807c868b27105bce7e58d6290
+DIST gevent-1.0.2.tar.gz 1735721 SHA256 3ae1ca0f533ddcb17aab16ce66b424b3f3b855ff3b9508526915d3c6b73fba31 SHA512 95b8a24e53ad1ac135e63cb13942c5af6f7efb0fdb4fc2737759d07b09c2408b0d569dd30f63b45a342f81501211e98b5b6116ba9574c8a7801b9c551c14bd53 WHIRLPOOL 402d2af5993a0c04cb0c371190edbd6d4b56bbade2062beb4e7bedb522c0dd32c89452d6d7c1400884043d2f3bcae9ab718a5bccc1d98a563b7b92aeeff38f4e
+DIST gevent-1.0.tar.gz 1437122 SHA256 bfa9d846db91a7d8b6a36e87353eed641c7e3e7d0bfa0b9975796d227f2db4eb SHA512 5f452c799323e8c16172e04a538dfd8ef4066781207ec06ad0bc2d4892a7309b46146e4ab819bf8b99ad4f6ce226d013ded98800efc16458e2626dcc7a77d853 WHIRLPOOL 799fc6402ec3d0e7cc2580d0af8fab06eb01c3cd3dc61e85672e0abb211ba768dea4585ee8a3d204455f19a537974509d992275aaf243ff4948231603b828c6a
diff --git a/dev-python/gevent/gevent-1.0.1.ebuild b/dev-python/gevent/gevent-1.0.1.ebuild
new file mode 100644
index 00000000000..15fd93a5d07
--- /dev/null
+++ b/dev-python/gevent/gevent-1.0.1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="ssl"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PV=${PV/_/}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="Python networking library that uses greenlet to provide synchronous API"
+HOMEPAGE="http://gevent.org/ http://pypi.python.org/pypi/gevent/"
+SRC_URI="https://github.com/surfly/${PN}/releases/download/${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="dev-libs/libev
+ net-dns/c-ares
+ >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Tests take long and fail terribly a few times.
+# It also seems that they require network access.
+RESTRICT="test"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ rm -r {libev,c-ares} || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cd greentest || die
+ "${PYTHON}" testrunner.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+
+ dodoc changelog.rst
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/gevent/gevent-1.0.2.ebuild b/dev-python/gevent/gevent-1.0.2.ebuild
new file mode 100644
index 00000000000..165198ca999
--- /dev/null
+++ b/dev-python/gevent/gevent-1.0.2.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="ssl"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PV=${PV/_/}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="Python networking library that uses greenlet to provide synchronous API"
+HOMEPAGE="http://gevent.org/ http://pypi.python.org/pypi/gevent/"
+SRC_URI="https://github.com/surfly/${PN}/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="dev-libs/libev
+ net-dns/c-ares
+ >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Tests take long and fail terribly a few times.
+# It also seems that they require network access.
+RESTRICT="test"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ rm -r {libev,c-ares} || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cd greentest || die
+ "${PYTHON}" testrunner.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+
+ dodoc changelog.rst
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/gevent/gevent-1.0.ebuild b/dev-python/gevent/gevent-1.0.ebuild
new file mode 100644
index 00000000000..e5ac2b973fd
--- /dev/null
+++ b/dev-python/gevent/gevent-1.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="ssl"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PV=${PV/_/}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="Python networking library that uses greenlet to provide synchronous API"
+HOMEPAGE="http://gevent.org/ http://pypi.python.org/pypi/gevent/"
+SRC_URI="https://github.com/surfly/${PN}/releases/download/${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm ~ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="dev-libs/libev
+ net-dns/c-ares
+ >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Tests take long and fail terribly a few times.
+# It also seems that they require network access.
+RESTRICT="test"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ rm -r {libev,c-ares} || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cd greentest || die
+ "${PYTHON}" testrunner.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+
+ dodoc changelog.rst
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/gevent/metadata.xml b/dev-python/gevent/metadata.xml
new file mode 100644
index 00000000000..e6634865f48
--- /dev/null
+++ b/dev-python/gevent/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">surfly/gevent</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ghp-import/Manifest b/dev-python/ghp-import/Manifest
new file mode 100644
index 00000000000..7998fca4954
--- /dev/null
+++ b/dev-python/ghp-import/Manifest
@@ -0,0 +1 @@
+DIST ghp-import-0.4.1.tar.gz 5002 SHA256 6058810e1c46dd3b5b1eee87e203bdfbd566e10cfc77566edda7aa4dbf6a3053 SHA512 8b0e6578f05dc74449082a840ccd609a43fba3ca1c4dffacaddc4b27d2e9e3eac565a5c9672734e6ec5f2e8872b13ae0bb8a5d6bae4ee6c4cf41ef7d2c0b2eda WHIRLPOOL 15008edc2539affef67267859ce3a4019e1d3621e8e0a2cb3b74de53af2fb5433f77a74b1742552ccc223fdc9cc30db135a0b9f0cd796ce2df38bfc83c7aa24d
diff --git a/dev-python/ghp-import/ghp-import-0.4.1-r1.ebuild b/dev-python/ghp-import/ghp-import-0.4.1-r1.ebuild
new file mode 100644
index 00000000000..125ee3a2779
--- /dev/null
+++ b/dev-python/ghp-import/ghp-import-0.4.1-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Copy your docs directly to the gh-pages branch"
+HOMEPAGE="http://github.com/davisp/ghp-import"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="tumbolia"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_prepare_all() {
+ ebegin 'patching setup.py'
+ sed \
+ -e '4ifrom codecs import open\n' \
+ -e '/LONG_DESC/s/))/), encoding = "utf-8")/' \
+ -i setup.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/ghp-import/ghp-import-0.4.1.ebuild b/dev-python/ghp-import/ghp-import-0.4.1.ebuild
new file mode 100644
index 00000000000..495438c355b
--- /dev/null
+++ b/dev-python/ghp-import/ghp-import-0.4.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Copy your docs directly to the gh-pages branch"
+HOMEPAGE="http://github.com/davisp/ghp-import"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="tumbolia"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/ghp-import/metadata.xml b/dev-python/ghp-import/metadata.xml
new file mode 100644
index 00000000000..7b9245a12d8
--- /dev/null
+++ b/dev-python/ghp-import/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">ghp-import</remote-id>
+ <remote-id type="github">davisp/ghp-import</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/git-python/Manifest b/dev-python/git-python/Manifest
new file mode 100644
index 00000000000..04f1338a1ac
--- /dev/null
+++ b/dev-python/git-python/Manifest
@@ -0,0 +1,3 @@
+DIST GitPython-0.3.6.tar.gz 353639 SHA256 f3f42ca085eedbd3a9956b5e639de58bbe77a119f6b3d5c3af27669a2322c4a9 SHA512 cfa70004c42580b858a030eb1b46c9827e33b4dbc5477934bf08809e001568a7314e21caacb36743e2b3575be005b4cf9d831fc26e9cbe1964c2808da222a161 WHIRLPOOL afee46f324d22de6ee1b5d1525a17e68e6fa84ef851cf4d44e4aa6f71ee55d26421716559ba446706b12afb45a692cd7b2c27659a58bcdd28f09063ff05961e0
+DIST GitPython-1.0.0.tar.gz 354662 SHA256 c1b3e6fdd209040b6b1cb32ecbff989eeb2fb31b4e7078c3342d71ae8ef7352b SHA512 02d6ca44c930cabd9aa7344ae2f97d201e1840cf22b6083e949f9f374113558b1d7ca88f2d5a4691e63d71da5e54418ef7b8807adb2dfcf90d843fe2d588b3f9 WHIRLPOOL 1623ffabe1bd9de7a71890e3794b45b5871ef519d2b7581f881b4df4e54dc529e5e75bd7835161900a4307ffabfa014f7e64dbe1cee9502b70821691c9853476
+DIST GitPython-1.0.1.tar.gz 355108 SHA256 9c88c17bbcae2a445ff64024ef13526224f70e35e38c33416be5ceb56ca7f760 SHA512 63fc061f0e045b11adf20ab291f9d614028d76fb44c6b0910193f6a9f4a5f9bae070527fa2ca06b234da12b7cd545194a7f5e912f4e09370bd41f81552c3160f WHIRLPOOL f166834a746d5e2a4888219aa86f897f2713dbcc94dd1f2444a3ffc1b292bb2ae0b83df51aebd65ef45b942ff6d48ebb08b26796818512af6fcafded90398d4e
diff --git a/dev-python/git-python/git-python-0.3.6.ebuild b/dev-python/git-python/git-python-0.3.6.ebuild
new file mode 100644
index 00000000000..745b21605a0
--- /dev/null
+++ b/dev-python/git-python/git-python-0.3.6.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="GitPython"
+MY_PV="${PV/_rc/.RC}"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="Library used to interact with Git repositories"
+HOMEPAGE="http://gitorious.org/git-python http://pypi.python.org/pypi/GitPython"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# Tests dont make sense without a git repo
+RESTRICT="test"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/gitdb-0.6.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+# $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+# is the correct entry for mock, however while RESTRICT="test"
+# there is little point in setting it since it is inactive
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/git-python/git-python-1.0.0.ebuild b/dev-python/git-python/git-python-1.0.0.ebuild
new file mode 100644
index 00000000000..76d7ffb41e8
--- /dev/null
+++ b/dev-python/git-python/git-python-1.0.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="GitPython"
+MY_PV="${PV/_rc/.RC}"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="Library used to interact with Git repositories"
+HOMEPAGE="http://gitorious.org/git-python http://pypi.python.org/pypi/GitPython"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# Tests dont make sense without a git repo
+RESTRICT="test"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/gitdb-0.6.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+# $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+# is the correct entry for mock, however while RESTRICT="test"
+# there is little point in setting it since it is inactive
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/git-python/git-python-1.0.1.ebuild b/dev-python/git-python/git-python-1.0.1.ebuild
new file mode 100644
index 00000000000..76d7ffb41e8
--- /dev/null
+++ b/dev-python/git-python/git-python-1.0.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="GitPython"
+MY_PV="${PV/_rc/.RC}"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="Library used to interact with Git repositories"
+HOMEPAGE="http://gitorious.org/git-python http://pypi.python.org/pypi/GitPython"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# Tests dont make sense without a git repo
+RESTRICT="test"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/gitdb-0.6.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+# $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+# is the correct entry for mock, however while RESTRICT="test"
+# there is little point in setting it since it is inactive
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/git-python/metadata.xml b/dev-python/git-python/metadata.xml
new file mode 100644
index 00000000000..5a31bf726ce
--- /dev/null
+++ b/dev-python/git-python/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">GitPython</remote-id>
+ <remote-id type="gitorious">git-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/git-review/Manifest b/dev-python/git-review/Manifest
new file mode 100644
index 00000000000..4656f7fd583
--- /dev/null
+++ b/dev-python/git-review/Manifest
@@ -0,0 +1 @@
+DIST git-review-1.24.tar.gz 39106 SHA256 20fa8be4b86430b41153c270f770dd270bde06ff70c60c411aa9adc9db2f512a SHA512 7729358c8a99078d1e66d4682b9d886ab97fc82793838f14f7a30572e561a8e1b4c5ae11f7b347180ab34488af309dce7ee804d4a7c7873fa40b182ab6ee1ac5 WHIRLPOOL 07e33a18c42ea5689a4189134a44a3b5a9f95bea4a69f07a6a225a7577f2ccb829b15f41da901cc3e7ea0cd98c3b764bb2056456697bec0db619878b0976c0b3
diff --git a/dev-python/git-review/git-review-1.24.ebuild b/dev-python/git-review/git-review-1.24.ebuild
new file mode 100644
index 00000000000..1f2be728f2b
--- /dev/null
+++ b/dev-python/git-review/git-review-1.24.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Tool to submit code to Gerrit"
+HOMEPAGE="https://git.openstack.org/cgit/openstack-infra/git-review"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/git-review/metadata.xml b/dev-python/git-review/metadata.xml
new file mode 100644
index 00000000000..c723b4f7bde
--- /dev/null
+++ b/dev-python/git-review/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">git-review</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gitdb/Manifest b/dev-python/gitdb/Manifest
new file mode 100644
index 00000000000..c4519758091
--- /dev/null
+++ b/dev-python/gitdb/Manifest
@@ -0,0 +1,2 @@
+DIST gitdb-0.6.3.tar.gz 400070 SHA256 2735e2e5d914c77a6a5d80566670ba18b32022e859ecfc9b2e7ae8f11fa1960e SHA512 e7a08eb0f1b7bf6c8e23787580e4efbdc645b078fbf7ad130ebe9f3d29722d642f70c36fbb676a360ed787885dc05f4a574b9ca59a1c1abd38c38bc3b1b1270c WHIRLPOOL b447e29c645519cfaa11aa010799f43f6ca588d2f1c58041f473717f9149fa472a23d5178b141b9cb32485eeef3112787f9cd330aca037b3dce996cc195a9858
+DIST gitdb-0.6.4.tar.gz 400506 SHA256 a3ebbc27be035a2e874ed904df516e35f4a29a778a764385de09de9e0f139658 SHA512 2314ae70ec26c46c559cc69a1300ead8cd65a0a22425a3bb36b04edb73bd5e2628cbdcd8e515830c74b21af2badea662c915a727d9a46ed2f92f169eb71bdf62 WHIRLPOOL df7425efd5f2c6a704b3545723ce8e27fdca09c435f52685dd4dcca7eb3eb3da8d89fbe88e2d9dfee7984b029b9ea741b32a6afcdbccb5bcbd7b04ce59f6d552
diff --git a/dev-python/gitdb/gitdb-0.6.3.ebuild b/dev-python/gitdb/gitdb-0.6.3.ebuild
new file mode 100644
index 00000000000..2af816f66c5
--- /dev/null
+++ b/dev-python/gitdb/gitdb-0.6.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="GitDB is a pure-Python git object database"
+HOMEPAGE="
+ https://github.com/gitpython-developers/gitdb
+ http://pypi.python.org/pypi/gitdb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git
+ >=dev-python/smmap-0.8.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+# Testsuite appears to require files from a git repo
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/gitdb/gitdb-0.6.4.ebuild b/dev-python/gitdb/gitdb-0.6.4.ebuild
new file mode 100644
index 00000000000..e44f9197a0b
--- /dev/null
+++ b/dev-python/gitdb/gitdb-0.6.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="GitDB is a pure-Python git object database"
+HOMEPAGE="
+ https://github.com/gitpython-developers/gitdb
+ http://pypi.python.org/pypi/gitdb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git
+ >=dev-python/smmap-0.8.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+# Testsuite appears to require files from a git repo
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/gitdb/metadata.xml b/dev-python/gitdb/metadata.xml
new file mode 100644
index 00000000000..9aaab639970
--- /dev/null
+++ b/dev-python/gitdb/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">gitdb</remote-id>
+ <remote-id type="github">gitpython-developers/gitdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/glance_store/Manifest b/dev-python/glance_store/Manifest
new file mode 100644
index 00000000000..652898f2279
--- /dev/null
+++ b/dev-python/glance_store/Manifest
@@ -0,0 +1,4 @@
+DIST glance_store-0.1.10.tar.gz 95520 SHA256 b390fea864f1398f79ab66ce99c3b868b86ac1bf97dbe89ba4498506e2af7d02 SHA512 cd4b2013c49c1104523c809ae28f8cb3fb927564d46db4cb36d5d7c529e69e684af584ad322786e41afc414770a750a545b1baea9f62f2d9611f165df0fc801f WHIRLPOOL d1c65c33eaec3710463fffbe2139fd72b98b3e3e1e722424d8051c0e28c8277e67c96b80476a4245bbd4f2279998b86a6fbd09361d5f73d46f4b80c2eabc5795
+DIST glance_store-0.4.0.tar.gz 103982 SHA256 cd15e9f9a08dc8d3eeaa452682c8e53423f848eaadf064c0ee8068583aa31154 SHA512 d69337a7f5b06b70ee9ff60e1672d0b16b1fb4e22a38939929df0a6b08f03f0954d60b3ffb747ed30510bca451421f3e5b7133aa574d5786e1b2ba43a80075bd WHIRLPOOL f6685e80e7cce7586a0ecf0af13b1366c1f3fa739571b4f209cf76074742031858f73335c9236806c54a03fb80ccad0c302f1ef6068baa6f6285ac73b708637c
+DIST glance_store-0.5.0.tar.gz 106922 SHA256 bb088cea0f83d3335191174b3fbdd5f5b2a39ae4f6e0739b9159e883658657db SHA512 e9f036c9f19ca2f3b8ba82a288a6402c91d849409f4594c61c59c14c8575b5827cf8e072c4772f5ef610fd186037b2d3c5cbc5fb032ca02c025e58a6a59a2dfa WHIRLPOOL 1943b6a26e96a9043b99d6d9b8c9af78468d05f825812250f7c7c396977d4e76d9370fe0c3fd2043d67d519c53c5e11c7541ae4f0389179b61e083f059cc5aea
+DIST glance_store-0.6.0.tar.gz 106047 SHA256 249c99818f7ebd1b3aea6c96a66e4e17351a1d9befaef885dada0483be6ee818 SHA512 065c3d68b67ce38a82f8eba29630f368bc723f2c6a34ed1c7adb2ab90f5d24c1b7f32a55c200e5b45167b26bd4d3dae5194484e9de17286cdd91685898276388 WHIRLPOOL c4553654288dc2f3f823a7fbde4ff4c2f1c97b704ff3f55069153819da64ffeb06380975a80db08a1dd33cbbc25418e233b1eadc2aee5569d125223efde69e4c
diff --git a/dev-python/glance_store/glance_store-0.1.10.ebuild b/dev-python/glance_store/glance_store-0.1.10.ebuild
new file mode 100644
index 00000000000..6dcdd34def4
--- /dev/null
+++ b/dev-python/glance_store/glance_store-0.1.10.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A connection pool for python-ldap"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/oslo-config-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.12[${PYTHON_USEDEP}]
+ >=dev-python/python-cinderclient-1.0.6[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.13.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.8[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/glance_store/glance_store-0.4.0.ebuild b/dev-python/glance_store/glance_store-0.4.0.ebuild
new file mode 100644
index 00000000000..b5c5cb07fbf
--- /dev/null
+++ b/dev-python/glance_store/glance_store-0.4.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A connection pool for python-ldap"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-concurrency-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.12[${PYTHON_USEDEP}]
+ dev-python/enum34[${PYTHON_USEDEP}]
+ >=dev-python/python-cinderclient-1.0.6[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.13.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i '/ordereddict/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/glance_store/glance_store-0.5.0.ebuild b/dev-python/glance_store/glance_store-0.5.0.ebuild
new file mode 100644
index 00000000000..5bae9bab03a
--- /dev/null
+++ b/dev-python/glance_store/glance_store-0.5.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A connection pool for python-ldap"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-concurrency-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.12[${PYTHON_USEDEP}]
+ dev-python/enum34[${PYTHON_USEDEP}]
+ >=dev-python/python-cinderclient-1.0.6[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.13.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i '/ordereddict/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/glance_store/glance_store-0.6.0.ebuild b/dev-python/glance_store/glance_store-0.6.0.ebuild
new file mode 100644
index 00000000000..6c77a0258f5
--- /dev/null
+++ b/dev-python/glance_store/glance_store-0.6.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A connection pool for python-ldap"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-concurrency-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ dev-python/enum34[${PYTHON_USEDEP}]
+ >=dev-python/python-cinderclient-1.2.1[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.17.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i '/ordereddict/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/glance_store/metadata.xml b/dev-python/glance_store/metadata.xml
new file mode 100644
index 00000000000..eda0f16d7a2
--- /dev/null
+++ b/dev-python/glance_store/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A simple connector pool for python-ldap.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">glance_store</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/globre/Manifest b/dev-python/globre/Manifest
new file mode 100644
index 00000000000..c4a769236e5
--- /dev/null
+++ b/dev-python/globre/Manifest
@@ -0,0 +1 @@
+DIST globre-0.1.2.tar.gz 18465 SHA256 64203a0caca50cf2048cc4cc18b8abf452dfb7822b79ea9950f7c0ee03f51d9b SHA512 1e1a406b2a07ae551ba9b1b18dc92fc0728d2e0ad01c63a2108736430d893c427011b74883f5c84040426603ac8f46346a672e50a96502b315c02f81e6dff82c WHIRLPOOL eb4d5017438a946577d19ec2e2a2208a0edd5b4dd6136ce4aa71f73bd866b893396cc4b6cc4b9f592307d1116e2c04d54c83f3a47bc42e4738c29bbf915256dc
diff --git a/dev-python/globre/globre-0.1.2-r1.ebuild b/dev-python/globre/globre-0.1.2-r1.ebuild
new file mode 100644
index 00000000000..4e7447e834c
--- /dev/null
+++ b/dev-python/globre/globre-0.1.2-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A glob matching library, providing an interface similar to the 're' module"
+HOMEPAGE="https://pypi.python.org/pypi/globre http://github.com/metagriffin/globre"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-3+"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ sed \
+ -e '/distribute/d' \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests --verbose || die
+}
diff --git a/dev-python/globre/metadata.xml b/dev-python/globre/metadata.xml
new file mode 100644
index 00000000000..373e35c6635
--- /dev/null
+++ b/dev-python/globre/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">globre</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gmpy/Manifest b/dev-python/gmpy/Manifest
new file mode 100644
index 00000000000..73a279d5ed4
--- /dev/null
+++ b/dev-python/gmpy/Manifest
@@ -0,0 +1,2 @@
+DIST gmpy2-2.0.4.zip 280459 SHA256 c2b06e75d876960adabce575f01361f96884a64401740af49e8b9ef356bbbecf SHA512 98f57a0b140bb352dc1403dc799845685d52d346e87e6402d1e10c8ef46bbe90bae598143bd2ebffedb617c0519f75590a6cc9b30d887dc08ff6d5ae4fd7ec75 WHIRLPOOL 2f9c903c91c864ef4eb7e02b4004204580af1b7ddf67c67719ab68506a95cf57af64e06bed24ef445eb7eb2de0e7ef550748ac6e8b41e10297fcc22b04cfbca9
+DIST gmpy2-2.0.6.zip 280353 SHA256 5041d0ae24407c24487106099f5bcc4abb1a5f58d90e6712cc95321975eddbd4 SHA512 fae7952e86c821d8a4ae083a54d6e7e3516459abbf9bcb16408ea0d7989f309aa27348bb51781e0f52466eaf121cb193b54f5f4453093f022ce8394d273196a0 WHIRLPOOL d9a301d5d5f0872ddb517bba815cefaf8c2a3a1fa7e3e0b38f0ea0d2ec1ef8e0526549f8a3d4713b35a878125f1a766bbd3c31e0eb27902266bf3ae8a8dc2559
diff --git a/dev-python/gmpy/gmpy-2.0.4.ebuild b/dev-python/gmpy/gmpy-2.0.4.ebuild
new file mode 100644
index 00000000000..fff5836262a
--- /dev/null
+++ b/dev-python/gmpy/gmpy-2.0.4.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python bindings for GMP, MPC, MPFR and MPIR libraries"
+HOMEPAGE="http://code.google.com/p/gmpy/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="amd64 ~arm ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="doc mpir"
+
+RDEPEND="
+ >=dev-libs/mpc-1.0.2
+ >=dev-libs/mpfr-3.1.2
+ !mpir? ( dev-libs/gmp:0= )
+ mpir? ( sci-libs/mpir )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}"/${MY_P}
+
+python_configure_all() {
+ mydistutilsargs=(
+ $(usex mpir --mpir --gmp)
+ )
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd test || die
+ ${PYTHON} runtests.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/gmpy/gmpy-2.0.6.ebuild b/dev-python/gmpy/gmpy-2.0.6.ebuild
new file mode 100644
index 00000000000..330810815c1
--- /dev/null
+++ b/dev-python/gmpy/gmpy-2.0.6.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python bindings for GMP, MPC, MPFR and MPIR libraries"
+HOMEPAGE="http://code.google.com/p/gmpy/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="doc mpir"
+
+RDEPEND="
+ >=dev-libs/mpc-1.0.2
+ >=dev-libs/mpfr-3.1.2
+ !mpir? ( dev-libs/gmp:0= )
+ mpir? ( sci-libs/mpir )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}"/${MY_P}
+
+python_prepare_all() {
+ # rm non std test file
+ rm test*/gmpy_test_thr.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ mydistutilsargs=(
+ $(usex mpir --mpir --gmp)
+ )
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd test || die
+ "${PYTHON}" runtests.py || die "tests failed under ${EPYTHON}"
+ if python_is_python3; then
+ cd ../test3 || die
+ else
+ cd ../test2 || die
+ fi
+ "${PYTHON}" gmpy_test.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/gmpy/metadata.xml b/dev-python/gmpy/metadata.xml
new file mode 100644
index 00000000000..f60e7204ca7
--- /dev/null
+++ b/dev-python/gmpy/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ gmpy2 is a C-coded Python extension module that supports
+ multiple-precision arithmetic. gmpy2 supports the GMP multi-precision
+ library, the MPFR (correctly rounded real floating-point arithmetic) and MPC
+ (correctly rounded complex floating-point arithmetic) libraries.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">gmpy2</remote-id>
+ </upstream>
+ <use>
+ <flag name="mpir">Use <pkg>sci-libs/mpir</pkg> as gmp implementation</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/gnome-keyring-python/Manifest b/dev-python/gnome-keyring-python/Manifest
new file mode 100644
index 00000000000..b3c5fb4b1ca
--- /dev/null
+++ b/dev-python/gnome-keyring-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-desktop-2.32.0.tar.bz2 621277 SHA256 09dbd580bf3b0ef60f91b090eafe6d08ddcc50a609e2b425a7f8eca46d4e0ee9 SHA512 51beefd21fa3aa6242ba4c66e57d940372fbf4a84ffe34063339f6e7e7c22e76d281b25d5f113de3780a0dbf733c7e07142f05a285056cda26736323b4185d18 WHIRLPOOL 5713353291a34e0a03152ad76c46391e3ab246efc17b63193fc0b26b02176eb78ce134c8d0cabcb3480bd2dbb3446b7b6b301cffbfac3ce915e21a974947e37e
diff --git a/dev-python/gnome-keyring-python/gnome-keyring-python-2.32.0-r1.ebuild b/dev-python/gnome-keyring-python/gnome-keyring-python-2.32.0-r1.ebuild
new file mode 100644
index 00000000000..6e9b7c19078
--- /dev/null
+++ b/dev-python/gnome-keyring-python/gnome-keyring-python-2.32.0-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python-desktop"
+G_PY_BINDINGS="gnomekeyring"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1
+
+DESCRIPTION="Python bindings for the interfacing with the GNOME keyring"
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND=">=gnome-base/gnome-keyring-0.5.0
+ !<dev-python/gnome-python-desktop-2.22.0-r10"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/keyring.py examples/keyring-async.py )
diff --git a/dev-python/gnome-keyring-python/metadata.xml b/dev-python/gnome-keyring-python/metadata.xml
new file mode 100644
index 00000000000..da6fd63d008
--- /dev/null
+++ b/dev-python/gnome-keyring-python/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/gnome-python-base/Manifest b/dev-python/gnome-python-base/Manifest
new file mode 100644
index 00000000000..a5edcb54102
--- /dev/null
+++ b/dev-python/gnome-python-base/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-2.28.1.tar.bz2 562220 SHA256 759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8 SHA512 632d91d416f8209c2bc8d576d1229069e00f2cfeedb3441a5f151e12973ed740c0bb26d18d5c16cfeeb64ca35933537997277450001cffd96d8d5077027d45f2 WHIRLPOOL cd4ea19fabd26c55866d8789628fdc3c834e73932381431216d65c5e9b42ad529e83f74d498951f07f060d3049f1739b6db99dbdbe34575eed469ceb23a51c5b
diff --git a/dev-python/gnome-python-base/gnome-python-base-2.28.1-r1.ebuild b/dev-python/gnome-python-base/gnome-python-base-2.28.1-r1.ebuild
new file mode 100644
index 00000000000..af84df7a900
--- /dev/null
+++ b/dev-python/gnome-python-base/gnome-python-base-2.28.1-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+PYTHON_COMPAT=( python2_7 )
+
+inherit versionator eutils gnome2 python-any-r1
+
+# This ebuild does nothing -- we just want to get the pkgconfig file installed
+
+MY_PN="gnome-python"
+DESCRIPTION="Provides the base files for the gnome-python bindings"
+HOMEPAGE="http://pygtk.org/"
+PVP="$(get_version_component_range 1-2)"
+SRC_URI="mirror://gnome/sources/${MY_PN}/${PVP}/${MY_PN}-${PV}.tar.bz2"
+
+IUSE=""
+LICENSE="LGPL-2.1"
+SLOT="2"
+RESTRICT="${RESTRICT} test"
+
+# From the gnome-python eclass
+RDEPEND=">=x11-libs/gtk+-2.6:2
+ >=dev-libs/glib-2.6:2
+ $(python_gen_any_dep '
+ >=dev-python/pygtk-2.14.0:2[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-2.17:2[${PYTHON_USEDEP}]
+ ')
+ !<dev-python/gnome-python-2.22.1"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+KEYWORDS="alpha amd64 arm ia64 ~mips ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-allbindings
+}
diff --git a/dev-python/gnome-python-base/metadata.xml b/dev-python/gnome-python-base/metadata.xml
new file mode 100644
index 00000000000..888e60bf6a9
--- /dev/null
+++ b/dev-python/gnome-python-base/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/gnome-python-desktop-base/Manifest b/dev-python/gnome-python-desktop-base/Manifest
new file mode 100644
index 00000000000..b3c5fb4b1ca
--- /dev/null
+++ b/dev-python/gnome-python-desktop-base/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-desktop-2.32.0.tar.bz2 621277 SHA256 09dbd580bf3b0ef60f91b090eafe6d08ddcc50a609e2b425a7f8eca46d4e0ee9 SHA512 51beefd21fa3aa6242ba4c66e57d940372fbf4a84ffe34063339f6e7e7c22e76d281b25d5f113de3780a0dbf733c7e07142f05a285056cda26736323b4185d18 WHIRLPOOL 5713353291a34e0a03152ad76c46391e3ab246efc17b63193fc0b26b02176eb78ce134c8d0cabcb3480bd2dbb3446b7b6b301cffbfac3ce915e21a974947e37e
diff --git a/dev-python/gnome-python-desktop-base/gnome-python-desktop-base-2.32.0-r1.ebuild b/dev-python/gnome-python-desktop-base/gnome-python-desktop-base-2.32.0-r1.ebuild
new file mode 100644
index 00000000000..c5dbf365ba8
--- /dev/null
+++ b/dev-python/gnome-python-desktop-base/gnome-python-desktop-base-2.32.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+PYTHON_COMPAT=( python2_7 )
+GNOME_ORG_MODULE="gnome-python-desktop"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit gnome2 python-any-r1
+
+# This ebuild does nothing -- we just want to get the pkgconfig file installed
+
+DESCRIPTION="Provides python the base files for the Gnome Python Desktop bindings"
+HOMEPAGE="http://pygtk.org/"
+
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux"
+
+IUSE=""
+LICENSE="LGPL-2.1"
+SLOT="0"
+
+# From the gnome-python-desktop eclass
+RDEPEND="$(python_gen_any_dep '>=dev-python/pygtk-2.10.3:2[${PYTHON_USEDEP}]')
+ >=dev-libs/glib-2.6.0:2
+ >=x11-libs/gtk+-2.4.0:2
+ !<dev-python/gnome-python-extras-2.13
+ !<dev-python/gnome-python-desktop-2.22.0-r10"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+RESTRICT="test"
+
+src_prepare() {
+ gnome2_src_prepare
+ python_fix_shebang .
+}
+
+src_configure() {
+ DOCS="AUTHORS ChangeLog MAINTAINERS NEWS README"
+ gnome2_src_configure \
+ --disable-allbindings
+}
diff --git a/dev-python/gnome-python-desktop-base/metadata.xml b/dev-python/gnome-python-desktop-base/metadata.xml
new file mode 100644
index 00000000000..da6fd63d008
--- /dev/null
+++ b/dev-python/gnome-python-desktop-base/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/gnome-python-extras-base/Manifest b/dev-python/gnome-python-extras-base/Manifest
new file mode 100644
index 00000000000..2fc6771cd4c
--- /dev/null
+++ b/dev-python/gnome-python-extras-base/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-extras-2.25.3.tar.bz2 370489 SHA256 ca346264e00e193f0866cabd8801d3b7ce70dae7b8b296e41e5b3a45c9b0275c SHA512 6994b8b5d6ccc009edc7ddfad373b9164d8162f1007972652f6086dca30cac6941ab68ef467d15c972ab05c4ae0e19ec72edc2643636d22a01a3f5a719251467 WHIRLPOOL b0adfcef8bbb978d063a932393e17de9c8c519194f40085ecd03824ec4fb4421c84e0a4853a5a2d9fc40c94d8c0c261828447ac5fd69cff4ece39c52fc833590
diff --git a/dev-python/gnome-python-extras-base/files/gnome-python-extras-base-2.25.3-python-libs.patch b/dev-python/gnome-python-extras-base/files/gnome-python-extras-base-2.25.3-python-libs.patch
new file mode 100644
index 00000000000..ab691272cbb
--- /dev/null
+++ b/dev-python/gnome-python-extras-base/files/gnome-python-extras-base-2.25.3-python-libs.patch
@@ -0,0 +1,59 @@
+From 7824fd5291f570de3c2c64185035d1a6a0a3445a Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Mon, 13 Aug 2012 04:42:47 -0400
+Subject: [PATCH] Replace horrible slow python libs search
+
+---
+ acinclude.m4 | 36 ++----------------------------------
+ 1 files changed, 2 insertions(+), 34 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 8694a65..f5373eb 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -59,40 +59,8 @@ $1],dnl
+ [AC_MSG_RESULT(not found)
+ $2])
+ CPPFLAGS="$save_CPPFLAGS"
+-
+- # This bit is copied from Planner. murrayc.
+- # Check for Python library path
+- AC_MSG_CHECKING([for Python library path])
+-
+- # Win32 has libpython25.a instead of libpython2.5.a, so we look
+- # for both. TODO: Only look for libpython25.a on Windows, and for
+- # libpython2.5.a on unix.
+- WIN32_PYTHON_VERSION=`echo $PYTHON_VERSION | sed "s,\.,,"`
+-
+- python_path=`dirname $PYTHON | sed "s,/bin.*$,,"`
+- for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
+- if test -e "$i"; then
+- python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
+- if test -n "$python_path" ; then
+- python_lib="python$PYTHON_VERSION"
+- break
+- fi
+-
+- # Additionally test WIN32_PYTHON_VERSION
+- python_path=`find $i -type f -name libpython$WIN32_PYTHON_VERSION.* -print | sed "1q"`
+- if test -n "$python_path" ; then
+- python_lib="python$WIN32_PYTHON_VERSION"
+- break
+- fi
+- fi
+- done
+-
+- python_path=`echo $python_path | sed "s,/libpython.*$,,"`
+- AC_MSG_RESULT([$python_path])
+- if test -z "$python_path" ; then
+- AC_MSG_ERROR([cannot find Python library path])
+- fi
+- AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -l$python_lib"])
++PYTHON_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; print('-L%s -lpython${PYTHON_VERSION}' % distutils.sysconfig.get_config_var('LIBDIR'))"`
++AC_SUBST([PYTHON_LDFLAGS],["$PYTHON_LDFLAGS"])
+ ])
+
+ dnl
+--
+1.7.8.6
+
diff --git a/dev-python/gnome-python-extras-base/gnome-python-extras-base-2.25.3-r1.ebuild b/dev-python/gnome-python-extras-base/gnome-python-extras-base-2.25.3-r1.ebuild
new file mode 100644
index 00000000000..ae72d2647ec
--- /dev/null
+++ b/dev-python/gnome-python-extras-base/gnome-python-extras-base-2.25.3-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit versionator autotools eutils gnome2 python-any-r1
+
+# This ebuild does nothing -- we just want to get the pkgconfig file installed
+MY_PN="gnome-python-extras"
+DESCRIPTION="Provides python the base files for the Gnome Python Desktop bindings"
+HOMEPAGE="http://pygtk.org/"
+PVP="$(get_version_component_range 1-2)"
+SRC_URI="mirror://gnome/sources/${MY_PN}/${PVP}/${MY_PN}-${PV}.tar.bz2"
+
+IUSE=""
+LICENSE="LGPL-2.1"
+SLOT="0"
+RESTRICT="test"
+
+# From the gnome-python-extras eclass
+RDEPEND=">=x11-libs/gtk+-2.4:2
+ >=dev-libs/glib-2.6:2
+ $(python_gen_any_dep '>=dev-python/pygtk-2.10.3:2[${PYTHON_USEDEP}]')
+ !<=dev-python/gnome-python-extras-2.19.1-r2"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ gnome-base/gnome-common"
+# eautoreconf needs gnome-base/gnome-common
+
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+DOCS="AUTHORS COPYING* ChangeLog INSTALL NEWS README"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-python-libs.patch" #344231
+ sed -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" -i configure.ac || die
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-allbindings
+}
diff --git a/dev-python/gnome-python-extras-base/metadata.xml b/dev-python/gnome-python-extras-base/metadata.xml
new file mode 100644
index 00000000000..9b1bc26a9df
--- /dev/null
+++ b/dev-python/gnome-python-extras-base/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/gnome-vfs-python/Manifest b/dev-python/gnome-vfs-python/Manifest
new file mode 100644
index 00000000000..a5edcb54102
--- /dev/null
+++ b/dev-python/gnome-vfs-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-2.28.1.tar.bz2 562220 SHA256 759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8 SHA512 632d91d416f8209c2bc8d576d1229069e00f2cfeedb3441a5f151e12973ed740c0bb26d18d5c16cfeeb64ca35933537997277450001cffd96d8d5077027d45f2 WHIRLPOOL cd4ea19fabd26c55866d8789628fdc3c834e73932381431216d65c5e9b42ad529e83f74d498951f07f060d3049f1739b6db99dbdbe34575eed469ceb23a51c5b
diff --git a/dev-python/gnome-vfs-python/gnome-vfs-python-2.28.1-r1.ebuild b/dev-python/gnome-vfs-python/gnome-vfs-python-2.28.1-r1.ebuild
new file mode 100644
index 00000000000..fbc2f26c9d8
--- /dev/null
+++ b/dev-python/gnome-vfs-python/gnome-vfs-python-2.28.1-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python"
+G_PY_BINDINGS=( gnomevfs gnomevfsbonobo pyvfsmodule )
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1
+
+DESCRIPTION="Python bindings for the GnomeVFS library"
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc examples"
+
+RDEPEND="dev-python/pygobject:2[${PYTHON_USEDEP}]
+ >=gnome-base/gnome-vfs-2.24.0
+ >=gnome-base/libbonobo-2.8
+ !<dev-python/gnome-python-2.22.1"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/vfs/. )
diff --git a/dev-python/gnome-vfs-python/metadata.xml b/dev-python/gnome-vfs-python/metadata.xml
new file mode 100644
index 00000000000..888e60bf6a9
--- /dev/null
+++ b/dev-python/gnome-vfs-python/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/gntp/Manifest b/dev-python/gntp/Manifest
new file mode 100644
index 00000000000..ecf54430116
--- /dev/null
+++ b/dev-python/gntp/Manifest
@@ -0,0 +1 @@
+DIST gntp-1.0.1.tar.gz 10889 SHA256 bad7a9a3d877e46dc13ad60cacca0442901ed9ebd96708cebe9b8f280652e382 SHA512 6e44cbafcaa5b60b39d3bb60a67786300acae5e3aa6fbab1d5cbdcb4a24fffba62f878d801683d724321d5c0e3a3b780da9c99d3faf8a578f956603e1daa49cd WHIRLPOOL d908eca646801672e70bf69ea55a96ef42d75ce2b18ccaa2d96117452411cd07cfb2934a0716dab71e2aa4edf70df91a200b1d7289d0b0ecab39fefb39417e11
diff --git a/dev-python/gntp/gntp-1.0.1.ebuild b/dev-python/gntp/gntp-1.0.1.ebuild
new file mode 100644
index 00000000000..d1ef80c7cd5
--- /dev/null
+++ b/dev-python/gntp/gntp-1.0.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for working with the Growl Notification Transport Protocol"
+HOMEPAGE="https://github.com/kfdm/gntp http://pypi.python.org/pypi/gntp"
+SRC_URI="mirror://pypi/g/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
diff --git a/dev-python/gntp/metadata.xml b/dev-python/gntp/metadata.xml
new file mode 100644
index 00000000000..62283fd5430
--- /dev/null
+++ b/dev-python/gntp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>naota@gentoo.org</email>
+ <name>Naohiro Aota</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">gntp</remote-id>
+ <remote-id type="github">kfdm/gntp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gnuplot-py/Manifest b/dev-python/gnuplot-py/Manifest
new file mode 100644
index 00000000000..ab948c730f8
--- /dev/null
+++ b/dev-python/gnuplot-py/Manifest
@@ -0,0 +1 @@
+DIST gnuplot-py-1.8.tar.gz 118828 SHA256 ab339be7847d30a8acfd616f27b5021bfde0999b7bf2d68400fbe62c53106e21 SHA512 748dc95ea53acd362f67c821a3cc7cf23b6329c2dd13c130c91e1c9f89afe1ffd84619ed321923c65455adf86ee58976dd6dd187881ee3ede5e0f5f551fb027d WHIRLPOOL b13436a3de17db7c871f7179291e0b9669dc7b3b6de9b4e0463e9989c1c0105c2495145ffd12e163cbbc75ff863ce657dbd64aca305c5a42c529e0f2411e7060
diff --git a/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch b/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch
new file mode 100644
index 00000000000..2eaf6ae379e
--- /dev/null
+++ b/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch
@@ -0,0 +1,75 @@
+--- _Gnuplot.py.orig 2003-10-17 16:28:10.000000000 +0200
++++ _Gnuplot.py 2004-10-28 14:39:20.000000000 +0200
+@@ -18,6 +18,27 @@
+
+ import gp, PlotItems, termdefs
+
++def test_mouse():
++ """Return whether mouse support is present or not.
++
++ The detection is done by calling gnuplot with a file containing only the
++ "set mouse" command. If gnuplot does have mouse support, it should simply
++ execute the file silently, producing no output."""
++
++ import os,tempfile,commands
++
++ tmpname = tempfile.mktemp()
++ tfile = open(tmpname,"w")
++ tfile.write("set mouse")
++ tfile.close()
++ msg = commands.getoutput(gp.GnuplotOpts.gnuplot_command + " " +
++ tmpname)
++ os.unlink(tmpname)
++ if msg: # Gnuplot won"t print anything if it has mouse support
++ has_mouse = 0
++ else:
++ has_mouse = 1
++ return has_mouse
+
+ class _GnuplotFile:
+ """A file to which gnuplot commands can be written.
+@@ -152,7 +173,7 @@
+ 'output' : 'string',
+ }
+
+- def __init__(self, filename=None, persist=None, debug=0):
++ def __init__(self, filename=None, persist=None, debug=0, mouse=None):
+ """Create a Gnuplot object.
+
+ Create a 'Gnuplot' object. By default, this starts a gnuplot
+@@ -172,8 +193,19 @@
+ 'debug=1' -- echo the gnuplot commands to stderr as well as
+ sending them to gnuplot.
+
++ "mouse=1" -- activate mouse support (officially available as of
++ gnuplot 4.0 under certain platforms).
++
+ """
+
++ # The mouse check must be done first, so we can decide whether to use
++ # inline data and fifos or not (they break mouse support)
++ if mouse is None:
++ mouse = test_mouse()
++ if mouse:
++ gp.GnuplotOpts.prefer_inline_data = 0
++ gp.GnuplotOpts.prefer_fifo_data = 0
++
+ if filename is None:
+ self.gnuplot = gp.GnuplotProcess(persist=persist)
+ else:
+@@ -182,10 +214,14 @@
+ 'Gnuplot with output to file does not allow '
+ 'persist option.')
+ self.gnuplot = _GnuplotFile(filename)
++
+ self._clear_queue()
+ self.debug = debug
+ self.plotcmd = 'plot'
+- self('set terminal %s' % (gp.GnuplotOpts.default_term,))
++ # The "set mouse" command MUST be the VERY FIRST command passed to gnuplot
++ if mouse:
++ self("set mouse")
++ self("set terminal %s" % gp.GnuplotOpts.default_term)
+
+ def __call__(self, s):
+ """Send a command string to gnuplot.
diff --git a/dev-python/gnuplot-py/gnuplot-py-1.8-r1.ebuild b/dev-python/gnuplot-py/gnuplot-py-1.8-r1.ebuild
new file mode 100644
index 00000000000..67cc4a7a6f8
--- /dev/null
+++ b/dev-python/gnuplot-py/gnuplot-py-1.8-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_SINGLE_IMPL=true
+
+inherit distutils-r1
+
+DESCRIPTION="A python wrapper for Gnuplot"
+HOMEPAGE="http://gnuplot-py.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ppc64 ~s390 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc"
+
+DEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ sci-visualization/gnuplot"
+
+DOCS=( ANNOUNCE.txt CREDITS.txt FAQ.txt NEWS.txt TODO.txt )
+
+PATCHES=( "${FILESDIR}"/${PN}-1.7-mousesupport.patch )
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/Gnuplot/. )
+ distutils-r1_python_install_all
+}
+# testsuite does NOT run unattended, so left out here
diff --git a/dev-python/gnuplot-py/metadata.xml b/dev-python/gnuplot-py/metadata.xml
new file mode 100644
index 00000000000..e9e18ed8005
--- /dev/null
+++ b/dev-python/gnuplot-py/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Gnuplot.py is a Python module that interfaces to gnuplot, the popular
+ plotting program. It allows you to use gnuplot from within Python to
+ plot arrays of data from memory, data files, or mathematical
+ functions. If you use Python to perform computations or as `glue' for
+ numerical programs, you can use this module to plot data on the fly as
+ they are computed. And the combination with Python makes it is easy to
+ automate things, including to create crude `animations' by plotting
+ different datasets one after another.
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">gnuplot-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
new file mode 100644
index 00000000000..392f7b8446e
--- /dev/null
+++ b/dev-python/google-api-python-client/Manifest
@@ -0,0 +1,2 @@
+DIST google-api-python-client-1.1.tar.gz 71178 SHA256 bc88cae1c40446f22d58923fc5a8dbac77da29d6efbe4ae2276cc2f30f724617 SHA512 750c482e90f83d0b2d53f7d655db9a476686158b5e380cab7a5e92af1b521b26871dcda08a2ee946cd09035f65ca50ad8dcffa8f766d3671fceae009fbdb831e WHIRLPOOL 62d2ebb7f51f58c76b45f748fe79b031cda5f11fd6088d8ea947e7ab9b9b754688e004773f99169cc65fdd2789002faa486bed7717fc07dea0b25994cbede0da
+DIST google-api-python-client-1.3.1.tar.gz 1480269 SHA256 5137c4d6e853cda1a2e32b7f1b1ce28b66f5d62e464d91386be22492c276b1f8 SHA512 385377bd99f006154f90bed2b6f55cb25786032d28ac7f15b9859882670cc8bf94acbfbd8485c4cf89abd665908f1a7f46f74e84f05faba992a62fe4b9fd5bd1 WHIRLPOOL cda6825e502738f6d3035e524494aadc159ac8d41ae12d3f682236f8c344dc41e2ecf03aee6b247233c5b9aa8c756ac8d598c98c95333dc8a8929901c3a82327
diff --git a/dev-python/google-api-python-client/google-api-python-client-1.1.ebuild b/dev-python/google-api-python-client/google-api-python-client-1.1.ebuild
new file mode 100644
index 00000000000..5fe49d1ce4a
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-1.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="http://code.google.com/p/google-api-python-client/"
+SRC_URI="https://google-api-python-client.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/python-gflags[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ !dev-python/oauth2client[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/google-api-python-client/google-api-python-client-1.3.1.ebuild b/dev-python/google-api-python-client/google-api-python-client-1.3.1.ebuild
new file mode 100644
index 00000000000..c69c013c3d5
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-1.3.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="http://code.google.com/p/google-api-python-client/ https://github.com/google/google-api-python-client"
+SRC_URI="https://github.com/google/google-api-python-client/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+DEPEND="
+ dev-python/python-gflags[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ dev-python/oauth2client[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/uritemplate[${PYTHON_USEDEP}]
+ "
+RDEPEND="${DEPEND}"
+
+python_prepare_all(){
+ export SKIP_GOOGLEAPICLIENT_COMPAT_CHECK=true
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests --verbosity=3 || die
+}
diff --git a/dev-python/google-api-python-client/metadata.xml b/dev-python/google-api-python-client/metadata.xml
new file mode 100644
index 00000000000..58bc67fd173
--- /dev/null
+++ b/dev-python/google-api-python-client/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">google/google-api-python-client</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/google-apitools/Manifest b/dev-python/google-apitools/Manifest
new file mode 100644
index 00000000000..62722205774
--- /dev/null
+++ b/dev-python/google-apitools/Manifest
@@ -0,0 +1,2 @@
+DIST google-apitools-0.4.6.tar.gz 122851 SHA256 1ff89a3b968e83b7fed87e43071decbffa6cfcf8a9adec4342708162b3018d54 SHA512 9b672776b72fba2edd30f2a9cf098dff352dda78075643d55b10187a0ee12e689982c920f76fe4d745ccab829e3ff1fd9818c306ffba20be93020748750e85b4 WHIRLPOOL abd70f06208e1d8b79cfa8b2cf5f01c40f0c520fbd744aa1bb400efd953fc151c0751045b29fdb9ab1610f995d75d640294444fd293a3e6f31fdf3255c0d4dfc
+DIST google-apitools-0.4.8.tar.gz 128587 SHA256 8d4009c5096cc1a8d9be73399bea678035d12c2e67e0d14dd9a9ceded8d771f7 SHA512 28570a050cb7e6c839e39f24908734696a72e05cdb6d84376faf637affd8bf116785411402eddccc1cfa692f753acd82c49ad04ccdce1e4aec66fe2b1b901320 WHIRLPOOL ec0cf908fe10e944199f4b677fd26f2099eb085261f7e2f2ff8441ab77f9cc2fe0fede9dd765fba8e47394f64e402e35fc0ad087af473992b35db665d67bc296
diff --git a/dev-python/google-apitools/google-apitools-0.4.6.ebuild b/dev-python/google-apitools/google-apitools-0.4.6.ebuild
new file mode 100644
index 00000000000..76ef34d211f
--- /dev/null
+++ b/dev-python/google-apitools/google-apitools-0.4.6.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="utilities to make it easier to build client-side tools, especially ones that use Google APIs"
+HOMEPAGE="https://github.com/google/apitools"
+SRC_URI="https://github.com/google/apitools/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ >=dev-python/oauth2client-1.4.8[${PYTHON_USEDEP}]
+ >=dev-python/protorpc-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/google-apputils-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/python-gflags-2.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/apitools-${PV}"
diff --git a/dev-python/google-apitools/google-apitools-0.4.8.ebuild b/dev-python/google-apitools/google-apitools-0.4.8.ebuild
new file mode 100644
index 00000000000..76ef34d211f
--- /dev/null
+++ b/dev-python/google-apitools/google-apitools-0.4.8.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="utilities to make it easier to build client-side tools, especially ones that use Google APIs"
+HOMEPAGE="https://github.com/google/apitools"
+SRC_URI="https://github.com/google/apitools/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ >=dev-python/oauth2client-1.4.8[${PYTHON_USEDEP}]
+ >=dev-python/protorpc-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/google-apputils-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/python-gflags-2.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/apitools-${PV}"
diff --git a/dev-python/google-apitools/metadata.xml b/dev-python/google-apitools/metadata.xml
new file mode 100644
index 00000000000..3916d6290c3
--- /dev/null
+++ b/dev-python/google-apitools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">google/apitools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/google-apputils/Manifest b/dev-python/google-apputils/Manifest
new file mode 100644
index 00000000000..c5ceafabb5a
--- /dev/null
+++ b/dev-python/google-apputils/Manifest
@@ -0,0 +1,2 @@
+DIST google-apputils-0.4.0.tar.gz 80014 SHA256 b260eb39f2723b71329ad016773033b95a31e89d8c9e13b8e6a1ef8eed8e94a3 SHA512 5dbbf50e9551b33d882557ef9385c64691dcff6d6c219c9ff6aea2dc73c8af6d03392b3088fe1fb4000979e227830a0e437dc347520488627657085c8ea23f5e WHIRLPOOL c52d3fb5a4b0a81f212f53e4e1c92efee1275415fdb6ac337bce18494cee5a9c319c07634f890187e3e9f6b7d9222da048dc484d18fde6727db569d7c579d27f
+DIST google-apputils-0.4.2.tar.gz 81095 SHA256 47959d0651c32102c10ad919b8a0ffe0ae85f44b8457ddcf2bdc0358fb03dc29 SHA512 d7579ec461292bb01ad5b8e1b09e161c66af0e85361f43f6065b837c90bddb9711a2d56db2b73d780dc25945375d4dad2f646507512b9acfeefd517613feacd4 WHIRLPOOL d5db6aeebb18b9b3a01dbb338095a3b3b90fc90c9cb2250f141e07426119dada1deb301f4d9c3580448709d329de86f7086e13a6ab479ab1e8da154d53f921bc
diff --git a/dev-python/google-apputils/google-apputils-0.4.0.ebuild b/dev-python/google-apputils/google-apputils-0.4.0.ebuild
new file mode 100644
index 00000000000..308acfad3f8
--- /dev/null
+++ b/dev-python/google-apputils/google-apputils-0.4.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 ) # Doesn't yet support py3
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of utilities for building Python applications"
+HOMEPAGE="http://code.google.com/p/google-apputils-python/"
+SRC_URI="http://google-apputils-python.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm ~arm64 ~ia64 ~m68k ~mips ~ppc64 ~s390 ~sh x86"
+IUSE="test"
+
+RDEPEND="dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-gflags[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/mox[${PYTHON_USEDEP}] )"
+# version borders needed are already confluent with versions in the tree
+
+python_prepare_all() {
+ # https://code.google.com/p/google-apputils-python/source/detail?r=12
+ # This version bordering is long out of date and wrong since end of March 2012!
+ sed -e 's:>=1.4,<2:>=1.4:' -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # These yield 2 fails which are in fact expected errors run from a shell script!
+ # They seemingly have no immediate mechanism to exit 0 in an expected fail style.
+ for test in tests/{app_test*.py,[b-s]*.py}
+ do
+ "${PYTHON}" $test || die "test failure under ${EPYTHON}"
+ done
+}
diff --git a/dev-python/google-apputils/google-apputils-0.4.2.ebuild b/dev-python/google-apputils/google-apputils-0.4.2.ebuild
new file mode 100644
index 00000000000..055a248b970
--- /dev/null
+++ b/dev-python/google-apputils/google-apputils-0.4.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 ) # Doesn't yet support py3
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of utilities for building Python applications"
+HOMEPAGE="https://github.com/google/google-apputils"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc64 ~s390 ~sh ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/python-dateutil-1.4[${PYTHON_USEDEP}]
+ >=dev-python/python-gflags-1.4[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2010[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} dev-python/mox[${PYTHON_USEDEP}] )"
+
+python_test() {
+ # These yield 2 fails which are in fact expected errors run from a shell script!
+ # They seemingly have no immediate mechanism to exit 0 in an expected fail style.
+ for test in tests/{app_test*.py,[b-s]*.py} ; do
+ "${PYTHON}" $test || die "test failure under ${EPYTHON}"
+ done
+}
diff --git a/dev-python/google-apputils/metadata.xml b/dev-python/google-apputils/metadata.xml
new file mode 100644
index 00000000000..f6092835c80
--- /dev/null
+++ b/dev-python/google-apputils/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">google/google-apputils</remote-id>
+ <remote-id type="pypi">google-apputils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/graph-tool/Manifest b/dev-python/graph-tool/Manifest
new file mode 100644
index 00000000000..ac27f6129db
--- /dev/null
+++ b/dev-python/graph-tool/Manifest
@@ -0,0 +1,6 @@
+DIST graph-tool-2.2.36.tar.bz2 15050904 SHA256 e1e030306480393464501cbcf3f3c938c2105c95fd0d67a8fe8bb4296e0be872 SHA512 3867fed367b547f28147c3234cf391d5415e5cf4594bc495abab1e1f827ba89af44d9d2bc92ee604ed184ce48f1644076aa852a0035fa2f8cdb449157d6b32bc WHIRLPOOL 741091c5504234767ed2662f69307aeaffb344ec132f708b494288d03485ff1910a967b244c35f5e7b77bad0564b249fd7b80ddb39051928f9806310c4d7843e
+DIST graph-tool-2.2.38.tar.bz2 15050391 SHA256 7b4181184acb28e02e0c013858d69f42af4d7a6ed3327521f8eccc0be538012c SHA512 d6a4299dc0df4dbf1485656f9c2bdc3c00f37d342b313af4116f00bfbf31c7d425873aa98e4361115985b87695080fcac6cc97e7930e6903d50a9d61ccf81e60 WHIRLPOOL c03f82fe6b151361c4b6f6979117dd35e2fe4913caacc1e3ca0749c38a7e8a3c6034a7dbd676294a3e23926e2b42c7ead9ab38b19f5d37b278a773971d8e1fc1
+DIST graph-tool-2.2.40.tar.bz2 15058030 SHA256 5ccf2f174663c02d0d8548254d29dbc7f652655d13c1902dafc587c9a1c156e7 SHA512 db3bcbc49d724185d2da8c636c9c7f0aaae39fcae8ca6454bbad1c893dd77ea96eca5512f338d1f06f6ea4ef181f88a8095c5b40493d63b22174fb0fde8bfe83 WHIRLPOOL eeb8eaa1fae59de3d4d1c360a465bdb5e443823e3c0b703e7edee82c81992f443a8a744fd41c83516ea025de5b72c6bf89032d5a458bb112e2e3ea34393f9e74
+DIST graph-tool-2.2.42.tar.bz2 15058831 SHA256 e975c0836a06d07aff2d4c54472de710566f061a97e9775085a7aa5741ab9888 SHA512 921f5c81a34a3ad0a83c2bc7c2c90befe220bbdfcf5ea005fa43bc1cc45dd66660b73b792ba8826f7b536ba4d446f9aeaa8ca721fcc6b7c4686e369f7b27f936 WHIRLPOOL ef598ba8751a2975cca053f89e8abf78461344c790e1b99849a1ca209af0c05e2d913d5fbd3e105422fa90eea77a874403da597689f11f17e4b37a1781871be8
+DIST graph-tool-2.2.43.tar.bz2 15041980 SHA256 c0ef941dc611fad5800c64417543e751f9edaeb511460ba06a43263c5b0efbd6 SHA512 d535fbfa3ea1dd37eebf95d5f7f051a928906a1c2d6a7763b651504dc9e3e2a6843e77c5a9bb64a2718077c270ef23398c64646377d8b735a90c64b051fa0121 WHIRLPOOL 773c7d7db03d95da056133693a882f976d0984950242b9b631818711205a9e6ad699e7a6ee777d5da16dc01446bfbe28175456b3667bef3bb63e99ce6c323696
+DIST graph-tool-2.2.44.tar.bz2 15044171 SHA256 42b97c24c155ddd95c79a16b4e3cb034cb3139e912c37aed66e6493e4ff20566 SHA512 312f3baf80a3c66d75f1ad458a2eb4b51300925beeac494e724e73589c06e93ce467a64da0cb26809b706cf69b398ab8ad1750d5e2b952f92b3bc00bd2e42467 WHIRLPOOL 79e04d4b4efb28bd99f45b64eb4297c408e35f1bdf78f6d756d52f44895cc9ae35f3c9c4450ca2a6f9232ebc0c4f57bc261495db7ec4ae2b542424a15777284d
diff --git a/dev-python/graph-tool/graph-tool-2.2.36-r1.ebuild b/dev-python/graph-tool/graph-tool-2.2.36-r1.ebuild
new file mode 100644
index 00000000000..bc0cfc00876
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-2.2.36-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="amd64 x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ local threads
+ has_version dev-libs/boost[threads] && threads="-mt"
+
+ configure() {
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo) \
+ --with-boost-python="${EPYTHON: -3}${threads}"
+ }
+ python_foreach_impl run_in_build_dir configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/graph-tool-2.2.36.ebuild b/dev-python/graph-tool/graph-tool-2.2.36.ebuild
new file mode 100644
index 00000000000..a27de3cc51c
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-2.2.36.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ python_foreach_impl run_in_build_dir \
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo)
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/graph-tool-2.2.38.ebuild b/dev-python/graph-tool/graph-tool-2.2.38.ebuild
new file mode 100644
index 00000000000..27251d5a78e
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-2.2.38.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ local threads
+ has_version dev-libs/boost[threads] && threads="-mt"
+
+ configure() {
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo) \
+ --with-boost-python="${EPYTHON: -3}${threads}"
+ }
+ python_foreach_impl run_in_build_dir configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/graph-tool-2.2.40.ebuild b/dev-python/graph-tool/graph-tool-2.2.40.ebuild
new file mode 100644
index 00000000000..b9081c3e818
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-2.2.40.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+# Bug #536734; configure sets boostlib 1.53.0 but 1.54.0 is required
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ local threads
+ has_version dev-libs/boost[threads] && threads="-mt"
+
+ configure() {
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo) \
+ --with-boost-python="${EPYTHON: -3}${threads}"
+ }
+ python_foreach_impl run_in_build_dir configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/graph-tool-2.2.42.ebuild b/dev-python/graph-tool/graph-tool-2.2.42.ebuild
new file mode 100644
index 00000000000..b9081c3e818
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-2.2.42.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+# Bug #536734; configure sets boostlib 1.53.0 but 1.54.0 is required
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ local threads
+ has_version dev-libs/boost[threads] && threads="-mt"
+
+ configure() {
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo) \
+ --with-boost-python="${EPYTHON: -3}${threads}"
+ }
+ python_foreach_impl run_in_build_dir configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/graph-tool-2.2.43.ebuild b/dev-python/graph-tool/graph-tool-2.2.43.ebuild
new file mode 100644
index 00000000000..b9081c3e818
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-2.2.43.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+# Bug #536734; configure sets boostlib 1.53.0 but 1.54.0 is required
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ local threads
+ has_version dev-libs/boost[threads] && threads="-mt"
+
+ configure() {
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo) \
+ --with-boost-python="${EPYTHON: -3}${threads}"
+ }
+ python_foreach_impl run_in_build_dir configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/graph-tool-2.2.44.ebuild b/dev-python/graph-tool/graph-tool-2.2.44.ebuild
new file mode 100644
index 00000000000..b9081c3e818
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-2.2.44.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+# Bug #536734; configure sets boostlib 1.53.0 but 1.54.0 is required
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ local threads
+ has_version dev-libs/boost[threads] && threads="-mt"
+
+ configure() {
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo) \
+ --with-boost-python="${EPYTHON: -3}${threads}"
+ }
+ python_foreach_impl run_in_build_dir configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/graph-tool-9999.ebuild b/dev-python/graph-tool/graph-tool-9999.ebuild
new file mode 100644
index 00000000000..118e0eaef12
--- /dev/null
+++ b/dev-python/graph-tool/graph-tool-9999.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit check-reqs toolchain-funcs python-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://git.skewed.de/count0/graph-tool.git"
+ inherit autotools git-r3
+else
+ SRC_URI="http://downloads.skewed.de/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="An efficient python module for manipulation and statistical analysis of graphs"
+HOMEPAGE="http://graph-tool.skewed.de/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="+cairo openmp"
+
+CDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.54.0[python,${PYTHON_USEDEP}]
+ dev-libs/expat
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=sci-mathematics/cgal-3.5
+ cairo? (
+ dev-cpp/cairomm
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-cpp/sparsehash
+ virtual/pkgconfig"
+
+# most machines don't have enough ram for parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+# bug 453544
+CHECKREQS_DISK_BUILD="6G"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+ check-reqs_pkg_pretend
+}
+
+src_prepare() {
+ [[ ${PV} == "9999" ]] && eautoreconf
+ >py-compile
+ python_copy_sources
+}
+
+src_configure() {
+ local threads
+ has_version dev-libs/boost[threads] && threads="-mt"
+
+ configure() {
+ econf \
+ --disable-static \
+ --disable-optimization \
+ $(use_enable openmp) \
+ $(use_enable cairo) \
+ --with-boost-python="${EPYTHON: -3}${threads}"
+ }
+ python_foreach_impl run_in_build_dir configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ # remove unwanted extra docs
+ rm -r "${ED}"/usr/share/doc/${PN} || die
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/graph-tool/metadata.xml b/dev-python/graph-tool/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/graph-tool/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/graphcanvas/Manifest b/dev-python/graphcanvas/Manifest
new file mode 100644
index 00000000000..1e2242b284c
--- /dev/null
+++ b/dev-python/graphcanvas/Manifest
@@ -0,0 +1 @@
+DIST graphcanvas-4.0.2.tar.gz 6998 SHA256 f0721ae540d6f725e9f74df8b074e772e53b970f86bdb897504c9bd57d634e13 SHA512 090e493627d3f5639a73a005f75da6357745ae3af6351f15cd8b82a6a742835932599b9c2e955de20dcb94333eb5263b25e553e3a522ae9292cf677ca805246d WHIRLPOOL ae7a529a97c9c26ad940766a60a8dc8e456698cf2626740e270df1f66bce3bc91f5aa516a5cd0bc38f54b078c2f940988da3da46c06f8c5654c5b6d0ff4cbe17
diff --git a/dev-python/graphcanvas/graphcanvas-4.0.2-r1.ebuild b/dev-python/graphcanvas/graphcanvas-4.0.2-r1.ebuild
new file mode 100644
index 00000000000..b4759516dee
--- /dev/null
+++ b/dev-python/graphcanvas/graphcanvas-4.0.2-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Enthought Tool Suite: Interactive Graph (network) Visualization"
+HOMEPAGE="http://pypi.python.org/pypi/graphcanvas"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+RDEPEND="dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/enable-4[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ docompress -x usr/share/doc/${PF}/examples/
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/graphcanvas/metadata.xml b/dev-python/graphcanvas/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/graphcanvas/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/graphy/Manifest b/dev-python/graphy/Manifest
new file mode 100644
index 00000000000..a9d274180e4
--- /dev/null
+++ b/dev-python/graphy/Manifest
@@ -0,0 +1 @@
+DIST graphy_1.0.tar.bz2 69099 SHA256 d51c726c7deb028304fe4745afebd5e4fcd012ef2ee214d971f902f5d321492b SHA512 39b85b21dd0e984a3b7895a090d6676d2fc12e629bcb5f2e486ad02b6cacdd57ab150c1aa4364cae571cd8e6fbca20b5744c079be532b6f4ea2668899c9932e3 WHIRLPOOL 1898814373bfcaf9f3e0ad2cd7441a2c23d1f279d573a4db389af8ca1b5154cc5dca40930362161d7f36b51292c53877a1d015550954c3956883ebea6548565c
diff --git a/dev-python/graphy/graphy-1.0-r1.ebuild b/dev-python/graphy/graphy-1.0-r1.ebuild
new file mode 100644
index 00000000000..8fc80588f60
--- /dev/null
+++ b/dev-python/graphy/graphy-1.0-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P=${PN}_${PV}
+
+DESCRIPTION="Simple Chart Library for Python"
+HOMEPAGE="http://code.google.com/p/graphy/"
+SRC_URI="http://${PN}.googlecode.com/files/${MY_P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="examples"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ esvn_clean
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ :
+}
+
+python_test() {
+ local PYTHONPATH
+ mkdir -p "${BUILD_DIR}"/lib || die
+ cp -r graphy "${BUILD_DIR}"/lib/ || die
+ "${PYTHON}" "${BUILD_DIR}"/lib/graphy/all_tests.py \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ python_domodule graphy
+ python_optimize
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/graphy/metadata.xml b/dev-python/graphy/metadata.xml
new file mode 100644
index 00000000000..d0b46a26e2c
--- /dev/null
+++ b/dev-python/graphy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">graphy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/greenlet/Manifest b/dev-python/greenlet/Manifest
new file mode 100644
index 00000000000..31bfb9f2c92
--- /dev/null
+++ b/dev-python/greenlet/Manifest
@@ -0,0 +1,6 @@
+DIST greenlet-0.4.2.zip 74404 SHA256 b160e556a22e16bae3f3f63ffce7898682c803cd896457192f7b54fe74fe991e SHA512 9596b740921e4a80bcb43adb725a7a4ea428dadc10ba55f8840837ba685b010c273a4a2bd62c5ba4bfdf27ce87c914a83714d762bacafb8e0a3cd7e2a9675992 WHIRLPOOL d65f1e30afb19d305ce3da884846e8f9f3e0222e02bff90f88f606dc0cc797efcab583069cf99be5b05520e0d98299319fef45bfd696050fc898868d233c23dd
+DIST greenlet-0.4.3.zip 76473 SHA256 c94f6c3d3e34d4900a277181619a5854cf5a331903f84160591e325d881659a6 SHA512 eaa43d4a2f3496f59fa7bbb6aba71ce1cc5099d4fb505844ba878a4d4feabab3045130a5f5b6cd37a1a47b3655fe9752c9e69022a4e78971035b14f493decbd2 WHIRLPOOL 7ae4995711b51bc0a154a3ec9314ed35d4a7c88eb0794a71cf72b048d2b3672e64e2af3ca04f2d6d9ccd02c0fa6df8fb218a830af41a9ba895aa43005060a3e6
+DIST greenlet-0.4.4.zip 76659 SHA256 935a76b7ad3c41846af26e136e2fd8ec763794cbc5b5fbc4b7b09d9a8de1d056 SHA512 e3e834d9cd3e00c4be22ebf4eed785ffd302b5e62feafe3e6ac13455a9a8c7249a1624bf76ff5f9d48489553767058fdea240ef7cc4e45cae39ce62c10aeb4e7 WHIRLPOOL d33d571b12be3e1eb0d856c7abc322e1bf032315f3e0c358d4265f3a3db2af9bff07458631c49295a9010fbe77a482ddcafa114b7f974601284761e4798a951b
+DIST greenlet-0.4.5.zip 77396 SHA256 b990f00f120c4cfb6672eec2acd32210990a2c7b70b815c034d1d8cbf08e2dbe SHA512 bdef004299e6d9ac457c0884aea69a882f7ee66135ea5da9a231c7f05024413db8ee5bc1e15c4bbc17379130eda5b38948662178fc34c00f96449a6ada6d3e78 WHIRLPOOL 01e06febe2537dd71478f5404d8f545df19af761b13fcd88c8edc1ab6e4a28da48183084800523d603ca9d58f74b7d675ec4f412b635af961be637f6a22a3f82
+DIST greenlet-0.4.6.zip 77759 SHA256 3000b5c4301a0285f914fd7bb2eb613279f7098000c8e2150b169abcad4c3393 SHA512 498721395bdc4612dd646ee7f384d7edba992dd10a31fccbdb67294e4f22b4890e79f7c509863943b8538c7a34bb4a64fbe6870fc84651f7fdf17654d47281ed WHIRLPOOL 02e84f9738fc899ac4dad40cb197648e1b36f3e10d451fb7963951f2a974af4071450b2c31eadaed6028c9d905557560e03688659efb6de0eaedf22336cb507e
+DIST greenlet-0.4.7.zip 77540 SHA256 f32c4fa4e06443e1bdb0d32b69e7617c25ff772c3ffc6d0aa63d192e9fd795fe SHA512 f2a080b9782bc3f91cf7971b97cb00b9d48d6021e01d413c96128ff32165fbd310ec8e9a1a00d03946e3c637162acd7eb6ebf44425580bd2e7511c3cd15fb192 WHIRLPOOL ac66424e329b8bc83e0c6d5c1aea3ddb237433505e8547916efaf13280a43f040a3f39e67e4b15164acb86f061180928acd29a8725dfb91427c52524fc13c91e
diff --git a/dev-python/greenlet/greenlet-0.4.2.ebuild b/dev-python/greenlet/greenlet-0.4.2.ebuild
new file mode 100644
index 00000000000..f3af886809e
--- /dev/null
+++ b/dev-python/greenlet/greenlet-0.4.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="http://pypi.python.org/pypi/greenlet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm -hppa ~ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" run-tests.py -n || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/greenlet/greenlet-0.4.3.ebuild b/dev-python/greenlet/greenlet-0.4.3.ebuild
new file mode 100644
index 00000000000..0da13efb882
--- /dev/null
+++ b/dev-python/greenlet/greenlet-0.4.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="http://pypi.python.org/pypi/greenlet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm -hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" run-tests.py -n || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/greenlet/greenlet-0.4.4.ebuild b/dev-python/greenlet/greenlet-0.4.4.ebuild
new file mode 100644
index 00000000000..0da13efb882
--- /dev/null
+++ b/dev-python/greenlet/greenlet-0.4.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="http://pypi.python.org/pypi/greenlet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm -hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" run-tests.py -n || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/greenlet/greenlet-0.4.5.ebuild b/dev-python/greenlet/greenlet-0.4.5.ebuild
new file mode 100644
index 00000000000..fc595473781
--- /dev/null
+++ b/dev-python/greenlet/greenlet-0.4.5.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="http://pypi.python.org/pypi/greenlet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm -hppa ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" run-tests.py -n || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/greenlet/greenlet-0.4.6.ebuild b/dev-python/greenlet/greenlet-0.4.6.ebuild
new file mode 100644
index 00000000000..9438a538909
--- /dev/null
+++ b/dev-python/greenlet/greenlet-0.4.6.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="http://pypi.python.org/pypi/greenlet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm -hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" run-tests.py -n || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/greenlet/greenlet-0.4.7.ebuild b/dev-python/greenlet/greenlet-0.4.7.ebuild
new file mode 100644
index 00000000000..9438a538909
--- /dev/null
+++ b/dev-python/greenlet/greenlet-0.4.7.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="http://pypi.python.org/pypi/greenlet/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm -hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" run-tests.py -n || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/greenlet/metadata.xml b/dev-python/greenlet/metadata.xml
new file mode 100644
index 00000000000..d2eecb33f08
--- /dev/null
+++ b/dev-python/greenlet/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">greenlet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/gst-python/Manifest b/dev-python/gst-python/Manifest
new file mode 100644
index 00000000000..94e920c089f
--- /dev/null
+++ b/dev-python/gst-python/Manifest
@@ -0,0 +1,3 @@
+DIST gst-python-0.10.22.tar.bz2 632651 SHA256 8f26f519a5bccd770864317e098e5e307fc5ad1201eb96329634b6508b253178 SHA512 bbbd6b661778cca990da0e216294d86da31a6e472049905989a3311459dd1227bf8f2ae3699a3cdbb66a16288569764352f1e1b93e696d3db4b0728bc38e5b12 WHIRLPOOL c6902554bc8f390b5d295d05598ee60fd6b2637d290125d83a48fc40bbd4e6e261a711430259831c96a30fee4c5ec5c89aea444424b117fb5d62c946b0263454
+DIST gst-python-1.2.1.tar.bz2 410887 SHA256 8823e5a9ffc51212df412652da44dc3f2a0e23295da769de2d111c770280efd4 SHA512 ed318d94831d34687224d82b84735984b946c6f33704e6bda56847b633af06212f394b709257007cec5d3a3597b200fbe6b19eade6b76e7855e8668c5ebc270e WHIRLPOOL 959e976c5a481367eb298d24eed4b3bf125d173662ff30cf02506906c88cd369259e0f5cb2bbd31bae31c39934b4a894d2eae13a5e411301f055aef030dcebbb
+DIST gst-python-1.4.0.tar.xz 350316 SHA256 b1e40c29ceb41b03f08d38aca6056054f0341d0706276326dceeec6ac8d53d3e SHA512 b970fd16a3b9d82f343fbf20642d165bff25fb815cfe20cc51db8c04c298a8fbd9b96f41811c2d26982eadf1f9a84495c70fbdad553778c68604f828e4773a94 WHIRLPOOL 248d91fc0aac1314c4f7b40866579601a8024c947a29a90b5b6c3585358984f1a50eb6d56aec26609d37fc9144fdf38d5edd7ad61364481d25b7cebfaeff1a96
diff --git a/dev-python/gst-python/files/gst-python-0.10.9-lazy.patch b/dev-python/gst-python/files/gst-python-0.10.9-lazy.patch
new file mode 100644
index 00000000000..880d5508b2e
--- /dev/null
+++ b/dev-python/gst-python/files/gst-python-0.10.9-lazy.patch
@@ -0,0 +1,21 @@
+diff -ur gst-python-0.10.9.orig/configure.ac gst-python-0.10.9/configure.ac
+--- gst-python-0.10.9.orig/configure.ac 2007-11-28 11:33:05.000000000 +0200
++++ gst-python-0.10.9/configure.ac 2007-11-28 18:09:48.000000000 +0200
+@@ -363,6 +363,17 @@
+
+ AG_GST_VALGRIND_CHECK
+
++AC_MSG_CHECKING([whether $LD accepts -z,lazy])
++case `$LD -z,lazy -v 2>&1 </dev/null` in
++*GNU* | *'with BFD'*)
++ LDFLAGS="$LDFLAGS -Wl,-z,lazy"
++ AC_MSG_RESULT([yes])
++ ;;
++*)
++ AC_MSG_RESULT([no])
++ ;;
++esac
++
+ AC_OUTPUT([
+ Makefile
+ codegen/Makefile
diff --git a/dev-python/gst-python/gst-python-0.10.22-r1.ebuild b/dev-python/gst-python/gst-python-0.10.22-r1.ebuild
new file mode 100644
index 00000000000..3eb77441ba0
--- /dev/null
+++ b/dev-python/gst-python/gst-python-0.10.22-r1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils python-r1 virtualx
+
+DESCRIPTION="A Python Interface to GStreamer"
+HOMEPAGE="http://gstreamer.freedesktop.org/"
+SRC_URI="http://gstreamer.freedesktop.org/src/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0.10"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="examples test"
+
+RDEPEND="
+ dev-libs/libxml2
+ >=dev-python/pygobject-2.28:2[${PYTHON_USEDEP}]
+ >=media-libs/gstreamer-0.10.32:0.10
+ >=media-libs/gst-plugins-base-0.10.32:0.10
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? (
+ media-plugins/gst-plugins-ogg:0.10
+ !!media-plugins/gst-plugins-ivorbis:0.10
+ media-plugins/gst-plugins-vorbis:0.10
+ )" # tests a "audiotestsrc ! vorbisenc ! oggmux ! fakesink" pipeline
+# XXX: it looks like tests cannot be bothered with two vorbisdec implementations
+
+src_prepare() {
+ # FIXME: this comments out the only failing test, report to upstream
+ sed -e '171,176 s/^\(.*\)$/#\1/' \
+ -i testsuite/test_bin.py || die
+
+ # Leave examples alone
+ sed -e 's/\(SUBDIRS = .*\)examples/\1/' \
+ -i Makefile.am Makefile.in || die
+
+ sed \
+ -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' \
+ -i configure.ac || die
+
+ epatch "${FILESDIR}"/${PN}-0.10.9-lazy.patch
+ AT_M4DIR="common/m4" eautoreconf
+
+ prepare_gst() {
+ mkdir -p "${BUILD_DIR}" || die
+ }
+ python_foreach_impl prepare_gst
+}
+
+src_configure() {
+ configure_gst() {
+ ECONF_SOURCE="${S}" econf
+ }
+ python_foreach_impl run_in_build_dir configure_gst
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_test() {
+ LC_ALL="C" GST_REGISTRY="${T}/registry.cache.xml" python_foreach_impl run_in_build_dir Xemake check
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+
+ dodoc AUTHORS ChangeLog NEWS README TODO
+
+ if use examples; then
+ docinto examples
+ dodoc examples/*
+ fi
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/gst-python/gst-python-1.2.1.ebuild b/dev-python/gst-python/gst-python-1.2.1.ebuild
new file mode 100644
index 00000000000..b2da6fdcd23
--- /dev/null
+++ b/dev-python/gst-python/gst-python-1.2.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1
+
+DESCRIPTION="A Python Interface to GStreamer"
+HOMEPAGE="http://gstreamer.freedesktop.org/"
+SRC_URI="http://gstreamer.freedesktop.org/src/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="1.0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="test" #examples , bug #506962
+
+RDEPEND="
+ dev-libs/libxml2
+ >=dev-python/pygobject-3:3[${PYTHON_USEDEP}]
+ >=media-libs/gstreamer-1.2:1.0
+ >=media-libs/gst-plugins-base-1.2:1.0
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+# XXX: unittests are not ported to 1.0 yet.
+
+src_prepare() {
+ # Leave examples alone
+ sed -e 's/\(SUBDIRS = .*\)examples/\1/' \
+ -i Makefile.am Makefile.in || die
+
+ prepare_gst() {
+ mkdir -p "${BUILD_DIR}" || die
+ }
+ python_foreach_impl prepare_gst
+}
+
+src_configure() {
+ ECONF_SOURCE="${S}" python_foreach_impl run_in_build_dir econf
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+ einstalldocs
+
+# if use examples; then
+# docinto examples
+# dodoc examples/*
+# fi
+}
diff --git a/dev-python/gst-python/gst-python-1.4.0.ebuild b/dev-python/gst-python/gst-python-1.4.0.ebuild
new file mode 100644
index 00000000000..f878a637716
--- /dev/null
+++ b/dev-python/gst-python/gst-python-1.4.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1
+
+DESCRIPTION="A Python Interface to GStreamer"
+HOMEPAGE="http://gstreamer.freedesktop.org/"
+SRC_URI="http://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2"
+SLOT="1.0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="test"
+
+RDEPEND="
+ dev-libs/libxml2
+ >=dev-python/pygobject-3:3[${PYTHON_USEDEP}]
+ >=media-libs/gstreamer-1.4:1.0
+ >=media-libs/gst-plugins-base-1.4:1.0
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+# XXX: unittests are not ported to 1.0 yet.
+
+src_prepare() {
+ prepare_gst() {
+ mkdir -p "${BUILD_DIR}" || die
+ }
+ python_foreach_impl prepare_gst
+}
+
+src_configure() {
+ ECONF_SOURCE="${S}" python_foreach_impl run_in_build_dir econf
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir default
+ prune_libtool_files --modules
+ einstalldocs
+}
diff --git a/dev-python/gst-python/metadata.xml b/dev-python/gst-python/metadata.xml
new file mode 100644
index 00000000000..dec0396a21e
--- /dev/null
+++ b/dev-python/gst-python/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gstreamer</herd>
+</pkgmetadata>
diff --git a/dev-python/gtkspell-python/Manifest b/dev-python/gtkspell-python/Manifest
new file mode 100644
index 00000000000..2fc6771cd4c
--- /dev/null
+++ b/dev-python/gtkspell-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-extras-2.25.3.tar.bz2 370489 SHA256 ca346264e00e193f0866cabd8801d3b7ce70dae7b8b296e41e5b3a45c9b0275c SHA512 6994b8b5d6ccc009edc7ddfad373b9164d8162f1007972652f6086dca30cac6941ab68ef467d15c972ab05c4ae0e19ec72edc2643636d22a01a3f5a719251467 WHIRLPOOL b0adfcef8bbb978d063a932393e17de9c8c519194f40085ecd03824ec4fb4421c84e0a4853a5a2d9fc40c94d8c0c261828447ac5fd69cff4ece39c52fc833590
diff --git a/dev-python/gtkspell-python/files/gtkspell-python-2.25.3-python-libs.patch b/dev-python/gtkspell-python/files/gtkspell-python-2.25.3-python-libs.patch
new file mode 100644
index 00000000000..ab691272cbb
--- /dev/null
+++ b/dev-python/gtkspell-python/files/gtkspell-python-2.25.3-python-libs.patch
@@ -0,0 +1,59 @@
+From 7824fd5291f570de3c2c64185035d1a6a0a3445a Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Mon, 13 Aug 2012 04:42:47 -0400
+Subject: [PATCH] Replace horrible slow python libs search
+
+---
+ acinclude.m4 | 36 ++----------------------------------
+ 1 files changed, 2 insertions(+), 34 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 8694a65..f5373eb 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -59,40 +59,8 @@ $1],dnl
+ [AC_MSG_RESULT(not found)
+ $2])
+ CPPFLAGS="$save_CPPFLAGS"
+-
+- # This bit is copied from Planner. murrayc.
+- # Check for Python library path
+- AC_MSG_CHECKING([for Python library path])
+-
+- # Win32 has libpython25.a instead of libpython2.5.a, so we look
+- # for both. TODO: Only look for libpython25.a on Windows, and for
+- # libpython2.5.a on unix.
+- WIN32_PYTHON_VERSION=`echo $PYTHON_VERSION | sed "s,\.,,"`
+-
+- python_path=`dirname $PYTHON | sed "s,/bin.*$,,"`
+- for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
+- if test -e "$i"; then
+- python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
+- if test -n "$python_path" ; then
+- python_lib="python$PYTHON_VERSION"
+- break
+- fi
+-
+- # Additionally test WIN32_PYTHON_VERSION
+- python_path=`find $i -type f -name libpython$WIN32_PYTHON_VERSION.* -print | sed "1q"`
+- if test -n "$python_path" ; then
+- python_lib="python$WIN32_PYTHON_VERSION"
+- break
+- fi
+- fi
+- done
+-
+- python_path=`echo $python_path | sed "s,/libpython.*$,,"`
+- AC_MSG_RESULT([$python_path])
+- if test -z "$python_path" ; then
+- AC_MSG_ERROR([cannot find Python library path])
+- fi
+- AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -l$python_lib"])
++PYTHON_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; print('-L%s -lpython${PYTHON_VERSION}' % distutils.sysconfig.get_config_var('LIBDIR'))"`
++AC_SUBST([PYTHON_LDFLAGS],["$PYTHON_LDFLAGS"])
+ ])
+
+ dnl
+--
+1.7.8.6
+
diff --git a/dev-python/gtkspell-python/gtkspell-python-2.25.3-r1.ebuild b/dev-python/gtkspell-python/gtkspell-python-2.25.3-r1.ebuild
new file mode 100644
index 00000000000..3693c8c93e6
--- /dev/null
+++ b/dev-python/gtkspell-python/gtkspell-python-2.25.3-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python-extras"
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils gnome-python-common-r1
+
+DESCRIPTION="GtkSpell bindings for Python"
+# The LICENSE with gtkspell-3 is LGPL and there is no way to express this in
+# an ebuild, currently. Punt till we actually have to face the issue.
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="doc examples"
+
+RDEPEND="app-text/gtkspell:2"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ gnome-base/gnome-common"
+# eautoreconf needs gnome-base/gnome-common
+
+EXAMPLES=( examples/gtkspell/. )
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-python-libs.patch" #344231
+ sed -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" -i configure.ac || die
+ eautoreconf
+ gnome-python-common-r1_src_prepare
+}
diff --git a/dev-python/gtkspell-python/metadata.xml b/dev-python/gtkspell-python/metadata.xml
new file mode 100644
index 00000000000..9b1bc26a9df
--- /dev/null
+++ b/dev-python/gtkspell-python/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/guessit/Manifest b/dev-python/guessit/Manifest
new file mode 100644
index 00000000000..1cfabb72a68
--- /dev/null
+++ b/dev-python/guessit/Manifest
@@ -0,0 +1,4 @@
+DIST guessit-0.5.4.tar.gz 93050 SHA256 2c4b2c3c703485a03794746a496fae69f1da5d8c9eaf08b8e9571515704b69b0 SHA512 353f45a80726edc6978be3707916a4919c140f2304668f7e1e9453fb1c225f83e9f19a317b8b3eafff449a41fd959fceeb6eecc7021862f856a34cd9608c170c WHIRLPOOL 3465f5dd0d029d2252930c7ceebf963b85466374912919500a15258707a10faa5379a91d23ba81204324895fb37de9e1ced8c6daa6ed12e46258b82319de856a
+DIST guessit-0.6.2.tar.gz 123216 SHA256 27d6dfa29f01f4897688d04d94d58298b4e1b94163d8ff72646be59bed5ab6db SHA512 0c9340c0755ef91ce432ed80a0131659f23489e57092270b2acc433b74930bb3b3759959ab5cb3547c10b6011e2f52db56feffd8e7ec7bc6e31fdcd1d786b8f9 WHIRLPOOL fd86094931d3a309363a8abf739152062ef854997ee2c0a17ef85fb1a1afb9fe82a8db299be5da075a62ca6542b5ab31e9c87a6f9aed0be6f1df49550e39b157
+DIST guessit-0.7.1.tar.gz 1177369 SHA256 4315afd516ff824a1ccd857a43b74fb2f0f1b794f8049685eae72d6e64d8dc92 SHA512 ce30496852eeb46f6e49744e6f3a32045145da27226a7520a12ce911289ff45be5c704899377bd4b708867205dd230a9a464bc4d11d6dc1beec334054603be9e WHIRLPOOL c96f7740b8a0ae026d986f367bb3b4665e915ed83edb547db135cdf2acbf3f1faae8a43f5ef0e509faf7e856c3db59d01a8a17008ebbddfcf8af22e5e5d79483
+DIST guessit-0.9.3.tar.gz 1194884 SHA256 0fd4bee04214dc0474089ac6fed3c9e64b8c635085681b911834f9b0bb074b81 SHA512 ae2939433a8642f3a6579ccb5247bfb0eda68959a4449a4134fbefdab8572ccfa1fefed90783b82505acdf67006a11bfeef5d05ee7787da2cd44e4f447472513 WHIRLPOOL e01cb8acb1d7d6dafa896e14a9eaa968039bbcebf4ce31b63c28438c4b96ea004fd94a6527747c8dc10dbfef8bcaea3c82dec68eb1dbb384e8406306c81bacbd
diff --git a/dev-python/guessit/files/guessit-0.5.4-python3.patch b/dev-python/guessit/files/guessit-0.5.4-python3.patch
new file mode 100644
index 00000000000..954c7154a08
--- /dev/null
+++ b/dev-python/guessit/files/guessit-0.5.4-python3.patch
@@ -0,0 +1,30 @@
+From 93f4fe97f664c207e769186fe79961bf5a998447 Mon Sep 17 00:00:00 2001
+From: Nicolas Wack <wackou@gmail.com>
+Date: Thu, 25 Apr 2013 16:05:05 +0200
+Subject: [PATCH] Fixed some unicode issues when reading files from disk
+
+---
+ guessit/fileutils.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/guessit/fileutils.py b/guessit/fileutils.py
+index 2fca6b7..dc077e6 100644
+--- a/guessit/fileutils.py
++++ b/guessit/fileutils.py
+@@ -22,6 +22,7 @@
+ from guessit import s, u
+ import os.path
+ import zipfile
++import io
+
+
+ def split_path(path):
+@@ -84,4 +85,4 @@ def load_file_in_same_dir(ref_file, filename):
+ zfile = zipfile.ZipFile(zfilename)
+ return zfile.read('/'.join(path[i + 1:]))
+
+- return u(open(os.path.join(*path)).read())
++ return u(io.open(os.path.join(*path), encoding='utf-8').read())
+--
+1.8.1.6
+
diff --git a/dev-python/guessit/files/guessit-0.5.4-tests.patch b/dev-python/guessit/files/guessit-0.5.4-tests.patch
new file mode 100644
index 00000000000..50d8f579e47
--- /dev/null
+++ b/dev-python/guessit/files/guessit-0.5.4-tests.patch
@@ -0,0 +1,172 @@
+From 409218bc3d5b62e4f3e37aa57126cd628a34bd21 Mon Sep 17 00:00:00 2001
+From: Nicolas Wack <wackou@gmail.com>
+Date: Fri, 19 Apr 2013 22:08:38 +0200
+Subject: [PATCH] Allow to run tests using "python setup.py test"; fixed
+ autodetect_all test target
+
+---
+ fabfile.py | 1 +
+ setup.py | 3 ++-
+ tests/__init__.py | 0
+ tests/guessittest.py | 19 ++++++++++++-------
+ tests/test_autodetect.py | 2 +-
+ tests/test_autodetect_all.py | 12 ++++++++----
+ 6 files changed, 24 insertions(+), 13 deletions(-)
+ create mode 100644 tests/__init__.py
+
+diff --git a/fabfile.py b/fabfile.py
+index 5b2c9fe..d8c4112 100644
+--- a/fabfile.py
++++ b/fabfile.py
+@@ -25,6 +25,7 @@ def run(self):
+ test_ep = TestTask('episode', 'episodes')
+ test_movie = TestTask('movie', 'movies')
+ test_auto = TestTask('autodetect', 'autodetected files')
++test_auto_all = TestTask('autodetect_all', 'all files using autodetected type')
+ test_lang = TestTask('language', 'languages')
+ test_utils = TestTask('utils', 'utility functions')
+ test_matchtree = TestTask('matchtree', 'MatchTree')
+diff --git a/setup.py b/setup.py
+index deee110..81f907d 100644
+--- a/setup.py
++++ b/setup.py
+@@ -65,7 +65,8 @@
+ include_package_data=True,
+ install_requires = requires,
+ entry_points=entry_points,
+- extras_require = { 'language_detection': ['guess-language>=0.2'] }
++ extras_require = { 'language_detection': ['guess-language>=0.2'] },
++ test_suite = 'tests'
+ )
+
+
+diff --git a/tests/__init__.py b/tests/__init__.py
+new file mode 100644
+index 0000000..e69de29
+diff --git a/tests/guessittest.py b/tests/guessittest.py
+index c56b6ca..cfeaef0 100644
+--- a/tests/guessittest.py
++++ b/tests/guessittest.py
+@@ -21,7 +21,7 @@
+ from __future__ import unicode_literals
+ from guessit import base_text_type, u
+ from guessit.slogging import setupLogging
+-from unittest import *
++from unittest import TestCase, TestLoader, TextTestRunner
+
+ import yaml, logging, sys, os
+ from os.path import *
+@@ -58,20 +58,25 @@ def allTests(testClass):
+
+ class TestGuessit(TestCase):
+
+-
+-
+- def checkMinimumFieldsCorrect(self, filetype, filename, removeType=True):
++ def checkMinimumFieldsCorrect(self, filetype, filename, remove_type=True,
++ exclude_files=None):
+ groundTruth = yaml.load(load_file_in_same_dir(__file__, filename))
+ def guess_func(string):
+ return guess_file_info(string, filetype=filetype)
+
+- return self.checkFields(groundTruth, guess_func, removeType)
++ return self.checkFields(groundTruth, guess_func, remove_type, exclude_files)
+
+- def checkFields(self, groundTruth, guess_func, removeType=True):
++
++ def checkFields(self, groundTruth, guess_func, remove_type=True,
++ exclude_files=None):
+ correct, total = 0, 0
++ exclude_files = exclude_files or []
+
+ for filename, required_fields in groundTruth.items():
+ filename = u(filename)
++ if filename in exclude_files:
++ continue
++
+ log.debug('\n' + '-' * 120)
+ log.info('Guessing information for file: %s' % filename)
+
+@@ -85,7 +90,7 @@ def error(*args):
+ is_incomplete[0] = True
+
+ # no need for these in the unittests
+- if removeType:
++ if remove_type:
+ try:
+ del found['type']
+ except:
+diff --git a/tests/test_autodetect.py b/tests/test_autodetect.py
+index 1e0fd9d..e654afb 100644
+--- a/tests/test_autodetect.py
++++ b/tests/test_autodetect.py
+@@ -25,7 +25,7 @@ class TestAutoDetect(TestGuessit):
+ def testAutoDetect(self):
+ self.checkMinimumFieldsCorrect(filetype='autodetect',
+ filename='autodetect.yaml',
+- removeType=False)
++ remove_type=False)
+
+
+ suite = allTests(TestAutoDetect)
+diff --git a/tests/test_autodetect_all.py b/tests/test_autodetect_all.py
+index 6aa1704..cfd3463 100644
+--- a/tests/test_autodetect_all.py
++++ b/tests/test_autodetect_all.py
+@@ -18,23 +18,27 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #
+
+-
++from __future__ import unicode_literals
+ from guessittest import *
+
++IGNORE_EPISODES = [ 'finale ' ]
++IGNORE_MOVIES = []
+
+ class TestAutoDetectAll(TestGuessit):
+ def testAutoMatcher(self):
+ self.checkMinimumFieldsCorrect(filetype='autodetect',
+ filename='autodetect.yaml',
+- removeType=False)
++ remove_type=False)
+
+ def testAutoMatcherMovies(self):
+ self.checkMinimumFieldsCorrect(filetype='autodetect',
+- filename='movies.yaml')
++ filename='movies.yaml',
++ exclude_files=IGNORE_MOVIES)
+
+ def testAutoMatcherEpisodes(self):
+ self.checkMinimumFieldsCorrect(filetype='autodetect',
+- filename='episodes.yaml')
++ filename='episodes.yaml',
++ exclude_files=IGNORE_EPISODES)
+
+
+ suite = allTests(TestAutoDetectAll)
+--
+1.8.1.6
+
+Added by maksbotan@gentoo.org, to be upstreamed
+
+diff -ur /var/tmp/portage/dev-python/guessit-0.5.4/work/guessit-0.5.4/tests/test_language.py guessit-0.5.4/tests/test_language.py
+--- /var/tmp/portage/dev-python/guessit-0.5.4/work/guessit-0.5.4/tests/test_language.py 2013-02-11 03:49:53.000000000 +0400
++++ guessit-0.5.4/tests/test_language.py 2013-04-25 18:41:22.000000000 +0400
+@@ -20,6 +20,7 @@
+
+ from __future__ import unicode_literals
+ from guessittest import *
++import io
+
+ class TestLanguage(TestGuessit):
+
+@@ -81,7 +82,7 @@
+
+ def test_opensubtitles(self):
+ opensubtitles_langfile = file_in_same_dir(__file__, 'opensubtitles_languages_2012_05_09.txt')
+- langs = [ u(l).strip().split('\t') for l in open(opensubtitles_langfile) ][1:]
++ langs = [ u(l).strip().split('\t') for l in io.open(opensubtitles_langfile, encoding="utf8") ][1:]
+ for lang in langs:
+ # check that we recognize the opensubtitles language code correctly
+ # and that we are able to output this code from a language
diff --git a/dev-python/guessit/guessit-0.5.4.ebuild b/dev-python/guessit/guessit-0.5.4.ebuild
new file mode 100644
index 00000000000..69b09520351
--- /dev/null
+++ b/dev-python/guessit/guessit-0.5.4.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library that tries to extract as much information as possible from a filename"
+HOMEPAGE="http://guessit.readthedocs.org/"
+SRC_URI="https://github.com/wackou/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-python3.patch
+ "${FILESDIR}"/${P}-tests.patch
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ #Patch fails to create this file, so use touch
+ touch tests/__init__.py || die
+}
+
+python_test() {
+ PYTHONPATH="${S}/tests" esetup.py test
+}
diff --git a/dev-python/guessit/guessit-0.6.2.ebuild b/dev-python/guessit/guessit-0.6.2.ebuild
new file mode 100644
index 00000000000..f6b015020a0
--- /dev/null
+++ b/dev-python/guessit/guessit-0.6.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="library for guessing information from video files"
+HOMEPAGE="http://guessit.readthedocs.org https://github.com/wackou/guessit https://pypi.python.org/pypi/guessit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# FIXME fails tests with python-3.3.2-r2
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/guessit/guessit-0.7.1.ebuild b/dev-python/guessit/guessit-0.7.1.ebuild
new file mode 100644
index 00000000000..86c8b75442e
--- /dev/null
+++ b/dev-python/guessit/guessit-0.7.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="library for guessing information from video files"
+HOMEPAGE="http://guessit.readthedocs.org https://github.com/wackou/guessit https://pypi.python.org/pypi/guessit"
+SRC_URI="https://github.com/wackou/guessit/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/babelfish-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/guessit/guessit-0.9.3.ebuild b/dev-python/guessit/guessit-0.9.3.ebuild
new file mode 100644
index 00000000000..95c96f4b51e
--- /dev/null
+++ b/dev-python/guessit/guessit-0.9.3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="library for guessing information from video files"
+HOMEPAGE="http://guessit.readthedocs.org https://github.com/wackou/guessit https://pypi.python.org/pypi/guessit"
+SRC_URI="https://github.com/wackou/guessit/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/babelfish-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/guessit/guessit-9999.ebuild b/dev-python/guessit/guessit-9999.ebuild
new file mode 100644
index 00000000000..feb5e9ef4dd
--- /dev/null
+++ b/dev-python/guessit/guessit-9999.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+EGIT_REPO_URI="https://github.com/wackou/guessit.git"
+
+inherit distutils-r1 git-r3
+
+DESCRIPTION="library for guessing information from video files"
+HOMEPAGE="http://guessit.readthedocs.org https://github.com/wackou/guessit https://pypi.python.org/pypi/guessit"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/babelfish-0.5.3[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/guessit/metadata.xml b/dev-python/guessit/metadata.xml
new file mode 100644
index 00000000000..68d66612142
--- /dev/null
+++ b/dev-python/guessit/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>nikoli@gmx.us</email>
+ <name>Nikoli</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">guessit</remote-id>
+ <remote-id type="github">wackou/guessit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/guppy/Manifest b/dev-python/guppy/Manifest
new file mode 100644
index 00000000000..74dbfccd2b3
--- /dev/null
+++ b/dev-python/guppy/Manifest
@@ -0,0 +1 @@
+DIST guppy-0.1.10.tar.gz 484906 SHA256 00118c000e451063ea16bb6a3b52632d10960c44c0014553c287dce5c03813df SHA512 ea48fd19d7fe9a24832364599b8843304e95ccd1ccf3a9a475456ba25af2a4be94991dcb61deb854b740c2358d280579e756177236b3c73cb0de100bdf0286ce WHIRLPOOL 81b23d17f66d012865627d3f44edd89e63897d0a5e00b7e98d76d5abed3e4c296a1ab00b7dba32f02f0df7fb460c39c0672d6bc157cd74c478b39a87fb4d199c
diff --git a/dev-python/guppy/files/guppy-0.1.9-rm_BrokenTests.patch b/dev-python/guppy/files/guppy-0.1.9-rm_BrokenTests.patch
new file mode 100644
index 00000000000..fabbe4cda51
--- /dev/null
+++ b/dev-python/guppy/files/guppy-0.1.9-rm_BrokenTests.patch
@@ -0,0 +1,57 @@
+diff -ur guppy-0.1.9.orig/guppy/sets/test.py guppy-0.1.9/guppy/sets/test.py
+--- guppy/sets/test.py 2009-06-23 21:48:32.000000000 +0800
++++ guppy/sets/test.py 2012-11-07 16:59:38.383392670 +0800
+@@ -4,6 +4,11 @@
+ # so wouldn't check so much with python -O.
+
+ import gc, random, sys
++if sys.version_info[:2] == (2, 7):
++ import unittest
++else:
++ import unittest2 as unittest
++
+ try:
+ import numpy.random
+ except ImportError:
+@@ -211,6 +211,7 @@
+
+ '.nython off'
+
++@unittest.skip("Class broken")
+ class Test:
+ faster = 1 # Set to 1 if test should be faster (less exhaustive) than normally
+
+diff -ur guppy-0.1.9.orig/guppy/heapy/test/test_View.py guppy-0.1.9/guppy/heapy/test/test_View.py
+--- guppy/heapy/test/test_View.py 2009-06-12 18:20:53.000000000 +0800
++++ guppy/heapy/test/test_View.py 2012-11-07 17:23:52.289280501 +0800
+@@ -1,4 +1,11 @@
+ from guppy.heapy.test import support
++import sys
++
++if sys.version_info[:2] == (2, 7):
++ import unittest
++else:
++ import unittest2 as unittest
++
+ class TestCase(support.TestCase):
+ def setUp(self):
+ support.TestCase.setUp(self)
+@@ -55,6 +55,7 @@
+ p = iso(z).referents.indisize
+ self.aseq(p, iso(y).indisize)
+
++ @unittest.skip("broken test")
+ def test_horizon(self):
+ iso = self.iso
+ h = self.View.horizon()
+diff -ur guppy-0.1.9.orig/guppy/heapy/test/test_all.py guppy-0.1.9/guppy/heapy/test/test_all.py
+--- guppy/heapy/test/test_all.py 2009-06-18 21:44:11.000000000 +0800
++++ guppy/heapy/test/test_all.py 2012-11-07 17:34:04.036233306 +0800
+@@ -1,7 +1,6 @@
+ import sys
+
+ autotests = (
+- 'dependencies',
+ 'Classifiers',
+ 'heapyc',
+ 'ER',
diff --git a/dev-python/guppy/guppy-0.1.10-r1.ebuild b/dev-python/guppy/guppy-0.1.10-r1.ebuild
new file mode 100644
index 00000000000..90e52f887f3
--- /dev/null
+++ b/dev-python/guppy/guppy-0.1.10-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Guppy-PE -- A Python Programming Environment"
+HOMEPAGE="http://guppy-pe.sourceforge.net/ http://pypi.python.org/pypi/guppy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${PN}-0.1.9-rm_BrokenTests.patch )
+
+python_prepare_all() {
+ sed -e 's:_PyLong_AsScaledDouble:_PyLong_Frexp:' -i src/sets/bitset.c || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ "${PYTHON}" setup.py build install --home="${T}/test-${EPYTHON}" \
+ || die "Installation of tests failed"
+ pushd "${T}/test-${EPYTHON}/lib/python" > /dev/null
+ "${PYTHON}" guppy/heapy/test/test_all.py || die "tests failed"
+ popd > /dev/null
+}
+
+python_install_all() {
+ # leave the html docs for install as the setup.py dictates but rm if set by IUSE doc
+ if use doc; then
+ local HTML_DOCS=( guppy/doc/. )
+ find "${D}$(python_get_sitedir)" -name doc | xargs rm -rf
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/guppy/metadata.xml b/dev-python/guppy/metadata.xml
new file mode 100644
index 00000000000..65906dfb11c
--- /dev/null
+++ b/dev-python/guppy/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Guppy-PE is a programming environment providing object and heap memory
+ sizing, profiling and analysis. It includes a prototypical
+ specification language that can be used to formally specify aspects of
+ Python programs and generate tests and documentation from a common
+ source.</longdescription>
+ <upstream>
+ <remote-id type="pypi">guppy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/guzzle_sphinx_theme/Manifest b/dev-python/guzzle_sphinx_theme/Manifest
new file mode 100644
index 00000000000..211d3c9108c
--- /dev/null
+++ b/dev-python/guzzle_sphinx_theme/Manifest
@@ -0,0 +1 @@
+DIST guzzle_sphinx_theme-0.7.10.tar.gz 225764 SHA256 d0ddb986fbb70c00d84c628ff520ed3d64bdb0e876487e896dae1ece048a8e08 SHA512 a21867e93ffc80e91b85a0fc33cedb21ba9e1d2912b6d5d6226e5ec93550564a1a9321eae09aaaddb61f36ce051017c33b750c52d609cd604a5cc4bf8ce5248f WHIRLPOOL 99b96d26f744fa3a8e7a7b480d617ec9bb47ca3b3330d5a4b3439ad7cae3b846b29e031dc9f7640066fd1c7542a03f044029e1c5cf0cd88341988218b561fc42
diff --git a/dev-python/guzzle_sphinx_theme/guzzle_sphinx_theme-0.7.10.ebuild b/dev-python/guzzle_sphinx_theme/guzzle_sphinx_theme-0.7.10.ebuild
new file mode 100644
index 00000000000..6cc7fb02c7b
--- /dev/null
+++ b/dev-python/guzzle_sphinx_theme/guzzle_sphinx_theme-0.7.10.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx theme used by Guzzle."
+HOMEPAGE="https://github.com/guzzle/guzzle_sphinx_theme"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/sphinx-1.2[${PYTHON_USEDEP}]"
diff --git a/dev-python/guzzle_sphinx_theme/metadata.xml b/dev-python/guzzle_sphinx_theme/metadata.xml
new file mode 100644
index 00000000000..a724b97950e
--- /dev/null
+++ b/dev-python/guzzle_sphinx_theme/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">guzzle_sphinx_theme</remote-id>
+ <remote-id type="github">guzzle/guzzle_sphinx_theme</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/h5py/Manifest b/dev-python/h5py/Manifest
new file mode 100644
index 00000000000..ee40b297189
--- /dev/null
+++ b/dev-python/h5py/Manifest
@@ -0,0 +1,3 @@
+DIST h5py-2.3.1.tar.gz 1072766 SHA256 447e55d5893ca285d1185a938548a12f3f7d4af441f1a7740ac28bc3aecf85c1 SHA512 f0da1d2ac855c02fb828444d719a1b23a580adb049335f3e732ace67558a125ac8cd3b3a68ac6bf9d10aa3ab19e4672b814eb28cc8c66910750c62efb655d744 WHIRLPOOL cdd2be028d450d1566776b056550af001dd382082cce5cac9fdb8968071b9f3e9855e2c30bf12bbb800c1313343980f74c2ad3d853318585bdc6134c8af5b35c
+DIST h5py-2.4.0.tar.gz 172462 SHA256 faaeadf4b8ca14c054b7568842e0d12690de7d5d68af4ecce5d7b8fc104d8e60 SHA512 b341994899d27ceae81cdf920c44902e7db64cd3e613e2b4bcf19a6d0aea5f2fcc4acc946222a6e5d4b03d787b05e2dd2a2a55df99561f74d6e827a61f85b2c5 WHIRLPOOL 734e848437921f97b2169243993cd111d4f91578bce9980ec9d373113917185f47ea8b1d98732a61bbfc7c7ae8bc1481ddf53a6ee576705352b6d77e22263f27
+DIST h5py-2.5.0.tar.gz 684354 SHA256 9833df8a679e108b561670b245bcf9f3a827b10ccb3a5fa1341523852cfac2f6 SHA512 4a83f9ae1855a7fad90133b327d426201c8ccfd2e7fbe9f39b2d61a2eee2f3ebe2ea02cf80f3d4e1ad659f8e790c173df8cc99b87d0b7ce63d34aa88cfdc7939 WHIRLPOOL 7d7852d1d2481077a81dbf194e72da10d013c43ede4d2d6e319e1e2be0f70d7495b0964ea7787ddbd145ac774cdabc32c5b7e51fc7c9bfec429d673b12bcc10b
diff --git a/dev-python/h5py/h5py-2.3.1.ebuild b/dev-python/h5py/h5py-2.3.1.ebuild
new file mode 100644
index 00000000000..0ca6ad8a9fb
--- /dev/null
+++ b/dev-python/h5py/h5py-2.3.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Simple Python interface to HDF5 files"
+HOMEPAGE="http://www.h5py.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test examples mpi"
+
+RDEPEND="
+ sci-libs/hdf5:=[mpi=]
+ dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/cython[${PYTHON_USEDEP}]
+ mpi? ( dev-python/mpi4py[${PYTHON_USEDEP}] )"
+
+pkg_setup() {
+ use mpi && export CC=mpicc
+}
+
+python_prepare_all() {
+ append-cflags -fno-strict-aliasing
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile --mpi=$(usex mpi yes no)
+}
+
+python_test() {
+ esetup.py test --mpi=$(usex mpi yes no)
+}
+
+python_install() {
+ distutils-r1_python_install --mpi=$(usex mpi yes no)
+}
+
+python_install_all() {
+ DOCS=( README.rst ANN.rst )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/h5py/h5py-2.4.0.ebuild b/dev-python/h5py/h5py-2.4.0.ebuild
new file mode 100644
index 00000000000..68de8497486
--- /dev/null
+++ b/dev-python/h5py/h5py-2.4.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Simple Python interface to HDF5 files"
+HOMEPAGE="http://www.h5py.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test examples mpi"
+
+RDEPEND="
+ sci-libs/hdf5:=[mpi=]
+ dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/cython[${PYTHON_USEDEP}]
+ mpi? ( dev-python/mpi4py[${PYTHON_USEDEP}] )"
+
+pkg_setup() {
+ use mpi && export CC=mpicc
+}
+
+python_prepare_all() {
+ append-cflags -fno-strict-aliasing
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ esetup.py configure $(usex mpi --mpi '')
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ DOCS=( README.rst ANN.rst )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/h5py/h5py-2.5.0.ebuild b/dev-python/h5py/h5py-2.5.0.ebuild
new file mode 100644
index 00000000000..a6218f29793
--- /dev/null
+++ b/dev-python/h5py/h5py-2.5.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Simple Python interface to HDF5 files"
+HOMEPAGE="http://www.h5py.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test examples mpi"
+
+RDEPEND="
+ sci-libs/hdf5:=[mpi=]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/alabaster[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.3.1[${PYTHON_USEDEP}]
+ )
+ mpi? ( dev-python/mpi4py[${PYTHON_USEDEP}] )"
+
+pkg_setup() {
+ use mpi && export CC=mpicc
+}
+
+python_prepare_all() {
+ append-cflags -fno-strict-aliasing
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ esetup.py configure $(usex mpi --mpi '')
+}
+
+python_compile_all() {
+ if use doc; then
+ cd "${S}"/docs || die
+ sed '/html_theme/s:default:alabaster:g' -i conf.py || die
+ rm -r _build || die
+ emake html
+ fi
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ DOCS=( README.rst ANN.rst )
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/h5py/metadata.xml b/dev-python/h5py/metadata.xml
new file mode 100644
index 00000000000..7309a3a9f6b
--- /dev/null
+++ b/dev-python/h5py/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ HDF5 for Python (h5py) is a general-purpose simple Python interface to the
+ Hierarchical Data Format library, version 5. Existing Python and
+ Numpy concepts are used for the interface. Almost all HDF5 features
+ are available from Python, including things like compound datatypes
+ (as used with Numpy recarray types), HDF5 attributes, hyperslab and
+ point-based I/O, and more recent features in HDF 1.8 like resizable
+ datasets and recursive iteration over entire files.
+</longdescription>
+ <upstream>
+ <remote-id type="google-code">h5py</remote-id>
+ <remote-id type="pypi">h5py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hachoir-core/Manifest b/dev-python/hachoir-core/Manifest
new file mode 100644
index 00000000000..d3f79c502f7
--- /dev/null
+++ b/dev-python/hachoir-core/Manifest
@@ -0,0 +1 @@
+DIST hachoir-core-1.3.3.tar.gz 91504 SHA256 ecf5d16eccc76b22071d6062e54edb67595f70d827644d3a6dff04289b4058df SHA512 71c24c4c4612ab544663ddde4aa07bb7514fcb3b86596ad67d6b48e0d8590b1a9d8c88ed4007c2341cb195ef825e06634bce14c62cc2c5200b6d745d341cac51 WHIRLPOOL 1b6ab4088cc5a8270cd590d00fafb0c68571248a5f15703d5e644613cc338c6d594df87b82e2bc39f420333ca34bf37f45e003aedf43e1d085958a9294a716c7
diff --git a/dev-python/hachoir-core/hachoir-core-1.3.3-r1.ebuild b/dev-python/hachoir-core/hachoir-core-1.3.3-r1.ebuild
new file mode 100644
index 00000000000..26eee5426a1
--- /dev/null
+++ b/dev-python/hachoir-core/hachoir-core-1.3.3-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Core of Hachoir framework: parse and edit binary files"
+HOMEPAGE="http://bitbucket.org/haypo/hachoir/wiki/hachoir-core http://pypi.python.org/pypi/hachoir-core"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_configure_all() {
+ mydistutilsargs=( --setuptools )
+}
+
+python_test() {
+ "${PYTHON}" test_doc.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/hachoir-core/metadata.xml b/dev-python/hachoir-core/metadata.xml
new file mode 100644
index 00000000000..12b9db27479
--- /dev/null
+++ b/dev-python/hachoir-core/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">A tool written for hackers to cut file or any binary stream. A file is
+ splitted in a tree of fields where the smallest field can be just a bit.
+ There are various field types: integer, string, bits, padding, sub file,
+ etc.</longdescription>
+ <upstream>
+ <remote-id type="pypi">hachoir-core</remote-id>
+ <remote-id type="bitbucket">haypo/hachoir</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hachoir-parser/Manifest b/dev-python/hachoir-parser/Manifest
new file mode 100644
index 00000000000..b2b4dde3a38
--- /dev/null
+++ b/dev-python/hachoir-parser/Manifest
@@ -0,0 +1 @@
+DIST hachoir-parser-1.3.4.tar.gz 359230 SHA256 775be5e10d72c6122b1ba3202dfce153c09ebcb60080d8edbd51aa89aa4e6b3f SHA512 d1c01af0fc7dc59fc4fed57401cbbb3ba498d1a6de78322f47ff139ac10f1ad1d5713011c04fde610267b40188c84ff79397f9c8d309c1ab5cc3384c03577948 WHIRLPOOL 84ded718259a823f9a0458a846b4d330cb087bec8b8559e8dc2c1175e8b4f82ec17e728a38e7d881087ff371f24f7cfcd8dd30d3454b714366e3129de418a9a7
diff --git a/dev-python/hachoir-parser/hachoir-parser-1.3.4-r1.ebuild b/dev-python/hachoir-parser/hachoir-parser-1.3.4-r1.ebuild
new file mode 100644
index 00000000000..a3a5ff5bcb2
--- /dev/null
+++ b/dev-python/hachoir-parser/hachoir-parser-1.3.4-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Package of Hachoir parsers used to open binary files"
+HOMEPAGE="http://bitbucket.org/haypo/hachoir/wiki/hachoir-parser http://pypi.python.org/pypi/hachoir-parser"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND=">=dev-python/hachoir-core-1.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_configure_all() {
+ mydistutilsargs=( --setuptools )
+}
diff --git a/dev-python/hachoir-parser/metadata.xml b/dev-python/hachoir-parser/metadata.xml
new file mode 100644
index 00000000000..7233bee923b
--- /dev/null
+++ b/dev-python/hachoir-parser/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">a package of most common file format parsers written using hachoir-core.
+ Not all parsers are complete, some are very good and other are poor
+ (they only parse the first level of the tree for example).</longdescription>
+ <upstream>
+ <remote-id type="pypi">hachoir-parser</remote-id>
+ <remote-id type="bitbucket">haypo/hachoir</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hachoir-regex/Manifest b/dev-python/hachoir-regex/Manifest
new file mode 100644
index 00000000000..f374b7d5749
--- /dev/null
+++ b/dev-python/hachoir-regex/Manifest
@@ -0,0 +1 @@
+DIST hachoir-regex-1.0.5.tar.gz 22156 SHA256 a35b2bb0ff11418230fffbb97605adba012bf65d2aba3e5e7d8295774d5ba986 SHA512 eee781ea9665c41e8a2d02116aa0af0d734e6e1ecdb06aaaa69fe9a54abd3ef16590281570ec0f87a54903c9849c12387626c9fc78f3523eaf13a5a77cae1610 WHIRLPOOL bd11417c1ef933be5706c1539284910fff343831d96239a979a855c651bd8a033ce2ea1b8d4d54b4dea88423ca87faa0a6aa0a0c57ac83d58f73fded87691097
diff --git a/dev-python/hachoir-regex/hachoir-regex-1.0.5-r1.ebuild b/dev-python/hachoir-regex/hachoir-regex-1.0.5-r1.ebuild
new file mode 100644
index 00000000000..d3400ef6897
--- /dev/null
+++ b/dev-python/hachoir-regex/hachoir-regex-1.0.5-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Manipulation of regular expressions (regex)"
+HOMEPAGE="http://bitbucket.org/haypo/hachoir/wiki/hachoir-regex http://pypi.python.org/pypi/hachoir-regex"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_configure_all() {
+ mydistutilsargs=(
+ --setuptools
+ )
+}
+
+python_test() {
+ "${PYTHON}" test_doc.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/hachoir-regex/metadata.xml b/dev-python/hachoir-regex/metadata.xml
new file mode 100644
index 00000000000..a00819c5f2f
--- /dev/null
+++ b/dev-python/hachoir-regex/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">regex manipulation Python library. It's used by hachoir-subfile for fast
+ pattern matching (find file header).</longdescription>
+ <upstream>
+ <remote-id type="pypi">hachoir-regex</remote-id>
+ <remote-id type="bitbucket">haypo/hachoir</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hacking/Manifest b/dev-python/hacking/Manifest
new file mode 100644
index 00000000000..ce102f7b040
--- /dev/null
+++ b/dev-python/hacking/Manifest
@@ -0,0 +1,6 @@
+DIST hacking-0.10.1.tar.gz 39768 SHA256 ab5dd17d927f0f980e759a33454e2471587e5650be48222f35f79996f472c016 SHA512 46529b33c4e6ac6e379d6c69d26650d31968c5e9c8313e525abc62966b1317aac9b99ef09b57ab30b8b43e63f3f55e6fe3175bd68f18433c9a29dfdadda1d945 WHIRLPOOL ac5360643b5f9133bbd7677472156b6a69d926288e24f7694641d06afaec33c7faf204bf78e56d5143b37d0fd5667700a55e9d3f00074567a2dd3c69cad3dfac
+DIST hacking-0.10.2.tar.gz 41108 SHA256 5771028dafaf374ee52267f5b6217133f943b18067ccbaff799280ddc60461a8 SHA512 9c7f0836f35e5c233be18d8d134326e05eeef908500d64040e59ce0bec6415171c063aa418e3834654297279aa9c65ecb4499766fdbf50b4a9b0e3513a3c28f4 WHIRLPOOL db41bf40d887441c95b90e4429e5be58409c99511a78d6b6fcab9d6e30e1840fef52bdc282c3644674fd42333c0a5b8d1ed7ac40dedad23a24133295662affd8
+DIST hacking-0.8.1.tar.gz 51800 SHA256 65390ea60215e4222d9ddbc1241a0f3e05644e4f55b305e69755ed8eab3decb5 SHA512 9055d57dd39bc1653cd7c8773ea4ca7f9b206e8495c137570c3456dab45373b51d6f25dcd4413b5f78b7c4740f5c89d21534ee982dee542c7674bd825c96b91a WHIRLPOOL d35e577c0790fe989a2141264afe67b4d1478bf2f08edcbea62515764e10938f364f5d57b3d8d66dba2125246c9eb1afc2a9b67ad4d91bb6d1346eb382a420ac
+DIST hacking-0.9.2.tar.gz 43956 SHA256 2a584e5bf185ee19517d4e72a852b729578aab3822ae345534e1f35338582ba4 SHA512 76aa59b4cdfb8036d6471e35cba43d502de3a72edc3883a05822063cbb92eaa072cef3144d21ee82ac763c3385c65bc9dec4b66fda5a5a2090191ba5b6388d41 WHIRLPOOL 718d790fdc0a405166f3ff194bcfa4d68cb311557eb092630716a14018aca7ac94e43f3305fd66195dbd15c35322c8a9bf25e9dd08ac5ff1964800c140ddf17f
+DIST hacking-0.9.5.tar.gz 43145 SHA256 4010669f1c1857fb7e3721b0247791feec6aac9e18df05b711ab3edcce561b00 SHA512 9cf2608c9c70d090ae3d7249f16162ccf1c62c6b12843e70e5a0fcd1d26dce34ab3d141d826bdeff5b6417adeb1a81100a4d06f44ce24150c10a91a341e9c588 WHIRLPOOL 0e31c4f5fef06925661988773682c09c0790b4842717af604e311b2f5d46881b222b4e88d87b89eee28f21116bf961338244f7b9c0f6f4d8b740a4e79e87fd4a
+DIST hacking-0.9.6.tar.gz 43287 SHA256 aba204f93beb3aa60732bfe910116c9fa9756efd58f00aea66ee856e07199f50 SHA512 e4225754a85ff474b724130a0c3d6a6b9c480a953ea35a18833378cf2a5df4687819f510b50a95f42890cc69836033a8af933bc0a5a4e330ae94532bcee189b4 WHIRLPOOL fdb3de41229e8cc6f4ec5b5b3fe59546bc6e8f49de349241545f134ba10095fd7f7d6ef418f5193654618f28db092159246f9a37db2b3c0a443618882557df2b
diff --git a/dev-python/hacking/hacking-0.10.1.ebuild b/dev-python/hacking/hacking-0.10.1.ebuild
new file mode 100644
index 00000000000..11e4794ce1d
--- /dev/null
+++ b/dev-python/hacking/hacking-0.10.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack-dev/hacking"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ <dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )
+ doc? (
+ >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/oslo-sphinx[${PYTHON_USEDEP}]' python2_7 )
+ )"
+RDEPEND="
+ ~dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ ~dev-python/pyflakes-0.8.1[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.2.5[${PYTHON_USEDEP}]
+ ~dev-python/mccabe-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent d'loading and correct ?typo to oslosphinx in conf.py
+ sed -e 's:intersphinx_mapping:#&:' \
+ -e 's:oslosphinx:oslo.sphinx:' \
+ -i doc/source/conf.py || die
+ # relax deps
+ rm requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/source/ doc/source/ doc/source/html
+}
+
+python_test() {
+ testr init || die "testr init died"
+ testr run || die "testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "flake8 drew error on a run over ${PN}/tests folder"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hacking/hacking-0.10.2.ebuild b/dev-python/hacking/hacking-0.10.2.ebuild
new file mode 100644
index 00000000000..3d223238c61
--- /dev/null
+++ b/dev-python/hacking/hacking-0.10.2.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack-dev/hacking"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ <dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )
+ doc? (
+ >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/oslo-sphinx[${PYTHON_USEDEP}]' python2_7 )
+ )"
+RDEPEND="
+ ~dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ ~dev-python/pyflakes-0.8.1[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.2.5[${PYTHON_USEDEP}]
+ ~dev-python/mccabe-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent d'loading and correct ?typo to oslosphinx in conf.py
+ sed -e 's:intersphinx_mapping:#&:' \
+ -e 's:oslosphinx:oslo.sphinx:' \
+ -i doc/source/conf.py || die
+ # relax deps
+ rm requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/source/ doc/source/ doc/source/html
+}
+
+python_test() {
+ testr init || die "testr init died"
+ testr run || die "testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "flake8 drew error on a run over ${PN}/tests folder"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hacking/hacking-0.8.1.ebuild b/dev-python/hacking/hacking-0.8.1.ebuild
new file mode 100644
index 00000000000..d32f35bc2d6
--- /dev/null
+++ b/dev-python/hacking/hacking-0.8.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack-dev/hacking"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ dev-python/subunit[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.17-r2[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.32[${PYTHON_USEDEP}]
+ ${RDEPEND} )"
+RDEPEND="~dev-python/pep8-1.4.5[${PYTHON_USEDEP}]
+ >=dev-python/pyflakes-0.7.2[${PYTHON_USEDEP}]
+ <dev-python/pyflakes-0.7.4[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:#&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/source/ doc/source/ doc/source/html
+}
+
+python_test() {
+ # https://bugs.launchpad.net/hacking/+bug/1265520
+ # Although fixed in trunk, the fix is a version change in pep8
+ # which cannot be simply dropped in here.
+ if python_is_python3; then
+ sed -e 's:test_pep8:_&:' -i hacking/tests/test_doctest.py || die
+ fi
+ testr init || die "testr init died"
+ testr run || die "testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "flake8 drew error on a run over ${PN}/tests folder"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hacking/hacking-0.9.2.ebuild b/dev-python/hacking/hacking-0.9.2.ebuild
new file mode 100644
index 00000000000..ff3a5522d06
--- /dev/null
+++ b/dev-python/hacking/hacking-0.9.2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack-dev/hacking"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="~dev-python/pep8-1.5.6[${PYTHON_USEDEP}]
+ ~dev-python/pyflakes-0.8.1[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.6.0[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !=dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ ${RDEPEND} )
+ doc? ( >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/oslo-sphinx[${PYTHON_USEDEP}]' python2_7 ) )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent d'loading and correct ?typo to oslosphinx in conf.py
+ sed -e 's:intersphinx_mapping:#&:' \
+ -e 's:oslosphinx:oslo.sphinx:' \
+ -i doc/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/source/ doc/source/ doc/source/html
+}
+
+python_test() {
+ testr init || die "testr init died"
+ testr run || die "testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "flake8 drew error on a run over ${PN}/tests folder"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hacking/hacking-0.9.5.ebuild b/dev-python/hacking/hacking-0.9.5.ebuild
new file mode 100644
index 00000000000..29caf8be931
--- /dev/null
+++ b/dev-python/hacking/hacking-0.9.5.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack-dev/hacking"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="~dev-python/pep8-1.5.6[${PYTHON_USEDEP}]
+ ~dev-python/pyflakes-0.8.1[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.6.0[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ ${RDEPEND} )
+ doc? ( >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/oslo-sphinx[${PYTHON_USEDEP}]' python2_7 ) )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent d'loading and correct ?typo to oslosphinx in conf.py
+ sed -e 's:intersphinx_mapping:#&:' \
+ -e 's:oslosphinx:oslo.sphinx:' \
+ -i doc/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/source/ doc/source/ doc/source/html
+}
+
+python_test() {
+ testr init || die "testr init died"
+ testr run || die "testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "flake8 drew error on a run over ${PN}/tests folder"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hacking/hacking-0.9.6.ebuild b/dev-python/hacking/hacking-0.9.6.ebuild
new file mode 100644
index 00000000000..76c7c304d45
--- /dev/null
+++ b/dev-python/hacking/hacking-0.9.6.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack-dev/hacking"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="~dev-python/pep8-1.5.6[${PYTHON_USEDEP}]
+ ~dev-python/pyflakes-0.8.1[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.6.0[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ ${RDEPEND} )
+ doc? ( >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/oslo-sphinx[${PYTHON_USEDEP}]' python2_7 ) )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent d'loading and correct ?typo to oslosphinx in conf.py
+ sed -e 's:intersphinx_mapping:#&:' \
+ -e 's:oslosphinx:oslo.sphinx:' \
+ -i doc/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/source/ doc/source/ doc/source/html
+}
+
+python_test() {
+ testr init || die "testr init died"
+ testr run || die "testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "flake8 drew error on a run over ${PN}/tests folder"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hacking/metadata.xml b/dev-python/hacking/metadata.xml
new file mode 100644
index 00000000000..0c0c6ea21b6
--- /dev/null
+++ b/dev-python/hacking/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ hacking is a set of flake8 plugins that test and enforce
+ the OpenStack Style Commandments, HACKING.rst
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">hacking</remote-id>
+ <remote-id type="github">openstack-dev/hacking</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/happydoc/Manifest b/dev-python/happydoc/Manifest
new file mode 100644
index 00000000000..39c0d60b483
--- /dev/null
+++ b/dev-python/happydoc/Manifest
@@ -0,0 +1 @@
+DIST HappyDoc_r3_1.tar.gz 732849 SHA256 ef5f8dee5782a1ebe750aa51b855ce84097f5bb60488826ea5da900098c5aaec SHA512 5f526f90225f189f59fdca24b3db1cd73c7346b859cc3b8a00ddaf248c2e0901ad048c1a83ec1b9ee3f950f1260427b0fd1d6f4b1e6c4b772615f6ca799f86ff WHIRLPOOL 63ec714e882b6f067002a46e07a38ec83649e61bbc2a5dfaf83ab0e13d05e289e8e7b7d25434daa126bbb2bec2298b0c15b3120be00c5b831a763fb7379aba87
diff --git a/dev-python/happydoc/files/happydoc-3.1-python-2.6.patch b/dev-python/happydoc/files/happydoc-3.1-python-2.6.patch
new file mode 100644
index 00000000000..4cced8e2583
--- /dev/null
+++ b/dev-python/happydoc/files/happydoc-3.1-python-2.6.patch
@@ -0,0 +1,28 @@
+--- happydoclib/CommandLineApp.py
++++ happydoclib/CommandLineApp.py
+@@ -102,10 +102,21 @@
+ #
+ # Exception names
+ #
+- ReservedOptionName = 'Reserved option name'
+- HelpRequested='Help requested'
+- InvalidOptionValue='Invalid value for option'
+- InvalidArgument='Invalid argument to program'
++ class ReservedOptionName(ValueError):
++ 'Reserved option name'
++ pass
++
++ class HelpRequested(ValueError):
++ 'Help requested'
++ pass
++
++ class InvalidOptionValue(ValueError):
++ 'Invalid value for option'
++ pass
++
++ class InvalidArgument(ValueError):
++ 'Invalid argument to program'
++ pass
+
+ #
+ # Globally useful configuration stuff.
diff --git a/dev-python/happydoc/files/happydoc-3.1-setup.py b/dev-python/happydoc/files/happydoc-3.1-setup.py
new file mode 100644
index 00000000000..56ae38388f7
--- /dev/null
+++ b/dev-python/happydoc/files/happydoc-3.1-setup.py
@@ -0,0 +1,158 @@
+#!/usr/bin/env python
+#
+# $Id$
+#
+# Time-stamp: <02/02/05 10:00:12 dhellmann>
+#
+# Copyright 2001 Doug Hellmann.
+#
+#
+# All Rights Reserved
+#
+# Permission to use, copy, modify, and distribute this software and
+# its documentation for any purpose and without fee is hereby
+# granted, provided that the above copyright notice appear in all
+# copies and that both that copyright notice and this permission
+# notice appear in supporting documentation, and that the name of Doug
+# Hellmann not be used in advertising or publicity pertaining to
+# distribution of the software without specific, written prior
+# permission.
+#
+# DOUG HELLMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+# NO EVENT SHALL DOUG HELLMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+"""Distutils setup file for HappyDoc
+
+"""
+
+__rcs_info__ = {
+ #
+ # Creation Information
+ #
+ 'module_name' : '$RCSfile: happydoc-3.1-setup.py,v $',
+ 'rcs_id' : '$Id$',
+ 'creator' : 'Doug Hellmann <doug@hellfly.net>',
+ 'project' : 'HappyDoc',
+ 'created' : 'Sat, 03-Feb-2001 12:51:26 EST',
+
+ #
+ # Current Information
+ #
+ 'author' : '$Author: neurogeek $',
+ 'version' : '$Revision: 1.1 $',
+ 'date' : '$Date: 2009/02/25 20:59:36 $',
+}
+try:
+ __version__ = __rcs_info__['version'].split(' ')[1]
+except:
+ __version__ = '0.0'
+
+#
+# Import system modules
+#
+from distutils.core import setup
+import string
+import sys
+
+#
+# Import Local modules
+#
+
+#
+# Module
+#
+
+BSD_LICENSE="""
+
+ Copyright 2001, 2002 Doug Hellmann.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appear in all
+copies and that both that copyright notice and this permission
+notice appear in supporting documentation, and that the name of Doug
+Hellmann not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+DOUG HELLMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL DOUG HELLMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+"""
+
+LONG_DESCRIPTION = """
+ HappyDoc is a tool for extracting documentation from Python source
+ code. It differs from other such applications by the fact that it
+ uses the parse tree for a module to derive the information used in
+ its output, rather that importing the module directly. This allows
+ the user to generate documentation for modules which need special
+ context to be imported.
+"""
+
+
+def cvsProductVersion(cvsVersionString='$Name: $'):
+ """Function to return the version number of the program.
+
+ The value is taken from the CVS tag, assuming the tag has the form:
+
+ rX_Y_Z
+
+ Where X is the major version number, Y is the minor version
+ number, and Z is the optional sub-minor version number.
+ """
+ cvs_version_parts=string.split(cvsVersionString)
+ if len(cvs_version_parts) >= 3:
+ app_version = string.strip(cvs_version_parts[1]).replace('_', '.')
+ if app_version and app_version[0] == 'r':
+ app_version = app_version[1:]
+ else:
+ app_version = 'WORKING'
+ return app_version
+
+
+
+if sys.platform == 'win32':
+ platform_specific_scripts = ['happydocwin.py']
+else:
+ platform_specific_scripts = ['happydoc']
+
+setup (
+ name = 'HappyDoc',
+ version = cvsProductVersion(),
+
+ description = 'HappyDoc Automatic Documentation System',
+ long_description = LONG_DESCRIPTION,
+
+ author = 'Doug Hellmann',
+ author_email = 'doug@hellfly.net',
+
+ url = 'http://happydoc.sourceforge.net',
+ licence = BSD_LICENSE,
+
+ platforms = ('Any',),
+ keywords = ('documentation', 'extraction', 'source', 'docstring', '__doc__'),
+
+ packages = [ 'happydoclib',
+ 'happydoclib.docset',
+ 'happydoclib.docstring',
+ 'happydoclib.docstring.StructuredText',
+ 'happydoclib.parseinfo',
+ 'happydoclib.parsers',
+ ],
+
+ package_dir = { '': '.' },
+
+ scripts = platform_specific_scripts,
+ )
+
diff --git a/dev-python/happydoc/happydoc-3.1-r2.ebuild b/dev-python/happydoc/happydoc-3.1-r2.ebuild
new file mode 100644
index 00000000000..d34a29859cb
--- /dev/null
+++ b/dev-python/happydoc/happydoc-3.1-r2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 versionator
+
+MY_PN="HappyDoc"
+MY_PV=$(replace_all_version_separators "_" ${PV})
+MY_V=$(get_major_version ${PV})
+
+DESCRIPTION="Tool for extracting documentation from Python source code"
+HOMEPAGE="http://happydoc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_PN}_r${MY_PV}.tar.gz"
+
+LICENSE="HPND ZPL"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc sparc x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+# Tests need extra data not present in the release tarball.
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_PN}${MY_V}-r${MY_PV}"
+
+python_prepare_all() {
+ cp "${FILESDIR}/${P}-setup.py" setup.py || die "Copying of setup.py failed"
+ epatch "${FILESDIR}/${P}-python-2.6.patch"
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( srcdocs/${MY_PN}${MY_V}-r${MY_PV}/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/happydoc/metadata.xml b/dev-python/happydoc/metadata.xml
new file mode 100644
index 00000000000..cf257c2d740
--- /dev/null
+++ b/dev-python/happydoc/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">happydoc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hcluster/Manifest b/dev-python/hcluster/Manifest
new file mode 100644
index 00000000000..2be91bde87c
--- /dev/null
+++ b/dev-python/hcluster/Manifest
@@ -0,0 +1 @@
+DIST hcluster-0.2.0.tar.gz 453082 SHA256 ce1ff67271cc1be36522ec1b144722c62ab74e48b9051a47b0f439b1eb372652 SHA512 b7794e7032099d7f2f9acd5339f7ab70bfbd69035d9c1fae0166c2c03f8420ae25f8111f5db4c6eded9f8c32991154a20c6fdcc82104116710b52176e3c2033b WHIRLPOOL 9f6aae12eb704c5fe2b9d880effcc6ddb6a054c6928e4df426069531466c7652d684ce914fc9b8048e8cc70620b2e0296209dd09513c235701c45b969b18b7a0
diff --git a/dev-python/hcluster/hcluster-0.2.0-r1.ebuild b/dev-python/hcluster/hcluster-0.2.0-r1.ebuild
new file mode 100644
index 00000000000..14a618504e1
--- /dev/null
+++ b/dev-python/hcluster/hcluster-0.2.0-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python hierarchical clustering package for Scipy"
+HOMEPAGE="http://code.google.com/p/scipy-cluster/ http://pypi.python.org/pypi/hcluster"
+SRC_URI="http://scipy-cluster.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+
+# Tests need X display with matplotlib.
+RESTRICT="test"
diff --git a/dev-python/hcluster/metadata.xml b/dev-python/hcluster/metadata.xml
new file mode 100644
index 00000000000..00af651902b
--- /dev/null
+++ b/dev-python/hcluster/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">This library provides Python functions for agglomerative
+ clustering. Its features include
+ * generating hierarchical clusters from distance matrices
+ * computing distance matrices from observation vectors
+ * computing statistics on clusters
+ * cutting linkages to generate flat clusters
+ * and visualizing clusters with dendrograms.
+ The interface is very similar to MATLAB's Statistics Toolbox API to
+ make code easier to port from MATLAB to Python/Numpy. The core
+ implementation of this library is in C for efficiency.</longdescription>
+ <upstream>
+ <remote-id type="google-code">scipy-cluster</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hcs-utils/Manifest b/dev-python/hcs-utils/Manifest
new file mode 100644
index 00000000000..dca3c64c243
--- /dev/null
+++ b/dev-python/hcs-utils/Manifest
@@ -0,0 +1,2 @@
+DIST hcs_utils-1.4.tar.gz 22995 SHA256 aaecde5f01e975b670e3cb53442caee94dcfbfef4a720b5e5cd9aec8e3393c15 SHA512 f9848b805e7891683c7b6b7ee8de53313d038af13b5e2d745441445681761aa615d76d9f769aca4560828878332bb1c54d85fda82b080d18042d26a5edea84cf WHIRLPOOL babf8cb66e151974e3913078c1b0225334d01133828a31916a613b6968170297862eb1a0da60e06d0447c6394a62e8f7a57101495292738f460f86fb7eea7f2b
+DIST hcs_utils-1.5.tar.gz 23316 SHA256 745614347855f8edc7fb1659032166f0a2285cfc8383607aa3f1bf9959525fb4 SHA512 9a8fdddc47e5b4f89d52b59af66594e9b9a3adcf9d0ca5894111a0d359e8c18930e2d38027acfacadbdbf874a281d0f2ce88b310dacbab1f2a39c03bb2fe6fbf WHIRLPOOL 1ee476f1112557b8808d6cb5163b419d3b86db8b64d49bc9bf34f878eb0ba0e14ff278dad599b2a7c51d015fb98bc92be0d0a361a372b668c18c9d23dfa09959
diff --git a/dev-python/hcs-utils/hcs-utils-1.4.ebuild b/dev-python/hcs-utils/hcs-utils-1.4.ebuild
new file mode 100644
index 00000000000..fe46dce0410
--- /dev/null
+++ b/dev-python/hcs-utils/hcs-utils-1.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P=${P/_rc/rc}
+DESCRIPTION="A library containing some useful snippets"
+HOMEPAGE="http://pypi.python.org/pypi/hcs_utils"
+SRC_URI="mirror://pypi/h/${PN/-/_}/${MY_P/-/_}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P/-/_}"
+
+python_test() {
+ cd "${BUILD_DIR}/lib" || die
+ py.test --doctest-modules hcs_utils || die
+}
diff --git a/dev-python/hcs-utils/hcs-utils-1.5.ebuild b/dev-python/hcs-utils/hcs-utils-1.5.ebuild
new file mode 100644
index 00000000000..93a79ee4cee
--- /dev/null
+++ b/dev-python/hcs-utils/hcs-utils-1.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P=${P/_rc/rc}
+DESCRIPTION="A library containing some useful snippets"
+HOMEPAGE="http://pypi.python.org/pypi/hcs_utils"
+SRC_URI="mirror://pypi/h/${PN/-/_}/${MY_P/-/_}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P/-/_}"
+
+python_test() {
+ pushd "${BUILD_DIR}/lib" > /dev/null
+ py.test --doctest-modules hcs_utils || die "Tests failed"
+}
diff --git a/dev-python/hcs-utils/metadata.xml b/dev-python/hcs-utils/metadata.xml
new file mode 100644
index 00000000000..0030c59d420
--- /dev/null
+++ b/dev-python/hcs-utils/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>fabiano.francesconi@gmail.com</email>
+ <name>Fabiano Francesconi</name>
+ <description>Maintainer. Assign bugs to him</description>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">hcs_utils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hgdistver/Manifest b/dev-python/hgdistver/Manifest
new file mode 100644
index 00000000000..e950cccf234
--- /dev/null
+++ b/dev-python/hgdistver/Manifest
@@ -0,0 +1,2 @@
+DIST hgdistver-0.22.tar.gz 5442 SHA256 97bfe6b57f0edf67dc4d59abf3abe949584499cd3f67350052d9e2601e749bdf SHA512 690c4fd1fdafd853539c37703982ece5aca6df8a7c03b35e98447ec6349454f806500ea8fcf9efcca8958286e3e5f36fc86d2ae81f64ab61397cc86106cec7ad WHIRLPOOL 53050ff028c8c67840967d20209bb9c50b1e33b74786b0f7ef984172d6f87c05b111d51e8d3cc06ebdd6aa52aa34dc59d90931e5ebb0a16f50c1b071bb0d15a8
+DIST hgdistver-0.25.tar.gz 9879 SHA256 603bed5bcd892252b4501375fbca4a24de7937418e0a6ef299e3902c5a198d8d SHA512 3fef872af3c8fffb3ba612d2505260468b510c17219257640a4bcf3dc6568fdf59eb3cc544ef41b7eab32ee6cedcd81bfffce753c98bbc7d1e538fe4937d039c WHIRLPOOL 3afad9490e51b67bb90671377083eb0e853f242f088f83f4574d3ff19506cafed04c4c089f54e603ede5f3a5d6e1b9eafd0db00095d2f1c0b9ff0451efdb407e
diff --git a/dev-python/hgdistver/hgdistver-0.22.ebuild b/dev-python/hgdistver/hgdistver-0.22.ebuild
new file mode 100644
index 00000000000..1d995080993
--- /dev/null
+++ b/dev-python/hgdistver/hgdistver-0.22.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="utility lib to generate python package version infos from mercurial tags"
+HOMEPAGE="http://bitbucket.org/RonnyPfannschmidt/hgdistver/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ia64 ~mips x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/hgdistver/hgdistver-0.25.ebuild b/dev-python/hgdistver/hgdistver-0.25.ebuild
new file mode 100644
index 00000000000..64691ed2519
--- /dev/null
+++ b/dev-python/hgdistver/hgdistver-0.25.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="utility lib to generate python package version infos from mercurial tags"
+HOMEPAGE="http://bitbucket.org/RonnyPfannschmidt/hgdistver/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/hgdistver/metadata.xml b/dev-python/hgdistver/metadata.xml
new file mode 100644
index 00000000000..1c8d93ddaf6
--- /dev/null
+++ b/dev-python/hgdistver/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cffi</remote-id>
+ <remote-id type="bitbucket">RonnyPfannschmidt/hgdistver</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hglib/Manifest b/dev-python/hglib/Manifest
new file mode 100644
index 00000000000..bee1d39f0a9
--- /dev/null
+++ b/dev-python/hglib/Manifest
@@ -0,0 +1,2 @@
+DIST python-hglib-1.0.tar.gz 27833 SHA256 766458699a9f2e5f351bfe73164e4f8c30290d10a097aefacd25532f315b3099 SHA512 9c0a61299779aff613131aaabbc255c8648f0fa7ab1806af53f19fbdcece0c8a68ddca7880d25b926d67ff1b9201954b207919fb09f6a290acb078e8bbed7b68 WHIRLPOOL edb5dddcbe7a1f6d94ca76d6f78a2b3a53bd56c15e55ef5810ae32f07d270fd45be8947cb8eadbca3dac2de945e97f63cddd46c90157b688032b79f48b7d29bc
+DIST python-hglib-1.5.tar.gz 27812 SHA256 601c04d8daa806768e3075786ffe9b93ad3574ad2b300107dd615dbe7846a367 SHA512 2506e2ac95488830b90f5f099d231e45833a8f19ce14fc2f3391ae1bf48ca72187b6b57afb633ecbe6cd2c6f3d3f482d75e03ea36406b3a07085ed1b4ef9c6b5 WHIRLPOOL 84e0cdc82344cbe3872f70d9d95ec41da4bb99e3fcece0759dea58d727ca9d650449cba1ef9ca214b954942c801363b7e8fc2fbb1abf6e6a0eb7b8133855c7c1
diff --git a/dev-python/hglib/files/hglib-0.3-tests.patch b/dev-python/hglib/files/hglib-0.3-tests.patch
new file mode 100644
index 00000000000..c75c5101372
--- /dev/null
+++ b/dev-python/hglib/files/hglib-0.3-tests.patch
@@ -0,0 +1,63 @@
+tests require a more generic method to open, close files to work with pypy
+https://bugs.pypy.org/issue1380
+diff -ur python-hglib-0.3.orig/tests/test-import.py python-hglib-0.3/tests/test-import.py
+--- tests/test-import.py 2012-07-01 17:11:01.000000000 +0800
++++ tests/test-import.py 2013-01-23 23:44:12.389473396 +0800
+@@ -22,7 +22,8 @@
+ self.assertEquals(self.client.cat(['a']), '1\n')
+
+ def test_basic_file(self):
+- open('patch', 'wb').write(patch)
++ with open('patch', 'wb') as f:
++ f.write(patch)
+
+ # --no-commit
+ self.client.import_(['patch'], nocommit=True)
+diff -ur python-hglib-0.3.orig/tests/test-config.py python-hglib-0.3/tests/test-config.py
+--- tests/test-config.py 2012-07-01 17:11:01.000000000 +0800
++++ tests/test-config.py 2013-01-23 23:55:06.120502085 +0800
+@@ -3,7 +3,8 @@
+ class test_config(common.basetest):
+ def setUp(self):
+ common.basetest.setUp(self)
+- open('.hg/hgrc', 'a').write('[section]\nkey=value\n')
++ with open('.hg/hgrc', 'a') as f:
++ f.write('[section]\nkey=value\n')
+ self.client = hglib.open()
+
+ def test_basic(self):
+diff -ur python-hglib-0.3.orig/tests/test-paths.py python-hglib-0.3/tests/test-paths.py
+--- tests/test-paths.py 2012-07-01 17:11:01.000000000 +0800
++++ tests/test-paths.py 2013-01-24 00:04:36.266527106 +0800
+@@ -3,8 +3,8 @@
+
+ class test_paths(common.basetest):
+ def test_basic(self):
+- open('.hg/hgrc', 'a').write('[paths]\nfoo = bar\n')
+-
++ with open('.hg/hgrc', 'a') as f:
++ f.write('[paths]\nfoo = bar\n')
+ # hgrc isn't watched for changes yet, have to reopen
+ self.client = hglib.open()
+ paths = self.client.paths()
+diff -ur python-hglib-0.3.orig/tests/test-update.py python-hglib-0.3/tests/test-update.py
+--- tests/test-update.py 2012-11-09 18:56:31.000000000 +0800
++++ tests/test-update.py 2013-01-24 00:05:40.866529942 +0800
+@@ -33,7 +33,8 @@
+ self.client.commit('fourth')
+ self.client.update(rev2)
+ old = open('a').read()
+- open('a', 'wb').write('a' + old)
++ with open('a', 'wb') as f:
++ f.write('a' + old)
+ u, m, r, ur = self.client.update()
+ self.assertEquals(u, 0)
+ self.assertEquals(m, 1)
+@@ -68,5 +69,6 @@
+ self.assertEquals(old, open('a').read())
+
+ def test_basic_plain(self):
+- open('.hg/hgrc', 'a').write('[defaults]\nupdate=-v\n')
++ with open('.hg/hgrc', 'a') as f:
++ f.write('[defaults]\nupdate=-v\n')
+ self.test_basic()
diff --git a/dev-python/hglib/files/hglib-0.9-pypy-tests.patch b/dev-python/hglib/files/hglib-0.9-pypy-tests.patch
new file mode 100644
index 00000000000..1c56f501f49
--- /dev/null
+++ b/dev-python/hglib/files/hglib-0.9-pypy-tests.patch
@@ -0,0 +1,86 @@
+# HG changeset patch
+# User Matt Mackall <mpm@selenic.com>
+# Date 1372027936 18000
+# Node ID e738d6fe5f3ff613a4ee2c0d759eee0ee4f5c9ff
+# Parent 59cb26bf866e793b184842ad23f82fc3551d1742
+tests: make the tests work under Pypy (issue3965)
+
+..which needs explicit close() due to lack of reference counting.
+
+diff -r 59cb26bf866e -r e738d6fe5f3f tests/test-config.py
+--- a/tests/test-config.py Fri Jun 14 18:36:56 2013 +0300
++++ b/tests/test-config.py Sun Jun 23 17:52:16 2013 -0500
+@@ -3,7 +3,9 @@
+ class test_config(common.basetest):
+ def setUp(self):
+ common.basetest.setUp(self)
+- open('.hg/hgrc', 'a').write('[section]\nkey=value\n')
++ f = open('.hg/hgrc', 'a')
++ f.write('[section]\nkey=value\n')
++ f.close()
+ self.client = hglib.open()
+
+ def test_basic(self):
+diff -r 59cb26bf866e -r e738d6fe5f3f tests/test-import.py
+--- a/tests/test-import.py Fri Jun 14 18:36:56 2013 +0300
++++ b/tests/test-import.py Sun Jun 23 17:52:16 2013 -0500
+@@ -22,7 +22,9 @@
+ self.assertEquals(self.client.cat(['a']), '1\n')
+
+ def test_basic_file(self):
+- open('patch', 'wb').write(patch)
++ f = open('patch', 'wb')
++ f.write(patch)
++ f.close()
+
+ # --no-commit
+ self.client.import_(['patch'], nocommit=True)
+diff -r 59cb26bf866e -r e738d6fe5f3f tests/test-paths.py
+--- a/tests/test-paths.py Fri Jun 14 18:36:56 2013 +0300
++++ b/tests/test-paths.py Sun Jun 23 17:52:16 2013 -0500
+@@ -3,7 +3,9 @@
+
+ class test_paths(common.basetest):
+ def test_basic(self):
+- open('.hg/hgrc', 'a').write('[paths]\nfoo = bar\n')
++ f = open('.hg/hgrc', 'a')
++ f.write('[paths]\nfoo = bar\n')
++ f.close()
+
+ # hgrc isn't watched for changes yet, have to reopen
+ self.client = hglib.open()
+diff -r 59cb26bf866e -r e738d6fe5f3f tests/test-update.py
+--- a/tests/test-update.py Fri Jun 14 18:36:56 2013 +0300
++++ b/tests/test-update.py Sun Jun 23 17:52:16 2013 -0500
+@@ -33,7 +33,9 @@
+ self.client.commit('fourth')
+ self.client.update(rev2)
+ old = open('a').read()
+- open('a', 'wb').write('a' + old)
++ f = open('a', 'wb')
++ f.write('a' + old)
++ f.close()
+ u, m, r, ur = self.client.update()
+ self.assertEquals(u, 0)
+ self.assertEquals(m, 1)
+@@ -68,12 +70,16 @@
+ self.assertEquals(old, open('a').read())
+
+ def test_basic_plain(self):
+- open('.hg/hgrc', 'a').write('[defaults]\nupdate=-v\n')
++ f = open('.hg/hgrc', 'a')
++ f.write('[defaults]\nupdate=-v\n')
++ f.close()
+ self.test_basic()
+
+ def test_largefiles(self):
+ import os
+- open('.hg/hgrc', 'a').write('[extensions]\nlargefiles=\n')
++ f = open('.hg/hgrc', 'a')
++ f.write('[extensions]\nlargefiles=\n')
++ f.close()
+ self.append('b', 'a')
+ try:
+ self.client.rawcommand(['add', 'b', '--large'])
+
+
diff --git a/dev-python/hglib/hglib-1.0.ebuild b/dev-python/hglib/hglib-1.0.ebuild
new file mode 100644
index 00000000000..42ab6ed2759
--- /dev/null
+++ b/dev-python/hglib/hglib-1.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="threads(+)"
+
+MY_P="python-${P}"
+MY_PN="python-${PN}"
+
+inherit distutils-r1
+
+DESCRIPTION="Library for using the Mercurial Command Server from Python"
+HOMEPAGE="http://mercurial.selenic.com/"
+SRC_URI="mirror://pypi/p/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND=">=dev-vcs/mercurial-2.4.2"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${PN}-0.3-tests.patch )
+
+python_test() {
+ if ! ${PYTHON} test.py; then
+ die "Tests failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/stats.py )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hglib/hglib-1.5.ebuild b/dev-python/hglib/hglib-1.5.ebuild
new file mode 100644
index 00000000000..ce56eb7ebc0
--- /dev/null
+++ b/dev-python/hglib/hglib-1.5.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="threads(+)"
+
+MY_P="python-${P}"
+MY_PN="python-${PN}"
+
+inherit distutils-r1
+
+DESCRIPTION="Library for using the Mercurial Command Server from Python"
+HOMEPAGE="http://mercurial.selenic.com/"
+SRC_URI="mirror://pypi/p/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND=">=dev-vcs/mercurial-2.4.2"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ if ! ${PYTHON} test.py; then
+ die "Tests failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/stats.py )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hglib/metadata.xml b/dev-python/hglib/metadata.xml
new file mode 100644
index 00000000000..22215d7493b
--- /dev/null
+++ b/dev-python/hglib/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>arne_bab@web.de</email>
+ <name>Arne Babenhauserheide</name>
+ </maintainer>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-hglib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hgtools/Manifest b/dev-python/hgtools/Manifest
new file mode 100644
index 00000000000..2ac2f62165f
--- /dev/null
+++ b/dev-python/hgtools/Manifest
@@ -0,0 +1,2 @@
+DIST hgtools-6.0.zip 37542 SHA256 14f3f4d94827c2d45e5a05ffd6efbe2484f662354a3dce2d8d1a29df1b05dd5a SHA512 86443caa03ff5c8fe3b2f5d503c8d28ddc8e29f4818fb7d3b51233b79eb4977c98bd83ccdba0612c3c17ecddacd6d7c7b283dc6ffc935eeb7a5b1a099324e9af WHIRLPOOL d8517f2b6a769201246a5072c971880b4ae52cdfc8aec2f619cd642337eb3cfdf5abee06aa91792a8380c0d81f9a68949a9efa3f44a29a3218b8d9bea8601802
+DIST hgtools-6.3.zip 39805 SHA256 1d0ef6ceaba1673e6923b17d7f09c5ae2f4394d16ef80562812987a27e7836ff SHA512 b5654194f6fbaf37c2a63523b02371ca6af1d7b7f7a89938ba4e405076049a054fff5e6d0d4a8b53560cde7dfc4a1862c5359d710d91c208dd83611913f17a7f WHIRLPOOL efe5bca6ce0970f0199b5c757dd8fd0bd4a03ad64f4ef571e4dbae311afd22c753aa6831fc688718cbc8ef037700a3b81220dae318f82a0ea9fe4d4179cfe4e3
diff --git a/dev-python/hgtools/files/hgtools-doctest-2.0.2.patch b/dev-python/hgtools/files/hgtools-doctest-2.0.2.patch
new file mode 100644
index 00000000000..328e6eee54b
--- /dev/null
+++ b/dev-python/hgtools/files/hgtools-doctest-2.0.2.patch
@@ -0,0 +1,11 @@
+--- hgtools-2.0.2/hgtools/versioning.py 2012-10-09 10:35:38.000000000 +0800
++++ hgtools-2.0.2.new/hgtools/versioning.py 2013-05-04 16:45:14.883913556 +0800
+@@ -60,7 +60,7 @@
+
+ def as_number(self):
+ """
+- >>> str(SummableVersion('1.9.3').as_number())
++ >>> str(round(SummableVersion('1.9.3').as_number(), 12))
+ '1.93'
+ """
+ def combine(subver, ver):
diff --git a/dev-python/hgtools/hgtools-6.0.ebuild b/dev-python/hgtools/hgtools-6.0.ebuild
new file mode 100644
index 00000000000..9400a2ead3b
--- /dev/null
+++ b/dev-python/hgtools/hgtools-6.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Classes and setuptools plugin for Mercurial repositories"
+HOMEPAGE="https://bitbucket.org/jaraco/hgtools/"
+SRC_URI="mirror://pypi/h/${PN}/${P}.zip"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND="dev-vcs/mercurial"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ pushd "${BUILD_DIR}"/../ > /dev/null
+ py.test "${PN}"/tests || die
+}
diff --git a/dev-python/hgtools/hgtools-6.3.ebuild b/dev-python/hgtools/hgtools-6.3.ebuild
new file mode 100644
index 00000000000..43f808dc963
--- /dev/null
+++ b/dev-python/hgtools/hgtools-6.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Classes and setuptools plugin for Mercurial repositories"
+HOMEPAGE="https://bitbucket.org/jaraco/hgtools/"
+SRC_URI="mirror://pypi/h/${PN}/${P}.zip"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND="dev-vcs/mercurial"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ pushd "${BUILD_DIR}"/../ > /dev/null
+ py.test "${PN}"/tests || die
+ popd > /dev/null
+}
diff --git a/dev-python/hgtools/metadata.xml b/dev-python/hgtools/metadata.xml
new file mode 100644
index 00000000000..af2c31f7fb3
--- /dev/null
+++ b/dev-python/hgtools/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Classes and setuptools plugin for Mercurial repositories
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">hgtools</remote-id>
+ <remote-id type="bitbucket">jaraco/hgtools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hiredis/Manifest b/dev-python/hiredis/Manifest
new file mode 100644
index 00000000000..f196e32b98f
--- /dev/null
+++ b/dev-python/hiredis/Manifest
@@ -0,0 +1,2 @@
+DIST hiredis-0.1.1.tar.gz 35598 SHA256 ca7b3840d12f836dabfd73708bd64c0ac31204b22a926279b6515e6433e50ffc SHA512 fe588927698e771a3efb5918c2de308e435b1052b7991d331b4c59976a48ba42be0711bab4546d6aac19d851c6eb829c1208ff403f5e447c4201dc9c83aebc20 WHIRLPOOL e9e8b79e6f054e60f7eb0911123ce96e2cb3870378aa710b87c8604a22df4b3aa5a0b123970736d900a507eb5ee4e33858b4af170a776fdf01642e37b171a607
+DIST hiredis-0.2.0.tar.gz 46113 SHA256 ca958e13128e49674aa4a96f02746f5de5973f39b57297b84d59fd44d314d5b5 SHA512 9eb18ec089517340043d14938a213b139dc948dc9cf2f9c65e632bb4694ac22543b87a5875c1cea083e2bc8e303103c749047889cdb3e9d5680b586d34330c86 WHIRLPOOL 5c2252d82814b8365a29160c41133571083954c317f9c36f534e3f0aa98bc97621f144479b715da0d5c77a0a00a7a5e0b69fb63c2559a4ebf124d88be93d477d
diff --git a/dev-python/hiredis/files/hiredis-0.1.1-system-libs.patch b/dev-python/hiredis/files/hiredis-0.1.1-system-libs.patch
new file mode 100644
index 00000000000..298f5cf7ee2
--- /dev/null
+++ b/dev-python/hiredis/files/hiredis-0.1.1-system-libs.patch
@@ -0,0 +1,25 @@
+--- hiredis-0.1.1/setup.py
++++ hiredis-0.1.1/setup.py
+@@ -20,13 +20,9 @@
+ if self.distribution.has_ext_modules():
+ self.run_command('build_ext')
+
+-lib = ("hiredis", {
+- "sources": ["vendor/hiredis/%s.c" % src for src in ("hiredis", "net", "sds")],
+- "include_dirs": ["vendor/hiredis"]})
+-
+ ext = Extension("hiredis.hiredis",
+ sources=glob.glob("src/*.c"),
+- include_dirs=["src", "vendor"],
++ include_dirs=["src"],
+ libraries=["hiredis"])
+
+ setup(
+@@ -39,7 +35,6 @@
+ keywords=["Redis"],
+ license="BSD",
+ packages=["hiredis"],
+- libraries=[lib],
+ ext_modules=[ext],
+
+ # Override "install_lib" command
diff --git a/dev-python/hiredis/files/hiredis-0.2.0-system-libs.patch b/dev-python/hiredis/files/hiredis-0.2.0-system-libs.patch
new file mode 100644
index 00000000000..6cd22292deb
--- /dev/null
+++ b/dev-python/hiredis/files/hiredis-0.2.0-system-libs.patch
@@ -0,0 +1,28 @@
+Remove vendor and var 'lib' from setup.py
+diff -u hiredis-0.2.0.orig/setup.py hiredis-0.2.0/setup.py
+--- setup.py 2015-06-21 11:47:28.796472027 +0800
++++ setup.py 2015-06-21 11:49:53.047949803 +0800
+@@ -40,12 +40,9 @@
+ # supported Python versions is worse...
+ #
+ # Also see: https://github.com/pietern/hiredis-py/issues/15
+-lib = ("hiredis_for_hiredis_py", {
+- "sources": ["vendor/hiredis/%s.c" % src for src in ("read", "sds")]})
+
+ ext = Extension("hiredis.hiredis",
+- sources=glob.glob("src/*.c"),
+- include_dirs=["vendor"])
++ sources=glob.glob("src/*.c"))
+
+ setup(
+ name="hiredis",
+@@ -57,7 +54,6 @@
+ keywords=["Redis"],
+ license="BSD",
+ packages=["hiredis"],
+- libraries=[lib],
+ ext_modules=[ext],
+
+ # Override "install_lib" command
+Common subdirectories: hiredis-0.2.0.orig/src and hiredis-0.2.0/src
+Common subdirectories: hiredis-0.2.0.orig/vendor and hiredis-0.2.0/vendor
diff --git a/dev-python/hiredis/hiredis-0.1.1-r2.ebuild b/dev-python/hiredis/hiredis-0.1.1-r2.ebuild
new file mode 100644
index 00000000000..65a7699394e
--- /dev/null
+++ b/dev-python/hiredis/hiredis-0.1.1-r2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python extension that wraps hiredis"
+HOMEPAGE="https://github.com/pietern/hiredis-py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+DEPEND="dev-libs/hiredis"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-system-libs.patch )
diff --git a/dev-python/hiredis/hiredis-0.2.0.ebuild b/dev-python/hiredis/hiredis-0.2.0.ebuild
new file mode 100644
index 00000000000..0354d86ef3f
--- /dev/null
+++ b/dev-python/hiredis/hiredis-0.2.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python extension that wraps hiredis"
+HOMEPAGE="https://github.com/pietern/hiredis-py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-libs/hiredis-0.13.1"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-system-libs.patch )
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+ distutils-r1_python_compile
+}
diff --git a/dev-python/hiredis/metadata.xml b/dev-python/hiredis/metadata.xml
new file mode 100644
index 00000000000..3702b96a3b3
--- /dev/null
+++ b/dev-python/hiredis/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>swegener@gentoo.org</email>
+ <name>Sven Wegener</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">hiredis</remote-id>
+ <remote-id type="github">pietern/hiredis-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hp3parclient/Manifest b/dev-python/hp3parclient/Manifest
new file mode 100644
index 00000000000..ada0bb77c14
--- /dev/null
+++ b/dev-python/hp3parclient/Manifest
@@ -0,0 +1,2 @@
+DIST hp3parclient-2.0.0.tar.gz 42167 SHA256 bab78a3fa14236d7884af52271fd91d08d51ec99b7e2d6c6fb477bfdfb9ef259 SHA512 8bc4903e31f3f8a73c7656c1c6d722dd5baff05d7fcab1b22505843f0464e207194a333ba86bf487ac44219a9f792d8384cd0a3aefba292013c66f2d798d9552 WHIRLPOOL b48305e8b7f29d4adaa9ad8d3e83422a1d4a74d59ae0191f00bb947761d5077bfc7f9f70f504f17f23248b8e3c0275f47461eacb38bcd92f66053f06556b6607
+DIST hp3parclient-3.0.0.tar.gz 40895 SHA256 1a3acbe86acf8f698dbda83ced88872fe118eab3a91ae22d6c0cb70d109b9cc5 SHA512 976f28b96ea18ef7995b327403f9ccc2d3322296d4d4ae8c66018b7810adb86f582aec8aed59ddafaa0f8a5cc73b1ef40cf916ad3210a74ce8dae3b1f7f7adff WHIRLPOOL 3a3f34338b64837faf9dc060bed2a5a0154841bedeb0d3770dc91b5f7a89613780f9603ca6f015b0dd7b30bf7f51fc8625fe129bf27a222005f41ef305c9c586
diff --git a/dev-python/hp3parclient/hp3parclient-2.0.0.ebuild b/dev-python/hp3parclient/hp3parclient-2.0.0.ebuild
new file mode 100644
index 00000000000..bf523e018c1
--- /dev/null
+++ b/dev-python/hp3parclient/hp3parclient-2.0.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A python interface to sendfile(2) system call"
+HOMEPAGE="http://packages.python.org/hp3parclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+RDEPEND=">=dev-python/httplib2-0.6.0"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/nose-testconfig[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Instructions on running tests are utter nonsense. Tried and gave up
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( samples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hp3parclient/hp3parclient-3.0.0.ebuild b/dev-python/hp3parclient/hp3parclient-3.0.0.ebuild
new file mode 100644
index 00000000000..a0af920f4d7
--- /dev/null
+++ b/dev-python/hp3parclient/hp3parclient-3.0.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A python interface to sendfile(2) system call"
+HOMEPAGE="http://packages.python.org/hp3parclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+RDEPEND=">=dev-python/httplib2-0.6.0"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/eventlet[${PYTHON_USEDEP}]
+ test? ( dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/nose-testconfig[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Instructions on running tests are utter nonsense. Tried and gave up
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( samples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hp3parclient/metadata.xml b/dev-python/hp3parclient/metadata.xml
new file mode 100644
index 00000000000..4680d992b39
--- /dev/null
+++ b/dev-python/hp3parclient/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">hp3parclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/html2text/Manifest b/dev-python/html2text/Manifest
new file mode 100644
index 00000000000..990fc0dd6bb
--- /dev/null
+++ b/dev-python/html2text/Manifest
@@ -0,0 +1 @@
+DIST html2text-2014.4.5.tar.gz 30177 SHA256 b6f37556650a32cd625c56f2db3fa2ca2d57a7ff0a4be7a3b9118dd911c8efd6 SHA512 740750f838f0370c6b05bb1538d3de99cfd074acc95923440b14818b934e49df1ad0864bfe1a4fcf0b8fd3c9c402a4b2edaeabe992aa0870acc7ce3b6cd3924a WHIRLPOOL 502c08327cbd98ac08e19ff42b633cb7f08204123aa4a8d15826c4137976367cd7e7073660aa61788301d1817ade02be93a014caeb2ca6c53311df5fcf8adc55
diff --git a/dev-python/html2text/files/html2text-noinstall-test.patch b/dev-python/html2text/files/html2text-noinstall-test.patch
new file mode 100644
index 00000000000..70068a84723
--- /dev/null
+++ b/dev-python/html2text/files/html2text-noinstall-test.patch
@@ -0,0 +1,35 @@
+From e4d46b478f78c4464c7b35058154948c928a013b Mon Sep 17 00:00:00 2001
+From: Arfrever <arfrever@github.com>
+Date: Thu, 29 May 2014 18:07:21 +0200
+Subject: [PATCH] Don't install tests (but include them in PyPI package).
+
+Fixes #9
+---
+ MANIFEST.in | 1 +
+ setup.py | 1 -
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/MANIFEST.in b/MANIFEST.in
+index 1845310..6217360 100644
+--- a/MANIFEST.in
++++ b/MANIFEST.in
+@@ -2,3 +2,4 @@ include COPYING
+ include README.md
+ include ChangeLog.rst
+ include AUTHORS.rst
++recursive-include test *.html *.md *.py
+diff --git a/setup.py b/setup.py
+index 3b7085d..0b2cf08 100644
+--- a/setup.py
++++ b/setup.py
+@@ -65,7 +65,6 @@ def run(self):
+ """,
+ license='GNU GPL 3',
+ requires=requires_list,
+- packages=find_packages(),
+ py_modules=['html2text'],
+ include_package_data=True,
+ zip_safe=False,
+--
+1.9.3
+
diff --git a/dev-python/html2text/files/html2text-rename.patch b/dev-python/html2text/files/html2text-rename.patch
new file mode 100644
index 00000000000..5857ef4957b
--- /dev/null
+++ b/dev-python/html2text/files/html2text-rename.patch
@@ -0,0 +1,15 @@
+Naming conflict with app-text/html2text, bug 421647.
+
+diff --git a/setup.py b/setup.py
+index dd3d9bc..cd28b49 100644
+--- a/setup.py
++++ b/setup.py
+@@ -26,7 +26,7 @@ setup(
+ ],
+ entry_points="""
+ [console_scripts]
+- html2text=html2text:main
++ pyhtml2text=html2text:main
+ """,
+ license='GNU GPL 3',
+ packages=find_packages(),
diff --git a/dev-python/html2text/html2text-2014.4.5-r1.ebuild b/dev-python/html2text/html2text-2014.4.5-r1.ebuild
new file mode 100644
index 00000000000..23d4eeb05b8
--- /dev/null
+++ b/dev-python/html2text/html2text-2014.4.5-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Turn HTML into equivalent Markdown-structured text"
+HOMEPAGE="https://github.com/html2text/html2text
+ https://github.com/Alir3z4/html2text http://pypi.python.org/pypi/html2text"
+SRC_URI="https://github.com/Alir3z4/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/feedparser[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+PATCHES=( "${FILESDIR}/${PN}-rename.patch"
+ "${FILESDIR}/${PN}-noinstall-test.patch" )
+
+python_test() {
+ "${PYTHON}" test/test_html2text.py -v || die
+}
diff --git a/dev-python/html2text/metadata.xml b/dev-python/html2text/metadata.xml
new file mode 100644
index 00000000000..09fad04531f
--- /dev/null
+++ b/dev-python/html2text/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">Alir3z4/html2text</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/html5lib/Manifest b/dev-python/html5lib/Manifest
new file mode 100644
index 00000000000..10fc08521c2
--- /dev/null
+++ b/dev-python/html5lib/Manifest
@@ -0,0 +1,3 @@
+DIST html5lib-0.999.tar.gz 885440 SHA256 c3887f7e2875d7666107fa8bee761ff95b9391acdcc7cd1b5fd57a23b5fbc49e SHA512 12f187905510c621714c2b75c6a91cc0cbf8a790da1c715a51d08879704b55cd1c152fa236c0d8f6c8a578555103217a91a64a1af1962d02f4a656040a90bcea WHIRLPOOL 0903bbaf34fee171ef90a23e290b60b1461e071167ab624af0614b4924c0991fbb53f1a56adc1a735a5d190cc51f3ad70ce54c52e3169ebdfed73d86500f4eca
+DIST html5lib-0.99999.tar.gz 887806 SHA256 6b0bc7e9f77bb2a8ace636a827d8fb6e2f0b53e20cf0cb5e3e5b970454f8370b SHA512 ce440a03c949194a7e10cfd31557e83e60aee7899cd470e55940b5841f26ba1103ad83b96cdde7dc4eede3cf4b969bdad2c4b8530da3bc761c3ca928f149c68f WHIRLPOOL ef85ec5d2ff4edca0f66deb4ef8a1bb21ce51db33763892eefbef6bcd71000e4b3aa171434b8f2a2f0f04e21c7166d49f41acf76191acaf8fd789d5c8cc35f28
+DIST html5lib-0.999999.tar.gz 889015 SHA256 e372b66f4997f8e1de970ea755d0a528d7222d2aa9bd55aac078c7ef39b8f6c3 SHA512 ca6a5cd282099424bd770e6a38ce07d5782a3153a3d0480bc090410e8deb4f7673a1da71fb00cd097fdf7154d6f8a4f2656054666f1465d7f306233d6720d33b WHIRLPOOL 6cfe531db44ea16c07a2ed1fd8f43a44513dfb3f99b075e4ff070dab97addd1addae3b1f9cadcc116c778323e27d229f0d90f4890858d6cdd9c72106a45c8e7f
diff --git a/dev-python/html5lib/html5lib-0.999.ebuild b/dev-python/html5lib/html5lib-0.999.ebuild
new file mode 100644
index 00000000000..d350a583909
--- /dev/null
+++ b/dev-python/html5lib/html5lib-0.999.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTML parser based on the HTML5 specification"
+HOMEPAGE="https://github.com/html5lib/html5lib-python/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/html5lib/html5lib-0.99999.ebuild b/dev-python/html5lib/html5lib-0.99999.ebuild
new file mode 100644
index 00000000000..897f81a24a1
--- /dev/null
+++ b/dev-python/html5lib/html5lib-0.99999.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTML parser based on the HTML5 specification"
+HOMEPAGE="https://github.com/html5lib/html5lib-python/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/html5lib/html5lib-0.999999.ebuild b/dev-python/html5lib/html5lib-0.999999.ebuild
new file mode 100644
index 00000000000..642a13c981a
--- /dev/null
+++ b/dev-python/html5lib/html5lib-0.999999.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTML parser based on the HTML5 specification"
+HOMEPAGE="https://github.com/html5lib/html5lib-python/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/html5lib/metadata.xml b/dev-python/html5lib/metadata.xml
new file mode 100644
index 00000000000..ab82d54bc79
--- /dev/null
+++ b/dev-python/html5lib/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <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.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">html5lib</remote-id>
+ <remote-id type="github">html5lib/html5lib-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/htmlgen/Manifest b/dev-python/htmlgen/Manifest
new file mode 100644
index 00000000000..4b3a8916389
--- /dev/null
+++ b/dev-python/htmlgen/Manifest
@@ -0,0 +1 @@
+DIST HTMLgen.tgz 316415 SHA256 f3b39b4b07b5dd318780ad0e9b8b3c524a54138537697dd7966223f314d2177d SHA512 8301d4a28c29f477f07eedee2bffd6d07e345f08c056402098fa966f0e61895ed4dea60b653793b30d8457a7d692e3af772514d86ae440950fd52719bbadf942 WHIRLPOOL c3cef973b39a893026050a969cf1d433a18916a0340667436ce53b7dfc19d643809e48feaa3985faf6dc392f3c84c53c04f98b9e8a0c2773c4bb6c8f0131dd72
diff --git a/dev-python/htmlgen/files/htmlgen-2.2.2-python-2.5.patch b/dev-python/htmlgen/files/htmlgen-2.2.2-python-2.5.patch
new file mode 100644
index 00000000000..7bdff681501
--- /dev/null
+++ b/dev-python/htmlgen/files/htmlgen-2.2.2-python-2.5.patch
@@ -0,0 +1,145 @@
+--- HTMLcalendar.py
++++ HTMLcalendar.py
+@@ -212,12 +212,12 @@
+ return value
+ else:
+ raise TypeError, ('cannot convert to int', value)
+-import regex
+-datepat = regex.compile('^ *\([0-9*][0-9]?\)[/-]' #first 2 char date field
++import re
++datepat = re.compile('^ *\([0-9*][0-9]?\)[/-]' #first 2 char date field
+ '\([0-9][0-9]?\)[/-]?' #second 2 char date field
+ '\([12][0-9][0-9][0-9]\)?[ \t]*:') #optional year field
+-daypat = regex.compile('^ *\('+string.join(day_name,'\|')+'\)')
+-timepat = regex.compile('\([0-9][0-9]?\):\([0-9][0-9]\)')
++daypat = re.compile('^ *\('+string.join(day_name,'\|')+'\)')
++timepat = re.compile('\([0-9][0-9]?\):\([0-9][0-9]\)')
+
+ def read_appt_file(filename):
+ """Parsing function.
+--- HTMLgen.py
++++ HTMLgen.py
+@@ -924,7 +924,7 @@
+ def antispam(self, address):
+ """Process a string with HTML encodings to defeat address spiders.
+ """
+- from whrandom import choice
++ from random import choice
+ buffer = map(None, address)
+ for i in range(0, len(address), choice((2,3,4))):
+ buffer[i] = '&#%d;' % ord(buffer[i])
+--- HTMLtest.py
++++ HTMLtest.py
+@@ -2,7 +2,7 @@
+
+ """Test script which generates the online documentation for HTMLgen.
+ """
+-import string, regex, regsub, os, time, glob
++import string, re, re, os, time, glob
+ from HTMLcolors import *
+ from HTMLgen import *
+ import HTMLgen #only so I can pick off the __version__
+@@ -232,11 +232,11 @@
+ doc.email = 'jefferson@montecello.virginia.gov'
+ doc.logo = ('../image/eagle21.gif', 64, 54)
+ # parse Declaration of Independence
+- re_hline = regex.compile('^--+$')
+- re_title = regex.compile('^Title:\(.*$\)')
++ re_hline = re.compile('^--+$')
++ re_title = re.compile('^Title:\(.*$\)')
+ font2 = Font(size='+2')
+ s = open(os.path.join(datadir, 'DoI.txt')).read()
+- paragraphs = regsub.split(s, '\n\([\t ]*\n\)+')
++ paragraphs = re.split(s, '\n\([\t ]*\n\)+')
+ for para in paragraphs:
+ if not para: continue
+ if re_title.search(para) > -1:
+@@ -263,7 +263,7 @@
+ #Ok parse that file
+ f = open(mpath(os.path.join(datadir, 'parrot.txt')))
+ line = f.readline()
+- re_dialog = regex.compile('\(^[OC].*:\)\(.*\)')
++ re_dialog = re.compile('\(^[OC].*:\)\(.*\)')
+ while line:
+ if re_dialog.search(line) > -1:
+ role, prose = re_dialog.group(1,2)
+--- HTMLutil.py
++++ HTMLutil.py
+@@ -19,7 +19,7 @@
+ # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ # PERFORMANCE OF THIS SOFTWARE.
+ __version__ = '$Id: HTMLutil.py,v 1.3 1998/05/28 20:14:52 friedric Exp $'
+-import string, regex, os
++import string, re, os
+ import HTMLgen, HTMLcolors
+ from types import *
+
+@@ -79,7 +79,7 @@
+ """Determine if the text have been marked by a previous gsub.
+ (ugly hack but it works)
+ """
+- if regex.search('\(</?FONT\)\|\(</?STRONG\)', text) > -1:
++ if re.search('\(</?FONT\)\|\(</?STRONG\)', text) > -1:
+ return 1
+ else:
+ return 0
+@@ -125,13 +125,13 @@
+ not_backslash = "[^\\\\]"
+ triple_single = "'''"
+ triple_double = '"""'
+-_doc_start_re = regex.compile(
++_doc_start_re = re.compile(
+ "\(^\|" + not_backslash + "\)" # bol or not backslash
+ + "\(" + triple_single + "\|" + triple_double + "\)" )
+ single_re = not_backslash + triple_single
+ double_re = not_backslash + triple_double
+-_triple_re = { triple_single : regex.compile(single_re),
+- triple_double : regex.compile(double_re) }
++_triple_re = { triple_single : re.compile(single_re),
++ triple_double : re.compile(double_re) }
+
+ del not_backslash, triple_single, triple_double, \
+ single_re, double_re
+@@ -150,13 +150,13 @@
+ return (None, None)
+ return startquote, quotefinder.regs[0][1]
+
+-string_re = regex.compile('\(\(\'[^\'\n]*\'\)\|\("[^"\n]"\)\)')
++string_re = re.compile('\(\(\'[^\'\n]*\'\)\|\("[^"\n]"\)\)')
+ def find_string_literal( s, begin=0 ):
+ if string_re.search(s, begin) > -1:
+ return string_re.regs[1]
+ return (None, None)
+
+-comment_re = regex.compile('#.*$')
++comment_re = re.compile('#.*$')
+ def find_comment( s, begin=0 ):
+ while comment_re.search(s, begin) > -1:
+ if been_marked(comment_re.group(0)):
+@@ -166,13 +166,13 @@
+ return (None, None)
+
+ Name = '[a-zA-Z_][a-zA-Z0-9_]*'
+-func_re = regex.compile('\(^[ \t]*def[ \t]+' +Name+ '\)[ \t]*(')
++func_re = re.compile('\(^[ \t]*def[ \t]+' +Name+ '\)[ \t]*(')
+ def find_function( s, begin=0 ):
+ if func_re.search(s, begin) > -1:
+ return func_re.regs[1]
+ return (None, None)
+
+-class_re = regex.compile('\(^[ \t]*class[ \t]+' +Name+ '\)[ \t]*[(:]')
++class_re = re.compile('\(^[ \t]*class[ \t]+' +Name+ '\)[ \t]*[(:]')
+ def find_class( s, begin=0 ):
+ if class_re.search(s, begin) > -1:
+ return class_re.regs[1]
+--- ImagePaletteH.py
++++ ImagePaletteH.py
+@@ -70,7 +70,7 @@
+ return ImagePalette(mode, palette * len(mode))
+
+ def random(mode = "RGB"):
+- from whrandom import randint
++ from random import randint
+ palette = map(lambda a: randint(0, 255), [0]*256*len(mode))
+ return ImagePalette(mode, palette)
+
diff --git a/dev-python/htmlgen/files/htmlgen-pillow.patch b/dev-python/htmlgen/files/htmlgen-pillow.patch
new file mode 100644
index 00000000000..0c4f3daa27f
--- /dev/null
+++ b/dev-python/htmlgen/files/htmlgen-pillow.patch
@@ -0,0 +1,53 @@
+Fix PIL imports for Pillow compat
+https://bugs.gentoo.org/show_bug.cgi?id=471506
+--- HTMLgen/ImageH.py 1999-04-20 22:40:28.000000000 -0400
++++ HTMLgen/ImageH.py 2013-06-08 14:00:49.261734532 -0400
+@@ -576,7 +576,7 @@
+ "Display image (for debug purposes only)"
+
+ try:
+- import ImageTk
++ from PIL import ImageTk
+ ImageTk._show(self, title)
+ # note: caller must enter mainloop
+ except:
+--- HTMLgen/ImagePaletteH.py 2013-06-08 13:56:03.476318926 -0400
++++ HTMLgen/ImagePaletteH.py 2013-06-08 14:01:26.564871622 -0400
+@@ -87,7 +87,7 @@
+
+ if not lut:
+ try:
+- import GimpPaletteFile
++ from PIL import GimpPaletteFile
+ fp.seek(0)
+ p = GimpPaletteFile.GimpPaletteFile(fp)
+ lut = p.getpalette()
+@@ -96,7 +96,7 @@
+
+ if not lut:
+ try:
+- import GimpGradientFile
++ from PIL import GimpGradientFile
+ fp.seek(0)
+ p = GimpGradientFile.GimpGradientFile(fp)
+ lut = p.getpalette()
+@@ -105,7 +105,7 @@
+
+ if not lut:
+ try:
+- import PaletteFile
++ from PIL import PaletteFile
+ fp.seek(0)
+ p = PaletteFile.PaletteFile(fp)
+ lut = p.getpalette()
+--- HTMLgen/imgsize.py 1998-05-25 13:56:37.000000000 -0400
++++ HTMLgen/imgsize.py 2013-06-08 14:01:48.731358969 -0400
+@@ -15,7 +15,7 @@
+
+ try: #Following switcheroo ensures that if PIL is installed it's used instead
+ # of the HTMLgen-bundled copies.
+- import Image
++ from PIL import Image
+ except ImportError:
+ import ImageH
+ Image = ImageH
diff --git a/dev-python/htmlgen/htmlgen-2.2.2-r1.ebuild b/dev-python/htmlgen/htmlgen-2.2.2-r1.ebuild
new file mode 100644
index 00000000000..c58dbf1e952
--- /dev/null
+++ b/dev-python/htmlgen/htmlgen-2.2.2-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-r1
+
+MY_P="HTMLgen"
+DESCRIPTION="HTMLgen - Python modules for the generation of HTML documents"
+HOMEPAGE="http://starship.python.net/crew/friedrich/HTMLgen/html/main.html"
+SRC_URI="http://starship.python.net/crew/friedrich/${MY_P}.tgz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc x86"
+IUSE="doc"
+
+DEPEND="${PYTHON_DEPS}
+ virtual/python-imaging[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-python-2.5.patch"
+ epatch "${FILESDIR}/${PN}-pillow.patch"
+}
+
+src_compile() {
+ return 0
+}
+
+src_install() {
+ # doing this manually because their build scripts suck
+ local files="HTMLgen.py HTMLcolors.py HTMLutil.py HTMLcalendar.py
+ barchart.py colorcube.py imgsize.py NavLinks.py Formtools.py
+ ImageH.py ImageFileH.py ImagePaletteH.py GifImagePluginH.py
+ JpegImagePluginH.py PngImagePluginH.py"
+
+ mkdir htmlgen || die
+ touch htmlgen/__init__.py || die
+ ln ${files} htmlgen/ || die
+ python_parallel_foreach_impl python_domodule htmlgen
+
+ if use doc; then
+ # fix the image locations in the docs
+ sed -i -e "s;../image/;image/;g" html/* || die "sed failed"
+ dohtml html/*
+ dohtml -r image
+ fi
+ dodoc README
+}
+
+pkg_postinst() {
+ ewarn "htmlgen now resides in its own subdirectory"
+ ewarn "so you need to do \"from htmlgen import HTMLgen\" instead of \"import HTMLgen\""
+}
diff --git a/dev-python/htmlgen/metadata.xml b/dev-python/htmlgen/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/htmlgen/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/httmock/Manifest b/dev-python/httmock/Manifest
new file mode 100644
index 00000000000..e6ffa342457
--- /dev/null
+++ b/dev-python/httmock/Manifest
@@ -0,0 +1 @@
+DIST httmock-1.2.2.tar.gz 4975 SHA256 4dd4eddd8dba38c2b279c6fc7487fb92e91b1ae5d945a496bf059ea2b2aaf06c SHA512 0be8ae754bd3ae34166b0b001a44e664b07488ba6d44ed3dc518b310b82418dc5ab2f15ef13cb20909109f19c22a6e13dfdfdfa37f26f3c0688b19f2321be767 WHIRLPOOL 7d1315845e7a72975d5e0f8ae483f17b5e033a230cf020c770e804091c7a0ef5e94c4649720db3f3f5c68d2a19d7a45ab5d696118719967913e4c1ee01f9234c
diff --git a/dev-python/httmock/httmock-1.2.2.ebuild b/dev-python/httmock/httmock-1.2.2.ebuild
new file mode 100644
index 00000000000..e5c69b5af28
--- /dev/null
+++ b/dev-python/httmock/httmock-1.2.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A mocking library for requests"
+HOMEPAGE="https://github.com/patrys/httmock"
+SRC_URI="https://github.com/patrys/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/requests[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/httmock/metadata.xml b/dev-python/httmock/metadata.xml
new file mode 100644
index 00000000000..e8c60cc3448
--- /dev/null
+++ b/dev-python/httmock/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomas Mozes</name>
+ <description>Proxy maintainer and target for all bugs</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">patrys/httmock</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/http-parser/Manifest b/dev-python/http-parser/Manifest
new file mode 100644
index 00000000000..2ec2706b2c2
--- /dev/null
+++ b/dev-python/http-parser/Manifest
@@ -0,0 +1 @@
+DIST http-parser-0.8.3.tar.gz 83040 SHA256 e2aff90a60def3e476bd71694d8757c0f95ebf2fedf0a8ae34ee306e0b20db83 SHA512 aca583d976dcf172244179cc4199336f296dbb2e2838dded23e64d55f23298fe600f9c24ba6cb6d1d5faad3022710154949fd39adecaef763f7589a58d03fbd1 WHIRLPOOL 9de8476e9fa878b5542806efb8fe1729ac6fcb04b7dcc9d084dfd9e4280fe3bee185d2fb8ae43b2d3a46eb3a1a67047a40e423d054ecb542f66bd15b35fae427
diff --git a/dev-python/http-parser/files/http-parser-0.7.8-setup.patch b/dev-python/http-parser/files/http-parser-0.7.8-setup.patch
new file mode 100644
index 00000000000..9bd43e6a153
--- /dev/null
+++ b/dev-python/http-parser/files/http-parser-0.7.8-setup.patch
@@ -0,0 +1,22 @@
+diff -ur http-parser-0.7.8.orig/setup.py http-parser-0.7.8/setup.py
+--- setup.py 2012-08-05 11:14:22.000000000 +0800
++++ setup.py 2013-01-21 01:54:23.748530621 +0800
+@@ -10,7 +10,7 @@
+ from distutils.command.sdist import sdist as _sdist
+ import glob
+ from imp import load_source
+-import os
++import os, io
+ import shutil
+ import sys
+ import traceback
+@@ -49,7 +49,7 @@
+ VERSION = http_parser.__version__
+
+ # get long description
+-with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as f:
++with io.open(os.path.join(os.path.dirname(__file__), 'README.rst'), encoding='utf8') as f:
+ LONG_DESCRIPTION = f.read()
+
+ def _system(cmd):
+
diff --git a/dev-python/http-parser/http-parser-0.8.3.ebuild b/dev-python/http-parser/http-parser-0.8.3.ebuild
new file mode 100644
index 00000000000..e12d9c20fa4
--- /dev/null
+++ b/dev-python/http-parser/http-parser-0.8.3.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="HTTP request/response parser for python in C"
+HOMEPAGE="http://github.com/benoitc/http-parser"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~ia64 ppc ppc64 ~s390 x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+cython_dep() {
+ local flag
+ for flag in $(python_gen_useflags 'python*'); do
+ DEPEND+=" ${flag}? ( dev-python/cython[${flag}(-)] )"
+ done
+}
+cython_dep
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_install_all() {
+ local DOCS=( README.rst )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/http-parser/metadata.xml b/dev-python/http-parser/metadata.xml
new file mode 100644
index 00000000000..7907c6d5b76
--- /dev/null
+++ b/dev-python/http-parser/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">http-parser</remote-id>
+ <remote-id type="github">benoitc/http-parser</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/httplib2/Manifest b/dev-python/httplib2/Manifest
new file mode 100644
index 00000000000..64988ddabd4
--- /dev/null
+++ b/dev-python/httplib2/Manifest
@@ -0,0 +1,2 @@
+DIST httplib2-0.8.tar.gz 148284 SHA256 af689bc3cb10a95721eb0d0cf806202a699e7799dacd3497f63b48b2ba429c3f SHA512 3b95b2f64f7b24a638792562e2d8645f9087ab716a105c8771e002507fde3cca9eb7e5de27140a7aed075e70ebd83fbfbda798714a94153b6233b2b704db1176 WHIRLPOOL 3aa30e5e4cdb08cb6e8544d2fb82eb02492ce04a5752255ae281389fcc382aceecdb060a3cda0a926eba4bbe15563d379851c97cbcabbb17106696f4a90d4987
+DIST httplib2-0.9.1.tar.gz 205074 SHA256 bc6339919a5235b9d1aaee011ca5464184098f0c47c9098001f91c97176583f5 SHA512 2005d55c94971163b42366a33578f068b3e1316d59b4d834dc2d2ebcfa050d1492a27d0eefaceea48ed0cc41d8d6d3eb1b401658546a317ff82f0901a441f716 WHIRLPOOL 0d680d8a5745313c64cf0704d1e0aafd14e71a923ef3290caa118b867dc2722f087c6cc2977f104a025a2409d86a4561aac5f39718d80c083d58cd953d32b69d
diff --git a/dev-python/httplib2/httplib2-0.8.ebuild b/dev-python/httplib2/httplib2-0.8.ebuild
new file mode 100644
index 00000000000..38a38dd6cc7
--- /dev/null
+++ b/dev-python/httplib2/httplib2-0.8.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A comprehensive HTTP client library"
+HOMEPAGE="http://code.google.com/p/httplib2/ http://pypi.python.org/pypi/httplib2"
+SRC_URI="http://httplib2.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# tests connect to random remote sites
+RESTRICT="test"
+
+python_test() {
+ if [[ ${EPYTHON} == python2.7 ]] ; then
+ cd python2 || die
+ else
+ cd python3 || die
+ fi
+
+ "${PYTHON}" httplib2test.py || die
+}
diff --git a/dev-python/httplib2/httplib2-0.9.1.ebuild b/dev-python/httplib2/httplib2-0.9.1.ebuild
new file mode 100644
index 00000000000..f7b3e33df6d
--- /dev/null
+++ b/dev-python/httplib2/httplib2-0.9.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A comprehensive HTTP client library"
+HOMEPAGE="http://pypi.python.org/pypi/httplib2 https://github.com/jcgregorio/httplib2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# tests connect to random remote sites
+RESTRICT="test"
+
+python_test() {
+ if [[ ${EPYTHON} == python2.7 ]] ; then
+ cd python2 || die
+ else
+ cd python3 || die
+ fi
+
+ "${PYTHON}" httplib2test.py || die
+}
diff --git a/dev-python/httplib2/metadata.xml b/dev-python/httplib2/metadata.xml
new file mode 100644
index 00000000000..0403f5d0dc8
--- /dev/null
+++ b/dev-python/httplib2/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">httplib2</remote-id>
+ <remote-id type="pypi">httplib2</remote-id>
+ <remote-id type="github">jcgregorio/httplib2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/httpretty/Manifest b/dev-python/httpretty/Manifest
new file mode 100644
index 00000000000..342c28d3505
--- /dev/null
+++ b/dev-python/httpretty/Manifest
@@ -0,0 +1,4 @@
+DIST httpretty-0.7.0.tar.gz 28066 SHA256 a422a74fe0f35fbb644c9a3a0a4ccb7a7469a8f5bae2d7c807d35a7d149d3fa6 SHA512 9adfd906336aa0ac2c21be8b789eb2e57994f4aac719958fc657291d922fe28b1fcc60d9b39e0e616b6d8565adaecb8228df3a9d1428cc189372b1cc700f664e WHIRLPOOL 8aaa28f26d038ba198b19a31a7f9490e2c3882a9eaacd6b5ccee34cd5f03f745e0facd96853da1be00c7ae949f18cfd4e8f3f696b51f26ffd9b2c6063502976a
+DIST httpretty-0.7.1.tar.gz 28394 SHA256 a0f61cd3fbdffd28a556f8fd5eff703ad3c5c76cf0c39ab8bc136f38d0a71857 SHA512 53b6f063e0e7863fa77aad1eebb0ad3078528bc97d26df80a3c6491c42b9a9008080da35bbb1e9372674c996f25e5109c84b48a2a6d9f0de5b7c53331bdad857 WHIRLPOOL 2112692eeaa034f6afa3b7ef76aa557f3211b0f9db9178369446148b7c1d8eb6292f51a47c767d168222a7d40ed66bfefd1557bbb1c9ee3c5394e1c524861e4b
+DIST httpretty-0.8.0.tar.gz 34291 SHA256 e5512b38ad3bfb9f7d275c957b4a7eddc69e4b3a749e3b62a984c86fb6ab329b SHA512 0c6193c488a27345b3d98cc6a62e8933b67828b7335700367b28cf328ef86ff2342056bada84ca631d6acc5650b7b456e80d85d8099e873f07cd41140c481650 WHIRLPOOL f828e84fddc6e4ab9671a9cd33da6b0f2b4053fc3368e3119ed5d7410cde125486aaae8bcf1cf4eab3a641af48dda7c6531c231f0d59c36d65f1c3d173e8969f
+DIST httpretty-0.8.10.tar.gz 41741 SHA256 474a72722d66841f0e59cee285d837e1c6263be5be7bf2f8e824fc849a99adda SHA512 5bc734a89c45daa746551ef7d150c02bf6d9cddf1bc5426a8800d2241bb5bf8a834d2736fd9a4846ce150747d9c2064686a3ed63e97e5f131778d834956a9107 WHIRLPOOL 33fc4c025176c9d3493f8efe67f24db90d2c799536a949d490be4d9c11918190846d2612c6b09e6e000430a70f0e54b9bac87261cae62e5ba8ef558251f2bc3b
diff --git a/dev-python/httpretty/files/httpretty-0.7.0-deps.patch b/dev-python/httpretty/files/httpretty-0.7.0-deps.patch
new file mode 100644
index 00000000000..26c6ebec4e5
--- /dev/null
+++ b/dev-python/httpretty/files/httpretty-0.7.0-deps.patch
@@ -0,0 +1,68 @@
+rebased from https://github.com/jamielennox/HTTPretty/commit/3a7d5a04b2ed5cebc8e1fc14f706f5da7fc5162f
+diff -ur httpretty-0.7.0.orig/requirements.pip httpretty-0.7.0/requirements.pip
+--- requirements.pip 2013-10-02 12:44:47.000000000 +0800
++++ requirements.pip 2013-12-02 15:37:00.611977792 +0800
+@@ -1,12 +1,9 @@
+-argparse==1.2.1
+-coverage==3.5.3
+-httplib2==0.7.6
+-misaka==1.0.2
+-mock==1.0.1
+-nose==1.2.1
+-requests==1.1.0
+-steadymark==0.4.5
++coverage>=3.5
++httplib2
++mock>=1.0
++nose>=1.2
++requests>=1.1
+ sure>=1.2.1
+-tornado==2.4
+-tox==1.4.2
+-urllib3
+\ No newline at end of file
++tornado>=2.2
++tox>=1.4.2
++urllib3
+diff -ur httpretty-0.7.0.orig/setup.cfg httpretty-0.7.0/setup.cfg
+--- setup.cfg 2013-10-08 05:42:31.000000000 +0800
++++ setup.cfg 2013-12-02 15:40:34.331985437 +0800
+@@ -2,4 +2,9 @@
+ tag_build =
+ tag_date = 0
+ tag_svn_revision = 0
+-
++[nosetests]
++verbosity=2
++with-coverage=1
++cover-erase=1
++cover-package=httpretty
++cover-inclusive=1
+diff -ur httpretty-0.7.0.orig/setup.py httpretty-0.7.0/setup.py
+--- setup.py 2013-10-08 05:42:31.000000000 +0800
++++ setup.py 2013-12-02 15:42:26.467989448 +0800
+@@ -50,10 +50,11 @@
+ author_email='gabriel@nacaolivre.org',
+ url='http://github.com/gabrielfalcao/httpretty',
+ zip_safe=False,
+- packages=find_packages(HTTPRETTY_PATH, ('tests')),
++ packages=find_packages(),
+ tests_require=test_packages(),
+ install_requires=['urllib3'],
+ license='MIT',
++ test_suite='nose.collector',
+ classifiers=["Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
+ "Topic :: Software Development :: Testing"],
+diff -ur httpretty-0.7.0.orig/tests/functional/test_requests.py httpretty-0.7.0/tests/functional/test_requests.py
+--- tests/functional/test_requests.py 2013-10-08 05:42:31.000000000 +0800
++++ tests/functional/test_requests.py 2013-12-02 15:43:48.763992391 +0800
+@@ -698,7 +698,7 @@
+ response['response'].should.have.key("status").being.equal(200)
+ response['response'].should.have.key("body").being.an(unicode)
+ response['response'].should.have.key("headers").being.a(dict)
+- response['response']["headers"].should.have.key("server").being.equal("TornadoServer/2.4")
++ response['response']["headers"].should.have.key("server").being.equal("TornadoServer")
+
+
+ def test_playing_calls():
diff --git a/dev-python/httpretty/httpretty-0.7.0.ebuild b/dev-python/httpretty/httpretty-0.7.0.ebuild
new file mode 100644
index 00000000000..d25bdf8c8de
--- /dev/null
+++ b/dev-python/httpretty/httpretty-0.7.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP client mock for Python"
+HOMEPAGE="http://github.com/gabrielfalcao/httpretty"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.5[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/steadymark-0.4.5[${PYTHON_USEDEP}]
+ >=dev-python/sure-1.2.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-2.2[${PYTHON_USEDEP}]
+ "
+# I believe we don't need unpackaged package markment
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${P}-deps.patch )
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ if ! use test; then
+ rm -rf tests/
+ fi
+}
+
+python_test() {
+ # https://github.com/gabrielfalcao/HTTPretty/issues/125
+ nosetests tests/unit \
+ -e test_recording_calls \
+ -e test_playing_calls \
+ -e test_callback_setting_headers_and_status_response \
+ -e test_streaming_responses \
+ tests/functional || die "Tests failed under ${EPYTHON}"
+ rm -rf tests/ "${BUILD_DIR}"/lib/tests/ || die
+}
diff --git a/dev-python/httpretty/httpretty-0.7.1.ebuild b/dev-python/httpretty/httpretty-0.7.1.ebuild
new file mode 100644
index 00000000000..f1b718ebd2d
--- /dev/null
+++ b/dev-python/httpretty/httpretty-0.7.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP client mock for Python"
+HOMEPAGE="http://github.com/gabrielfalcao/httpretty"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.5[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/steadymark-0.4.5[${PYTHON_USEDEP}]
+ >=dev-python/sure-1.2.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-2.2[${PYTHON_USEDEP}]
+ "
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ if ! use test; then
+ rm -rf tests/
+ fi
+}
+
+python_test() {
+ # https://github.com/gabrielfalcao/HTTPretty/issues/125
+ nosetests tests/unit \
+ -e test_recording_calls \
+ -e test_playing_calls \
+ -e test_callback_setting_headers_and_status_response \
+ tests/functional || die "Tests failed under ${EPYTHON}"
+ rm -rf tests/ "${BUILD_DIR}"/lib/tests/ || die
+}
diff --git a/dev-python/httpretty/httpretty-0.8.0-r1.ebuild b/dev-python/httpretty/httpretty-0.8.0-r1.ebuild
new file mode 100644
index 00000000000..c349abcc8e0
--- /dev/null
+++ b/dev-python/httpretty/httpretty-0.8.0-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP client mock for Python"
+HOMEPAGE="http://github.com/gabrielfalcao/httpretty"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]
+ "
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.5[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/sure[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-2.2[${PYTHON_USEDEP}]
+ dev-python/ipdb[${PYTHON_USEDEP}] )"
+
+#Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ # https://github.com/gabrielfalcao/HTTPretty/issues/125, still occur
+ # py3.4 hangs on many tests and is deemed underdone
+ # Upstream does not make it clear whether py3.4 is sctually tested and supported.
+ # python2.7 has substantial failure in tests/functional/test_requests.py and is removed.
+ # Some tests excluded attempt connection to the network
+ # On testing in the state below, py2.7 still has a tally of FAILED (failures=5)
+ # that occur within the folder tests/unit which upstream should address.
+ # https://github.com/gabrielfalcao/HTTPretty/issues/236 Bug #532106
+
+ if [[ "${EPYTHON}" == python3.4 ]]; then
+ einfo "python3.4 not adequately supported in testsuite"
+ elif [[ "${EPYTHON}" == python2.7 ]]; then
+ rm -f tests/functional/test_requests.py || die
+ nosetests -e test_recording_calls \
+ -e test_playing_calls \
+ -e test_callback_setting_headers_and_status_response \
+ -e test_httpretty_bypasses_when_disabled \
+ -e test_using_httpretty_with_other_tcp_protocols \
+ tests/unit \
+ tests/functional || die "Tests failed under python2.7"
+ else
+ nosetests -e test_recording_calls \
+ -e test_playing_calls \
+ -e test_callback_setting_headers_and_status_response \
+ -e test_httpretty_bypasses_when_disabled \
+ -e test_using_httpretty_with_other_tcp_protocols \
+ tests/unit \
+ tests/functional || die "Tests failed under python3.3"
+ fi
+
+ rm -rf "${BUILD_DIR}"/../tests/ || die
+}
diff --git a/dev-python/httpretty/httpretty-0.8.0.ebuild b/dev-python/httpretty/httpretty-0.8.0.ebuild
new file mode 100644
index 00000000000..111a360c004
--- /dev/null
+++ b/dev-python/httpretty/httpretty-0.8.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP client mock for Python"
+HOMEPAGE="http://github.com/gabrielfalcao/httpretty"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]
+ "
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.5[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/sure[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-2.2[${PYTHON_USEDEP}]
+ dev-python/ipdb )"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ if ! use test; then
+ rm -rf tests/
+ fi
+}
+
+python_test() {
+ # https://github.com/gabrielfalcao/HTTPretty/issues/125
+ nosetests tests/unit \
+ -e test_recording_calls \
+ -e test_playing_calls \
+ -e test_callback_setting_headers_and_status_response \
+ tests/functional || die "Tests failed under ${EPYTHON}"
+ rm -rf tests/ "${BUILD_DIR}"/lib/tests/ || die
+}
diff --git a/dev-python/httpretty/httpretty-0.8.10.ebuild b/dev-python/httpretty/httpretty-0.8.10.ebuild
new file mode 100644
index 00000000000..c349abcc8e0
--- /dev/null
+++ b/dev-python/httpretty/httpretty-0.8.10.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP client mock for Python"
+HOMEPAGE="http://github.com/gabrielfalcao/httpretty"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]
+ "
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.5[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/sure[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-2.2[${PYTHON_USEDEP}]
+ dev-python/ipdb[${PYTHON_USEDEP}] )"
+
+#Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ # https://github.com/gabrielfalcao/HTTPretty/issues/125, still occur
+ # py3.4 hangs on many tests and is deemed underdone
+ # Upstream does not make it clear whether py3.4 is sctually tested and supported.
+ # python2.7 has substantial failure in tests/functional/test_requests.py and is removed.
+ # Some tests excluded attempt connection to the network
+ # On testing in the state below, py2.7 still has a tally of FAILED (failures=5)
+ # that occur within the folder tests/unit which upstream should address.
+ # https://github.com/gabrielfalcao/HTTPretty/issues/236 Bug #532106
+
+ if [[ "${EPYTHON}" == python3.4 ]]; then
+ einfo "python3.4 not adequately supported in testsuite"
+ elif [[ "${EPYTHON}" == python2.7 ]]; then
+ rm -f tests/functional/test_requests.py || die
+ nosetests -e test_recording_calls \
+ -e test_playing_calls \
+ -e test_callback_setting_headers_and_status_response \
+ -e test_httpretty_bypasses_when_disabled \
+ -e test_using_httpretty_with_other_tcp_protocols \
+ tests/unit \
+ tests/functional || die "Tests failed under python2.7"
+ else
+ nosetests -e test_recording_calls \
+ -e test_playing_calls \
+ -e test_callback_setting_headers_and_status_response \
+ -e test_httpretty_bypasses_when_disabled \
+ -e test_using_httpretty_with_other_tcp_protocols \
+ tests/unit \
+ tests/functional || die "Tests failed under python3.3"
+ fi
+
+ rm -rf "${BUILD_DIR}"/../tests/ || die
+}
diff --git a/dev-python/httpretty/metadata.xml b/dev-python/httpretty/metadata.xml
new file mode 100644
index 00000000000..9685d5af511
--- /dev/null
+++ b/dev-python/httpretty/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">httpretty</remote-id>
+ <remote-id type="github">gabrielfalcao/httpretty</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/humanfriendly/Manifest b/dev-python/humanfriendly/Manifest
new file mode 100644
index 00000000000..5b48d7d4d36
--- /dev/null
+++ b/dev-python/humanfriendly/Manifest
@@ -0,0 +1,6 @@
+DIST humanfriendly-1.25.tar.gz 23072 SHA256 a6811938ff17c3df24c5b91569f44bff17f1ccbb60e0d756a5bfd13b554d479c SHA512 e62cfcd4f0119830cb21b10eb7514aebe1283fc4dc9cbc22cfad1cb3c73fcad46ac5e4e3a2aa7ccffc5f5b8389d616e1dcaa622fee420c5fcd7138948c69cd54 WHIRLPOOL ef7161c9893b5b59b5b89fce7aabbd4fd8954d316874e53a2352258cdccfe4dbcacb2fc46711490f90fa0f56f19734b6617e5e844c8f004142faac38a890b8c4
+DIST humanfriendly-1.26.tar.gz 25228 SHA256 0908b90298364e3335a03abcbb88ec571f95c7e4bc6728de0551806f636ef219 SHA512 d4cf81d6c9e39c2d5fb4886dc84c6037c6b189a5e54360b1fcaab5728c74b5ab4fe95c574d4b211888a8cbe6f1bce563106adb65b6a0d9533aa40e6ce434cf7c WHIRLPOOL f8d6a080bcfc8ac9dfacdc2387c4050ea81dd294eb703d4198ac82678e3ef71f4ecce0a2af4dfd85c068548c96a42c904ff2efc8bf4c429137e60aef684ec614
+DIST humanfriendly-1.27.tar.gz 26128 SHA256 b80c391baf5c7d5f634391d62c9869c4d20dd6167c53ba2e3765f9ad2bc54638 SHA512 b2fcf239958e9889c22a99396e78d157adf390e2b5dbcbc3f89eb42ca7a87ec278e2969d05fc3388c07af929b1046cd4a14d3347c7c9287e6a7f4cbbb7322688 WHIRLPOOL a0d277784dd906891bf1217653141379770bbf703645af34fe220b253f9939fdb0ebea90e35a9cb2c17f5e5f6099805c05dbb888fe23af581ac7fab43459ef07
+DIST humanfriendly-1.29.tar.gz 27120 SHA256 9c1983d79a61f77ab6c42973baf2ebb156dbb608516415f3c4066cbe3400e8d7 SHA512 b42e1e7e66c1326cef1134b662f7026c9b3883f0871752cbb6d334de68fc6f6e92ae6524bb9c64b7185bc28f612c6daf0650bd8c9a9121d5fea704b51bd7843f WHIRLPOOL a068a0cbdd7ec3d41ea54d5cf9cc80b8c88bc6089d48f546638c5128cf918720549667464a32bca0b2f6f266f3ff8194ab352b159db3de7a554d2eb2a449854e
+DIST humanfriendly-1.31.tar.gz 33358 SHA256 329b359b5aa8d330841379afea30ab343ec177fed826bfc8e44ebba43700ac5f SHA512 9c3f3a84c9a5c9d530ad8e4c10507369f322cc4c73c8f229f08ebab168b69e41870b22873445c32ddca4975a5d6bbeb586c8c4e6e20e79d1a7d420d6855a5cae WHIRLPOOL 80ac328a5b2bdbfd181dd9b142ee792a8cdfd192c36fcd276b6a4b1eacf64ed27737d9b7796c66caffacbce9177e3cbfcd87e543f54f540b278be574b0ecf335
+DIST humanfriendly-1.33.tar.gz 34362 SHA256 158259d5cb9b762fb094a3cbbade70b5e623568b92c3765d1914fa87f5bf4ecc SHA512 878dc081b15df2f1d682697b9abde45ea20aebd4a33bd7079af7eb3c86b331ad2135b7153b6727ddadbc2146fe042d5a860aaab4889a637622636d4118179bf5 WHIRLPOOL c57a7404341cff1eca80069e35350b99ddf3c26b68894ab283d39ad4dd80fbd2014f04a8dfdb040aae432c4b2ed9bdc51f0085d743575c78eddcc9985cf3cbed
diff --git a/dev-python/humanfriendly/humanfriendly-1.25.ebuild b/dev-python/humanfriendly/humanfriendly-1.25.ebuild
new file mode 100644
index 00000000000..34fa7dd29e0
--- /dev/null
+++ b/dev-python/humanfriendly/humanfriendly-1.25.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Human friendly output for text interfaces using Python"
+HOMEPAGE="https://pypi.python.org/pypi/humanfriendly https://humanfriendly.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/humanfriendly/humanfriendly-1.26.ebuild b/dev-python/humanfriendly/humanfriendly-1.26.ebuild
new file mode 100644
index 00000000000..34fa7dd29e0
--- /dev/null
+++ b/dev-python/humanfriendly/humanfriendly-1.26.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Human friendly output for text interfaces using Python"
+HOMEPAGE="https://pypi.python.org/pypi/humanfriendly https://humanfriendly.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/humanfriendly/humanfriendly-1.27.ebuild b/dev-python/humanfriendly/humanfriendly-1.27.ebuild
new file mode 100644
index 00000000000..34fa7dd29e0
--- /dev/null
+++ b/dev-python/humanfriendly/humanfriendly-1.27.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Human friendly output for text interfaces using Python"
+HOMEPAGE="https://pypi.python.org/pypi/humanfriendly https://humanfriendly.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/humanfriendly/humanfriendly-1.29.ebuild b/dev-python/humanfriendly/humanfriendly-1.29.ebuild
new file mode 100644
index 00000000000..34fa7dd29e0
--- /dev/null
+++ b/dev-python/humanfriendly/humanfriendly-1.29.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Human friendly output for text interfaces using Python"
+HOMEPAGE="https://pypi.python.org/pypi/humanfriendly https://humanfriendly.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/humanfriendly/humanfriendly-1.31.ebuild b/dev-python/humanfriendly/humanfriendly-1.31.ebuild
new file mode 100644
index 00000000000..34fa7dd29e0
--- /dev/null
+++ b/dev-python/humanfriendly/humanfriendly-1.31.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Human friendly output for text interfaces using Python"
+HOMEPAGE="https://pypi.python.org/pypi/humanfriendly https://humanfriendly.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/humanfriendly/humanfriendly-1.33.ebuild b/dev-python/humanfriendly/humanfriendly-1.33.ebuild
new file mode 100644
index 00000000000..34fa7dd29e0
--- /dev/null
+++ b/dev-python/humanfriendly/humanfriendly-1.33.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Human friendly output for text interfaces using Python"
+HOMEPAGE="https://pypi.python.org/pypi/humanfriendly https://humanfriendly.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/humanfriendly/metadata.xml b/dev-python/humanfriendly/metadata.xml
new file mode 100644
index 00000000000..e5e0d4ae612
--- /dev/null
+++ b/dev-python/humanfriendly/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">humanfriendly</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
new file mode 100644
index 00000000000..740c02b916e
--- /dev/null
+++ b/dev-python/hypothesis/Manifest
@@ -0,0 +1,2 @@
+DIST hypothesis-1.7.1.tar.gz 58959 SHA256 25ac0cb59bb2a707687f7eafb2fe12077852ccaeb8344ed678da61431e86d4c0 SHA512 7a30e325449b01c56cd2a13aecbd51374748b7f6aea6ad2ec75cccda33e911c7495820dc0b7e140e34aff9b30b3ddda8cb4a80964dd99bffc9e1d75dff30784e WHIRLPOOL 3c06dd1da1ad888d15cb5aadf0744577e1af81a4b37fda9540b02057dfd4e7926385816b6d8d13ad36d5fdf528699ef5c5bac5f3448a3e2f5667129e5e7166de
+DIST hypothesis-1.9.0.tar.gz 70605 SHA256 774fff913da11446fa5522b4f20661ddf81cfdf2865d48ec5d160f9491f3f19a SHA512 898f2a0d410cc367def992025b7191f148752acfa86413626eff3c58be7242fa19ea81af2dcfdeef307fd0da61ddd633f34a65b3ce43f37a891b0cd5fddca7d2 WHIRLPOOL db4fa35b1b183a13d90d040ff070e8777402139d8504aab252c370477bb514a21806b97aaf3c632b4a6c9ce4f6f92a74cae1f2a3669d06364183cb61eee1e3d6
diff --git a/dev-python/hypothesis/hypothesis-1.7.1.ebuild b/dev-python/hypothesis/hypothesis-1.7.1.ebuild
new file mode 100644
index 00000000000..5a5848d0fa9
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-1.7.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="https://github.com/DRMacIver/hypothesis"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/hypothesis/hypothesis-1.9.0.ebuild b/dev-python/hypothesis/hypothesis-1.9.0.ebuild
new file mode 100644
index 00000000000..5a5848d0fa9
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-1.9.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="https://github.com/DRMacIver/hypothesis"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/hypothesis/metadata.xml b/dev-python/hypothesis/metadata.xml
new file mode 100644
index 00000000000..2e34ede407d
--- /dev/null
+++ b/dev-python/hypothesis/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">hypothesis</remote-id>
+ <remote-id type="github">DRMacIver/hypothesis</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/icalendar/Manifest b/dev-python/icalendar/Manifest
new file mode 100644
index 00000000000..b07b5f045cc
--- /dev/null
+++ b/dev-python/icalendar/Manifest
@@ -0,0 +1,2 @@
+DIST icalendar-3.8.4.zip 91925 SHA256 7034e184ef3f9010f074410cea11b68fa93ef847f3fb185be41d6bd261c9cbb8 SHA512 5963112ed5d9aa16c85523c7687f5c23085171b84a3f974f5daa84d76e9af5f7171a6f1c342daddbe15531193c47191103fe0f53589aff41787d7ad58a12e0a0 WHIRLPOOL 7cb352564968a121831b82907386f328b25e718439f65bebf575f906fe00f7cfbf4b8bc578b3f201aaa1c7eaa22f9e70eca68278a81e5d802573a301ede75410
+DIST icalendar-3.9.0.tar.gz 62627 SHA256 93d0b94eab23d08f62962542309916a9681f16de3d5eca1c75497f30f1b07792 SHA512 a937882046666212d011cbd5963f43e3c2ebc677c55f1ac425dd77a08201a204498881986208d40e2e93b163f9f51b285cb3a1250f07d01f9b6a968c4e24065d WHIRLPOOL 3cc4fd1ef6170dbb99c1f55e45082374d08931265397df422ee3439ca532f7e2704dd6ed620635b65719f509c4a84682c2f54ef12751e3cd00c4235c116d1336
diff --git a/dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch b/dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch
new file mode 100644
index 00000000000..4f2b78dc913
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch
@@ -0,0 +1,22 @@
+--- src/icalendar/tools.py
++++ src/icalendar/tools.py
+@@ -1,5 +1,6 @@
+ from string import ascii_letters, digits
+ import random
++from datetime import datetime
+
+ """
+ This module contains non-essential tools for iCalendar. Pretty thin so far eh?
+@@ -42,9 +43,9 @@
+ datetime-uniquevalue at host. Like:
+ 20050105T225746Z-HKtJMqUgdO0jDUwm at example.com
+ """
+- from PropertyValues import vText, vDatetime
++ from icalendar.prop import vText, vDatetime
+ unique = unique or self.rnd_string()
+- return vText('%s-%s@%s' % (vDatetime.today().ical(), unique, host_name))
++ return vText('%s-%s@%s' % (vDatetime(datetime.today()).ical(), unique, host_name))
+
+
+ if __name__ == "__main__":
+
diff --git a/dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch b/dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch
new file mode 100644
index 00000000000..7f06b4f68c9
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch
@@ -0,0 +1,30 @@
+From http://codespeak.net/pipermail/icalendar-dev/2009-July/000139.html:
+
+SUMMARY: The encoding mechanism of vDatetime handles tzinfo fields
+incorrectly (specifically with respect to daylight savings time).
+Attached is a simple patch that makes it work.
+
+DETAILS: Currently vDatetime.ical() tries to compute the utcoffset of
+the tzinfo, and then subtract that offset. This approach is valid,
+but the computation of the utcoffset is wrong, because it's done relative
+to datetime.now() instead of the actual datetime object (self.dt)
+to be converted. This is an issue for timezones whose utcoffset varies
+throughout the year, e.g., from daylight savings time.
+Replacing datetime.now() with self.dt would fix the code,
+but I opted to use the builtin 'asttimezone' method
+because it's slightly simpler.
+
+Submitted by Erik Demaine.
+===================================================================
+--- src/icalendar/prop.py.orig 2009-12-14 08:43:50.000000000 -0500
++++ src/icalendar/prop.py 2009-12-20 12:41:28.000000000 -0500
+@@ -309,8 +309,7 @@
+
+ def ical(self):
+ if self.dt.tzinfo:
+- utc_time = self.dt - self.dt.tzinfo.utcoffset(datetime.now())
+- return utc_time.strftime("%Y%m%dT%H%M%SZ")
++ return self.dt.astimezone (UTC).strftime("%Y%m%dT%H%M%SZ")
+ return self.dt.strftime("%Y%m%dT%H%M%S")
+
+ def from_ical(ical):
diff --git a/dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch b/dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch
new file mode 100644
index 00000000000..d6d857a342d
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch
@@ -0,0 +1,33 @@
+--- src/icalendar/prop.py.old Mon Dec 14 13:43:50 2009
++++ src/icalendar/prop.py Tue Jan 19 15:09:58 2010
+@@ -57,7 +57,7 @@
+ TIME_PART = r'T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?'
+ DATETIME_PART = '(?:%s)?(?:%s)?' % (DATE_PART, TIME_PART)
+ WEEKS_PART = r'(\d+)W'
+-DURATION_REGEX = re.compile(r'([-+]?)P(?:%s|%s)$'
++DURATION_REGEX = re.compile(r'([-+]?)P(?:%s)?(?:%s)?$'
+ % (WEEKS_PART, DATETIME_PART))
+ WEEKDAY_RULE = re.compile('(?P<signal>[+-]?)(?P<relative>[\d]?)'
+ '(?P<weekday>[\w]{2})$')
+@@ -467,14 +467,14 @@
+ """
+ try:
+ match = DURATION_REGEX.match(ical)
++ if not any(match.groups()):
++ raise ValueError()
+ sign, weeks, days, hours, minutes, seconds = match.groups()
+- if weeks:
+- value = timedelta(weeks=int(weeks))
+- else:
+- value = timedelta(days=int(days or 0),
+- hours=int(hours or 0),
+- minutes=int(minutes or 0),
+- seconds=int(seconds or 0))
++ value = timedelta(weeks=int(weeks or 0),
++ days=int(days or 0),
++ hours=int(hours or 0),
++ minutes=int(minutes or 0),
++ seconds=int(seconds or 0))
+ if sign == '-':
+ value = -value
+ return value
diff --git a/dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch b/dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch
new file mode 100644
index 00000000000..799576f2f94
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch
@@ -0,0 +1,22 @@
+--- src/icalendar/prop.py.orig 2010-03-29 21:05:47.000000000 -0400
++++ src/icalendar/prop.py 2010-03-29 21:01:47.000000000 -0400
+@@ -585,7 +585,7 @@
+ wrong_type_used = 0
+ if wrong_type_used:
+ raise ValueError ('You must use datetime, date or timedelta')
+- if isinstance(dt, date):
++ if type(dt) is date:
+ self.params = Parameters(dict(value='DATE'))
+
+ self.dt = dt
+--- src/icalendar/cal.py.orig 2009-12-14 08:43:50.000000000 -0500
++++ src/icalendar/cal.py 2010-04-25 09:11:44.000000000 -0400
+@@ -520,7 +520,7 @@
+ >>> event.set('dtstart', datetime(2005,4,4,8,0,0))
+ >>> cal.add_component(event)
+ >>> cal.subcomponents[0].as_string()
+- 'BEGIN:VEVENT\\r\\nDTSTART;VALUE=DATE:20050404T080000\\r\\nSUMMARY:Python meeting about calendaring\\r\\nUID:42\\r\\nEND:VEVENT\\r\\n'
++ 'BEGIN:VEVENT\\r\\nDTSTART:20050404T080000\\r\\nSUMMARY:Python meeting about calendaring\\r\\nUID:42\\r\\nEND:VEVENT\\r\\n'
+
+ Write to disc
+ >>> import tempfile, os
diff --git a/dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch b/dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch
new file mode 100644
index 00000000000..e0ac0cf3671
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch
@@ -0,0 +1,30 @@
+From http://codespeak.net/pipermail/icalendar-dev/2010-April/000152.html:
+
+Lines get folded in the middle of multi-octet sequences (checked out
+code from svn today). Consider this case:
+import icalendar
+ical = icalendar.Calendar()
+ical.add('summary', u'a' + u'ą'*100)
+ical.as_string().decode('utf-8')
+...
+UnicodeDecodeError: 'utf8' codec can't decode bytes in position 90-91:
+invalid data
+
+I have attached a diff of a simple one-line fix.
+
+As I see in the code you actually try not to split a multi-octet
+character but you don't recalculate the slice after finding the new
+end position. Could you confirm this?
+
+Submitted by Rimvydas Naktinis.
+===================================================================
+--- src/icalendar/parser.py (revision 73587)
++++ src/icalendar/parser.py (working copy)
+@@ -456,6 +456,7 @@
+ else:
+ end -= 1
+
++ slice = self[start:end]
+ new_lines.append(slice)
+ if end == l_line:
+ # Done
diff --git a/dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch b/dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch
new file mode 100644
index 00000000000..cef265e3b34
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch
@@ -0,0 +1,37 @@
+--- test.py.orig 2010-04-25 09:19:36.000000000 -0400
++++ test.py 2010-04-25 09:26:23.000000000 -0400
+@@ -77,7 +77,6 @@
+ import traceback
+ import linecache
+ import pdb
+-from sets import Set
+
+ __metaclass__ = type
+
+@@ -261,7 +260,7 @@
+ """Returns a set of test case classes used in a test suite."""
+ if not isinstance(suite, unittest.TestSuite):
+ raise TypeError('not a TestSuite', suite)
+- results = Set()
++ results = set()
+ for test in suite._tests:
+ if isinstance(test, unittest.TestCase):
+ results.add(test.__class__)
+@@ -293,7 +292,7 @@
+ if test_suite is None:
+ continue
+ if cfg.warn_omitted:
+- all_classes = Set(get_all_test_cases(module))
++ all_classes = set(get_all_test_cases(module))
+ classes_in_suite = get_test_classes_from_testsuite(test_suite)
+ difference = all_classes - classes_in_suite
+ for test_class in difference:
+@@ -320,7 +319,7 @@
+ def get_test_hooks(test_files, cfg, tracer=None):
+ """Returns a list of test hooks from a given list of test modules."""
+ results = []
+- dirs = Set(map(os.path.dirname, test_files))
++ dirs = set(map(os.path.dirname, test_files))
+ for dir in list(dirs):
+ if os.path.basename(dir) == 'ftests':
+ dirs.add(os.path.join(os.path.dirname(dir), 'tests'))
diff --git a/dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch b/dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch
new file mode 100644
index 00000000000..0195e63da31
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch
@@ -0,0 +1,17 @@
+This fixes doctests with Python 2.7. With improved float handling,
+float('37.86013') == 37.86013. This seems to be the only way to
+handle this test across Python versions.
+===================================================================
+--- src/icalendar/prop.py 2010-08-03 21:19:06.000000000 -0400
++++ src/icalendar/prop.py 2010-08-03 21:20:48.000000000 -0400
+@@ -1196,8 +1196,8 @@
+ '1.2;3.0'
+
+ >>> g = vGeo.from_ical('37.386013;-122.082932')
+- >>> g
+- (37.386012999999998, -122.082932)
++ >>> g == (float('37.386013'), float('-122.082932'))
++ True
+
+ >>> vGeo(g).ical()
+ '37.386013;-122.082932'
diff --git a/dev-python/icalendar/icalendar-3.8.4.ebuild b/dev-python/icalendar/icalendar-3.8.4.ebuild
new file mode 100644
index 00000000000..d6093221cce
--- /dev/null
+++ b/dev-python/icalendar/icalendar-3.8.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="collective-${PN}"
+
+DESCRIPTION="Package used for parsing and generating iCalendar files (RFC 2445)"
+HOMEPAGE="http://github.com/collective/icalendar"
+SRC_URI="mirror://pypi/i/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x86-fbsd"
+IUSE="doc test"
+DOCS="README.rst"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ if use doc; then
+ pushd docs > /dev/null
+ emake text
+ popd > /dev/null
+ DOCS=( ${DOCS} docs/_build/text/*.txt )
+ fi
+}
+
+python_test() {
+ # From tox.ini
+ coverage run --source=src/icalendar --omit=*/tests/* --module \
+ pytest src/icalendar || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/icalendar/icalendar-3.9.0.ebuild b/dev-python/icalendar/icalendar-3.9.0.ebuild
new file mode 100644
index 00000000000..7f34ffd772f
--- /dev/null
+++ b/dev-python/icalendar/icalendar-3.9.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="collective-${PN}"
+
+DESCRIPTION="Package used for parsing and generating iCalendar files (RFC 2445)"
+HOMEPAGE="http://github.com/collective/icalendar"
+SRC_URI="mirror://pypi/i/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+IUSE="doc test"
+DOCS="README.rst"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # reset conf.py to not read version from an installed instance
+ sed -e "s:pkg_resources.get_distribution('icalendar').version:'3.9.0':" \
+ -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ pushd docs > /dev/null
+ emake text
+ popd > /dev/null
+ DOCS=( ${DOCS} docs/_build/text/*.txt )
+ fi
+}
+
+python_test() {
+ # From tox.ini
+ coverage run --source=src/icalendar --omit=*/tests/* --module \
+ pytest src/icalendar || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/icalendar/metadata.xml b/dev-python/icalendar/metadata.xml
new file mode 100644
index 00000000000..4cc5905947a
--- /dev/null
+++ b/dev-python/icalendar/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="doc">Generate examples and other extra documentation</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">icalendar</remote-id>
+ <remote-id type="github">collective/icalendar</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/iconvcodec/Manifest b/dev-python/iconvcodec/Manifest
new file mode 100644
index 00000000000..b09ae49d017
--- /dev/null
+++ b/dev-python/iconvcodec/Manifest
@@ -0,0 +1 @@
+DIST iconvcodec-1.1.2.tar.gz 17643 SHA256 89960c9192f1398fbe62e8b10e1b46e92638324522081d8aff7540e201968cb3 SHA512 e63af4166cc8199dab888d9bf59d666546bceb1f71d2ce8423c4d3c9b374e870e8a526ffe1254cded346f9bc7a0f23d23e6e9120224d45fa4755468dd0a995e5 WHIRLPOOL 643df353020aad226343105001952080408eb3e2ead1cd7de5c19565981e87fdf40f772eae1450bcf122fbad5623269538eb63b7397d345c657a16dc1a6f3a9d
diff --git a/dev-python/iconvcodec/iconvcodec-1.1.2-r1.ebuild b/dev-python/iconvcodec/iconvcodec-1.1.2-r1.ebuild
new file mode 100644
index 00000000000..42477989113
--- /dev/null
+++ b/dev-python/iconvcodec/iconvcodec-1.1.2-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Codecs for Iconv Encodings"
+HOMEPAGE="http://cjkpython.i18n.org/"
+SRC_URI="mirror://berlios/cjkpython/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ia64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+src_compile() {
+ distutils-r1_src_compile --with-libc
+}
diff --git a/dev-python/iconvcodec/metadata.xml b/dev-python/iconvcodec/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/iconvcodec/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/id3-py/Manifest b/dev-python/id3-py/Manifest
new file mode 100644
index 00000000000..fc98fa3c955
--- /dev/null
+++ b/dev-python/id3-py/Manifest
@@ -0,0 +1 @@
+DIST id3-py_1.2.tar.gz 16650 SHA256 ba612342b59a49cbf9a7eb23a646667757ffda96dc23b67245fc6cd8d90c2022 SHA512 d629a964e9008be1645815d659b45b2c1cbecc4cb5c51624adb733e0a847198848afb3959f2342df9077ce01ee1f546997639c56bfc357fa9ceec7d01da8d4fd WHIRLPOOL bbc4503ecaace0d087f3f747288b8f4ea4896889fb38695b53f1813f5b3ac258045831d522ae7b4da1d8d632a1c1dd78d01d23770a0128151f0acf96cc0a9bae
diff --git a/dev-python/id3-py/id3-py-1.2-r1.ebuild b/dev-python/id3-py/id3-py-1.2-r1.ebuild
new file mode 100644
index 00000000000..c6ff86dd32b
--- /dev/null
+++ b/dev-python/id3-py/id3-py-1.2-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for manipulating ID3 tags in Python"
+SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV}.tar.gz"
+HOMEPAGE="http://id3-py.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
diff --git a/dev-python/id3-py/id3-py-1.2.ebuild b/dev-python/id3-py/id3-py-1.2.ebuild
new file mode 100644
index 00000000000..cc120115428
--- /dev/null
+++ b/dev-python/id3-py/id3-py-1.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils
+
+DESCRIPTION="Module for manipulating ID3 tags in Python"
+SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV}.tar.gz"
+HOMEPAGE="http://id3-py.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DOCS="CHANGES README"
+PYTHON_MODNAME="ID3.py"
diff --git a/dev-python/id3-py/metadata.xml b/dev-python/id3-py/metadata.xml
new file mode 100644
index 00000000000..50a933a8033
--- /dev/null
+++ b/dev-python/id3-py/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">id3-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/idna/Manifest b/dev-python/idna/Manifest
new file mode 100644
index 00000000000..468f6d384d7
--- /dev/null
+++ b/dev-python/idna/Manifest
@@ -0,0 +1,2 @@
+DIST idna-1.1.tar.gz 99242 SHA256 3dab514abd255ada7994a57161750e8f054b938bf7adb8b40b96f13df54efaed SHA512 eb7a3673641827899ab9a4ba56f214e1fd3d17370d05bb04464664c2752ba7636507c3f6a64c9e24d44a1dd566842ffc86ce01351c1bfcebc3248baab786b99c WHIRLPOOL 90c1e03b23f3765749778f41ad7eac5befd5122f0552cf1616c7e4f53ae1d3f68f964753bf050956d773b720d608479830d72eb0a94d62848eab86ab4491326e
+DIST idna-2.0.tar.gz 135150 SHA256 16199aad938b290f5be1057c0e1efc6546229391c23cea61ca940c115f7d3d3b SHA512 005f88e954f13ace584ced510752da58d1cb16ebfbeee10aeef5bec57b3c61a3a5d7ce0bb50deba6dc90b412607727bf94a95a785e91d6528cd8633961c142dc WHIRLPOOL d865420f1c5f648d12480af93a52e0b2d463064c34c57ce56022f6965c2e4f6a49244e7798b9fcc18a7c6517b98e88bf84dc52e0050abe2ce504365b5579d2b6
diff --git a/dev-python/idna/idna-1.1.ebuild b/dev-python/idna/idna-1.1.ebuild
new file mode 100644
index 00000000000..583c5446adf
--- /dev/null
+++ b/dev-python/idna/idna-1.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Internationalized Domain Names in Applications (IDNA)"
+HOMEPAGE="https://github.com/kjd/idna"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/idna/idna-2.0.ebuild b/dev-python/idna/idna-2.0.ebuild
new file mode 100644
index 00000000000..52c85f14ce7
--- /dev/null
+++ b/dev-python/idna/idna-2.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Internationalized Domain Names in Applications (IDNA)"
+HOMEPAGE="https://github.com/kjd/idna"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/idna/metadata.xml b/dev-python/idna/metadata.xml
new file mode 100644
index 00000000000..26e53561cec
--- /dev/null
+++ b/dev-python/idna/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">idna</remote-id>
+ <remote-id type="github">kjd/idna</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ijson/Manifest b/dev-python/ijson/Manifest
new file mode 100644
index 00000000000..dfa4c60ac55
--- /dev/null
+++ b/dev-python/ijson/Manifest
@@ -0,0 +1,4 @@
+DIST ijson-1.1.tar.gz 8415 SHA256 33d10eac83d6dd757e2861b4ce06b3467a828481d608017af3d0caeb023ba32a SHA512 aebb3e46688b785a18366230b9f94c1b36d44f0764d8603b7ae50a2426b53eddad883c5d1fbda8f52d655d789880f1a7329bc6d1383ed963e9835d7ec40bdfdf WHIRLPOOL 3921e6fa8f0f8a1b17aa234cdcdcf3fc0d3bb97fce78803b84502ac762f5526cc526ee5fc48d65ecf4e88cde90be71414ef4912bf95781070e5266b7b3809f7b
+DIST ijson-2.0.tar.gz 9560 SHA256 85bfc06b2bb492f205bc5dd9531ff0e64d2e18e03e64665934715d58331c1dd8 SHA512 8ea8b89766d3e3ccc3f0bf348ba9068cd80f24aa7648e7bfd2272e701430445f2ab81744280dce8dde9e18dd0582f0fde784aae61493479b4f5a44a5175d7fc7 WHIRLPOOL 495e023bc79b5ffe55e50975af3c6fb65993156b2a9a32e1b98b1891fc8235c739d854baf511625fba5b1806fcbef8944809e3de13e7feaaedfeb8489c6d7fe3
+DIST ijson-2.1.tar.gz 9859 SHA256 bc69a512399db0469f5faabe34f9f7ce21964d1993c6a6720cc4cea911fb8a45 SHA512 67773540c1d7df6aaaf22b064d0ea7660c8b69b4371a15ec9f46228f1ebbe604aa29b1d93821f62928b41841ecd411419d39c636aae7dddacffd2b8d881d865e WHIRLPOOL ede0bb85abad4023d06eeb036249ffeb2aaafb95774da9a280cb765e2ac0c5e40dfa3ca80a0f043616884391da97d95847ff727e4593ecc9c3db045606c1567b
+DIST ijson-2.2.tar.gz 10282 SHA256 58aeeeda35c9d72061a34861ca7ff7b214e701e413b65f8e9ec06589c4aa2d30 SHA512 bcfc3571ccf6b011e745a2bf84b50ba3793e999cbebb0a2d377d56fa68d5068ecf549457fd14de6849059bc909f2493d6def41c1df581e1283e2826eb1b789b4 WHIRLPOOL 72c0210500f64ec39dfffb9c6aa5f7dcb2b969981bf908af55c554666687694bf0f68912281acdb019cc1beace31ea646c3aaf6bb34330d877ac3d1d1e83aa5f
diff --git a/dev-python/ijson/ijson-1.1.ebuild b/dev-python/ijson/ijson-1.1.ebuild
new file mode 100644
index 00000000000..9f1b05b7c0e
--- /dev/null
+++ b/dev-python/ijson/ijson-1.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Iterative JSON parser with a Pythonic interface"
+HOMEPAGE="https://github.com/isagalaev/ijson http://pypi.python.org/pypi/ijson/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/yajl"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/ijson/ijson-2.0.ebuild b/dev-python/ijson/ijson-2.0.ebuild
new file mode 100644
index 00000000000..9a20a775ad3
--- /dev/null
+++ b/dev-python/ijson/ijson-2.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Iterative JSON parser with a Pythonic interface"
+HOMEPAGE="https://github.com/isagalaev/ijson http://pypi.python.org/pypi/ijson/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="dev-libs/yajl"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ijson/ijson-2.1.ebuild b/dev-python/ijson/ijson-2.1.ebuild
new file mode 100644
index 00000000000..2a133942b25
--- /dev/null
+++ b/dev-python/ijson/ijson-2.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Iterative JSON parser with a Pythonic interface"
+HOMEPAGE="https://github.com/isagalaev/ijson http://pypi.python.org/pypi/ijson/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-libs/yajl"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ijson/ijson-2.2.ebuild b/dev-python/ijson/ijson-2.2.ebuild
new file mode 100644
index 00000000000..03204571e25
--- /dev/null
+++ b/dev-python/ijson/ijson-2.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Iterative JSON parser with a Pythonic interface"
+HOMEPAGE="https://github.com/isagalaev/ijson http://pypi.python.org/pypi/ijson/"
+SRC_URI="https://github.com/isagalaev/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-libs/yajl"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${EPYTHON} tests.py || die
+}
diff --git a/dev-python/ijson/metadata.xml b/dev-python/ijson/metadata.xml
new file mode 100644
index 00000000000..be2e905889c
--- /dev/null
+++ b/dev-python/ijson/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">ijson</remote-id>
+ <remote-id type="github">isagalaev/ijson</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/imaging/Manifest b/dev-python/imaging/Manifest
new file mode 100644
index 00000000000..68b418ae3f9
--- /dev/null
+++ b/dev-python/imaging/Manifest
@@ -0,0 +1 @@
+DIST Imaging-1.1.7.tar.gz 498749 SHA256 895bc7c2498c8e1f9b99938f1a40dc86b3f149741f105cf7c7bd2e0725405211 SHA512 fec2d39b4db3cb33cd7e7895aba4c3a8a5d4cff28decb9106c88e392cb848edf5593fcd77d11994bb16321837fdb26958787dac2c86d6f7c09996f466bac11f1 WHIRLPOOL e610b4097723f77de4c495537c64741ee4bd996f89d12e2e7853fb8f09028d02fa46920a86827f263eb6324a9063d2321ff865c80b7f8482b19f8143500575e8
diff --git a/dev-python/imaging/files/imaging-1.1.7-dont-run-multiple-viewers.patch b/dev-python/imaging/files/imaging-1.1.7-dont-run-multiple-viewers.patch
new file mode 100644
index 00000000000..7733a489038
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-dont-run-multiple-viewers.patch
@@ -0,0 +1,10 @@
+--- PIL/ImageShow.py.old 2011-01-29 14:09:12.000000000 -0200
++++ PIL/ImageShow.py 2011-01-29 14:09:28.000000000 -0200
+@@ -63,7 +63,7 @@
+ if base != image.mode and image.mode != "1":
+ image = image.convert(base)
+
+- self.show_image(image, **options)
++ return self.show_image(image, **options)
+
+ # hook methods
diff --git a/dev-python/imaging/files/imaging-1.1.7-ft-header-include.patch b/dev-python/imaging/files/imaging-1.1.7-ft-header-include.patch
new file mode 100644
index 00000000000..cdc06839038
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-ft-header-include.patch
@@ -0,0 +1,20 @@
+https://bugs.gentoo.org/508748
+
+fix building w/freetype-2.5.3
+
+patch by Jungshik Shin <jshin@chromium.org>
+
+--- Imaging-1.1.7/_imagingft.c
++++ Imaging-1.1.7/_imagingft.c
+@@ -70,7 +70,11 @@
+ const char* message;
+ } ft_errors[] =
+
++#if defined(USE_FREETYPE_2_1)
++#include FT_ERRORS_H
++#else
+ #include <freetype/fterrors.h>
++#endif
+
+ /* -------------------------------------------------------------------- */
+ /* font objects */
diff --git a/dev-python/imaging/files/imaging-1.1.7-giftrans.patch b/dev-python/imaging/files/imaging-1.1.7-giftrans.patch
new file mode 100644
index 00000000000..1a109d28eee
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-giftrans.patch
@@ -0,0 +1,14 @@
+--- Imaging-1.1.6.orig/PIL/GifImagePlugin.py 2006-12-03 11:37:15.000000000 +0000
++++ Imaging-1.1.6/PIL/GifImagePlugin.py 2008-10-02 14:51:43.000000000 +0100
+@@ -352,6 +352,11 @@
+ for i in range(maxcolor):
+ s.append(chr(i) * 3)
+
++ if im.info.has_key('transparency'):
++ transparentIndex = im.info['transparency']
++ s.append('!' + chr(0xf9) + chr(4) + chr(1) + chr(0) + chr(0) +
++ chr(transparentIndex) + chr(0))
++
+ return s
+
+ def getdata(im, offset = (0, 0), **params):
diff --git a/dev-python/imaging/files/imaging-1.1.7-missing-math.patch b/dev-python/imaging/files/imaging-1.1.7-missing-math.patch
new file mode 100644
index 00000000000..f4d6167eecc
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-missing-math.patch
@@ -0,0 +1,20 @@
+--- setup.py.old 2009-07-03 11:34:59.141671252 +0200
++++ setup.py 2009-07-03 11:51:54.415666711 +0200
+@@ -281,6 +281,8 @@ class pil_build_ext(build_ext):
+ if struct.unpack("h", "\0\1")[0] == 1:
+ defs.append(("WORDS_BIGENDIAN", None))
+
++ libs.append("m")
++
+ exts = [(Extension(
+ "_imaging", files, libraries=libs, define_macros=defs
+ ))]
+@@ -332,7 +334,7 @@ class pil_build_ext(build_ext):
+ ))
+
+ if os.path.isfile("_imagingmath.c"):
+- exts.append(Extension("_imagingmath", ["_imagingmath.c"]))
++ exts.append(Extension("_imagingmath", ["_imagingmath.c"], libraries=["m"]))
+
+ self.extensions[:] = exts
+
diff --git a/dev-python/imaging/files/imaging-1.1.7-no-host-paths.patch b/dev-python/imaging/files/imaging-1.1.7-no-host-paths.patch
new file mode 100644
index 00000000000..a84c032450c
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-no-host-paths.patch
@@ -0,0 +1,29 @@
+do not poke around /usr/include and /usr/lib directly as it's (1) not needed
+and (2) breaks cross-compiling
+
+patch from Chromium OS
+
+--- a/setup.py
++++ b/setup.py
+@@ -147,7 +147,6 @@ class pil_build_ext(build_ext):
+ add_directory(library_dirs, "/opt/local/lib")
+ add_directory(include_dirs, "/opt/local/include")
+
+- add_directory(library_dirs, "/usr/local/lib")
+ # FIXME: check /opt/stuff directories here?
+
+ prefix = sysconfig.get_config_var("prefix")
+@@ -207,13 +206,6 @@ class pil_build_ext(build_ext):
+ if os.path.isfile(os.path.join(tcl_dir, "tk.h")):
+ add_directory(include_dirs, tcl_dir)
+
+- # standard locations
+- add_directory(library_dirs, "/usr/local/lib")
+- add_directory(include_dirs, "/usr/local/include")
+-
+- add_directory(library_dirs, "/usr/lib")
+- add_directory(include_dirs, "/usr/include")
+-
+ #
+ # insert new dirs *before* default libs, to avoid conflicts
+ # between Python PYD stub libs and real libraries
diff --git a/dev-python/imaging/files/imaging-1.1.7-no-xv.patch b/dev-python/imaging/files/imaging-1.1.7-no-xv.patch
new file mode 100644
index 00000000000..1cbaf515bd4
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-no-xv.patch
@@ -0,0 +1,18 @@
+--- PIL/ImageShow.py.old 2009-11-30 10:28:37.000000000 +0100
++++ PIL/ImageShow.py 2009-11-30 10:29:02.000000000 +0100
+@@ -149,13 +149,10 @@
+ def get_command_ex(self, file, title=None, **options):
+ # note: xv is pretty outdated. most modern systems have
+ # imagemagick's display command instead.
+- command = executable = "xv"
+- if title:
+- # FIXME: do full escaping
+- command = command + " -name \"%s\"" % title
++ command = executable = "xdg-open"
+ return command, executable
+
+- if which("xv"):
++ if which("xdg-open"):
+ register(XVViewer)
+
+ if __name__ == "__main__":
diff --git a/dev-python/imaging/files/imaging-1.1.7-nolcms.patch b/dev-python/imaging/files/imaging-1.1.7-nolcms.patch
new file mode 100644
index 00000000000..e087cd301dd
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-nolcms.patch
@@ -0,0 +1,13 @@
+--- setup.py.orig
++++ setup.py 2011-09-04
+@@ -264,10 +264,6 @@
+ if dir:
+ add_directory(self.compiler.include_dirs, dir, 0)
+
+- if find_include_file(self, "lcms.h"):
+- if find_library_file(self, "lcms"):
+- feature.lcms = "lcms"
+-
+ if _tkinter and find_include_file(self, "tk.h"):
+ # the library names may vary somewhat (e.g. tcl84 or tcl8.4)
+ version = TCL_VERSION[0] + TCL_VERSION[2]
diff --git a/dev-python/imaging/files/imaging-1.1.7-sane.patch b/dev-python/imaging/files/imaging-1.1.7-sane.patch
new file mode 100644
index 00000000000..4970e50033a
--- /dev/null
+++ b/dev-python/imaging/files/imaging-1.1.7-sane.patch
@@ -0,0 +1,13 @@
+--- Imaging-1.1.6/Sane/_sane.c.orig 2006-12-03 13:12:22.000000000 +0100
++++ Imaging-1.1.6/Sane/_sane.c 2009-02-28 11:41:19.000000000 +0200
+@@ -1152,8 +1152,8 @@
+ static PyObject *
+ PySane_get_devices(PyObject *self, PyObject *args)
+ {
+- SANE_Device **devlist;
+- SANE_Device *dev;
++ const SANE_Device **devlist;
++ const SANE_Device *dev;
+ SANE_Status st;
+ PyObject *list;
+ int local_only, i;
diff --git a/dev-python/imaging/imaging-1.1.7-r5.ebuild b/dev-python/imaging/imaging-1.1.7-r5.ebuild
new file mode 100644
index 00000000000..c5124b79788
--- /dev/null
+++ b/dev-python/imaging/imaging-1.1.7-r5.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1
+
+MY_P=Imaging-${PV}
+
+DESCRIPTION="Python Imaging Library (PIL)"
+HOMEPAGE="http://www.pythonware.com/products/pil/index.htm"
+SRC_URI="http://www.effbot.org/downloads/${MY_P}.tar.gz"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc examples jpeg scanner test tiff tk truetype zlib"
+
+RDEPEND="
+ truetype? ( media-libs/freetype:2 )
+ jpeg? ( virtual/jpeg )
+ scanner? ( media-gfx/sane-backends )
+ tiff? ( media-libs/tiff )
+ zlib? ( sys-libs/zlib )
+ !dev-python/pillow"
+DEPEND="${RDEPEND}"
+RDEPEND+=" !dev-python/pillow"
+
+# Tests don't handle missing jpeg, tiff & zlib properly.
+REQUIRED_USE="test? ( jpeg tiff zlib )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${P}-no-xv.patch"
+ "${FILESDIR}/${P}-sane.patch"
+ "${FILESDIR}/${P}-giftrans.patch"
+ "${FILESDIR}/${P}-missing-math.patch"
+ "${FILESDIR}/${P}-ft-header-include.patch"
+ "${FILESDIR}/${P}-dont-run-multiple-viewers.patch"
+ "${FILESDIR}/${P}-no-host-paths.patch"
+ )
+
+ # Add shebangs.
+ sed -e "1i#!/usr/bin/env python" -i Scripts/*.py || die
+
+ # Disable all the stuff we don't want.
+ local f
+ for f in jpeg tiff tk zlib; do
+ if ! use ${f}; then
+ sed -i -e "s:feature.${f} =:& None #:" setup.py || die
+ fi
+ done
+ if ! use truetype; then
+ sed -i -e 's:feature.freetype =:& None #:' setup.py || die
+ fi
+ sed -i -e "s:feature.lcms =:& None #:" setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+# XXX: split into two ebuilds?
+wrap_phase() {
+ "${@}"
+
+ if use scanner; then
+ cd Sane || die
+ "${@}"
+ fi
+}
+
+python_compile() {
+ wrap_phase distutils-r1_python_compile
+}
+
+python_test() {
+ "${PYTHON}" selftest.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ python_doheader libImaging/{Imaging.h,ImPlatform.h}
+
+ wrap_phase distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Docs/. )
+ use examples && local EXAMPLES=( Scripts/. )
+
+ distutils-r1_python_install_all
+
+ if use scanner; then
+ docinto sane
+ dodoc Sane/{CHANGES,README,sanedoc.txt}
+ fi
+
+ if use examples && use scanner; then
+ docinto examples/sane
+ dodoc Sane/demo_*.py
+ docompress -x /usr/share/${PF}/examples
+ fi
+}
diff --git a/dev-python/imaging/metadata.xml b/dev-python/imaging/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/imaging/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/imapclient/Manifest b/dev-python/imapclient/Manifest
new file mode 100644
index 00000000000..024dfc8f164
--- /dev/null
+++ b/dev-python/imapclient/Manifest
@@ -0,0 +1,2 @@
+DIST IMAPClient-0.12.tar.gz 100698 SHA256 037ff008f1454287c1ed8684e1cf40b2ced382a875c5157dce380562f3566e15 SHA512 bd7d3e3911ff5ef1cc4a66f20e261955851562e76228f941d35f16a4680678be6a3741d520cc3133925a2dba9e8b6b5b988d7a740ff8abb63c14db1cf962acda WHIRLPOOL 134bf4db98806dbaf98bd780b92b8be2a2dbbcfec1ae83320f52a83bf0952f139bebd99d686d212830d25c08886217062577576a76205af54085628b03d7dbeb
+DIST IMAPClient-0.13.tar.gz 102427 SHA256 3a0e9a3c790722aa4882982090e68546c7f9352eb535026b06cead965968f36c SHA512 daebaf7f4180b6c9c6f4a486b313abfdd06f3ed8ece18a19bf46a50e56c2094e85de8a8e4efb8850566378eba016c10816611d03852caf637ee1d43f3c8a418f WHIRLPOOL b29ae9ea83ea4e736202af263215132028da47dfb4e9ee220b37e35eb2649cb85cc46bdabf6b06c5edb5f5173b8b942cb73293c0ae22c5efb1397c7bb65cfde9
diff --git a/dev-python/imapclient/files/0.12-tests.patch b/dev-python/imapclient/files/0.12-tests.patch
new file mode 100644
index 00000000000..0bd0d001e6e
--- /dev/null
+++ b/dev-python/imapclient/files/0.12-tests.patch
@@ -0,0 +1,36 @@
+diff -ur IMAPClient-0.12.orig/imapclient/test/test_imapclient.py IMAPClient-0.12/imapclient/test/test_imapclient.py
+--- imapclient/test/test_imapclient.py 2015-01-12 19:36:18.000000000 +0800
++++ imapclient/test/test_imapclient.py 2015-01-17 08:42:46.669121934 +0800
+@@ -10,7 +10,7 @@
+ from datetime import datetime
+ from mock import patch, sentinel, Mock
+
+-from imapclient import six
++import six
+ from imapclient.fixed_offset import FixedOffset
+ from .testable_imapclient import TestableIMAPClient as IMAPClient
+ from .imapclient_test import IMAPClientTest
+diff -ur IMAPClient-0.12.orig/imapclient/test/test_imap_utf7.py IMAPClient-0.12/imapclient/test/test_imap_utf7.py
+--- imapclient/test/test_imap_utf7.py 2015-01-12 19:36:18.000000000 +0800
++++ imapclient/test/test_imap_utf7.py 2015-01-17 08:43:23.893392410 +0800
+@@ -4,7 +4,7 @@
+
+ from __future__ import unicode_literals
+
+-from imapclient.six import text_type, binary_type, int2byte, unichr
++from six import text_type, binary_type, int2byte, unichr
+ from imapclient.imap_utf7 import decode, encode
+ from imapclient.test.util import unittest
+
+diff -ur IMAPClient-0.12.orig/imapclient/test/test_response_lexer.py IMAPClient-0.12/imapclient/test/test_response_lexer.py
+--- imapclient/test/test_response_lexer.py 2015-01-12 19:36:18.000000000 +0800
++++ imapclient/test/test_response_lexer.py 2015-01-17 08:42:14.749747748 +0800
+@@ -5,7 +5,7 @@
+ from __future__ import unicode_literals
+
+ from imapclient.response_lexer import TokenSource
+-from imapclient.six import next
++from six import next
+ from imapclient.test.util import unittest
+
+
diff --git a/dev-python/imapclient/imapclient-0.12.ebuild b/dev-python/imapclient/imapclient-0.12.ebuild
new file mode 100644
index 00000000000..26390b0d019
--- /dev/null
+++ b/dev-python/imapclient/imapclient-0.12.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="IMAPClient"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="easy-to-use, pythonic, and complete IMAP client library"
+HOMEPAGE="http://imapclient.freshfoo.com/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy) )"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ # use system setuptools
+ sed -i '/use_setuptools/d' setup.py || die
+
+ # drop explicit mock version test dep
+ sed -i "/tests_require/s:'mock==.\+':'mock':" setup.py || die
+
+ # use system six library. patch proven less preferable to use of sed (< maintenance)
+ # but a copy of the working hunks from prior version works fine for now.
+ rm imapclient/six.py || die
+ epatch "${FILESDIR}"/0.12-tests.patch
+ sed -e 's:from .six:from six:g' \
+ -e 's:from . import six:import six:g' \
+ -i ${PN}/*.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+ # don't install examples and tests in module dir
+ rm -r "${D}"$(python_get_sitedir)/imapclient/{examples,test} || die
+}
+
+python_install_all() {
+# local DOCS=( AUTHORS HACKING.rst NEWS.rst README.rst THANKS )
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+ use examples && dodoc -r ${PN}/examples
+}
diff --git a/dev-python/imapclient/imapclient-0.13.ebuild b/dev-python/imapclient/imapclient-0.13.ebuild
new file mode 100644
index 00000000000..09abfd0c76d
--- /dev/null
+++ b/dev-python/imapclient/imapclient-0.13.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="IMAPClient"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="easy-to-use, pythonic, and complete IMAP client library"
+HOMEPAGE="http://imapclient.freshfoo.com/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy) )"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ # use system setuptools
+ sed -i '/use_setuptools/d' setup.py || die
+
+ # drop explicit mock version test dep
+ sed -i "/tests_require/s:'mock==.\+':'mock':" setup.py || die
+
+ # use system six library. patch proven less preferable to use of sed (< maintenance)
+ # but a copy of the working hunks from prior version works fine for now.
+ rm imapclient/six.py || die
+ epatch "${FILESDIR}"/0.12-tests.patch
+ sed -e 's:from .six:from six:g' \
+ -e 's:from . import six:import six:g' \
+ -i ${PN}/*.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+ # don't install examples and tests in module dir
+ rm -r "${D}"$(python_get_sitedir)/imapclient/{examples,test} || die
+}
+
+python_install_all() {
+# local DOCS=( AUTHORS HACKING.rst NEWS.rst README.rst THANKS )
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+ use examples && dodoc -r ${PN}/examples
+}
diff --git a/dev-python/imapclient/metadata.xml b/dev-python/imapclient/metadata.xml
new file mode 100644
index 00000000000..4c44ce85c8d
--- /dev/null
+++ b/dev-python/imapclient/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">IMAPClient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/imdbpy/Manifest b/dev-python/imdbpy/Manifest
new file mode 100644
index 00000000000..49be0a82490
--- /dev/null
+++ b/dev-python/imdbpy/Manifest
@@ -0,0 +1,2 @@
+DIST IMDbPY-4.9.tar.gz 307726 SHA256 01e90dce4fe19aeca99c9d3eb14052769467b177e3fb8acc240f9c51c5f477d2 SHA512 1f46ea504e7ca61b0e8ba85bd2bfd88ef2ddc87f085d70336773d840401b03d6a8b807544ee665f4211ca093dc23dbc69619b5c04cab0b5024e73105179be8f4 WHIRLPOOL bb289000fe267124dfa1ee331a0c48722c5799b241d281e39483e73a8650804596d37922d516ad92ca2ca4ef140ff59d80bda99fbd2cbbd67e9bbe8222bbabb6
+DIST IMDbPY-5.0.tar.gz 367238 SHA256 3224a8896847cddb8d049a587852c66f0f33f36c89311ae9a89ff87ed51fc243 SHA512 924b9c9b7055c75abb1c48867ba9ccef3c5259c748a6f21e8344616da9ea58d5ae58a2f12a78dc61fea7c008956994687fdcf7ecd59f5f4e82daea62890086d4 WHIRLPOOL 5cae4a26734c10c3c21bc2f1be4fa5efca8e82a2cf78249c359f7e3c8bb8e12f1fefc535796f98d5b23b6c3174e11ac40f8e56749c93c859c7f63e052af6402f
diff --git a/dev-python/imdbpy/files/imdbpy-4.6-data_location.patch b/dev-python/imdbpy/files/imdbpy-4.6-data_location.patch
new file mode 100644
index 00000000000..90dc467170e
--- /dev/null
+++ b/dev-python/imdbpy/files/imdbpy-4.6-data_location.patch
@@ -0,0 +1,11 @@
+--- setup.py
++++ setup.py
+@@ -70,7 +70,7 @@
+
+ # XXX: I'm not sure that 'etc' is a good idea. Making it an absolute
+ # path seems a recipe for a disaster (with bdist_egg, at least).
+-data_files = [('doc', setuptools.findall('docs')), ('etc', ['docs/imdbpy.cfg'])]
++data_files = [('/etc', ['docs/imdbpy.cfg'])]
+
+
+ # Defining these 'features', it's possible to run commands like:
diff --git a/dev-python/imdbpy/imdbpy-4.9-r1.ebuild b/dev-python/imdbpy/imdbpy-4.9-r1.ebuild
new file mode 100644
index 00000000000..3f61d264cc6
--- /dev/null
+++ b/dev-python/imdbpy/imdbpy-4.9-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="IMDbPY"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python package to access the IMDb movie database"
+HOMEPAGE="http://imdbpy.sourceforge.net/ http://pypi.python.org/pypi/IMDbPY"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+DOCS=( docs/FAQS.txt docs/imdbpy48.dtd docs/imdbpy.cfg )
+
+PATCHES=( "${FILESDIR}/${PN}-4.6-data_location.patch" )
+
+src_configure() {
+ distutils-r1_src_configure --without-cutils
+}
+
+python_install_all() {
+ local doc
+ for doc in docs/README*
+ do
+ DOCS=( "${DOCS[@]}" $doc )
+ done
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/imdbpy/imdbpy-5.0.ebuild b/dev-python/imdbpy/imdbpy-5.0.ebuild
new file mode 100644
index 00000000000..3f61d264cc6
--- /dev/null
+++ b/dev-python/imdbpy/imdbpy-5.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="IMDbPY"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python package to access the IMDb movie database"
+HOMEPAGE="http://imdbpy.sourceforge.net/ http://pypi.python.org/pypi/IMDbPY"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+DOCS=( docs/FAQS.txt docs/imdbpy48.dtd docs/imdbpy.cfg )
+
+PATCHES=( "${FILESDIR}/${PN}-4.6-data_location.patch" )
+
+src_configure() {
+ distutils-r1_src_configure --without-cutils
+}
+
+python_install_all() {
+ local doc
+ for doc in docs/README*
+ do
+ DOCS=( "${DOCS[@]}" $doc )
+ done
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/imdbpy/metadata.xml b/dev-python/imdbpy/metadata.xml
new file mode 100644
index 00000000000..7cd64fc49e9
--- /dev/null
+++ b/dev-python/imdbpy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mythtv</herd>
+ <upstream>
+ <remote-id type="pypi">IMDbPY</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/importing/Manifest b/dev-python/importing/Manifest
new file mode 100644
index 00000000000..312b1599858
--- /dev/null
+++ b/dev-python/importing/Manifest
@@ -0,0 +1 @@
+DIST importing-1.10.zip 17138 SHA256 e61348d8d37b20b69c887ded5378ca99f2588e177133a06607130e6a5515062f SHA512 628f4c119c8d0cf558580887fe30683223dcc439ca7ad5f7fa442d87452f3aa7b2f8ad200634c70a969dfdef7ef5938fd51fd36044d311296a8df73b5f2851cc WHIRLPOOL afcd84da66bc9292c8b8657dc72ba2693928b515607ea1ec3843c9411aaed3c7f50ad484f532ceff64eca38136d71b28b04ab991df63277f4e9edbd12bfc9156
diff --git a/dev-python/importing/importing-1.10.ebuild b/dev-python/importing/importing-1.10.ebuild
new file mode 100644
index 00000000000..9b21430271c
--- /dev/null
+++ b/dev-python/importing/importing-1.10.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="Importing"
+
+DESCRIPTION="Import objects dynamically, lazily, "weakly", and more"
+HOMEPAGE=" http://peak.telecommunity.com/DevCenter/Importing"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip -> ${P}.zip"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+LICENSE="ZPL"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_PN}-${PV}
diff --git a/dev-python/importing/metadata.xml b/dev-python/importing/metadata.xml
new file mode 100644
index 00000000000..16ed310e632
--- /dev/null
+++ b/dev-python/importing/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Importing</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/iniparse/Manifest b/dev-python/iniparse/Manifest
new file mode 100644
index 00000000000..8a37f275f5f
--- /dev/null
+++ b/dev-python/iniparse/Manifest
@@ -0,0 +1 @@
+DIST iniparse-0.4.tar.gz 31278 SHA256 abc1ee12d2cfb2506109072d6c21e40b6c75a3fe90a9c924327d80bc0d99c054 SHA512 d59eae7c1ce474c89eddb0b0cbff5973444571728aa0c6ce5b3632984353415f7eec4de63cf007c276df0d1bb914b2ea5dd0acc00f3a261285c8e2e9883fbe9a WHIRLPOOL 08c81ccaeb18e84f479c1ec851218b3d9466807126ca91d06a906fc36ab13e675939b41f78404200114de14e11ebae402caf7994138090ea247102b2ce6953c5
diff --git a/dev-python/iniparse/iniparse-0.4-r1.ebuild b/dev-python/iniparse/iniparse-0.4-r1.ebuild
new file mode 100644
index 00000000000..d1162adc2cd
--- /dev/null
+++ b/dev-python/iniparse/iniparse-0.4-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Better INI parser for Python"
+HOMEPAGE="http://code.google.com/p/iniparse http://pypi.python.org/pypi/iniparse"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT PSF-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" runtests.py || die
+}
diff --git a/dev-python/iniparse/metadata.xml b/dev-python/iniparse/metadata.xml
new file mode 100644
index 00000000000..4927106fb50
--- /dev/null
+++ b/dev-python/iniparse/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">iniparse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/inotifyx/Manifest b/dev-python/inotifyx/Manifest
new file mode 100644
index 00000000000..7d380a2957c
--- /dev/null
+++ b/dev-python/inotifyx/Manifest
@@ -0,0 +1,2 @@
+DIST inotifyx-0.2.0.tar.gz 11302 SHA256 1a1769816324a1ccb766ecd7f336cf07b8bc498477d83cbb0e6dcea69c1dd60b SHA512 6b1230d16c47bd77256259a40051ab48963fe9de96f0242fc0e34d467ae012708d9b43e149ef29acc43cefe8dc02cc7fdbe11572ea4515a9c3456c73a6d27723 WHIRLPOOL f293ed382a540ef43b44c3a09992a39d31f9f7f086be1ee04a3f570519116ca44a9c4cc2789a42d092f32f9b3967958d108b3bb4d80858adc7d686d1ec8072e1
+DIST inotifyx-0.2.2.tar.gz 11831 SHA256 bad6a84df2a110f282d398dff112b1d3c838a6d50907305121a9af590d185fab SHA512 a00a947da2bd31d9b867f21666aceed48b0bf9be6b1b3643676450ed68bd71400601e57e004bcd45e93274cabf933694887797f3a4e334ce6924236763112c56 WHIRLPOOL 806c83a69141d901f3df443739bc3a5dfc6d5f66dc45fc4c8c6780e1267aa709f0c3bbdb775caa332bdcd954b262523fcd3b8bf2867e408382175f806925dfeb
diff --git a/dev-python/inotifyx/inotifyx-0.2.0-r1.ebuild b/dev-python/inotifyx/inotifyx-0.2.0-r1.ebuild
new file mode 100644
index 00000000000..e57c28f4453
--- /dev/null
+++ b/dev-python/inotifyx/inotifyx-0.2.0-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings to the Linux inotify file system event monitoring API"
+HOMEPAGE="http://www.alittletooquiet.net/software/inotifyx/"
+SRC_URI="http://launchpad.net/inotifyx/dev/v${PV}/+download/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND=""
+RDEPEND=""
+
+python_prepare_all() {
+ use test && DISTUTILS_NO_PARALLEL_BUILD=1
+}
+
+python_test() {
+ "${PYTHON}" setup.py build -b "build-${EPYTHON}" test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/inotifyx/inotifyx-0.2.2.ebuild b/dev-python/inotifyx/inotifyx-0.2.2.ebuild
new file mode 100644
index 00000000000..e57c28f4453
--- /dev/null
+++ b/dev-python/inotifyx/inotifyx-0.2.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings to the Linux inotify file system event monitoring API"
+HOMEPAGE="http://www.alittletooquiet.net/software/inotifyx/"
+SRC_URI="http://launchpad.net/inotifyx/dev/v${PV}/+download/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND=""
+RDEPEND=""
+
+python_prepare_all() {
+ use test && DISTUTILS_NO_PARALLEL_BUILD=1
+}
+
+python_test() {
+ "${PYTHON}" setup.py build -b "build-${EPYTHON}" test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/inotifyx/metadata.xml b/dev-python/inotifyx/metadata.xml
new file mode 100644
index 00000000000..fe3c88bfac6
--- /dev/null
+++ b/dev-python/inotifyx/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="launchpad">inotifyx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/into/Manifest b/dev-python/into/Manifest
new file mode 100644
index 00000000000..26deb47453e
--- /dev/null
+++ b/dev-python/into/Manifest
@@ -0,0 +1,3 @@
+DIST into-0.1.3.tar.gz 31161 SHA256 a92642e2a7372b477488c9d92c3e4d03b5412908dd291dd85020a7eb97c49d44 SHA512 a201ab8b2b2e4d2455232edde35bdbbdbf8432152ec6f7084300af7ee8960d476c00326342c0a658b0a8873a3a0ee025cf24b87b4ae45fa4f1d94db7a5a374ef WHIRLPOOL 894b9045917c06c5540c248415f0b4ae1cd2e86d979417f23589a0b41ecc726f5a55d54b9bcc1808370344b6be31c277efaeec5c2c13bc8e3e960ac38345aa17
+DIST into-0.2.1.tar.gz 75510 SHA256 bf4a8d7c4141984ba5db201e076d5ecfdb3a32c0f8ca311d4f49b030fcb04a2f SHA512 3df1a55f2a8881c1d952baeb5484d93245085bff02a38266b9ca478ade8cce23c0b16b6be690ada7e279f0f22ea9adf934a0105cbea2ce4d243e03fc73cc1c9e WHIRLPOOL a5e5dd5845e2dd741165fd484b4314c05539a95b76f840e8b71acb3c42aaaf8e2a01a34ca6881a79cc6db5b2b19b2c8413489469a8af2fee188841f2e0a3a474
+DIST into-0.2.2.tar.gz 85008 SHA256 8a6d5595625a1c2de0732ba4448c554b707a8259b477c9b0b7bb94a1f1ca887b SHA512 0dc43e55dcbb6264c226c1b4d893b07fee9e90304e293953b26764d90ba211ed65eddad68c7fe4f2eebe7b57595bbd12131665394ce4f339da0cf77337ed16e2 WHIRLPOOL 49da50cc994788037ac4edd5f5c44802a2263f30184bfe4d64810395efa97283e1741ef879e9b883a0b02ed2732eb280448d339f55cafa501706fd8b2f2afdfa
diff --git a/dev-python/into/into-0.1.3.ebuild b/dev-python/into/into-0.1.3.ebuild
new file mode 100644
index 00000000000..5eb180a7b71
--- /dev/null
+++ b/dev-python/into/into-0.1.3.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Data migration utilities"
+HOMEPAGE="https://pypi.python.org/pypi/${PN}"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="!media-libs/urt" # Bug #552448
diff --git a/dev-python/into/into-0.2.1.ebuild b/dev-python/into/into-0.2.1.ebuild
new file mode 100644
index 00000000000..a6c987090a8
--- /dev/null
+++ b/dev-python/into/into-0.2.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Data migration utilities"
+HOMEPAGE="https://pypi.python.org/pypi/${PN}"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/datashape[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.15[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ dev-python/multipledispatch[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ !media-libs/urt" # Bug #552448
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/into/into-0.2.2.ebuild b/dev-python/into/into-0.2.2.ebuild
new file mode 100644
index 00000000000..a6c987090a8
--- /dev/null
+++ b/dev-python/into/into-0.2.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Data migration utilities"
+HOMEPAGE="https://pypi.python.org/pypi/${PN}"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/datashape[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.15[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ dev-python/multipledispatch[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ !media-libs/urt" # Bug #552448
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/into/metadata.xml b/dev-python/into/metadata.xml
new file mode 100644
index 00000000000..756e541deb1
--- /dev/null
+++ b/dev-python/into/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">into</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ioflo/Manifest b/dev-python/ioflo/Manifest
new file mode 100644
index 00000000000..f518dc02602
--- /dev/null
+++ b/dev-python/ioflo/Manifest
@@ -0,0 +1,2 @@
+DIST ioflo-1.0.2.tar.gz 665695 SHA256 e675a41089cdfd06c3186fd05148065bba91008a69837ea052f01069be2ba17f SHA512 219c319c5d1fef324632c8ac6e07d5a9fa2cfccf6024f38e298b7d4f04814528c7a613b24092d373369a8c4795b6b8954e1abb95556eed2d4fcb8f02720dad78 WHIRLPOOL 2f21817c39c8e6a3f3c8fa1d349c5e8196f47471d60b76e192ae4e24192325e8e6aedc599070b7ec4cd6066c2fb2049dc010072da4b3f196a546437164067d04
+DIST ioflo-1.2.1.tar.gz 678212 SHA256 926b8f426931e6c37c8ebf9709e5ae9031eca6aaab3de58ceb75ac20ac116125 SHA512 ee33dc44a61b53c5197cebf4d34801ad70a5d485f96054ae601904770454e1444a12b4876d44ae92cebe4aa178c877c303fb094ecb97fbce9ad255b72e85bf51 WHIRLPOOL a43dc33ff60e5ecbc1785ec51ebc7f6535446e11467709a4ff0bb328028b1a1e0df5753d3d0151dd4144c3dfae54d90bb0044f044c4d1ec6968efed5814e6fe7
diff --git a/dev-python/ioflo/ioflo-1.0.2.ebuild b/dev-python/ioflo/ioflo-1.0.2.ebuild
new file mode 100644
index 00000000000..74d511ae901
--- /dev/null
+++ b/dev-python/ioflo/ioflo-1.0.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_4})
+inherit distutils-r1
+
+DESCRIPTION="Automated Reasoning Engine and Flow Based Programming Framework"
+HOMEPAGE="https://github.com/ioflo/ioflo/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ pushd ${PN}/app/test || die "could not find tests"
+ ${EPYTHON} testStart.py || die "tests failed"
+ popd
+}
diff --git a/dev-python/ioflo/ioflo-1.2.1.ebuild b/dev-python/ioflo/ioflo-1.2.1.ebuild
new file mode 100644
index 00000000000..6e0acff3a5f
--- /dev/null
+++ b/dev-python/ioflo/ioflo-1.2.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_4})
+inherit distutils-r1
+
+DESCRIPTION="Automated Reasoning Engine and Flow Based Programming Framework"
+HOMEPAGE="https://github.com/ioflo/ioflo/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${EPYTHON} -c "from ioflo import test; test.run()"
+}
diff --git a/dev-python/ioflo/metadata.xml b/dev-python/ioflo/metadata.xml
new file mode 100644
index 00000000000..17e8d2634f2
--- /dev/null
+++ b/dev-python/ioflo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">ioflo/ioflo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ipaddr/Manifest b/dev-python/ipaddr/Manifest
new file mode 100644
index 00000000000..8ecc361a89f
--- /dev/null
+++ b/dev-python/ipaddr/Manifest
@@ -0,0 +1,2 @@
+DIST ipaddr-2.1.10.tar.gz 29004 SHA256 d2c3bfd45147e5773108d2c8d3c65102ff234f06e2f1049a0febfa31dde4cca3 SHA512 5ad38ffe54e5322bd7d3c643c216647457fd797882549c40a9dad2cadf489aa1ce724e2272af9f8aa4a28eabf60f2ef99d6d730b78c7cb86a1f0cc901dde0eb7 WHIRLPOOL 0bc5a8116d4df2e35e342c9adc2563db963802256461eeb3a8187310d6d1a7a06e567a53953899122242488a366fb759ea091630a3e315de2a7acd749a945c1d
+DIST ipaddr-2.1.11.tar.gz 29046 SHA256 1b555b8a8800134fdafe32b7d0cb52f5bdbfdd093707c3dd484c5ea59f1d98b7 SHA512 a97b0f760f0d7fac549e5edf17b644c966a8858c145b8f9472ddc8bf4805c9d537f6f8755e3716d78b729b87e84149f8b73c7f98c0deee4fbf266ccb7a206bc6 WHIRLPOOL ba34b892828098e00c78df4ecfb8b79b58a6884ca5592336a96c17bbb351f65baa9c0287acc65ed166c60ce5c9317322964dd27bfe6de33a54c3bb3b08b638cb
diff --git a/dev-python/ipaddr/ipaddr-2.1.10-r1.ebuild b/dev-python/ipaddr/ipaddr-2.1.10-r1.ebuild
new file mode 100644
index 00000000000..380cfbcb122
--- /dev/null
+++ b/dev-python/ipaddr/ipaddr-2.1.10-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python IP address manipulation library"
+HOMEPAGE="http://code.google.com/p/ipaddr-py/ http://pypi.python.org/pypi/ipaddr"
+SRC_URI="http://ipaddr-py.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+DOCS=( README RELEASENOTES )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare() {
+ if [[ ${EPYTHON} == python3* ]]; then
+ 2to3 -n -w --no-diffs *.py || die
+ fi
+}
+
+python_test() {
+ PYTHONPATH=build/lib \
+ "${PYTHON}" ipaddr_test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/ipaddr/ipaddr-2.1.11.ebuild b/dev-python/ipaddr/ipaddr-2.1.11.ebuild
new file mode 100644
index 00000000000..e254666bd84
--- /dev/null
+++ b/dev-python/ipaddr/ipaddr-2.1.11.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python IP address manipulation library"
+HOMEPAGE="http://code.google.com/p/ipaddr-py/ http://pypi.python.org/pypi/ipaddr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DOCS=( README RELEASENOTES )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare() {
+ if python_is_python3; then
+ 2to3 -n -w --no-diffs *.py || die
+ fi
+}
+
+python_test() {
+ PYTHONPATH=build/lib \
+ "${PYTHON}" ipaddr_test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/ipaddr/metadata.xml b/dev-python/ipaddr/metadata.xml
new file mode 100644
index 00000000000..b039c82da95
--- /dev/null
+++ b/dev-python/ipaddr/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>andreis.vinogradovs@gmail.com</email>
+ </maintainer>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">ipaddr-py</remote-id>
+ <remote-id type="pypi">ipaddr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ipaddress/Manifest b/dev-python/ipaddress/Manifest
new file mode 100644
index 00000000000..b6f9fbaef14
--- /dev/null
+++ b/dev-python/ipaddress/Manifest
@@ -0,0 +1,3 @@
+DIST ipaddress-1.0.12.tar.gz 16158 SHA256 8c81980950b6360df6d5451456d09e92895f0a9d4aba96ceabcff66ef1f02b11 SHA512 df17687e7d83a2010ddd969049483d542aefc98641e2519202956edb05d77e23daf29334fedb9c6150139e281875dd8169441d023bbf97055226a0f22a40e8f4 WHIRLPOOL 823710fa6be92764c32e2608fb907314fdef90b047f05703add487a7153b26cb72e6fad98f66b7223b27a800151f14a00889adead5ff0edc54e8107ef8ff3648
+DIST ipaddress-1.0.14.tar.gz 30429 SHA256 226f4be44c6cb64055e23060848266f51f329813baae28b53dc50e93488b3b3e SHA512 fb33b484ca435f4e8817c735a1084f2fa749abca4643a10be644003fdb73cc9205fc28f484ef96d2db90e8b27d8a238d1d7cf20140f7942e39be12c7524e8d6f WHIRLPOOL 30e21d5b7568125575fecd0f8cac4172713c029faa81f88cd2a6111b47da1fb3bea9305a9311ce1a7b2795e9d54b58f2cbef1e5b66f355b8c91633ead0836d04
+DIST ipaddress-1.0.7.tar.gz 15126 SHA256 2c99e9eaea2dacbe4038b3be772ec650f5b4f4c8cc479c3704b81673d96849d7 SHA512 bfbb7ab47c50b1a370dab6905e3212fcd960ecdfa2180605d0775f90f80485040a3760d7042ae503a52d1931e44a0b2dc102de22a107cf2dc4b1e7a441841e8b WHIRLPOOL 00bf3d33e34a3998fdc324a1dc4bbe15149a64c72f7f4b020769097d54e5c46fadd7281639e428b5706855b238738bc74a8655c5009e10626b43979539b59baf
diff --git a/dev-python/ipaddress/ipaddress-1.0.12.ebuild b/dev-python/ipaddress/ipaddress-1.0.12.ebuild
new file mode 100644
index 00000000000..76eae42f786
--- /dev/null
+++ b/dev-python/ipaddress/ipaddress-1.0.12.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="IPv4/IPv6 manipulation library, a port of the ipaddress module"
+HOMEPAGE="https://github.com/phihag/ipaddress"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ipaddress/ipaddress-1.0.14.ebuild b/dev-python/ipaddress/ipaddress-1.0.14.ebuild
new file mode 100644
index 00000000000..77c48fd4b75
--- /dev/null
+++ b/dev-python/ipaddress/ipaddress-1.0.14.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="IPv4/IPv6 manipulation library, a port of the ipaddress module"
+HOMEPAGE="https://github.com/phihag/ipaddress"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test_ipaddress.py || die
+}
diff --git a/dev-python/ipaddress/ipaddress-1.0.7.ebuild b/dev-python/ipaddress/ipaddress-1.0.7.ebuild
new file mode 100644
index 00000000000..f24fc4b454b
--- /dev/null
+++ b/dev-python/ipaddress/ipaddress-1.0.7.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="IPv4/IPv6 manipulation library"
+HOMEPAGE="https://github.com/phihag/ipaddress"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ipaddress/metadata.xml b/dev-python/ipaddress/metadata.xml
new file mode 100644
index 00000000000..112489d696f
--- /dev/null
+++ b/dev-python/ipaddress/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ipaddress</remote-id>
+ <remote-id type="github">phihag/ipaddress</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ipcalc/Manifest b/dev-python/ipcalc/Manifest
new file mode 100644
index 00000000000..22c9a0951ea
--- /dev/null
+++ b/dev-python/ipcalc/Manifest
@@ -0,0 +1,4 @@
+DIST ipcalc-1.0.0.tar.gz 6567 SHA256 69c344af2f5d0b9124bb41a293b4d7f8b45a85b3a580ed9bbd6a7202e8fa4cff SHA512 3590f2a9a706329d30a17ee738fb019428f6a67b113965d66b5c9cd6351958925cac00213b0c484d76ef0773f360d16f9164b6b7e2e11d7734828d4a455ad94d WHIRLPOOL b621b2a6866763868c91b45ce65e73fb8f1a16f230ca8573fb82880846c44509d25136179ee69e099a6d5f6467f5445e665ae814b20e0540802d0d7011f97293
+DIST ipcalc-1.1.1.tar.gz 7529 SHA256 d8dddcfd733c2c527c18747fba6ed6bf3747029d933771a6973f4e17adefb2bf SHA512 852186e3349ff00ab76f8d952eec5a707c47e743d15a39a71decb109bb5a00d1799b07488f9224caf3269bd40030ce2b30ce347b115134f4eaa5789640bee7ff WHIRLPOOL d80fc77ab70e7fb516512f86a5feb2ab2bd38bbcc54ae329f802e13bc5023d2607691b381e62bb61788b587aa6c6500e15735b06b943643b33e9c0e0dcb2cde2
+DIST ipcalc-1.1.2.tar.gz 7522 SHA256 956e9841fd995a47cf6439d59b3a3f18a840baad83d727e4887028b7a5b9cacb SHA512 c3b0ab9bf8f9e9a5e357a0a694635583a7e33ab4c1dcdd606581aacc7f8f1d2e2b6fb246a94bfd7529e814fccad660f7d1929af300d878a574fe80a0fcaec9d8 WHIRLPOOL f2e747d9ebd7c54ab8bf13317b996fc2c7a18d96925e4032a089d7c9ec5d6268bdef9484bed0ea2072c55ca3b61cbdb5a1eda62a6da960608e04530e2d6c77e7
+DIST ipcalc-1.1.3.tar.gz 8099 SHA256 3bfc52cafaa39e9c4e8478a38b21b2d62b2145d3d21a1722f1340e897656ac34 SHA512 f852e93bfa4994e424a8aafc74a1e8ec9488d4c60085fbc53e0587abcf8fbfdc7a35d7a20e67cd4dbe0d8484c0e7bfb11b5fe3d6934f322dd818273e3d64c2c6 WHIRLPOOL 9c4dfd021346059baac0e4bedaaf74d49a0e11d390ad5bb46d1f293e7d98923dec567a94d74a505f501d16d1db3369296c8992b57b8019cf5ea1bde8cd16abe2
diff --git a/dev-python/ipcalc/ipcalc-1.0.0.ebuild b/dev-python/ipcalc/ipcalc-1.0.0.ebuild
new file mode 100644
index 00000000000..3325d9844ed
--- /dev/null
+++ b/dev-python/ipcalc/ipcalc-1.0.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="IP subnet calculator"
+HOMEPAGE="http://pypi.python.org/pypi/ipcalc/"
+SRC_URI="mirror://pypi/i/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/ipcalc/ipcalc-1.1.1.ebuild b/dev-python/ipcalc/ipcalc-1.1.1.ebuild
new file mode 100644
index 00000000000..3325d9844ed
--- /dev/null
+++ b/dev-python/ipcalc/ipcalc-1.1.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="IP subnet calculator"
+HOMEPAGE="http://pypi.python.org/pypi/ipcalc/"
+SRC_URI="mirror://pypi/i/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/ipcalc/ipcalc-1.1.2.ebuild b/dev-python/ipcalc/ipcalc-1.1.2.ebuild
new file mode 100644
index 00000000000..3325d9844ed
--- /dev/null
+++ b/dev-python/ipcalc/ipcalc-1.1.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="IP subnet calculator"
+HOMEPAGE="http://pypi.python.org/pypi/ipcalc/"
+SRC_URI="mirror://pypi/i/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/ipcalc/ipcalc-1.1.3.ebuild b/dev-python/ipcalc/ipcalc-1.1.3.ebuild
new file mode 100644
index 00000000000..8af3813f0e2
--- /dev/null
+++ b/dev-python/ipcalc/ipcalc-1.1.3.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="IP subnet calculator"
+HOMEPAGE="http://pypi.python.org/pypi/ipcalc/"
+SRC_URI="mirror://pypi/i/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="amd64 x86"
+IUSE=""
diff --git a/dev-python/ipcalc/metadata.xml b/dev-python/ipcalc/metadata.xml
new file mode 100644
index 00000000000..2cda49ec899
--- /dev/null
+++ b/dev-python/ipcalc/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ipcalc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ipdb/Manifest b/dev-python/ipdb/Manifest
new file mode 100644
index 00000000000..df75a4d35c2
--- /dev/null
+++ b/dev-python/ipdb/Manifest
@@ -0,0 +1,2 @@
+DIST ipdb-0.8.1.zip 20522 SHA256 1763d1564113f5eb89df77879a8d3213273c4d7ff93dcb37a3070cdf0c34fd7c SHA512 515f282cb82ea989670a77956c02ac6433c125beba94c67b1eb90058c2427aac2345d02bb64b71a9593abbf7539d5ab0c20675bd24dde294b1e00544748da65c WHIRLPOOL 3e91eced09d5da6a0fc5442a6df97947fdd018bf73cd52ce0f4800e12f0a1c92f3168c3a171395e601669238b9cbebae0507cce60ca2db02a7f2610ffd73afc2
+DIST ipdb-0.8.zip 20204 SHA256 0d4a33f38e667a0c80ec1a5a0e468fe58e5cdc61cb8f4077b1024b85fe7b7117 SHA512 8d0c510a80efeb3ca9a87e4a573bbd0d75629789dec33ebd135f8c9285a276af2cfe5b6628d0bb121a3dbf9e6f248a19a341d9b475b7bfaa15bb9bdca0584dde WHIRLPOOL 376a2c872ae45e943fb99e8cc201f8d8e2a3ebcdc84dde5d1857269170ab6379d8eb2106567484d4eb2454a5c38e6c355d7a136cf74fab40b907fcabef2d6b8f
diff --git a/dev-python/ipdb/ipdb-0.8.1.ebuild b/dev-python/ipdb/ipdb-0.8.1.ebuild
new file mode 100644
index 00000000000..ff00441040c
--- /dev/null
+++ b/dev-python/ipdb/ipdb-0.8.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="IPython-enabled pdb"
+HOMEPAGE="http://pypi.python.org/pypi/ipdb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/ipython[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( HISTORY.txt )
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/ipdb/ipdb-0.8.ebuild b/dev-python/ipdb/ipdb-0.8.ebuild
new file mode 100644
index 00000000000..49c5033317e
--- /dev/null
+++ b/dev-python/ipdb/ipdb-0.8.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="IPython-enabled pdb"
+HOMEPAGE="http://pypi.python.org/pypi/ipdb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/ipython[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( HISTORY.txt )
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/ipdb/metadata.xml b/dev-python/ipdb/metadata.xml
new file mode 100644
index 00000000000..8cf02f9346c
--- /dev/null
+++ b/dev-python/ipdb/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">ipdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ipdbplugin/Manifest b/dev-python/ipdbplugin/Manifest
new file mode 100644
index 00000000000..5bb8e7ea5eb
--- /dev/null
+++ b/dev-python/ipdbplugin/Manifest
@@ -0,0 +1 @@
+DIST ipdbplugin-1.4.tar.gz 2473 SHA256 4778d78b5d0af1a2a6d341aed9e72eb73b1df6b179e145b4845d3a209137029c SHA512 5831d1e9aceb2fe4db272975d4d792622822049813ba76bdc0ee48dee001339084efddf534882775922ec178c1bcd52954bc2df1ce42181cbfdd1c3c4b944365 WHIRLPOOL ebf61a52db5be766a8407a85d8af04667a0818b5e084f762759cc535df8611ff363017961278a8da1bbeaafdb1b5630bbff1ba83475b89cf7f1add683748a79d
diff --git a/dev-python/ipdbplugin/ipdbplugin-1.4.ebuild b/dev-python/ipdbplugin/ipdbplugin-1.4.ebuild
new file mode 100644
index 00000000000..749bb50bd31
--- /dev/null
+++ b/dev-python/ipdbplugin/ipdbplugin-1.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Nose plugin to use iPdb instead of Pdb when tests fail"
+HOMEPAGE="https://pypi.python.org/pypi/ipdbplugin"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="https://github.com/flavioamieiro/nose-ipdb.git"
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND="dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/ipdb
+ dev-python/nose"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ipdbplugin/ipdbplugin-9999.ebuild b/dev-python/ipdbplugin/ipdbplugin-9999.ebuild
new file mode 100644
index 00000000000..749bb50bd31
--- /dev/null
+++ b/dev-python/ipdbplugin/ipdbplugin-9999.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Nose plugin to use iPdb instead of Pdb when tests fail"
+HOMEPAGE="https://pypi.python.org/pypi/ipdbplugin"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="https://github.com/flavioamieiro/nose-ipdb.git"
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND="dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/ipdb
+ dev-python/nose"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ipdbplugin/metadata.xml b/dev-python/ipdbplugin/metadata.xml
new file mode 100644
index 00000000000..91938ff6ff3
--- /dev/null
+++ b/dev-python/ipdbplugin/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>slis@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ipdbplugin</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ipy/Manifest b/dev-python/ipy/Manifest
new file mode 100644
index 00000000000..19f3910250a
--- /dev/null
+++ b/dev-python/ipy/Manifest
@@ -0,0 +1,2 @@
+DIST IPy-0.82a.tar.gz 31588 SHA256 edaaa5344893437aa6c1eb9c4ca966eb4b8c071761793839c7b4fc2a837fbeec SHA512 639b58c523a69205d6b63d7cceb624eb58ccf877cb8b7edede0f52a96c401dd4cdbf000dd7dca20d8c4936d9c8dbc6bb5304e0139db5e4c1106e35e2ad551430 WHIRLPOOL 2dfeb5523fb22d5ffd30cb0b446d2f40320adffbc4ab04edc9e1addb3acefc9ac9d67f78840e40435546faf303252a9f4068686807c97d9c35ed03cb2fa86d57
+DIST IPy-0.83.tar.gz 31816 SHA256 61da5a532b159b387176f6eabf11946e7458b6df8fb8b91ff1d345ca7a6edab8 SHA512 6bd69d96fa77dc4ceaf119b81c19a524b871badb37665a763a055e1c8b2ce3433c6e9534f03aa64d02e559dca2fac2c4e1d09b7fd78ed79c0fded88f803ad2de WHIRLPOOL 0f58ea88a437293ca2d89aa41c76db49cdfee4b52fe6fbae1e8dce297b59bf1309d79612283ac7691b17ddf1c7596b19a3b39c6ce157946ea8274166e1da9d9b
diff --git a/dev-python/ipy/ipy-0.82a.ebuild b/dev-python/ipy/ipy-0.82a.ebuild
new file mode 100644
index 00000000000..90f7c24563e
--- /dev/null
+++ b/dev-python/ipy/ipy-0.82a.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="IPy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Class and tools for handling of IPv4 and IPv6 addresses and networks"
+HOMEPAGE="https://github.com/haypo/python-ipy/wiki http://pypi.python.org/pypi/IPy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 ~sparc x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/python-${PN}-${MY_P}"
+
+python_test() {
+ # doctests for py3 unaltered read py2 files from "${S}" causing total failure
+ # https://github.com/haypo/python-ipy/issues/17
+ cp -r test_doc.py README test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null || die
+ "${PYTHON}" test/test_IPy.py || die "Tests fail with ${EPYTHON}"
+ "${PYTHON}" test_doc.py || die "Doctests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ipy/ipy-0.83.ebuild b/dev-python/ipy/ipy-0.83.ebuild
new file mode 100644
index 00000000000..c3449d8653a
--- /dev/null
+++ b/dev-python/ipy/ipy-0.83.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="IPy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Class and tools for handling of IPv4 and IPv6 addresses and networks"
+HOMEPAGE="https://github.com/haypo/python-ipy/wiki http://pypi.python.org/pypi/IPy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_test() {
+ # 1 test fail under pypy, persistent from 0.82a, not a regression.
+ cp -r test_doc.py README test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null || die
+ "${PYTHON}" test/test_IPy.py || die "Tests fail with ${EPYTHON}"
+ "${PYTHON}" test_doc.py || die "Doctests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ipy/metadata.xml b/dev-python/ipy/metadata.xml
new file mode 100644
index 00000000000..8430480ce36
--- /dev/null
+++ b/dev-python/ipy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">IPy</remote-id>
+ <remote-id type="github">haypo/python-ipy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
new file mode 100644
index 00000000000..c681a5b5fd6
--- /dev/null
+++ b/dev-python/ipython/Manifest
@@ -0,0 +1,3 @@
+DIST ipython-2.2.0.tar.gz 11912007 SHA256 b7ca77ba54a02f032055b73f5f62b01431f818ae00f63716b78f881c2b2564e2 SHA512 4953bf5e9d6d5c6ad538d07d62b5b100fd86a37f6b861238501581c0059bd4655345ca05cf395e79709c38ce4cb9c6293f5d11ac0252a618ad8272b161140d13 WHIRLPOOL a5e433a3a840b65fd0644f023cc9e93862e48a906e4e9d1596ebbd24290d486be580dca017ef1586da980b6792dcd7ed9aab4af81421bbf083d885927db6fcc8
+DIST ipython-3.2.0.tar.gz 10883925 SHA256 8e64b441e16298c08025b826126b2d7bc5c1776d2d2f071672166f615f327887 SHA512 d298f8ce09f7bd98bf11156c0f34816ce846dc3e6a511d354f0905300af99e15f5be46547766207f1121bd11850456a20262626a8a22be1ffc756eb84f5a982c WHIRLPOOL 482d1c22199aff6bbb9ea23f12fd50e0c8f221bbf43f1779e1739e6d637e7a6f9edd8d4b60263cc3292746f2833a28d72e6282755b046668c96882002dd73134
+DIST ipython-3.2.1.tar.gz 10884249 SHA256 c913adee7ae5b338055274c51a7d2b3cea468b5b316046fa520cd8a434b09177 SHA512 de7723e3b859d21a58a24456c76c8d8ec98c019f290f61269f46270e7647d2b49a98671138fecd75cb6f46384fde7e09618eb5c85c175e0e442c7fae7328d8fe WHIRLPOOL 9f020c167559259931dcb177d0c3a5211939632e5775c2627795ba390cf57bd62c378c15b7ee9b9ed2079180f8df8e062eb9673ed9cfc025a56f1da82c9428d1
diff --git a/dev-python/ipython/files/2.1.0-disable-tests.patch b/dev-python/ipython/files/2.1.0-disable-tests.patch
new file mode 100644
index 00000000000..bdbb1be4246
--- /dev/null
+++ b/dev-python/ipython/files/2.1.0-disable-tests.patch
@@ -0,0 +1,32 @@
+The extension magics for oct2py and rpy live now in the oct2py and rpy2 package. The tests shipped with ipython are broken. We should disable
+those tests and remove the magics files:
+
+IPython/extensions/rmagic.py -> rpy/ipython/rmagic.py
+IPython/extension/octavemagic.py -> oct2py/ipython/octavemagic.py
+
+deleted: IPython/extensions/octavemagic.py
+deleted: IPython/extensions/rmagic.py
+modified: IPython/testing/iptest.py
+
+diff --git a/IPython/testing/iptest.py b/IPython/testing/iptest.py
+index 45d2c78..db0bdfe 100644
+--- a/IPython/testing/iptest.py
++++ b/IPython/testing/iptest.py
+@@ -250,12 +250,10 @@ sec = test_sections['extensions']
+ if not have['cython']:
+ sec.exclude('cythonmagic')
+ sec.exclude('tests.test_cythonmagic')
+-if not have['oct2py']:
+- sec.exclude('octavemagic')
+- sec.exclude('tests.test_octavemagic')
+-if not have['rpy2'] or not have['numpy']:
+- sec.exclude('rmagic')
+- sec.exclude('tests.test_rmagic')
++sec.exclude('octavemagic')
++sec.exclude('tests.test_octavemagic')
++sec.exclude('rmagic')
++sec.exclude('tests.test_rmagic')
+ # autoreload does some strange stuff, so move it to its own test section
+ sec.exclude('autoreload')
+ sec.exclude('tests.test_autoreload')
+
diff --git a/dev-python/ipython/files/2.1.0-substitute-files.patch b/dev-python/ipython/files/2.1.0-substitute-files.patch
new file mode 100644
index 00000000000..659df39226a
--- /dev/null
+++ b/dev-python/ipython/files/2.1.0-substitute-files.patch
@@ -0,0 +1,27 @@
+substitute the insource files with these messages
+diff --git a/IPython/extensions/octavemagic.py b/IPython/extensions/octavemagic.py
+new file mode 100644
+index 0000000..dc93fe4
+--- /dev/null
++++ b/IPython/extensions/octavemagic.py
+@@ -0,0 +1,7 @@
++import warnings
++
++def load_ipython_extension(ip):
++ msg = ("The octavemagic extension has been moved to oct2py. "
++ "After installing oct2py, you can load octavemagic with the "
++ "following command: '%load_ext oct2py.ipython'.")
++ warnings.warn(msg, Warning, stacklevel=2)
+diff --git a/IPython/extensions/rmagic.py b/IPython/extensions/rmagic.py
+new file mode 100644
+index 0000000..739e491
+--- /dev/null
++++ b/IPython/extensions/rmagic.py
+@@ -0,0 +1,7 @@
++import warnings
++
++def load_ipython_extension(ip):
++ msg = ("The rmagic extension has been moved to rpy2. "
++ "After installing rpy2, you can load rmagic with the "
++ "following command: '%load_ext rpy2.ipython'.")
++ warnings.warn(msg, Warning, stacklevel=2)
diff --git a/dev-python/ipython/files/ipython-2.2.0-login-backport.patch b/dev-python/ipython/files/ipython-2.2.0-login-backport.patch
new file mode 100644
index 00000000000..cf6a99db21e
--- /dev/null
+++ b/dev-python/ipython/files/ipython-2.2.0-login-backport.patch
@@ -0,0 +1,35 @@
+From 5d6ce3671318c8d32bab770ece841590bbec358d Mon Sep 17 00:00:00 2001
+From: Matthias Bussonnier <bussonniermatthias@gmail.com>
+Date: Fri, 17 Apr 2015 13:08:32 -0700
+Subject: [PATCH] Set secure cookie by default if login handler is hit.
+
+ backport of https://github.com/jupyter/jupyter_notebook/pull/22 b8e99bc
+
+> There is few chances that logged-in people do not use https connexion,
+> but I guess it can happened if the server is ran in front of a proxy
+> that does the https termination, so leave it configurable.
+>
+> closes ipython/ipython#8325
+---
+ IPython/html/auth/login.py | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/IPython/html/auth/login.py b/IPython/html/auth/login.py
+index 1ad4673..1a340c8 100644
+--- a/IPython/html/auth/login.py
++++ b/IPython/html/auth/login.py
+@@ -46,7 +46,13 @@ class LoginHandler(IPythonHandler):
+ pwd = self.get_argument('password', default=u'')
+ if self.login_available:
+ if passwd_check(self.password, pwd):
+- self.set_secure_cookie(self.cookie_name, str(uuid.uuid4()))
++ # tornado <4.2 have a bug that consider secure==True as soon as
++ # 'secure' kwarg is passed to set_secure_cookie
++ if self.settings.get('secure_cookie', self.request.protocol == 'https'):
++ kwargs = {'secure':True}
++ else:
++ kwargs = {}
++ self.set_secure_cookie(self.cookie_name, str(uuid.uuid4()), **kwargs)
+ else:
+ self._render(message={'error': 'Invalid password'})
+ return
diff --git a/dev-python/ipython/ipython-2.2.0-r1.ebuild b/dev-python/ipython/ipython-2.2.0-r1.ebuild
new file mode 100644
index 00000000000..d33f00ed8fc
--- /dev/null
+++ b/dev-python/ipython/ipython-2.2.0-r1.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+PYTHON_REQ_USE='readline,sqlite'
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Advanced interactive shell for Python"
+HOMEPAGE="http://ipython.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+
+IUSE="doc examples matplotlib mongodb notebook nbconvert octave qt4 +smp test wxwidgets"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+CDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/simplegeneric[${PYTHON_USEDEP}]
+ matplotlib? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ octave? ( dev-python/oct2py[${PYTHON_USEDEP}] )
+ smp? ( >=dev-python/pyzmq-2.1.11[${PYTHON_USEDEP}] )
+ wxwidgets? ( $(python_gen_cond_dep 'dev-python/wxpython:*[${PYTHON_USEDEP}]' python2_7) )"
+RDEPEND="${CDEPEND}
+ notebook? (
+ >=www-servers/tornado-3.1[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-2.1.11[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-libs/mathjax
+ )
+ nbconvert? (
+ >=app-text/pandoc-1.12.1
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ )
+ qt4? (
+ || (
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP}]
+ )
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-2.1.11[${PYTHON_USEDEP}] )"
+DEPEND="${CDEPEND}
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PY2_USEDEP}]
+ )
+ doc? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/fabric[${PYTHON_USEDEP}]' python2_7)
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ dev-python/pymongo[${PYTHON_USEDEP}]
+ dev-python/rpy[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=www-servers/tornado-3.1[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/2.1.0-substitute-files.patch
+ "${FILESDIR}"/2.1.0-disable-tests.patch
+ "${FILESDIR}"/${P}-login-backport.patch
+ )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Remove out of date insource files
+ rm IPython/extensions/rmagic.py || die
+ rm IPython/extensions/octavemagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+src_test() {
+ # virtualx has trouble with parallel runs.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ distutils_install_for_testing
+ local fail
+ run_tests() {
+ pushd ${TEST_DIR} > /dev/null
+ "${PYTHON}" -m IPython.testing.iptestcontroller --all || fail=1
+ popd > /dev/null
+ }
+ VIRTUALX_COMMAND=run_tests virtualmake
+ [[ ${fail} ]] && die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+ use notebook && dosym /usr/share/mathjax $(python_get_sitedir)/IPython/html/static/mathjax
+
+ # Create ipythonX.Y symlinks.
+ # TODO:
+ # 1. do we want them for pypy? No. pypy has no numpy
+ # 2. handle it in the eclass instead (use _python_ln_rel).
+ # With pypy not an option the dosym becomes unconditional
+ dosym ../lib/python-exec/${EPYTHON}/ipython \
+ /usr/bin/ipython${EPYTHON#python}
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "To enable sympyprinting, it's required to emerge sympy"
+ elog "To enable cythonmagic, it's required to emerge cython"
+}
diff --git a/dev-python/ipython/ipython-3.2.0.ebuild b/dev-python/ipython/ipython-3.2.0.ebuild
new file mode 100644
index 00000000000..ad60011ea3b
--- /dev/null
+++ b/dev-python/ipython/ipython-3.2.0.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+PYTHON_REQ_USE='readline,sqlite'
+
+inherit distutils-r1 eutils virtualx
+
+DESCRIPTION="Advanced interactive shell for Python"
+HOMEPAGE="http://ipython.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples matplotlib mongodb notebook nbconvert octave qt4 +smp test wxwidgets"
+
+REQUIRED_USE="test? ( doc matplotlib mongodb notebook nbconvert octave qt4 wxwidgets )"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+CDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/simplegeneric[${PYTHON_USEDEP}]
+ matplotlib? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ octave? ( dev-python/oct2py[${PYTHON_USEDEP}] )
+ smp? ( >=dev-python/pyzmq-13[${PYTHON_USEDEP}] )
+ wxwidgets? ( $(python_gen_cond_dep 'dev-python/wxpython:*[${PYTHON_USEDEP}]' python2_7) )"
+RDEPEND="${CDEPEND}
+ notebook? (
+ dev-libs/mathjax
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ >=dev-python/mistune-0.5[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-13[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.3.3[${PYTHON_USEDEP}]
+ >=www-servers/tornado-3.1[${PYTHON_USEDEP}]
+ )
+ nbconvert? (
+ || ( >=net-libs/nodejs-0.9.12 >=app-text/pandoc-1.12.1 )
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ >=dev-python/mistune-0.5[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ qt4? (
+ || (
+ dev-python/PyQt4[${PYTHON_USEDEP},svg]
+ dev-python/PyQt5[${PYTHON_USEDEP},svg]
+ dev-python/pyside[${PYTHON_USEDEP},svg]
+ )
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-13[${PYTHON_USEDEP}] )"
+DEPEND="${CDEPEND}
+ test? (
+ app-text/dvipng
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/mock[${PY2_USEDEP}]
+ >=dev-python/nose-0.10.1[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/fabric[${PYTHON_USEDEP}]' python2_7)
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/nose-0.10.1[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ dev-python/pymongo[${PYTHON_USEDEP}]
+ dev-python/rpy[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/2.1.0-substitute-files.patch
+ )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Remove out of date insource files
+ rm IPython/extensions/rmagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html_noapi
+}
+
+src_test() {
+ # virtualx has trouble with parallel runs.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ distutils_install_for_testing
+ local fail
+ run_tests() {
+ pushd ${TEST_DIR} > /dev/null
+ "${PYTHON}" -m IPython.testing.iptestcontroller --all || fail=1
+ popd > /dev/null
+ }
+ VIRTUALX_COMMAND=run_tests virtualmake
+ [[ ${fail} ]] && die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+ use notebook && \
+ ln -sf "${EPREFIX}/usr/share/mathjax" "${D}$(python_get_sitedir)/IPython/html/static/mathjax"
+
+ # Create ipythonX.Y symlinks.
+ # TODO:
+ # 1. do we want them for pypy? No. pypy has no numpy
+ # 2. handle it in the eclass instead (use _python_ln_rel).
+ # With pypy not an option the dosym becomes unconditional
+ dosym ../lib/python-exec/${EPYTHON}/ipython \
+ /usr/bin/ipython${EPYTHON#python}
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "sympyprinting" dev-python/sympy
+ optfeature "cythonmagic" dev-python/cython
+ if use nbconvert; then
+ if ! has_version app-text/pandoc ; then
+ einfo "Node.js will be used to convert notebooks to other formats"
+ einfo "like HTML. Support for that is still experimental. If you"
+ einfo "encounter any problems, please use app-text/pandoc instead."
+ fi
+ fi
+}
diff --git a/dev-python/ipython/ipython-3.2.1.ebuild b/dev-python/ipython/ipython-3.2.1.ebuild
new file mode 100644
index 00000000000..9d2a0a9138f
--- /dev/null
+++ b/dev-python/ipython/ipython-3.2.1.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+PYTHON_REQ_USE='readline,sqlite'
+
+inherit distutils-r1 eutils virtualx
+
+DESCRIPTION="Advanced interactive shell for Python"
+HOMEPAGE="http://ipython.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples matplotlib mongodb notebook nbconvert octave qt4 +smp test wxwidgets"
+
+REQUIRED_USE="
+ test? ( doc matplotlib mongodb notebook nbconvert octave qt4 wxwidgets )
+ doc? ( mongodb )"
+
+CDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/simplegeneric[${PYTHON_USEDEP}]
+ matplotlib? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ mongodb? ( <dev-python/pymongo-3[${PYTHON_USEDEP}] )
+ octave? ( dev-python/oct2py[${PYTHON_USEDEP}] )
+ smp? ( >=dev-python/pyzmq-13[${PYTHON_USEDEP}] )
+ wxwidgets? ( $(python_gen_cond_dep 'dev-python/wxpython:*[${PYTHON_USEDEP}]' python2_7) )"
+RDEPEND="${CDEPEND}
+ notebook? (
+ dev-libs/mathjax
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0[${PYTHON_USEDEP}]
+ >=dev-python/mistune-0.5[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-13[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.3.3[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ )
+ nbconvert? (
+ || ( >=net-libs/nodejs-0.9.12 >=app-text/pandoc-1.12.1 )
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0[${PYTHON_USEDEP}]
+ >=dev-python/mistune-0.5[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ qt4? (
+ || (
+ dev-python/PyQt4[${PYTHON_USEDEP},svg]
+ dev-python/PyQt5[${PYTHON_USEDEP},svg]
+ dev-python/pyside[${PYTHON_USEDEP},svg]
+ )
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-13[${PYTHON_USEDEP}] )"
+DEPEND="${CDEPEND}
+ test? (
+ app-text/dvipng
+ dev-python/jinja[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/nose-0.10.1[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/fabric[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/jsonschema-2.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/nose-0.10.1[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ dev-python/rpy[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/2.1.0-substitute-files.patch
+ )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Remove out of date insource files
+ rm IPython/extensions/rmagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html_noapi
+}
+
+python_test() {
+ distutils_install_for_testing
+ # https://github.com/ipython/ipython/issues/8639
+ # Failure of some modules only in python3.4
+ local fail
+ run_tests() {
+ pushd ${TEST_DIR} > /dev/null
+ "${PYTHON}" -m IPython.testing.iptestcontroller --all || fail=1
+ popd > /dev/null
+ }
+ VIRTUALX_COMMAND=run_tests virtualmake
+ [[ ${fail} ]] && die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+ use notebook && \
+ ln -sf "${EPREFIX}/usr/share/mathjax" "${D}$(python_get_sitedir)/IPython/html/static/mathjax"
+
+ # Create ipythonX.Y symlinks.
+ # TODO:
+ # 1. do we want them for pypy? No. pypy has no numpy
+ # 2. handle it in the eclass instead (use _python_ln_rel).
+ # With pypy not an option the dosym becomes unconditional
+ dosym ../lib/python-exec/${EPYTHON}/ipython \
+ /usr/bin/ipython${EPYTHON#python}
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "sympyprinting" dev-python/sympy
+ optfeature "cythonmagic" dev-python/cython
+ if use nbconvert; then
+ if ! has_version app-text/pandoc ; then
+ einfo "Node.js will be used to convert notebooks to other formats"
+ einfo "like HTML. Support for that is still experimental. If you"
+ einfo "encounter any problems, please use app-text/pandoc instead."
+ fi
+ fi
+}
diff --git a/dev-python/ipython/metadata.xml b/dev-python/ipython/metadata.xml
new file mode 100644
index 00000000000..e8cfb386059
--- /dev/null
+++ b/dev-python/ipython/metadata.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ IPython provides a replacement for the interactive Python interpreter with
+ extra functionality. Main features:
+ * Comprehensive object introspection.
+ * Input history, persistent across sessions.
+ * Caching of output results during a session with automatically generated
+ references.
+ * Readline based name completion.
+ * Extensible system of 'magic' commands for controlling the environment and
+ performing many tasks related either to IPython or the operating system.
+ * Configuration system with easy switching between different setups (simpler
+ than changing $PYTHONSTARTUP environment variables every time).
+ * Session logging and reloading.
+ * Extensible syntax processing for special purpose situations.
+ * Access to the system shell with user-extensible alias system.
+ * Easily embeddable in other Python programs.
+ * Integrated access to the pdb debugger and the Python profiler.
+</longdescription>
+ <longdescription lang="ja">
+対話的に利用する場合にPythonインタープリタから、より機能が豊富なIPythonへ置き換&gt;える事ができます。
+
+主機能:
+* 内包的オブジェクトの分析。
+* 入力ヒストリーはセッションを越えて記憶し続けます。
+* 出力は自動作成されるリファレンスのセッション間はキャッシュします。
+* Readlineを利用した名前補完。
+* 環境管理とIPythonまたはOSのどちらかに関係するタスク実行のためのmagic
+ コマンドを拡張可能なシステム。
+* 異なるセットアップを簡単に交換できるコンフィグレーション・システム。
+ (毎回起動時に、$PYTHONSTARTUP環境変数を指定するよりも簡単です。)
+* セッション・ロギングとセッション・リローディング。
+* 特別な状況時のための拡張可能な構文解析。
+* ユーザー定義できるエイリアス・システムでシステム・シェルにアクセス。
+* 他のPython言語プログラムを組み込むのが簡単。
+* pdbデバッガとprofilerへの統合アクセス。
+</longdescription>
+ <use>
+ <flag name="matplotlib">Add support for <pkg>dev-python/matplotlib</pkg></flag>
+ <flag name="mongodb">Enable support for MongoDB via <pkg>dev-python/pymongo</pkg></flag>
+ <flag name="notebook">Install requirements for the web notebook based on <pkg>www-servers/tornado</pkg></flag>
+ <flag name="nbconvert">Enable support for converting notebooks to various formats using <pkg>app-text/pandoc</pkg></flag>
+ <flag name="octave">Enable octave bridge via <pkg>dev-python/oct2py</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">ipython</remote-id>
+ <remote-id type="github">ipython/ipython</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/irc/Manifest b/dev-python/irc/Manifest
new file mode 100644
index 00000000000..e72011f3c78
--- /dev/null
+++ b/dev-python/irc/Manifest
@@ -0,0 +1 @@
+DIST irc-11.0.1.zip 120409 SHA256 25d818003780fd6d62e93d3ff32580e74c0e527c6290ae14b47af50b58339233 SHA512 fca2fe653d921c9ec65dfb2b072c16658d88d4a22ae91568b1eaf722a90179920808db157f587afe6de0055af3a04a528eb9022122e539150e5635f05b58f466 WHIRLPOOL dd9b9e8624e6bd86d27fead1f3006a2b80832d236ad21f50c147c07a27b2cc4933d68efd951dece44398dbc0299b73ba7a98e4eff2061d0e3a8a01833518113b
diff --git a/dev-python/irc/irc-11.0.1.ebuild b/dev-python/irc/irc-11.0.1.ebuild
new file mode 100644
index 00000000000..90bd964d150
--- /dev/null
+++ b/dev-python/irc/irc-11.0.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="IRC client framework written in Python"
+HOMEPAGE="https://bitbucket.org/jaraco/irc http://pypi.python.org/pypi/irc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples test"
+
+RDEPEND="
+ !>=dev-python/python-irclib-3.2.2[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/jaraco-utils[${PYTHON_USEDEP}]"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/hgtools-5[${PYTHON_USEDEP}]
+ dev-python/pytest-runner[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7) )"
+
+# A doc folder is present however it appears to be used for doctests
+
+python_test() {
+ py.test irc/tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( scripts/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/irc/metadata.xml b/dev-python/irc/metadata.xml
new file mode 100644
index 00000000000..9a5995a5ee5
--- /dev/null
+++ b/dev-python/irc/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ This project includes an event-driven IRC client framework written in Python,
+ as well as an object-oriented wrapper class and some example programs.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">irc</remote-id>
+ <remote-id type="bitbucket">jaraco/irc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/irman-python/Manifest b/dev-python/irman-python/Manifest
new file mode 100644
index 00000000000..3d0ec76bcfd
--- /dev/null
+++ b/dev-python/irman-python/Manifest
@@ -0,0 +1 @@
+DIST irman-python-0.1.tar.gz 16390 SHA256 404d9fb4934957c3052b28b0bbe3b8f2f5c38134e71eeeb7ffa9867c0b4cb6bb SHA512 7e0c80252c471419400ca80215c64f84ee89559496f5d118f860ffe9eb7078c029d8c5b5f75b55ccb6d21917bc91314d6e8ef3523d260172c22dc0beb13c794c WHIRLPOOL 1884119fcd8d6b4f3b8f725346bebbeb3cacc6f7ee0a48540f833de3a12de782f81ea5f4d41cf441f3507ef5811c35b23d30b565d16447dd77ee5ab2af9332b3
diff --git a/dev-python/irman-python/irman-python-0.1-r1.ebuild b/dev-python/irman-python/irman-python-0.1-r1.ebuild
new file mode 100644
index 00000000000..8e0112f8fa2
--- /dev/null
+++ b/dev-python/irman-python/irman-python-0.1-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A minimal set of Python bindings for libirman"
+HOMEPAGE="http://bluweb.com/chouser/proj/irman-python/"
+SRC_URI="http://bluweb.com/chouser/proj/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="media-libs/libirman"
+RDEPEND="${DEPEND}"
+DOCS=( README test_name.py )
diff --git a/dev-python/irman-python/metadata.xml b/dev-python/irman-python/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/irman-python/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/iso8601/Manifest b/dev-python/iso8601/Manifest
new file mode 100644
index 00000000000..88fba6d6078
--- /dev/null
+++ b/dev-python/iso8601/Manifest
@@ -0,0 +1 @@
+DIST iso8601-0.1.10.tar.gz 8405 SHA256 e712ff3a18604833f5073e836aad795b21170b19bbef70947c441ed89d0ac0e1 SHA512 5a3635b3daf6c5ccfd0dfdf47bcd60a0841c06137b3ee334ec024909fa24c8fe4a1da1fa253e0a5dfaca173d4b10dfd994b83a031b2a0385406ca92987098168 WHIRLPOOL dc491a7b1b22e9cdf6b49b92c9378273d887a9a7760a501abb08931ffec0e07368ce378a69a2e91b95bb068b56a6d4f60e77e57079111694e05bc080eddb6a1f
diff --git a/dev-python/iso8601/iso8601-0.1.10.ebuild b/dev-python/iso8601/iso8601-0.1.10.ebuild
new file mode 100644
index 00000000000..3e52acd4e1a
--- /dev/null
+++ b/dev-python/iso8601/iso8601-0.1.10.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple module to parse ISO 8601 dates"
+HOMEPAGE="http://code.google.com/p/pyiso8601/ http://pypi.python.org/pypi/iso8601"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" -m pytest --verbose ${PN} || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/iso8601/metadata.xml b/dev-python/iso8601/metadata.xml
new file mode 100644
index 00000000000..c19ab23f756
--- /dev/null
+++ b/dev-python/iso8601/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">iso8601</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/isodate/Manifest b/dev-python/isodate/Manifest
new file mode 100644
index 00000000000..8531ce1a22d
--- /dev/null
+++ b/dev-python/isodate/Manifest
@@ -0,0 +1,2 @@
+DIST isodate-0.5.0.tar.gz 25917 SHA256 f3e436a9c321882942a6c62e9d8ea49787b4c0ea7f7bb3cbd047bcf76bd0dfbe SHA512 5f45fee798e8f79a5f9f271570d542fb68936577e3670a675e66e037bb15d76653717d7fcdeae1cd6ae9afb2f153206210c40d4cfcd8bd60c3ed873d2e6b19d4 WHIRLPOOL a9a62054c5b050a20240699a0955cf1a59f7c9afb4b163f0ef16b6fce578263881e3c8d77dc15a3ac1d11a341f64073685aa8a1d533391884d2d5f956f76a1a0
+DIST isodate-0.5.1.tar.gz 26859 SHA256 b12aed31c0e834543497e24d609a41531a800d8304c39e6665c45ca023b012fb SHA512 8bc1006a1d3aa03fc69885415f2acc18efde870d1c8e5ac9741672b2818983fabb781d853766105298fc55d187add20f4e3a4bf33966fc5b9d5f5ca08dc77748 WHIRLPOOL b246e35c93bf8001b7b7519c811cf7bda3cf669ace008e8f7ba4ee26e88b764468d326c9c145709a626a11e8358368dda2440a0fcf60587d22dbd6bce8825655
diff --git a/dev-python/isodate/isodate-0.5.0.ebuild b/dev-python/isodate/isodate-0.5.0.ebuild
new file mode 100644
index 00000000000..cb9722cb890
--- /dev/null
+++ b/dev-python/isodate/isodate-0.5.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="ISO 8601 date/time/duration parser and formater"
+HOMEPAGE="http://pypi.python.org/pypi/isodate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ local test
+ pushd "${BUILD_DIR}"/lib/
+ for test in ${PN}/tests/test_*.py
+ do
+ if ! "${PYTHON}" $test; then
+ die "Test $test failed under ${EPYTHON}"
+ fi
+ done
+ # Give some order to the output salad
+ einfo "Testsuite passed under ${EPYTHON}";einfo ""
+}
diff --git a/dev-python/isodate/isodate-0.5.1.ebuild b/dev-python/isodate/isodate-0.5.1.ebuild
new file mode 100644
index 00000000000..cb9722cb890
--- /dev/null
+++ b/dev-python/isodate/isodate-0.5.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="ISO 8601 date/time/duration parser and formater"
+HOMEPAGE="http://pypi.python.org/pypi/isodate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ local test
+ pushd "${BUILD_DIR}"/lib/
+ for test in ${PN}/tests/test_*.py
+ do
+ if ! "${PYTHON}" $test; then
+ die "Test $test failed under ${EPYTHON}"
+ fi
+ done
+ # Give some order to the output salad
+ einfo "Testsuite passed under ${EPYTHON}";einfo ""
+}
diff --git a/dev-python/isodate/metadata.xml b/dev-python/isodate/metadata.xml
new file mode 100644
index 00000000000..1a5711f648c
--- /dev/null
+++ b/dev-python/isodate/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ This module implements ISO 8601 date, time and duration
+ parsing. The implementation follows ISO8601:2004 standard, and
+ implements only date/time representations mentioned in the standard. If
+ something is not mentioned there, then it is treated as non existent,
+ and not as an allowed option.
+ As this module maps ISO 8601 dates/times to standard Python data types,
+ like date, time, datetime and timedelta, it is not possible to convert
+ all possible ISO 8601 dates/times. For instance, dates before 0001-01-01
+ are not allowed by the Python date and datetime classes. Additionally
+ fractional seconds are limited to microseconds. That means if the parser
+ finds for instance nanoseconds it will round it to microseconds.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">isodate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/itsdangerous/Manifest b/dev-python/itsdangerous/Manifest
new file mode 100644
index 00000000000..ea9abc4c17c
--- /dev/null
+++ b/dev-python/itsdangerous/Manifest
@@ -0,0 +1,4 @@
+DIST itsdangerous-0.21.tar.gz 8595 SHA256 c760381fc09dc120e4b459f5ba39ed55ea21fd77ac9f4d4101c0c237d8fc9d9e SHA512 5164dda9d38d0d1c880f7782db12fe74b7f305057fa5507d788d6af2d49068a870313280ece6e4b019d0e5ba01f945ae7a54b205f289efda2602bad12cd401cd WHIRLPOOL 1359b8625a7865a590fd2d3d8fd667f6ad0b74d5b4bb90b9afd4b38e41479ed0e1f56f92ff55d57c24edc486711dbca36a6ee778b70b766ea6ba32c22793eadc
+DIST itsdangerous-0.22.tar.gz 9460 SHA256 9e63500ef4c2f30be66a69cd0def95966db889c32e7b4fe4dd8fc9c7ebe3f3fc SHA512 48a72c27d9eb9537efac8de5bd59a870d9b6b4622f02ea8247cc24f5c48ce186e32c0a2d438f2cadb000d06059b8f693afa51c85d5c2fcf30a16caf33da95aad WHIRLPOOL 68d9653eec7ba615361097e4bcef27387626c8de91970322b9964ac509417dbf437bcb9fb0e38c2777466d3303027a7f732a4015f912bc506bac798f2acf9326
+DIST itsdangerous-0.23.tar.gz 46176 SHA256 71c0bf6bde4dcc93d838415e728a961a7b16f324b8ae182525fbdadde9f55d62 SHA512 dbffc5c5b4f902a461dd51c2ea8f84916f3b383eefeaaae249a76b22335db464a399d3c16943d3c0f031a874fd91d2f971fa80016fdbedb06b161a65d789359f WHIRLPOOL 5f297ea18f2c0539a5e1d337da34ed361564efb3b6162b431864e681d9fefd5a2e54844e5c7756bb452380635dbfa555c4c19321500d1ff808dce4f68cde3e02
+DIST itsdangerous-0.24.tar.gz 46541 SHA256 cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519 SHA512 2863b6e5fda178db59bd214c6d24d04422c1021bb41bf11598aba1cbc43053aff3bb1e0539940b5769de04b68c03e8bd01d728dcbfc4bd0ba05867688574a297 WHIRLPOOL 44338b9c489506b972c33bafa1437042c17f452e65095d3b7dc85bf1cbfa26fcc45b097a7e899ae5ccfa4e3727e9c0ea285e254f6318c74a61217da910a63a83
diff --git a/dev-python/itsdangerous/itsdangerous-0.21.ebuild b/dev-python/itsdangerous/itsdangerous-0.21.ebuild
new file mode 100644
index 00000000000..b9d69691b56
--- /dev/null
+++ b/dev-python/itsdangerous/itsdangerous-0.21.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Various helpers to pass trusted data to untrusted environments and back"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pythonhosted.org/itsdangerous/ http://pypi.python.org/pypi/itsdangerous"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/itsdangerous/itsdangerous-0.22.ebuild b/dev-python/itsdangerous/itsdangerous-0.22.ebuild
new file mode 100644
index 00000000000..2ab929532a0
--- /dev/null
+++ b/dev-python/itsdangerous/itsdangerous-0.22.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Various helpers to pass trusted data to untrusted environments and back"
+HOMEPAGE="http://pythonhosted.org/itsdangerous/ http://pypi.python.org/pypi/itsdangerous"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/itsdangerous/itsdangerous-0.23.ebuild b/dev-python/itsdangerous/itsdangerous-0.23.ebuild
new file mode 100644
index 00000000000..61841f13125
--- /dev/null
+++ b/dev-python/itsdangerous/itsdangerous-0.23.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Various helpers to pass trusted data to untrusted environments and back"
+HOMEPAGE="http://pythonhosted.org/itsdangerous/ http://pypi.python.org/pypi/itsdangerous"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# Required for running tests.py
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ if python_is_python3; then
+ 2to3 -f unicode -nw --no-diffs tests.py
+ fi
+ "${PYTHON}" tests.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/itsdangerous/itsdangerous-0.24.ebuild b/dev-python/itsdangerous/itsdangerous-0.24.ebuild
new file mode 100644
index 00000000000..0d1114fca77
--- /dev/null
+++ b/dev-python/itsdangerous/itsdangerous-0.24.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Various helpers to pass trusted data to untrusted environments and back"
+HOMEPAGE="http://pythonhosted.org/itsdangerous/ http://pypi.python.org/pypi/itsdangerous"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# Required for running tests.py
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ if python_is_python3; then
+ 2to3 -f unicode -nw --no-diffs tests.py
+ fi
+ "${PYTHON}" tests.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/itsdangerous/metadata.xml b/dev-python/itsdangerous/metadata.xml
new file mode 100644
index 00000000000..d204c07a083
--- /dev/null
+++ b/dev-python/itsdangerous/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">itsdangerous</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jaraco-utils/Manifest b/dev-python/jaraco-utils/Manifest
new file mode 100644
index 00000000000..f4d1a14ca9a
--- /dev/null
+++ b/dev-python/jaraco-utils/Manifest
@@ -0,0 +1 @@
+DIST jaraco.util-10.0.2.zip 83375 SHA256 da136010c98f1ceaaa02ab1a201da45d3b2d59348fac8e3c7b1ddb61825ca872 SHA512 9522d0923db0637b605a11014104fbf6d86fc014fa1d065610df0cf8fe18dc5f962c8f4e4a3822c9223b434fbd252a99ac1949e52f7c9774642244f7a25e12e1 WHIRLPOOL 5dc4bdcf744e0fda210a3f1b5de6f5c8ff73c179586873b28cab309f320c662591442c63ae3cbdd2b3187ab56bb9d541839e40525baf1b15d79719015ebf20bc
diff --git a/dev-python/jaraco-utils/jaraco-utils-10.0.2.ebuild b/dev-python/jaraco-utils/jaraco-utils-10.0.2.ebuild
new file mode 100644
index 00000000000..623b881956b
--- /dev/null
+++ b/dev-python/jaraco-utils/jaraco-utils-10.0.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="jaraco.util"
+DESCRIPTION="General utility modules that supply commonly-used functionality"
+HOMEPAGE="http://pypi.python.org/pypi/jaraco.util"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/hgtools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )
+ "
+RDEPEND=""
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_test() {
+ py.test tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/jaraco-utils/metadata.xml b/dev-python/jaraco-utils/metadata.xml
new file mode 100644
index 00000000000..f4ade42c4e5
--- /dev/null
+++ b/dev-python/jaraco-utils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jaraco.utils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jaxml/Manifest b/dev-python/jaxml/Manifest
new file mode 100644
index 00000000000..af9ca9360c4
--- /dev/null
+++ b/dev-python/jaxml/Manifest
@@ -0,0 +1 @@
+DIST jaxml-3.02.tar.gz 27718 SHA256 7c6693cf2a200dcc81939e648f7d8ec59ac0b9106e6134aba4e7bbc8e3f3e019 SHA512 e23b4026dfb7b7d08cfa7ebdda11b66ad7dfd5a158495d90d73988e9b9d5ccb898cc7df112a78c6f3724dd04a0fdef24129e3c115b230e56b184acd28f844597 WHIRLPOOL a1d28cb4f49100a2eb2b3a34719936c99f749baab2bc443de08924d3eb6eddcdd594de17b6b619c774aa0c9acc743a2af5783030f02a749bd4b815df5d9bf93d
diff --git a/dev-python/jaxml/jaxml-3.02-r1.ebuild b/dev-python/jaxml/jaxml-3.02-r1.ebuild
new file mode 100644
index 00000000000..bf72e581482
--- /dev/null
+++ b/dev-python/jaxml/jaxml-3.02-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="XML generator written in Python"
+HOMEPAGE="http://www.librelogiciel.com/software/jaxml/action_Presentation http://pypi.python.org/pypi/jaxml"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 hppa ia64 ppc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/jaxml/metadata.xml b/dev-python/jaxml/metadata.xml
new file mode 100644
index 00000000000..9b498c17fdc
--- /dev/null
+++ b/dev-python/jaxml/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jaxml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jdcal/Manifest b/dev-python/jdcal/Manifest
new file mode 100644
index 00000000000..9e7b9df1568
--- /dev/null
+++ b/dev-python/jdcal/Manifest
@@ -0,0 +1 @@
+DIST jdcal-1.0.tar.gz 5677 SHA256 133220a36c533bae02355aca7f507de7b33e57e9467d33cea7d5673ba354a3e6 SHA512 5e9f865a3c9a123a56d084c9ddd325cfe6c246e1a9162bb8f000abaf7cdf376b1e38f7c2a97f14a13d2f4b3f3de4e7e3773a903f905685ce76f541b50134a408 WHIRLPOOL d09da7dbcaea2ae10fd992b20ce5c7203cd020443ed685e5dba6183cd1296e824ba66fb06e317f1598302cb17fe5cf914ff0e7e31dd626029ed6e8c292717c9b
diff --git a/dev-python/jdcal/jdcal-1.0.ebuild b/dev-python/jdcal/jdcal-1.0.ebuild
new file mode 100644
index 00000000000..4469630ce77
--- /dev/null
+++ b/dev-python/jdcal/jdcal-1.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Julian dates from proleptic Gregorian and Julian calendars"
+HOMEPAGE="http://github.com/phn/jdcal"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+SLOT="0"
diff --git a/dev-python/jdcal/metadata.xml b/dev-python/jdcal/metadata.xml
new file mode 100644
index 00000000000..d52cdc2e687
--- /dev/null
+++ b/dev-python/jdcal/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jdcal</remote-id>
+ <remote-id type="github">phn/jdcal</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jedi/Manifest b/dev-python/jedi/Manifest
new file mode 100644
index 00000000000..f0778650d9b
--- /dev/null
+++ b/dev-python/jedi/Manifest
@@ -0,0 +1,2 @@
+DIST jedi-0.8.1.tar.gz 304088 SHA256 4d23ae457cec14cedb71fb56f0ed51d75798f2fd74e91f6e5134b09a4a78eba8 SHA512 2188bf0eede9d78a298c0cd6071060e74b0531ebd3c21d4e831c77202b7e338452f0ab10b693902e5b0da8095f394e5c67e055f1cde3a476fc2566b627bb6d9f WHIRLPOOL ecc131bd7a9ee046200ebe089cb37b7afe6b9bfd9522329b96418f34383fbf7f60957cba8deb9799bff804783c7b5a909159717f382da9d979d13c57c8f92066
+DIST jedi-0.9.0.tar.gz 334204 SHA256 3b4c19fba31bdead9ab7350fb9fa7c914c59b0a807dcdd5c00a05feb85491d31 SHA512 fa60861bde0afb63c90b0e14b252d33b68d5e83255d662ef727884c91bd530b5a76f0306965ed9620d7d42a92f177feb2524a7b088ade786fb486d62d6912e57 WHIRLPOOL a6233ed19129f129cd97778f1c01bdc1e0747ec1da3611164c50815c77ab57ca1c8d7bec824b00d105cac62d32f53981a54e72b80ddfef00a77cd9316aef94aa
diff --git a/dev-python/jedi/jedi-0.8.1-r2.ebuild b/dev-python/jedi/jedi-0.8.1-r2.ebuild
new file mode 100644
index 00000000000..47c34d6699e
--- /dev/null
+++ b/dev-python/jedi/jedi-0.8.1-r2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Awesome autocompletion library for python"
+HOMEPAGE="https://github.com/davidhalter/jedi"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="
+ app-arch/xz-utils
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx )
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/tox[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ PYTHONPATH="${PYTHONPATH%:}${PYTHONPATH+:}${S}/test" py.test test || die "Tests failed under ${EPYTHON}"
+}
+
+src_compile() {
+ if use doc ; then
+ emake -C docs html
+ fi
+ distutils-r1_src_compile
+}
+
+python_install_all() {
+ use doc && dohtml -r "${S}"/docs/_build/html/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jedi/jedi-0.9.0.ebuild b/dev-python/jedi/jedi-0.9.0.ebuild
new file mode 100644
index 00000000000..0c0b29a0f32
--- /dev/null
+++ b/dev-python/jedi/jedi-0.9.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Awesome autocompletion library for python"
+HOMEPAGE="https://github.com/davidhalter/jedi"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ app-arch/xz-utils
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx )
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/tox[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ PYTHONPATH="${PYTHONPATH%:}${PYTHONPATH+:}${S}/test" py.test test || die "Tests failed under ${EPYTHON}"
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && dohtml -r "${S}"/docs/_build/html/*
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jedi/metadata.xml b/dev-python/jedi/metadata.xml
new file mode 100644
index 00000000000..8fd43766e8b
--- /dev/null
+++ b/dev-python/jedi/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jedi</remote-id>
+ <remote-id type="github">davidhalter/jedi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jellyfish/Manifest b/dev-python/jellyfish/Manifest
new file mode 100644
index 00000000000..7bda4475518
--- /dev/null
+++ b/dev-python/jellyfish/Manifest
@@ -0,0 +1 @@
+DIST jellyfish-0.5.1.tar.gz 21766 SHA256 e297b7a5d00579b0da0474a89273fff759f305de88e05d6a1d0ebd4cb58c49e8 SHA512 2cb72651664c7314dba01659315fcdc1248e519f04171056d29fe57c6ef4a7eb9f7c8224827aa982aa52d4216a20b3ad8bd0dbb097f0e844ce292dbb3c963753 WHIRLPOOL 280b5fad06b8098c40d953ce3b524db08787ea12cb335daf6b2d627fea20bf3fdc69af60b6f4ab1a6732157716237b1b6bf5dce65812422fadf3c2228588c172
diff --git a/dev-python/jellyfish/jellyfish-0.5.1.ebuild b/dev-python/jellyfish/jellyfish-0.5.1.ebuild
new file mode 100644
index 00000000000..1a107edabda
--- /dev/null
+++ b/dev-python/jellyfish/jellyfish-0.5.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python module for doing approximate and phonetic matching of strings"
+HOMEPAGE="https://github.com/jamesturk/jellyfish http://pypi.python.org/pypi/jellyfish"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/jellyfish/metadata.xml b/dev-python/jellyfish/metadata.xml
new file mode 100644
index 00000000000..57ab8724c12
--- /dev/null
+++ b/dev-python/jellyfish/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sound</herd>
+ <upstream>
+ <remote-id type="pypi">jellyfish</remote-id>
+ <remote-id type="github">jamesturk/jellyfish</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jenkins-autojobs/Manifest b/dev-python/jenkins-autojobs/Manifest
new file mode 100644
index 00000000000..9780cfefc99
--- /dev/null
+++ b/dev-python/jenkins-autojobs/Manifest
@@ -0,0 +1,3 @@
+DIST jenkins-autojobs-0.14.3.tar.gz 151992 SHA256 ceb7fab28421c34b01015116cc64428ed3bf672381de759ae3d029500fe1b161 SHA512 1db2d02bf6f1c2d52d0197ffc21e80e5ccd48f6e2020bbe4618ab06792ea3988a42089c1fe1e6d277e30ea6ecf58078d8138da0c463862a063583c119e67e805 WHIRLPOOL 465057f18207fbb1d4d5fe48b06151dca2cc683ae4ba72c92ebc3a4e8548aa4018605189f4f1c353d048230c5a70eaf2bde41648cd0a84e1213f834db59d7f68
+DIST jenkins-autojobs-0.14.3_git_1.1.21.hpi 2108607 SHA256 bed6ad5ee68ab126139dc0a889d04d31541bbeb0063e05734d34a3586fe98124 SHA512 6fa6386f0292cfc61f44dca11860146b7c35df46adefdfec547789b75145fbff61e620195e5f756ae8902211117b4cd2cd7d616dfe51204e563ad38154a67d88 WHIRLPOOL af70f74034cbd6205f4a3518ae1273500b8f526378a02963437f4e92c6594faea8b59a5d1ff0035e9fa90bad328074f5eeb37c815997a25291105b599641478a
+DIST jenkins-autojobs-0.14.3_mercurial_1.41.hpi 107202 SHA256 944a83d115171affdbd4d7e227cb234d01aaecbff90b49bd54800c93b820eff6 SHA512 76d24c9964d7d4590f128bf1577f54a0a4b799d275a0e7874aee95aa20c3ed0313b96bb6fb4e7f9603a4433db68e4d0caeb4ca22394cdc24a436fcc3b32b8d67 WHIRLPOOL 2b32cf6aa2bc23f62e1ec173ad8a16debf7c313902ab8eaf5f41ecae870e0c81fa095756d6c78af9b0106a2042f3f5a5fa9d5b9743c53d09d586d28c4bc9925f
diff --git a/dev-python/jenkins-autojobs/files/local_jenkins.patch b/dev-python/jenkins-autojobs/files/local_jenkins.patch
new file mode 100644
index 00000000000..96bab635ffe
--- /dev/null
+++ b/dev-python/jenkins-autojobs/files/local_jenkins.patch
@@ -0,0 +1,26 @@
+--- tests/bin/start-jenkins.sh.orig 2015-01-02 23:10:17.000000000 +0100
++++ tests/bin/start-jenkins.sh 2015-01-30 16:35:27.058035074 +0100
+@@ -19,6 +19,8 @@
+ echo 0 | nc $jenkins_addr $jenkins_cport
+ }
+
++cp -v /opt/jenkins/jenkins.war $jenkins_war
++
+ if [[ ! -e $jenkins_war ]]; then
+ echo "Downloading jenkins.war ..."
+ curl -L $jenkins_war_url > $jenkins_war
+@@ -31,7 +33,6 @@
+
+ if [[ $(unzip -l $jenkins_war | egrep "plugins/(mercurial)|(git).hpi" | wc -l) -ne 2 ]]; then
+ echo "Adding git and hg plugins to jenkins.war ..."
+- wget -c $hg_hpi_url $git_hpi_url -P "${here}/../tmp/WEB-INF/plugins"
+ (cd ${here}/../tmp && zip jenkins.war ./WEB-INF/plugins/*.hpi)
+ fi
+
+@@ -57,4 +58,4 @@
+
+ [[ $jenkins_running -ne 0 ]] && exit 1
+
+-wait $java_pid
++#wait $java_pid
+
diff --git a/dev-python/jenkins-autojobs/jenkins-autojobs-0.14.3.ebuild b/dev-python/jenkins-autojobs/jenkins-autojobs-0.14.3.ebuild
new file mode 100644
index 00000000000..558ee4a192c
--- /dev/null
+++ b/dev-python/jenkins-autojobs/jenkins-autojobs-0.14.3.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MERCURIAL_PV="1.41"
+GIT_PV="1.1.21"
+
+DESCRIPTION="Scripts for automatically creating Jenkins jobs from scm branches"
+HOMEPAGE="https://github.com/gvalkov/jenkins-autojobs"
+SRC_URI="https://github.com/gvalkov/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ http://updates.jenkins-ci.org/download/plugins/mercurial/${MERCURIAL_PV}/mercurial.hpi -> ${P}_mercurial_${MERCURIAL_PV}.hpi
+ http://updates.jenkins-ci.org/download/plugins/git/${GIT_PV}/git.hpi -> ${P}_git_${GIT_PV}.hpi"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+RDEPEND=">dev-python/jenkins-webapi-0.3.2[${PYTHON_USEDEP}]
+ >=dev-python/lxml-3.2.3[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.0[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-util/jenkins-bin
+ net-analyzer/netcat
+ dev-python/pytest[${PYTHON_USEDEP}] )
+ doc? ( >=dev-python/sphinx-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/alabaster-0.6.1[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}/local_jenkins.patch" )
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ if use test; then
+ mkdir -p ${P}/tests/tmp/WEB-INF/plugins/
+
+ cp -v "${DISTDIR}"/${P}_mercurial_${MERCURIAL_PV}.hpi ${P}/tests/tmp/WEB-INF/plugins/mercurial.hpi
+ cp -v "${DISTDIR}"/${P}_git_${GIT_PV}.hpi ${P}/tests/tmp/WEB-INF/plugins/git.hpi
+ fi
+}
+
+python_test() {
+ # Test phase works with the limitation that it need be run as root in portage
+ # starts jenkins
+ ./tests/bin/start-jenkins.sh
+
+ py.test || die "Failed with ${EPYTHON}"
+
+ # kills jenkins
+ echo 0 | nc 127.0.0.1 60887
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jenkins-autojobs/metadata.xml b/dev-python/jenkins-autojobs/metadata.xml
new file mode 100644
index 00000000000..08e838d6acb
--- /dev/null
+++ b/dev-python/jenkins-autojobs/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomas Mozes</name>
+ <description>Proxy maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gvalkov/jenkins-autojobs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jenkins-webapi/Manifest b/dev-python/jenkins-webapi/Manifest
new file mode 100644
index 00000000000..353444b1171
--- /dev/null
+++ b/dev-python/jenkins-webapi/Manifest
@@ -0,0 +1,2 @@
+DIST jenkins-webapi-0.3.2.tar.gz 14831 SHA256 8f67d86c1f95edb79928af9b3b7c60ef9a63bfbfd19b6fe0a892ef4039f25500 SHA512 2ac59c90bba48406cc9fe5595505d5836eab1147869fbc8c06577767891d37904bffa5516316af0cb25f7f9193ae5277c0219ecc9daf5e0efa093fd449d1f4f0 WHIRLPOOL e4562a1857d7c526aec8c5ecc35f6a0644c48bf69fad4bdfef20f0708fdc0dfb5595c428acdc03e1df02c3d21669d47c89e0f3a99c1ee09a9741f9e21ab83b48
+DIST jenkins-webapi-0.4.0.tar.gz 16149 SHA256 7515b1e0503e07d50088e32205873146eda3b1132d8a6508e28f4e935c41e8b2 SHA512 ae40366e6fb6414391287ffa42ec92fba1971f070ac718d521c5b10f6e47d14ceea15a8c71f559380356530fdb2f826e08a6c611813b407dad73dab39fcddfeb WHIRLPOOL 30abf44c7d1ec6884baa3481c9d2f234f46f812d5ee6a8d9e49de8bc367ffef9c58f7653dcd30c24a308372cb8f6211e51f40e441e17f9ef15abd222de5d775b
diff --git a/dev-python/jenkins-webapi/files/local_jenkins_war.patch b/dev-python/jenkins-webapi/files/local_jenkins_war.patch
new file mode 100644
index 00000000000..c41f5bb51ce
--- /dev/null
+++ b/dev-python/jenkins-webapi/files/local_jenkins_war.patch
@@ -0,0 +1,12 @@
+--- tests/install.py.orig 2014-11-23 21:21:29.000000000 +0100
++++ tests/install.py 2015-01-28 18:29:42.750933314 +0100
+@@ -23,7 +23,7 @@
+ self.destdir = destdir
+
+ self.logfile = logfile if logfile else pjoin(self.destdir, 'jenkins.log')
+- self.jenkinswar = pjoin(self.destdir, 'jenkins.war')
++ self.jenkinswar = pjoin('/opt/jenkins', 'jenkins.war')
+ self.jenkinscli = pjoin(self.destdir, 'jenkins-cli.jar')
+ self.homedir = pjoin(self.destdir, 'home')
+
+
diff --git a/dev-python/jenkins-webapi/files/tests_py27.patch b/dev-python/jenkins-webapi/files/tests_py27.patch
new file mode 100644
index 00000000000..5a6e8c9ddf6
--- /dev/null
+++ b/dev-python/jenkins-webapi/files/tests_py27.patch
@@ -0,0 +1,7 @@
+--- tests/conftest.py.orig 2014-11-23 21:21:29.000000000 +0100
++++ tests/conftest.py 2015-01-28 18:37:25.388067816 +0100
+@@ -1,3 +1,4 @@
++# -*- coding: utf-8 -*-
+ import re
+ import time
+ import pytest
diff --git a/dev-python/jenkins-webapi/jenkins-webapi-0.3.2.ebuild b/dev-python/jenkins-webapi/jenkins-webapi-0.3.2.ebuild
new file mode 100644
index 00000000000..5b7490481ca
--- /dev/null
+++ b/dev-python/jenkins-webapi/jenkins-webapi-0.3.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for interacting with the Jenkins CI server"
+HOMEPAGE="https://github.com/gvalkov/jenkins-webapi"
+SRC_URI="https://github.com/gvalkov/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/requests-2.4.3[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-util/jenkins-bin
+ >=dev-python/pytest-2.6.3[${PYTHON_USEDEP}]
+ >=dev-python/termcolor-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-cov-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/httmock-1.2.2[${PYTHON_USEDEP}] )
+ doc? (
+ >=dev-python/sphinx-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/alabaster-0.6.1[${PYTHON_USEDEP}] )
+ "
+
+PATCHES=(
+ "${FILESDIR}"/local_jenkins_war.patch
+ "${FILESDIR}"/tests_py27.patch
+ )
+
+python_test() {
+ emake test
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jenkins-webapi/jenkins-webapi-0.4.0-r1.ebuild b/dev-python/jenkins-webapi/jenkins-webapi-0.4.0-r1.ebuild
new file mode 100644
index 00000000000..acadf5dce8b
--- /dev/null
+++ b/dev-python/jenkins-webapi/jenkins-webapi-0.4.0-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for interacting with the Jenkins CI server"
+HOMEPAGE="https://github.com/gvalkov/jenkins-webapi"
+SRC_URI="http://dev.gentoo.org/~idella4/tarballs/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+RESTRICT="mirror"
+
+RDEPEND=">=dev-python/requests-2.4.3[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-util/jenkins-bin
+ >=dev-python/pytest-2.6.3[${PYTHON_USEDEP}]
+ >=dev-python/termcolor-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-cov-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/httmock-1.2.2[${PYTHON_USEDEP}] )
+ doc? (
+ >=dev-python/sphinx-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/alabaster-0.6.1[${PYTHON_USEDEP}] )
+ "
+PATCHES=( "${FILESDIR}"/local_jenkins_war.patch )
+
+python_test() {
+ emake test
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jenkins-webapi/metadata.xml b/dev-python/jenkins-webapi/metadata.xml
new file mode 100644
index 00000000000..469d770d7eb
--- /dev/null
+++ b/dev-python/jenkins-webapi/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomas Mozes</name>
+ <description>Proxy maintainer and target for any bugs</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gvalkov/jenkins-webapi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jenkinsapi/Manifest b/dev-python/jenkinsapi/Manifest
new file mode 100644
index 00000000000..9fcafbe1cec
--- /dev/null
+++ b/dev-python/jenkinsapi/Manifest
@@ -0,0 +1 @@
+DIST jenkinsapi-0.2.26.tar.gz 76598 SHA256 68118e5abad7e5cd4191e1b20b08a950e5e563e816e3ba25e2f4ed994ba945f2 SHA512 5c04450bd285e2f576bcdd933ec8bd9df840f3fdcae9999305f96ea3f2e85bced4dfc5f961c763cd9137c2bfc2c9b79e032dc451978b6fc04a2fe8cb6e98d030 WHIRLPOOL 025d6c8cee081068d77350b7ffd6e03441dc2758be6b761d6ef6f00007c99ac41032ce3e1be3cf01496f6e59913e8b2f7a22ab9d66d5a8aeeca5c24922d4175b
diff --git a/dev-python/jenkinsapi/files/local_jenkins_war.patch b/dev-python/jenkinsapi/files/local_jenkins_war.patch
new file mode 100644
index 00000000000..811ca4cb9c2
--- /dev/null
+++ b/dev-python/jenkinsapi/files/local_jenkins_war.patch
@@ -0,0 +1,12 @@
+--- a/jenkinsapi_tests/systests/__init__.py 2015-01-27 14:14:43.632779039 +0100
++++ b/jenkinsapi_tests/systests/__init__.py 2015-01-27 15:08:52.521438293 +0100
+@@ -11,7 +11,7 @@
+
+ def setUpPackage():
+ systests_dir, _ = os.path.split(__file__)
+- war_path = os.path.join(systests_dir, 'jenkins.war')
++ war_path = os.path.join('/opt/jenkins', 'jenkins.war')
+ state['launcher'] = JenkinsLancher(war_path, PLUGIN_DEPENDENCIES,
+ jenkins_url=os.getenv('JENKINS_URL', None))
+ state['launcher'].start()
+
diff --git a/dev-python/jenkinsapi/jenkinsapi-0.2.26.ebuild b/dev-python/jenkinsapi/jenkinsapi-0.2.26.ebuild
new file mode 100644
index 00000000000..78875e42a10
--- /dev/null
+++ b/dev-python/jenkinsapi/jenkinsapi-0.2.26.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="API to access resources on a Jenkins continuous-integration server"
+HOMEPAGE="https://github.com/salimfadhley/jenkinsapi"
+SRC_URI="https://github.com/salimfadhley/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/pytz-2014.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.3.0[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-util/jenkins-bin
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ )"
+
+# use jenkins.war from jenkins-bin instead of downloading
+PATCHES=( "${FILESDIR}"/local_jenkins_war.patch )
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/jenkinsapi/metadata.xml b/dev-python/jenkinsapi/metadata.xml
new file mode 100644
index 00000000000..6cfdf9a485e
--- /dev/null
+++ b/dev-python/jenkinsapi/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomas Mozes</name>
+ <description>Proxy maintainer and target for all bugs</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">salimfadhley/jenkinsapi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jingo/Manifest b/dev-python/jingo/Manifest
new file mode 100644
index 00000000000..4e90a0e9360
--- /dev/null
+++ b/dev-python/jingo/Manifest
@@ -0,0 +1,2 @@
+DIST jingo-0.7.1.tar.gz 9982 SHA256 c495a8dfd0a9c1d3d8ed02121bbb28b6c9d34d4da30aa93a7e639c0f3d7b0639 SHA512 153d87f3017b34bb66bddffadb059d0089a48fbdb07bf4881499679c134232be2fe259da95de5a65f6339c1e72a3afb12f4daa1d91ef61f9294bd89899929929 WHIRLPOOL 5fa6af5c5d63766b381413147cc2a0f218693f14350e07f7d8f3e2189fceebd4f6678955aa8fda4ee09799318fc84f533dcc2af761fa0b1a7bb109fbc5dae103
+DIST jingo-0.7.tar.gz 9365 SHA256 a3bd5051dd17e9d50e8a9f2d362508e82d7063010fdc06d5e07ce3608e780fe6 SHA512 7358c20371d761ad147aaa2991056d1789d6a80d645741d816c38369abc469911ca6a1ab4324e7b1243832605fd80cdb3df89610106d2a850f634f1595da254d WHIRLPOOL 5c3c17a287a2cb1469d187387064b8c55accbd240105aa3f09f9fb671512dfb394b3be2529d227181c302070c83c73c1c0556a9885f8cf32ba4dbe31039cfb4d
diff --git a/dev-python/jingo/jingo-0.7.1.ebuild b/dev-python/jingo/jingo-0.7.1.ebuild
new file mode 100644
index 00000000000..1f1c922c242
--- /dev/null
+++ b/dev-python/jingo/jingo-0.7.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An adapter for using Jinja2 templates with Django"
+HOMEPAGE="http://github.com/jbalogh/jingo/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/jinja[${PYTHON_USEDEP}]"
diff --git a/dev-python/jingo/jingo-0.7.ebuild b/dev-python/jingo/jingo-0.7.ebuild
new file mode 100644
index 00000000000..2ab2dd2cf87
--- /dev/null
+++ b/dev-python/jingo/jingo-0.7.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An adapter for using Jinja2 templates with Django"
+HOMEPAGE="http://github.com/jbalogh/jingo/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/jinja[${PYTHON_USEDEP}]"
diff --git a/dev-python/jingo/metadata.xml b/dev-python/jingo/metadata.xml
new file mode 100644
index 00000000000..122dccb9144
--- /dev/null
+++ b/dev-python/jingo/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jingo</remote-id>
+ <remote-id type="github">jbalogh/jingo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jinja/Manifest b/dev-python/jinja/Manifest
new file mode 100644
index 00000000000..e0167844771
--- /dev/null
+++ b/dev-python/jinja/Manifest
@@ -0,0 +1,2 @@
+DIST Jinja2-2.7.3.tar.gz 378470 SHA256 2e24ac5d004db5714976a04ac0e80c6df6e47e98c354cb2c0d82f8879d4f8fdb SHA512 2810db2b52fe800e2a4a47ea41a07f997b1647a2b7ad05fe564f9d554d6a402283c84c4e2491e5dad8d22acd83d3ca420f0983ed2effc732f6d79600a846071b WHIRLPOOL ece9b68dff414739103eac202b5903d96802939f5742a2bf3ff421d87ef49043ed9a4b2a3a6bf0c2f3d9be0d8295b73c47b253553731b44912cb58add8f233c0
+DIST Jinja2-2.8.tar.gz 357055 SHA256 bc1ff2ff88dbfacefde4ddde471d1417d3b304e8df103a7a9437d47269201bf4 SHA512 2e80d6d9ad10dafcce1e6dd24493f5dffc43a17f71a30a650415638e12d3a3891738ebacc569701129214026d062d91a2b10e4f7a2c7b85d801dde26ded1bebb WHIRLPOOL 31adc38738848aa224cceb0d0afb2b85eb080d166ed84f145eb0576eeedfb91cf8d99d7c98b6a6cc6ab4fedf33fdbe3171c80fd559df48036a7441232702e749
diff --git a/dev-python/jinja/files/jinja-2.6-python3.3.patch b/dev-python/jinja/files/jinja-2.6-python3.3.patch
new file mode 100644
index 00000000000..29bd38ead6d
--- /dev/null
+++ b/dev-python/jinja/files/jinja-2.6-python3.3.patch
@@ -0,0 +1,15 @@
+diff --git a/jinja2/environment.py b/jinja2/environment.py
+index ebb5454..1b5dc40 100644
+--- a/jinja2/environment.py
++++ b/jinja2/environment.py
+@@ -570,6 +570,10 @@ class Environment(object):
+ py_header = imp.get_magic() + \
+ u'\xff\xff\xff\xff'.encode('iso-8859-15')
+
++ # Python 3.3 added a source filesize to the header
++ if sys.version_info >= (3, 3):
++ py_header += u'\x00\x00\x00\x00'.encode('iso-8859-15')
++
+ def write_file(filename, data, mode):
+ if zip:
+ info = ZipInfo(filename)
diff --git a/dev-python/jinja/files/jinja-2.7-docs.patch b/dev-python/jinja/files/jinja-2.7-docs.patch
new file mode 100644
index 00000000000..d543f54d6cd
--- /dev/null
+++ b/dev-python/jinja/files/jinja-2.7-docs.patch
@@ -0,0 +1,53 @@
+From da94a8b504d981cb5f877219811d169823a2095e Mon Sep 17 00:00:00 2001
+From: Armin Ronacher <armin.ronacher@active-4.com>
+Date: Mon, 20 May 2013 14:06:59 +0100
+Subject: [PATCH] Fixed docs not building
+
+---
+ docs/faq.rst | 2 +-
+ docs/jinjaext.py | 2 +-
+ docs/templates.rst | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/docs/faq.rst b/docs/faq.rst
+index 4db5079..00a4d0d 100644
+--- a/docs/faq.rst
++++ b/docs/faq.rst
+@@ -157,7 +157,7 @@ Python 2.3 support you either have to use `Jinja 1`_ or other templating
+ engines that still support 2.3.
+
+ My Macros are overridden by something
+-------------------------------------
++-------------------------------------
+
+ In some situations the Jinja scoping appears arbitrary:
+
+diff --git a/docs/jinjaext.py b/docs/jinjaext.py
+index 8395a55..3c217f8 100644
+--- a/docs/jinjaext.py
++++ b/docs/jinjaext.py
+@@ -23,7 +23,7 @@
+ from pygments.token import Keyword, Name, Comment, String, Error, \
+ Number, Operator, Generic
+ from jinja2 import Environment, FileSystemLoader
+-from jinja2.utils import next
++from jinja2._compat import next
+
+
+ def parse_rst(state, content_offset, doc):
+diff --git a/docs/templates.rst b/docs/templates.rst
+index e0a19fa..4a6a379 100644
+--- a/docs/templates.rst
++++ b/docs/templates.rst
+@@ -579,7 +579,7 @@ Inside of a for-loop block you can access some special variables:
+ | `loop.depth` | Indicates how deep in deep in a recursive loop |
+ | | the rendering currently is. Starts at level 1 |
+ +-----------------------+---------------------------------------------------+
+-| `loop.depth0 | Indicates how deep in deep in a recursive loop |
++| `loop.depth0` | Indicates how deep in deep in a recursive loop |
+ | | the rendering currently is. Starts at level 0 |
+ +-----------------------+---------------------------------------------------+
+
+--
+1.8.1.6
+
diff --git a/dev-python/jinja/jinja-2.7.3.ebuild b/dev-python/jinja/jinja-2.7.3.ebuild
new file mode 100644
index 00000000000..5dfca3cc065
--- /dev/null
+++ b/dev-python/jinja/jinja-2.7.3.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit eutils distutils-r1
+
+MY_PN=Jinja2
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A small but fast and easy to use stand-alone template engine written in pure Python"
+HOMEPAGE="http://jinja.pocoo.org/ http://pypi.python.org/pypi/Jinja2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris"
+IUSE="doc examples"
+
+RDEPEND="dev-python/markupsafe[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ !dev-python/jinja:compat"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# XXX: handle Babel better?
+
+S=${WORKDIR}/${MY_P}
+PATCHES=( "${FILESDIR}/jinja-2.7-docs.patch" )
+
+wrap_opts() {
+ local mydistutilsargs=()
+
+ if [[ ${EPYTHON} == python* ]]; then
+ mydistutilargs+=( --with-debugsupport )
+ fi
+
+ "${@}"
+}
+
+python_compile() {
+ wrap_opts distutils-r1_python_compile
+ if [[ ${EPYTHON} == python3.2 ]]; then
+ 2to3 --no-diffs -n -w -f unicode "${BUILD_DIR}/lib" || die
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins ext/Vim/*
+}
+
+pkg_postinst() {
+ if ! has_version dev-python/Babel; then
+ elog "For i18n support, please emerge dev-python/Babel."
+ fi
+}
diff --git a/dev-python/jinja/jinja-2.8.ebuild b/dev-python/jinja/jinja-2.8.ebuild
new file mode 100644
index 00000000000..e77e0da8195
--- /dev/null
+++ b/dev-python/jinja/jinja-2.8.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit eutils distutils-r1
+
+MY_PN=Jinja2
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A small but fast and easy to use stand-alone template engine written in pure Python"
+HOMEPAGE="http://jinja.pocoo.org/ http://pypi.python.org/pypi/Jinja2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris"
+IUSE="doc examples"
+
+RDEPEND="dev-python/markupsafe[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ !dev-python/jinja:compat"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# XXX: handle Babel better?
+
+S=${WORKDIR}/${MY_P}
+
+wrap_opts() {
+ local mydistutilsargs=()
+
+ if [[ ${EPYTHON} == python* ]]; then
+ mydistutilargs+=( --with-debugsupport )
+ fi
+
+ "${@}"
+}
+
+python_compile() {
+ wrap_opts distutils-r1_python_compile
+ if [[ ${EPYTHON} == python3.2 ]]; then
+ 2to3 --no-diffs -n -w -f unicode "${BUILD_DIR}/lib" || die
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins ext/Vim/*
+}
+
+pkg_postinst() {
+ if ! has_version dev-python/Babel; then
+ elog "For i18n support, please emerge dev-python/Babel."
+ fi
+}
diff --git a/dev-python/jinja/metadata.xml b/dev-python/jinja/metadata.xml
new file mode 100644
index 00000000000..45bb8cf511c
--- /dev/null
+++ b/dev-python/jinja/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Jinja2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jmespath/Manifest b/dev-python/jmespath/Manifest
new file mode 100644
index 00000000000..ef4e7118232
--- /dev/null
+++ b/dev-python/jmespath/Manifest
@@ -0,0 +1,2 @@
+DIST jmespath-0.5.0.tar.gz 18175 SHA256 c3243fb93f914df1852cc3699115c87982009860290b60910c1b2715bec238c2 SHA512 7ea11fa1f011585065a53a8b5286bab0c2422b1c553e89f1c3d543c3018d7d532d44b021e2654a1cd32e4bfbc384897b35f35a30b9b7439e9834135428bc9647 WHIRLPOOL fd1aa83c7a224b7f9d8bea513e83fb2e3ee54656c8661a1b36b1db1c24b0c59ea3de9adaf64cf17d1dfeffd333aa8895dd3ce8f8ec9e6f53e4260ec283d1da51
+DIST jmespath-0.7.1.tar.gz 19696 SHA256 cd5a12ee3dfa470283a020a35e69e83b0700d44fe413014fd35ad5584c5f5fd1 SHA512 66f3e1bd084c090c8a2bb11ecf873066464834b515a421e1c832b1de26e8de8ea875d9ec3e9bf471c1a2170b102206f2b9e59ec09bba1bbecb278e2713f2446f WHIRLPOOL a571e8f83ca57e9742e819a5154f77f483ef96984ffe04dcaed3629c0a63b8094bfa18526c06688981a626a52fd96f95b777ec5f8209f0db60a5adaeb2ff3eaf
diff --git a/dev-python/jmespath/jmespath-0.5.0.ebuild b/dev-python/jmespath/jmespath-0.5.0.ebuild
new file mode 100644
index 00000000000..962375bbc9d
--- /dev/null
+++ b/dev-python/jmespath/jmespath-0.5.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="JSON Matching Expressions"
+HOMEPAGE="https://github.com/boto/jmespath https://pypi.python.org/pypi/jmespath"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="test"
+
+DEPEND="
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/jmespath/jmespath-0.7.1.ebuild b/dev-python/jmespath/jmespath-0.7.1.ebuild
new file mode 100644
index 00000000000..58c2e6ef429
--- /dev/null
+++ b/dev-python/jmespath/jmespath-0.7.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="JSON Matching Expressions"
+HOMEPAGE="https://github.com/boto/jmespath https://pypi.python.org/pypi/jmespath"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/jmespath/metadata.xml b/dev-python/jmespath/metadata.xml
new file mode 100644
index 00000000000..d1bd75aebfc
--- /dev/null
+++ b/dev-python/jmespath/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aballier@gentoo.org</email>
+ <name>Alexis Ballier</name>
+ <description>Python team can take the package if they wish.</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">jmespath</remote-id>
+ <remote-id type="github">boto/jmespath</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/joblib/Manifest b/dev-python/joblib/Manifest
new file mode 100644
index 00000000000..5fad6195bab
--- /dev/null
+++ b/dev-python/joblib/Manifest
@@ -0,0 +1,5 @@
+DIST joblib-0.8.0.tar.gz 309866 SHA256 b0f628f878ee808cb8987ac7fd82abdb7a2a6e3252c65d7ed28e26b806d82a45 SHA512 5dc5f89bea0204975765d88ef5e1f1faac6541a71845a74865e10c23ca3363ee8f39f62eb35b7cd944b0768a85f44f5d9d7deb02a17df80bec36f9e75f071aba WHIRLPOOL 15f65fdd838287c130da28c27989c998b4eccdc2dc899cecb277cf829345ad56a3e7fa39e61e4669e3afcc2ba96ca6624a50d1f5fd10ed7a7d60d96b510e3fd4
+DIST joblib-0.8.1.tar.gz 310038 SHA256 0a8d9707d7f28ee155c1ec174868548ad2ae88f5f8ca08c629ce41c0c96bd36f SHA512 a67521a0e73c38d045031f6b189bcc8d2cda3f3364f229177bed84ddb344e266e7faff0e5acd8b9dbf4463625dd5b1049d29176f447e8e2ea04e05096d271f23 WHIRLPOOL ca2d79a943ffa263c8c1ca45c5bb5a0deaa16d7a48859971ef52f2de96f097b7e3720fef053ad069411493fd17320a8e82e26feee4889dbd0777eb3327b32682
+DIST joblib-0.8.2.tar.gz 311162 SHA256 6434f2855be83796626185be474f06833cea2fd6fc65be765dc3ec39d6e620fc SHA512 63995559346aa032dc256c5995efe071fa5033b4fddaf9bafa45cb783ed74798e331e7bda2641163a8037ea044b8fee372af60860722e824a2f4cb161d7ceeb3 WHIRLPOOL a3892746ff382a2c64d49ed68f50b84b5b838f3a1f21c563646845e9265928946e59c22af2100e2a5f06c7a2b11d8603417075d6edf8bc9fc599d44b9b6fb766
+DIST joblib-0.8.3.tar.gz 317569 SHA256 f163790e4c08b52c3c37db132c0528c3041da9e1d0095199bebd0c9876e1fcd6 SHA512 2f8279e753ad5d6d0001f399b19fcbe602511b43926d94b1d80f0dcff266e249779e8bdf88be9c976a12a8416e677497c18ca7a5c9019cdde4415e9a8d97d3aa WHIRLPOOL 1aa9e0a6c5ca0184674d0df76ba05bb2c435319c60edda1880037acf8f9b9fe514b14b111da85c5be548f9d98c350b30d69b95eb0b5b7f96f7a13979f766f852
+DIST joblib-0.8.4.tar.gz 314213 SHA256 f185b87199525e0805281960f9f91c4f2e382e5834f05678cfcfa8ec666a4d2b SHA512 37d9a107c0f8f80c30cbcf7e4520a571eb925efdfb8729ca681fb12b3ec79cfd63c4b53660e560bbb3bc162664f79ab1d9fa7207f3dac00b5d5cddcdc12169c9 WHIRLPOOL f887c0153b4fa691e2289a9d3237a1b9ee51fabd7f6f3a54c7914f4296e23d50010ba822846723566fac5bcfd40c7b23c458121b6eff18d8ce15d6317ae5e638
diff --git a/dev-python/joblib/joblib-0.8.0.ebuild b/dev-python/joblib/joblib-0.8.0.ebuild
new file mode 100644
index 00000000000..8ab7950fee8
--- /dev/null
+++ b/dev-python/joblib/joblib-0.8.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools to provide lightweight pipelining in Python"
+HOMEPAGE="http://pythonhosted.org/joblib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+# Usual; req'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/ doc/ doc/html || die "docs failed installation"
+ fi
+}
+
+python_test() {
+ # https://github.com/joblib/joblib/issues/143
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_func_inspect_errors:_&:' -i ${PN}/test/test_func_inspect.py || die
+ sed -e 's:test_parallel_pickling:_&:' -i ${PN}/test/test_parallel.py || die
+ fi
+
+ nosetests -w ${PN}/test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/joblib/joblib-0.8.1.ebuild b/dev-python/joblib/joblib-0.8.1.ebuild
new file mode 100644
index 00000000000..8ab7950fee8
--- /dev/null
+++ b/dev-python/joblib/joblib-0.8.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools to provide lightweight pipelining in Python"
+HOMEPAGE="http://pythonhosted.org/joblib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+# Usual; req'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/ doc/ doc/html || die "docs failed installation"
+ fi
+}
+
+python_test() {
+ # https://github.com/joblib/joblib/issues/143
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_func_inspect_errors:_&:' -i ${PN}/test/test_func_inspect.py || die
+ sed -e 's:test_parallel_pickling:_&:' -i ${PN}/test/test_parallel.py || die
+ fi
+
+ nosetests -w ${PN}/test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/joblib/joblib-0.8.2.ebuild b/dev-python/joblib/joblib-0.8.2.ebuild
new file mode 100644
index 00000000000..8ab7950fee8
--- /dev/null
+++ b/dev-python/joblib/joblib-0.8.2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools to provide lightweight pipelining in Python"
+HOMEPAGE="http://pythonhosted.org/joblib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+# Usual; req'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/ doc/ doc/html || die "docs failed installation"
+ fi
+}
+
+python_test() {
+ # https://github.com/joblib/joblib/issues/143
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_func_inspect_errors:_&:' -i ${PN}/test/test_func_inspect.py || die
+ sed -e 's:test_parallel_pickling:_&:' -i ${PN}/test/test_parallel.py || die
+ fi
+
+ nosetests -w ${PN}/test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/joblib/joblib-0.8.3.ebuild b/dev-python/joblib/joblib-0.8.3.ebuild
new file mode 100644
index 00000000000..71da9164669
--- /dev/null
+++ b/dev-python/joblib/joblib-0.8.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools to provide lightweight pipelining in Python"
+HOMEPAGE="http://pythonhosted.org/joblib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+# Usual; req'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/ doc/ doc/html || die "docs failed installation"
+ fi
+}
+
+python_test() {
+ # https://github.com/joblib/joblib/issues/143
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_func_inspect_errors:_&:' -i ${PN}/test/test_func_inspect.py || die
+ sed -e 's:test_parallel_pickling:_&:' -i ${PN}/test/test_parallel.py || die
+ fi
+
+ nosetests -w ${PN}/test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/joblib/joblib-0.8.4.ebuild b/dev-python/joblib/joblib-0.8.4.ebuild
new file mode 100644
index 00000000000..bc974373ad0
--- /dev/null
+++ b/dev-python/joblib/joblib-0.8.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools to provide lightweight pipelining in Python"
+HOMEPAGE="http://pythonhosted.org/joblib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+# Usual; req'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build -b html -c doc/ doc/ doc/html || die "docs failed installation"
+ fi
+}
+
+python_test() {
+ # https://github.com/joblib/joblib/issues/143
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_func_inspect_errors:_&:' -i ${PN}/test/test_func_inspect.py || die
+ sed -e 's:test_parallel_pickling:_&:' -i ${PN}/test/test_parallel.py || die
+ fi
+
+ nosetests -w ${PN}/test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/joblib/metadata.xml b/dev-python/joblib/metadata.xml
new file mode 100644
index 00000000000..6be052e4dbd
--- /dev/null
+++ b/dev-python/joblib/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+ Joblib is a set of tools to provide lightweight pipelining in
+ Python. In particular, joblib offers:
+ * transparent disk-caching of the output values and lazy
+ re-evaluation (memoize pattern)
+ * easy simple parallel computing
+ * logging and tracing of the execution
+ Joblib is optimized to be fast and robust in particular on large,
+ long-running functions and has specific optimizations for numpy arrays.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">joblib</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/jonpy/Manifest b/dev-python/jonpy/Manifest
new file mode 100644
index 00000000000..142ad248f2b
--- /dev/null
+++ b/dev-python/jonpy/Manifest
@@ -0,0 +1,2 @@
+DIST jonpy-0.10.tar.gz 51672 SHA256 33f43845b6403a2596d89e2210ba043d73facd39937e04eb59d0b7ef683b9456 SHA512 2dcea6798e186a1bfd767f3a0b331ee5ca56e2c0df63b8ac1f3ac53c9906ca98387a0d47166c11057cee62dc669de0771eba6e72d59d5ecd0e88b2fcd5b70281 WHIRLPOOL 8a9e7334d31f822bab462cee321bb520922f070ca569588881ed741ebf0580967d2222f1caf521941a3db3bd8b801f825e485c11dd481a5c66975e293878666f
+DIST jonpy-0.11.tar.gz 51496 SHA256 983f0af78c6a4cdf843da8449a297681be358476764a06ccdd0cb838a6979a7c SHA512 9fa925259a5d56347b71845fc0ed00f16f4b411b350a08f0779f8f867fc34d0c6164cb0dc107410b6b88d1565fc504cabd102a0c7fcbb86e7163319a235d89ee WHIRLPOOL f3166d7cf06c64cde822baee35c15449eedf31b342a5eea5786eb5ee83645fcc6a93537ec0654e5d851ab9ab5880a17039eaa367708ee13df0d36208bc0cba86
diff --git a/dev-python/jonpy/jonpy-0.10-r1.ebuild b/dev-python/jonpy/jonpy-0.10-r1.ebuild
new file mode 100644
index 00000000000..27ae37d2abd
--- /dev/null
+++ b/dev-python/jonpy/jonpy-0.10-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Powerful multi-threaded object-oriented CGI/FastCGI/mod_python/html-templating facilities"
+HOMEPAGE="http://jonpy.sourceforge.net/ http://pypi.python.org/pypi/jonpy"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jonpy/jonpy-0.11.ebuild b/dev-python/jonpy/jonpy-0.11.ebuild
new file mode 100644
index 00000000000..29a2699ceef
--- /dev/null
+++ b/dev-python/jonpy/jonpy-0.11.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Powerful multi-threaded object-oriented CGI/FastCGI/mod_python/html-templating facilities"
+HOMEPAGE="http://jonpy.sourceforge.net/ http://pypi.python.org/pypi/jonpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jonpy/metadata.xml b/dev-python/jonpy/metadata.xml
new file mode 100644
index 00000000000..42e1741985c
--- /dev/null
+++ b/dev-python/jonpy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jonpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jsmin/Manifest b/dev-python/jsmin/Manifest
new file mode 100644
index 00000000000..0b552cb4a8f
--- /dev/null
+++ b/dev-python/jsmin/Manifest
@@ -0,0 +1,3 @@
+DIST jsmin-2.0.9.tar.gz 7898 SHA256 04b6b05dd05b3ec27066f4274ed94e65f2f092017ee9c376a01f83de0d376dab SHA512 01478173a44ba1372a6f294f0e8b1744cce21216d8da36285735a87743c48f14415a3ac41b124aa5ca0ebc07594361d458989c1930a1cbf9c3894a594f7f9261 WHIRLPOOL 47cd4ad6b7f54f497f062b0dca16c39760e69cd3f06bde693486988d2b8744221461d588ff9ca472a4c68823aa820c7d21f4ef43aad96b1ec6605473759bac8a
+DIST jsmin-2.1.1.tar.gz 9783 SHA256 582f70f5fef561c8d561271206f45258d0c420eec31a8628914e87c73a2192e1 SHA512 1f889bb6a2916da21c315b5aff468cb8c479cbaedb99dfb4bb9298de6414615f274a4f37eeaee108a5f136ceea6893bddc5f564375bb2b2e7f14836a7f1d3dc1 WHIRLPOOL 941453d4765e983ca1b6d65a7f3afc390f967070fa8962a62ac783428071f2af70b42f5e80a4aea60dc8b0e724f490281a502cb13c58653035b34715dfe2f701
+DIST jsmin-2.1.2.tar.gz 9995 SHA256 5e710e9db14f210dfd55ebec43bca5c812d34c5b6179dbcba2e61d9f965bf4e1 SHA512 9723e2ff2feb243b84d3b8d1869a6591bbf1f3224d6f706eb7264293ed083508560586ee4466a4da370bcb4a611a48e9c78d1c25ede363312cafe9189ff97e5d WHIRLPOOL 41896e65703f45bacd0793b2ffb16c12eef4d4f012aa9c12d7282566efeafd49b3c26668c9ba2157a6112bc17d35f66f9f60430618f99dddc69e2be04be45809
diff --git a/dev-python/jsmin/jsmin-2.0.9.ebuild b/dev-python/jsmin/jsmin-2.0.9.ebuild
new file mode 100644
index 00000000000..5228709d0f3
--- /dev/null
+++ b/dev-python/jsmin/jsmin-2.0.9.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="JavaScript minifier"
+HOMEPAGE="https://bitbucket.org/dcs/jsmin/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="doc"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ "${PYTHON}" -m ${PN}.test || die
+ popd > /dev/null
+}
diff --git a/dev-python/jsmin/jsmin-2.1.1.ebuild b/dev-python/jsmin/jsmin-2.1.1.ebuild
new file mode 100644
index 00000000000..5b69befb33f
--- /dev/null
+++ b/dev-python/jsmin/jsmin-2.1.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="JavaScript minifier"
+HOMEPAGE="https://bitbucket.org/dcs/jsmin/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 ~x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ "${PYTHON}" -m ${PN}.test || die
+ popd > /dev/null
+}
diff --git a/dev-python/jsmin/jsmin-2.1.2.ebuild b/dev-python/jsmin/jsmin-2.1.2.ebuild
new file mode 100644
index 00000000000..8c196342586
--- /dev/null
+++ b/dev-python/jsmin/jsmin-2.1.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="JavaScript minifier"
+HOMEPAGE="https://bitbucket.org/dcs/jsmin/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" -m ${PN}.test || die
+}
diff --git a/dev-python/jsmin/metadata.xml b/dev-python/jsmin/metadata.xml
new file mode 100644
index 00000000000..a4bede9eb39
--- /dev/null
+++ b/dev-python/jsmin/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jsmin</remote-id>
+ <remote-id type="bitbucket">dcs/jsmin</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/json-rpc/Manifest b/dev-python/json-rpc/Manifest
new file mode 100644
index 00000000000..85fea585e7d
--- /dev/null
+++ b/dev-python/json-rpc/Manifest
@@ -0,0 +1,3 @@
+DIST json-rpc-1.10.1.tar.gz 25410 SHA256 3edffc0905a08090edb4036f8767a08826ec618f9f02717251fd2eb3e1c6983b SHA512 bb69cbb12c0a64286fb1e98db21ca75cb19daf20c6d6f5721f82891a17e44d2cda172e73bd389a02077d094b8f6deb0959952b0498b0c1b4a0acfaa5e3ba3922 WHIRLPOOL c08c465be4951055a12979de5bca056cf56e35c874f491ba4891125e9fbfcc985f85d120c2a5fcb1d8b8264487af90efb34e0316981ccf546190421df5fdc885
+DIST json-rpc-1.7.0.tar.gz 21699 SHA256 9961113fc66bb4e34abd4fa6e8eb2086d14aee88c789e00a023751b5c84dd34b SHA512 f89ae1c2da9f0fa3e3a6552ea89a13ef1806b1a5d4d03ab7c420a1648dde6980af6743a5c70d500224ad5d0d8a5aa6b74ad7de43ea3aeefb1cba0e5dc6cc5fa4 WHIRLPOOL 02bd37b82b6259b9b8fb513615499b1105a0cbbea8b4e6e37800560b6114beb237efa397bf6f50312a26e500eedd0ddc89bf798162742788200f51a563a713ab
+DIST json-rpc-1.9.2.tar.gz 25100 SHA256 42414af4aeab786bb9643c88238f91253251ce301e5f3cdbf385f778ad9b6399 SHA512 9e43c96c54dc07f1cf3d6167e978dc9cab94fd45759148302c13d665384bbc9373d588edae1a17aa06d4804b4c176900165c401ef9801c6af88f7d1af1e0b7ec WHIRLPOOL 8299a1c928394a4fd3bb8e47c535d2d749984fef7fe421d733320dde6e370dc0f2267365a252af083d324f914a6c52f8b1690bb07096e46c0ef847d09af86b9b
diff --git a/dev-python/json-rpc/json-rpc-1.10.1.ebuild b/dev-python/json-rpc/json-rpc-1.10.1.ebuild
new file mode 100644
index 00000000000..1981501d570
--- /dev/null
+++ b/dev-python/json-rpc/json-rpc-1.10.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+
+inherit distutils-r1
+
+DESCRIPTION="JSON-RPC transport implementation for python"
+HOMEPAGE="https://github.com/pavlov99/json-rpc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/json-rpc/json-rpc-1.7.0.ebuild b/dev-python/json-rpc/json-rpc-1.7.0.ebuild
new file mode 100644
index 00000000000..c23d740d2bc
--- /dev/null
+++ b/dev-python/json-rpc/json-rpc-1.7.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_{3,4}})
+
+inherit distutils-r1
+
+DESCRIPTION="JSON-RPC transport implementation for python"
+HOMEPAGE="https://github.com/pavlov99/json-rpc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/json-rpc/json-rpc-1.9.2.ebuild b/dev-python/json-rpc/json-rpc-1.9.2.ebuild
new file mode 100644
index 00000000000..45e2d772905
--- /dev/null
+++ b/dev-python/json-rpc/json-rpc-1.9.2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+
+inherit distutils-r1
+
+DESCRIPTION="JSON-RPC transport implementation for python"
+HOMEPAGE="https://github.com/pavlov99/json-rpc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/json-rpc/metadata.xml b/dev-python/json-rpc/metadata.xml
new file mode 100644
index 00000000000..99af37920dc
--- /dev/null
+++ b/dev-python/json-rpc/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+ Primarily this specification defines several data structures and the rules
+ around their processing. It is transport agnostic in that the concepts can
+ be used within the same process, over sockets, over http, or in many various
+ message passing environments. It uses JSON (RFC 4627) as data format.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">json-rpc</remote-id>
+ <remote-id type="github">pavlov99/json-rpc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/json-tools/Manifest b/dev-python/json-tools/Manifest
new file mode 100644
index 00000000000..9590204d851
--- /dev/null
+++ b/dev-python/json-tools/Manifest
@@ -0,0 +1,2 @@
+DIST json_tools-0.3.3.tar.gz 8093 SHA256 d651d10326447b7a039305661b0fa6c44bb54ca2313494e20dda1e4c8c63b7d6 SHA512 34bb34d52f7f230a13071a9a5c3de79f2c76de6b4a8ce60d0acb4447f68893faeb79ee9a98133ba72f1c1acebd9e8beb34dba0953242aee97799e8b97fcf6537 WHIRLPOOL 203666696b13d95b4c918c604c8b968ac1b64603f3559fec4251c2d80792c1d0674fd7a7a086e4536110f241c93fe28457921023183daa3697bf7deee352a11f
+DIST json_tools-0.4.0.tar.gz 7277 SHA256 ec704468805d898da89c5c88157e8aa6559df0cfdcf29ed60a1076a45f79d19a SHA512 b3f86493d17f97eeaecec6572adfc6e16c113c1755f49655863e84f17467c9dae9a57911d66639eb6e6d8548a99887adc827ff28bd26b6180e523b145bba2d5b WHIRLPOOL aaac4a58404a77043cd977c198b5ffe71ec9be9fe0a7fb727bd2efb94802861b961355ce52c0b515456c404a3c855d5a38d4c15a9d9e03cdd9fb4d8bb4989cc5
diff --git a/dev-python/json-tools/json-tools-0.3.3.ebuild b/dev-python/json-tools/json-tools-0.3.3.ebuild
new file mode 100644
index 00000000000..582d0cd73c7
--- /dev/null
+++ b/dev-python/json-tools/json-tools-0.3.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+MY_PN="json_tools"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A set of tools to manipulate JSON: diff, patch, and pretty-printing"
+HOMEPAGE="https://pypi.python.org/pypi/json_tools https://bitbucket.org/vadim_semenov/json_tools"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/json-tools/json-tools-0.4.0.ebuild b/dev-python/json-tools/json-tools-0.4.0.ebuild
new file mode 100644
index 00000000000..4b5d1f10322
--- /dev/null
+++ b/dev-python/json-tools/json-tools-0.4.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# 'Programming Language :: ... in setup.py requires updating"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+MY_PN="json_tools"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A set of tools to manipulate JSON: diff, patch, and pretty-printing"
+HOMEPAGE="https://pypi.python.org/pypi/json_tools https://bitbucket.org/vadim_semenov/json_tools"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/json-tools/metadata.xml b/dev-python/json-tools/metadata.xml
new file mode 100644
index 00000000000..3212f3c3743
--- /dev/null
+++ b/dev-python/json-tools/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">json_tools</remote-id>
+ <remote-id type="bitbucket">vadim_semenov/json_tools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jsonfield/Manifest b/dev-python/jsonfield/Manifest
new file mode 100644
index 00000000000..3ffb026adcd
--- /dev/null
+++ b/dev-python/jsonfield/Manifest
@@ -0,0 +1 @@
+DIST jsonfield-1.0.3.tar.gz 7950 SHA256 7e7f73a675c518712badd783279e26d164140f3fc2ed7a32102c3d08a6a2a4a7 SHA512 b69b783266f593d40b588f8deb42828b36fe31f62aba0a80286a24fd788bbea543c74b0566a70fb336fb80105f488a16932bab417a01d3730fa89201f542deb0 WHIRLPOOL 456205636a57171ab952172233204e249b786138d2afc2be60e603399d6802122d19acdcad3fa2cb5df981368144b610668b12e14f9e51fff0994ce8e7e2c661
diff --git a/dev-python/jsonfield/jsonfield-1.0.3.ebuild b/dev-python/jsonfield/jsonfield-1.0.3.ebuild
new file mode 100644
index 00000000000..91fe456e6aa
--- /dev/null
+++ b/dev-python/jsonfield/jsonfield-1.0.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Reusable Django field that allows you to store validated JSON in your model"
+HOMEPAGE="https://pypi.python.org/pypi/jsonfield https://github.com/bradjasper/django-jsonfield"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="test? ( dev-python/django[${PYTHON_USEDEP}] )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/jsonfield/metadata.xml b/dev-python/jsonfield/metadata.xml
new file mode 100644
index 00000000000..a5c5877f4b1
--- /dev/null
+++ b/dev-python/jsonfield/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">jsonfield</remote-id>
+ <remote-id type="github">bradjasper/django-jsonfield</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jsonmerge/Manifest b/dev-python/jsonmerge/Manifest
new file mode 100644
index 00000000000..d8611c680f8
--- /dev/null
+++ b/dev-python/jsonmerge/Manifest
@@ -0,0 +1 @@
+DIST jsonmerge-1.1.0.tar.gz 12556 SHA256 2ae73a058474e75f27d4ac2595d9da28084ae42be506f04d077ccea3a853b921 SHA512 52ca9d17098533ada09365caddaaa92b0e0ac696c99b92db6aabc8942183a6d9e06ebf002213d8cebbd25d4905a6a7bfa17ad9d296c838b0019b9f30e403ce94 WHIRLPOOL 610597ffb82cc1cf92d40e2c54fe4877c6e38431611855328a6dba5246f2e12420cf7994e00b296a7880588cc4976df62e359e78b6402ec74275d4f343d8618a
diff --git a/dev-python/jsonmerge/jsonmerge-1.1.0.ebuild b/dev-python/jsonmerge/jsonmerge-1.1.0.ebuild
new file mode 100644
index 00000000000..bcd01c68b3d
--- /dev/null
+++ b/dev-python/jsonmerge/jsonmerge-1.1.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+
+inherit distutils-r1
+
+DESCRIPTION="Merge a series of JSON documents."
+HOMEPAGE="https://github.com/omergertel/jsonmerge/ https://pypi.python.org/pypi/jsonmerge/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+REPEND="dev-python/jsonschema[${PYTHON_USEDEP}]"
+DEPEND="${REPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ PYTHONPATH="${PWD}" python -m unittest \
+ $(find tests -name 'test_*.py' | LC_ALL=C sort | sed -e 's:/:.:' -e 's:.py$::') || die
+}
diff --git a/dev-python/jsonmerge/metadata.xml b/dev-python/jsonmerge/metadata.xml
new file mode 100644
index 00000000000..890e2ec8780
--- /dev/null
+++ b/dev-python/jsonmerge/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <remote-id type="pypi">jsonmerge</remote-id>
+ <remote-id type="github">omergertel/jsonmerge</remote-id>
+ </upstream>
+ <maintainer>
+ <email>zmedico@gentoo.org</email>
+ <name>Zac Medico</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/jsonpatch/Manifest b/dev-python/jsonpatch/Manifest
new file mode 100644
index 00000000000..b707bfb1cc2
--- /dev/null
+++ b/dev-python/jsonpatch/Manifest
@@ -0,0 +1,2 @@
+DIST jsonpatch-1.11.tar.gz 14317 SHA256 22d0bc0f5522a4a03dd9fb4c4cdf7c1f03256546c88be4c61e5ceabd22280e47 SHA512 516b6d8c32e97056af3c8d89eb49445d334ddc5588238d062476cb942d919436ea390449fa8e98332c571242a8f10aabd0fe7da3a00698ec3fd98e53f286c821 WHIRLPOOL fe1c97acf820bb72246e98728ba2be42aef4748be28abcd359966ad24220f68f6eca54de6e7a8cf27c8a2ff1538db2aa28b883130c4603468196273362942324
+DIST jsonpatch-1.9.tar.gz 14275 SHA256 e997076450992aa7af2f4ae6c3e7767d390ddb6746979c74fd2092bb8fbdf5b2 SHA512 9f27def8519677dbc6d45287b6938ccfb9179f7a315871adeb7198e1568876a391625c060c7901b7acd51af0ed10427a61d54d899719ef1a073b2e93591904ed WHIRLPOOL a7ee28b9cefa8ddebb060867b260b388cd44ce96f0f2a76698091f55d41be44cd690b32d26b1363218c474fc1dd9cfe8eed3c0d939e9e9d8d4c2214e1b08786b
diff --git a/dev-python/jsonpatch/jsonpatch-1.11.ebuild b/dev-python/jsonpatch/jsonpatch-1.11.ebuild
new file mode 100644
index 00000000000..2de74312c87
--- /dev/null
+++ b/dev-python/jsonpatch/jsonpatch-1.11.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Apply JSON-Patches according to
+ http://tools.ietf.org/html/draft-pbryan-json-patch-04"
+HOMEPAGE="https://github.com/stefankoegl/python-json-patch"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=">=dev-python/jsonpointer-1.9[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+python_test() {
+ "${PYTHON}" tests.py || die "Tests of tests.py fail with ${EPYTHON}"
+ "${PYTHON}" ext_tests.py || die "Tests of ext_tests.py fail with ${EPYTHON}"
+}
diff --git a/dev-python/jsonpatch/jsonpatch-1.9.ebuild b/dev-python/jsonpatch/jsonpatch-1.9.ebuild
new file mode 100644
index 00000000000..9217cf1e5c7
--- /dev/null
+++ b/dev-python/jsonpatch/jsonpatch-1.9.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Apply JSON-Patches according to
+ http://tools.ietf.org/html/draft-pbryan-json-patch-04"
+HOMEPAGE="https://github.com/stefankoegl/python-json-patch"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/jsonpointer-1.5[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" tests.py || die "Tests fail with ${EPYTHON}"
+ "${PYTHON}" ext_tests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/jsonpatch/metadata.xml b/dev-python/jsonpatch/metadata.xml
new file mode 100644
index 00000000000..813d431e479
--- /dev/null
+++ b/dev-python/jsonpatch/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Python library to apply JSON Patches according to
+ http://tools.ietf.org/html/draft-ietf-appsawg-json-patch-08
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">jsonpatch</remote-id>
+ <remote-id type="github">stefankoegl/python-json-patch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jsonpickle/Manifest b/dev-python/jsonpickle/Manifest
new file mode 100644
index 00000000000..44bfe6558a5
--- /dev/null
+++ b/dev-python/jsonpickle/Manifest
@@ -0,0 +1,3 @@
+DIST jsonpickle-0.8.0.tar.gz 53246 SHA256 fbdff63cad3af5313b186bd44b0977a28fa0aa7d0fc1677e440b5512bea1f99a SHA512 955da4cf18cd76b5fc7777f74babe820b02bc79438e51e606d24f98ed8f655510293f77db5b7919d9f3607431a2c5a76fb6710a97a23f7a041392c1b3d3b65b6 WHIRLPOOL b61ce4a55ac57d8a5e5f8621ccb4404a9a1b6d73291945007bec1625a06f8ea84d229e05ddde023b4ce1d6d9cc21f34494fa94e0554db19f13d01602cd662070
+DIST jsonpickle-0.9.1.tar.gz 59008 SHA256 3ba4f8949e1988b7d786b6bd25a30c2a538e84247fd8fa3cae4ad7cf8f3bae65 SHA512 55eb5607a9beb9d0db17c96e96c80a76fd8fbd4bc28657a655af1bad936a9026677ef7ce46014c6d6032e22e442ad3b99fb77ae1c1785682f0fbdb786657d9d9 WHIRLPOOL 9e4d9f74880746d2e96eca58bc19b623010c332456fc00c5ac4ffdd13a69e04fecadfbdf885a575366c60c923a60ef4d0180ca0e6e31c0f161d12f6c4baff31f
+DIST jsonpickle-0.9.2.tar.gz 59816 SHA256 09bf1978d1d004943c2a359009fb5d09b67277bbaaf9aed281856b3c063979e7 SHA512 bfb4110bf98cb8976cffaa47b40aa2c057b7111e99a4676e09bf127c6dada9e01214aba36e7f46be28dc4ec854e30049d1e153414ee7878ed32ea518d3b48ede WHIRLPOOL 6e82ab4ee090b3f3ab319ff40daa67ba0826722dfecb9c2527cea4e63ee87d27176cb2ad3f1340b8995bf5143626b5690e0e612da007aac0fc1949504cb05b0b
diff --git a/dev-python/jsonpickle/files/0.9.0-drop-broken-backend.patch b/dev-python/jsonpickle/files/0.9.0-drop-broken-backend.patch
new file mode 100644
index 00000000000..92f1a650e6d
--- /dev/null
+++ b/dev-python/jsonpickle/files/0.9.0-drop-broken-backend.patch
@@ -0,0 +1,11 @@
+diff -ur jsonpickle-0.9.0.orig/tests/thirdparty_test.py jsonpickle-0.9.0/tests/thirdparty_test.py
+--- tests/thirdparty_test.py 2014-09-08 15:28:09.000000000 +0800
++++ tests/thirdparty_test.py 2015-02-07 15:55:51.962308731 +0800
+@@ -61,6 +61,7 @@
+ def setUp(self):
+ try:
+ import feedparser
++ feedparser.PREFERRED_XML_PARSERS.remove('drv_libxml2')
+ except ImportError:
+ if hasattr(self, 'skipTest'):
+ doit = self.skipTest
diff --git a/dev-python/jsonpickle/files/jsonpickle-0.6.1-drop-brocken-backend.patch b/dev-python/jsonpickle/files/jsonpickle-0.6.1-drop-brocken-backend.patch
new file mode 100644
index 00000000000..be8dc9c26e6
--- /dev/null
+++ b/dev-python/jsonpickle/files/jsonpickle-0.6.1-drop-brocken-backend.patch
@@ -0,0 +1,15 @@
+ tests/thirdparty_tests.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/thirdparty_tests.py b/tests/thirdparty_tests.py
+index 6d2d150..f085f57 100644
+--- a/tests/thirdparty_tests.py
++++ b/tests/thirdparty_tests.py
+@@ -60,6 +60,7 @@ class FeedParserTest(unittest.TestCase):
+ def setUp(self):
+ try:
+ import feedparser
++ feedparser.PREFERRED_XML_PARSERS.remove('drv_libxml2')
+ except ImportError as e:
+ self.fail("feedparser module not available, please install")
+ self.doc = feedparser.parse(RSS_DOC)
diff --git a/dev-python/jsonpickle/jsonpickle-0.8.0.ebuild b/dev-python/jsonpickle/jsonpickle-0.8.0.ebuild
new file mode 100644
index 00000000000..6416b1cc24f
--- /dev/null
+++ b/dev-python/jsonpickle/jsonpickle-0.8.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for serializing any arbitrary object graph into JSON"
+HOMEPAGE="http://jsonpickle.github.com/ http://pypi.python.org/pypi/jsonpickle"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+# There are optional json backends in addition to those selected here
+# jsonlib, demjson, yajl, jsonlib
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/feedparser[${PYTHON_USEDEP}]
+ dev-python/ujson[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND} )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/sphinxtogithub[${PYTHON_USEDEP}]' python2_7) )"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.6.1-drop-brocken-backend.patch )
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c docs/source/ docs/source/ docs/source/html
+}
+
+python_test() {
+ einfo "testsuite has optional tests for package demjson"
+ ${PYTHON} tests/runtests.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jsonpickle/jsonpickle-0.9.1.ebuild b/dev-python/jsonpickle/jsonpickle-0.9.1.ebuild
new file mode 100644
index 00000000000..366eab860b3
--- /dev/null
+++ b/dev-python/jsonpickle/jsonpickle-0.9.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for serializing any arbitrary object graph into JSON"
+HOMEPAGE="https://github.com/jsonpickle/jsonpickle/ http://pypi.python.org/pypi/jsonpickle"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+# There are optional json backends serializer/deserializers in addition to those selected here
+# jsonlib, yajl. demjson added
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/feedparser[${PYTHON_USEDEP}]
+ dev-python/ujson[${PYTHON_USEDEP}]
+ dev-python/demjson[${PYTHON_USEDEP}]
+ "
+DEPEND="test? ( ${RDEPEND} )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/sphinxtogithub[${PYTHON_USEDEP}]' python2_7) )"
+
+PATCHES=( "${FILESDIR}"/0.9.0-drop-broken-backend.patch )
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c docs/source/ docs/source/ docs/source/html
+}
+
+python_test() {
+ # An apparent regression in tests
+ # https://github.com/jsonpickle/jsonpickle/issues/124
+ einfo "testsuite has optional tests for package demjson"
+ ${PYTHON} tests/runtests.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jsonpickle/jsonpickle-0.9.2.ebuild b/dev-python/jsonpickle/jsonpickle-0.9.2.ebuild
new file mode 100644
index 00000000000..d0058843585
--- /dev/null
+++ b/dev-python/jsonpickle/jsonpickle-0.9.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for serializing any arbitrary object graph into JSON"
+HOMEPAGE="https://github.com/jsonpickle/jsonpickle/ http://pypi.python.org/pypi/jsonpickle"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+# There are optional json backends serializer/deserializers in addition to those selected here
+# jsonlib, yajl. demjson added
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/feedparser[${PYTHON_USEDEP}]
+ dev-python/ujson[${PYTHON_USEDEP}]
+ dev-python/demjson[${PYTHON_USEDEP}]
+ "
+DEPEND="test? ( ${RDEPEND} )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/sphinxtogithub[${PYTHON_USEDEP}]' python2_7) )"
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c docs/source/ docs/source/ docs/source/html
+}
+
+python_test() {
+ # An apparent regression in tests
+ # https://github.com/jsonpickle/jsonpickle/issues/124
+ einfo "testsuite has optional tests for package demjson"
+ ${PYTHON} tests/runtests.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/jsonpickle/metadata.xml b/dev-python/jsonpickle/metadata.xml
new file mode 100644
index 00000000000..c2c1d1d9b4b
--- /dev/null
+++ b/dev-python/jsonpickle/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">jsonpickle</remote-id>
+ <remote-id type="github">jsonpickle/jsonpickle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jsonpointer/Manifest b/dev-python/jsonpointer/Manifest
new file mode 100644
index 00000000000..e8ca3b2b7ef
--- /dev/null
+++ b/dev-python/jsonpointer/Manifest
@@ -0,0 +1,2 @@
+DIST jsonpointer-1.7.tar.gz 8187 SHA256 46b2016b5e4f2b5cd2edf07c60ca8fe7dd91204ca848f98964be61b3c4760f5e SHA512 26b25f31fb98fe7c7d926dcc492fe7889f2462430f959645e498fc47367d23243fb3b528da7af026827dffb30d7c5fe2ffb31843a8f2c9064647bebb313de9bb WHIRLPOOL 8539c4bb40cb2c1042f76d91e127da31d742ea55f8b2ba51abcc0e2d3319bf2ab2380e3ee2cd4195d8cc563b2d36a1eff56a6e72e2f3a8c171692bb66bfa3558
+DIST jsonpointer-1.9.tar.gz 7662 SHA256 39403b47a71aa782de6d80db3b78f8a5f68ad8dfc9e674ca3bb5b32c15ec7308 SHA512 872367c1a75f8022c07a52191d3f9491dd62767f58c4fa2c2fdcd1bf139858f73e7a5ad495943f1cb35b759d7919a807f8bccc052f6c35831e8091b5fda31b40 WHIRLPOOL bfe55984774502e8e91471d00d4d63bb3bf224cc3e677c1d20ee1e060962b7c9962577bbbdaba5c18647d588878820dc1f7b21ad206da019acf79ad9ba289e84
diff --git a/dev-python/jsonpointer/jsonpointer-1.7.ebuild b/dev-python/jsonpointer/jsonpointer-1.7.ebuild
new file mode 100644
index 00000000000..5a70a32ce7c
--- /dev/null
+++ b/dev-python/jsonpointer/jsonpointer-1.7.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Identify specific nodes in a JSON document (according to draft 08)"
+HOMEPAGE="https://github.com/stefankoegl/python-json-pointer https://pypi.python.org/pypi/jsonpointer/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" tests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/jsonpointer/jsonpointer-1.9.ebuild b/dev-python/jsonpointer/jsonpointer-1.9.ebuild
new file mode 100644
index 00000000000..0c784a0711d
--- /dev/null
+++ b/dev-python/jsonpointer/jsonpointer-1.9.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Identify specific nodes in a JSON document (according to draft 08)"
+HOMEPAGE="https://github.com/stefankoegl/python-json-pointer https://pypi.python.org/pypi/jsonpointer/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" tests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/jsonpointer/metadata.xml b/dev-python/jsonpointer/metadata.xml
new file mode 100644
index 00000000000..4682e7f37ec
--- /dev/null
+++ b/dev-python/jsonpointer/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Identify specific nodes in a JSON document (according to draft 08)
+ http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-08
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">jsonpointer</remote-id>
+ <remote-id type="github">stefankoegl/python-json-pointer</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jsonrpclib/Manifest b/dev-python/jsonrpclib/Manifest
new file mode 100644
index 00000000000..89517e2d279
--- /dev/null
+++ b/dev-python/jsonrpclib/Manifest
@@ -0,0 +1,2 @@
+DIST jsonrpclib-0_pre20110820.tar.bz2 14608 SHA256 a31ce391e8f430f2434c538dedb012e879296628a7b2968f1aa41cb36207369d SHA512 80864890982c4a11996cd9fae21029cdf40b089eb6c2d265c645f52fe0a6e858b3405c5d899d2a5908527da04263d93064f365c5308adda1791105bf32329b71 WHIRLPOOL d7ad4277ea5bcb3451728a36f42a76e965256ac6239269e12125c1a19f9dbbeb9dfe69b58738b42e7823a687ad195f8a782aa2e0fe4797a59743b5230f598365
+DIST jsonrpclib-0_pre20150305.tar.xz 14948 SHA256 392ad1643d5455f3b9d08414ca3827edad7b4d189376203c2ccc2980e807aba1 SHA512 091bb753469b5983d68631d8acebea6e9b208b01758a08f948a63b9d022ab2ce072ceee259a6747645dadf9a02ca77185fd5cdde3d1635addedc402629e1c381 WHIRLPOOL 6d2967d4f5c6decd24c27dbc9f298e550a99873d1657618ed4742f4f9aefe1e9ca1cc660702a786d42463d3853df0cd0644d972810c7369cf56d309925df6780
diff --git a/dev-python/jsonrpclib/files/jsonrpclib-fix-nested-imports.patch b/dev-python/jsonrpclib/files/jsonrpclib-fix-nested-imports.patch
new file mode 100644
index 00000000000..39e0463c91e
--- /dev/null
+++ b/dev-python/jsonrpclib/files/jsonrpclib-fix-nested-imports.patch
@@ -0,0 +1,31 @@
+From 865a813078c1b447713aeb1f1bb860c441a88365 Mon Sep 17 00:00:00 2001
+From: Jon Salz <jsalz@chromium.org>
+Date: Fri, 20 Apr 2012 02:41:50 +0800
+Subject: [PATCH] Fix importing of nested modules.
+
+https://github.com/joshmarshall/jsonrpclib/issues/15
+---
+ jsonrpclib/jsonclass.py | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/jsonrpclib/jsonclass.py b/jsonrpclib/jsonclass.py
+index 298c3da..1d86d5f 100644
+--- a/jsonrpclib/jsonclass.py
++++ b/jsonrpclib/jsonclass.py
+@@ -129,6 +129,13 @@ def load(obj):
+ except ImportError:
+ raise TranslationError('Could not import %s from module %s.' %
+ (json_class_name, json_module_tree))
++
++ # The returned class is the top-level module, not the one we really
++ # want. (E.g., if we import a.b.c, we now have a.) Walk through other
++ # path components to get to b and c.
++ for i in json_module_parts[1:]:
++ temp_module = getattr(temp_module, i)
++
+ json_class = getattr(temp_module, json_class_name)
+ # Creating the object...
+ new_obj = None
+--
+1.7.3.4
+
diff --git a/dev-python/jsonrpclib/jsonrpclib-0_pre20110820-r1.ebuild b/dev-python/jsonrpclib/jsonrpclib-0_pre20110820-r1.ebuild
new file mode 100644
index 00000000000..fd26d3b99f9
--- /dev/null
+++ b/dev-python/jsonrpclib/jsonrpclib-0_pre20110820-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/joshmarshall/jsonrpclib.git"
+ inherit git-2
+else
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="amd64 arm x86"
+fi
+
+DESCRIPTION="python implementation of the JSON-RPC spec (1.0 and 2.0)"
+HOMEPAGE="https://github.com/joshmarshall/jsonrpclib"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-python/simplejson"
diff --git a/dev-python/jsonrpclib/jsonrpclib-0_pre20150305.ebuild b/dev-python/jsonrpclib/jsonrpclib-0_pre20150305.ebuild
new file mode 100644
index 00000000000..101ea1209ee
--- /dev/null
+++ b/dev-python/jsonrpclib/jsonrpclib-0_pre20150305.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/joshmarshall/jsonrpclib.git"
+ inherit git-2
+else
+ SRC_URI="mirror://gentoo/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~mips ~x86"
+fi
+
+DESCRIPTION="python implementation of the JSON-RPC spec (1.0 and 2.0)"
+HOMEPAGE="https://github.com/joshmarshall/jsonrpclib"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-python/simplejson"
diff --git a/dev-python/jsonrpclib/jsonrpclib-9999.ebuild b/dev-python/jsonrpclib/jsonrpclib-9999.ebuild
new file mode 100644
index 00000000000..101ea1209ee
--- /dev/null
+++ b/dev-python/jsonrpclib/jsonrpclib-9999.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/joshmarshall/jsonrpclib.git"
+ inherit git-2
+else
+ SRC_URI="mirror://gentoo/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~mips ~x86"
+fi
+
+DESCRIPTION="python implementation of the JSON-RPC spec (1.0 and 2.0)"
+HOMEPAGE="https://github.com/joshmarshall/jsonrpclib"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-python/simplejson"
diff --git a/dev-python/jsonrpclib/metadata.xml b/dev-python/jsonrpclib/metadata.xml
new file mode 100644
index 00000000000..93833cfa1fa
--- /dev/null
+++ b/dev-python/jsonrpclib/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ <description>make whatever changes you want</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">joshmarshall/jsonrpclib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/jsonschema/Manifest b/dev-python/jsonschema/Manifest
new file mode 100644
index 00000000000..91c16cd0ec4
--- /dev/null
+++ b/dev-python/jsonschema/Manifest
@@ -0,0 +1,2 @@
+DIST jsonschema-2.3.0.tar.gz 43115 SHA256 a79dcee3769d7cf749836da840966a83cd2e33e361264e77b74df9490ffe5c89 SHA512 8c39c47c236904d3deb3893d43fd1a9332896e8a1883901ef6040607575250b0d661b010d94be6b0d52515b42e2c7924c93d352ca9b209cec54514e856d95c75 WHIRLPOOL 7f61838ac7173ac2d0dde16f83a864b8dcd82905d139c4de8d7b698ce022f1a63003ff45be53cf134a30747533cb034d2d5d944559a1b6990a37d8073b38d0ea
+DIST jsonschema-2.4.0.tar.gz 48293 SHA256 1298a2f1b2f4c4a7b921cccd159e4e42f6d7b0fb75c86c0cdecfc71f061833fa SHA512 111d60f6b490c016a69bed6b0b22cc6395c949d4510fdcb530757d6e61720cd2e1e3346293a5dd1b6501b262b36510ec08ab4ed76dc7484065e692e041232a93 WHIRLPOOL 1bcec6c3e09f72ad314db49e73d92f854e5f69c490e9ad46b4d0e31564392fb27bf387eec6d376237735396a7da989dcd601e33e2a43e35ed2559fc83b7ebf63
diff --git a/dev-python/jsonschema/jsonschema-2.3.0.ebuild b/dev-python/jsonschema/jsonschema-2.3.0.ebuild
new file mode 100644
index 00000000000..f8a5a6a1ca2
--- /dev/null
+++ b/dev-python/jsonschema/jsonschema-2.3.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_{3,4}} pypy)
+inherit distutils-r1
+
+DESCRIPTION="An implementation of JSON-Schema validation for Python"
+HOMEPAGE="http://pypi.python.org/pypi/jsonschema"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+python_test() {
+ local runner=( "${PYTHON}" -m unittest )
+ if [[ ${EPYTHON} == python2.6 || ${EPYTHON} == python3.1 ]]; then
+ unset PYTHONPATH
+ runner=( unit2.py )
+ fi
+ "${runner[@]}" discover || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/jsonschema/jsonschema-2.4.0.ebuild b/dev-python/jsonschema/jsonschema-2.4.0.ebuild
new file mode 100644
index 00000000000..2a51cbaebb8
--- /dev/null
+++ b/dev-python/jsonschema/jsonschema-2.4.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An implementation of JSON-Schema validation for Python"
+HOMEPAGE="http://pypi.python.org/pypi/jsonschema"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/jsonschema/metadata.xml b/dev-python/jsonschema/metadata.xml
new file mode 100644
index 00000000000..31179ec4c84
--- /dev/null
+++ b/dev-python/jsonschema/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <longdescription lang="en">
+jsonschema is an implementation of JSON Schema (currently in Draft 3) for
+Python (supporting 2.6+ including Python 3).
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">jsonschema</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kaa-base/Manifest b/dev-python/kaa-base/Manifest
new file mode 100644
index 00000000000..5e12c9aea8b
--- /dev/null
+++ b/dev-python/kaa-base/Manifest
@@ -0,0 +1 @@
+DIST kaa-base-0.6.0.tar.gz 346849 SHA256 04fb0f610ec19a1aad1698d20829fb8caa34a97fe9cd4d9acf9f4f9f918d79b0 SHA512 685bfbab9ccdfed529ce17185f50700f8b090c0ca2f5f8e937609c9f03efd19536cc8c2ae8218415eea3ccd89269c92aa4d9bfe88ca3e951d7546ea4ce91cd6f WHIRLPOOL 4887fd6af4cfbf16701a604aacf4f78aedeb96db50c6955a7fbb15d45fd5824288b76f5aa372358fd7c0983b7ca0ea55390334a301c55bcd0e219d777ebf546e
diff --git a/dev-python/kaa-base/kaa-base-0.6.0-r1.ebuild b/dev-python/kaa-base/kaa-base-0.6.0-r1.ebuild
new file mode 100644
index 00000000000..4a25d6f3a4b
--- /dev/null
+++ b/dev-python/kaa-base/kaa-base-0.6.0-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite?,threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Basic Framework for all Kaa Python Modules"
+HOMEPAGE="http://freevo.sourceforge.net/kaa/"
+SRC_URI="mirror://sourceforge/freevo/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="avahi sqlite tls lirc"
+
+DEPEND=">=dev-libs/glib-2.4.0
+ avahi? ( net-dns/avahi[python] )
+ sqlite? ( dev-python/dbus-python[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}
+ dev-python/pynotifier[${PYTHON_USEDEP}]
+ lirc? ( dev-python/pylirc[${PYTHON_USEDEP}] )
+ tls? ( dev-python/tlslite[${PYTHON_USEDEP}] )"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i -e 's:from pysqlite2 import dbapi2:import sqlite3:' \
+ src/db.py || die
+
+ rm -fr src/pynotifier
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ distutils-r1_python_compile
+}
diff --git a/dev-python/kaa-base/metadata.xml b/dev-python/kaa-base/metadata.xml
new file mode 100644
index 00000000000..4fbeabc7eaf
--- /dev/null
+++ b/dev-python/kaa-base/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ Kaa-base provides the base Kaa framework and is an implicit
+ dependency for all kaa modules. The kaa framework includes a
+ mainloop facility with an API for signals and callbacks, timers,
+ process and thread management, file descriptor monitoring (with
+ INotify support), inter-process communication, as well as a
+ rich, practically magical API for asynchronous programming.
+ </longdescription>
+ <use>
+ <flag name="tls">SSL/TLS support via <pkg>dev-python/tlslite</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">freevo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kaa-display/Manifest b/dev-python/kaa-display/Manifest
new file mode 100644
index 00000000000..2bc596be7a8
--- /dev/null
+++ b/dev-python/kaa-display/Manifest
@@ -0,0 +1 @@
+DIST kaa-display-0.1.0.tar.gz 40263 SHA256 72cfe231feae7b860b9e00fb2d83e1cb54f0d38719267a4701818c4c8aa6e922 SHA512 dec20eb8830567b07248fd4733d7576c9dfbe4f8577d4326e82baf434034e2b6105d3a6cf561f074fcf29b328d2daf6faf6a18dc467b030a3814d953b44a0b1b WHIRLPOOL 6da8fb77f155c8814e1af60364a89955330dd78238748aded1b0e64e503e38994f597462f0b3eeddfd7654f049fb8a7d03853e7174d11217916ea4074760ec1c
diff --git a/dev-python/kaa-display/kaa-display-0.1.0-r1.ebuild b/dev-python/kaa-display/kaa-display-0.1.0-r1.ebuild
new file mode 100644
index 00000000000..d8d57e617f0
--- /dev/null
+++ b/dev-python/kaa-display/kaa-display-0.1.0-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python API providing Low level support for various displays, such as X11 or framebuffer"
+HOMEPAGE="http://freevo.sourceforge.net/kaa/"
+SRC_URI="mirror://sourceforge/freevo/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/kaa-base-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/kaa-imlib2-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pygame-1.6.0[${PYTHON_USEDEP}]
+ media-libs/imlib2[X]
+ >=x11-libs/libX11-1.0.0"
+RDEPEND="${DEPEND}"
+DISTUTILS_IN_SOURCE_BUILD=1
diff --git a/dev-python/kaa-display/kaa-display-0.1.0.ebuild b/dev-python/kaa-display/kaa-display-0.1.0.ebuild
new file mode 100644
index 00000000000..b7669f01f18
--- /dev/null
+++ b/dev-python/kaa-display/kaa-display-0.1.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2:2.5"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.4 3.* *-jython 2.7-pypy-*"
+
+inherit distutils
+
+DESCRIPTION="Python API providing Low level support for various displays, such as X11 or framebuffer"
+HOMEPAGE="http://freevo.sourceforge.net/kaa/"
+SRC_URI="mirror://sourceforge/freevo/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND=">=dev-python/kaa-base-0.3.0
+ >=dev-python/kaa-imlib2-0.2.0
+ >=dev-python/pygame-1.6.0
+ media-libs/imlib2[X]
+ >=x11-libs/libX11-1.0.0"
+RDEPEND="${DEPEND}"
+
+PYTHON_MODNAME="kaa/display"
diff --git a/dev-python/kaa-display/metadata.xml b/dev-python/kaa-display/metadata.xml
new file mode 100644
index 00000000000..b64cc34153e
--- /dev/null
+++ b/dev-python/kaa-display/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">freevo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kaa-imlib2/Manifest b/dev-python/kaa-imlib2/Manifest
new file mode 100644
index 00000000000..500e52abdf5
--- /dev/null
+++ b/dev-python/kaa-imlib2/Manifest
@@ -0,0 +1 @@
+DIST kaa-imlib2-0.2.3.tar.gz 30671 SHA256 44eec202450edadfdac91a44be191b7fbba6225e90a6595443c422d1928f39c6 SHA512 417e473befba7360160db8296fb20de9689f6620bf0940b35e68b4abf00ec49ffadf95f62b7c6baaf1465b6c69c2d14b149d9ff3a4a8450e5966cf53f160a5a0 WHIRLPOOL 480d3e0b51cb93c4c53c6734844e6fddbfba3ed81e0d4b40493e254c39375276e3d52c108cef488f8551d58e73a196d8bb3a3e73a48e9fcf98d1158106c10e9d
diff --git a/dev-python/kaa-imlib2/files/kaa-imlib2-remove-png-dep.patch b/dev-python/kaa-imlib2/files/kaa-imlib2-remove-png-dep.patch
new file mode 100644
index 00000000000..0db6fefa9ca
--- /dev/null
+++ b/dev-python/kaa-imlib2/files/kaa-imlib2-remove-png-dep.patch
@@ -0,0 +1,11 @@
+--- setup.py.old 2008-07-12 01:43:30.700296071 +0200
++++ setup.py 2008-07-12 01:43:57.441547566 +0200
+@@ -39,7 +39,7 @@
+ sys.exit(1)
+
+ files = [ 'src/imlib2.c', 'src/image.c', 'src/font.c', 'src/rawformats.c' ]
+-libraries = [ 'png']
++libraries = []
+ if not os.uname()[0] in ('FreeBSD', 'Darwin'):
+ libraries.append('rt')
+ imlib2so = Extension('kaa.imlib2._Imlib2module', files,
diff --git a/dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r1.ebuild b/dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r1.ebuild
new file mode 100644
index 00000000000..d787a39d3a9
--- /dev/null
+++ b/dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2:2.5"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.4 3.* 2.7-pypy-* *-jython"
+
+inherit distutils eutils
+
+DESCRIPTION="Imlib2 wrapper for Python"
+HOMEPAGE="http://freevo.sourceforge.net/kaa/"
+SRC_URI="mirror://sourceforge/freevo/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND=">=dev-python/kaa-base-0.3.0
+ dev-libs/libxml2[python]
+ media-libs/imlib2"
+RDEPEND="${DEPEND}"
+
+PYTHON_MODNAME="kaa"
+
+src_prepare() {
+ distutils_src_prepare
+ epatch "${FILESDIR}/kaa-imlib2-remove-png-dep.patch"
+}
diff --git a/dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r2.ebuild b/dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r2.ebuild
new file mode 100644
index 00000000000..8a5d9aace53
--- /dev/null
+++ b/dev-python/kaa-imlib2/kaa-imlib2-0.2.3-r2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Imlib2 wrapper for Python"
+HOMEPAGE="http://freevo.sourceforge.net/kaa/"
+SRC_URI="mirror://sourceforge/freevo/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/kaa-base-0.3.0[${PYTHON_USEDEP}]
+ dev-libs/libxml2[python]
+ media-libs/imlib2"
+RDEPEND="${DEPEND}"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}/kaa-imlib2-remove-png-dep.patch" )
diff --git a/dev-python/kaa-imlib2/metadata.xml b/dev-python/kaa-imlib2/metadata.xml
new file mode 100644
index 00000000000..1a135252149
--- /dev/null
+++ b/dev-python/kaa-imlib2/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ Kaa-Imlib2 is a python module for Imlib2.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">freevo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kaa-metadata/Manifest b/dev-python/kaa-metadata/Manifest
new file mode 100644
index 00000000000..5eae05799f2
--- /dev/null
+++ b/dev-python/kaa-metadata/Manifest
@@ -0,0 +1 @@
+DIST kaa-metadata-0.7.7.tar.gz 257513 SHA256 7466058f1f69e40a9e26c8e6219c13c3a4f1b5228effc88035d9f4fe287cf450 SHA512 a6ac02e4887cc0489903cf57f55666b30e1351a958572117a867285f34639bcd7302450177f0471cc4bf0ad02d8a42d1f015cd237948610357bdc2e2fb9cc131 WHIRLPOOL 2116f304b826e906ce150ee4b321085b1f2d10ed5c929d8a333c9a5b0d63304e56a3cf91212ab100d78f0a7eda0991ba3824c687f1ddebaa9b8f76626c73088c
diff --git a/dev-python/kaa-metadata/kaa-metadata-0.7.7-r1.ebuild b/dev-python/kaa-metadata/kaa-metadata-0.7.7-r1.ebuild
new file mode 100644
index 00000000000..56e5c534b1c
--- /dev/null
+++ b/dev-python/kaa-metadata/kaa-metadata-0.7.7-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit distutils-r1
+
+DESCRIPTION="Powerful media metadata parser for media files in Python, successor of MMPython"
+HOMEPAGE="http://freevo.sourceforge.net/kaa/"
+SRC_URI="mirror://sourceforge/freevo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="css dvd"
+
+DEPEND=">=dev-python/kaa-base-0.3.0[${PYTHON_USEDEP}]
+ css? ( media-libs/libdvdcss )
+ dvd? ( media-libs/libdvdread )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ # Disable experimental exiv2 parser which fails to build.
+ sed -e "s/-lexiv2/&_nonexistent/" -i setup.py || die "sed setup.py failed"
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/kaa-metadata/metadata.xml b/dev-python/kaa-metadata/metadata.xml
new file mode 100644
index 00000000000..7c977ff801b
--- /dev/null
+++ b/dev-python/kaa-metadata/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ A powerful media metadata parser in Python. It can extract
+ metadata (such as id3 tags, for example) from a wide range of
+ media files. Attributes like codec, length, resolution,
+ audio/video/subtitle tracks, and chapters are also returned.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">freevo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kazoo/Manifest b/dev-python/kazoo/Manifest
new file mode 100644
index 00000000000..3a3b5e6c31c
--- /dev/null
+++ b/dev-python/kazoo/Manifest
@@ -0,0 +1,3 @@
+DIST kazoo-1.3.1.zip 138816 SHA256 51c6dec001b0ffabeab2f1516c92999e1554d0072e517a5a39d4428decf4d7c8 SHA512 fa93210a361086ca40c2b2eebeb0062e055420cf4de4fecb94c96b9cddc5b0404135b0344cce37d7e91462c3022f348a5b007a6ec20c4bb29e1817335f1fbcc3 WHIRLPOOL 8f2ce9b9db8450bb011d59b956997406a672a38331a86b2a79b5270da1a733d086b1f88a10acf75803f64f1781bcd8f2645ab34b4daf3d397a4b8ecf1ffcc740
+DIST kazoo-2.0.zip 145663 SHA256 f0c42cc7752a331ba59269827bd19cb271210399a9dcab32b6a91465b4431a18 SHA512 99ea48e5c763adc18f579a6066a63b55b615e5bf0350e60b8e2ec1e6bb8608cbf0acf67fe7937ff6d68cb79ace765806fed38ecaf8ace600a0c20166be8d8ef4 WHIRLPOOL 00aa5257b9061c0477feac00c1ee1a92a26700cee7ab0c6ca5702a3ca03907b69f66437dbf61896ee3a95a9eb06beee85650c9f9bdf1bd9a2b3c4ba11433180f
+DIST kazoo-2.2.1.tar.gz 108037 SHA256 525a9959b98a1203530bee01446b365a9f7f1caa69399af0151127178941eb82 SHA512 a2590441a9e3bfb3d14913051453e195d275b82bd6a4ce5e32d0a7bbc09b00e475ffac68fd06cb065aa439ea580b61bbeaa3ccfefa413723e46f4b1d3ce05707 WHIRLPOOL 6e43b27683382f4fb4054b85017e94e4fddd2d1416eea1566b87fc4cbc3edce37093e8c001211d324162d35f4c0f0da3632de1cf543eef2b171971a0f05b7357
diff --git a/dev-python/kazoo/kazoo-1.3.1.ebuild b/dev-python/kazoo/kazoo-1.3.1.ebuild
new file mode 100644
index 00000000000..e303d9ee761
--- /dev/null
+++ b/dev-python/kazoo/kazoo-1.3.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A high-level Python library that makes it easier to use Apache Zookeeper"
+HOMEPAGE="https://kazoo.readthedocs.org/ https://github.com/python-zk/kazoo/ https://pypi.python.org/pypi/kazoo/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gevent test"
+
+RDEPEND="
+ >=dev-python/zope-interface-3.8.0[${PYTHON_USEDEP}]
+ gevent? ( dev-python/gevent[$(python_gen_usedep 'python2*')] )
+"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/repoze-sphinx-autointerface[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )
+"
+
+# not all test deps are in the tree
+RESTRICT="test"
+
+python_compile_all() {
+ use doc && { sphinx-build -b html docs docs/_build/html || die; }
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ local DOCS=( {CHANGES,CONTRIBUTING,README}.rst )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kazoo/kazoo-2.0.ebuild b/dev-python/kazoo/kazoo-2.0.ebuild
new file mode 100644
index 00000000000..37cba7e9eef
--- /dev/null
+++ b/dev-python/kazoo/kazoo-2.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A high-level Python library that makes it easier to use Apache Zookeeper"
+HOMEPAGE="https://kazoo.readthedocs.org/ https://github.com/python-zk/kazoo/ https://pypi.python.org/pypi/kazoo/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc gevent test"
+
+RDEPEND="
+ gevent? ( dev-python/gevent[$(python_gen_usedep 'python2*')] )
+"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )
+"
+
+# not all test deps are in the tree
+RESTRICT="test"
+
+python_compile_all() {
+ use doc && { sphinx-build -b html docs docs/_build/html || die; }
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ local DOCS=( {CHANGES,CONTRIBUTING,README}.rst )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kazoo/kazoo-2.2.1.ebuild b/dev-python/kazoo/kazoo-2.2.1.ebuild
new file mode 100644
index 00000000000..c6b13e776cc
--- /dev/null
+++ b/dev-python/kazoo/kazoo-2.2.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A high-level Python library that makes it easier to use Apache Zookeeper"
+HOMEPAGE="https://kazoo.readthedocs.org/ https://github.com/python-zk/kazoo/ https://pypi.python.org/pypi/kazoo/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gevent test"
+
+RDEPEND="
+ gevent? ( dev-python/gevent[$(python_gen_usedep 'python2*')] )
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )
+"
+
+# not all test deps are in the tree
+RESTRICT="test"
+
+python_compile_all() {
+ use doc && { sphinx-build -b html docs docs/_build/html || die; }
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ local DOCS=( {CHANGES,CONTRIBUTING,README}.rst )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kazoo/metadata.xml b/dev-python/kazoo/metadata.xml
new file mode 100644
index 00000000000..59a2b478a97
--- /dev/null
+++ b/dev-python/kazoo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="gevent">Enable support for the gevent based handler</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">kazoo</remote-id>
+ <remote-id type="github">python-zk/kazoo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/keepassx/Manifest b/dev-python/keepassx/Manifest
new file mode 100644
index 00000000000..7571f43ccba
--- /dev/null
+++ b/dev-python/keepassx/Manifest
@@ -0,0 +1,2 @@
+DIST keepassx-0.0.3.tar.gz 15041 SHA256 d8cada98caf2aa77472de67efbec9818e5eb9c4e7a2d39a58ac02e5c2553c5ba SHA512 97ca5b00f8f565595ea78f43a152c752e7ae868ba15d8d3c48f3b75e56d266e28e99d1e61badec646f585bdeca42c49c0d2e19efd46bd79e9838d54293f5e784 WHIRLPOOL 89091f89248f0f4bb525e5dc47ccf228d401524968a76cf6605a790b86983ab9cbe0195dd4b067441975ebd9c58067ed4200f689bc3564427fc07d4620567797
+DIST keepassx-0.1.0.tar.gz 37022 SHA256 deba28c48e2400860095447143f4db840e312b3fd8961043023b7303edf91e9f SHA512 635f98d2a95a1e5cc4a5c08f8d261cdf5be9e5656df28c070250aed2dbc058c85b9d7ad81e69de1d9b095b0aac5e3c6bf3a6a54b0b4de9b5664348ca42bdc755 WHIRLPOOL 0be496ef696fc198755ec6c0e3f76743896ba44e72c443bd04eff25efdca481590ec51acbb655d7897b6d581f7cb344c00922c1530d73d81387fc2bb0d34f9e8
diff --git a/dev-python/keepassx/keepassx-0.0.3.ebuild b/dev-python/keepassx/keepassx-0.0.3.ebuild
new file mode 100644
index 00000000000..36e6f4b5c63
--- /dev/null
+++ b/dev-python/keepassx/keepassx-0.0.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python API and CLI for KeePassX"
+HOMEPAGE="https://github.com/jamesls/python-keepassx https://pypi.python.org/pypi/keepassx"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/prettytable[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ py.test keepassx || die
+}
diff --git a/dev-python/keepassx/keepassx-0.1.0.ebuild b/dev-python/keepassx/keepassx-0.1.0.ebuild
new file mode 100644
index 00000000000..c3dee17179b
--- /dev/null
+++ b/dev-python/keepassx/keepassx-0.1.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python API and CLI for KeePassX"
+HOMEPAGE="https://github.com/jamesls/python-keepassx https://pypi.python.org/pypi/keepassx"
+SRC_URI="https://github.com/jamesls/python-keepassx/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+S=${WORKDIR}/python-${P}
+
+RDEPEND="
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/prettytable[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}] )
+"
+python_test() {
+ py.test tests || die
+}
diff --git a/dev-python/keepassx/metadata.xml b/dev-python/keepassx/metadata.xml
new file mode 100644
index 00000000000..016bb1fcf2e
--- /dev/null
+++ b/dev-python/keepassx/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">keepassx</remote-id>
+ <remote-id type="github">jamesls/python-keepassx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/keyczar/Manifest b/dev-python/keyczar/Manifest
new file mode 100644
index 00000000000..b338c60e1b2
--- /dev/null
+++ b/dev-python/keyczar/Manifest
@@ -0,0 +1,2 @@
+DIST python-keyczar-0.715.tar.gz 242151 SHA256 f43f9f15b0b719de94cab2754dcf78ef63b40ee2a12cea296e7af788b28501bb SHA512 e0733ad488db2a2803227db6f140c5f316425782a780070e6fd4227d3b88d523e2c41743cd3a6e14e535c7dbdf7b50b428d15d26ca5cfb35e2841a5f71b709f3 WHIRLPOOL b93ec173970f4857e1991e0fe08e3e0ac9c8243dad2f5d63b362711f100da2861c878ea0b5ee44aae54594404d9e77d4d8420c9b54004d3019d6b00995535354
+DIST python-keyczar-0.71c.tar.gz 237244 SHA256 37707db2af3dde1c7e087b8a8f72ce3bef376889a3a358a72fe66e83318fb0a2 SHA512 7123d84701d245bbd51c9760fccb49f6664d93337433054f2deb95ca0428ed994b77494465b93a142e6778f9bcd968e99d93a2805dd5368fd34d2bb2abaf1d58 WHIRLPOOL 5d78934d080294b22d3785739edf76e8dde6579a207de2cfacf7b0d6e33ba490a647a2857a0b927563f0e97f006bf806347082cf586859a155dc46af355b7ab7
diff --git a/dev-python/keyczar/keyczar-0.715.ebuild b/dev-python/keyczar/keyczar-0.715.ebuild
new file mode 100644
index 00000000000..feab47b8d9a
--- /dev/null
+++ b/dev-python/keyczar/keyczar-0.715.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 ) #appears py2 friendly only
+
+inherit distutils-r1
+
+MY_PN=python-${PN}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Toolkit for safe and simple cryptography"
+HOMEPAGE="http://www.keyczar.org https://pypi.python.org/pypi/python-keyczar/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ >=dev-python/pycrypto-2.0[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ cd tests/keyczar_tests
+ ${PYTHON} alltests.py || die "tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && dodoc doc/pycrypt*
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/keyczar/keyczar-0.71c.ebuild b/dev-python/keyczar/keyczar-0.71c.ebuild
new file mode 100644
index 00000000000..3ec65224c84
--- /dev/null
+++ b/dev-python/keyczar/keyczar-0.71c.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN=python-${PN}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Toolkit for safe and simple cryptography"
+HOMEPAGE="http://www.keyczar.org https://pypi.python.org/pypi/python-keyczar/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ >=dev-python/pycrypto-2.0[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ cd "${S}"/tests/keyczar_tests
+ ${PYTHON} alltests.py || die "tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/keyczar/metadata.xml b/dev-python/keyczar/metadata.xml
new file mode 100644
index 00000000000..0a3e6626ed6
--- /dev/null
+++ b/dev-python/keyczar/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-keyczar</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/keyring/Manifest b/dev-python/keyring/Manifest
new file mode 100644
index 00000000000..ad86b24db35
--- /dev/null
+++ b/dev-python/keyring/Manifest
@@ -0,0 +1,7 @@
+DIST keyring-1.0.zip 61370 SHA256 628070bfb2daa080c98ddb3057a2f802cd1d15720ca40e54bdb2aa39d97485f9 SHA512 6b5002b06c5aa420786e4114c3fdaa75eb79ff72af460dcefba5909224bded2ccd9bd19a7a3847395403283f29d2108ba7679adbc97af5717a539c9f14439dd0 WHIRLPOOL 670e6420001defecbf17f1430fd62b48196d89d5ac4f5bf585c5116fec06bc028ca0c18f64fcf5d0c4dcc10e77674d17e75ce3ba29fb5e14877fa61c4f05ffd0
+DIST keyring-1.5.zip 80478 SHA256 e7065e8584d3b9724413eaa42198f0b6433a3c097b620bb176fd1e340cfb9dda SHA512 4c283bf7ae64bd38d846b7ff8c74cae6ad59f684c65c130b7dda726e337295cf9c31ad51ad2ef1bd4011e5f92cbd96f7dfd9606f62bcdf6a61e36ee6b3385606 WHIRLPOOL 58c751504e55c40eaea93cdc6abf64ea0c9791f72efef239da3904762d4022f3f993f3816e293a548da58a5c091da18f5eba50e39ef85344b90fa6fa9fa81b2a
+DIST keyring-1.6.1.zip 80183 SHA256 720a53234749edf0c103e61abe07a16b2ad48b46295c96f58fb804158a739a04 SHA512 2a533cc35476e5748338431ec7b2e97c17a4f6ea66e05425586abadbd7997506cd09dae4bf9156e2747d14754c35b150013d7b0a2d62c47c84ed3094ca7dad6a WHIRLPOOL 92cf707be5c759132ad4a658de8857162c6f505f7269d918acef8a22c2f19a4b999596ee1655ffa17412bc2c3685e81abd8c1e9eb60c6811fbdc60a93aec816e
+DIST keyring-3.1.zip 84216 SHA256 4aa49fa03e6d7b79e1490278c7610f6ff224f58ea8dd90b07541b69d0d178fa0 SHA512 79cb5b6932a7c9d0952893286f2c3e817fde3bfadcd42119a72adf2514d628f78aa0b5f13157c4eea31b49928b44dd1b646f62dc6b6da8958c3b95203a21a27f WHIRLPOOL 1cf8556f24e1c0b078914023ed9670eea879ab85f149d0ca4f9189642e18be5f4e5ac7a7f7ccf464fd87e1bd21bf3dd3715249b8959993899f0af2b446a3038f
+DIST keyring-3.3.zip 86419 SHA256 b42e0d335102cb2cace64289c86faa6686b6addad803b032bf564046e24d1936 SHA512 32845546328969ddd2179e83bfeacccf5ef60e20919258f4bf6e938cffa6dbfa66b9b0cd64d26d8df636c41d387e6b87aaa1645fd6d86aecb3de937f3acccc8c WHIRLPOOL fe6a0f4209e1df5fa0f4d681cdc6f14e83c658604690e9f27e88f4eccb695aea0c7da0219704ab0f024deaaabc38d6666410f04f9ccbd1ce910d797d3bcf1b29
+DIST keyring-3.7.zip 89249 SHA256 e187358e6a9b8e63cc2e223f6f9d4c40c972c0076f4aa0d65b8c9eb75edbea02 SHA512 7343d40566484b33e3f265d874d75fcf502dbc0abfd653db65536ca4d475fc5596ba23a6472467b88b589fca740f62860a39d18ad7a285696b4cc2c79abe2729 WHIRLPOOL 79967660e4db75f4a89ebc462ee4cb73b3b261bdfc9666979f7a08cfcac6a04b2cbe975b0467155b8b159c630bdf938afcc5d9a3ab25928abfaf54cf6b233844
+DIST keyring-4.0.zip 83738 SHA256 ea93c3cd9666c648263df4daadc5f34aeb27415dbf8e4d76579a8a737f1741cf SHA512 e16fe24e9dfa897ecf05c5b269fd490abff654a885c8cf928d133943648fef436555832e3a364698fe7615be609e8b13808ebe6a758612c12d9067dbe6286bd1 WHIRLPOOL 4ff17622cb9d0bbb3af44947cab2436931f5738c3d4e9ddab36923b2c005c66f27f795acf0614d8d37a6cc148bb74124d9f2ae24a9727ea9a4e71db120a56ab8
diff --git a/dev-python/keyring/files/setup-1.0.patch b/dev-python/keyring/files/setup-1.0.patch
new file mode 100644
index 00000000000..d510c6376aa
--- /dev/null
+++ b/dev-python/keyring/files/setup-1.0.patch
@@ -0,0 +1,32 @@
+--- setup.py 2012-11-29 11:01:22.000000000 -0500
++++ setup.py.wanted 2012-12-27 23:55:56.679344322 -0500
+@@ -39,17 +39,6 @@
+ return True
+
+
+-test_requirements = [
+- 'pytest',
+-]
+-"dependencies for running tests"
+-
+-if sys.version_info < (2, 7) or (
+- sys.version_info >= (3, 0) and sys.version_info < (3, 1)):
+- # Require unittest2 for Python which doesn't contain the new unittest
+- # module (appears in Python 2.7 and Python 3.1)
+- test_requirements.append('unittest2')
+-
+ setup_params = dict(
+ name = 'keyring',
+ version = "1.0",
+@@ -74,11 +63,6 @@
+ platforms = ["Many"],
+ packages = ['keyring', 'keyring.tests', 'keyring.util',
+ 'keyring.backends'],
+- extras_require = {'test': test_requirements},
+- tests_require = test_requirements,
+- setup_requires = [
+- 'pytest-runner',
+- ],
+ )
+
+
diff --git a/dev-python/keyring/keyring-1.0.ebuild b/dev-python/keyring/keyring-1.0.ebuild
new file mode 100644
index 00000000000..d14466b2d86
--- /dev/null
+++ b/dev-python/keyring/keyring-1.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}/setup-1.0.patch"
+)
+
+python_test() {
+ # test_backend.py and test_core.py access keyring backends
+ # which may spawn password prompts and do other damage.
+
+ # XXX: leave out the harmless tests (dummy backends?)
+
+ for t in test_{cli,util}.py; do
+ "${PYTHON}" "${BUILD_DIR}"/lib/${PN}/tests/${t} \
+ || die "${t} fails with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/keyring/keyring-1.5-r1.ebuild b/dev-python/keyring/keyring-1.5-r1.ebuild
new file mode 100644
index 00000000000..4ce5c23800a
--- /dev/null
+++ b/dev-python/keyring/keyring-1.5-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 pypy )
+#tests restricted due to unpackaged dependancies
+RESTRICT="test"
+
+inherit distutils-r1
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ dev-python/pytest-runner[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=(
+)
+# "${FILESDIR}/setup-1.0.patch"
+
+python_test() {
+ # test_backend.py and test_core.py access keyring backends
+ # which may spawn password prompts and do other damage.
+
+ # XXX: leave out the harmless tests (dummy backends?)
+
+ for t in test_{cli,util}.py; do
+ "${PYTHON}" "${BUILD_DIR}"/lib/${PN}/tests/${t} \
+ || die "${t} fails with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/keyring/keyring-1.5.ebuild b/dev-python/keyring/keyring-1.5.ebuild
new file mode 100644
index 00000000000..04f51503609
--- /dev/null
+++ b/dev-python/keyring/keyring-1.5.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 pypy )
+#tests restricted due to unpackaged dependancies
+RESTRICT="test"
+
+inherit distutils-r1
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pytest-runner[${PYTHON_USEDEP}]
+ app-arch/unzip"
+RDEPEND=""
+
+PATCHES=(
+)
+# "${FILESDIR}/setup-1.0.patch"
+
+python_test() {
+ # test_backend.py and test_core.py access keyring backends
+ # which may spawn password prompts and do other damage.
+
+ # XXX: leave out the harmless tests (dummy backends?)
+
+ for t in test_{cli,util}.py; do
+ "${PYTHON}" "${BUILD_DIR}"/lib/${PN}/tests/${t} \
+ || die "${t} fails with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/keyring/keyring-1.6.1.ebuild b/dev-python/keyring/keyring-1.6.1.ebuild
new file mode 100644
index 00000000000..8007fe7727a
--- /dev/null
+++ b/dev-python/keyring/keyring-1.6.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( dev-python/pytest-runner[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_prepare_all() {
+ sed -e s':from .py30compat:from keyring.tests.py30compat:' -i keyring/tests/test_util.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_backend.py and test_core.py access keyring backends
+ # which may spawn password prompts and do other damage.
+
+ # XXX: leave out the harmless tests (dummy backends?)
+ for t in test_{cli,util}.py; do
+ py.test "${BUILD_DIR}"/lib/${PN}/tests/${t} \
+ || die "${t} fails with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/keyring/keyring-3.1.ebuild b/dev-python/keyring/keyring-3.1.ebuild
new file mode 100644
index 00000000000..04f51503609
--- /dev/null
+++ b/dev-python/keyring/keyring-3.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 pypy )
+#tests restricted due to unpackaged dependancies
+RESTRICT="test"
+
+inherit distutils-r1
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pytest-runner[${PYTHON_USEDEP}]
+ app-arch/unzip"
+RDEPEND=""
+
+PATCHES=(
+)
+# "${FILESDIR}/setup-1.0.patch"
+
+python_test() {
+ # test_backend.py and test_core.py access keyring backends
+ # which may spawn password prompts and do other damage.
+
+ # XXX: leave out the harmless tests (dummy backends?)
+
+ for t in test_{cli,util}.py; do
+ "${PYTHON}" "${BUILD_DIR}"/lib/${PN}/tests/${t} \
+ || die "${t} fails with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/keyring/keyring-3.3.ebuild b/dev-python/keyring/keyring-3.3.ebuild
new file mode 100644
index 00000000000..9e502ea3f5b
--- /dev/null
+++ b/dev-python/keyring/keyring-3.3.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 pypy)
+
+inherit distutils-r1
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( dev-python/pytest-runner[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pycrypto[$(python_gen_usedep 'python2*' 'python3*')] )"
+RDEPEND=""
+
+python_test() {
+ py.test || die "testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/keyring/keyring-3.7.ebuild b/dev-python/keyring/keyring-3.7.ebuild
new file mode 100644
index 00000000000..bb3c242999a
--- /dev/null
+++ b/dev-python/keyring/keyring-3.7.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} pypy)
+
+inherit distutils-r1
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( dev-python/pytest-runner[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pycrypto[$(python_gen_usedep 'python2*' 'python3*')] )"
+RDEPEND=""
+
+python_test() {
+ py.test || die "testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/keyring/keyring-4.0.ebuild b/dev-python/keyring/keyring-4.0.ebuild
new file mode 100644
index 00000000000..b3c8d2896fc
--- /dev/null
+++ b/dev-python/keyring/keyring-4.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="https://bitbucket.org/kang/python-keyring-lib"
+SRC_URI="mirror://pypi/k/${PN}/${P}.zip"
+
+SLOT="0"
+LICENSE="PSF-2"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-runner[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pycrypto[$(python_gen_usedep 'python2*' 'python3*')]
+ )"
+RDEPEND=""
+
+python_test() {
+ py.test || die "testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/keyring/metadata.xml b/dev-python/keyring/metadata.xml
new file mode 100644
index 00000000000..ef2f5eba9e8
--- /dev/null
+++ b/dev-python/keyring/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Provides a easy way to access the system keyring service from python.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">keyring</remote-id>
+ <remote-id type="bitbucket">kang/python-keyring-lib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/keystonemiddleware/Manifest b/dev-python/keystonemiddleware/Manifest
new file mode 100644
index 00000000000..a0353304ec6
--- /dev/null
+++ b/dev-python/keystonemiddleware/Manifest
@@ -0,0 +1,2 @@
+DIST keystonemiddleware-1.5.0.tar.gz 176315 SHA256 73e98aab8bceb7843b6cc8aba2cbff824a379428519e2f9ffbb8e32578b38fe8 SHA512 365643f7eba633587d8055204df04cfb40bdcc28c57d7ecf8c4ed67803b9b027b6334f868a1bc634d9beefd7410d74da08a7ed599637ec1656e6ef6196043dab WHIRLPOOL da7014869d3fc1ac5339671344542e33c22ac07adfb76ad00144cdcf4e1e26c60eea7ca7867cea6c6e105af1d05be64eff7d55ae1b3cf5114597da966b756b55
+DIST keystonemiddleware-1.5.2.tar.gz 176172 SHA256 5f443162157946d2f33c4729d0bde55291f12963b0f1ee553984aedd8a509d51 SHA512 172143f2e80860de3d89f53667bf670c1986cfc63a21392bf977b3beaa5669db76f46997d6939952856cb4abc970b57920810980d00db7e7cd711bdbede5908e WHIRLPOOL 99a4553778b5dae07a710e78f816c8b30def42bfc7024cac7d6be8d8b6f76326383ed72935c6526758ac65fb26945937869985cba167d8804fe3a7cf2e3c4208
diff --git a/dev-python/keystonemiddleware/files/cve-2015-1852-master-keystonemiddleware.patch b/dev-python/keystonemiddleware/files/cve-2015-1852-master-keystonemiddleware.patch
new file mode 100644
index 00000000000..6ea8f99d5c3
--- /dev/null
+++ b/dev-python/keystonemiddleware/files/cve-2015-1852-master-keystonemiddleware.patch
@@ -0,0 +1,63 @@
+diff --git a/keystonemiddleware/s3_token.py b/keystonemiddleware/s3_token.py
+index d56482f..3fe13f9 100644
+--- a/keystonemiddleware/s3_token.py
++++ b/keystonemiddleware/s3_token.py
+@@ -35,6 +35,7 @@ import logging
+ import webob
+
+ from oslo_serialization import jsonutils
++from oslo_utils import strutils
+ import requests
+ import six
+ from six.moves import urllib
+@@ -116,7 +117,7 @@ class S3Token(object):
+ auth_port)
+
+ # SSL
+- insecure = conf.get('insecure', False)
++ insecure = strutils.bool_from_string(conf.get('insecure', False))
+ cert_file = conf.get('certfile')
+ key_file = conf.get('keyfile')
+
+diff --git a/keystonemiddleware/tests/test_s3_token_middleware.py b/keystonemiddleware/tests/test_s3_token_middleware.py
+index fdadb76..4b910a6 100644
+--- a/keystonemiddleware/tests/test_s3_token_middleware.py
++++ b/keystonemiddleware/tests/test_s3_token_middleware.py
+@@ -124,7 +124,7 @@ class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):
+ @mock.patch.object(requests, 'post')
+ def test_insecure(self, MOCK_REQUEST):
+ self.middleware = (
+- s3_token.filter_factory({'insecure': True})(FakeApp()))
++ s3_token.filter_factory({'insecure': 'True'})(FakeApp()))
+
+ text_return_value = jsonutils.dumps(GOOD_RESPONSE)
+ if six.PY3:
+@@ -142,6 +142,28 @@ class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):
+ mock_args, mock_kwargs = MOCK_REQUEST.call_args
+ self.assertIs(mock_kwargs['verify'], False)
+
++ def test_insecure_option(self):
++ # insecure is passed as a string.
++
++ # Some non-secure values.
++ true_values = ['true', 'True', '1', 'yes']
++ for val in true_values:
++ config = {'insecure': val, 'certfile': 'false_ind'}
++ middleware = s3_token.filter_factory(config)(FakeApp())
++ self.assertIs(False, middleware._verify)
++
++ # Some "secure" values, including unexpected value.
++ false_values = ['false', 'False', '0', 'no', 'someweirdvalue']
++ for val in false_values:
++ config = {'insecure': val, 'certfile': 'false_ind'}
++ middleware = s3_token.filter_factory(config)(FakeApp())
++ self.assertEqual('false_ind', middleware._verify)
++
++ # Default is secure.
++ config = {'certfile': 'false_ind'}
++ middleware = s3_token.filter_factory(config)(FakeApp())
++ self.assertIs('false_ind', middleware._verify)
++
+
+ class S3TokenMiddlewareTestBad(S3TokenMiddlewareTestBase):
+ def setUp(self):
diff --git a/dev-python/keystonemiddleware/keystonemiddleware-1.5.0.ebuild b/dev-python/keystonemiddleware/keystonemiddleware-1.5.0.ebuild
new file mode 100644
index 00000000000..4b9fb446c44
--- /dev/null
+++ b/dev-python/keystonemiddleware/keystonemiddleware-1.5.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A middleware for the OpenStack Keystone API"
+HOMEPAGE="https://github.com/openstack/keystonemiddleware"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ dev-python/oslotest[${PYTHON_USEDEP}]
+ dev-python/oslo-messaging[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/python-memcached-1.48[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND=">=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pycadf-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]"
+
+PATCHES=(
+"${FILESDIR}/cve-2015-1852-master-keystonemiddleware.patch"
+)
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 ${PN/python-/}/tests || die "run over tests folder by flake8 drew error"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/.)
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/keystonemiddleware/keystonemiddleware-1.5.2.ebuild b/dev-python/keystonemiddleware/keystonemiddleware-1.5.2.ebuild
new file mode 100644
index 00000000000..79052bafeb5
--- /dev/null
+++ b/dev-python/keystonemiddleware/keystonemiddleware-1.5.2.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+#PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A middleware for the OpenStack Keystone API"
+HOMEPAGE="https://github.com/openstack/keystonemiddleware"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-messaging-1.8.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-messaging-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/python-memcached-1.48[$(python_gen_usedep 'python2*')]
+ )"
+
+RDEPEND=">=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-context-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/pycadf-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pycadf-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ <dev-python/python-keystoneclient-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]"
+
+PATCHES=(
+
+)
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 ${PN/python-/}/tests || die "run over tests folder by flake8 drew error"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/.)
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/keystonemiddleware/metadata.xml b/dev-python/keystonemiddleware/metadata.xml
new file mode 100644
index 00000000000..3f4361b8b56
--- /dev/null
+++ b/dev-python/keystonemiddleware/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ OpenStack Identity (Keystone) Middleware
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">keystonemiddleware</remote-id>
+ <remote-id type="github">openstack/keystonemiddleware</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kid/Manifest b/dev-python/kid/Manifest
new file mode 100644
index 00000000000..97af099e550
--- /dev/null
+++ b/dev-python/kid/Manifest
@@ -0,0 +1 @@
+DIST kid-0.9.6.tar.gz 268602 SHA256 d4c84b3de0a0584b33db489e5dde82f9c2c8832f40dad0413bce309e16813ab9 SHA512 56f87f5fdb9d692ced4b19c13705ee872058279084f49efd2e2515c28240e36833c7dfbecf084f504d6fef45f2cc60185decf0c9f18517d255ba469486aa3ae8 WHIRLPOOL 3dd2203c0b9c1e9a065729a2d8fe73cb5525ec99fcae73f3541cba7c1182355241057d9996eaab4b2d3fa91566c644db7a43cba61b3ed1c9ce15acf5ca97b4a5
diff --git a/dev-python/kid/kid-0.9.6-r1.ebuild b/dev-python/kid/kid-0.9.6-r1.ebuild
new file mode 100644
index 00000000000..2bec8d68242
--- /dev/null
+++ b/dev-python/kid/kid-0.9.6-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple and Pythonic XML template language"
+HOMEPAGE="http://www.kid-templating.org/ http://pypi.python.org/pypi/kid"
+SRC_URI="http://www.kid-templating.org/dist/${PV}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ia64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/docutils[${PYTHON_USEDEP}] )"
+
+DOCS=( README doc/{guide.txt,index.txt,notes.txt} )
+
+python_compile_all() {
+ use doc && emake -C doc
+}
+
+python_test() {
+ py.test -xl || die
+}
+
+python_install_all() {
+# dobin bin/*
+
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kid/metadata.xml b/dev-python/kid/metadata.xml
new file mode 100644
index 00000000000..4813d7da1ba
--- /dev/null
+++ b/dev-python/kid/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+Kid is a simple template language for XML based vocabularies written
+in Python. The syntax was inspired by a number of existing template
+languages, namely XSLT, TAL, and PHP.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/kivy-garden/Manifest b/dev-python/kivy-garden/Manifest
new file mode 100644
index 00000000000..939f770f6e5
--- /dev/null
+++ b/dev-python/kivy-garden/Manifest
@@ -0,0 +1 @@
+DIST kivy-garden-0.1.1.tar.gz 5789 SHA256 bea618e978f962bc0a2bfc3890fafe6c1bc2fa7aaf8a1cd3c8c70a682f33d79f SHA512 d551e8fdb08c7c1810972df04b024fb59554a94b9d6dc98a1438620541c13152e8c7de4cc603efed4df00e3d681d8545939ab417266459e26e116ff6660d8013 WHIRLPOOL 79a5db5b0e854ae2d2cf4bbb2c9d4733bf1a4c772a38e7c4e65cfc050bfb4494712b04095e89e026bd282851f562c4df6f5c1ec25e6a5b5e30f53f5a1c503fcc
diff --git a/dev-python/kivy-garden/files/remove_bat.patch b/dev-python/kivy-garden/files/remove_bat.patch
new file mode 100644
index 00000000000..0d310d4fce8
--- /dev/null
+++ b/dev-python/kivy-garden/files/remove_bat.patch
@@ -0,0 +1,10 @@
+--- setup.py.orig 2014-04-02 08:48:05.906881843 +0200
++++ setup.py 2014-04-02 08:48:16.650214908 +0200
+@@ -8,6 +8,6 @@
+ version='0.1.1',
+ license='MIT',
+ packages=['garden'],
+- scripts=['bin/garden', 'bin/garden.bat'],
++ scripts=['bin/garden'],
+ install_requires=['requests'],
+ )
diff --git a/dev-python/kivy-garden/kivy-garden-0.1.1.ebuild b/dev-python/kivy-garden/kivy-garden-0.1.1.ebuild
new file mode 100644
index 00000000000..5fb696ac885
--- /dev/null
+++ b/dev-python/kivy-garden/kivy-garden-0.1.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Kivys Garden tool to manage flowers"
+HOMEPAGE="http://kivy-garden.github.io/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ "
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/garden-${PV}"
+
+PATCHES=( "${FILESDIR}/remove_bat.patch" )
diff --git a/dev-python/kivy-garden/metadata.xml b/dev-python/kivy-garden/metadata.xml
new file mode 100644
index 00000000000..4a08065cce7
--- /dev/null
+++ b/dev-python/kivy-garden/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>slis@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ Tool to manage the installation, removal of flowers at http://github.com/kivy-garden/
+ They are a set of user maintained widgets, extensions, tools for kivy(http://kivy.org) framework.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">kivy-garden</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kiwi/Manifest b/dev-python/kiwi/Manifest
new file mode 100644
index 00000000000..20efe8a7c6d
--- /dev/null
+++ b/dev-python/kiwi/Manifest
@@ -0,0 +1,2 @@
+DIST kiwi-gtk-1.9.39.2.tar.gz 678242 SHA256 6992d278883ca4ca7bdf3e908e8f091c8fe9b61fdbdd0f0a33c4ba015dbf8458 SHA512 fa54623bb95a7ebe03e87c10d3bb271bd98fa4f40f7244f399cf2f86bf9b2e257666fc58caa4cc83d91a3c7fcf06817886ef5cab1baff58c8cbfdf6cfd12a554 WHIRLPOOL 907c50d89b8a534ba6712137f00214426e937f74d8ba6b49a247113ec7a9a60534a1cfa26d8337e382190bb3901d17d3d555333a7ed1b36cb167194167697e7d
+DIST kiwi-gtk-1.9.40.tar.gz 675794 SHA256 368e65e915f1ea8f69a174b13a116dee95318ca23a4c631f7f0879b4584748e1 SHA512 1fa210bcf00eeb8513f1b3fde968a212ac79c286a50a09427b0e3dffc5e78d739e70101ba4a0086d2002ac6907bc40b0103604f486b72e1bec36c9912ae6f2b6 WHIRLPOOL f7ce0189760c6ed3387ae2f0e1a4df82ffd7a692718d3ddf092ec616cf2403c7aa5781b1c6b26908d44ac13f230fc874da685bebfceb026a6a291022c1420b29
diff --git a/dev-python/kiwi/kiwi-1.9.39.2.ebuild b/dev-python/kiwi/kiwi-1.9.39.2.ebuild
new file mode 100644
index 00000000000..c663480a547
--- /dev/null
+++ b/dev-python/kiwi/kiwi-1.9.39.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator virtualx
+
+DESCRIPTION="Kiwi is a pure Python framework and set of enhanced PyGTK widgets"
+HOMEPAGE="http://www.async.com.br/projects/kiwi/
+ https://launchpad.net/kiwi
+ http://pypi.python.org/pypi/kiwi-gtk"
+MY_PN="${PN}-gtk"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~x86-interix ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RDEPEND=">=dev-python/setuptools-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.24[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e "s:share/doc/kiwi:share/doc/${PF}:g" -i setup.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testing() {
+ "${PYTHON}" -m unittest discover || die "tests failed"
+ }
+ VIRTUALX_COMMAND=virtualmake testing
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+ rmdir "${D}"usr/share/doc/${PF}/{api,howto} || die
+}
diff --git a/dev-python/kiwi/kiwi-1.9.40.ebuild b/dev-python/kiwi/kiwi-1.9.40.ebuild
new file mode 100644
index 00000000000..70c22713579
--- /dev/null
+++ b/dev-python/kiwi/kiwi-1.9.40.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator virtualx
+
+DESCRIPTION="Kiwi is a pure Python framework and set of enhanced PyGTK widgets"
+HOMEPAGE="http://www.async.com.br/projects/kiwi/
+ https://launchpad.net/kiwi
+ http://pypi.python.org/pypi/kiwi-gtk"
+MY_PN="${PN}-gtk"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-interix ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RDEPEND=">=dev-python/setuptools-0.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.24[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e "s:share/doc/kiwi:share/doc/${PF}:g" -i setup.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # There is one fail of a test repeated 3 times in tests/test_ui.py however
+ # they are shy with their bug tracker. The fail is not a failing of the package's core modules
+ testing() {
+ "${PYTHON}" -m unittest discover || die "tests failed"
+ }
+ VIRTUALX_COMMAND=virtualmake testing
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+ rmdir "${D}"usr/share/doc/${PF}/{api,howto} || die
+}
diff --git a/dev-python/kiwi/metadata.xml b/dev-python/kiwi/metadata.xml
new file mode 100644
index 00000000000..2c9d990566e
--- /dev/null
+++ b/dev-python/kiwi/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">kiwi-gtk</remote-id>
+ <remote-id type="launchpad">kiwi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kiwisolver/Manifest b/dev-python/kiwisolver/Manifest
new file mode 100644
index 00000000000..0dbf693db40
--- /dev/null
+++ b/dev-python/kiwisolver/Manifest
@@ -0,0 +1 @@
+DIST kiwisolver-0.1.3.zip 48696 SHA256 bbcd6470dd8518ec8d2d0daec96551291e2e17f0e910ec2502a2ecc1c7c98b44 SHA512 ce5ccf03da88743f091aba7e01ec3d7f4d7a83cb1d2e33b52a4a825bc4b9919329e73bb85a05effc83f6cc449082c5534a036a8d639937229fc7bedcc90d5089 WHIRLPOOL 355e8347010cd7cbb018f22e91fc9117cbd71a9cb68fd0c8c2b7f4f2fd146ce6453c5be7d0948b07b13e4b0750e13c8a78643ac2b9c268229f98701dee618838
diff --git a/dev-python/kiwisolver/kiwisolver-0.1.3.ebuild b/dev-python/kiwisolver/kiwisolver-0.1.3.ebuild
new file mode 100644
index 00000000000..7303e4b639c
--- /dev/null
+++ b/dev-python/kiwisolver/kiwisolver-0.1.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An efficient C++ implementation of the Cassowary constraint solving algorithm"
+HOMEPAGE="https://github.com/nucleic/kiwi"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="Clear-BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/kiwisolver/metadata.xml b/dev-python/kiwisolver/metadata.xml
new file mode 100644
index 00000000000..cca89313e8b
--- /dev/null
+++ b/dev-python/kiwisolver/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>aaron@flappyport.com</email>
+ <name>Arron Bauman</name>
+ <description>proxy maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">kiwisolver</remote-id>
+ <remote-id type="github">nucleic/kiwi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/kombu/Manifest b/dev-python/kombu/Manifest
new file mode 100644
index 00000000000..66ee5ee9ee0
--- /dev/null
+++ b/dev-python/kombu/Manifest
@@ -0,0 +1,4 @@
+DIST kombu-2.5.16.tar.gz 307515 SHA256 feab7f4384e2420bed19b8323150059d4b12e8eacbd581f62776ad5878d433c2 SHA512 48a6297726835552188cf09de424d88df333d4c8d1744d423b9ea6d8b75068b806d7220cfe070395924a3c2ff271940db6f14ad9c38b830442e798ad5c8a866c WHIRLPOOL a58e7f94bfdbf4b4f03b5495d08dfe399b66316fae156d82d0a69f6c094d40494c9e80909e8200287453a9593d924644241169b47db82426cfed09d01cc1b7e2
+DIST kombu-3.0.23.tar.gz 343923 SHA256 448c3e3ce671a10f00ee03979ba3c7866b4bfce49f65edec9f93a0cefa87ec16 SHA512 239ffbeb3c901227de7fb44f7c0b5ca611b8648eea81cd0c371bdadc1cd855a0f19001556aaa62abf7cb610b26dc182058251b97d85c8529a42a2e675edd0aaf WHIRLPOOL 0842ff10715b45c92d43923b32a3c81b5216a9c5fe0b6432d3790b1e08a02388f3631d380b7234cb050e8c8b711ab0ecb8aab676499f576b14d1a3b90844688f
+DIST kombu-3.0.24.tar.gz 374539 SHA256 b9ff0437607113aea701fd5122c2afa40c05dff6f1da4f58b2f1ea18d9f2bf8d SHA512 fdc42073d37c0888f564ae3feec517212e3cadd534cae2a0893f799c6fea7c217aa979617ec73b63466a7b5a3dbb836b57422ce514087d4e4821e88eec5e4ffa WHIRLPOOL 8513cbe9df4337fe3545cc2a2ff3cec3c9f28b60f200aff5395b2acb484c6b75fe710b5227df6eb3fd41a6faeb49a0aaf968618e66594e9e87c20c448475d27c
+DIST kombu-3.0.26.tar.gz 375553 SHA256 1f565abd44c4b7dfaa4dd543d52f982d2f006aba0a2b3830542b4d25a801fe09 SHA512 71656cc8f44101700c5489e0b0a66918a00cf8ff39e65feab1090865e3c8d50b6dd2458f95d48fb58cc4387de954530fe27a5713838509d51123bac7009631a2 WHIRLPOOL d706dcd752e24eebc3a1091a8a2ba91a0b6adf30fa9be4d9d1a95b5c008f8036eb518f03ccb1d3393502488120c9ad2ad2f2e01c41b59beb3576389b3f9c000f
diff --git a/dev-python/kombu/files/kombu-3.0.26-pymongo-test-fix.patch b/dev-python/kombu/files/kombu-3.0.26-pymongo-test-fix.patch
new file mode 100644
index 00000000000..b2e1185b7ca
--- /dev/null
+++ b/dev-python/kombu/files/kombu-3.0.26-pymongo-test-fix.patch
@@ -0,0 +1,40 @@
+https://github.com/celery/kombu/commit/8e6aed9fcf978b6c34108c0d37b720bd125f0352
+diff --git a/kombu/tests/transport/test_mongodb.py b/kombu/tests/transport/test_mongodb.py
+index b4d10fc..58c92e7 100644
+--- a/kombu/tests/transport/test_mongodb.py
++++ b/kombu/tests/transport/test_mongodb.py
+@@ -64,12 +64,12 @@ def test_custom_credentials(self):
+
+ @skip_if_not_module('pymongo')
+ def test_options(self):
+- url = 'mongodb://localhost,localhost2:29017/dbname?safe=true'
++ url = 'mongodb://localhost,localhost2:29017/dbname?tz_aware=true'
+ c = self._get_connection(url)
+
+ hostname, dbname, options = c.channels[0]._parse_uri()
+
+- self.assertEqual(options['safe'], True)
++ self.assertEqual(options['tz_aware'], True)
+
+ @skip_if_not_module('pymongo')
+ def test_real_connections(self):
+diff --git a/kombu/transport/mongodb.py b/kombu/transport/mongodb.py
+index 9137132..40b00ff 100644
+--- a/kombu/transport/mongodb.py
++++ b/kombu/transport/mongodb.py
+@@ -176,9 +176,14 @@ def _parse_uri(self, scheme='mongodb://'):
+
+ return hostname, dbname, options
+
++ def _prepare_client_options(self, options):
++ if pymongo.version_tuple >= (3, ):
++ options.pop('auto_start_request', None)
++
+ def _open(self, scheme='mongodb://'):
+ hostname, dbname, options = self._parse_uri(scheme=scheme)
+
++ self._prepare_client_options(options)
+ mongoconn = MongoClient(
+ host=hostname, ssl=options['ssl'],
+ auto_start_request=options['auto_start_request'],
+
diff --git a/dev-python/kombu/files/kombu-NA-tests-fix.patch b/dev-python/kombu/files/kombu-NA-tests-fix.patch
new file mode 100644
index 00000000000..a4bcda6e292
--- /dev/null
+++ b/dev-python/kombu/files/kombu-NA-tests-fix.patch
@@ -0,0 +1,16 @@
+https://github.com/celery/kombu/commit/828ba134105eeb4c6df52cb4441cf90c297b77e3
+Fixes NA bug with amqplib.
+diff --git a/kombu/transport/amqplib.py b/kombu/transport/amqplib.py
+index feedee7..f57e28c 100644
+--- a/kombu/transport/amqplib.py
++++ b/kombu/transport/amqplib.py
+@@ -17,6 +17,9 @@ class SSLError(Exception): # noqa
+ pass
+ from struct import unpack
+
++class NA(object):
++ pass
++
+ try:
+ from amqplib import client_0_8 as amqp
+ from amqplib.client_0_8 import transport
diff --git a/dev-python/kombu/kombu-2.5.16.ebuild b/dev-python/kombu/kombu-2.5.16.ebuild
new file mode 100644
index 00000000000..eb01f2cc056
--- /dev/null
+++ b/dev-python/kombu/kombu-2.5.16.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="AMQP Messaging Framework for Python"
+HOMEPAGE="http://pypi.python.org/pypi/kombu https://github.com/celery/kombu"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="amqplib doc examples test"
+
+RDEPEND=">=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/py-amqp-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/py-amqp-2.0[${PYTHON_USEDEP}]
+ amqplib? ( >=dev-python/amqplib-1.0.2[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/beanstalkc[$(python_gen_usedep python2_7)]
+ dev-python/couchdb-python[$(python_gen_usedep python2_7)]
+ >=dev-python/sphinxcontrib-issuetracker-0.9[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html || die "kombu docs failed installation"
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kombu/kombu-3.0.23.ebuild b/dev-python/kombu/kombu-3.0.23.ebuild
new file mode 100644
index 00000000000..b086686f3a7
--- /dev/null
+++ b/dev-python/kombu/kombu-3.0.23.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="AMQP Messaging Framework for Python"
+HOMEPAGE="http://pypi.python.org/pypi/kombu https://github.com/celery/kombu"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="amqplib doc examples msgpack sqs test"
+
+PY27_GEN_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND=">=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/py-amqp-1.4.6[${PYTHON_USEDEP}]
+ <dev-python/py-amqp-2.0[${PYTHON_USEDEP}]
+ dev-python/pyro:4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/pyzmq-13.1.0[${PYTHON_USEDEP}]' python2_7 python{3_3,3_4})
+ amqplib? ( >=dev-python/amqplib-1.0.2[${PYTHON_USEDEP}] )
+ sqs? ( >=dev-python/boto-2.13.3[${PY27_GEN_USEDEP}] )
+ msgpack? ( >=dev-python/msgpack-0.3.0[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-0.7[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ >=dev-python/mock-0.7.0[${PY27_GEN_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.6.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/beanstalkc[${PY27_GEN_USEDEP}]
+ dev-python/couchdb-python[${PY27_GEN_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.9[${PYTHON_USEDEP}] )"
+
+# pyyaml is an optional package for tests, so also kazoo and sqlalchemy.
+# Refrain for now, no established demand for it form users
+
+# Req'd for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PY27_REQUSE="$(python_gen_useflags 'python2.7')"
+REQUIRED_USE="sqs? ( ${PY27_REQUSE} )
+ doc? ( ${PY27_REQUSE} amqplib sqs )" # 2 deps in doc build are only py2 capable
+
+PATCHES=( "${FILESDIR}"/${PN}-NA-tests-fix.patch )
+
+python_prepare_all() {
+ https://github.com/celery/kombu/issues/246
+ sed -e 's:kombu.transports:kombu.transport:' -i funtests/tests/test_django.py
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # Doc build must be done by py2.7
+ # Doc build misses and skips only content re librabbitmq which is not in portage
+ if use doc; then
+ emake -C docs html || die "kombu docs failed installation"
+ fi
+}
+
+python_test() {
+ export DJANGO_SETTINGS_MODULE="django.conf"
+ if python_is_python3; then
+ 2to3 --no-diffs -w build/lib/kombu/transport/
+ nosetests --py3where=build/lib kombu/tests || die "Tests failed under ${EPYTHON}"
+ else
+ nosetests "${S}"/kombu/tests || die "Tests failed under ${EPYTHON}"
+ # funtests appears to be coded only for py2, a kind of 2nd tier. pypy fails 6.
+ # https://github.com/celery/kombu/issues/411
+ if [[ "${EPYTHON}" == python2.7 ]]; then
+ pushd funtests > /dev/null
+ esetup.py test
+ popd > /dev/null
+ fi
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kombu/kombu-3.0.24.ebuild b/dev-python/kombu/kombu-3.0.24.ebuild
new file mode 100644
index 00000000000..16063e821d8
--- /dev/null
+++ b/dev-python/kombu/kombu-3.0.24.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="AMQP Messaging Framework for Python"
+HOMEPAGE="http://pypi.python.org/pypi/kombu https://github.com/celery/kombu"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="amqplib doc examples msgpack sqs test"
+
+PY27_GEN_USEDEP=$(python_gen_usedep python2_7)
+PYPY_GEN_USEDEP=$(python_gen_usedep python2_7 pypy)
+RDEPEND=">=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/py-amqp-1.4.6[${PYTHON_USEDEP}]
+ <dev-python/py-amqp-2.0[${PYTHON_USEDEP}]
+ dev-python/pyro:4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/pyzmq-13.1.0[${PYTHON_USEDEP}]' python2_7 python{3_3,3_4})
+ amqplib? ( >=dev-python/amqplib-1.0.2[${PYTHON_USEDEP}] )
+ sqs? ( >=dev-python/boto-2.13.3[${PY27_GEN_USEDEP}] )
+ msgpack? ( >=dev-python/msgpack-0.3.0[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-0.7[${PYTHON_USEDEP}]
+ test? ( >=dev-python/unittest2-0.5.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-0.7.0[${PYPY_GEN_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-2.6.2[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/beanstalkc[${PY27_GEN_USEDEP}]
+ dev-python/couchdb-python[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.9[${PYTHON_USEDEP}] )"
+
+# kazoo and sqlalchemy are optional packages for tests.
+# Refrain for now, no established demand for it from users
+
+# Req'd for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PY27_REQUSE="$(python_gen_useflags 'python2.7')"
+REQUIRED_USE="sqs? ( ${PY27_REQUSE} )
+ doc? ( ${PY27_REQUSE} amqplib sqs )" # 2 deps in doc build are only py2 capable
+
+PATCHES=( "${FILESDIR}"/${PN}-NA-tests-fix.patch )
+
+python_prepare_all() {
+ https://github.com/celery/kombu/issues/246
+ sed -e 's:kombu.transports:kombu.transport:' -i funtests/tests/test_django.py
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # Doc build must be done by py2.7
+ # Doc build misses and skips only content re librabbitmq which is not in portage
+ if use doc; then
+ emake -C docs html || die "kombu docs failed installation"
+ fi
+}
+
+python_test() {
+ export DJANGO_SETTINGS_MODULE="django.conf"
+ if python_is_python3; then
+ 2to3 --no-diffs -w build/lib/kombu/transport/
+ nosetests --py3where=build/lib kombu/tests || die "Tests failed under ${EPYTHON}"
+ else
+ nosetests "${S}"/kombu/tests || die "Tests failed under ${EPYTHON}"
+ # funtests appears to be coded only for py2, a kind of 2nd tier. pypy fails 6.
+ # https://github.com/celery/kombu/issues/411
+ if [[ "${EPYTHON}" == python2.7 ]]; then
+ pushd funtests > /dev/null
+ esetup.py test
+ popd > /dev/null
+ fi
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kombu/kombu-3.0.26.ebuild b/dev-python/kombu/kombu-3.0.26.ebuild
new file mode 100644
index 00000000000..0cf37f183a7
--- /dev/null
+++ b/dev-python/kombu/kombu-3.0.26.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="AMQP Messaging Framework for Python"
+HOMEPAGE="http://pypi.python.org/pypi/kombu https://github.com/celery/kombu"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="amqplib doc examples msgpack sqs test"
+
+# couchdb backend support possible via dev-python/couchdb-python
+# ditto dev-python/kazoo(>=1.3.1) and dev-python/beanstalkc
+PY27_GEN_USEDEP=$(python_gen_usedep python2_7)
+PYPY_GEN_USEDEP=$(python_gen_usedep python2_7 pypy)
+RDEPEND=">=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/py-amqp-1.4.6[${PYTHON_USEDEP}]
+ <dev-python/py-amqp-2.0[${PYTHON_USEDEP}]
+ dev-python/pyro:4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/pyzmq-13.1.0[${PYTHON_USEDEP}]' python2_7 python{3_3,3_4})
+ amqplib? ( >=dev-python/amqplib-1.0.2[${PYTHON_USEDEP}] )
+ sqs? ( >=dev-python/boto-2.13.3[${PY27_GEN_USEDEP}] )
+ msgpack? ( >=dev-python/msgpack-0.3.0[${PYTHON_USEDEP}] )"
+# Fix to https://github.com/celery/kombu/issues/474 obliges dev-python/pymongo to >=-3.0.2
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-0.7[${PYTHON_USEDEP}]
+ test? ( >=dev-python/unittest2-0.5.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-0.7.0[${PYPY_GEN_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.10.3[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/beanstalkc[${PY27_GEN_USEDEP}]
+ dev-python/couchdb-python[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.9[${PYTHON_USEDEP}] )"
+
+# kazoo and sqlalchemy are optional packages for tests.
+# Refrain for now, no established demand for it from users
+
+# Req'd for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PY27_REQUSE="$(python_gen_useflags 'python2.7')"
+REQUIRED_USE="sqs? ( ${PY27_REQUSE} )
+ doc? ( ${PY27_REQUSE} amqplib sqs )" # 2 deps in doc build are py2 capable only
+
+PATCHES=( "${FILESDIR}"/${PN}-NA-tests-fix.patch \
+ "${FILESDIR}"/${P}-pymongo-test-fix.patch )
+
+python_prepare_all() {
+ https://github.com/celery/kombu/issues/246
+ sed -e 's:kombu.transports:kombu.transport:' -i funtests/tests/test_django.py
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # Doc build must be done by py2.7
+ # Doc build misses and skips only content re librabbitmq which is not in portage
+ if use doc; then
+ emake -C docs html || die "kombu docs failed installation"
+ fi
+}
+
+python_test() {
+ export DJANGO_SETTINGS_MODULE="django.conf"
+ # https://github.com/celery/kombu/issues/474
+ # tests need </pymongo-3.0; known to cause some breakage
+ if python_is_python3; then
+ 2to3 --no-diffs -w build/lib/kombu/transport/
+ nosetests --py3where=build/lib kombu/tests || die "Tests failed under ${EPYTHON}"
+ else
+ nosetests "${S}"/kombu/tests || die "Tests failed under ${EPYTHON}"
+ # funtests appears to be coded only for py2, a kind of 2nd tier. pypy fails 6.
+ # https://github.com/celery/kombu/issues/411
+ # Fix to https://github.com/celery/kombu/issues/474 breaks the
+ # funtests under >=dev-python/pymongo-3.0.2
+# if [[ "${EPYTHON}" == python2.7 ]]; then
+# pushd funtests > /dev/null
+# esetup.py test
+# popd > /dev/null
+# fi
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/kombu/metadata.xml b/dev-python/kombu/metadata.xml
new file mode 100644
index 00000000000..d9cbb330499
--- /dev/null
+++ b/dev-python/kombu/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">kombu</remote-id>
+ <remote-id type="github">celery/kombu</remote-id>
+ </upstream>
+ <use>
+ <flag name="amqplib">Enable amqplib support</flag>
+ <flag name="sqs">Enables Amazon SQS transport module for Kombu</flag>
+ <flag name="msgpack">Enables MessagePack (de)serializer for Python</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/larch/Manifest b/dev-python/larch/Manifest
new file mode 100644
index 00000000000..72734e08b21
--- /dev/null
+++ b/dev-python/larch/Manifest
@@ -0,0 +1,2 @@
+DIST python-larch_1.20130808.orig.tar.gz 88271 SHA256 f64599ebd5247bc79ed69cdc853ae08cc3d0d8648fa7737ad2854854cc843045 SHA512 84bab884e3ff8e27cc43e2520eb10fb7a38d99eddb06b9163e174329d69552e678ef81d606fa041f894794f0ba3bdf59ace3081f71596869e1167a0e23d56c85 WHIRLPOOL ff86df6db0d0dac024ba086e2264028abd74b45f73cae773c5c8a7b91ad9df54ab8f092fa85b277f27f7d17b50391037059624c533e04ef97108751d7c2f3013
+DIST python-larch_1.20131130.orig.tar.gz 86509 SHA256 2717e851bde45b66e8b2d44181861f24135d185abab8111119857943d3b5cac1 SHA512 e661fa29043a5254eb3615f0eb54f6afbaf59020607bb72f621083e9f6acfbe92b1c978ce2be73336d8984a4a64ce6d0153556f0af0ca63ad53aff40f785d052 WHIRLPOOL ca777fd5a23270918dc83e92e321413f8bdfee58228ce1224deddbd0d6ae854d1b28b945282fd290053f3cb3b240e6e795eb28c8d687726f2c18f5fda5b716c1
diff --git a/dev-python/larch/larch-1.20130808.ebuild b/dev-python/larch/larch-1.20130808.ebuild
new file mode 100644
index 00000000000..c045d93ddcf
--- /dev/null
+++ b/dev-python/larch/larch-1.20130808.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Copy-on-write B-tree data structure"
+HOMEPAGE="http://liw.fi/larch/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+#RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/CoverageTestRunner dev-util/cmdtest )"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-python/cliapp
+ dev-python/tracing
+ dev-python/ttystatus"
+
+src_test() {
+ addwrite /proc/self/comm
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/larch/larch-1.20131130.ebuild b/dev-python/larch/larch-1.20131130.ebuild
new file mode 100644
index 00000000000..c045d93ddcf
--- /dev/null
+++ b/dev-python/larch/larch-1.20131130.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Copy-on-write B-tree data structure"
+HOMEPAGE="http://liw.fi/larch/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+#RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/CoverageTestRunner dev-util/cmdtest )"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-python/cliapp
+ dev-python/tracing
+ dev-python/ttystatus"
+
+src_test() {
+ addwrite /proc/self/comm
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ emake check
+}
diff --git a/dev-python/larch/metadata.xml b/dev-python/larch/metadata.xml
new file mode 100644
index 00000000000..ea7bd021a21
--- /dev/null
+++ b/dev-python/larch/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mschiff@gentoo.org</email>
+ <name>Marc Schiffbauer</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/ldap3/Manifest b/dev-python/ldap3/Manifest
new file mode 100644
index 00000000000..46c62066fb9
--- /dev/null
+++ b/dev-python/ldap3/Manifest
@@ -0,0 +1,4 @@
+DIST ldap3-0.9.8.2.tar.gz 258084 SHA256 6fb841bdbef66b2f98ed1ceda5603af879f54bfc05964a37c1c8f97e2812baab SHA512 d9bd77c9de2e4cca223db39d04f03a438e77cccb77e75c44b53bbeeb3dceb573208dfbd9c0cb3f5f5865682331f3d37f87f9fdf3244b4f2ffd410b6e9058b625 WHIRLPOOL 8c4b0f91582330f2f3dcdbcc849d1db4a0f45ebbed01be512202998a0682585c6c1e9e9bebcd239f682dd71b274a92ccd2e2de48abf646eb326af839292cbce3
+DIST ldap3-0.9.8.4.tar.gz 263317 SHA256 d9efa7f6d4bd4e83201229c6200dcac852e61f23272840065c6ef23b115a0c6a SHA512 cff846ec4e1f7fd8aa086615e517e3a1552d71cd071566baca9ac1e9d90243c435b03f600836c59b49a9e7365127569196a44d51934ec3d6e81332b664f655de WHIRLPOOL 594eb0d2755ceb9204eaff07eff06f430340ef561710274d0e55aaf6fda97caf503a64bd9c62c2e49330447b511b4929a438154b863ec30b5a81fd2b541ffac0
+DIST ldap3-0.9.8.6.tar.gz 263664 SHA256 aa932ca208cc46c2a3b3ec5dc7cbe681bb9661b823779e9bf27cffa3eba96c16 SHA512 74fa3a16b23442ae56cfe087b014fddaa5e7e697c0812e3a5bfd7960c5d867e096f8d0f089be77408c358b53e153b071fd5f27da6992931f964c3895f402ef98 WHIRLPOOL 886466c8d653a01da84a506d2bc28e9b24bbf5b7147ee9816301bce4a8a59e7e3381063814540bd230c20c71794f1b8c49bcd0b99bedfef397a2aa67884dad4a
+DIST ldap3-0.9.8.7.tar.gz 264738 SHA256 19c6de07d9a6e72c9efb19628612cd474e7ea18b62557539ce88eb9c66ec8ee8 SHA512 8238bf2f9b1d59b5b5eca4b271b856eaee9e91dc4d40cca67ac9022706c21df74bd465d4f0ce47cc98a6e5c54cc42d62ca4743be40f278a1e839e24df7b86940 WHIRLPOOL 6335fd361c77172c87b758a57c9c9c3ddd4fae3f3c01aa0edbea3c72b58c023ac352b8f04ec0ad20504603922ea95ff40a9c904910c1a2bd3b4b4304b2b2da46
diff --git a/dev-python/ldap3/ldap3-0.9.8.2.ebuild b/dev-python/ldap3/ldap3-0.9.8.2.ebuild
new file mode 100644
index 00000000000..57a537499b8
--- /dev/null
+++ b/dev-python/ldap3/ldap3-0.9.8.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="A strictly RFC 4511 conforming LDAP V3 pure Python client"
+HOMEPAGE="https://github.com/cannatag/ldap3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND=">=dev-python/pyasn1-0.1.7"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ldap3/ldap3-0.9.8.4.ebuild b/dev-python/ldap3/ldap3-0.9.8.4.ebuild
new file mode 100644
index 00000000000..2552291b700
--- /dev/null
+++ b/dev-python/ldap3/ldap3-0.9.8.4.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="A strictly RFC 4511 conforming LDAP V3 pure Python client"
+HOMEPAGE="https://github.com/cannatag/ldap3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND=">=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ldap3/ldap3-0.9.8.6.ebuild b/dev-python/ldap3/ldap3-0.9.8.6.ebuild
new file mode 100644
index 00000000000..2552291b700
--- /dev/null
+++ b/dev-python/ldap3/ldap3-0.9.8.6.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="A strictly RFC 4511 conforming LDAP V3 pure Python client"
+HOMEPAGE="https://github.com/cannatag/ldap3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND=">=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/ldap3/ldap3-0.9.8.7.ebuild b/dev-python/ldap3/ldap3-0.9.8.7.ebuild
new file mode 100644
index 00000000000..700d8ef8dea
--- /dev/null
+++ b/dev-python/ldap3/ldap3-0.9.8.7.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A strictly RFC 4511 conforming LDAP V3 pure Python client"
+HOMEPAGE="https://github.com/cannatag/ldap3 https://pypi.python.org/pypi/ldap3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND=">=dev-python/pyasn1-0.1.8[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ "
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v -s test || die
+}
diff --git a/dev-python/ldap3/metadata.xml b/dev-python/ldap3/metadata.xml
new file mode 100644
index 00000000000..658dcd90272
--- /dev/null
+++ b/dev-python/ldap3/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ ldap3 is a strictly RFC 4511 conforming LDAP V3 pure Python client. The same codebase works with Python, Python 3, PyPy and PyPy3.
+ This project was formerly named python3-ldap. The name has been changed to avoid confusion with the python-ldap library.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">ldap3</remote-id>
+ <remote-id type="github">cannatag/ldap3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ldappool/Manifest b/dev-python/ldappool/Manifest
new file mode 100644
index 00000000000..68a11769c06
--- /dev/null
+++ b/dev-python/ldappool/Manifest
@@ -0,0 +1 @@
+DIST ldappool-1.0.tar.gz 6795 SHA256 1fc36c617ffa6195a738ca99ae7f2178271ebe30a5ee6d41abdb49168afb75aa SHA512 081dc08833d95bb0d3ce396cbbe697252e2b483cc3703e87f00f8af0513f9fdca4ff9c97295fb439ff1fcd404027d5922c2a6337665cfad526be3c6b83acfa53 WHIRLPOOL e5cb9b61848cb3fa7314eeeb25fd9bed89ec7e4dca50eb501f80f952ca3aab78017962c85359efbe6d741ec9b38450d78a06a287aee8e7e935db391c3856a68a
diff --git a/dev-python/ldappool/ldappool-1.0.ebuild b/dev-python/ldappool/ldappool-1.0.ebuild
new file mode 100644
index 00000000000..8517f0c5fc1
--- /dev/null
+++ b/dev-python/ldappool/ldappool-1.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A connection pool for python-ldap"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ dev-python/python-ldap[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/ldappool/metadata.xml b/dev-python/ldappool/metadata.xml
new file mode 100644
index 00000000000..5df08f8da79
--- /dev/null
+++ b/dev-python/ldappool/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A simple connector pool for python-ldap.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">ldappool</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/lesscpy/Manifest b/dev-python/lesscpy/Manifest
new file mode 100644
index 00000000000..e84ec02b436
--- /dev/null
+++ b/dev-python/lesscpy/Manifest
@@ -0,0 +1,2 @@
+DIST lesscpy-0.10.2.tar.gz 159031 SHA256 ccad1ad2a89ced1875c5ca4e16e5478b791d31fb187fe29f1541859318ed9055 SHA512 9da17a3f5819566c081b94be016ff53a51f8251d7ab55e32fe469eb298a65378fb0db22b34abcf0192b2ba7ad092c2c41dc4a56b01403e1a8e43b107e4fd16bc WHIRLPOOL 600a744534fa284e7978340f773ebb2addeeac4f79ae7a9442271d482f0e5950ac9abe9f7d5f0079e44a5ed446fd710cd3ec3b4ab3c827dc4dd311c6591edebd
+DIST lesscpy-0.9j.tar.gz 32061 SHA256 fa01d435a1ab3abafba683519bdc7aca5e19399e96225e1a8bc1d660b566364d SHA512 9063b89a1ca8dc8424b3b1989bdf7c31de74e26ab8ab5ede1664f53d1ff1946308d9add65236cd5fabc58efcaf1cb5789fa73f0775a83cb70ea9a73d25207a73 WHIRLPOOL 3e885dc03138a2b693c94af775e4386bc8c2bcecb8b6202a5f80ec5b8435798cb0d06934d7e9eb39e0a54c9861c009a673d6ee7990050f1164e239157047140a
diff --git a/dev-python/lesscpy/lesscpy-0.10.2.ebuild b/dev-python/lesscpy/lesscpy-0.10.2.ebuild
new file mode 100644
index 00000000000..b88fccbc3a9
--- /dev/null
+++ b/dev-python/lesscpy/lesscpy-0.10.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A compiler written in Python for the LESS language"
+HOMEPAGE="https://pypi.python.org/pypi/lesscpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/ply[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+
+python_test() {
+ # https://github.com/lesscpy/lesscpy/issues/74
+ esetup.py test
+ # This is equally effective
+ # nosetests -v || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/lesscpy/lesscpy-0.9j.ebuild b/dev-python/lesscpy/lesscpy-0.9j.ebuild
new file mode 100644
index 00000000000..5ed20572288
--- /dev/null
+++ b/dev-python/lesscpy/lesscpy-0.9j.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A compiler written in Python for the LESS language"
+HOMEPAGE="https://pypi.python.org/pypi/lesscpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/ply[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${PYTHON} lesscpy/test/__main__.py || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/lesscpy/metadata.xml b/dev-python/lesscpy/metadata.xml
new file mode 100644
index 00000000000..45e0253a5f9
--- /dev/null
+++ b/dev-python/lesscpy/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A compiler written in Python for the LESS language.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">lesscpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/libasyncns-python/Manifest b/dev-python/libasyncns-python/Manifest
new file mode 100644
index 00000000000..993cfeeb089
--- /dev/null
+++ b/dev-python/libasyncns-python/Manifest
@@ -0,0 +1 @@
+DIST libasyncns-python-0.7.1.tar.bz2 20276 SHA256 0ff757f8d9bf1f07054ab7ad2d03434de4cfa6b9d6cb4bba29072728563894e0 SHA512 ac8bd46cb842e40bc0f3720a789fe17a6488d80bf68f5f60b3093708d9e5f91d8b0082255a77d37c1814232d46a4c44c58abe971ddbe54f881d8e6a78937f489 WHIRLPOOL 6b8cf9db88512fb273514617975ec18f639ff9f1443f7cfab267f34381d0ca9405842688fcd2f40d272f398c0970358c8852df21de8f9d24a9d3900d53ef4bc9
diff --git a/dev-python/libasyncns-python/libasyncns-python-0.7.1-r1.ebuild b/dev-python/libasyncns-python/libasyncns-python-0.7.1-r1.ebuild
new file mode 100644
index 00000000000..0b0a6384b67
--- /dev/null
+++ b/dev-python/libasyncns-python/libasyncns-python-0.7.1-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for libasyncns"
+HOMEPAGE="https://launchpad.net/libasyncns-python/"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=net-libs/libasyncns-0.4"
+RDEPEND="${DEPEND}"
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ distutils-r1_python_compile
+}
+
+# Tests are network-dependent
diff --git a/dev-python/libasyncns-python/metadata.xml b/dev-python/libasyncns-python/metadata.xml
new file mode 100644
index 00000000000..c378bf7e585
--- /dev/null
+++ b/dev-python/libasyncns-python/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="launchpad">libasyncns-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/libbonobo-python/Manifest b/dev-python/libbonobo-python/Manifest
new file mode 100644
index 00000000000..a5edcb54102
--- /dev/null
+++ b/dev-python/libbonobo-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-2.28.1.tar.bz2 562220 SHA256 759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8 SHA512 632d91d416f8209c2bc8d576d1229069e00f2cfeedb3441a5f151e12973ed740c0bb26d18d5c16cfeeb64ca35933537997277450001cffd96d8d5077027d45f2 WHIRLPOOL cd4ea19fabd26c55866d8789628fdc3c834e73932381431216d65c5e9b42ad529e83f74d498951f07f060d3049f1739b6db99dbdbe34575eed469ceb23a51c5b
diff --git a/dev-python/libbonobo-python/libbonobo-python-2.28.1-r1.ebuild b/dev-python/libbonobo-python/libbonobo-python-2.28.1-r1.ebuild
new file mode 100644
index 00000000000..92bbcff0507
--- /dev/null
+++ b/dev-python/libbonobo-python/libbonobo-python-2.28.1-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python"
+G_PY_BINDINGS=( bonobo bonoboui bonobo_activation )
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1
+
+DESCRIPTION="Python bindings for the Bonobo framework"
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="examples"
+
+RDEPEND="dev-python/pygobject:2[${PYTHON_USEDEP}]
+ >=dev-python/pyorbit-2.24.0[${PYTHON_USEDEP}]
+ >=gnome-base/libbonobo-2.24.0
+ >=gnome-base/libbonoboui-2.24.0
+ >=dev-python/libgnomecanvas-python-${PV}[${PYTHON_USEDEP}]
+ !<dev-python/gnome-python-2.22.1"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/bonobo/. )
diff --git a/dev-python/libbonobo-python/metadata.xml b/dev-python/libbonobo-python/metadata.xml
new file mode 100644
index 00000000000..888e60bf6a9
--- /dev/null
+++ b/dev-python/libbonobo-python/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/libcloud/Manifest b/dev-python/libcloud/Manifest
new file mode 100644
index 00000000000..d08a5e6cded
--- /dev/null
+++ b/dev-python/libcloud/Manifest
@@ -0,0 +1,3 @@
+DIST apache-libcloud-0.14.1.tar.bz2 546545 SHA256 8562fd79c8afc63dabc8f62b08f13a1b1f71644c08e47f913f8c942d2f48c1d0 SHA512 cb338e63aa1b3949ac16eee77df53499797c92ea9e30dccb2ed0c823636f8adda62673131c25bc5138839da2b7a3a8c895d0acaadeff087c756e43b9ae23f5d9 WHIRLPOOL 7e3d5991487ceb3312d46b54bb7e525431c611d003d19c3f05ef4261257127622f0787d55fe08dfd1b0419cc85820ad3c2d1d8f3228aa31e475f4242a1452be0
+DIST apache-libcloud-0.15.0.tar.bz2 571365 SHA256 fcfea13c73279aaa846bbc6a22dad37864b2314b8497a3a4994b2b0632cf0633 SHA512 b0e85dba0a70701784903510e6eed1ada082b02e989a6af43122e3eaaaeee1cbd5da59660e1e78877219798b50f395d02d0738ae983bd1665eba0984d737e16c WHIRLPOOL eae1dd98b931ea88431d34b18325a3f62ab076d52fbeedc9ee9507234133fc1d99eed4cd24a3411e50870008aad3233f5d715341e3c2444aac29c6c3e35299ed
+DIST apache-libcloud-0.15.1.tar.bz2 570953 SHA256 557e3f29e0ab1f19a31e858a8e802c822cb7f07df5edce029a1c67d2b0f30d15 SHA512 0cbc02c955cb91e135d73a5198ad216d0f91fa942b88dd1ffc1c46a487190f45500f003d2825cdb4f6c96c4ca7e5cf2681709769b0c2d8801b08e5a41b3d69b0 WHIRLPOOL 0143a7d2c337603f769bb2d3fd4fb98df18c82dfaa09c12fe481f18eb300c65d9efd4e18756d0c75a691b6d755fff0f62d41ccda3c9006955870fb8631d8366d
diff --git a/dev-python/libcloud/libcloud-0.14.1.ebuild b/dev-python/libcloud/libcloud-0.14.1.ebuild
new file mode 100644
index 00000000000..1730f1e01a6
--- /dev/null
+++ b/dev-python/libcloud/libcloud-0.14.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# py3 dropped due to failing tests once lockfile installed
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Unified Interface to the Cloud - python support libs"
+HOMEPAGE="http://libcloud.apache.org/index.html"
+SRC_URI="mirror://apache/${PN}/apache-${P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND=""
+DEPEND="test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/lockfile[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/apache-${P}"
+
+python_prepare_all() {
+ if use examples; then
+ mkdir examples
+ mv example_*.py examples || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ cp libcloud/test/secrets.py-dist libcloud/test/secrets.py || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/libcloud/libcloud-0.15.0.ebuild b/dev-python/libcloud/libcloud-0.15.0.ebuild
new file mode 100644
index 00000000000..1730f1e01a6
--- /dev/null
+++ b/dev-python/libcloud/libcloud-0.15.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# py3 dropped due to failing tests once lockfile installed
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Unified Interface to the Cloud - python support libs"
+HOMEPAGE="http://libcloud.apache.org/index.html"
+SRC_URI="mirror://apache/${PN}/apache-${P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND=""
+DEPEND="test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/lockfile[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/apache-${P}"
+
+python_prepare_all() {
+ if use examples; then
+ mkdir examples
+ mv example_*.py examples || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ cp libcloud/test/secrets.py-dist libcloud/test/secrets.py || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/libcloud/libcloud-0.15.1.ebuild b/dev-python/libcloud/libcloud-0.15.1.ebuild
new file mode 100644
index 00000000000..5c8a4977c6b
--- /dev/null
+++ b/dev-python/libcloud/libcloud-0.15.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# py3 dropped due to failing tests once lockfile installed
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Unified Interface to the Cloud - python support libs"
+HOMEPAGE="http://libcloud.apache.org/index.html"
+SRC_URI="mirror://apache/${PN}/apache-${P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples test"
+
+RDEPEND=""
+DEPEND="test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/lockfile[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/apache-${P}"
+
+python_prepare_all() {
+ if use examples; then
+ mkdir examples
+ mv example_*.py examples || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ cp libcloud/test/secrets.py-dist libcloud/test/secrets.py || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/libcloud/metadata.xml b/dev-python/libcloud/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/libcloud/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/libextractor-python/Manifest b/dev-python/libextractor-python/Manifest
new file mode 100644
index 00000000000..4b368a2a7b2
--- /dev/null
+++ b/dev-python/libextractor-python/Manifest
@@ -0,0 +1 @@
+DIST libextractor-python-0.6.tar.gz 4086 SHA256 9a4f9a7049765bbc253be324cab2f774848e1bbb5542868f3b3686934139d9e9 SHA512 38300177fc55183fb70068d9af69f0530b8729ca92056ebd77f06d11e855e983aaf9fe28c0f9a77ffe2d6375ae769dafba847d959809fd43892f518c4ecf2d18 WHIRLPOOL 2383be0860a2977f307f37206390a51db2bea2fd63013dbc3f0dd12eb0bb6ddd26de51c038d9cb73e6fa4aabe1b7c695c5ce00299fe69fcb830f8e7bcef198cb
diff --git a/dev-python/libextractor-python/libextractor-python-0.6-r1.ebuild b/dev-python/libextractor-python/libextractor-python-0.6-r1.ebuild
new file mode 100644
index 00000000000..a90a5857bf7
--- /dev/null
+++ b/dev-python/libextractor-python/libextractor-python-0.6-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library used to extract metadata from files of arbitrary type"
+HOMEPAGE="http://www.gnu.org/software/libextractor/"
+SRC_URI="mirror://gnu/libextractor/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
+
+RDEPEND=">=media-libs/libextractor-0.6.3"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/Extractor-${PV}
diff --git a/dev-python/libextractor-python/metadata.xml b/dev-python/libextractor-python/metadata.xml
new file mode 100644
index 00000000000..accefe08c31
--- /dev/null
+++ b/dev-python/libextractor-python/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>net-p2p</herd>
+ <maintainer>
+ <email>ssuominen@gentoo.org</email>
+ <name>Samuli Suominen</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/libgnome-python/Manifest b/dev-python/libgnome-python/Manifest
new file mode 100644
index 00000000000..a5edcb54102
--- /dev/null
+++ b/dev-python/libgnome-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-2.28.1.tar.bz2 562220 SHA256 759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8 SHA512 632d91d416f8209c2bc8d576d1229069e00f2cfeedb3441a5f151e12973ed740c0bb26d18d5c16cfeeb64ca35933537997277450001cffd96d8d5077027d45f2 WHIRLPOOL cd4ea19fabd26c55866d8789628fdc3c834e73932381431216d65c5e9b42ad529e83f74d498951f07f060d3049f1739b6db99dbdbe34575eed469ceb23a51c5b
diff --git a/dev-python/libgnome-python/libgnome-python-2.28.1-r1.ebuild b/dev-python/libgnome-python/libgnome-python-2.28.1-r1.ebuild
new file mode 100644
index 00000000000..96942545ea9
--- /dev/null
+++ b/dev-python/libgnome-python/libgnome-python-2.28.1-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python"
+G_PY_BINDINGS=( gnome gnomeui )
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1
+
+DESCRIPTION="Python bindings for essential GNOME libraries"
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="examples"
+
+RDEPEND=">=gnome-base/libgnome-2.24.1
+ >=gnome-base/libgnomeui-2.24.0
+ dev-python/pygobject:2[${PYTHON_USEDEP}]
+ >=dev-python/pyorbit-2.24.0[${PYTHON_USEDEP}]
+ >=dev-python/libbonobo-python-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/gnome-vfs-python-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/libgnomecanvas-python-${PV}[${PYTHON_USEDEP}]
+ !<dev-python/gnome-python-2.22.1"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/. )
diff --git a/dev-python/libgnome-python/metadata.xml b/dev-python/libgnome-python/metadata.xml
new file mode 100644
index 00000000000..888e60bf6a9
--- /dev/null
+++ b/dev-python/libgnome-python/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/libgnomecanvas-python/Manifest b/dev-python/libgnomecanvas-python/Manifest
new file mode 100644
index 00000000000..a5edcb54102
--- /dev/null
+++ b/dev-python/libgnomecanvas-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-2.28.1.tar.bz2 562220 SHA256 759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8 SHA512 632d91d416f8209c2bc8d576d1229069e00f2cfeedb3441a5f151e12973ed740c0bb26d18d5c16cfeeb64ca35933537997277450001cffd96d8d5077027d45f2 WHIRLPOOL cd4ea19fabd26c55866d8789628fdc3c834e73932381431216d65c5e9b42ad529e83f74d498951f07f060d3049f1739b6db99dbdbe34575eed469ceb23a51c5b
diff --git a/dev-python/libgnomecanvas-python/libgnomecanvas-python-2.28.1-r1.ebuild b/dev-python/libgnomecanvas-python/libgnomecanvas-python-2.28.1-r1.ebuild
new file mode 100644
index 00000000000..ee6ec288a3e
--- /dev/null
+++ b/dev-python/libgnomecanvas-python/libgnomecanvas-python-2.28.1-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python"
+G_PY_BINDINGS="gnomecanvas"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1
+
+DESCRIPTION="Python bindings for the Gnome Canvas library"
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="examples"
+
+RDEPEND="dev-python/pygobject:2[${PYTHON_USEDEP}]
+ >=gnome-base/libgnomecanvas-2.8.0
+ !<dev-python/gnome-python-2.22.1"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/canvas/. )
diff --git a/dev-python/libgnomecanvas-python/metadata.xml b/dev-python/libgnomecanvas-python/metadata.xml
new file mode 100644
index 00000000000..888e60bf6a9
--- /dev/null
+++ b/dev-python/libgnomecanvas-python/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/liblarch/Manifest b/dev-python/liblarch/Manifest
new file mode 100644
index 00000000000..40d53a519ab
--- /dev/null
+++ b/dev-python/liblarch/Manifest
@@ -0,0 +1 @@
+DIST liblarch-2.1.0.tar.gz 26829 SHA256 f55b8ce2c6350b614f46acf826c323b03bd64890288dd25b31cda3ccdb59d49b SHA512 fd6a6c48142e434f49fb49d9dee874b88f013775c280dd2dc929ed5fff4df7bd3743bf915b09dac4329f894cac24e466d78366a072136de389725bc5ed985ec1 WHIRLPOOL b2e34e15d5dd523597cc369fbfec6c02a8785b34c6fec1035a0995714aecde2c4dfe92ead1b1b60cfed81a725f85af7e604eda25fa46028ab36d0b8e73bd8485
diff --git a/dev-python/liblarch/liblarch-2.1.0.ebuild b/dev-python/liblarch/liblarch-2.1.0.ebuild
new file mode 100644
index 00000000000..f8d30a58f55
--- /dev/null
+++ b/dev-python/liblarch/liblarch-2.1.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library to handle directed acyclic graphs"
+HOMEPAGE="http://live.gnome.org/liblarch"
+SRC_URI="http://gtg.fritalk.com/publique/gtg.fritalk.com/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/pygobject:2[${PYTHON_USEDEP}]
+ dev-python/pygtk[${PYTHON_USEDEP}]
+"
+RDEPEND="${DEPEND}"
+
+# This is what should be run if tarball included testsuite
+#python_test() {
+# ${PYTHON} "${S}"/run-tests
+#}
diff --git a/dev-python/liblarch/metadata.xml b/dev-python/liblarch/metadata.xml
new file mode 100644
index 00000000000..3d3428dce28
--- /dev/null
+++ b/dev-python/liblarch/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>eva@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>leio@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>steev@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ Liblarch is a python library built to easily handle data structure such are lists, trees and directed acyclic graphs (tree where nodes can have multiple parents). There's also a liblarch-gtk binding that will allow you to use your data structure in a Gtk.Treeview.
+
+ Liblarch supports multiple views of one data structure and complex filtering. That way, you have a clear separation between your data themselves (Model) and how they are displayed (View).
+ </longdescription>
+ <upstream>
+ <remote-id type="github">liblarch/liblarch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/libnacl/Manifest b/dev-python/libnacl/Manifest
new file mode 100644
index 00000000000..4682a7f693c
--- /dev/null
+++ b/dev-python/libnacl/Manifest
@@ -0,0 +1,2 @@
+DIST libnacl-1.4.0.tar.gz 28233 SHA256 fee644e684472b307e864db0d01d81915e7fc2c9fd4a64c15a35e4883102d7d5 SHA512 5f28ae4f0a2dc482ad5ea9a87431dc0fee42664a77a69ee3328265225c2e0d736869d7a9e3927f530ca00148be36d32ffb72fafe4471302c71ea7e0ff7534643 WHIRLPOOL 89ffc84ec52e676434477fe25d6133a8d4b8c7d0ecf4096ddab585f9150f506ccc4c3802ac477307ad4c6e42ae4d8ba4b4fc8ae45cabd8b5f7aac2cdfcb75349
+DIST libnacl-1.4.3.tar.gz 28777 SHA256 873614913c90c4011f791a8fd1448f6bb3ab7dc8cdd329d1baaa65e7e1d1a929 SHA512 92b7d5e8856e69404e8d5b9eee9f87374a4ba251b040c00f78b4c9e8094f5306241be0632c82f7c4edd88a9dd654cdd6323674a7789392d87064bd86cfbe66f2 WHIRLPOOL b5561c233f8cf0dc4f2b979c86b9a5bb76c49a730399ee6bfc5946150523057228f1503fefed728675c5286da3afaad7649d2956d832f866576e0820d893d217
diff --git a/dev-python/libnacl/libnacl-1.4.0.ebuild b/dev-python/libnacl/libnacl-1.4.0.ebuild
new file mode 100644
index 00000000000..4e2a2ec0e7e
--- /dev/null
+++ b/dev-python/libnacl/libnacl-1.4.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_4})
+inherit distutils-r1
+
+DESCRIPTION="Python ctypes wrapper for libsodium"
+HOMEPAGE="https://libnacl.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-libs/libsodium"
+
+python_test() {
+ ${EPYTHON} tests/runtests.py || die
+}
diff --git a/dev-python/libnacl/libnacl-1.4.3.ebuild b/dev-python/libnacl/libnacl-1.4.3.ebuild
new file mode 100644
index 00000000000..b04448e38cc
--- /dev/null
+++ b/dev-python/libnacl/libnacl-1.4.3.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+inherit distutils-r1
+
+DESCRIPTION="Python ctypes wrapper for libsodium"
+HOMEPAGE="https://libnacl.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-libs/libsodium"
+
+python_test() {
+ ${EPYTHON} tests/runtests.py || die
+}
diff --git a/dev-python/libnacl/metadata.xml b/dev-python/libnacl/metadata.xml
new file mode 100644
index 00000000000..91d2d7777db
--- /dev/null
+++ b/dev-python/libnacl/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">libnacl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/libnatpmp/Manifest b/dev-python/libnatpmp/Manifest
new file mode 100644
index 00000000000..045c38793d7
--- /dev/null
+++ b/dev-python/libnatpmp/Manifest
@@ -0,0 +1,3 @@
+DIST libnatpmp-20130911.tar.gz 18744 SHA256 a30d83b9175585cc0f5bff753ce7eb5d83aaecb6222ccac670ed759fea595d7d SHA512 e7dfb3955ccc2c30e7c74c1085bc71bd9318f6171b84fbad2d8ae8bd5a227f7ceed3f60ecb49bd10e6fb838d8be3325bbf467467bf0d04e46883e3a19fa14a2d WHIRLPOOL fafb32c930e21afd8c3e10528638be4b31d03a2bcfdc481b4f2ea682ae4b7fd0cf943f32b8a395f03ceeecf42a41370fcd49a6026bc3cd449b6e4fba39cf191f
+DIST libnatpmp-20140401.tar.gz 23302 SHA256 b2ce5e626a21c795cba2d118f26e54aaa89de29d4611c440fafc49a2a5bedabb SHA512 12616f07b0a096046a35079954b8a34d474e672d7836ddac9da993a47178902aa2d781786ac76c55c5f16cfdf6a7e7258f92fec3850714ad9cd50208d854c4c2 WHIRLPOOL c12bfbc83d1f30f20162c3fddd5452f53d6ef556452845c6303420718a92568c8e8174939a3ef2702045d7c2061f5aff57bfe81c3516452d84172ef6ecf08849
+DIST libnatpmp-20150609.tar.gz 24392 SHA256 e1aa9c4c4219bc06943d6b2130f664daee213fb262fcb94dd355815b8f4536b0 SHA512 e50b1f68ce9254bb2f068ddc37417a3c417b80f7b3fb3d84e3e9af4a144d89e204ab993b54c01657335e855d0124a8fcbbf96ce78db7b9ae0b03b6eb79de2e09 WHIRLPOOL 27243e13e445a8bbe592257e1029264c3535ef1c71ccaf476708e91c8ead39b778a2d07e6bc42500444b910a005d5be092c5a453df225a556975e97f4184b7c7
diff --git a/dev-python/libnatpmp/files/link-against-system-lib.patch b/dev-python/libnatpmp/files/link-against-system-lib.patch
new file mode 100644
index 00000000000..cdb64a9ce12
--- /dev/null
+++ b/dev-python/libnatpmp/files/link-against-system-lib.patch
@@ -0,0 +1,12 @@
+diff -Naur libnatpmp-20110715.orig//setup.py libnatpmp-20110715/setup.py
+--- libnatpmp-20110715.orig//setup.py 2009-06-04 17:37:06.000000000 -0400
++++ libnatpmp-20110715/setup.py 2011-08-03 06:55:11.000000000 -0400
+@@ -8,7 +8,7 @@
+ setup(name="libnatpmp", version="1.0",
+ ext_modules=[
+ Extension(name="libnatpmp", sources=["libnatpmpmodule.c"],
+- extra_objects=["libnatpmp.a"],
++ libraries=["natpmp"],
+ define_macros=[('ENABLE_STRNATPMPERR', None)]
+ )]
+ )
diff --git a/dev-python/libnatpmp/libnatpmp-20130911.ebuild b/dev-python/libnatpmp/libnatpmp-20130911.ebuild
new file mode 100644
index 00000000000..7133f6adb2a
--- /dev/null
+++ b/dev-python/libnatpmp/libnatpmp-20130911.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for libnatpmp, an alternative protocol to UPnP IGD"
+HOMEPAGE="http://miniupnp.free.fr/libnatpmp.html"
+SRC_URI="http://miniupnp.free.fr/files/download.php?file=${P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="=net-libs/${P}"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/link-against-system-lib.patch
+
+ #These are installed by net-libs/libnatpmp
+ rm -f Changelog.txt README || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/libnatpmp/libnatpmp-20140401-r1.ebuild b/dev-python/libnatpmp/libnatpmp-20140401-r1.ebuild
new file mode 100644
index 00000000000..7c09cbaee15
--- /dev/null
+++ b/dev-python/libnatpmp/libnatpmp-20140401-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for libnatpmp, an alternative protocol to UPnP IGD"
+HOMEPAGE="http://miniupnp.free.fr/libnatpmp.html"
+SRC_URI="http://miniupnp.free.fr/files/download.php?file=${P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="~net-libs/${P}"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/link-against-system-lib.patch
+
+ #These are installed by net-libs/libnatpmp
+ rm -f Changelog.txt README || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/libnatpmp/libnatpmp-20150609.ebuild b/dev-python/libnatpmp/libnatpmp-20150609.ebuild
new file mode 100644
index 00000000000..7c09cbaee15
--- /dev/null
+++ b/dev-python/libnatpmp/libnatpmp-20150609.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for libnatpmp, an alternative protocol to UPnP IGD"
+HOMEPAGE="http://miniupnp.free.fr/libnatpmp.html"
+SRC_URI="http://miniupnp.free.fr/files/download.php?file=${P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="~net-libs/${P}"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/link-against-system-lib.patch
+
+ #These are installed by net-libs/libnatpmp
+ rm -f Changelog.txt README || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/libnatpmp/metadata.xml b/dev-python/libnatpmp/metadata.xml
new file mode 100644
index 00000000000..1e7587374fd
--- /dev/null
+++ b/dev-python/libnatpmp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/librharris/Manifest b/dev-python/librharris/Manifest
new file mode 100644
index 00000000000..810d7404d7e
--- /dev/null
+++ b/dev-python/librharris/Manifest
@@ -0,0 +1 @@
+DIST lib_rharris-0.1.14.tar.gz 12895 SHA256 4127cf6bb45aa4bfba9f3b96c551f1e7779711e76e5577b651832d166365b551 SHA512 24e8be3a0508bcac30261a0c05652ca452c09b0ce23e3a8341d702a6e3516284d65f21b5b8bca3e6bd5db39de90fc697f11943ce86cce2e849a4d9c44eb2bc85 WHIRLPOOL 896f6567f5cd218d0d627ea8bc9f5fca2814296c08bafc6da78bcd494e398f67c1d4d337b09879962b391253810b5b88a1bbb016371cb1858296bf4c593cb546
diff --git a/dev-python/librharris/librharris-0.1.14-r1.ebuild b/dev-python/librharris/librharris-0.1.14-r1.ebuild
new file mode 100644
index 00000000000..6f9fa0af496
--- /dev/null
+++ b/dev-python/librharris/librharris-0.1.14-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="lib_rharris"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python Internet Programming Library"
+HOMEPAGE="http://pypi.python.org/pypi/lib_rharris"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/librharris/metadata.xml b/dev-python/librharris/metadata.xml
new file mode 100644
index 00000000000..acd281e0fe7
--- /dev/null
+++ b/dev-python/librharris/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">lib_rharris</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/librsvg-python/Manifest b/dev-python/librsvg-python/Manifest
new file mode 100644
index 00000000000..b3c5fb4b1ca
--- /dev/null
+++ b/dev-python/librsvg-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-desktop-2.32.0.tar.bz2 621277 SHA256 09dbd580bf3b0ef60f91b090eafe6d08ddcc50a609e2b425a7f8eca46d4e0ee9 SHA512 51beefd21fa3aa6242ba4c66e57d940372fbf4a84ffe34063339f6e7e7c22e76d281b25d5f113de3780a0dbf733c7e07142f05a285056cda26736323b4185d18 WHIRLPOOL 5713353291a34e0a03152ad76c46391e3ab246efc17b63193fc0b26b02176eb78ce134c8d0cabcb3480bd2dbb3446b7b6b301cffbfac3ce915e21a974947e37e
diff --git a/dev-python/librsvg-python/librsvg-python-2.32.0-r1.ebuild b/dev-python/librsvg-python/librsvg-python-2.32.0-r1.ebuild
new file mode 100644
index 00000000000..9f36b6aa741
--- /dev/null
+++ b/dev-python/librsvg-python/librsvg-python-2.32.0-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python-desktop"
+G_PY_BINDINGS="rsvg"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1
+
+DESCRIPTION="Python bindings for the librsvg library"
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND=">=gnome-base/librsvg-2.13.93:2
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ !<dev-python/gnome-python-desktop-2.22.0-r10"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/rsvg/. )
diff --git a/dev-python/librsvg-python/metadata.xml b/dev-python/librsvg-python/metadata.xml
new file mode 100644
index 00000000000..da6fd63d008
--- /dev/null
+++ b/dev-python/librsvg-python/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/libvirt-python/Manifest b/dev-python/libvirt-python/Manifest
new file mode 100644
index 00000000000..dc949655c8e
--- /dev/null
+++ b/dev-python/libvirt-python/Manifest
@@ -0,0 +1,3 @@
+DIST libvirt-python-1.2.15.tar.gz 166128 SHA256 9a6dfbd487d49f887a41aca4bfb1b4e043fd9fbdfc041252cae84023f5c387ba SHA512 5687308c2f16199ecc4ec935719da1e2d34d0fb3752437a4c662d7c83d972f49ee5e852daf7233fa9aa29f25bbaed1c26d17740faf56c1771bbc2134bcb8958b WHIRLPOOL d2173060d5d3763ba367fbf3140800d6534c27f36b91d7a944ff2f5ce36f9ac54bd86fb6df1399cfa8610ef62c0b0b87427fc68dc1e0be77b0c7b3f94f7d9e30
+DIST libvirt-python-1.2.17.tar.gz 170511 SHA256 f4d3db4012a800a2519e62bbef4ce14a37e030a20ab18f5b66759533a39b36ed SHA512 bd77558bc59f2abedb55582fed56bb73b33089cfa5de4a109c145bb087dfaa258ad4b022ca00b30fbac5c09f53f7a60fc270e658afd1cc57e618568b89adbfcd WHIRLPOOL a6e5c11401ebf66acadf075dbe360d43607b238b29f090cb822e7ae019d0a6a9ed5f80fa0d86b5f0b09cfcc103ee3ba77b49efdf0bbd18037df29450ee7306f6
+DIST libvirt-python-1.2.18.tar.gz 171009 SHA256 204535ef160c9d10600b5fc3417f00f382e74b137a85b33774b97eb36d8a3638 SHA512 bf9f246d8bc2e55dc0cdeb22901b2dd2858b058c0616a2d5db3ca4a700c3430c9cd1f904ec3090cab7c3db1d40195a6365fed3b7b18fbd1d975fdca5fa57ce29 WHIRLPOOL a1e684360341b896bd96d6a313320ddb7ad455c64e4d1577076713e4913c95d2bd6f9222a6ac45b735a33d8e7fff06b40327e298d21e214857db17c859fb4849
diff --git a/dev-python/libvirt-python/libvirt-python-1.2.15.ebuild b/dev-python/libvirt-python/libvirt-python-1.2.15.ebuild
new file mode 100644
index 00000000000..1f38cff44f5
--- /dev/null
+++ b/dev-python/libvirt-python/libvirt-python-1.2.15.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+AUTOTOOLIZE=yes
+
+MY_P="${P/_rc/-rc}"
+
+inherit eutils distutils-r1
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://libvirt.org/libvirt-python.git"
+ SRC_URI=""
+ KEYWORDS=""
+ RDEPEND="app-emulation/libvirt:=[-python(-)]"
+else
+ SRC_URI="http://libvirt.org/sources/python/${MY_P}.tar.gz"
+ KEYWORDS="amd64 x86"
+ RDEPEND="app-emulation/libvirt:0/${PV}"
+fi
+S="${WORKDIR}/${P%_rc*}"
+
+DESCRIPTION="libvirt Python bindings"
+HOMEPAGE="http://www.libvirt.org"
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="test"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+# testsuite is currently not included in upstream tarball
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/libvirt-python/libvirt-python-1.2.17.ebuild b/dev-python/libvirt-python/libvirt-python-1.2.17.ebuild
new file mode 100644
index 00000000000..cc59d1ba63b
--- /dev/null
+++ b/dev-python/libvirt-python/libvirt-python-1.2.17.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+AUTOTOOLIZE=yes
+
+MY_P="${P/_rc/-rc}"
+
+inherit eutils distutils-r1
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://libvirt.org/libvirt-python.git"
+ SRC_URI=""
+ KEYWORDS=""
+ RDEPEND="app-emulation/libvirt:=[-python(-)]"
+else
+ SRC_URI="http://libvirt.org/sources/python/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ RDEPEND="app-emulation/libvirt:0/${PV}"
+fi
+S="${WORKDIR}/${P%_rc*}"
+
+DESCRIPTION="libvirt Python bindings"
+HOMEPAGE="http://www.libvirt.org"
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="test"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+# testsuite is currently not included in upstream tarball
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/libvirt-python/libvirt-python-1.2.18.ebuild b/dev-python/libvirt-python/libvirt-python-1.2.18.ebuild
new file mode 100644
index 00000000000..cc59d1ba63b
--- /dev/null
+++ b/dev-python/libvirt-python/libvirt-python-1.2.18.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+AUTOTOOLIZE=yes
+
+MY_P="${P/_rc/-rc}"
+
+inherit eutils distutils-r1
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://libvirt.org/libvirt-python.git"
+ SRC_URI=""
+ KEYWORDS=""
+ RDEPEND="app-emulation/libvirt:=[-python(-)]"
+else
+ SRC_URI="http://libvirt.org/sources/python/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ RDEPEND="app-emulation/libvirt:0/${PV}"
+fi
+S="${WORKDIR}/${P%_rc*}"
+
+DESCRIPTION="libvirt Python bindings"
+HOMEPAGE="http://www.libvirt.org"
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="test"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+# testsuite is currently not included in upstream tarball
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/libvirt-python/libvirt-python-9999.ebuild b/dev-python/libvirt-python/libvirt-python-9999.ebuild
new file mode 100644
index 00000000000..39f9c7ccf48
--- /dev/null
+++ b/dev-python/libvirt-python/libvirt-python-9999.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+AUTOTOOLIZE=yes
+
+MY_P="${P/_rc/-rc}"
+
+inherit eutils distutils-r1
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://libvirt.org/libvirt-python.git"
+ SRC_URI=""
+ KEYWORDS=""
+ RDEPEND="app-emulation/libvirt:=[-python(-)]"
+else
+ SRC_URI="http://libvirt.org/sources/python/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ RDEPEND="app-emulation/libvirt:0/${PV}"
+fi
+S="${WORKDIR}/${P%_rc*}"
+
+DESCRIPTION="libvirt Python bindings"
+HOMEPAGE="http://www.libvirt.org"
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="test"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/libvirt-python/metadata.xml b/dev-python/libvirt-python/metadata.xml
new file mode 100644
index 00000000000..0349051772f
--- /dev/null
+++ b/dev-python/libvirt-python/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <herd>virtualization</herd>
+</pkgmetadata>
diff --git a/dev-python/libwnck-python/Manifest b/dev-python/libwnck-python/Manifest
new file mode 100644
index 00000000000..b3c5fb4b1ca
--- /dev/null
+++ b/dev-python/libwnck-python/Manifest
@@ -0,0 +1 @@
+DIST gnome-python-desktop-2.32.0.tar.bz2 621277 SHA256 09dbd580bf3b0ef60f91b090eafe6d08ddcc50a609e2b425a7f8eca46d4e0ee9 SHA512 51beefd21fa3aa6242ba4c66e57d940372fbf4a84ffe34063339f6e7e7c22e76d281b25d5f113de3780a0dbf733c7e07142f05a285056cda26736323b4185d18 WHIRLPOOL 5713353291a34e0a03152ad76c46391e3ab246efc17b63193fc0b26b02176eb78ce134c8d0cabcb3480bd2dbb3446b7b6b301cffbfac3ce915e21a974947e37e
diff --git a/dev-python/libwnck-python/files/libwnck-python-2.30.2-flagsfix.patch b/dev-python/libwnck-python/files/libwnck-python-2.30.2-flagsfix.patch
new file mode 100644
index 00000000000..0be84c96b53
--- /dev/null
+++ b/dev-python/libwnck-python/files/libwnck-python-2.30.2-flagsfix.patch
@@ -0,0 +1,30 @@
+diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
+--- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
++++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
+@@ -100,7 +100,7 @@
+ )
+ )
+
+-(define-enum WindowState
++(define-flags WindowState
+ (in-module "Wnck")
+ (c-name "WnckWindowState")
+ (gtype-id "WNCK_TYPE_WINDOW_STATE")
+@@ -121,7 +121,7 @@
+ )
+ )
+
+-(define-enum WindowActions
++(define-flags WindowActions
+ (in-module "Wnck")
+ (c-name "WnckWindowActions")
+ (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
+@@ -184,7 +184,7 @@
+ )
+ )
+
+-(define-enum WindowMoveResizeMask
++(define-flags WindowMoveResizeMask
+ (in-module "Wnck")
+ (c-name "WnckWindowMoveResizeMask")
+ (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
diff --git a/dev-python/libwnck-python/libwnck-python-2.32.0-r1.ebuild b/dev-python/libwnck-python/libwnck-python-2.32.0-r1.ebuild
new file mode 100644
index 00000000000..90d0ec27af9
--- /dev/null
+++ b/dev-python/libwnck-python/libwnck-python-2.32.0-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GNOME_ORG_MODULE="gnome-python-desktop"
+G_PY_BINDINGS="wnck"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome-python-common-r1 eutils
+
+DESCRIPTION="Python bindings for the libwnck library"
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND=">=x11-libs/libwnck-2.19.3:1
+ !<dev-python/gnome-python-desktop-2.22.0-r10"
+DEPEND="${RDEPEND}"
+
+EXAMPLES=( examples/wnck_example.py )
+
+src_prepare() {
+ # Fix three enum items that should be flags, upstream bug #616306
+ epatch "${FILESDIR}/${PN}-2.30.2-flagsfix.patch"
+ gnome-python-common-r1_src_prepare
+}
diff --git a/dev-python/libwnck-python/metadata.xml b/dev-python/libwnck-python/metadata.xml
new file mode 100644
index 00000000000..da6fd63d008
--- /dev/null
+++ b/dev-python/libwnck-python/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/linecache2/Manifest b/dev-python/linecache2/Manifest
new file mode 100644
index 00000000000..b0af3daac29
--- /dev/null
+++ b/dev-python/linecache2/Manifest
@@ -0,0 +1 @@
+DIST linecache2-1.0.0.tar.gz 11013 SHA256 4b26ff4e7110db76eeb6f5a7b64a82623839d595c2038eeda662f2a2db78e97c SHA512 e585a6e4c054c1965bc4241a1e36b57cb04f32b2d778df0ae4381975700497975251f509354d3622e36c82973c726a207b815f8b12060d9d583b6669a9eb279e WHIRLPOOL 2968c4d82a8655bd91d487c814eef00f0edfdbb2c41642fcce78826efb467554f06e9951ce6bf6a9b2ed92ce4cf3edbaa77fe3b51c557aae561c486a62dabbb0
diff --git a/dev-python/linecache2/linecache2-1.0.0.ebuild b/dev-python/linecache2/linecache2-1.0.0.ebuild
new file mode 100644
index 00000000000..5c007682658
--- /dev/null
+++ b/dev-python/linecache2/linecache2-1.0.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Backports of the linecache module"
+HOMEPAGE="https://github.com/testing-cabal/linecache2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc64"
+IUSE="test"
+
+DEPEND="
+ dev-python/pbr[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" -m unittest2 discover || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/linecache2/metadata.xml b/dev-python/linecache2/metadata.xml
new file mode 100644
index 00000000000..97a308fc857
--- /dev/null
+++ b/dev-python/linecache2/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">linecache2</remote-id>
+ <remote-id type="github">testing-cabal/linecache2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/livereload/Manifest b/dev-python/livereload/Manifest
new file mode 100644
index 00000000000..5efc59e56cb
--- /dev/null
+++ b/dev-python/livereload/Manifest
@@ -0,0 +1,2 @@
+DIST livereload-2.3.2.tar.gz 24119 SHA256 fa2959005a134d767409c129cbf94528a0eb5022c915da9c685e14f1adb81b63 SHA512 59dc5be184d80a8b3aa6f98a6bc12f98f2efe00a0497deadfe5275222be2e0865e182cf0d83fc7a6e5f7297a7bf26a30c3ad9af5eeb2517af8b7ab3946e4bb1d WHIRLPOOL acf0c4ffa017a65d67423bb28b36cfd4e8acec59c47cc845f98669a3368920fa1e4e33b4c86e00082aeb416225066091305adcf1e8919071825a192ab5127180
+DIST livereload-2.4.0.tar.gz 25258 SHA256 a3f162357d886710a317f6f8c0595ac1db176bd9db171f0ca751c4954c29b5e2 SHA512 9b961ed41224359e986873973840fae43387af1b773328ab1262d095879aeff98090d736d696abdfcd9b2f1c127a061a29d044df7cfa15ba218b0162576093a3 WHIRLPOOL 268d274d57b1e7f7587fd690dac2bae7051dde2d1b110a8953a84eea6e08017488d4ee0e59fbc1bb0a9468d7925913ca8cb28a74c13c291fd7e004a5322160cf
diff --git a/dev-python/livereload/files/fix-tests.patch b/dev-python/livereload/files/fix-tests.patch
new file mode 100644
index 00000000000..2c9208ad17a
--- /dev/null
+++ b/dev-python/livereload/files/fix-tests.patch
@@ -0,0 +1,77 @@
+diff --git a/tests/test_watcher.py b/tests/test_watcher.py
+index fa0ae41..5310bdc 100644
+--- a/tests/test_watcher.py
++++ b/tests/test_watcher.py
+@@ -3,18 +3,22 @@
+ import os
+ import time
+ import shutil
++import unittest
+ from livereload.watcher import Watcher
+
+ tmpdir = os.path.join(os.path.dirname(__file__), 'tmp')
+
+
+-class TestWatcher(object):
++class TestWatcher(unittest.TestCase):
+
+ def setUp(self):
+ if os.path.isdir(tmpdir):
+ shutil.rmtree(tmpdir)
+ os.mkdir(tmpdir)
+
++ def tearDown(self):
++ shutil.rmtree(tmpdir)
++
+ def test_watch_dir(self):
+ os.mkdir(os.path.join(tmpdir, '.git'))
+ os.mkdir(os.path.join(tmpdir, '.hg'))
+@@ -25,6 +29,9 @@ class TestWatcher(object):
+ watcher.watch(tmpdir)
+ assert watcher.is_changed(tmpdir) is False
+
++ # sleep 1 second so that mtime will be different
++ time.sleep(1)
++
+ with open(os.path.join(tmpdir, 'foo'), 'w') as f:
+ f.write('')
+
+@@ -35,6 +42,9 @@ class TestWatcher(object):
+ watcher = Watcher()
+ watcher.count = 0
+
++ # sleep 1 second so that mtime will be different
++ time.sleep(1)
++
+ filepath = os.path.join(tmpdir, 'foo')
+ with open(filepath, 'w') as f:
+ f.write('')
+@@ -51,22 +61,24 @@ class TestWatcher(object):
+ with open(filepath, 'w') as f:
+ f.write('')
+
+- assert watcher.examine() == os.path.abspath(filepath)
++ rv = watcher.examine()
++ assert rv[0] == os.path.abspath(filepath)
+ assert watcher.count == 1
+
+ def test_watch_glob(self):
+ watcher = Watcher()
+ watcher.watch(tmpdir + '/*')
+- assert watcher.examine() is None
++ assert watcher.examine() == (None, None)
+
+ with open(os.path.join(tmpdir, 'foo.pyc'), 'w') as f:
+ f.write('')
+
+- assert watcher.examine() is None
++ assert watcher.examine() == (None, None)
+
+ filepath = os.path.join(tmpdir, 'foo')
+
+ with open(filepath, 'w') as f:
+ f.write('')
+
+- assert watcher.examine() == os.path.abspath(filepath)
++ rv = watcher.examine()
++ assert rv[0] == os.path.abspath(filepath)
diff --git a/dev-python/livereload/livereload-2.3.2.ebuild b/dev-python/livereload/livereload-2.3.2.ebuild
new file mode 100644
index 00000000000..84e37d988a5
--- /dev/null
+++ b/dev-python/livereload/livereload-2.3.2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python LiveReload is an awesome tool for web developers"
+HOMEPAGE="https://github.com/lepture/python-livereload"
+SRC_URI="https://github.com/lepture/python-${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="examples test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+RDEPEND="www-servers/tornado[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/fix-tests.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/livereload/livereload-2.4.0.ebuild b/dev-python/livereload/livereload-2.4.0.ebuild
new file mode 100644
index 00000000000..0290484c93f
--- /dev/null
+++ b/dev-python/livereload/livereload-2.4.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python LiveReload is an awesome tool for web developers"
+HOMEPAGE="https://github.com/lepture/python-livereload"
+SRC_URI="https://github.com/lepture/python-${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples test"
+
+CDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="
+ ${CDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+RDEPEND="
+ ${CDEPEND}
+ dev-python/six[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ nosetests || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/livereload/metadata.xml b/dev-python/livereload/metadata.xml
new file mode 100644
index 00000000000..a7af8704e22
--- /dev/null
+++ b/dev-python/livereload/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">lepture/python-livereload</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/llfuse/Manifest b/dev-python/llfuse/Manifest
new file mode 100644
index 00000000000..8caa5844e34
--- /dev/null
+++ b/dev-python/llfuse/Manifest
@@ -0,0 +1,2 @@
+DIST llfuse-0.39.tar.bz2 250931 SHA256 4d9029efd461b7da099904d1cba193bd11964613263c38e97e9027174424995c SHA512 e75b4f22b256c05473531c6ee2aebcfd001cfb1f55e54c1f11405b3a958c1845912660e107adcc2b785dbb3fd54f683b7a6695cc33e0b53a563fad019b5e703a WHIRLPOOL 91b3ab7ce5fe6b1aebf78e9bf16d06995920fab30e79ce5006a2077663ae56b180c28939ba15d0599a4eec833a9c361bacfe8f8b9becff5a9a57cc7cce7746a1
+DIST llfuse-0.40.tar.bz2 454032 SHA256 ee8b1125a6f2ab904d617d7602d86c0e3f69e40316cb1ae3abc33c218d3da857 SHA512 b568d14e181c316d592d01b7879d2b04c717759124d9462b7f848c251322a6a376881050d209d4cf3d0d6c5218ec1880cb64f19bd64b73f09fd06818447f3dfd WHIRLPOOL 3cfcd75a41ab39036b867e625248472a709ffdc61a588cbac47572455a6e3029f3d6592cbeb8e2b555a8c6f59729587a54c3373d3053e20f71a9b4f747ab87dc
diff --git a/dev-python/llfuse/llfuse-0.39.ebuild b/dev-python/llfuse/llfuse-0.39.ebuild
new file mode 100644
index 00000000000..f9e00c5cfb6
--- /dev/null
+++ b/dev-python/llfuse/llfuse-0.39.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the low-level FUSE API"
+HOMEPAGE="http://python-llfuse.googlecode.com/ http://pypi.python.org/pypi/llfuse"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND=">=sys-fs/fuse-2.8.0"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ virtual/pkgconfig"
+
+python_prepare_all() {
+ # use system setuptools
+ sed -i '/use_setuptools/d' setup.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llfuse/llfuse-0.40.ebuild b/dev-python/llfuse/llfuse-0.40.ebuild
new file mode 100644
index 00000000000..b61799676d8
--- /dev/null
+++ b/dev-python/llfuse/llfuse-0.40.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the low-level FUSE API"
+HOMEPAGE="http://python-llfuse.googlecode.com/ http://pypi.python.org/pypi/llfuse"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+RDEPEND=">=sys-fs/fuse-2.8.0"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ virtual/pkgconfig"
+
+python_prepare_all() {
+ # use system setuptools
+ sed -i '/use_setuptools/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llfuse/metadata.xml b/dev-python/llfuse/metadata.xml
new file mode 100644
index 00000000000..6749cd70eb5
--- /dev/null
+++ b/dev-python/llfuse/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">llfuse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/llvmlite/Manifest b/dev-python/llvmlite/Manifest
new file mode 100644
index 00000000000..cb671e0df77
--- /dev/null
+++ b/dev-python/llvmlite/Manifest
@@ -0,0 +1,4 @@
+DIST llvmlite-0.2.1.tar.gz 67340 SHA256 48c9217db60d496ffef9d15bcb493b84757fc08b95b0332ca418a21344fd3f6b SHA512 d2b705ec275bfd6ed87b0b536eb0223d9aba53bf77227ed54b43a7efa1ea5df44a10624613bcb724a7520df77d1417b96567d41efe5825a5bde217343816263c WHIRLPOOL c59c1d5af1f8f7c22dd28d54619e6385a56e1d12fcbe4af2dd18be82ea1d841348ccd9c01b8e3efd144d5e36326b627f46a65b84e0d0bd5be789da20d3d0cb13
+DIST llvmlite-0.2.2.tar.gz 75171 SHA256 5771189d07da7774446e1ac6c586d31ea4293ef1c2bfb9dbe0c570bcf971b4a1 SHA512 7eeea5c0bd5287415d6cc39fb2e546366de42d3b2b99cf57655036c9fd2bf526398cc51ea79d062504cdfdd927ce5be22997a54c5d79cc2e4de3168317f35fcf WHIRLPOOL aac97a187e341a67a5ee1771480deb6598d921cfce098aec6ca20927d6173c1f984de0b8e1985e2c7db55e393e65f4bd471c5d57bb8fd0da21cb2ad4faf0a3dc
+DIST llvmlite-0.5.0.tar.gz 74434 SHA256 616b0f16366dd1eec197b7067f4618c6c5183db852e7f4203862c0343ebdd31c SHA512 aec69c841a8166896a6632a4204a53df1f19a42514c335a3dc21a9c7e7610c110a5d00b293d7013dfe497cc7c1e3ffbaedf0a80ee16970f5f33f0043bacd6aec WHIRLPOOL 737a53017e160a04f371e87abf24eb923f17b101d3b2394c276ae0d47787c617aa496428b268ee86301a2ed33a0a93b0b5d3fbc0fb293e295d38742d8a5b98e8
+DIST llvmlite-0.6.0.tar.gz 74834 SHA256 0ed6bbf850578dc99c06be3060a1067ea4993474392137760d1c020f7188a236 SHA512 7db3f774d7cff903e4a5a476eee3efd1c6f107443433ab47543eae4e28918a385534225a23e0cd000cfab65b5ebeb0a5c38d6b963090ee0943c65fb61879fc7b WHIRLPOOL 3bed14fef8defac3f217b9ecdb5a2b4d1c68cd9e19078292cc792f375345a87b4daf63ee9c6429954d5156e7c73b5ea85b3bff54c60f78fbc982067411f2eb40
diff --git a/dev-python/llvmlite/llvmlite-0.2.1.ebuild b/dev-python/llvmlite/llvmlite-0.2.1.ebuild
new file mode 100644
index 00000000000..ea2ddc68714
--- /dev/null
+++ b/dev-python/llvmlite/llvmlite-0.2.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="https://pypi.python.org/pypi/llvmlite"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+RDEPEND="=sys-devel/llvm-3.5*:=[multitarget]"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/llvmlite/llvmlite-0.2.2.ebuild b/dev-python/llvmlite/llvmlite-0.2.2.ebuild
new file mode 100644
index 00000000000..ae0357941d4
--- /dev/null
+++ b/dev-python/llvmlite/llvmlite-0.2.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="https://pypi.python.org/pypi/llvmlite"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="=sys-devel/llvm-3.5*:=[multitarget]"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/llvmlite/llvmlite-0.5.0.ebuild b/dev-python/llvmlite/llvmlite-0.5.0.ebuild
new file mode 100644
index 00000000000..ba86b96a9d2
--- /dev/null
+++ b/dev-python/llvmlite/llvmlite-0.5.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="https://pypi.python.org/pypi/llvmlite"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND="
+ =sys-devel/llvm-3.5*:=[multitarget]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3)
+ "
+DEPEND="${RDEPEND}"
+
+python_prepare_all() {
+ # disable test using installed instance to read version info
+ sed -e 's:test_version:_&:' -i llvmlite/tests/test_binding.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m "llvmlite.tests" || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmlite/llvmlite-0.6.0.ebuild b/dev-python/llvmlite/llvmlite-0.6.0.ebuild
new file mode 100644
index 00000000000..6e422ed343f
--- /dev/null
+++ b/dev-python/llvmlite/llvmlite-0.6.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="https://pypi.python.org/pypi/llvmlite"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND="
+ =sys-devel/llvm-3.6*:=[multitarget]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python2_7 python3_3)
+ "
+DEPEND="${RDEPEND}"
+
+python_prepare_all() {
+ # disable test using installed instance to read version info
+ sed -e 's:test_version:_&:' -i llvmlite/tests/test_binding.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m "llvmlite.tests" || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmlite/metadata.xml b/dev-python/llvmlite/metadata.xml
new file mode 100644
index 00000000000..a384c2f3ddc
--- /dev/null
+++ b/dev-python/llvmlite/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">llvmlite</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/llvmmath/Manifest b/dev-python/llvmmath/Manifest
new file mode 100644
index 00000000000..dca80d6215c
--- /dev/null
+++ b/dev-python/llvmmath/Manifest
@@ -0,0 +1 @@
+DIST llvmmath-0.1.2.tar.gz 46693 SHA256 6664988134572340eb01591c92f74b0ecf39a8e892a81c76274862b80944bda3 SHA512 7ac7a58d0c76d4badaa67b71ec852d9d87411edc3e0c16283741ba183fcee4b6c775d9e61c66b7c6bab24939796abecff6fe5ed06028e5635d8883dbb16d2f6c WHIRLPOOL 674be56ec12298c19e8ae7e0aa3cf33f72a7dda3e851c165eecf3d529cafa50d1991854fe199a3b8b467eb7a365931327a94545ca1e643af098a66f20a80428c
diff --git a/dev-python/llvmmath/llvmmath-0.1.2.ebuild b/dev-python/llvmmath/llvmmath-0.1.2.ebuild
new file mode 100644
index 00000000000..8851209d1c7
--- /dev/null
+++ b/dev-python/llvmmath/llvmmath-0.1.2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="LLVM math library for Python"
+HOMEPAGE="https://github.com/ContinuumIO/llvmmath"
+SRC_URI="https://github.com/ContinuumIO/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/llvmpy[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c 'import sys,llvmmath; sys.exit(llvmmath.test())' || die
+}
diff --git a/dev-python/llvmmath/metadata.xml b/dev-python/llvmmath/metadata.xml
new file mode 100644
index 00000000000..3a2c2a56ccf
--- /dev/null
+++ b/dev-python/llvmmath/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ The purpose of this project is to provide portable math functions,
+ many of which are in C99 and not available on all platforms. It is
+ based on NumPy's umath and tries to support all floating point and
+ complex types.
+ The library can be compiled with any C compiler, or to LLVM assembly
+ using Clang, to be linked into modules containing functions for jitting.
+</longdescription>
+ <upstream>
+ <remote-id type="github">ContinuumIO/llvmmath</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/llvmpy/Manifest b/dev-python/llvmpy/Manifest
new file mode 100644
index 00000000000..e923217ae9e
--- /dev/null
+++ b/dev-python/llvmpy/Manifest
@@ -0,0 +1,6 @@
+DIST llvmpy-0.12.2.tar.gz 570250 SHA256 fd619c872d4c516111fc36c814f6c0112fb3764f02be258c920818ab405484ca SHA512 5a988e994c5c3ab2c00edd4d9df1ec3dcef8774bb10bcc789f7540f88f4a0fd2f7c0374fd96b7ed4e2a923781834b3b1f0aba52bc5fd828553cddf07767e9c82 WHIRLPOOL 3aa4de9e28e6a748300f85f1ddfe63f15df65ad83e67dcbdbd21d0aa923c55ac659813bbc375b68931ba86e4831842d5c5d5463ec4b523821c751953c018fb1c
+DIST llvmpy-0.12.3.tar.gz 570289 SHA256 864e4a216e2f68b4f05b7a9e41ed200599b9396216b3ed76612b9d4a1cf98ffe SHA512 7155c900f70aef6522cb975f1be6a90cccb1c5c0f2b5a70369757eafe7562ae4324d08cd2f161ddea9af9dfd48c9d0b3049b703cfb4c4dbf0a5a88e50d8999a7 WHIRLPOOL f01fff9b04fa19a2ade70db13bfef23e83637861efd209d82fb1060888c0ec181498fc290d437ea4fff9056a7586c1fceade2bf25ddddf3ebc98715f2551f663
+DIST llvmpy-0.12.4.tar.gz 570572 SHA256 7f09e1626e890b5ebe916278ed13be0da1dfb66d9cda33acc2c61e91e06da806 SHA512 4efc8f040b68d729387f211b9cdd02d705abaae2f20a283da3f617f7417fcc0181319fcc3cf673ad9c6df6907c705932802eb0b7e0fff1bc3c9d32480d8270c1 WHIRLPOOL 68c6af1288407f7237cd526e9d30782e47e891ef951dc68a8f6d0611fb781706df68c542de9c953efd09d88fe03340fe88f9c7e16625c3eb4ef2bdb18b4d7101
+DIST llvmpy-0.12.5.tar.gz 570612 SHA256 b95c5c633c8475c1b7a63eda2759fb255a46e064ef2174841a7e75400091a387 SHA512 9d77c3ca5603580a2e0c5944d859424fa85801986ecf53ec8d6fd0386dab77b9936e9af369e7d231d9b31bc658ffdbeece0b273111965fbda33f7cf2d7de5b67 WHIRLPOOL 47982d39076de86415c160acc3498e9236020097af2402bbfecdd348af3306ed9176af72afc68273fcc599c591664058bfd176886a8603ffb68adf7b6c87bc34
+DIST llvmpy-0.12.6.tar.gz 571494 SHA256 1433062ac890bdb13651dc1bc4f0ee366f4b13789bf9ff18c3520fc5f9862cf5 SHA512 22cc3ac77e7d7d61ece24ccb26f8f19746683252b8cd0eeb5f9751e1177f8a882be43fb21d99ce225c93ef450dcffa83cc63bff3972faa252841fd2ef659f1c4 WHIRLPOOL d232ac61fb9ff3caa160deabc453ca1f1a32db0920cc98b8f2ec03876820dd15713060ae83f18a1b4c22b5f5455a94d14bea95bd39bd6a311813171c27b98cf2
+DIST llvmpy-0.12.7.tar.gz 573314 SHA256 e11eee8094351497785672365eb5a2d2171d7a753e307356f40605412fc3e408 SHA512 87fb8451e9f38ff2f4e195087ca046de157c5081b45570801051b5ea25b0d00829dc8b633fc90cdb925958ccba7cf70e182a2df6f39d1870bdf2653a62db0fcd WHIRLPOOL ccaa2d4e815fa6ddbdfd9d7df415082e792728a1c07250a6037b76eb04f77b12216999f35d16e907b980a8a2c6252735aef987e2172d4ff2e2b7927bc954b4bb
diff --git a/dev-python/llvmpy/files/llvmpy-0.12.2-return-type.patch b/dev-python/llvmpy/files/llvmpy-0.12.2-return-type.patch
new file mode 100644
index 00000000000..2fcb2beab7a
--- /dev/null
+++ b/dev-python/llvmpy/files/llvmpy-0.12.2-return-type.patch
@@ -0,0 +1,13 @@
+gentoo qa: type conversion on return triggered by gcc warnings
+bicatali - feb 2014
+--- llvmpy/include/llvm_binding/conversion.h.orig 2014-02-10 08:45:29.516304878 -0800
++++ llvmpy/include/llvm_binding/conversion.h 2014-02-10 08:45:58.190474249 -0800
+@@ -101,7 +101,7 @@
+ val = PyInt_AsLong(intobj);
+ }
+ if (PyErr_Occurred()){
+- return NULL;
++ return 1;
+ }
+ // success
+ return 1;
diff --git a/dev-python/llvmpy/llvmpy-0.12.2.ebuild b/dev-python/llvmpy/llvmpy-0.12.2.ebuild
new file mode 100644
index 00000000000..361ba3da465
--- /dev/null
+++ b/dev-python/llvmpy/llvmpy-0.12.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="http://llvmpy.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+# fails with llvm-3.4
+RDEPEND="=sys-devel/llvm-3.3*:=[multitarget]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )"
+
+PATCHES=( "${FILESDIR}"/${P}-return-type.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import llvm; llvm.test()" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmpy/llvmpy-0.12.3.ebuild b/dev-python/llvmpy/llvmpy-0.12.3.ebuild
new file mode 100644
index 00000000000..ac171154fae
--- /dev/null
+++ b/dev-python/llvmpy/llvmpy-0.12.3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="http://llvmpy.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+# fails with llvm-3.4
+RDEPEND="=sys-devel/llvm-3.3*:=[multitarget]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.12.2-return-type.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import llvm; llvm.test()" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmpy/llvmpy-0.12.4.ebuild b/dev-python/llvmpy/llvmpy-0.12.4.ebuild
new file mode 100644
index 00000000000..ac171154fae
--- /dev/null
+++ b/dev-python/llvmpy/llvmpy-0.12.4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="http://llvmpy.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+# fails with llvm-3.4
+RDEPEND="=sys-devel/llvm-3.3*:=[multitarget]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.12.2-return-type.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import llvm; llvm.test()" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmpy/llvmpy-0.12.5.ebuild b/dev-python/llvmpy/llvmpy-0.12.5.ebuild
new file mode 100644
index 00000000000..ac171154fae
--- /dev/null
+++ b/dev-python/llvmpy/llvmpy-0.12.5.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="http://llvmpy.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+# fails with llvm-3.4
+RDEPEND="=sys-devel/llvm-3.3*:=[multitarget]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.12.2-return-type.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import llvm; llvm.test()" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmpy/llvmpy-0.12.6.ebuild b/dev-python/llvmpy/llvmpy-0.12.6.ebuild
new file mode 100644
index 00000000000..1068a7eb07d
--- /dev/null
+++ b/dev-python/llvmpy/llvmpy-0.12.6.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="http://llvmpy.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+# fails with llvm-3.4
+RDEPEND="=sys-devel/llvm-3.3*:=[multitarget]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# Usual; req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${PN}-0.12.2-return-type.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import llvm; llvm.test()" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmpy/llvmpy-0.12.7.ebuild b/dev-python/llvmpy/llvmpy-0.12.7.ebuild
new file mode 100644
index 00000000000..705b92ae108
--- /dev/null
+++ b/dev-python/llvmpy/llvmpy-0.12.7.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="http://llvmpy.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+# fails with llvm-3.4
+RDEPEND="=sys-devel/llvm-3.3*:=[multitarget]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# Usual; req'd for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${PN}-0.12.2-return-type.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ export CXXFLAGS
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import llvm; llvm.test()" || die
+}
+
+python_install() {
+ if ! python_is_python3; then
+ local CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ export CXXFLAGS
+ fi
+ distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/llvmpy/metadata.xml b/dev-python/llvmpy/metadata.xml
new file mode 100644
index 00000000000..73f8aae9c57
--- /dev/null
+++ b/dev-python/llvmpy/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ llvmpy is a Python wrapper around the LLVM C++ library which allows
+ simple access to compiler tools.
+</longdescription>
+ <upstream>
+ <remote-id type="github">llvmpy/llvmpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/lockfile/Manifest b/dev-python/lockfile/Manifest
new file mode 100644
index 00000000000..e1bb4de6d54
--- /dev/null
+++ b/dev-python/lockfile/Manifest
@@ -0,0 +1,2 @@
+DIST lockfile-0.10.2.tar.gz 20662 SHA256 9e42252f17d1dd89ee31745e0c4fbe58862c25147eb0ef5295c9cd9bcb4ea2c1 SHA512 7d70bcf7c343228f144687dd2cbc47a525034a68134fa626077d08308e6abce80559e36e9f65859d4c46873c712f62e1d6bb2aeec422d337332b65caf2e430a8 WHIRLPOOL d23a0b99da2304d9c884e69df7fbae4e507d7bab35fe450f2062aba44b4c85fd2c1585012cd02a56c886b50c44fb5a470afe13546f828297c498c3a8551eda86
+DIST lockfile-0.9.1.tar.gz 16949 SHA256 88d8ea8d435ee5691117a87d1ca8fed2f8da881eb145295bf6895ac2c416e95d SHA512 1f7e2b13c42df730339e653a361bf4b85a289d62ed9277f159ab454b1e951d922884086299912472236ce0772d5eceebab7e0c6407590bb2ccbe9c56b664de05 WHIRLPOOL 543bc9ad7e937feba52c6132eee3356a9a229c8866f4f605f8399343a676fc98f62bf33f121c4f8dcbac8e18f38168561d34119efea5e30b53427a7e7283055d
diff --git a/dev-python/lockfile/files/py3-support.patch b/dev-python/lockfile/files/py3-support.patch
new file mode 100644
index 00000000000..ca6349a75a2
--- /dev/null
+++ b/dev-python/lockfile/files/py3-support.patch
@@ -0,0 +1,107 @@
+# https://github.com/smontanaro/pylockfile/commit/379fa0b6131995f96f5bd048906fc0bd3c2527f7
+# https://github.com/smontanaro/pylockfile/commit/eeead7d35e9a97b457b90edd241fd031df68d57b
+# https://github.com/smontanaro/pylockfile/commit/bf2627a5b9f83e1bbcf1b5030a693acb6236a211
+--- a/lockfile/__init__.py
++++ b/lockfile/__init__.py
+@@ -1,4 +1,3 @@
+-
+ """
+ lockfile.py - Platform-independent advisory file locks.
+
+@@ -50,6 +49,8 @@ Exceptions:
+ NotMyLock - File was locked but not by the current thread/process
+ """
+
++from __future__ import absolute_import
++
+ import sys
+ import socket
+ import os
+@@ -257,7 +258,7 @@ def LinkFileLock(*args, **kwds):
+ Do not use in new code. Instead, import LinkLockFile from the
+ lockfile.linklockfile module.
+ """
+- import linklockfile
++ from . import linklockfile
+ return _fl_helper(linklockfile.LinkLockFile, "lockfile.linklockfile",
+ *args, **kwds)
+
+@@ -267,7 +268,7 @@ def MkdirFileLock(*args, **kwds):
+ Do not use in new code. Instead, import MkdirLockFile from the
+ lockfile.mkdirlockfile module.
+ """
+- import mkdirlockfile
++ from . import mkdirlockfile
+ return _fl_helper(mkdirlockfile.MkdirLockFile, "lockfile.mkdirlockfile",
+ *args, **kwds)
+
+@@ -277,7 +278,7 @@ def SQLiteFileLock(*args, **kwds):
+ Do not use in new code. Instead, import SQLiteLockFile from the
+ lockfile.mkdirlockfile module.
+ """
+- import sqlitelockfile
++ from . import sqlitelockfile
+ return _fl_helper(sqlitelockfile.SQLiteLockFile, "lockfile.sqlitelockfile",
+ *args, **kwds)
+
+@@ -306,10 +307,10 @@ def locked(path, timeout=None):
+ return decor
+
+ if hasattr(os, "link"):
+- import linklockfile as _llf
++ from . import linklockfile as _llf
+ LockFile = _llf.LinkLockFile
+ else:
+- import mkdirlockfile as _mlf
++ from . import mkdirlockfile as _mlf
+ LockFile = _mlf.MkdirLockFile
+
+ FileLock = LockFile
+diff --git a/lockfile/pidlockfile.py b/lockfile/pidlockfile.py
+index 3fc8f63..a965ba8 100644
+--- a/lockfile/pidlockfile.py
++++ b/lockfile/pidlockfile.py
+@@ -78,7 +78,7 @@ class PIDLockFile(LockBase):
+ while True:
+ try:
+ write_pid_to_pidfile(self.path)
+- except OSError, exc:
++ except OSError as exc:
+ if exc.errno == errno.EEXIST:
+ # The lock creation failed. Maybe sleep a bit.
+ if timeout is not None and time.time() > end_time:
+@@ -159,7 +159,7 @@ def write_pid_to_pidfile(pidfile_path):
+
+ """
+ open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY)
+- open_mode = 0644
++ open_mode = 0o644
+ pidfile_fd = os.open(pidfile_path, open_flags, open_mode)
+ pidfile = os.fdopen(pidfile_fd, 'w')
+
+@@ -186,7 +186,7 @@ def remove_existing_pidfile(pidfile_path):
+ """
+ try:
+ os.remove(pidfile_path)
+- except OSError, exc:
++ except OSError as exc:
+ if exc.errno == errno.ENOENT:
+ pass
+ else:
+diff --git a/lockfile/sqlitelockfile.py b/lockfile/sqlitelockfile.py
+index ec75490..d596229 100644
+--- a/lockfile/sqlitelockfile.py
++++ b/lockfile/sqlitelockfile.py
+@@ -3,6 +3,11 @@ from __future__ import absolute_import, division
+ import time
+ import os
+
++try:
++ unicode
++except NameError:
++ unicode = str
++
+ from . import LockBase, NotLocked, NotMyLock, LockTimeout, AlreadyLocked
+
+ class SQLiteLockFile(LockBase):
+
diff --git a/dev-python/lockfile/lockfile-0.10.2.ebuild b/dev-python/lockfile/lockfile-0.10.2.ebuild
new file mode 100644
index 00000000000..5e13652981d
--- /dev/null
+++ b/dev-python/lockfile/lockfile-0.10.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Platform-independent file locking module"
+HOMEPAGE="http://launchpad.net/pylockfile http://pypi.python.org/pypi/lockfile"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/pbr[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+DOCS=( ACKS README RELEASE-NOTES )
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ emake -C doc/source html || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ # "${PYTHON}" test/test_lockfile.py yeilds no informative coverage output
+ nosetests || die "test_lockfile failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/.build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lockfile/lockfile-0.9.1-r1.ebuild b/dev-python/lockfile/lockfile-0.9.1-r1.ebuild
new file mode 100644
index 00000000000..d5270533c45
--- /dev/null
+++ b/dev-python/lockfile/lockfile-0.9.1-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py2.5 dropped; Test file reveals py2.5 can't support a core file
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Platform-independent file locking module"
+HOMEPAGE="http://code.google.com/p/pylockfile/ http://pypi.python.org/pypi/lockfile http://smontanaro.dyndns.org/python/"
+SRC_URI="http://pylockfile.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~sparc x86"
+IUSE="doc test"
+
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+DOCS=( ACKS README RELEASE-NOTES )
+
+PATCHES=( "${FILESDIR}"/py3-support.patch )
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ emake -C doc html || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ # "${PYTHON}" test/test_lockfile.py yeilds no informative coverage output
+ nosetests || die "test_lockfile failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/.build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lockfile/metadata.xml b/dev-python/lockfile/metadata.xml
new file mode 100644
index 00000000000..45e559da998
--- /dev/null
+++ b/dev-python/lockfile/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">lockfile</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/locustio/Manifest b/dev-python/locustio/Manifest
new file mode 100644
index 00000000000..8b8e036b674
--- /dev/null
+++ b/dev-python/locustio/Manifest
@@ -0,0 +1 @@
+DIST locustio-0.7.3.tar.gz 89300 SHA256 220e1f97ece2def3454aeecc5070419518e4e16c5aa39d21eb509a38f47847ec SHA512 fe2434691218be0749c0bf7c2c26b6b3172b7dd69898667441aa98a67ac5e5fbb513aebd27bd54c10f423da452f734c2d6ab7a52f4641755439cd3b81a82eee4 WHIRLPOOL f7e485f9bbfbf30dbe9d55c7642dbb10df3616d5f7c11612218adea4113b519a4a0b084f35f32de73181150edddc6e5d7f698eb453462987c727c1d5dc9b0661
diff --git a/dev-python/locustio/locustio-0.7.3.ebuild b/dev-python/locustio/locustio-0.7.3.ebuild
new file mode 100644
index 00000000000..689b743c6a7
--- /dev/null
+++ b/dev-python/locustio/locustio-0.7.3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7)
+inherit distutils-r1
+
+DESCRIPTION="A python utility for doing easy, distributed load testing of a web site"
+HOMEPAGE="http://locust.io/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="test? (
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyzmq[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/gevent-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/flask-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.4.1[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.4.2"[${PYTHON_USEDEP}]
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/locustio/metadata.xml b/dev-python/locustio/metadata.xml
new file mode 100644
index 00000000000..7474427bba3
--- /dev/null
+++ b/dev-python/locustio/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">locustio</remote-id>
+ <remote-id type="github">locustio/locust</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/log4py/Manifest b/dev-python/log4py/Manifest
new file mode 100644
index 00000000000..89935fe4171
--- /dev/null
+++ b/dev-python/log4py/Manifest
@@ -0,0 +1 @@
+DIST log4py-1.3.tar.gz 14926 SHA256 dc80ab6048b0f727c96b7fd9f0d279543e6f716fb08c32cdeaf96ac91675290b SHA512 683352f00c2cbb3afdd938d7b30a524f543db6b336c69a6a10acecdab08febba384fcc7a55b0d55a56c389dfd6b74c5e6f26345680fc7b4e29adcbe66f45e9ad WHIRLPOOL 2d709bb7a7f31368f5a8fc0509234451fc24ded075582675013975628aea3b1cdb6c4cb8e78077537683b82875c57b3af582a7652a5c80adfaeadb0d45d8cc9d
diff --git a/dev-python/log4py/log4py-1.3-r1.ebuild b/dev-python/log4py/log4py-1.3-r1.ebuild
new file mode 100644
index 00000000000..0bead44c2c0
--- /dev/null
+++ b/dev-python/log4py/log4py-1.3-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A python logging module similar to log4j"
+HOMEPAGE="http://www.its4you.at/english/log4py.html"
+SRC_URI="http://www.its4you.at/downloads/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc sparc x86"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND=""
+
+DOCS="doc/AUTHORS doc/ChangeLog database/* log4py-test.py"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ distutils-r1_python_install
+ insinto /etc
+ doins log4py.conf
+}
diff --git a/dev-python/log4py/metadata.xml b/dev-python/log4py/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/log4py/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/logbook/Manifest b/dev-python/logbook/Manifest
new file mode 100644
index 00000000000..131e8a166e7
--- /dev/null
+++ b/dev-python/logbook/Manifest
@@ -0,0 +1,2 @@
+DIST logbook-0.10.0.tar.gz 107284 SHA256 ff227d9a48dcd539f25bdab26d36dd2ba1459bcc5ebce2926e92fecc917e5d26 SHA512 121fb5ed24a2c53b357d17d31c63c6d305014f5c9aa248df2b251e0c15ce1e7052be380b3032c3bdec0b767278b0b5d4a3f998ac596336f681ac6d353e0ed533 WHIRLPOOL 79700e9165b6c1f9ffe2f118c1033ce713a364b15ca3c1798f80c4f535411464fb329cd639ec0fb1887c542601554be444dd9e6f7b828f6bcc315af4d287f453
+DIST logbook-0.9.1.tar.gz 106615 SHA256 e2f49e922c7836a58418b1cb2680e71492f45150cb968afced9f6a98222e3524 SHA512 d136dd5a7219a23a50db857919d794e7b721cc629443ac2bf92374aef68889d8a7146886fc4484c6d0dea56ec5c1c1ccca3f0b20310c2e12dba9d40dcac9c188 WHIRLPOOL adfb8bd28565ec97904c63631c55ee17613fdf2259d039baa0351df870bfa1658ebc52c8dbf69c8b94b0230577f287b215324d95b186cf38cc4d68bb1040d502
diff --git a/dev-python/logbook/files/logbook-0.4.2-objectsinv.patch b/dev-python/logbook/files/logbook-0.4.2-objectsinv.patch
new file mode 100644
index 00000000000..28b26f0bc9a
--- /dev/null
+++ b/dev-python/logbook/files/logbook-0.4.2-objectsinv.patch
@@ -0,0 +1,11 @@
+Prevent unwanted d'loading of un-needed objects.inv files
+diff -ur logbook-0.4.2.orig/docs/conf.py logbook-0.4.2/docs/conf.py
+--- docs/conf.py 2013-06-02 19:31:32.000000000 +0800
++++ docs/conf.py 2013-06-30 10:50:38.604402792 +0800
+@@ -219,6 +219,3 @@
+ [u'Armin Ronacher, Georg Brandl'], 1)
+ ]
+
+-intersphinx_mapping = {
+- 'http://docs.python.org': None
+-}
diff --git a/dev-python/logbook/files/logbook-0.5-pypy-test-fix.patch b/dev-python/logbook/files/logbook-0.5-pypy-test-fix.patch
new file mode 100644
index 00000000000..9f691a1811f
--- /dev/null
+++ b/dev-python/logbook/files/logbook-0.5-pypy-test-fix.patch
@@ -0,0 +1,50 @@
+From 41dc7b9af1841b0005051ad81ab36ed2e062d663 Mon Sep 17 00:00:00 2001
+From: Rotem Yaari <vmalloc@gmail.com>
+Date: Sat, 17 Aug 2013 22:43:39 +0300
+Subject: [PATCH] #91: Fix broken tests on pypy
+
+---
+ .travis.yml | 1 +
+ tests/test_logbook.py | 2 +-
+ tox.ini | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index ee3f457..b0aaea6 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -3,6 +3,7 @@ python:
+ - "2.6"
+ - "2.7"
+ - "3.3"
++ - "pypy"
+
+ install:
+ # this fixes SemLock issues on travis
+diff --git a/tests/test_logbook.py b/tests/test_logbook.py
+index 6d1a301..a1da11c 100644
+--- a/tests/test_logbook.py
++++ b/tests/test_logbook.py
+@@ -99,7 +99,7 @@ def make_record():
+
+ errormsg = str(caught.exception)
+ self.assertRegexpMatches(errormsg,
+- "Could not format message with provided arguments: Invalid (?:format specifier)|(?:conversion specification)")
++ "Could not format message with provided arguments: Invalid (?:format specifier)|(?:conversion specification)|(?:format spec)")
+ self.assertIn("msg='Hello {foo:invalid}'", errormsg)
+ self.assertIn('args=()', errormsg)
+ self.assertIn("kwargs={'foo': 42}", errormsg)
+diff --git a/tox.ini b/tox.ini
+index 694cd51..2b52a28 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,5 +1,5 @@
+ [tox]
+-envlist=py26,py27,py33,docs
++envlist=py26,py27,py33,pypy,docs
+
+ [testenv]
+ commands=
+--
+1.8.1.6
+
diff --git a/dev-python/logbook/logbook-0.10.0.ebuild b/dev-python/logbook/logbook-0.10.0.ebuild
new file mode 100644
index 00000000000..104e68c8937
--- /dev/null
+++ b/dev-python/logbook/logbook-0.10.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A logging replacement for Python"
+HOMEPAGE="http://packages.python.org/Logbook/ http://pypi.python.org/pypi/Logbook"
+SRC_URI="https://github.com/mitsuhiko/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+ doc? ( >=dev-python/sphinx-1.1.3-r3[${PYTHON_USEDEP}] )"
+RDEPEND="
+ dev-python/redis-py[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.0[${PYTHON_USEDEP}]"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.4.2-objectsinv.patch )
+
+python_prepare_all() {
+ # Delete test file requiring local conncetion to redis server
+ rm tests/test_queues.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/logbook/logbook-0.9.1.ebuild b/dev-python/logbook/logbook-0.9.1.ebuild
new file mode 100644
index 00000000000..4e8a47c7fb1
--- /dev/null
+++ b/dev-python/logbook/logbook-0.9.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A logging replacement for Python"
+HOMEPAGE="http://packages.python.org/Logbook/ http://pypi.python.org/pypi/Logbook"
+SRC_URI="https://github.com/mitsuhiko/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+ doc? ( >=dev-python/sphinx-1.1.3-r3[${PYTHON_USEDEP}] )"
+RDEPEND="dev-python/redis-py[${PYTHON_USEDEP}]"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.4.2-objectsinv.patch )
+
+python_prepare_all() {
+ # Delete test file requiring local connection to redis server
+ rm tests/test_queues.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test tests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/logbook/metadata.xml b/dev-python/logbook/metadata.xml
new file mode 100644
index 00000000000..d7c3f72cb38
--- /dev/null
+++ b/dev-python/logbook/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Logbook</remote-id>
+ <remote-id type="github">mitsuhiko/logbook</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/logilab-common/Manifest b/dev-python/logilab-common/Manifest
new file mode 100644
index 00000000000..c2329b0c8df
--- /dev/null
+++ b/dev-python/logilab-common/Manifest
@@ -0,0 +1,4 @@
+DIST logilab-common-0.61.0.tar.gz 199322 SHA256 80fba5ba4908983580a0003fee0c12c270b379e2a21038b609ce8eda4dd3cee7 SHA512 2229fcc8549e9adc87a7d6a47b3e966a16b61ae78a2253ea314d72d180a0cc7eae0fc444aefb3bf00995ead902eecf9fcabb7f494dafbdde9c7fdded3c4f35b1 WHIRLPOOL 942e1d2216ba9b09371fc77fd9e6f4463da260d174d2e0a0fd083adf4181ee9ce5a77845468b60aa85a869b90755b6668afe3a1274c21a77f0b40d0188d3ff5e
+DIST logilab-common-0.62.1.tar.gz 199594 SHA256 02745f8416faabba65b5cb188f849ef48ea787a1e62c7af16d4db4f361fb67a9 SHA512 56b2777a186c64bea9135a2aa85b158b60bf3d5be6cdd89e4449bd0b31bca4766ac678c080f36a4d0710a933ea02f946b8dac728c85da9a5319f96011462e443 WHIRLPOOL 88605edb80105453003c767417f7619a33410a565024808691a9164cc9298cc2880c04a498b0a7d639f5524e27546dd9ac8fea661c4761bfbf5742da29e670cd
+DIST logilab-common-0.63.2.tar.gz 196789 SHA256 603ba00c9bb09219a3bd2906c214d9455481110dacc472f450b53d5ae90f28e7 SHA512 e4b089387ab7d5d039ec719e736711f54af8d722be4ea0a933014375fe353045528c3c74c3feb6868aefe4a867223c483985fb1415aabe25dba1d333d1afbdb9 WHIRLPOOL d937ebb1f20c2bb040552bf32afc767f4238c21cb995583f9f19404c9a22bec634889a684a9fecfb70b2a17803cd4df6507dc5a74b6ae9ee4d04759d724bb687
+DIST logilab-common-1.0.2.tar.gz 190912 SHA256 3f847b36f6c03ffc8521ed61e691501c9713f8654964b90201f2056742d38300 SHA512 12caab49851ee1f335b9de19892ad26a1459308f9b8ad7b1270d4563d6afa05138be5cc7b21c7d4ff311d7da5348bf2929042d4db4e0e629413236ae4432f54b WHIRLPOOL 44ba64f36b89aa6fd8acce39944f5f3eaa438b9a923e322a8f19464b28b7b5c2d0692f49e382e8281cae093e18a102879e18b5f647d267749165e8904be19b64
diff --git a/dev-python/logilab-common/files/logilab-common-0.59.1-zipsafe.patch b/dev-python/logilab-common/files/logilab-common-0.59.1-zipsafe.patch
new file mode 100644
index 00000000000..6807c5544c8
--- /dev/null
+++ b/dev-python/logilab-common/files/logilab-common-0.59.1-zipsafe.patch
@@ -0,0 +1,13 @@
+Make sure setuptools does not create a zip file in python_test; this is buggy
+and causes tests to fail.
+
+--- a/setup.py
++++ b/setup.py
+@@ -179,6 +179,7 @@
+ ext_modules = ext_modules,
+ cmdclass = {'install_lib': MyInstallLib,
+ 'build_py': MyBuildPy},
++ zip_safe = False,
+ **kwargs
+ )
+
diff --git a/dev-python/logilab-common/files/logilab-common-0.60.0-skip-doctest.patch b/dev-python/logilab-common/files/logilab-common-0.60.0-skip-doctest.patch
new file mode 100644
index 00000000000..019ce619ac6
--- /dev/null
+++ b/dev-python/logilab-common/files/logilab-common-0.60.0-skip-doctest.patch
@@ -0,0 +1,13 @@
+http://www.logilab.org/ticket/174440
+diff --git a/textutils.py b/textutils.py
+--- a/textutils.py
++++ b/textutils.py
+@@ -287,7 +287,7 @@
+ >>> text_to_dict('''multiple=1
+ ... multiple= 2
+ ... single =3
+- ... ''')
++ ... ''') # doctest: +SKIP
+ {'single': '3', 'multiple': ['1', '2']}
+
+ """
diff --git a/dev-python/logilab-common/logilab-common-0.61.0.ebuild b/dev-python/logilab-common/logilab-common-0.61.0.ebuild
new file mode 100644
index 00000000000..249dbe1d90f
--- /dev/null
+++ b/dev-python/logilab-common/logilab-common-0.61.0.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Useful miscellaneous modules used by Logilab projects"
+HOMEPAGE="http://www.logilab.org/project/logilab-common http://pypi.python.org/pypi/logilab-common"
+SRC_URI="ftp://ftp.logilab.org/pub/common/${P}.tar.gz mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~ia64 ppc ~ppc64 ~s390 ~sparc x86 ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test doc"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# egenix-mx-base tests are optional and supports python2 only.
+DEPEND="${RDEPEND}
+ test? ( $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7) )
+ doc? ( $(python_gen_cond_dep 'dev-python/epydoc[${PYTHON_USEDEP}]' python2_7) )"
+
+PATCHES=(
+ # Make sure setuptools does not create a zip file in python_test;
+ # this is buggy and causes tests to fail.
+ "${FILESDIR}/${PN}-0.59.1-zipsafe.patch"
+
+ # Depends on order of dictionary keys
+ "${FILESDIR}/logilab-common-0.60.0-skip-doctest.patch"
+)
+# Req'd for impl specific failures in the testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -e 's:(CURDIR):{S}/${P}:' -i doc/makefile || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ # Based on the doc build in Arfrever's ebuild. It works
+ pushd doc > /dev/null
+ mkdir -p apidoc || die
+ epydoc --parse-only -o apidoc --html -v --no-private --exclude=__pkginfo__ --exclude=setup --exclude=test \
+ -n "Logilab's common library" "$(ls -d ../build/lib/logilab/common/)" build \
+ || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ # https://www.logilab.org/ticket/149345
+ # Prevent timezone related failure.
+ export TZ=UTC
+
+ # Make sure that the tests use correct modules.
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ if python_is_python3; then
+ # http://www.logilab.org/ticket/241813, 241807
+ # The suite can be made to pass under py3.4 by disabling the class MxDateTC in unittest_date.py
+ # These are covered by issue 241813. Any and all methods to disable them temporarily
+ # (assuming they will ever be fixed) are simply cumbersome in the extreme, thus impractical.
+ # The failures are specific to py3.4's unittest's parameters in _addSkip and not the package itself.
+ if [[ "${EPYTHON}" == "python3.4" ]]; then
+ sed -e 's:test_any:_&:' \
+ -i $(find . -name unittest_compat.py) || die
+ sed -e 's:test_add_days_worked:_&:' \
+ -i $(find . -name unittest_date.py) || die
+ fi
+ # Returns a clean run under py3.3
+ rm $(find . -name unittest_umessage.py) || die
+ fi
+ "${TEST_DIR}"/scripts/pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman doc/pytest.1
+ use doc && dohtml -r doc/apidoc/.
+}
diff --git a/dev-python/logilab-common/logilab-common-0.62.1.ebuild b/dev-python/logilab-common/logilab-common-0.62.1.ebuild
new file mode 100644
index 00000000000..4c8e43f8025
--- /dev/null
+++ b/dev-python/logilab-common/logilab-common-0.62.1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Useful miscellaneous modules used by Logilab projects"
+HOMEPAGE="http://www.logilab.org/project/logilab-common http://pypi.python.org/pypi/logilab-common"
+SRC_URI="ftp://ftp.logilab.org/pub/common/${P}.tar.gz mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 arm ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test doc"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# egenix-mx-base tests are optional and supports python2 only.
+DEPEND="${RDEPEND}
+ dev-python/six[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7) )
+ doc? ( $(python_gen_cond_dep 'dev-python/epydoc[${PYTHON_USEDEP}]' python2_7) )"
+
+PATCHES=(
+ # Make sure setuptools does not create a zip file in python_test;
+ # this is buggy and causes tests to fail.
+ "${FILESDIR}/${PN}-0.59.1-zipsafe.patch"
+
+ # Depends on order of dictionary keys
+ "${FILESDIR}/logilab-common-0.60.0-skip-doctest.patch"
+)
+# Req'd for impl specific failures in the testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -e 's:(CURDIR):{S}/${P}:' -i doc/makefile || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ # Based on the doc build in Arfrever's ebuild. It works
+ pushd doc > /dev/null
+ mkdir -p apidoc || die
+ epydoc --parse-only -o apidoc --html -v --no-private --exclude=__pkginfo__ --exclude=setup --exclude=test \
+ -n "Logilab's common library" "$(ls -d ../build/lib/logilab/common/)" build \
+ || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ # https://www.logilab.org/ticket/149345
+ # Prevent timezone related failure.
+ export TZ=UTC
+
+ # Make sure that the tests use correct modules.
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ if python_is_python3; then
+ # http://www.logilab.org/ticket/241813, 241807
+ # The suite can be made to pass under py3.4 by disabling the class MxDateTC in unittest_date.py
+ # These are covered by issue 241813. Any and all methods to disable them temporarily
+ # (assuming they will ever be fixed) are simply cumbersome in the extreme, thus impractical.
+ # The failures are specific to py3.4's unittest's parameters in _addSkip and not the package itself.
+ if [[ "${EPYTHON}" == "python3.4" ]]; then
+ sed -e 's:test_any:_&:' \
+ -i $(find . -name unittest_compat.py) || die
+ sed -e 's:test_add_days_worked:_&:' \
+ -i $(find . -name unittest_date.py) || die
+ fi
+ # Still one related failure under py3.4
+ # Returns a clean run under py3.3, though leaving fails exposed in this bump of 0.62.1
+ # https://www.logilab.org/ticket/269904
+ # Also unittest_date.py known to fail related to absence of installed egenix-mx-base
+ # rm $(find . -name unittest_umessage.py) || die
+ fi
+ "${TEST_DIR}"/scripts/pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman doc/pytest.1
+ use doc && dohtml -r doc/apidoc/.
+}
diff --git a/dev-python/logilab-common/logilab-common-0.63.2.ebuild b/dev-python/logilab-common/logilab-common-0.63.2.ebuild
new file mode 100644
index 00000000000..30d7f87c5a7
--- /dev/null
+++ b/dev-python/logilab-common/logilab-common-0.63.2.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Useful miscellaneous modules used by Logilab projects"
+HOMEPAGE="http://www.logilab.org/project/logilab-common http://pypi.python.org/pypi/logilab-common"
+SRC_URI="ftp://ftp.logilab.org/pub/common/${P}.tar.gz mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 ~s390 sparc x86 ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test doc"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# egenix-mx-base tests are optional and supports python2 only.
+DEPEND="${RDEPEND}
+ dev-python/six[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7)
+ dev-python/pytz[${PYTHON_USEDEP}] )
+ doc? ( $(python_gen_cond_dep 'dev-python/epydoc[${PYTHON_USEDEP}]' python2_7) )"
+
+PATCHES=(
+ # Make sure setuptools does not create a zip file in python_test;
+ # this is buggy and causes tests to fail.
+ "${FILESDIR}/${PN}-0.59.1-zipsafe.patch"
+)
+# Req'd for impl specific failures in the testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -e 's:(CURDIR):{S}/${P}:' -i doc/makefile || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ # Based on the doc build in Arfrever's ebuild. It works
+ pushd doc > /dev/null
+ mkdir -p apidoc || die
+ epydoc --parse-only -o apidoc --html -v --no-private --exclude=__pkginfo__ --exclude=setup --exclude=test \
+ -n "Logilab's common library" "$(ls -d ../build/lib/logilab/common/)" build \
+ || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ # https://www.logilab.org/ticket/149345
+ # Prevent timezone related failure.
+ export TZ=UTC
+
+ # Make sure that the tests use correct modules.
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+ "${TEST_DIR}"/scripts/pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman doc/pytest.1
+ use doc && dohtml -r doc/apidoc/.
+}
diff --git a/dev-python/logilab-common/logilab-common-1.0.2.ebuild b/dev-python/logilab-common/logilab-common-1.0.2.ebuild
new file mode 100644
index 00000000000..14ea1278ebf
--- /dev/null
+++ b/dev-python/logilab-common/logilab-common-1.0.2.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Useful miscellaneous modules used by Logilab projects"
+HOMEPAGE="http://www.logilab.org/project/logilab-common http://pypi.python.org/pypi/logilab-common"
+SRC_URI="ftp://ftp.logilab.org/pub/common/${P}.tar.gz mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test doc"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# egenix-mx-base tests are optional and supports python2 only.
+DEPEND="${RDEPEND}
+ >=dev-python/six-1.4.0[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/egenix-mx-base[${PYTHON_USEDEP}]' python2_7)
+ dev-python/pytz[${PYTHON_USEDEP}] )
+ doc? ( $(python_gen_cond_dep 'dev-python/epydoc[${PYTHON_USEDEP}]' python2_7) )"
+
+# Req'd for impl specific failures in the testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -e 's:(CURDIR):{S}/${P}:' -i doc/makefile || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ # Based on the doc build in Arfrever's ebuild. It works
+ pushd doc > /dev/null
+ mkdir -p apidoc || die
+ epydoc --parse-only -o apidoc --html -v --no-private --exclude=__pkginfo__ --exclude=setup --exclude=test \
+ -n "Logilab's common library" "$(ls -d ../build/lib/logilab/common/)" build \
+ || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ # https://www.logilab.org/ticket/149345
+ # Prevent timezone related failure.
+ export TZ=UTC
+
+ # Make sure that the tests use correct modules.
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+ "${TEST_DIR}"/scripts/pytest || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman doc/pytest.1
+ use doc && dohtml -r doc/apidoc/.
+}
diff --git a/dev-python/logilab-common/metadata.xml b/dev-python/logilab-common/metadata.xml
new file mode 100644
index 00000000000..2c6b0c6b32a
--- /dev/null
+++ b/dev-python/logilab-common/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">logilab-common</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/logilab-constraint/Manifest b/dev-python/logilab-constraint/Manifest
new file mode 100644
index 00000000000..99fa280cb88
--- /dev/null
+++ b/dev-python/logilab-constraint/Manifest
@@ -0,0 +1 @@
+DIST logilab-constraint-0.5.0.tar.gz 48395 SHA256 ba291c988dcc5d4457cd3414994bddfe1f19b7e20b735e179ba0095294d8f511 SHA512 b1ccc6e7400eacb7c446c1904f5e2b0129104482e312929292c6ca7c9c18bf4e1fa0d0e78fce61527a97e00d85c4e2a5c1bb8cce7c18792cd5d2a295449e435c WHIRLPOOL b529175f81d846714bf6f9a810bfc6aeb5c11be344ca79e21d3b510663aefedf9a00489d964d71ad3ecd87e40c1698d0a270a2aea3de17799bf8138c68152c40
diff --git a/dev-python/logilab-constraint/logilab-constraint-0.5.0-r1.ebuild b/dev-python/logilab-constraint/logilab-constraint-0.5.0-r1.ebuild
new file mode 100644
index 00000000000..3497e2abf4c
--- /dev/null
+++ b/dev-python/logilab-constraint/logilab-constraint-0.5.0-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A finite domain constraints solver written in 100% pure Python"
+HOMEPAGE="http://www.logilab.org/project/logilab-constraint"
+SRC_URI="ftp://ftp.logilab.org/pub/constraint/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 sparc x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/logilab-common[${PYTHON_USEDEP}]"
+
+DOCS=( doc/CONTRIBUTORS )
+
+python_install() {
+ # Avoid collisions with dev-python/logilab-common.
+ distutils-r1_python_install
+ rm -f "${D}$(python_get_sitedir)/logilab/__init__.py" || die
+}
+
+python_install_all() {
+ use doc && dohtml doc/documentation.html
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/logilab-constraint/metadata.xml b/dev-python/logilab-constraint/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/logilab-constraint/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/louie/Manifest b/dev-python/louie/Manifest
new file mode 100644
index 00000000000..881d76787cd
--- /dev/null
+++ b/dev-python/louie/Manifest
@@ -0,0 +1 @@
+DIST Louie-1.1.tar.gz 22306 SHA256 75f33f2978e9a7ba1f541c594d8e93d0c4a965a706db688fd11a77f4049e5a5b SHA512 4f5426da4bfbf7a5928007a82e155414e7db9d466397eb9cba6a5fcfddccf4bd162071e5d551fb6ffd41f0b780097a89eea6c268e2d4fb32264683f796d85ec0 WHIRLPOOL e3b6ac3769ec7097914e4b73b9064fa2be6d4be358a661087c0d002a472e36435e0ec1665958e56857f581ce8b88f0827c84d68c966d18184d403109bc6e2746
diff --git a/dev-python/louie/louie-1.1-r1.ebuild b/dev-python/louie/louie-1.1-r1.ebuild
new file mode 100644
index 00000000000..fe1b263c3e7
--- /dev/null
+++ b/dev-python/louie/louie-1.1-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Louie"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Signal dispatching mechanism for Python"
+HOMEPAGE="http://pypi.python.org/pypi/Louie"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e "/'nose >= 0.8.3'/d" -i setup.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/louie/louie-1.1.ebuild b/dev-python/louie/louie-1.1.ebuild
new file mode 100644
index 00000000000..71b311c4265
--- /dev/null
+++ b/dev-python/louie/louie-1.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+DISTUTILS_SRC_TEST="nosetests"
+
+inherit distutils
+
+MY_PN="Louie"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Signal dispatching mechanism for Python"
+HOMEPAGE="http://pypi.python.org/pypi/Louie"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ distutils_src_prepare
+ sed -e "/'nose >= 0.8.3'/d" -i setup.py || die "sed failed"
+}
diff --git a/dev-python/louie/metadata.xml b/dev-python/louie/metadata.xml
new file mode 100644
index 00000000000..4053af5244e
--- /dev/null
+++ b/dev-python/louie/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Louie</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/lp_solve/Manifest b/dev-python/lp_solve/Manifest
new file mode 100644
index 00000000000..294a0bf207b
--- /dev/null
+++ b/dev-python/lp_solve/Manifest
@@ -0,0 +1 @@
+DIST lp_solve_5.5.2.0_Python_source.tar.gz 58017 SHA256 79683bc262e9da5b2fa7338ba190a9cd10559b9f2dbcb8f3bf07e2a81083ac51 SHA512 eaf732a1f3497c27e40a037be21b2e1552c3aec6cc7801c47d68a439be556ac45c2f1bb90e403d1a4b8bd42b0be0b323b8c3364363e6d51ecb0ad0934902444c WHIRLPOOL c40af8a5abacc98981a723d3d988e8921c35f988261d6a55da3f635aa920150b96186e35de4dcc3fe452b920041a161a24e40f5b5ec59db5a1ccb303967ccd7b
diff --git a/dev-python/lp_solve/files/lp_solve-5.5.2.0-setup.patch b/dev-python/lp_solve/files/lp_solve-5.5.2.0-setup.patch
new file mode 100644
index 00000000000..a28b8179d26
--- /dev/null
+++ b/dev-python/lp_solve/files/lp_solve-5.5.2.0-setup.patch
@@ -0,0 +1,50 @@
+--- setup.py.orig 2012-01-07 20:27:45.072840503 +0000
++++ setup.py 2012-01-07 20:24:22.127570128 +0000
+@@ -1,26 +1,25 @@
+ from distutils.core import setup, Extension
+ from os import getenv
+ import sys
+-import os
+-p = sys.prefix
+-NUMPYPATH = '.'
+-if os.path.isdir(p + '/include/numpy'):
+- NUMPY = 'NUMPY'
+-elif os.path.isdir(p + '/Lib/site-packages/numpy/core/include/numpy'):
+- NUMPY = 'NUMPY'
+- NUMPYPATH = p + '/Lib/site-packages/numpy/core/include'
+-else:
++import os, os.path
++
++try:
++ import numpy
++ NUMPY = 'NUMPY'
++ NUMPYPATH = numpy.get_include()
++except:
+ NUMPY = 'NONUMPY'
+-print 'numpy: ' + NUMPY
++ NUMPYPATH = '.'
++
+ windir = getenv('windir')
+ if windir == None:
+ WIN32 = 'NOWIN32'
+- LPSOLVE55 = '../../lpsolve55/bin/ux32'
++ LPSOLVEINC = os.path.join(sys.prefix,'include','lpsolve')
+ else:
+ WIN32 = 'WIN32'
+ LPSOLVE55 = '../../lpsolve55/bin/win32'
+ setup (name = "lpsolve55",
+- version = "5.5.0.9",
++ version = "5.5.2.0",
+ description = "Linear Program Solver, Interface to lpsolve",
+ author = "Peter Notebaert",
+ author_email = "lpsolve@peno.be",
+@@ -29,8 +28,7 @@
+ ext_modules = [Extension("lpsolve55",
+ ["lpsolve.c", "hash.c", "pythonmod.c"],
+ define_macros=[('PYTHON', '1'), (WIN32, '1'), ('NODEBUG', '1'), ('DINLINE', 'static'), (NUMPY, '1'), ('_CRT_SECURE_NO_WARNINGS', '1')],
+- include_dirs=['../..', NUMPYPATH],
+- library_dirs=[LPSOLVE55],
++ include_dirs=[LPSOLVEINC, NUMPYPATH],
+ libraries = ["lpsolve55"])
+ ]
+ )
diff --git a/dev-python/lp_solve/lp_solve-5.5.2.0-r1.ebuild b/dev-python/lp_solve/lp_solve-5.5.2.0-r1.ebuild
new file mode 100644
index 00000000000..4941a9c6d42
--- /dev/null
+++ b/dev-python/lp_solve/lp_solve-5.5.2.0-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python wrappers for lpsolve linear programming library"
+HOMEPAGE="http://lpsolve.sourceforge.net/5.5/Python.htm"
+SRC_URI="mirror://sourceforge/lpsolve/${PN}_${PV}_Python_source.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-mathematics/lpsolve"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${PN}_5.5/extra/Python/"
+
+PATCHES=( "${FILESDIR}"/${P}-setup.patch )
+
+python_prepare_all() {
+ if use examples; then
+ mkdir examples || die
+ mv ex*py examples || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" lpdemo.py || die
+}
+
+python_install_all() {
+ dodoc changes
+ use doc && dohtml Python.htm
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lp_solve/metadata.xml b/dev-python/lp_solve/metadata.xml
new file mode 100644
index 00000000000..71f0f27b3d6
--- /dev/null
+++ b/dev-python/lp_solve/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-mathematics</herd>
+ <longdescription lang="en">
+ Python wrapper modules for the linear programming library lpsolve.
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">lpsolve</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/lupy/Manifest b/dev-python/lupy/Manifest
new file mode 100644
index 00000000000..b6ff7a260c5
--- /dev/null
+++ b/dev-python/lupy/Manifest
@@ -0,0 +1 @@
+DIST Lupy-0.2.1.tar.gz 52269 SHA256 f0ced0b331c99b59d82b8ebc2fb23445e31dc3df339489b4b9811d9d25d42ba3 SHA512 3ecfaced8ea8005e2fdb57f87546e9128eaf2174d27109b3e3ffbd32cf4f2dd23d2568eac7ff4b3f93a05f4efc19a6eb7f89811f1d6d1441e66f6f955184ff64 WHIRLPOOL 980a8a3f38b44d95f6f712327b44dfe16c04fedb88518e99432f299e79d446a45e07e4d4eb4e7a0d6ff3f490c285b813443c96cd79775359306c0d5cab85fa1a
diff --git a/dev-python/lupy/lupy-0.2.1-r2.ebuild b/dev-python/lupy/lupy-0.2.1-r2.ebuild
new file mode 100644
index 00000000000..00900b7369a
--- /dev/null
+++ b/dev-python/lupy/lupy-0.2.1-r2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Lupy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Lupy is a is a full-text indexer and search engine written in Python"
+HOMEPAGE="http://divmod.org/projects/lupy http://pypi.python.org/pypi/Lupy"
+SRC_URI="mirror://sourceforge/lupy/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ~s390 x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="changelog.txt releasenotes.txt"
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lupy/metadata.xml b/dev-python/lupy/metadata.xml
new file mode 100644
index 00000000000..25857ab459f
--- /dev/null
+++ b/dev-python/lupy/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>lordvan@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">lupy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/lxml/Manifest b/dev-python/lxml/Manifest
new file mode 100644
index 00000000000..9799c2f0fd2
--- /dev/null
+++ b/dev-python/lxml/Manifest
@@ -0,0 +1,5 @@
+DIST lxml-3.3.5.tar.gz 3467344 SHA256 6ad6949dc7eea744a30fba77a968dd5910f545220e58bcc813b9df5c793e318a SHA512 b6692565e95ae8856347a2cbef4d1a1614cbc34aa47fbea10cfb49f5d5690a21e577e53e7cfbe73db18190a6919a1055fe5ee5ccaf1d03dc2bc0c5cf2c81ef2e WHIRLPOOL f9e875085701264128d37458f5c03a1e6dfb0a6d3e49f88cfc90031a40f17dfb06ff57151729bb03f96d2959b1bae40b0617076ace7d695433fcd857d13ec697
+DIST lxml-3.4.1.tar.gz 3524523 SHA256 069594837d0376a1bacf5cc42aa9a1be2e1c1396dc62f7d07f7358afecd34adf SHA512 ab669d1f9833e43b43ece4ef2481eebe22e9084ab07139f5c5c1fa6ea478177069d6ce96ece7eddef86982da418ec55a3785c4b78958f49f6ed415dc63af45ed WHIRLPOOL 5390f23aec3b7c07b9541f85ee5c674f267b99a9ef035cc5024d5f6defe6ee8ded500703b97b3f742f7630d25dbc538534654c8a3cddafb1ff37f5c5494bffb5
+DIST lxml-3.4.2.tar.gz 3526862 SHA256 c7d5990298af6ffb00312973a25f0cc917a6368126dd40eaab41d78d3e1ea25d SHA512 de57da48813cb6920937b23a82cf8fe389e0f215e3e5c4a873fae7a223d8df7fe693d835163cccedd23b538857ed8e5eb3f0d8e4e2c5ed33065c6fbb74604f10 WHIRLPOOL 0601d6474dad0b2dc6c47a906acc546e91e72b3e15bbf3d56d7f6c1ad2d46ae9e4007d775911ce2fef71ff06dba01d70d671379a079c92191aad13600a4e6a31
+DIST lxml-3.4.3.tar.gz 3541740 SHA256 6ce4a11ab485a67a899aa3e080c97b22a9df40c7077bd9146a821d3872cf2037 SHA512 9ce34fef03e19b13fd78f13562dba570018c6588c187452fa1a0e3db441c5583333e85386a56c243db6f0f03875b4be514f4e6084a386aa83a6e436fec992e4f WHIRLPOOL cfebfaa0a1cdb4cf9e451b0d3c7246fbf104bccd0511d4f4060862fdd88bd0699ce2b4e604afc5ae65cc037182565d8590cfe451c361ddecc4177fe09db0ffd7
+DIST lxml-3.4.4.tar.gz 3537508 SHA256 b3d362bac471172747cda3513238f115cbd6c5f8b8e6319bf6a97a7892724099 SHA512 94453ff0562fc18a4b43555271e2469556255b69daf5f801d1a0f1ff29fd73f4b46d4faba9bfe86b42cfdac31005a0d3cfcbf230e0c7593dd5fc6461afcad906 WHIRLPOOL 6debafb391c94bd57510498c8261a511759f52feb3065c8bdf3103b177b1ddcbad54968f1eceac07b97e42087a1c59a060a3719f9ea9d25a662da34bf314b89e
diff --git a/dev-python/lxml/files/lxml-3.3.x-test_etree.py.patch b/dev-python/lxml/files/lxml-3.3.x-test_etree.py.patch
new file mode 100644
index 00000000000..3c8667a4f49
--- /dev/null
+++ b/dev-python/lxml/files/lxml-3.3.x-test_etree.py.patch
@@ -0,0 +1,14 @@
+--- build/lib/lxml/tests/test_etree.py.orig 2015-03-15 17:01:51.337909343 +0100
++++ build/lib/lxml/tests/test_etree.py 2015-03-15 17:04:25.059318388 +0100
+@@ -1225,6 +1225,11 @@
+ root[0].attrib, {'default': 'valueB'})
+
+ def test_resolve_filename_dtd_relative(self):
++ # This test is broken as it tries to resolve a file path
++ # with the file:// path convention and will fail.
++ # So let's not waste our time here and return straight away.
++ return
++
+ parse = self.etree.parse
+ parser = self.etree.XMLParser(attribute_defaults=True)
+ assertEqual = self.assertEqual
diff --git a/dev-python/lxml/files/lxml-3.4.4-cross-compile.patch b/dev-python/lxml/files/lxml-3.4.4-cross-compile.patch
new file mode 100644
index 00000000000..7d1ed178d61
--- /dev/null
+++ b/dev-python/lxml/files/lxml-3.4.4-cross-compile.patch
@@ -0,0 +1,36 @@
+use pkg-config to find libxml2/libxslt details rather than xxx-config scripts
+
+--- a/setupinfo.py
++++ b/setupinfo.py
+@@ -87,19 +87,6 @@ def ext_modules(static_include_dirs, static_library_dirs,
+ source_extension = ".c"
+ print("Building without Cython.")
+
+- lib_versions = get_library_versions()
+- versions_ok = True
+- if lib_versions[0]:
+- print("Using build configuration of libxml2 %s and libxslt %s" %
+- lib_versions)
+- versions_ok = check_min_version(lib_versions[0], (2, 7, 0), 'libxml2')
+- else:
+- print("Using build configuration of libxslt %s" %
+- lib_versions[1])
+- versions_ok |= check_min_version(lib_versions[1], (1, 1, 23), 'libxslt')
+- if not versions_ok:
+- raise RuntimeError("Dependency missing")
+-
+ _include_dirs = include_dirs(static_include_dirs)
+ _library_dirs = library_dirs(static_library_dirs)
+ _cflags = cflags(static_cflags)
+@@ -310,8 +297,9 @@ def get_library_versions():
+
+
+ def flags(option):
+- xml2_flags = run_command(find_xml2_config(), "--%s" % option)
+- xslt_flags = run_command(find_xslt_config(), "--%s" % option)
++ pkg_config = os.environ.get('PKG_CONFIG', 'pkg-config')
++ xml2_flags = run_command(pkg_config, 'libxml-2.0', '--%s' % option)
++ xslt_flags = run_command(pkg_config, 'libxxlt', '--%s' % option)
+
+ flag_list = xml2_flags.split()
+ for flag in xslt_flags.split():
diff --git a/dev-python/lxml/lxml-3.3.5.ebuild b/dev-python/lxml/lxml-3.3.5.ebuild
new file mode 100644
index 00000000000..b0be3b77fa0
--- /dev/null
+++ b/dev-python/lxml/lxml-3.3.5.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+inherit distutils-r1 eutils flag-o-matic
+
+DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
+HOMEPAGE="http://lxml.de/ http://pypi.python.org/pypi/lxml/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD ElementTree GPL-2 PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="beautifulsoup3 doc examples +threads"
+
+# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
+RDEPEND="
+ >=dev-libs/libxml2-2.7.2
+ >=dev-libs/libxslt-1.1.15
+ beautifulsoup3? (
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]' 'python2*')
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-3[${PYTHON_USEDEP}]' 'python3*')
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+# lxml tarball contains files pregenerated by Cython.
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # avoid replacing PYTHONPATH in tests.
+ sed -i -e '/sys\.path/d' test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die
+ cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die
+ ln -s "${S}"/doc "${BUILD_DIR}"/ || die
+
+ OLDPWD=$(pwd)
+ cd "${BUILD_DIR}" || die "can't cd into ${BUILD_DIR}"
+
+ # Patching test files has to happen at this precise moment.
+ # Not before, not after but now.
+ epatch "${FILESDIR}"/lxml-3.3.x-test_etree.py.patch
+
+ cd "${OLDPWD}"
+
+ local test
+ for test in test.py selftest.py selftest2.py; do
+ einfo "Running ${test}"
+ "${PYTHON}" ${test} || die "Test ${test} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ if use doc; then
+ local DOCS=( *.txt doc/*.txt )
+ local HTML_DOCS=( doc/html/. )
+ fi
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lxml/lxml-3.4.1.ebuild b/dev-python/lxml/lxml-3.4.1.ebuild
new file mode 100644
index 00000000000..7dc44a45465
--- /dev/null
+++ b/dev-python/lxml/lxml-3.4.1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
+HOMEPAGE="http://lxml.de/ http://pypi.python.org/pypi/lxml/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD ElementTree GPL-2 PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="beautifulsoup3 doc examples +threads"
+
+# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
+RDEPEND="
+ >=dev-libs/libxml2-2.7.2
+ >=dev-libs/libxslt-1.1.23
+ beautifulsoup3? (
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]' 'python2*')
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-3[${PYTHON_USEDEP}]' 'python3*')
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+# lxml tarball contains files pregenerated by Cython.
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # avoid replacing PYTHONPATH in tests.
+ sed -i '/sys\.path/d' test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die
+ cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die
+ ln -s "${S}"/doc "${BUILD_DIR}"/ || die
+
+ local test
+ for test in test.py selftest.py selftest2.py; do
+ einfo "Running ${test}"
+ "${PYTHON}" ${test} || die "Test ${test} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ if use doc; then
+ local DOCS=( *.txt doc/*.txt )
+ local HTML_DOCS=( doc/html/. )
+ fi
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lxml/lxml-3.4.2.ebuild b/dev-python/lxml/lxml-3.4.2.ebuild
new file mode 100644
index 00000000000..3613c2984a8
--- /dev/null
+++ b/dev-python/lxml/lxml-3.4.2.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
+HOMEPAGE="http://lxml.de/ http://pypi.python.org/pypi/lxml/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD ElementTree GPL-2 PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~arm64"
+IUSE="beautifulsoup3 doc examples +threads"
+
+# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
+RDEPEND="
+ >=dev-libs/libxml2-2.7.2
+ >=dev-libs/libxslt-1.1.23
+ beautifulsoup3? (
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]' 'python2*')
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-3[${PYTHON_USEDEP}]' 'python3*')
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+# lxml tarball contains files pregenerated by Cython.
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # avoid replacing PYTHONPATH in tests.
+ sed -i '/sys\.path/d' test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die
+ cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die
+ ln -s "${S}"/doc "${BUILD_DIR}"/ || die
+
+ local test
+ for test in test.py selftest.py selftest2.py; do
+ einfo "Running ${test}"
+ "${PYTHON}" ${test} || die "Test ${test} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ if use doc; then
+ local DOCS=( *.txt doc/*.txt )
+ local HTML_DOCS=( doc/html/. )
+ fi
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lxml/lxml-3.4.3.ebuild b/dev-python/lxml/lxml-3.4.3.ebuild
new file mode 100644
index 00000000000..4f01a17ab02
--- /dev/null
+++ b/dev-python/lxml/lxml-3.4.3.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
+HOMEPAGE="http://lxml.de/ http://pypi.python.org/pypi/lxml/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD ElementTree GPL-2 PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~arm64"
+IUSE="beautifulsoup3 doc examples +threads test"
+
+# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
+RDEPEND="
+ >=dev-libs/libxml2-2.7.2
+ >=dev-libs/libxslt-1.1.23
+ beautifulsoup3? (
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]' 'python2*')
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-3[${PYTHON_USEDEP}]' 'python3*')
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/cssselect[${PYTHON_USEDEP}] )
+ "
+# lxml tarball contains files pregenerated by Cython.
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # avoid replacing PYTHONPATH in tests.
+ sed -i '/sys\.path/d' test.py || die
+
+ # seems to be broken
+ rm src/lxml/tests/test_elementpath.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die
+ cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die
+ ln -s "${S}"/doc "${BUILD_DIR}"/ || die
+
+ local test
+ for test in test.py selftest.py selftest2.py; do
+ einfo "Running ${test}"
+ "${PYTHON}" ${test} -vv -p || die "Test ${test} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ if use doc; then
+ local DOCS=( *.txt doc/*.txt )
+ local HTML_DOCS=( doc/html/. )
+ fi
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lxml/lxml-3.4.4.ebuild b/dev-python/lxml/lxml-3.4.4.ebuild
new file mode 100644
index 00000000000..f0540097307
--- /dev/null
+++ b/dev-python/lxml/lxml-3.4.4.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
+HOMEPAGE="http://lxml.de/ http://pypi.python.org/pypi/lxml/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD ElementTree GPL-2 PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~arm64"
+IUSE="beautifulsoup3 doc examples +threads test"
+
+# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
+RDEPEND="
+ >=dev-libs/libxml2-2.7.2
+ >=dev-libs/libxslt-1.1.23
+ beautifulsoup3? (
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]' 'python2*')
+ $(python_gen_cond_dep 'dev-python/beautifulsoup:python-3[${PYTHON_USEDEP}]' 'python3*')
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/cssselect[${PYTHON_USEDEP}] )
+ "
+# lxml tarball contains files pregenerated by Cython.
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/${P}-cross-compile.patch
+
+ # avoid replacing PYTHONPATH in tests.
+ sed -i '/sys\.path/d' test.py || die
+
+ # seems to be broken
+ rm src/lxml/tests/test_elementpath.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ tc-export PKG_CONFIG
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die
+ cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die
+ ln -s "${S}"/doc "${BUILD_DIR}"/ || die
+
+ local test
+ for test in test.py selftest.py selftest2.py; do
+ einfo "Running ${test}"
+ "${PYTHON}" ${test} -vv -p || die "Test ${test} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ if use doc; then
+ local DOCS=( *.txt doc/*.txt )
+ local HTML_DOCS=( doc/html/. )
+ fi
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/lxml/metadata.xml b/dev-python/lxml/metadata.xml
new file mode 100644
index 00000000000..f6f0b1f4433
--- /dev/null
+++ b/dev-python/lxml/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="beautifulsoup3">Enable support for Beautiful Soup 3</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">lxml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/lz4/Manifest b/dev-python/lz4/Manifest
new file mode 100644
index 00000000000..b88f127de41
--- /dev/null
+++ b/dev-python/lz4/Manifest
@@ -0,0 +1,2 @@
+DIST lz4-0.6.1.tar.gz 19830 SHA256 590d1dca53b743e7fc38190fa674b20eea87d793a70910984ff58a6f6cf20160 SHA512 c41f02f9ba855256e057141db7f11b0097f373cfcbf7bb9cf3b9337aebcd30bfe36ae3d643f3e5f594351f97d3e80c75b15c7ce1e3e2c7536f6daab811a642d8 WHIRLPOOL 1b7e081fe9994fe478965b9522b20146f097bdac7ff5bd491d4d05c0f8854eaff4144fe31089f8689d27b6dc3b6728bf00aa58e8ddd7bf0d4806dea52f27b736
+DIST lz4-0.7.0.tar.gz 26786 SHA256 cd225744298568fd217577fc14a326a24835412374dadb5060db48f1af43eb48 SHA512 fd7adc4919e70259e5b23b15919c4932354a4518360315a8d6c15c58cdccf21257fb6069bdf20e86a2461f254b50f4abd7296330fd77647ecc2ca49500eedd11 WHIRLPOOL 51e2200e72b3a5d222d6f9e5ec3ed14fc9f026a62943088d237a60c0b3d61f9862450aa63cfcacf2a7c5fb506025da82c34102c25bf54ad8e8fb938bfe570773
diff --git a/dev-python/lz4/lz4-0.6.1.ebuild b/dev-python/lz4/lz4-0.6.1.ebuild
new file mode 100644
index 00000000000..0359e1a6c2f
--- /dev/null
+++ b/dev-python/lz4/lz4-0.6.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="LZ4 Bindings for Python"
+HOMEPAGE="https://pypi.python.org/pypi/lz4 https://github.com/steeve/python-lz4"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ sed \
+ -e '/nose/d' \
+ -e 's:"-O4"::g' \
+ -i setup.py || die
+}
diff --git a/dev-python/lz4/lz4-0.7.0.ebuild b/dev-python/lz4/lz4-0.7.0.ebuild
new file mode 100644
index 00000000000..5e4d293b9f0
--- /dev/null
+++ b/dev-python/lz4/lz4-0.7.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="LZ4 Bindings for Python"
+HOMEPAGE="https://pypi.python.org/pypi/lz4 https://github.com/steeve/python-lz4"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# Tests still excluded by upstream
diff --git a/dev-python/lz4/metadata.xml b/dev-python/lz4/metadata.xml
new file mode 100644
index 00000000000..95bfd382804
--- /dev/null
+++ b/dev-python/lz4/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">lz4</remote-id>
+ <remote-id type="github">steeve/python-lz4</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/m2crypto/Manifest b/dev-python/m2crypto/Manifest
new file mode 100644
index 00000000000..5ceb0d41695
--- /dev/null
+++ b/dev-python/m2crypto/Manifest
@@ -0,0 +1 @@
+DIST M2Crypto-0.22.3.tar.gz 74795 SHA256 6071bfc817d94723e9b458a010d565365104f84aa73f7fe11919871f7562ff72 SHA512 c179d3cf03ced77aed24285ca3f1527d5e05bbfe091a1522bff94a940fd390213fbb9b83d7ccd43ceae49626b427ae8790782cf93ead85be1e063bc4121c62e0 WHIRLPOOL 66a9a6e7c9b195814048a1bcecf6ef71a269bebb9dbda73801c88b3ba27330b555a46d05c53bbd0778f9c1e1bb5f9c6e7e860de443bf16baffc2072ee5996e31
diff --git a/dev-python/m2crypto/files/0.22.3-Use-swig-generated-python-loader.patch b/dev-python/m2crypto/files/0.22.3-Use-swig-generated-python-loader.patch
new file mode 100644
index 00000000000..9ddd5509fdf
--- /dev/null
+++ b/dev-python/m2crypto/files/0.22.3-Use-swig-generated-python-loader.patch
@@ -0,0 +1,138 @@
+From 803188070e486030cb1d2e53692b39305c742b17 Mon Sep 17 00:00:00 2001
+From: Joe Julian <jjulian@io.com>
+Date: Tue, 19 May 2015 23:54:08 -0700
+Subject: [PATCH] Use swig generated python loader
+
+---
+ .gitignore | 6 +++++-
+ M2Crypto/__init__.py | 4 ++--
+ M2Crypto/m2.py | 4 +---
+ SWIG/_m2crypto.def | 2 +-
+ SWIG/_m2crypto.i | 2 +-
+ setup.py | 25 +++++++++++++++++++++----
+ 6 files changed, 31 insertions(+), 12 deletions(-)
+
+diff --git a/M2Crypto/__init__.py b/M2Crypto/__init__.py
+index 647e057..38dbbd5 100644
+--- a/M2Crypto/__init__.py
++++ b/M2Crypto/__init__.py
+@@ -19,7 +19,7 @@ Copyright 2008-2011 Heikki Toivonen. All rights reserved.
+ version_info = (0, 22)
+ version = '.'.join([str(_v) for _v in version_info])
+
+-import __m2crypto
++import m2crypto
+ import m2
+ import ASN1
+ import AuthCookie
+@@ -47,4 +47,4 @@ import m2xmlrpclib
+ import threading
+ import util
+
+-__m2crypto.lib_init()
++m2crypto.lib_init()
+diff --git a/M2Crypto/m2.py b/M2Crypto/m2.py
+index e4bb695..516cadb 100644
+--- a/M2Crypto/m2.py
++++ b/M2Crypto/m2.py
+@@ -25,7 +25,5 @@ Portions created by Open Source Applications Foundation (OSAF) are
+ Copyright (C) 2004 OSAF. All Rights Reserved.
+ """
+
+-from __m2crypto import *
++from m2crypto import *
+ lib_init()
+-
+-
+diff --git a/SWIG/_m2crypto.def b/SWIG/_m2crypto.def
+index 753db2c..3e9d5bc 100644
+--- a/SWIG/_m2crypto.def
++++ b/SWIG/_m2crypto.def
+@@ -1,2 +1,2 @@
+ EXPORTS
+-init__m2crypto
++init_m2crypto
+diff --git a/SWIG/_m2crypto.i b/SWIG/_m2crypto.i
+index 50be5c3..e491222 100644
+--- a/SWIG/_m2crypto.i
++++ b/SWIG/_m2crypto.i
+@@ -8,7 +8,7 @@
+ *
+ */
+
+-%module(threads=1) _m2crypto
++%module(threads=1) m2crypto
+ /* We really don't need threadblock (PyGILState_Ensure() etc.) anywhere.
+ Disable threadallow as well, only enable it for operations likely to
+ block. */
+diff --git a/setup.py b/setup.py
+index bac6f9f..fc89513 100644
+--- a/setup.py
++++ b/setup.py
+@@ -17,9 +17,22 @@ import os, sys, platform
+ from setuptools import setup
+ from setuptools.command import build_ext
+
++from distutils.util import get_platform
+ from distutils.core import Extension
+ from distutils.spawn import find_executable
+
++from distutils.command.build import build
++from setuptools.command.install import install
++
++class CustomBuild(build):
++ def run(self):
++ self.run_command('build_ext')
++ build.run(self)
++
++class CustomInstall(install):
++ def run(self):
++ self.run_command('build_ext')
++ self.do_egg_install()
+
+ class _M2CryptoBuildExt(build_ext.build_ext):
+ '''Specialization of build_ext to enable swig_opts to inherit any
+@@ -70,11 +83,12 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+
+ self.add_multiarch_paths()
+
+- opensslIncludeDir = os.path.join(self.openssl, 'include')
++ includeDir = os.path.join(self.openssl, 'include')
++ opensslIncludeDir = os.path.join(self.openssl, 'include', 'openssl')
+ opensslLibraryDir = os.path.join(self.openssl, 'lib')
+
+ self.swig_opts = ['-I%s' % i for i in self.include_dirs + \
+- [opensslIncludeDir, os.path.join(opensslIncludeDir, "openssl")]]
++ [opensslIncludeDir, includeDir]]
+ self.swig_opts.append('-includeall')
+ self.swig_opts.append('-modern')
+
+@@ -85,6 +99,9 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+ elif platform.architecture()[0] == '32bit':
+ self.swig_opts.append('-D__i386__')
+
++ self.swig_opts.append('-outdir')
++ self.swig_opts.append(os.path.join(os.getcwd(),'M2Crypto'))
++
+ self.include_dirs += [os.path.join(self.openssl, opensslIncludeDir),
+ os.path.join(os.getcwd(), 'SWIG')]
+
+@@ -103,7 +120,7 @@ if sys.platform == 'darwin':
+ else:
+ my_extra_compile_args = []
+
+-m2crypto = Extension(name = 'M2Crypto.__m2crypto',
++m2crypto = Extension(name = 'M2Crypto._m2crypto',
+ sources = ['SWIG/_m2crypto.i'],
+ extra_compile_args = ['-DTHREADING'] + my_extra_compile_args,
+ #extra_link_args = ['-Wl,-search_paths_first'], # Uncomment to build Universal Mac binaries
+@@ -145,5 +162,5 @@ interface.''',
+
+ ext_modules = [m2crypto],
+ test_suite='tests.alltests.suite',
+- cmdclass = {'build_ext': _M2CryptoBuildExt}
++ cmdclass = {'build': CustomBuild, 'install': CustomInstall, 'build_ext': _M2CryptoBuildExt}
+ )
+--
+2.4.1
+
diff --git a/dev-python/m2crypto/files/0.22.3-packaging.patch b/dev-python/m2crypto/files/0.22.3-packaging.patch
new file mode 100644
index 00000000000..26952a4e78e
--- /dev/null
+++ b/dev-python/m2crypto/files/0.22.3-packaging.patch
@@ -0,0 +1,69 @@
+From 0f2c82f097cf6d3722b7793fe1159160f3f52725 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Mon, 25 May 2015 12:08:47 -0400
+Subject: [PATCH] Gentoo-specific packaging fixes
+
+Fix cross-compiles
+EPREFIX support
+---
+ setup.py | 20 ++++----------------
+ 1 file changed, 4 insertions(+), 16 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index fc89513..8360e7e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -32,7 +32,7 @@ class CustomBuild(build):
+ class CustomInstall(install):
+ def run(self):
+ self.run_command('build_ext')
+- self.do_egg_install()
++ install.run(self)
+
+ class _M2CryptoBuildExt(build_ext.build_ext):
+ '''Specialization of build_ext to enable swig_opts to inherit any
+@@ -81,29 +81,19 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+
+ build_ext.build_ext.finalize_options(self)
+
+- self.add_multiarch_paths()
+-
+ includeDir = os.path.join(self.openssl, 'include')
+ opensslIncludeDir = os.path.join(self.openssl, 'include', 'openssl')
+ opensslLibraryDir = os.path.join(self.openssl, 'lib')
+
+- self.swig_opts = ['-I%s' % i for i in self.include_dirs + \
+- [opensslIncludeDir, includeDir]]
++ eprefix = os.getenv('EPREFIX', '')
++ self.swig_opts = ['-I' + eprefix + '/usr/include']
+ self.swig_opts.append('-includeall')
+ self.swig_opts.append('-modern')
+
+- # Fedora does hat tricks.
+- if platform.linux_distribution()[0] in ['Fedora', 'CentOS']:
+- if platform.architecture()[0] == '64bit':
+- self.swig_opts.append('-D__x86_64__')
+- elif platform.architecture()[0] == '32bit':
+- self.swig_opts.append('-D__i386__')
+-
+ self.swig_opts.append('-outdir')
+ self.swig_opts.append(os.path.join(os.getcwd(),'M2Crypto'))
+
+- self.include_dirs += [os.path.join(self.openssl, opensslIncludeDir),
+- os.path.join(os.getcwd(), 'SWIG')]
++ self.include_dirs += [os.path.join(os.getcwd(), 'SWIG')]
+
+ if sys.platform == 'cygwin':
+ # Cygwin SHOULD work (there's code in distutils), but
+@@ -113,8 +103,6 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+ # Someday distutils will be fixed and this won't be needed.
+ self.library_dirs += [os.path.join(self.openssl, 'bin')]
+
+- self.library_dirs += [os.path.join(self.openssl, opensslLibraryDir)]
+-
+ if sys.platform == 'darwin':
+ my_extra_compile_args = ["-Wno-deprecated-declarations"]
+ else:
+--
+2.4.1
+
diff --git a/dev-python/m2crypto/m2crypto-0.22.3-r4.ebuild b/dev-python/m2crypto/m2crypto-0.22.3-r4.ebuild
new file mode 100644
index 00000000000..edb855f4c05
--- /dev/null
+++ b/dev-python/m2crypto/m2crypto-0.22.3-r4.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+MY_PN="M2Crypto"
+
+DESCRIPTION="M2Crypto: A Python crypto and SSL toolkit"
+HOMEPAGE="https://github.com/martinpaljak/M2Crypto http://pypi.python.org/pypi/M2Crypto"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-libs/openssl-0.9.8:0="
+DEPEND="${RDEPEND}
+ >=dev-lang/swig-1.3.28:0
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# Tests access network, and fail randomly. Bug #431458.
+RESTRICT=test
+
+PATCHES=(
+ "${FILESDIR}"/0.22.3-Use-swig-generated-python-loader.patch
+ "${FILESDIR}"/0.22.3-packaging.patch
+)
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/m2crypto/metadata.xml b/dev-python/m2crypto/metadata.xml
new file mode 100644
index 00000000000..63966d0bad9
--- /dev/null
+++ b/dev-python/m2crypto/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">M2Crypto</remote-id>
+ <remote-id type="github">martinpaljak/M2Crypto</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/m2secret/Manifest b/dev-python/m2secret/Manifest
new file mode 100644
index 00000000000..864fe057381
--- /dev/null
+++ b/dev-python/m2secret/Manifest
@@ -0,0 +1 @@
+DIST m2secret-0.1.1.tar.gz 5032 SHA256 4174f4967b378d751e758894d6c394db506c4f8753d1db66494320c31667d8a0 SHA512 8fd66fdf9f255eedaeaeb514dc3af812358cdac2744cccfe65bfd0d85258c2b3ec851fd1972d1cd5604becfb8e54cd2b933bd9c0fb53e7317b03d7f09a8f16b7 WHIRLPOOL df3c4469a6c6c504d07fa1017c3277c4f3b36a810d4f014a1771cbfedc5fb9ae2b18579bc2175b48a22262f9cb3b73710fceb52d63e3d9a255794178ed766997
diff --git a/dev-python/m2secret/m2secret-0.1.1-r1.ebuild b/dev-python/m2secret/m2secret-0.1.1-r1.ebuild
new file mode 100644
index 00000000000..11b13f21c42
--- /dev/null
+++ b/dev-python/m2secret/m2secret-0.1.1-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Encryption and decryption module and CLI utility"
+HOMEPAGE="http://www.heikkitoivonen.net/m2secret http://pypi.python.org/pypi/m2secret"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ >=dev-python/m2crypto-0.18[${PYTHON_USEDEP}]"
diff --git a/dev-python/m2secret/metadata.xml b/dev-python/m2secret/metadata.xml
new file mode 100644
index 00000000000..905c86f17a6
--- /dev/null
+++ b/dev-python/m2secret/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">m2secret</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/maintboot/Manifest b/dev-python/maintboot/Manifest
new file mode 100644
index 00000000000..eb42a0915fd
--- /dev/null
+++ b/dev-python/maintboot/Manifest
@@ -0,0 +1 @@
+DIST maintboot-0.1.0.tar.gz 2090 SHA256 4a1f09ab8e6e7222eebd9ade69a32e4d76d3099a36fcdbc3fc0dcbc29e1c2d51 SHA512 dc63c59718a3c66a2128f36ad495c42d94bba08d6b16c40f470b0a0cc00388b5ec5977326ac258c858113e4d6c3f1ff246c5a1dfbd3d417aea181d381d7ae28f WHIRLPOOL d78786a8b1b0538764dfa2e9b1eac0ee3482be3a04d1a6705a26e465268b61cc8f5f6e4cf1d82ee3680ba26c9135197b63340afb9fee633dcdfbc82991670771
diff --git a/dev-python/maintboot/maintboot-0.1.0.ebuild b/dev-python/maintboot/maintboot-0.1.0.ebuild
new file mode 100644
index 00000000000..52aa68c7135
--- /dev/null
+++ b/dev-python/maintboot/maintboot-0.1.0.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Run maintenance tasks outside the OS"
+HOMEPAGE="https://pypi.python.org/pypi/maintboot"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/maintboot/metadata.xml b/dev-python/maintboot/metadata.xml
new file mode 100644
index 00000000000..8dbffb6acd5
--- /dev/null
+++ b/dev-python/maintboot/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">maintboot</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mako/Manifest b/dev-python/mako/Manifest
new file mode 100644
index 00000000000..5553b56b85e
--- /dev/null
+++ b/dev-python/mako/Manifest
@@ -0,0 +1,2 @@
+DIST Mako-0.7.3.tar.gz 401787 SHA256 5e1d17fbd1aed57ebeea74ee3809015b121e142d73069066a113a125a4ec2ef5 SHA512 3134a05fcacb5d8e41ebab3bedb6c1a31eec94afb56f2c8319fee4b749930fcc7df5ed86e0de26cafbaea966b920921e29788f1c6ba5810eedb4d98f322085f9 WHIRLPOOL 8d3011b472a4bd04c4ef0ddad4767357bd1c570228702e900c956582c2e1e7e668765a34e4e450e18b8a1e0562d9b024ee1ae8b82efc891023154cf442f16d8a
+DIST Mako-1.0.0.tar.gz 470006 SHA256 a3cd72cfef507204b50f74ffcbfcfde7e856437891d3f6cfe780866986d006fe SHA512 81a6b7637e26d561350a591e3490e7140db218ae7f6b43fec8fca5b767fc6e57d0e8cc901d28fecb9863b2170c824a35c578a94579f991359fa0873f62ec578a WHIRLPOOL aa27b63e3832f03120312fbfec939b05606081e67a5cb4c9a056c27259631c2e159cf7506292d44e2c17c5950d7e4255d19f4beba78502bdbb52fbf11e1a872c
diff --git a/dev-python/mako/files/test-fix.patch b/dev-python/mako/files/test-fix.patch
new file mode 100644
index 00000000000..3792e3e30f5
--- /dev/null
+++ b/dev-python/mako/files/test-fix.patch
@@ -0,0 +1,11 @@
+diff -ur Mako-0.7.0.orig/test/test_template.py Mako-0.7.0/test/test_template.py
+--- test/test_template.py 2012-03-31 07:52:02.000000000 +0800
++++ test/test_template.py 2012-04-11 20:25:23.797168875 +0800
+@@ -1,5 +1,5 @@
+ # -*- coding: utf-8 -*-
+-
++from __future__ import with_statement
+ from mako.template import Template, ModuleTemplate
+ from mako.lookup import TemplateLookup
+ from mako.ext.preprocessors import convert_comments
+
diff --git a/dev-python/mako/mako-0.7.3-r1.ebuild b/dev-python/mako/mako-0.7.3-r1.ebuild
new file mode 100644
index 00000000000..c5f43678147
--- /dev/null
+++ b/dev-python/mako/mako-0.7.3-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="Mako-${PV}"
+
+DESCRIPTION="A Python templating language"
+HOMEPAGE="http://www.makotemplates.org/ http://pypi.python.org/pypi/Mako"
+SRC_URI="http://www.makotemplates.org/downloads/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ~ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/beaker-1.1[${PYTHON_USEDEP}]
+ >=dev-python/markupsafe-0.9.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/test-fix.patch"
+)
+
+python_test() {
+ cp -r -l test "${BUILD_DIR}"/ || die
+
+ if [[ ${EPYTHON} == python3.* ]]; then
+ # Notes:
+ # -W is not supported by python3.1
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w "${BUILD_DIR}"/test || die
+ fi
+
+ cd "${BUILD_DIR}"/test || die
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ rm -rf doc/build
+
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mako/mako-0.7.3-r2.ebuild b/dev-python/mako/mako-0.7.3-r2.ebuild
new file mode 100644
index 00000000000..f0ccf6fb51a
--- /dev/null
+++ b/dev-python/mako/mako-0.7.3-r2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit readme.gentoo versionator distutils-r1
+
+MY_P="Mako-${PV}"
+
+DESCRIPTION="A Python templating language"
+HOMEPAGE="http://www.makotemplates.org/ http://pypi.python.org/pypi/Mako"
+SRC_URI="http://www.makotemplates.org/downloads/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ia64 ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/markupsafe-0.9.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7) )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/test-fix.patch"
+)
+
+DOC_CONTENTS="
+${PN} can be enchanced with caching by dev-python/beaker"
+
+python_test() {
+ cp -r -l test "${BUILD_DIR}"/ || die
+
+ if [[ ${EPYTHON} == python3.* ]]; then
+ # Notes:
+ # -W is not supported by python3.1
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w "${BUILD_DIR}"/test || die
+ fi
+
+ cd "${BUILD_DIR}"/test || die
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ rm -rf doc/build
+
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ for v in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 0.7.3-r2 $v; then
+ ewarn "dev-python/beaker is no longer hard dependency of ${P}"
+ ewarn "If you rely on it, you should add beaker to your world"
+ ewarn "file:"
+ ewarn "# emerge --noreplace beaker"
+ break
+ fi
+ done
+}
diff --git a/dev-python/mako/mako-1.0.0.ebuild b/dev-python/mako/mako-1.0.0.ebuild
new file mode 100644
index 00000000000..266b64d5d7a
--- /dev/null
+++ b/dev-python/mako/mako-1.0.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit readme.gentoo versionator distutils-r1
+
+MY_PN="Mako"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A Python templating language"
+HOMEPAGE="http://www.makotemplates.org/ http://pypi.python.org/pypi/Mako"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/markupsafe-0.9.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7) )"
+
+S="${WORKDIR}/${MY_P}"
+
+DOC_CONTENTS="
+${PN} can be enhanced with caching by dev-python/beaker"
+
+python_test() {
+ nosetests "${S}"/test || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ rm -rf doc/build
+
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ for v in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 0.7.3-r2 $v; then
+ ewarn "dev-python/beaker is no longer hard dependency of ${P}"
+ ewarn "If you rely on it, you should add beaker to your world"
+ ewarn "file:"
+ ewarn "# emerge --noreplace beaker"
+ break
+ fi
+ done
+}
diff --git a/dev-python/mako/metadata.xml b/dev-python/mako/metadata.xml
new file mode 100644
index 00000000000..baf06ef2b08
--- /dev/null
+++ b/dev-python/mako/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mako</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mamba/Manifest b/dev-python/mamba/Manifest
new file mode 100644
index 00000000000..02d18f667f6
--- /dev/null
+++ b/dev-python/mamba/Manifest
@@ -0,0 +1,4 @@
+DIST mamba-0.6.tar.gz 12548 SHA256 94169b12141ba57bbcbc5a5fac810631102558450057e1b66b0631d521034b67 SHA512 1d29c90cb45d2a6881d3524517151b88c80acabeaecff42efa9c94a8257e726c4b53cc40aba0643e95ef4af7d2895cf49b6619df06e933aab88157105c98a8cb WHIRLPOOL 489769b4f4ae368d0fa9ce918b629ab661765e8e85f4de1fe609e6f85e19304ec2c3c41a278b47d205fbd42d44b625f8b16b09a223282031f0f317d622aa2481
+DIST mamba-0.8.2.tar.gz 13379 SHA256 4ece61321a90b904e8f2859f4966d3fd61b4161137e73d4a3f8015b6f1d944fd SHA512 3b8e824b5c84106462242404716a4b36c678878301a924c4118accedd1b6883e1102c3bc61ac200c78f64c3b6a6890ba0f5529c3cd4d6a2743189174aa2fd907 WHIRLPOOL 6a60c866c84140c82a57eec2341262fe9c8a3be900c4d8fecc3113c776b197ef9df378c73ef9c0e915ecf23f2ba31ec01c6e606cec30d7dcc0f9d7af6bc110a8
+DIST mamba-0.8.4.tar.gz 14781 SHA256 2fc3eb17a1d051438ca844ad9086f6ad8d27d7a262153cb9e740416b01b7d46d SHA512 31a58a6ee43500b6e059598ff45ffb0e89e385a10fc47a41222cce2a2fee3987bd84dc4484151d46a7062244437973afaddc2c74aa7df21c0e175a33ce8a630c WHIRLPOOL dc26692c8e46ab1f2226099b051fd1236fc7006b0f3ce93f70cca4a685c209e71de256ae6ed21695df9ccb299bf2edc1f9975c2f98ee906e8067ab3a9ccb2383
+DIST mamba-0.8.tar.gz 13192 SHA256 7e6488e41acecc08c8d729c18ef881a94119f575b1c7d365cc4ea3c3442aca63 SHA512 ac1c9342829d949bfbe99caa42403734a9965c6070fd95a7e427f7e2592c122d86eacd19b4c1ae566e7c3035a27a6c7e43ce0fb98d1a9b5c126ed75f1de314bc WHIRLPOOL 2d3b2895bbe4a6dd7e51d327e4e22a58874c4654ad52e589467c4f0eeda332855c1968d12fcfc32cdf28c8a9718fe3892b01b079b0efccc7efadd8e4a57d2ab7
diff --git a/dev-python/mamba/mamba-0.6.ebuild b/dev-python/mamba/mamba-0.6.ebuild
new file mode 100644
index 00000000000..bb85f66ee45
--- /dev/null
+++ b/dev-python/mamba/mamba-0.6.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1 vcs-snapshot
+
+EGIT_REPO_URI="https://github.com/nestorsalceda/mamba.git"
+
+DESCRIPTION="The definitive testing tool for Python. Born under the banner of Behavior Driven Development"
+HOMEPAGE="http://nestorsalceda.github.io/mamba"
+SRC_URI="https://github.com/nestorsalceda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ test? (
+ >=dev-python/sure-1.2.1[${PYTHON_USEDEP}]
+ >=dev-python/doublex-1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyhamcrest-1.8.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ~dev-python/clint-0.3.1[${PYTHON_USEDEP}]
+ ~dev-python/coverage-3.7[${PYTHON_USEDEP}]
+ >=dev-python/watchdog-0.6.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ ebegin 'patching requirements.txt'
+ sed \
+ -e '3s/==/>=/' \
+ -i requirements.txt
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -f "${HOME}"/.pydistutils.cfg || die "Couldn't remove pydistutils.cfg"
+
+ distutils_install_for_testing
+
+ "${TEST_DIR}"/scripts/mamba || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/mamba/mamba-0.8.2.ebuild b/dev-python/mamba/mamba-0.8.2.ebuild
new file mode 100644
index 00000000000..0721779ad93
--- /dev/null
+++ b/dev-python/mamba/mamba-0.8.2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="The definitive testing tool for Python. Born under the banner of Behavior Driven Development"
+HOMEPAGE="http://nestorsalceda.github.io/mamba"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/expects-0.4.2[${PYTHON_USEDEP}]
+ <dev-python/expects-0.5[${PYTHON_USEDEP}]
+ >=dev-python/doublex-expects-0.4[${PYTHON_USEDEP}]
+ <dev-python/doublex-expects-0.5[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ~dev-python/clint-0.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.7[${PYTHON_USEDEP}]
+ ~dev-python/watchdog-0.8.1[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ ebegin 'patching requirements.txt'
+ sed \
+ -e '2s/==/>=/' \
+ -i requirements.txt
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -f "${HOME}"/.pydistutils.cfg || die "Couldn't remove pydistutils.cfg"
+
+ distutils_install_for_testing
+
+ "${TEST_DIR}"/scripts/mamba || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/mamba/mamba-0.8.4.ebuild b/dev-python/mamba/mamba-0.8.4.ebuild
new file mode 100644
index 00000000000..72dd8a4455a
--- /dev/null
+++ b/dev-python/mamba/mamba-0.8.4.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="The definitive testing tool for Python. Born under the banner of Behavior Driven Development"
+HOMEPAGE="http://nestorsalceda.github.io/mamba"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/doublex-expects-0.4[${PYTHON_USEDEP}]
+ <dev-python/doublex-expects-0.5[${PYTHON_USEDEP}]
+ >=dev-python/expects-0.4.2[${PYTHON_USEDEP}]
+ <dev-python/expects-0.5[${PYTHON_USEDEP}]
+ ~dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ~dev-python/clint-0.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.7[${PYTHON_USEDEP}]
+ ~dev-python/watchdog-0.8.1[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ ebegin 'patching requirements.txt'
+ sed \
+ -e '2s/==/>=/' \
+ -i requirements.txt
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -f "${HOME}"/.pydistutils.cfg || die "Couldn't remove pydistutils.cfg"
+
+ distutils_install_for_testing
+
+ "${TEST_DIR}"/scripts/mamba || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/mamba/mamba-0.8.ebuild b/dev-python/mamba/mamba-0.8.ebuild
new file mode 100644
index 00000000000..67dee3e6867
--- /dev/null
+++ b/dev-python/mamba/mamba-0.8.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="The definitive testing tool for Python. Born under the banner of Behavior Driven Development"
+HOMEPAGE="http://nestorsalceda.github.io/mamba"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ~dev-python/expects-0.2.1[${PYTHON_USEDEP}]
+ ~dev-python/doublex-1.8.1[${PYTHON_USEDEP}]
+ >=dev-python/pyhamcrest-1.8.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ~dev-python/clint-0.3.1[${PYTHON_USEDEP}]
+ ~dev-python/coverage-3.7[${PYTHON_USEDEP}]
+ >=dev-python/watchdog-0.6.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ ebegin 'patching requirements.txt'
+ sed \
+ -e '3s/==/>=/' \
+ -i requirements.txt
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -f "${HOME}"/.pydistutils.cfg || die "Couldn't remove pydistutils.cfg"
+
+ distutils_install_for_testing
+
+ "${TEST_DIR}"/scripts/mamba || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/mamba/metadata.xml b/dev-python/mamba/metadata.xml
new file mode 100644
index 00000000000..308165e7101
--- /dev/null
+++ b/dev-python/mamba/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">mamba</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mando/Manifest b/dev-python/mando/Manifest
new file mode 100644
index 00000000000..46f86b9b5e8
--- /dev/null
+++ b/dev-python/mando/Manifest
@@ -0,0 +1 @@
+DIST mando-0.3.2.tar.gz 22393 SHA256 9aeb48af6165370bbbfd5b0b32fedb772531d7a1db35b73ab955107a2f5e2af8 SHA512 57f5041ad175c4eca4c158d9d917dcb1f9c25978c60aa0e76322d0395b0edbc3fb7b062da7b9af871a97bbd46cfe7f81e634287f813baf15ef134be53150bd11 WHIRLPOOL 7c5ef43092ed81e427df5109b0c6706070a57eb1ea99608b19738b5ab20f685b09812e90babb97bc3b8cab6571e573d4a5374f931bc90e8ebb8c15753f603ff0
diff --git a/dev-python/mando/mando-0.3.2.ebuild b/dev-python/mando/mando-0.3.2.ebuild
new file mode 100644
index 00000000000..de590fec5f8
--- /dev/null
+++ b/dev-python/mando/mando-0.3.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Create Python CLI apps with little to no effort at all!"
+HOMEPAGE="https://mando.readthedocs.org/"
+SRC_URI="https://github.com/rubik/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/paramunittest[${PYTHON_USEDEP}] )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" mando/tests/run.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mando/metadata.xml b/dev-python/mando/metadata.xml
new file mode 100644
index 00000000000..b18ed6c63ab
--- /dev/null
+++ b/dev-python/mando/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">rubik/mando</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mantissa/Manifest b/dev-python/mantissa/Manifest
new file mode 100644
index 00000000000..d3147080028
--- /dev/null
+++ b/dev-python/mantissa/Manifest
@@ -0,0 +1,3 @@
+DIST Mantissa-0.7.0.tar.gz 827087 SHA256 30bc3bb452810561e81e84bb73be00287d32c17fcdf4f0da837a63cbba7e7fa7 SHA512 a0ef58902d0d752f2643f0c9639d9338a0441651cc0a2c3b45493a79b81757c4b642a7adcc940e0228033280927b7dad460a345fac62da1dcb9d73babd981d8c WHIRLPOOL 283b02ebea0c7a0d6dd6a7345b473a9f9d0ab3f955c5424ed6090cf50d63f3df2a68b6ab07efe459828a75dc841e5e540a66313e9428bb8e88fb3a96762b6576
+DIST mantissa-0.8.0.tar.gz 828094 SHA256 bcc3908dfe9e8c3dd1a460b2194564d38521d53bcb601f12c9da0a8a936119f1 SHA512 8ca2b84c1c2715025db4a3cde4516c0a8604c8e40bda325d727ac28dbf1997ffb387439461d7b866ec77eb82ca192739355797123e55b7ad30c580b3c71dea9b WHIRLPOOL e4f8858940e87ef0ebbfda522e97da19024dcac18ad59a8d6bac7486aacf05ae728903e8330a845d3a9bc502f3455bb47fe1e6c742d2e09a78621e789c9b680a
+DIST mantissa-0.8.1.tar.gz 808299 SHA256 e0c536a257dad3ee231cc4e1c60bd170d2f2b54dd43cd54a57033d019755ffe3 SHA512 6c5896a0b6d07d0b3c836fcc961240625cca4fe037dd7cb0f105357762a5a5b0288438c39b0aa0521dd7b29a37bde49a739273d82f53c900692d0ea9a8e3db86 WHIRLPOOL 2c4f3c1fcd924afc929e42b74a6e54e6663a4ac82a43e2a3dfdafe2f4ecf6cbd08be96d7e012d3d4410770b0d231c75547ca69731b30e51d1ffde63ac1faa615
diff --git a/dev-python/mantissa/mantissa-0.7.0-r1.ebuild b/dev-python/mantissa/mantissa-0.7.0-r1.ebuild
new file mode 100644
index 00000000000..cece32ac0ce
--- /dev/null
+++ b/dev-python/mantissa/mantissa-0.7.0-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="An extensible, multi-protocol, multi-user, interactive application server"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodMantissa http://pypi.python.org/pypi/Mantissa"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=">=dev-python/axiom-0.6.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/cssutils-0.9.10-r1[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ >=dev-python/nevow-0.10.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2012j[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/twisted-mail[${PYTHON_USEDEP}]
+ >=dev-python/vertex-0.3.0-r1[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+TWISTED_PLUGINS=( axiom.plugins nevow.plugins xmantissa.plugins )
+
+python_install() {
+ distutils-r1_python_install
+
+ # remove foreign caches we don't want to own
+ find "${D}$(python_get_sitedir)" -name 'dropin.cache' -delete || die
+ # then our own one
+ touch "${D}$(python_get_sitedir)"/xmantissa/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ dodoc NAME.txt NEWS.txt
+
+ distutils-r1_python_install_all
+}
+
+python_test() {
+ trial xmantissa || die "tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/mantissa/mantissa-0.8.0.ebuild b/dev-python/mantissa/mantissa-0.8.0.ebuild
new file mode 100644
index 00000000000..98ef1ecca4a
--- /dev/null
+++ b/dev-python/mantissa/mantissa-0.8.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="${PN/m/M}"
+DESCRIPTION="An extensible, multi-protocol, multi-user, interactive application server"
+HOMEPAGE="https://github.com/twisted/mantissa"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ >=dev-python/axiom-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/cssutils-0.9.5[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ >=dev-python/nevow-0.9.5[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2012j[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-14.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-mail-14.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-conch-14.0.0[${PYTHON_USEDEP}]
+ >=dev-python/vertex-0.2[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+TWISTED_PLUGINS=( axiom.plugins nevow.plugins xmantissa.plugins )
+
+python_test() {
+ # https://github.com/twisted/mantissa/issues/27
+ einfo ""; einfo "suite currently lists 1 failure and 7 errors now known upstream";
+ einfo "A folder with required modules are absent form the source"
+ einfo "All are expected to be fixed in a next release consequent to the bug"
+ einfo "filed upstream, now expected very soon"; einfo ""
+ trial xmantissa || die "tests failed with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # remove foreign caches we don't want to own
+ find "${D}$(python_get_sitedir)" -name 'dropin.cache' -delete || die
+ # then our own one
+ touch "${D}$(python_get_sitedir)"/xmantissa/plugins/dropin.cache || die
+}
diff --git a/dev-python/mantissa/mantissa-0.8.1.ebuild b/dev-python/mantissa/mantissa-0.8.1.ebuild
new file mode 100644
index 00000000000..296f013ae23
--- /dev/null
+++ b/dev-python/mantissa/mantissa-0.8.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="${PN/m/M}"
+DESCRIPTION="An extensible, multi-protocol, multi-user, interactive application server"
+HOMEPAGE="https://github.com/twisted/mantissa"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# https://github.com/twisted/mantissa/issues/27
+# Source still missing a folder 'doc' that has required modules and
+# the fail / error rate is far higher then in 0.8.0
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ >=dev-python/axiom-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/cssutils-0.9.5[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ >=dev-python/nevow-0.9.5[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2012j[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-14.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-mail-14.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-conch-14.0.0[${PYTHON_USEDEP}]
+ >=dev-python/vertex-0.2[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+TWISTED_PLUGINS=( axiom.plugins nevow.plugins xmantissa.plugins )
+
+python_test() {
+ # https://github.com/twisted/mantissa/issues/27
+
+ trial xmantissa || die "tests failed with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # remove foreign caches we don't want to own
+ find "${D}$(python_get_sitedir)" -name 'dropin.cache' -delete || die
+ # then our own one
+ touch "${D}$(python_get_sitedir)"/xmantissa/plugins/dropin.cache || die
+}
diff --git a/dev-python/mantissa/metadata.xml b/dev-python/mantissa/metadata.xml
new file mode 100644
index 00000000000..52fe40b7484
--- /dev/null
+++ b/dev-python/mantissa/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Mantissa is an application server. It provides integration between
+ the AxiomProject object database, and the TwistedFramework, as well
+ as web user-interface utilities.</longdescription>
+ <upstream>
+ <remote-id type="pypi">Mantissa</remote-id>
+ <remote-id type="github">twisted/mantissa</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/manuel/Manifest b/dev-python/manuel/Manifest
new file mode 100644
index 00000000000..43cfad12c77
--- /dev/null
+++ b/dev-python/manuel/Manifest
@@ -0,0 +1 @@
+DIST manuel-1.7.1-20130316.tar.bz2 24910 SHA256 4b23c562c84fe771d897b1ce237ba065940ffd5a847bc23bb6ec81070e0d0824 SHA512 94dab56165b92761aa710aba057338ba3062faa375600885e9943e067726ced492493bee5d203883dad604d424f8599fab35fd605e024e2a4139fb5e1a32698e WHIRLPOOL 75909a8fb55f264198733b3b0b0344c5a8e2039e23e55daab2a3dc4aba67ab7d0226ec4197e588a3625cf38062940008ebf0ca8c72a42b8b5077e2e1c38f39dd
diff --git a/dev-python/manuel/files/manuel-1.7-rm_zope_test.patch b/dev-python/manuel/files/manuel-1.7-rm_zope_test.patch
new file mode 100644
index 00000000000..3487e5f9a9f
--- /dev/null
+++ b/dev-python/manuel/files/manuel-1.7-rm_zope_test.patch
@@ -0,0 +1,92 @@
+diff -ur manuel-1.7.1.orig/src/manuel/tests.py manuel-1.7.1/src/manuel/tests.py
+--- src/manuel/tests.py 2012-04-17 03:08:54.000000000 +0800
++++ src/manuel/tests.py 2012-05-21 20:43:20.981722893 +0800
+@@ -9,16 +9,17 @@
+ import os.path
+ import re
+ import unittest
+-import zope.testing.renormalizing
+
+ doctest = manuel.absolute_import('doctest')
+
+ here = os.path.dirname(os.path.abspath(__file__))
+
+-checker = zope.testing.renormalizing.RENormalizing([
++try:
++ checker = zope.testing.renormalizing.RENormalizing([
+ (re.compile(r"<unittest\.result\.TestResult"), '<unittest.TestResult'),
+ ])
+-
++except:
++ pass
+
+ def turtle_on_the_bottom_test():
+ """We use manuel to test itself.
+@@ -52,7 +53,6 @@
+ optionflags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
+
+ m = manuel.ignore.Manuel()
+- m += manuel.doctest.Manuel(optionflags=optionflags, checker=checker)
+ m += manuel.codeblock.Manuel()
+ m += manuel.capture.Manuel()
+ m += manuel.testcase.SectionManuel()
+@@ -66,3 +66,6 @@
+ suite,
+ doctest.DocTestSuite(),
+ ))
++
++if __name__ == '__main__':
++ unittest.TextTestRunner().run(test_suite())
+diff -ur manuel-1.7.1.orig/setup.py manuel-1.7.1/setup.py
+--- setup.py 2013-02-14 10:07:38.000000000 +0800
++++ setup.py 2013-03-15 23:21:18.834849031 +0800
+@@ -21,8 +21,6 @@
+ + open('CHANGES.txt').read()
+ )
+
+-tests_require = ['zope.testing']
+-
+ setup(
+ name='manuel',
+ version='1.7.1',
+@@ -38,10 +36,6 @@
+ 'Programming Language :: Python :: 3',
+ ],
+ license='ZPL',
+- extras_require={
+- 'tests': tests_require,
+- },
+- tests_require = tests_require,
+ test_suite = 'manuel.tests.test_suite',
+ install_requires=[
+ 'setuptools',
+diff -ur manuel-1.7.1.orig/src/manuel/index.txt manuel-1.7.1/src/manuel/index.txt
+--- src/manuel/index.txt 2012-04-17 03:08:54.000000000 +0800
++++ src/manuel/index.txt 2012-04-28 05:43:26.918993769 +0800
+@@ -166,16 +166,16 @@
+
+ .. code-block:: python
+
+- import os.path
+- import manuel.testing
++ import os.path
++ import manuel.testing
+
+- class StripDirsTestCase(manuel.testing.TestCase):
+- def shortDescription(self):
++ class StripDirsTestCase(manuel.testing.TestCase):
++ def shortDescription(self):
+ return os.path.basename(str(self))
+- suite = manuel.testing.TestSuite(
+- m, path_to_test, TestCase=StripDirsTestCase)
++ suite = manuel.testing.TestSuite(
++ m, path_to_test, TestCase=StripDirsTestCase)
+
+- >>> list(suite)[0].shortDescription()
++ list(suite)[0].shortDescription()
+ 'bugs.txt'
+
+
+
+
+
diff --git a/dev-python/manuel/manuel-1.7.1.ebuild b/dev-python/manuel/manuel-1.7.1.ebuild
new file mode 100644
index 00000000000..21f997bf718
--- /dev/null
+++ b/dev-python/manuel/manuel-1.7.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Manuel lets you build tested documentation"
+HOMEPAGE="https://github.com/benji-york/manuel/ http://pypi.python.org/pypi/manuel"
+# A snapshot was required since upstream missed out half the source
+SRC_URI="http://dev.gentoo.org/~idella4/tarballs/${P}-20130316.tar.bz2"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+# Required to run tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( CHANGES.txt )
+
+PATCHES=( "${FILESDIR}"/${PN}-1.7-rm_zope_test.patch )
+
+python_test() {
+ PYTHONPATH=src/ esetup.py test
+}
diff --git a/dev-python/manuel/metadata.xml b/dev-python/manuel/metadata.xml
new file mode 100644
index 00000000000..b811e3f692a
--- /dev/null
+++ b/dev-python/manuel/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">benji-york/manuel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/markdown/Manifest b/dev-python/markdown/Manifest
new file mode 100644
index 00000000000..43a78c80620
--- /dev/null
+++ b/dev-python/markdown/Manifest
@@ -0,0 +1,3 @@
+DIST Markdown-2.5.1.tar.gz 288970 SHA256 8f81ed12c18608a502828acb7d318f362c42f4eca97d01e93cadfc52c1e40b73 SHA512 27f0d3909d6aa1e0ae15403da1cdfafcbfd463d7a236e0ea0cf02c55efa8f863c2554d54e20b0d9f58d80502dbf333120431474f16c64883001e5a318866eeb0 WHIRLPOOL 88f76fcb744ad6b8429442de409275c655a85039475d6dab11031a141e148286cc56d7865f590b432bfcf91af4965963989dae9a68a01e6931f367f425f83420
+DIST Markdown-2.6.1.tar.gz 298074 SHA256 b5879b87e8e5c125c92ab8c8f3babce78ad4e840446eed73c5b6e2984648d2b1 SHA512 53e11c5d4feacdb8210427da65b6b09453e8c904e86b42095a80132a4b67e926ba974458769e5227bfeaddd3bba5f6bd7ca7e3385951982ec982f63989119d78 WHIRLPOOL 58b6d87354ee19aac7ad1567e10f2cdc99c1aa980d3bee2fee81a5ccb5e70f43d13750dfaf1df9a42c00f3d35664731b52bfa1246271907f5a3422281ede1cc6
+DIST Markdown-2.6.2.tar.gz 298231 SHA256 ee17d0d7dc091e645dd48302a2e21301cc68f188505c2069d8635f94554170bf SHA512 a69dabf65187f54d200f59191a149bfe2109f94ffc5d003e15c2e6333c0b5fdeebfc4136842d7be5a15bc903b7a22120a4ccba2722858194c43fd09cd8fbea16 WHIRLPOOL a3c74f150e6e140b0b0500d0694b89b8e6836adef66cd2c14a1ad5ff8d4dc202b35fae8a0c9683e53030fc80792885cd4b22c46729963a683ebbbb5101963dd7
diff --git a/dev-python/markdown/files/markdown-2.2.0-tests.patch b/dev-python/markdown/files/markdown-2.2.0-tests.patch
new file mode 100644
index 00000000000..ef05702c643
--- /dev/null
+++ b/dev-python/markdown/files/markdown-2.2.0-tests.patch
@@ -0,0 +1,80 @@
+https://github.com/waylan/Python-Markdown/issues/112
+https://github.com/waylan/Python-Markdown/commit/5b3e724fb78da73ab87fb34e4ac9d9299773cfed
+
+--- markdown/__init__.py
++++ markdown/__init__.py
+@@ -37,6 +37,7 @@
+ import codecs
+ import sys
+ import logging
++import warnings
+ import util
+ from preprocessors import build_preprocessors
+ from blockprocessors import build_block_parser
+@@ -163,10 +164,10 @@
+ if isinstance(ext, basestring):
+ ext = self.build_extension(ext, configs.get(ext, []))
+ if isinstance(ext, Extension):
+- # might raise NotImplementedError, but that's the extension author's problem
+ ext.extendMarkdown(self, globals())
+ elif ext is not None:
+- raise ValueError('Extension "%s.%s" must be of type: "markdown.Extension".' \
++ raise TypeError(
++ 'Extension "%s.%s" must be of type: "markdown.Extension"'
+ % (ext.__class__.__module__, ext.__class__.__name__))
+
+ return self
+@@ -200,19 +201,22 @@
+ module_name_old_style = '_'.join(['mdx', ext_name])
+ try: # Old style (mdx_<extension>)
+ module = __import__(module_name_old_style)
+- except ImportError:
+- logger.warn("Failed loading extension '%s' from '%s' or '%s'"
+- % (ext_name, module_name, module_name_old_style))
+- # Return None so we don't try to initiate none-existant extension
+- return None
++ except ImportError, e:
++ message = "Failed loading extension '%s' from '%s' or '%s'" \
++ % (ext_name, module_name, module_name_old_style)
++ e.args = (message,) + e.args[1:]
++ raise
+
+ # If the module is loaded successfully, we expect it to define a
+ # function called makeExtension()
+ try:
+ return module.makeExtension(configs.items())
+ except AttributeError, e:
+- logger.warn("Failed to initiate extension '%s': %s" % (ext_name, e))
+- return None
++ message = e.args[0]
++ message = "Failed to initiate extension " \
++ "'%s': %s" % (ext_name, message)
++ e.args = (message,) + e.args[1:]
++ raise
+
+ def registerExtension(self, extension):
+ """ This gets called by the extension """
+--- tests/test_apis.py
++++ tests/test_apis.py
+@@ -245,18 +245,18 @@
+
+ def testLoadExtensionFailure(self):
+ """ Test failure of an extension to load. """
+- self.assertRaises(ValueError,
++ self.assertRaises(ImportError,
+ markdown.Markdown, extensions=['non_existant_ext'])
+
+ def testLoadBadExtension(self):
+ """ Test loading of an Extension with no makeExtension function. """
+ _create_fake_extension(name='fake', has_factory_func=False)
+- self.assertRaises(ValueError, markdown.Markdown, extensions=['fake'])
++ self.assertRaises(AttributeError, markdown.Markdown, extensions=['fake'])
+
+ def testNonExtension(self):
+ """ Test loading a non Extension object as an extension. """
+ _create_fake_extension(name='fake', is_wrong_type=True)
+- self.assertRaises(ValueError, markdown.Markdown, extensions=['fake'])
++ self.assertRaises(TypeError, markdown.Markdown, extensions=['fake'])
+
+ def testBaseExtention(self):
+ """ Test that the base Extension class will raise NotImplemented. """
diff --git a/dev-python/markdown/markdown-2.5.1.ebuild b/dev-python/markdown/markdown-2.5.1.ebuild
new file mode 100644
index 00000000000..1eec1250953
--- /dev/null
+++ b/dev-python/markdown/markdown-2.5.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Markdown"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python implementation of the markdown markup language"
+HOMEPAGE="http://www.freewisdom.org/projects/python-markdown http://pypi.python.org/pypi/Markdown"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test pygments"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}] )"
+# source cites pytidylib however from testruns it appears optional
+RDEPEND="pygments? ( dev-python/pygments[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_docs
+}
+
+python_test() {
+ cp -r -l run-tests.py tests "${BUILD_DIR}"/ || die
+ pushd "${BUILD_DIR}" > /dev/null
+ "${PYTHON}" run-tests.py || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ # make use doc do a doc build
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/docs/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/markdown/markdown-2.6.1.ebuild b/dev-python/markdown/markdown-2.6.1.ebuild
new file mode 100644
index 00000000000..482fedce7ff
--- /dev/null
+++ b/dev-python/markdown/markdown-2.6.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Markdown"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python implementation of the markdown markup language"
+HOMEPAGE="http://www.freewisdom.org/projects/python-markdown http://pypi.python.org/pypi/Markdown"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test pygments"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}] )"
+# source cites pytidylib however from testruns it appears optional
+RDEPEND="pygments? ( dev-python/pygments[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_docs
+}
+
+python_test() {
+ cp -r -l run-tests.py tests "${BUILD_DIR}"/ || die
+ pushd "${BUILD_DIR}" > /dev/null
+ "${PYTHON}" run-tests.py || die "Tests fail with ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ # make use doc do a doc build
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/docs/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/markdown/markdown-2.6.2.ebuild b/dev-python/markdown/markdown-2.6.2.ebuild
new file mode 100644
index 00000000000..c66101e1544
--- /dev/null
+++ b/dev-python/markdown/markdown-2.6.2.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Markdown"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python implementation of the markdown markup language"
+HOMEPAGE="http://www.freewisdom.org/projects/python-markdown http://pypi.python.org/pypi/Markdown"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test pygments"
+
+DEPEND="
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )"
+# source cites pytidylib however from testruns it appears optional
+RDEPEND="pygments? ( dev-python/pygments[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && esetup.py build_docs
+}
+
+python_test() {
+ cp -r -l run-tests.py tests "${BUILD_DIR}"/ || die
+ cd "${BUILD_DIR}" || die
+ "${PYTHON}" run-tests.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ # make use doc do a doc build
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/docs/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/markdown/metadata.xml b/dev-python/markdown/metadata.xml
new file mode 100644
index 00000000000..46571022df6
--- /dev/null
+++ b/dev-python/markdown/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="pygments">Enable fancy pygments support</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">Markdown</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/markdown2/Manifest b/dev-python/markdown2/Manifest
new file mode 100644
index 00000000000..c4701abe248
--- /dev/null
+++ b/dev-python/markdown2/Manifest
@@ -0,0 +1,3 @@
+DIST markdown2-2.2.1.zip 138508 SHA256 1e529b016e094402ba1a632f9db77eb168cd085d7cb81309a55b33c3e72999b9 SHA512 a97fbb80c7b7b7ebc7e3048e1eecc97f3df8052db4f5e7cf38b4f8e170c102dfe732070bcfe85de0331a27af8ea9fa4be81c7b80f37f3cbd5b11acc0489f1561 WHIRLPOOL 318a97e4a91d6054d3de6479f6ea5cd93a2f56f3e5e732bed70547e7594e11ffce3cb927e34530a79ed5996caf7900959f15da66ad1d1f12a3235ead6d9d39d8
+DIST markdown2-2.2.3.zip 142502 SHA256 30a5c7e814e0011b8a60e2efefc375af0734c36ed5acf2b971d0f446588850bf SHA512 2aed0cce3ed3c1d3e52d4836d296d56a16a7652f1cf5d19cbb4a1bb800424abd2f068655f06d9c4fc00fede312710d7ed558d71864cd3090ae0703d1e74bb8a1 WHIRLPOOL 94a0f3bc41919dad042a1c8ce06858b1c9be49c6159ccb26ed608279e39b6dc223911700d5776ce7b02197c4397ee66af92e0c4de49144bf242b538cadee2919
+DIST markdown2-2.3.0.zip 145194 SHA256 c8e29ba47a0e408bb92df75d5c6361c84268c54c5320d53ffd4961c546f77f1c SHA512 48bf8e26b34c48c0c12fc0f110b09d3232ea3394db3325d50639adf5cefb603344ee97b116e09b574f7c7414ab4a8293ddc37ca6706e41baaa14e399fa467d5f WHIRLPOOL 1ca759c7f08437d98304849de2259576fbb813845dee5282a54e0a8940b2b76ba9dd31912894ac63f336f1aecaa00a566c39d87ddcc48d11daee3f981fd933a0
diff --git a/dev-python/markdown2/markdown2-2.2.1.ebuild b/dev-python/markdown2/markdown2-2.2.1.ebuild
new file mode 100644
index 00000000000..c31b424ceb1
--- /dev/null
+++ b/dev-python/markdown2/markdown2-2.2.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Markdown language reimplementation"
+SRC_URI="mirror://pypi/m/markdown2/${P}.zip"
+HOMEPAGE="http://github.com/trentm/python-markdown2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ rm -f test/tm-cases/issue52* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/markdown2/markdown2-2.2.3.ebuild b/dev-python/markdown2/markdown2-2.2.3.ebuild
new file mode 100644
index 00000000000..3c98cc58cee
--- /dev/null
+++ b/dev-python/markdown2/markdown2-2.2.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Markdown language reimplementation"
+SRC_URI="mirror://pypi/m/markdown2/${P}.zip"
+HOMEPAGE="http://github.com/trentm/python-markdown2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ rm -f test/tm-cases/issue52* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/markdown2/markdown2-2.3.0.ebuild b/dev-python/markdown2/markdown2-2.3.0.ebuild
new file mode 100644
index 00000000000..8d34b7bad44
--- /dev/null
+++ b/dev-python/markdown2/markdown2-2.3.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Markdown language reimplementation"
+SRC_URI="mirror://pypi/m/markdown2/${P}.zip"
+HOMEPAGE="http://github.com/trentm/python-markdown2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ # [issue52, knownfailure]
+ rm -f test/tm-cases/issue52* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/markdown2/metadata.xml b/dev-python/markdown2/metadata.xml
new file mode 100644
index 00000000000..6031ef0e9e7
--- /dev/null
+++ b/dev-python/markdown2/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <email/>
+ <name>Trent Mick</name>
+ </maintainer>
+ <bugs-to>http://github.com/trentm/python-markdown2/issues</bugs-to>
+ <remote-id type="pypi">markdown2</remote-id>
+ <remote-id type="github">trentm/python-markdown2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/markups/Manifest b/dev-python/markups/Manifest
new file mode 100644
index 00000000000..ee8e05c11e9
--- /dev/null
+++ b/dev-python/markups/Manifest
@@ -0,0 +1,3 @@
+DIST Markups-0.2.4.tar.gz 8827 SHA256 0aab138698035e699fad1c88bebb3fa5e90a1876bc7d8fefb3491513fe13f16b SHA512 369eda02474f723d694bc0518324afde9f5baef02719448abb420a77d58cf1543939e6d38aa1db531d4214dc4cd4c47b29d79fa7a23b33b4ae74b45ad2ec52c7 WHIRLPOOL 1118723f5b9725b68d052e2496ccee414782bd6cceaedc49f9c2918c4055145fb95d49cf962c46eb669ab7a3a8659b86ed54fa5b99f6ac91266cebc4ecf01b10
+DIST Markups-0.6.1.tar.gz 19116 SHA256 1f3d6f7b85ac9ddcb936b8b2b6fa15a42ddc9dfc22a075d83d9160b5d59f6d84 SHA512 f1354af48aadb43459e8f0c2013d283c4f6170f608c4ca4a2dd21e77c6fc2383bd6a1631efc9a8878c4a0ba59249528222ba01d1a38ed3f02c6890d42c6afdb9 WHIRLPOOL 2db23d6cb9a282eb461a6ff49b21d1e1a57b6bc970739413efe4bbffdff6bc55d076db4546f0ff458c9cd8b66c389daa21e9cad7341d614109891c9a2b46acc2
+DIST Markups-0.6.3.tar.gz 19285 SHA256 e3ff5de2be018240c526e017972b37181cb3d5dfb7c96ad14eae6639140f58ef SHA512 61b3921595628f577d335c9eb7e405435c1547a6d5d06396e4181a0f3ac0bce8f5a72b5c51568ceeec96c86524ec4baa1cbcb807f545a630a87d807b9e12c97b WHIRLPOOL 9aad9486e57831fbca7124cb06dc84fd69df3036d7f08e8168b9969e83b58a32250cb82c90b70344f60d30c03fb3c7171f698fb8ba6ea23f5c296bb6d8b80ba2
diff --git a/dev-python/markups/markups-0.2.4-r1.ebuild b/dev-python/markups/markups-0.2.4-r1.ebuild
new file mode 100644
index 00000000000..f2140c478e7
--- /dev/null
+++ b/dev-python/markups/markups-0.2.4-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Markups"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A wrapper around various text markups"
+HOMEPAGE="http://pypi.python.org/pypi/Markups"
+SRC_URI="mirror://pypi/M/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+S="${WORKDIR}"/${MY_P}
+
+DEPEND="dev-python/markdown[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ pushd tests > /dev/null
+ for test in test_*.py ; do
+ local testName="$(echo ${test} | sed 's/test_\(.*\).py/\1/g')"
+ einfo "Running test '${testName}' with '${EPYTHON}'."
+ ${EPYTHON} ${test} || die "Test '${testName}' with '${EPYTHON}' failed."
+ done
+ popd tests > /dev/null
+}
diff --git a/dev-python/markups/markups-0.6.1.ebuild b/dev-python/markups/markups-0.6.1.ebuild
new file mode 100644
index 00000000000..703b6cfcc32
--- /dev/null
+++ b/dev-python/markups/markups-0.6.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Markups"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A wrapper around various text markups"
+HOMEPAGE="http://pypi.python.org/pypi/Markups"
+SRC_URI="mirror://pypi/M/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}"/${MY_P}
+
+DEPEND="dev-python/markdown[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ pushd tests > /dev/null
+ for test in test_*.py ; do
+ local testName="$(echo ${test} | sed 's/test_\(.*\).py/\1/g')"
+ if [[ ${testName} == "web" ]]; then
+ $(python_is_python3) || continue
+ fi
+ einfo "Running test '${testName}' with '${EPYTHON}'."
+ ${EPYTHON} ${test} || die "Test '${testName}' with '${EPYTHON}' failed."
+ done
+ popd tests > /dev/null
+}
diff --git a/dev-python/markups/markups-0.6.3.ebuild b/dev-python/markups/markups-0.6.3.ebuild
new file mode 100644
index 00000000000..703b6cfcc32
--- /dev/null
+++ b/dev-python/markups/markups-0.6.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Markups"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A wrapper around various text markups"
+HOMEPAGE="http://pypi.python.org/pypi/Markups"
+SRC_URI="mirror://pypi/M/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}"/${MY_P}
+
+DEPEND="dev-python/markdown[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ pushd tests > /dev/null
+ for test in test_*.py ; do
+ local testName="$(echo ${test} | sed 's/test_\(.*\).py/\1/g')"
+ if [[ ${testName} == "web" ]]; then
+ $(python_is_python3) || continue
+ fi
+ einfo "Running test '${testName}' with '${EPYTHON}'."
+ ${EPYTHON} ${test} || die "Test '${testName}' with '${EPYTHON}' failed."
+ done
+ popd tests > /dev/null
+}
diff --git a/dev-python/markups/metadata.xml b/dev-python/markups/metadata.xml
new file mode 100644
index 00000000000..b871cab5280
--- /dev/null
+++ b/dev-python/markups/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Markups</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/markupsafe/Manifest b/dev-python/markupsafe/Manifest
new file mode 100644
index 00000000000..2107fc47133
--- /dev/null
+++ b/dev-python/markupsafe/Manifest
@@ -0,0 +1 @@
+DIST MarkupSafe-0.23.tar.gz 13416 SHA256 a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3 SHA512 4f1fd91ced5e7119584b56cf7b69cfe6fdd9613bd77412368a38e9ef5d1011ba5c76d1d3a0da3d60f9f474627e6c8c8b613a80a668b32d212f09072f8b1f5b28 WHIRLPOOL 8104a8a795ed2e6b63a126fcbe2c8361ba21f9fee10e00f2b80aeafc55ea52daaf03b849d0ddbcbe5c244dbfef744c6e30f0c4681bc9108e2791afd438fba8d1
diff --git a/dev-python/markupsafe/markupsafe-0.23.ebuild b/dev-python/markupsafe/markupsafe-0.23.ebuild
new file mode 100644
index 00000000000..468296b3115
--- /dev/null
+++ b/dev-python/markupsafe/markupsafe-0.23.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3)
+inherit distutils-r1
+
+MY_PN="MarkupSafe"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Implements a XML/HTML/XHTML Markup safe string for Python"
+HOMEPAGE="http://pypi.python.org/pypi/MarkupSafe"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile() {
+ distutils-r1_python_compile
+ if [[ ${EPYTHON} == python3.2 ]]; then
+ 2to3 --no-diffs -n -w -f unicode ${PN} || die
+ fi
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/markupsafe/metadata.xml b/dev-python/markupsafe/metadata.xml
new file mode 100644
index 00000000000..5eb521f7c15
--- /dev/null
+++ b/dev-python/markupsafe/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">MarkupSafe</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
new file mode 100644
index 00000000000..a73396a8867
--- /dev/null
+++ b/dev-python/matplotlib/Manifest
@@ -0,0 +1,2 @@
+DIST matplotlib-1.4.2.tar.gz 50139344 SHA256 17a3c7154f152d8dfed1f37517c0a8c5db6ade4f6334f684989c36dab84ddb54 SHA512 3525f4e6414042fabf8d18ce9041d61197465dc07c766730c187a512277907ba33f56d49d5a468d82f65bce57217e8eb48ecfa143e55152a15607b79a7b25adc WHIRLPOOL ce6e5a15676b939bda7ad1be0f27766314f60ed44ebfba1e73d2c3d00a31d5492722cde73f943de72da038772519068602e60c830af9ffdf52710a24ce98fe7a
+DIST matplotlib-1.4.3.tar.gz 49933525 SHA256 5b9544472d9d6ab3d47423bdb5a0e64fdf913e505c1c083f25283dd0362bc0b6 SHA512 51b0f58b2618b47b653e17e4f6b6a1215d3a3b0f1331ce3555cc7435e365d9c75693f289ce12fe3bf8f69fd57b663e545f0f1c2c94e81eaa661cac0689e125f5 WHIRLPOOL 160ca48ecb44db58f1c56bd6e89592c5d1badd8e434fc25d32aa6d4d7a346ae7c7444d1c8e0c2ca2bf5c3246fd56cd93856ec7b1e3e51f5e471b9b55a0f2c1ad
diff --git a/dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-agg.patch b/dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-agg.patch
new file mode 100644
index 00000000000..d5a4ae39bad
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-agg.patch
@@ -0,0 +1,26 @@
+--- setupext.py.orig 2013-08-02 09:39:43.914247832 +0200
++++ setupext.py 2013-08-02 09:40:14.785304342 +0200
+@@ -749,22 +749,7 @@
+ return str(e) + ' Using local copy.'
+
+ def add_flags(self, ext):
+- if self.found_external:
+- pkg_config.setup_extension(ext, 'libagg')
+- else:
+- ext.include_dirs.append('agg24/include')
+- agg_sources = [
+- 'agg_bezier_arc.cpp',
+- 'agg_curves.cpp',
+- 'agg_image_filters.cpp',
+- 'agg_trans_affine.cpp',
+- 'agg_vcgen_contour.cpp',
+- 'agg_vcgen_dash.cpp',
+- 'agg_vcgen_stroke.cpp',
+- 'agg_vpgen_segmentator.cpp'
+- ]
+- ext.sources.extend(
+- os.path.join('agg24', 'src', x) for x in agg_sources)
++ pkg_config.setup_extension(ext, 'libagg', default_include_dirs=["/usr/include/agg2"])
+
+
+ class FreeType(SetupPackage):
diff --git a/dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-pycxx.patch b/dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-pycxx.patch
new file mode 100644
index 00000000000..c27922eb11d
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-1.3.1-unbundle-pycxx.patch
@@ -0,0 +1,22 @@
+diff --git a/setupext.py b/setupext.py
+index 7b629b6..8131bb1 100644
+--- a/setupext.py
++++ b/setupext.py
+@@ -674,16 +674,9 @@ class CXX(SetupPackage):
+ name = 'pycxx'
+
+ def check(self):
+- if sys.version_info[0] >= 3:
+- # There is no version of PyCXX in the wild that will work
+- # with Python 3.x
+- self.__class__.found_external = False
+- return ("Official versions of PyCXX are not compatible with "
+- "Python 3.x. Using local copy")
+-
+ self.__class__.found_external = True
+ old_stdout = sys.stdout
+- sys.stdout = io.BytesIO()
++ #sys.stdout = io.BytesIO()
+ try:
+ import CXX
+ except ImportError:
diff --git a/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-1.patch b/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-1.patch
new file mode 100644
index 00000000000..06573144131
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-1.patch
@@ -0,0 +1,50 @@
+https://github.com/matplotlib/matplotlib/pull/4430
+
+From 08d26a80859023963bc2ffb41a0b6aed942685a9 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Fri, 15 May 2015 03:36:45 -0400
+Subject: [PATCH 1/3] setupext: respect $PKG_CONFIG
+
+When cross-compiling, it is common to set the PKG_CONFIG env var to a
+custom pkg-config that knows about the target. Make sure we respect
+that just like the standard pkg-config tools suggest (pkg.m4). If it
+isn't set, we use the same default as today -- "pkg-config".
+---
+ setupext.py | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/setupext.py b/setupext.py
+index 80b2a6c..29cddf9 100755
+--- a/setupext.py
++++ b/setupext.py
+@@ -253,7 +253,8 @@ class PkgConfig(object):
+ self.has_pkgconfig = False
+ else:
+ self.set_pkgconfig_path()
+- status, output = getstatusoutput("pkg-config --help")
++ self.pkgconfig = os.environ.get('PKG_CONFIG', 'pkg-config')
++ status, output = getstatusoutput("%s --help" % self.pkgconfig)
+ self.has_pkgconfig = (status == 0)
+ if not self.has_pkgconfig:
+ print("IMPORTANT WARNING:")
+@@ -286,7 +287,7 @@ class PkgConfig(object):
+
+ executable = alt_exec
+ if self.has_pkgconfig:
+- executable = 'pkg-config {0}'.format(package)
++ executable = '%s %s' % (self.pkgconfig, package)
+
+ use_defaults = True
+
+@@ -330,7 +331,7 @@ class PkgConfig(object):
+ return None
+
+ status, output = getstatusoutput(
+- "pkg-config %s --modversion" % (package))
++ '%s %s --modversion' % (self.pkgconfig, package))
+ if status == 0:
+ return output
+ return None
+--
+2.4.0
+
diff --git a/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-2.patch b/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-2.patch
new file mode 100644
index 00000000000..9580c70b2ae
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-2.patch
@@ -0,0 +1,54 @@
+https://github.com/matplotlib/matplotlib/pull/4430
+
+From 3761303016cab0542891374032eca87e74d585bf Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Fri, 15 May 2015 03:43:17 -0400
+Subject: [PATCH 2/3] setupext: do not mess with PKG_CONFIG_PATH
+
+The current code always sets PKG_CONFIG_PATH to build paths in / which
+breaks cross-compiling -- things like /usr/lib are for the build system
+(e.g. x86) and not for the target (e.g. arm). Since we're adding paths
+that are already the default for pkg-config, there's no point in trying
+to be smart here. Just punt the code.
+
+This basically reverts commit 101beb975d3a1218350f02bf68dc2a43ac8ff148.
+---
+ setupext.py | 15 ---------------
+ 1 file changed, 15 deletions(-)
+
+diff --git a/setupext.py b/setupext.py
+index 29cddf9..57d80e7 100755
+--- a/setupext.py
++++ b/setupext.py
+@@ -252,7 +252,6 @@ class PkgConfig(object):
+ if sys.platform == 'win32':
+ self.has_pkgconfig = False
+ else:
+- self.set_pkgconfig_path()
+ self.pkgconfig = os.environ.get('PKG_CONFIG', 'pkg-config')
+ status, output = getstatusoutput("%s --help" % self.pkgconfig)
+ self.has_pkgconfig = (status == 0)
+@@ -262,20 +261,6 @@ class PkgConfig(object):
+ " pkg-config is not installed.\n"
+ " matplotlib may not be able to find some of its dependencies")
+
+- def set_pkgconfig_path(self):
+- pkgconfig_path = sysconfig.get_config_var('LIBDIR')
+- if pkgconfig_path is None:
+- return
+-
+- pkgconfig_path = os.path.join(pkgconfig_path, 'pkgconfig')
+- if not os.path.isdir(pkgconfig_path):
+- return
+-
+- try:
+- os.environ['PKG_CONFIG_PATH'] += ':' + pkgconfig_path
+- except KeyError:
+- os.environ['PKG_CONFIG_PATH'] = pkgconfig_path
+-
+ def setup_extension(self, ext, package, default_include_dirs=[],
+ default_library_dirs=[], default_libraries=[],
+ alt_exec=None):
+--
+2.4.0
+
diff --git a/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-3.patch b/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-3.patch
new file mode 100644
index 00000000000..21fdf128863
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-1.4.3-cross-compile-3.patch
@@ -0,0 +1,58 @@
+https://github.com/matplotlib/matplotlib/pull/4430
+
+From d077e49be318c851f6bbd64708efeed78a3ece3f Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Fri, 15 May 2015 03:49:02 -0400
+Subject: [PATCH 3/3] setupext: do not hardcode system -I/-L paths
+
+The native compiler should already know the right paths to look for
+includes and libraries. Hardcoding a specific list of those paths
+breaks both cross-compiling and multilib. In the former, paths like
+/usr/include and /usr/lib are for x86 but when you want to build for
+arm, mixing them leads to bad failures. In the latter, paths like
+/usr/lib typically hold 32it libraries, but when you're building for
+64bit, you want the libs from /usr/lib64. This goes even further as
+there are other mixed ABIs like /usr/libx32 and /usr/lib32, neither
+of which are handled here.
+
+Instead, delete the code entirely and rely on the compiler being
+properly configured. If you want to use a misconfigured compiler,
+you can always set CFLAGS/CPPFLAGS/LDFLAGS to include the -I/-L
+that your system needs.
+---
+ setupext.py | 12 +-----------
+ 1 file changed, 1 insertion(+), 11 deletions(-)
+
+diff --git a/setupext.py b/setupext.py
+index 57d80e7..7473e3a 100755
+--- a/setupext.py
++++ b/setupext.py
+@@ -216,9 +216,7 @@ sysconfig.customize_compiler = my_customize_compiler
+
+ def make_extension(name, files, *args, **kwargs):
+ """
+- Make a new extension. Automatically sets include_dirs and
+- library_dirs to the base directories appropriate for this
+- platform.
++ Make a new extension.
+
+ `name` is the name of the extension.
+
+@@ -228,14 +226,6 @@ def make_extension(name, files, *args, **kwargs):
+ `distutils.core.Extension` constructor.
+ """
+ ext = DelayedExtension(name, files, *args, **kwargs)
+- for dir in get_base_dirs():
+- include_dir = os.path.join(dir, 'include')
+- if os.path.exists(include_dir):
+- ext.include_dirs.append(include_dir)
+- for lib in ('lib', 'lib64'):
+- lib_dir = os.path.join(dir, lib)
+- if os.path.exists(lib_dir):
+- ext.library_dirs.append(lib_dir)
+ ext.include_dirs.append('.')
+
+ return ext
+--
+2.4.0
+
diff --git a/dev-python/matplotlib/matplotlib-1.4.2.ebuild b/dev-python/matplotlib/matplotlib-1.4.2.ebuild
new file mode 100644
index 00000000000..defc79b79f4
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-1.4.2.ebuild
@@ -0,0 +1,248 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils flag-o-matic virtualx
+
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="http://matplotlib.org/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+SLOT="0"
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+KEYWORDS="amd64 arm ppc ~ppc64 x86 ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="cairo doc excel examples fltk gtk gtk3 latex pyside qt4 test tk wxwidgets"
+
+# #456704 -- a lot of py2-only deps
+PY2_USEDEP=$(python_gen_usedep python2_7)
+COMMON_DEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ media-fonts/stix-fonts
+ >=media-libs/freetype-2.3
+ media-libs/libpng:0
+ media-libs/qhull
+ gtk? (
+ dev-libs/glib:2=
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2=
+ dev-python/pygtk[${PY2_USEDEP}] )
+ wxwidgets? ( >=dev-python/wxpython-2.8:*[${PY2_USEDEP}] )"
+
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-text/dvipng
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ dev-python/xlwt[${PY2_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexrecommended
+ media-gfx/graphviz[cairo]
+ )
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/nose-0.11.1[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND="${COMMON_DEPEND}
+ >=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
+ cairo? (
+ || (
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ )
+ excel? ( dev-python/xlwt[${PY2_USEDEP}] )
+ fltk? ( dev-python/pyfltk[${PY2_USEDEP}] )
+ gtk3? (
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection] )
+ latex? (
+ virtual/latex-base
+ app-text/ghostscript-gpl
+ app-text/dvipng
+ app-text/poppler[utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-xetex
+ )
+ pyside? ( dev-python/pyside[X,${PYTHON_USEDEP}] )
+ qt4? ( dev-python/PyQt4[X,${PYTHON_USEDEP}] )"
+
+PY2_FLAGS="|| ( $(python_gen_useflags python2_7) )"
+REQUIRED_USE="
+ doc? ( ${PY2_FLAGS} )
+ excel? ( ${PY2_FLAGS} )
+ fltk? ( ${PY2_FLAGS} )
+ gtk? ( ${PY2_FLAGS} )
+ wxwidgets? ( ${PY2_FLAGS} )
+ test? (
+ cairo fltk latex pyside qt4 tk wxwidgets
+ || ( gtk gtk3 )
+ )"
+
+RESTRICT="mirror"
+
+# A few C++ source files are written to srcdir.
+# Other than that, the ebuild shall be fit for out-of-source build.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+pkg_setup() {
+ unset DISPLAY # bug #278524
+}
+
+use_setup() {
+ local uword="${2:-${1}}"
+ if use ${1}; then
+ echo "${uword} = True"
+ echo "${uword}agg = True"
+ else
+ echo "${uword} = False"
+ echo "${uword}agg = False"
+ fi
+}
+
+python_prepare_all() {
+# Generates test failures, but fedora does it
+# local PATCHES=(
+# "${FILESDIR}"/${P}-unbundle-pycxx.patch
+# "${FILESDIR}"/${P}-unbundle-agg.patch
+# )
+# rm -r agg24 CXX || die
+# rm -r agg24 || die
+
+ sed \
+ -e 's/matplotlib.pyparsing_py[23]/pyparsing/g' \
+ -i lib/matplotlib/{mathtext,fontconfig_pattern}.py \
+ || die "sed pyparsing failed"
+
+ # suggested by upstream
+ sed \
+ -e '/tol/s:32:35:g' \
+ -i lib/matplotlib/tests/test_mathtext.py || die
+
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+ append-cppflags -DNDEBUG # or get old trying to do triangulation
+}
+
+python_configure() {
+ mkdir -p "${BUILD_DIR}" || die
+
+ # create setup.cfg (see setup.cfg.template for any changes).
+
+ # common switches.
+ cat > "${BUILD_DIR}"/setup.cfg <<- EOF
+ [directories]
+ basedirlist = "${EPREFIX}/usr"
+ [provide_packages]
+ pytz = False
+ dateutil = False
+ [gui_support]
+ agg = True
+ $(use_setup cairo)
+ $(use_setup pyside)
+ $(use_setup qt4)
+ $(use_setup tk)
+ EOF
+
+ if use gtk3 && use cairo; then
+ echo "gtk3cairo = True" >> "${BUILD_DIR}"/setup.cfg || die
+ else
+ echo "gtk3cairo = False" >> "${BUILD_DIR}"/setup.cfg || die
+ fi
+
+ if $(python_is_python3); then
+ cat >> "${BUILD_DIR}"/setup.cfg <<- EOF
+ six = True
+ fltk = False
+ fltkagg = False
+ gtk = False
+ gtkagg = False
+ wx = False
+ wxagg = False
+ EOF
+ else
+ cat >> "${BUILD_DIR}"/setup.cfg <<-EOF
+ six = False
+ $(use_setup fltk)
+ $(use_setup gtk)
+ $(use_setup gtk3)
+ $(use_setup wxwidgets wx)
+ EOF
+ fi
+}
+
+wrap_setup() {
+ local MPLSETUPCFG=${BUILD_DIR}/setup.cfg
+ export MPLSETUPCFG
+
+ # Note: remove build... if switching to out-of-source build
+ "${@}" build --build-lib="${BUILD_DIR}"/build/lib
+}
+
+python_compile() {
+ wrap_setup distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ cd doc || die
+
+ # necessary for in-source build
+ local -x PYTHONPATH="${BUILD_DIR}"/build/lib:${PYTHONPATH}
+
+ VARTEXFONTS="${T}"/fonts \
+ "${PYTHON}" ./make.py --small html || die
+ fi
+}
+
+python_test() {
+ wrap_setup distutils_install_for_testing
+
+ cd "${TMPDIR}" || die
+ VIRTUALX_COMMAND="${PYTHON}"
+ virtualmake -c "import sys, matplotlib as m; sys.exit(0 if m.test(verbosity=2) else 1)" || \
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ wrap_setup distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/matplotlib/matplotlib-1.4.3.ebuild b/dev-python/matplotlib/matplotlib-1.4.3.ebuild
new file mode 100644
index 00000000000..df777aa8c32
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-1.4.3.ebuild
@@ -0,0 +1,258 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils flag-o-matic virtualx toolchain-funcs
+
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="http://matplotlib.org/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+SLOT="0"
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="cairo doc excel examples fltk gtk gtk3 latex pyside qt4 qt5 test tk wxwidgets"
+
+# #456704 -- a lot of py2-only deps
+PY2_USEDEP=$(python_gen_usedep python2_7)
+COMMON_DEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ media-fonts/stix-fonts
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/qhull
+ gtk? (
+ dev-libs/glib:2=
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ dev-python/pygtk[${PY2_USEDEP}] )
+ wxwidgets? ( >=dev-python/wxpython-2.8:*[${PY2_USEDEP}] )"
+
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-text/dvipng
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ dev-python/xlwt[${PY2_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexrecommended
+ media-gfx/graphviz[cairo]
+ )
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/nose-0.11.1[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND="${COMMON_DEPEND}
+ >=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
+ cairo? (
+ || (
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ )
+ excel? ( dev-python/xlwt[${PY2_USEDEP}] )
+ fltk? ( dev-python/pyfltk[${PY2_USEDEP}] )
+ gtk3? (
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection] )
+ latex? (
+ virtual/latex-base
+ app-text/ghostscript-gpl
+ app-text/dvipng
+ app-text/poppler[utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-xetex
+ )
+ pyside? ( dev-python/pyside[X,${PYTHON_USEDEP}] )
+ qt4? ( dev-python/PyQt4[X,${PYTHON_USEDEP}] )
+ qt5? ( dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}] )
+ "
+
+PY2_FLAGS="|| ( $(python_gen_useflags python2_7) )"
+REQUIRED_USE="
+ doc? ( ${PY2_FLAGS} )
+ excel? ( ${PY2_FLAGS} )
+ fltk? ( ${PY2_FLAGS} )
+ gtk? ( ${PY2_FLAGS} )
+ wxwidgets? ( ${PY2_FLAGS} )
+ test? (
+ cairo fltk latex pyside qt5 qt4 tk wxwidgets
+ || ( gtk gtk3 )
+ )"
+
+RESTRICT="mirror"
+
+# A few C++ source files are written to srcdir.
+# Other than that, the ebuild shall be fit for out-of-source build.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+pkg_setup() {
+ unset DISPLAY # bug #278524
+}
+
+use_setup() {
+ local uword="${2:-${1}}"
+ if use ${1}; then
+ echo "${uword} = True"
+ echo "${uword}agg = True"
+ else
+ echo "${uword} = False"
+ echo "${uword}agg = False"
+ fi
+}
+
+python_prepare_all() {
+# Generates test failures, but fedora does it
+# local PATCHES=(
+# "${FILESDIR}"/${P}-unbundle-pycxx.patch
+# "${FILESDIR}"/${P}-unbundle-agg.patch
+# )
+# rm -r agg24 CXX || die
+# rm -r agg24 || die
+
+ epatch "${FILESDIR}"/${PN}-1.4.3-cross-compile-{1,2,3}.patch
+
+ sed \
+ -e 's/matplotlib.pyparsing_py[23]/pyparsing/g' \
+ -i lib/matplotlib/{mathtext,fontconfig_pattern}.py \
+ || die "sed pyparsing failed"
+
+ # suggested by upstream
+ sed \
+ -e '/tol/s:32:35:g' \
+ -i lib/matplotlib/tests/test_mathtext.py || die
+
+ sed \
+ -e "s:/usr/:${EPREFIX}/usr/:g" \
+ -i setupext.py || die
+
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+ append-cppflags -DNDEBUG # or get old trying to do triangulation
+ tc-export PKG_CONFIG
+}
+
+python_configure() {
+ mkdir -p "${BUILD_DIR}" || die
+
+ # create setup.cfg (see setup.cfg.template for any changes).
+
+ # common switches.
+ cat > "${BUILD_DIR}"/setup.cfg <<- EOF
+ [directories]
+ basedirlist = "${EPREFIX}/usr"
+ [provide_packages]
+ pytz = False
+ dateutil = False
+ [gui_support]
+ agg = True
+ $(use_setup cairo)
+ $(use_setup pyside)
+ $(use_setup qt4)
+ $(use_setup qt5)
+ $(use_setup tk)
+ EOF
+
+ if use gtk3 && use cairo; then
+ echo "gtk3cairo = True" >> "${BUILD_DIR}"/setup.cfg || die
+ else
+ echo "gtk3cairo = False" >> "${BUILD_DIR}"/setup.cfg || die
+ fi
+
+ if $(python_is_python3); then
+ cat >> "${BUILD_DIR}"/setup.cfg <<- EOF
+ six = True
+ fltk = False
+ fltkagg = False
+ gtk = False
+ gtkagg = False
+ wx = False
+ wxagg = False
+ EOF
+ else
+ cat >> "${BUILD_DIR}"/setup.cfg <<-EOF
+ six = False
+ $(use_setup fltk)
+ $(use_setup gtk)
+ $(use_setup gtk3)
+ $(use_setup wxwidgets wx)
+ EOF
+ fi
+}
+
+wrap_setup() {
+ local MPLSETUPCFG=${BUILD_DIR}/setup.cfg
+ export MPLSETUPCFG
+
+ # Note: remove build... if switching to out-of-source build
+ "${@}" build --build-lib="${BUILD_DIR}"/build/lib
+}
+
+python_compile() {
+ wrap_setup distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ cd doc || die
+
+ # necessary for in-source build
+ local -x PYTHONPATH="${BUILD_DIR}"/build/lib:${PYTHONPATH}
+
+ VARTEXFONTS="${T}"/fonts \
+ "${PYTHON}" ./make.py --small html || die
+ fi
+}
+
+python_test() {
+ wrap_setup distutils_install_for_testing
+
+ cd "${TMPDIR}" || die
+ VIRTUALX_COMMAND="${PYTHON}"
+ virtualmake -c "import sys, matplotlib as m; sys.exit(0 if m.test(verbosity=2) else 1)" || \
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ wrap_setup distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/matplotlib/matplotlib-9999.ebuild b/dev-python/matplotlib/matplotlib-9999.ebuild
new file mode 100644
index 00000000000..1e63422cbf8
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-9999.ebuild
@@ -0,0 +1,251 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils flag-o-matic git-r3 virtualx
+
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="http://matplotlib.org/"
+SRC_URI=""
+EGIT_REPO_URI="https://github.com/matplotlib/matplotlib.git"
+
+SLOT="0"
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+KEYWORDS=""
+IUSE="cairo doc excel examples fltk gtk gtk3 latex pyside qt4 qt5 test tk wxwidgets"
+
+# #456704 -- a lot of py2-only deps
+PY2_USEDEP=$(python_gen_usedep python2_7)
+COMMON_DEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ media-fonts/stix-fonts
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/qhull
+ gtk? (
+ dev-libs/glib:2=
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ dev-python/pygtk[${PY2_USEDEP}] )
+ wxwidgets? ( >=dev-python/wxpython-2.8:*[${PY2_USEDEP}] )"
+
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-text/dvipng
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ dev-python/xlwt[${PY2_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexrecommended
+ media-gfx/graphviz[cairo]
+ )
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/nose-0.11.1[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND="${COMMON_DEPEND}
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ cairo? ( dev-python/pycairo[${PYTHON_USEDEP}] )
+ excel? ( dev-python/xlwt[${PY2_USEDEP}] )
+ fltk? ( dev-python/pyfltk[${PY2_USEDEP}] )
+ gtk3? (
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection] )
+ latex? (
+ virtual/latex-base
+ app-text/ghostscript-gpl
+ app-text/dvipng
+ app-text/poppler[utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-xetex
+ )
+ pyside? ( dev-python/pyside[X,${PYTHON_USEDEP}] )
+ qt4? ( dev-python/PyQt4[X,${PYTHON_USEDEP}] )
+ qt5? ( dev-python/PyQt5[X,${PYTHON_USEDEP}] )
+ "
+
+PY2_FLAGS="|| ( $(python_gen_useflags python2_7) )"
+REQUIRED_USE="
+ doc? ( ${PY2_FLAGS} )
+ excel? ( ${PY2_FLAGS} )
+ fltk? ( ${PY2_FLAGS} )
+ gtk? ( ${PY2_FLAGS} )
+ wxwidgets? ( ${PY2_FLAGS} )
+ test? (
+ cairo fltk latex pyside qt4 tk wxwidgets
+ || ( gtk gtk3 )
+ )"
+
+RESTRICT="mirror"
+
+# A few C++ source files are written to srcdir.
+# Other than that, the ebuild shall be fit for out-of-source build.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+pkg_setup() {
+ unset DISPLAY # bug #278524
+}
+
+use_setup() {
+ local uword="${2:-${1}}"
+ if use ${1}; then
+ echo "${uword} = True"
+ echo "${uword}agg = True"
+ else
+ echo "${uword} = False"
+ echo "${uword}agg = False"
+ fi
+}
+
+python_prepare_all() {
+# Generates test failures, but fedora does it
+# local PATCHES=(
+# "${FILESDIR}"/${P}-unbundle-pycxx.patch
+# "${FILESDIR}"/${P}-unbundle-agg.patch
+# )
+# rm -r agg24 CXX || die
+# rm -r agg24 || die
+
+ sed \
+ -e 's/matplotlib.pyparsing_py[23]/pyparsing/g' \
+ -i lib/matplotlib/{mathtext,fontconfig_pattern}.py \
+ || die "sed pyparsing failed"
+
+ # suggested by upstream
+ sed \
+ -e '/tol/s:32:35:g' \
+ -i lib/matplotlib/tests/test_mathtext.py || die
+
+ sed \
+ -e "s:/usr/:${EPREFIX}/usr/:g" \
+ -i setupext.py || die
+
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+ append-cppflags -DNDEBUG # or get old trying to do triangulation
+}
+
+python_configure() {
+ mkdir -p "${BUILD_DIR}" || die
+
+ # create setup.cfg (see setup.cfg.template for any changes).
+
+ # common switches.
+ cat > "${BUILD_DIR}"/setup.cfg <<- EOF
+ [directories]
+ basedirlist = "${EPREFIX}/usr"
+ [provide_packages]
+ pytz = False
+ dateutil = False
+ [gui_support]
+ agg = True
+ $(use_setup cairo)
+ $(use_setup pyside)
+ $(use_setup qt4)
+ $(use_setup qt5)
+ $(use_setup tk)
+ EOF
+
+ if use gtk3 && use cairo; then
+ echo "gtk3cairo = True" >> "${BUILD_DIR}"/setup.cfg || die
+ else
+ echo "gtk3cairo = False" >> "${BUILD_DIR}"/setup.cfg || die
+ fi
+
+ if $(python_is_python3); then
+ cat >> "${BUILD_DIR}"/setup.cfg <<- EOF
+ six = True
+ fltk = False
+ fltkagg = False
+ gtk = False
+ gtkagg = False
+ wx = False
+ wxagg = False
+ EOF
+ else
+ cat >> "${BUILD_DIR}"/setup.cfg <<-EOF
+ six = False
+ $(use_setup fltk)
+ $(use_setup gtk)
+ $(use_setup gtk3)
+ $(use_setup wxwidgets wx)
+ EOF
+ fi
+}
+
+wrap_setup() {
+ local MPLSETUPCFG=${BUILD_DIR}/setup.cfg
+ export MPLSETUPCFG
+
+ # Note: remove build... if switching to out-of-source build
+ "${@}" build --build-lib="${BUILD_DIR}"/build/lib
+}
+
+python_compile() {
+ wrap_setup distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ cd doc || die
+
+ # necessary for in-source build
+ local -x PYTHONPATH="${BUILD_DIR}"/build/lib:${PYTHONPATH}
+
+ VARTEXFONTS="${T}"/fonts \
+ "${PYTHON}" ./make.py --small html || die
+ fi
+}
+
+python_test() {
+ wrap_setup distutils_install_for_testing
+
+ cd "${TMPDIR}" || die
+ VIRTUALX_COMMAND="${PYTHON}"
+ virtualmake -c "import sys, matplotlib as m; sys.exit(0 if m.test(verbosity=2) else 1)" || \
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ wrap_setup distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/matplotlib/metadata.xml b/dev-python/matplotlib/metadata.xml
new file mode 100644
index 00000000000..99ad12592dc
--- /dev/null
+++ b/dev-python/matplotlib/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ matplotlib is an interactive library for plotting and doing basic
+ data analysis in python with a syntax similar to matlab. It provides a
+ variety of backends and hard copy formats for almost ready
+ publication plots.
+</longdescription>
+ <use>
+ <flag name="excel">Pull <pkg>dev-python/xlwt</pkg> for the exceltools toolkit</flag>
+ <flag name="gtk3">Use <pkg>x11-libs/gtk+:3</pkg> instead of <pkg>x11-libs/gtk+:2</pkg></flag>
+ <flag name="pyside">Qt support via <pkg>dev-python/pyside</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">matplotlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mccabe/Manifest b/dev-python/mccabe/Manifest
new file mode 100644
index 00000000000..9bc96804497
--- /dev/null
+++ b/dev-python/mccabe/Manifest
@@ -0,0 +1,3 @@
+DIST mccabe-0.2.1.tar.gz 5031 SHA256 5a2a170e47de5593a6abfae1e9542bd2c3924ac62bbe4e6ed96c953c0352243a SHA512 7155e52063e786c140c541f1410d0c319387b4b5f24ec3c60ba3d5a963a92d0ee545254559941ac0dbe961f46750c0e61271fbe82653c6b1465c0a13b31ec325 WHIRLPOOL 1db80033f91a24029e6757847d11528cb01c2aff2a2b40c947f969191f767fe6b93fd9adfb685eee8bcb03ba9719f852d8a5db7e1b27395acb93d973f35d09d8
+DIST mccabe-0.3.1.tar.gz 7586 SHA256 5f7ea6fb3aa9afe146d07fd6d5cedf788747d8b0c29e44732453c2b2db1e3d16 SHA512 83a5cb389343628b8a464f8f17452f116557735ed0a5f40411fe06f63af1f7c5ac4501fce2617a22fc7fb8395918deda2afba39728c1e72713930f14dddf08f9 WHIRLPOOL 2f8354395d9c291377ec8cac9f7911ffdeaf348f37ab7a0b3a87fb10ec0490e4e398963c02989de5240d54e1e4c34945fe15ad60c0b8605d5b8367f6efe7e72b
+DIST mccabe-0.3.tar.gz 6127 SHA256 3d8ca9bf65c5014f469180544d1dd5bb5b9df709aad6304f9c2e4370ae0a7b7c SHA512 3bb176d486de5e0d3de8db0bf923b4b03e5ad2fd82df079babd6e6551afe9077b956698ac335f23d340a16212d73c1c5ab5a3055d2788b7f81040f3cb0d1b4ee WHIRLPOOL bfa0480cca9cc082f60c20d07d6edac203c5e9144f2caf57576304dbf01c8a96b19e111f9e1abe5774a4de235729d69c3c89d4fddf8213f403568228e92f38f6
diff --git a/dev-python/mccabe/mccabe-0.2.1.ebuild b/dev-python/mccabe/mccabe-0.2.1.ebuild
new file mode 100644
index 00000000000..1be403bb7e0
--- /dev/null
+++ b/dev-python/mccabe/mccabe-0.2.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="a plugin for flake8"
+HOMEPAGE="https://github.com/flintwork/mccabe"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=">=dev-python/pep8-1.4.3[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/mccabe/mccabe-0.3.1.ebuild b/dev-python/mccabe/mccabe-0.3.1.ebuild
new file mode 100644
index 00000000000..11d40045b22
--- /dev/null
+++ b/dev-python/mccabe/mccabe-0.3.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="a plugin for flake8"
+HOMEPAGE="https://github.com/flintwork/mccabe"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=">=dev-python/pep8-1.4.3[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${EPYTHON} test_mccabe.py || die
+}
diff --git a/dev-python/mccabe/mccabe-0.3.ebuild b/dev-python/mccabe/mccabe-0.3.ebuild
new file mode 100644
index 00000000000..d5fa7ee7234
--- /dev/null
+++ b/dev-python/mccabe/mccabe-0.3.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="a plugin for flake8"
+HOMEPAGE="https://github.com/flintwork/mccabe"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=">=dev-python/pep8-1.4.3[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/mccabe/metadata.xml b/dev-python/mccabe/metadata.xml
new file mode 100644
index 00000000000..de8b0975f4e
--- /dev/null
+++ b/dev-python/mccabe/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mccabe</remote-id>
+ <remote-id type="github">flintwork/mccabe</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mecab-python/Manifest b/dev-python/mecab-python/Manifest
new file mode 100644
index 00000000000..69a93690f6e
--- /dev/null
+++ b/dev-python/mecab-python/Manifest
@@ -0,0 +1 @@
+DIST mecab-python-0.996.tar.gz 62338 SHA256 d305c30af9e781e70f7619a0b444ac1101f2faaf3922415a0d6c49da85a63511 SHA512 08954ed801419fd7f65d055244227364bc37b063f8d21babb6ceeb02ca40e0146fa4401d1426255f3656ac1a5e51439bde981414613153dca5972f624289447e WHIRLPOOL bae9a50996fa46bc0cf70b0d76c1d0377b84165a07d3ebeaa4a4731c6eafe8f3a952942c85e38bf6db0f1d56abfc6f85664e1cad5f5259dd2083ce28e08d8ca9
diff --git a/dev-python/mecab-python/files/mecab-python-py3.diff b/dev-python/mecab-python/files/mecab-python-py3.diff
new file mode 100644
index 00000000000..33c8d97ebb2
--- /dev/null
+++ b/dev-python/mecab-python/files/mecab-python-py3.diff
@@ -0,0 +1,11 @@
+--- a/setup.py
++++ b/setup.py
+@@ -7,7 +7,7 @@
+ return os.popen(str).readlines()[0][:-1]
+
+ def cmd2(str):
+- return string.split (cmd1(str))
++ return cmd1(str).split()
+
+ setup(name = "mecab-python",
+ version = cmd1("mecab-config --version"),
diff --git a/dev-python/mecab-python/mecab-python-0.996.ebuild b/dev-python/mecab-python/mecab-python-0.996.ebuild
new file mode 100644
index 00000000000..29a4b4618d1
--- /dev/null
+++ b/dev-python/mecab-python/mecab-python-0.996.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python binding for MeCab"
+HOMEPAGE="http://mecab.sourceforge.net/"
+SRC_URI="http://mecab.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="|| ( BSD LGPL-2.1 GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc64 x86"
+IUSE=""
+
+DEPEND="~app-text/mecab-${PV}"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-py3.diff" )
+DOCS=( test.py )
+HTML_DOCS=( bindings.html )
diff --git a/dev-python/mecab-python/metadata.xml b/dev-python/mecab-python/metadata.xml
new file mode 100644
index 00000000000..1ec95998be0
--- /dev/null
+++ b/dev-python/mecab-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cjk</herd>
+ <upstream>
+ <remote-id type="google-code">mecab</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mechanize/Manifest b/dev-python/mechanize/Manifest
new file mode 100644
index 00000000000..c22b933e363
--- /dev/null
+++ b/dev-python/mechanize/Manifest
@@ -0,0 +1 @@
+DIST mechanize-0.2.5.tar.gz 383918 SHA256 2e67b20d107b30c00ad814891a095048c35d9d8cb9541801cebe85684cc84766 SHA512 23de1d9a5fba63d76fd577889594dacf5412fb2fccb58908a10ab350a81dd16a7a31019d0b4a59a5ed4115320c7e3585c77eef88dcd80a88a9c3c2da3c28fa68 WHIRLPOOL 14f8b9756adc3df8a3781b7b51568f36fc4cd0f35db62f537e2d1d1a0b8ea6dba08c7f2a1f0aad3fc089c3b973e4e62e5bbaaa91fe42f1017c883ff5b29ad0f0
diff --git a/dev-python/mechanize/mechanize-0.2.5-r1.ebuild b/dev-python/mechanize/mechanize-0.2.5-r1.ebuild
new file mode 100644
index 00000000000..8644296b49d
--- /dev/null
+++ b/dev-python/mechanize/mechanize-0.2.5-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Stateful programmatic web browsing in Python"
+HOMEPAGE="http://wwwsearch.sourceforge.net/mechanize/ http://pypi.python.org/pypi/mechanize"
+SRC_URI="http://wwwsearch.sourceforge.net/${PN}/src/${P}.tar.gz"
+
+LICENSE="|| ( BSD ZPL )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ # Ignore warnings (http://github.com/jjlee/mechanize/issues/issue/13).
+ # https://github.com/jjlee/mechanize/issues/66
+ "${PYTHON}" -W ignore test.py
+}
+
+python_install_all() {
+ # Fix some paths.
+ sed -e "s:../styles/:styles/:g" -i docs/html/* || die "sed failed"
+ if use doc; then
+ dohtml -r docs/html/ docs/styles
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mechanize/mechanize-0.2.5.ebuild b/dev-python/mechanize/mechanize-0.2.5.ebuild
new file mode 100644
index 00000000000..7799b32545f
--- /dev/null
+++ b/dev-python/mechanize/mechanize-0.2.5.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils eutils
+
+DESCRIPTION="Stateful programmatic web browsing in Python"
+HOMEPAGE="http://wwwsearch.sourceforge.net/mechanize/ http://pypi.python.org/pypi/mechanize"
+SRC_URI="http://wwwsearch.sourceforge.net/${PN}/src/${P}.tar.gz"
+
+LICENSE="|| ( BSD ZPL )"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~ia64 ppc ~sparc x86 ~amd64-linux ~ia64-linux ~x86-linux ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools"
+RDEPEND=""
+
+DOCS="docs/*.txt"
+
+src_test() {
+ testing() {
+ # Ignore warnings (http://github.com/jjlee/mechanize/issues/issue/13).
+ PYTHONPATH="build-${PYTHON_ABI}/lib" "$(PYTHON)" -W ignore test.py
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+
+ # Fix some paths.
+ sed -e "s:../styles/:styles/:g" -i docs/html/* || die "sed failed"
+ dohtml -r docs/html/ docs/styles || die "dohtml failed"
+}
diff --git a/dev-python/mechanize/metadata.xml b/dev-python/mechanize/metadata.xml
new file mode 100644
index 00000000000..0a3f10c4b43
--- /dev/null
+++ b/dev-python/mechanize/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ mechanize is a Python module for static programmatic web browsing in
+ Python, after Andy Lester's Perl module WWW::Mechanize. With the Browser
+ subclass any url can be opened - not just http - and UserAgentBase
+ offers easy dynamic configuration of user-agent features like protocol,
+ cookie, redirection and robots.txt handling. Other functionalities
+ include easy HTML form filling using ClientForm interface, convenient
+ link parsing and following, browser history with .back() and .reload()
+ methods and automatic handling of HTTP-Equiv and Refresh.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/medusa/Manifest b/dev-python/medusa/Manifest
new file mode 100644
index 00000000000..ef5b8d25f85
--- /dev/null
+++ b/dev-python/medusa/Manifest
@@ -0,0 +1 @@
+DIST medusa-0.5.4.tar.gz 107744 SHA256 ab7fc4c9afd28b3aaf575aca5bb07005d228a0cad5b1787a521ffca63cfe4317 SHA512 9b28c13f633c87586b88388719afdc6c8f32cb0e25583e8c03f5bb0a0ef7c75a4fbad23f5b296bf84c8fa50d7d811fa62305f3fbe64d3764aa5d28228a31a43f WHIRLPOOL 84212d6cb2a9597e4c04634a45c4fafedf58ad81807337f4f34a2ae9c46e120b4437b56aa0baa62b0692de61b4319c5b8ae55d5e7cfb5ff0041fa9037f9c61e1
diff --git a/dev-python/medusa/medusa-0.5.4-r1.ebuild b/dev-python/medusa/medusa-0.5.4-r1.ebuild
new file mode 100644
index 00000000000..23a3f77d658
--- /dev/null
+++ b/dev-python/medusa/medusa-0.5.4-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A framework for writing asynchronous long-running, high-performance network servers in Python"
+HOMEPAGE="http://www.amk.ca/python/code/medusa.html http://pypi.python.org/pypi/medusa"
+SRC_URI="http://www.amk.ca/files/python/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc CHANGES.txt docs/*.txt
+ dodir /usr/share/doc/${PF}/example
+ cp -r demo/* "${ED}usr/share/doc/${PF}/example"
+ dohtml docs/*.html docs/*.gif
+}
diff --git a/dev-python/medusa/metadata.xml b/dev-python/medusa/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/medusa/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/meld3/Manifest b/dev-python/meld3/Manifest
new file mode 100644
index 00000000000..17ea1da8757
--- /dev/null
+++ b/dev-python/meld3/Manifest
@@ -0,0 +1,2 @@
+DIST meld3-1.0.0.tar.gz 36232 SHA256 57b41eebbb5a82d4a928608962616442e239ec6d611fe6f46343e765e36f0b2b SHA512 17d90620b34ddecebcf1d08698149a598f1ac74f3a9c8c5fadcc2ea70d3d94c19ac3d662904f29a5093b3326131a2875940f3fa63a05f288de8e703cfee6e243 WHIRLPOOL f2b23c652757df094d3dc1e5b75b2f1e398c569201559e89cee098d1021b45227326667e510a442e2016d3c3651ce5c78e7e075720f58342f34df0bec6182565
+DIST meld3-1.0.2.tar.gz 36478 SHA256 f7b754a0fde7a4429b2ebe49409db240b5699385a572501bb0d5627d299f9558 SHA512 54fe6def7169fb4e3469cad8be58e56984026f27b3b8b2bfd6d53e2296e0c2a5bfb3e67d032ef75edd93306f4115a091930a7aae3573acecd3fed4acd6eeb544 WHIRLPOOL b4191073e3419dc845ec0f618553c1d7871ad67ec9b49578b5c37bc6d3fe28513375c19509f75be16698cedbc224ecbb9516f10a68da43fad2f82741a67b55fd
diff --git a/dev-python/meld3/meld3-1.0.0.ebuild b/dev-python/meld3/meld3-1.0.0.ebuild
new file mode 100644
index 00000000000..6b5f6f050b3
--- /dev/null
+++ b/dev-python/meld3/meld3-1.0.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="meld3 is an HTML/XML templating engine"
+HOMEPAGE="https://github.com/supervisor/meld3 http://pypi.python.org/pypi/meld3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# tests use a local path.
+RESTRICT=test
+
+python_test() {
+ PYTHONPATH=. "${PYTHON}" ${PN}/test_${PN}.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/meld3/meld3-1.0.2.ebuild b/dev-python/meld3/meld3-1.0.2.ebuild
new file mode 100644
index 00000000000..f83fb0638ee
--- /dev/null
+++ b/dev-python/meld3/meld3-1.0.2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="meld3 is an HTML/XML templating engine"
+HOMEPAGE="https://github.com/supervisor/meld3 http://pypi.python.org/pypi/meld3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# tests use a local path.
+RESTRICT=test
+
+python_test() {
+ PYTHONPATH=. "${PYTHON}" ${PN}/test_${PN}.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/meld3/metadata.xml b/dev-python/meld3/metadata.xml
new file mode 100644
index 00000000000..a0ae747bfbf
--- /dev/null
+++ b/dev-python/meld3/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">meld3</remote-id>
+ <remote-id type="github">supervisor/meld3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mergedict/Manifest b/dev-python/mergedict/Manifest
new file mode 100644
index 00000000000..2e3426dcfdb
--- /dev/null
+++ b/dev-python/mergedict/Manifest
@@ -0,0 +1 @@
+DIST mergedict-0.2.0.tar.gz 3554 SHA256 67c972c30087072f02cbf5052ee6e6cd87eba26c193bc698b71b58b32b141369 SHA512 5d867944865881731a854526ad17c178be44854e040ba47ccf493ba1e8bd627346da07fd55c066a5497d806c5537c8627c8e903883e35ac86a05661fd3248f3a WHIRLPOOL 4d033795a504406fc0bd3f33c3353898bee46a44cba1d1b1cd2e3485fdcb69e5904f4dc43e1d3520c3ef85954863bf1325d09e031c2716802e3b00ac74b1680d
diff --git a/dev-python/mergedict/mergedict-0.2.0.ebuild b/dev-python/mergedict/mergedict-0.2.0.ebuild
new file mode 100644
index 00000000000..04bc6870b85
--- /dev/null
+++ b/dev-python/mergedict/mergedict-0.2.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python 'dict' with a merge() method"
+HOMEPAGE="https://github.com/schettino72/mergedict/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/singledispatch[${PYTHON_USEDEP}]"
diff --git a/dev-python/mergedict/metadata.xml b/dev-python/mergedict/metadata.xml
new file mode 100644
index 00000000000..1e9c6e60966
--- /dev/null
+++ b/dev-python/mergedict/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">configclass</remote-id>
+ <remote-id type="github">schettino72/mergedict</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/metadata.xml b/dev-python/metadata.xml
new file mode 100644
index 00000000000..cbb601aa95e
--- /dev/null
+++ b/dev-python/metadata.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The dev-python category contains libraries, utilities or
+ bindings written in or for the Python programming language.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie dev-python enthält Bibliotheken und Werkzeuge für die
+ Programmiersprache Python.
+ </longdescription>
+ <longdescription lang="es">
+ La categoría dev-python contiene librerias y utilidades referentes al
+ lenguaje de programación Python.
+ </longdescription>
+ <longdescription lang="ja">
+ dev-pythonカテゴリーにはPythonプログラミング言語で記述された/のために
+ 記述されたライブラリーと>ユーティリティとバインディングが含まれます。
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria dev-python zawiera biblioteki oraz narzędzia związane
+ z językiem programowania Python.
+ </longdescription>
+ <longdescription lang="nl">
+ De dev-python categorie bevat bibliotheken en hulpmiddelen voor het gebruik
+ van de programmeertaal Python.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm dev-python chứa các thư viện và tiện ích liên quan
+ đến ngôn ngữ lập trình Python.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria dev-python contiene librerie ed utilità per il linguaggio di programmazione Python.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria dev-python contém bibliotecas, utilitários e
+ bindings escritos em ou para a linguagem de programação Python.
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria dev-python zawiera biblioteki, narzędzia i powiązania
+ (bindings) napisane w lub stworzone do pisania w języku programowania
+ Python.
+ </longdescription>
+</catmetadata>
+
diff --git a/dev-python/micawber/Manifest b/dev-python/micawber/Manifest
new file mode 100644
index 00000000000..be9994dcb85
--- /dev/null
+++ b/dev-python/micawber/Manifest
@@ -0,0 +1,2 @@
+DIST micawber-0.3.2.tar.gz 32166 SHA256 d779fe96b0064e58376febb5ea17c733a9084e8fd3b1e8ad6348370f4555362b SHA512 b2cdb058710dd84e15c9816c7a39c9378505426b06ddd419b652db071377e71878264f090488d452a6740585762d022bebac3ac2cea2f87d5b18aa7428521b78 WHIRLPOOL 9651a1084eb56dc5b9a1afcc0b5858edec1873345e8e27578123e30c0fc566ba726634ac3eefe4f0b5f335f997f9061e3bd20badf265acd0a58a836301b08a69
+DIST micawber-0.3.3.tar.gz 32200 SHA256 361be2c2cfbfeadad31354e512abf211128156ddcb3bae76672794964d6a6fb7 SHA512 15f5e3f85e6d3bf44e6a4a3ae975872acb2e9093e15b56a5a3b24573332c811955c84f0ee69d327334b22fa61b29a51ce14657fc7bf2f486268145965c159bc0 WHIRLPOOL c50feda990c17211f7abb65f8e66af35b44d51b13793710c9adde015e463dfa567f21835efa02f2b0a80669dedcc81fba0a70624591fd16309d6c5050a77b28b
diff --git a/dev-python/micawber/files/micawber-0.3.2-remove-examples-from-setup.py.patch b/dev-python/micawber/files/micawber-0.3.2-remove-examples-from-setup.py.patch
new file mode 100644
index 00000000000..3d031e8a91c
--- /dev/null
+++ b/dev-python/micawber/files/micawber-0.3.2-remove-examples-from-setup.py.patch
@@ -0,0 +1,20 @@
+--- micawber-0.3.2.orig/setup.py 2015-03-30 02:08:40.000000000 +0800
++++ micawber-0.3.2/setup.py 2015-07-20 14:53:42.776972042 +0800
+@@ -13,16 +13,11 @@
+ author='Charles Leifer',
+ author_email='coleifer@gmail.com',
+ url='http://github.com/coleifer/micawber/',
+- packages=find_packages(),
++ packages=['micawber'],
+ package_data = {
+ 'micawber': [
+ 'contrib/mcdjango/templates/micawber/*.html',
+ ],
+- 'examples': [
+- #'requirements.txt',
+- '*/static/*.css',
+- '*/templates/*.html',
+- ],
+ },
+ classifiers=[
+ 'Development Status :: 4 - Beta',
diff --git a/dev-python/micawber/metadata.xml b/dev-python/micawber/metadata.xml
new file mode 100644
index 00000000000..59b5b5cb7bd
--- /dev/null
+++ b/dev-python/micawber/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>yngwin@gentoo.org</email>
+ <name>Ben de Groot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">coleifer/micawber</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/micawber/micawber-0.3.2.ebuild b/dev-python/micawber/micawber-0.3.2.ebuild
new file mode 100644
index 00000000000..8778b560e03
--- /dev/null
+++ b/dev-python/micawber/micawber-0.3.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="A small library for extracting rich content from urls"
+HOMEPAGE="https://github.com/coleifer/micawber/"
+SRC_URI="https://github.com/coleifer/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+EXAMPLES=( examples/ )
+PATCHES=( "${FILESDIR}"/${P}-remove-examples-from-setup.py.patch ) #555250
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc -r docs
+}
diff --git a/dev-python/micawber/micawber-0.3.3.ebuild b/dev-python/micawber/micawber-0.3.3.ebuild
new file mode 100644
index 00000000000..94f6f1e68d3
--- /dev/null
+++ b/dev-python/micawber/micawber-0.3.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="A small library for extracting rich content from urls"
+HOMEPAGE="https://github.com/coleifer/micawber/"
+SRC_URI="https://github.com/coleifer/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+EXAMPLES=( examples/ )
+PATCHES=( "${FILESDIR}"/${PN}-0.3.2-remove-examples-from-setup.py.patch ) #555250
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc -r docs
+}
diff --git a/dev-python/milk/Manifest b/dev-python/milk/Manifest
new file mode 100644
index 00000000000..18792295431
--- /dev/null
+++ b/dev-python/milk/Manifest
@@ -0,0 +1,3 @@
+DIST milk-0.5.1.tar.gz 623685 SHA256 f7fedd0f50967130bc0ddd6c1ce99a644305855d1d2d3c5d6d36b103bb749d37 SHA512 3ac6811f4c15b65de87cae0089ce3fd8372d4b349ea9b7e49db581dcd29e27baf6e33ddca9c6d96e832ebe499e9032de253da532d3241fbbaa4ac124d97a8386 WHIRLPOOL 096fee2ab0f5676c1bec9b3876f43a1d12eab215c5931bb2306d77d466924b7f0d3ac3fb026265cbed0123dec2f6eb15f917be060e7ddd5bc677a2c93a7da0da
+DIST milk-0.5.3.tar.gz 620091 SHA256 d98e0c142ab27fe96eb44bd3aefe774984530de82595ac996a61834e05111de9 SHA512 4b685f682229194d03fc9e6031d5e40890aac793ae87bf7c010f866c032ec53205c281ead7db654f1e4bef30a4e68ef325b560b78fe1b0db00344392d60ef4e4 WHIRLPOOL 82260fcd72ea081d30317b0fc066c4fe38f9c3dea253aff4691ada2281fde28f54b020b217174ad1bfc65472b7bd387f2ba382220f019ef339c30ed6ba854867
+DIST milk-0.6.1.tar.gz 628357 SHA256 47041ab5d1795907c092b4802e8b5a20620f32690d7b2f50d8c7817c38e3d304 SHA512 54a94bc1bf760320b53b2f65396e117bdccd0d4d5e6bdb4684b68d96f3cb3beaf3cc9b285d3ba91b1f97ba335750591c1fb2d2115468ec617dbd1cc65fed9f8f WHIRLPOOL 835a01c0685124099786bab06b6444c4e0c038a55669590f4272d10c0c46b98c4122d6677ec29edebf91c4af77eef36abd5f08dba12034aed9ac1c3a648dfa50
diff --git a/dev-python/milk/metadata.xml b/dev-python/milk/metadata.xml
new file mode 100644
index 00000000000..62f6e4aafba
--- /dev/null
+++ b/dev-python/milk/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+ Milk is a machine learning toolkit in Python.
+ Its focus is on supervised classification with several classifiers
+ available: SVMs (based on libsvm), k-NN, random forests, decision
+ trees. It also performs feature selection. These classifiers can be
+ combined in many ways to form different classification systems.
+ For unsupervised learning, milk supports k-means clustering and
+ affinity propagation.
+ Milk is flexible about its inputs. It optimised for numpy arrays, but
+ can often handle anything (for example, for SVMs, you can use any
+ dataype and any kernel and it does the right thing).
+ There is a strong emphasis on speed and low memory usage. Therefore,
+ most of the performance sensitive code is in C++. This is behind
+ Python-based interfaces for convenience.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">milk</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/milk/milk-0.5.1.ebuild b/dev-python/milk/milk-0.5.1.ebuild
new file mode 100644
index 00000000000..223fde8f6f0
--- /dev/null
+++ b/dev-python/milk/milk-0.5.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Machine learning toolkit in Python"
+HOMEPAGE="http://luispedro.org/software/milk"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/numpy"
+DEPEND="dev-python/setuptools
+ dev-cpp/eigen:3
+ test? ( dev-python/milksets sci-libs/scipy[${PYTHON_USEDEP}] )"
diff --git a/dev-python/milk/milk-0.5.3.ebuild b/dev-python/milk/milk-0.5.3.ebuild
new file mode 100644
index 00000000000..75b83282959
--- /dev/null
+++ b/dev-python/milk/milk-0.5.3.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Machine learning toolkit in Python"
+HOMEPAGE="http://luispedro.org/software/milk"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-cpp/eigen:3
+ test? ( dev-python/milksets sci-libs/scipy[${PYTHON_USEDEP}] )"
diff --git a/dev-python/milk/milk-0.6.1.ebuild b/dev-python/milk/milk-0.6.1.ebuild
new file mode 100644
index 00000000000..75b83282959
--- /dev/null
+++ b/dev-python/milk/milk-0.6.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Machine learning toolkit in Python"
+HOMEPAGE="http://luispedro.org/software/milk"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-cpp/eigen:3
+ test? ( dev-python/milksets sci-libs/scipy[${PYTHON_USEDEP}] )"
diff --git a/dev-python/milksets/Manifest b/dev-python/milksets/Manifest
new file mode 100644
index 00000000000..b464e90b3d1
--- /dev/null
+++ b/dev-python/milksets/Manifest
@@ -0,0 +1 @@
+DIST milksets-0.1.3.tar.gz 10438190 SHA256 90fa729a6993ba856e3fe3d02e2a0b08172a91599f122bf17e1b2d48d99ef7b5 SHA512 45ea6b14dc5e15c8797a42483fdbf3f5b8794f68a378b070f39e3117ff98fad810bb9b200f569061f8e65337380d908e32284c8563e74939b5b2cc202f2103d8 WHIRLPOOL 35dd68e09b1c1624f976345a1acf4c39ff28e14a342dec9cb7d64ab275fc3978079ee6200cd3f26bd0aa9d1f7a6dd04b7ebcc01809a385d3ac80ea0eb2ebe78d
diff --git a/dev-python/milksets/metadata.xml b/dev-python/milksets/metadata.xml
new file mode 100644
index 00000000000..f52e62d1286
--- /dev/null
+++ b/dev-python/milksets/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ This packages contains some U.C.I. datasets in a common Pythonic
+ interface, which makes them easy to use with milk.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">milksets</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/milksets/milksets-0.1.3-r1.ebuild b/dev-python/milksets/milksets-0.1.3-r1.ebuild
new file mode 100644
index 00000000000..9fc2edf2504
--- /dev/null
+++ b/dev-python/milksets/milksets-0.1.3-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Datasets in a common Pythonic interface to use with milk"
+HOMEPAGE="http://luispedro.org/software/milksets"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/mimeparse/Manifest b/dev-python/mimeparse/Manifest
new file mode 100644
index 00000000000..70a66005633
--- /dev/null
+++ b/dev-python/mimeparse/Manifest
@@ -0,0 +1 @@
+DIST python-mimeparse-0.1.4.tar.gz 5228 SHA256 3c69a21e37e77f754e6fc09ebda70acd92c90d8a58f29a41cc0248351378ddc3 SHA512 c8eeb298773a0eb36512b1d9a46dfc85423c0dab10b85ed94284bf1bf8dba8c34aeccefd8b6a187434789d5a160ab5d4af81659dd1808ea02078cc2b168e10b3 WHIRLPOOL f83328743b16ae46263e05055d6400617b7858e11837ce892919e26a36348650122b78ee366125a1793b20fa71c641b3606bf834d2936f98dab65b89b740385b
diff --git a/dev-python/mimeparse/metadata.xml b/dev-python/mimeparse/metadata.xml
new file mode 100644
index 00000000000..1a36be27c13
--- /dev/null
+++ b/dev-python/mimeparse/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-mimeparse</remote-id>
+ <remote-id type="github">dbtsai/python-mimeparse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mimeparse/mimeparse-0.1.4-r1.ebuild b/dev-python/mimeparse/mimeparse-0.1.4-r1.ebuild
new file mode 100644
index 00000000000..50425c19312
--- /dev/null
+++ b/dev-python/mimeparse/mimeparse-0.1.4-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Basic functions for handling mime-types in python"
+HOMEPAGE="http://code.google.com/p/mimeparse
+ https://github.com/dbtsai/python-mimeparse"
+MY_PN="python-${PN}"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ "${PYTHON}" mimeparse_test.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ if [[ ${EPYTHON} == pypy* ]]; then
+ local pyver=2.7
+ else
+ local pyver=${EPYTHON#python}
+ fi
+ python_export PYTHON_SITEDIR
+
+ # Previous versions were just called 'mimeparse'
+ cp "${D%/}${PYTHON_SITEDIR}/python_mimeparse-${PV}-py${pyver}.egg-info" \
+ "${D%/}${PYTHON_SITEDIR}/mimeparse-${PV}-py${pyver}.egg-info" || die
+}
diff --git a/dev-python/mimerender/Manifest b/dev-python/mimerender/Manifest
new file mode 100644
index 00000000000..b33fb9ac201
--- /dev/null
+++ b/dev-python/mimerender/Manifest
@@ -0,0 +1,2 @@
+DIST mimerender-0.5.4.tar.gz 6406 SHA256 b9e9d8c71196c5b73f9a513b843ae0d21212ff5b1a6ec5c306373c1d5b7a7402 SHA512 24e633453ddc86c7f7c65a392115d39d85eb39fd59d51bf0c6c619fb1d1a884b28c4dad27dd94154bd1bf6314d7799f680401f3103a73d7ec3773f7c4c6d71a5 WHIRLPOOL b1d8adaf0bf63c627cbe9ce72869e186b1592b6a1a0134e2d3dfa3958de2b20389ad2c4974ed2ad73f84d0bda55761428b1b66f69c61b4e8700a5c4566bc3931
+DIST mimerender-0.5.5.tar.gz 6420 SHA256 387dcf22cfcbad8c72f2b0def6659c9fc720234a1a74ad485618b24e6779bc28 SHA512 35f52ad6c46ec7e37c44be67e52140f19a3def526546a7a370c0b19d4a43e01e213fdb4673c17449de0951066ae208a1f3f70577713242b078eb7080f62f4b24 WHIRLPOOL c6fddcf923d978bfdab88adc0949a695b2b3eb6475e427aa7b72a0563e485ad8f8f3d7d842b7a6b4584f68bae004e2d9c192490fe86208ba2668ce2ddfe68f65
diff --git a/dev-python/mimerender/metadata.xml b/dev-python/mimerender/metadata.xml
new file mode 100644
index 00000000000..5ea2ed67490
--- /dev/null
+++ b/dev-python/mimerender/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mimerender</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mimerender/mimerender-0.5.4.ebuild b/dev-python/mimerender/mimerender-0.5.4.ebuild
new file mode 100644
index 00000000000..0badd57797e
--- /dev/null
+++ b/dev-python/mimerender/mimerender-0.5.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="RESTful HTTP Content Negotiation for Flask, Bottle, web.py and webapp2"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/mimerender"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="dev-python/mimeparse[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/mimerender/mimerender-0.5.5.ebuild b/dev-python/mimerender/mimerender-0.5.5.ebuild
new file mode 100644
index 00000000000..d7765724044
--- /dev/null
+++ b/dev-python/mimerender/mimerender-0.5.5.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="RESTful HTTP Content Negotiation for Flask, Bottle, web.py and webapp2"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/mimerender"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="dev-python/mimeparse[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/minimock/Manifest b/dev-python/minimock/Manifest
new file mode 100644
index 00000000000..f8e476f1dab
--- /dev/null
+++ b/dev-python/minimock/Manifest
@@ -0,0 +1 @@
+DIST MiniMock-1.2.8.tar.gz 13217 SHA256 5fdfdfeadf0fc781d0592a1b90d2fcc11581f682ff7cba6201cfdb15c3ea5a4c SHA512 91133251a6e6b1acc11e6ac4f24404807134f8a7fca49d5f7365d7fdfc6bdd1527e7382da8d866669408b1ad30331a176026dd31bcb0c3b7367b7f778fc61ca7 WHIRLPOOL 768a73dc82499615ee0d0ce9dd7a3e67253c27908778b0fcd0bf07d562254f48ba95128ced78b7599ccf77cf19bec1c1b85d21a60d251f302825516800bda69e
diff --git a/dev-python/minimock/metadata.xml b/dev-python/minimock/metadata.xml
new file mode 100644
index 00000000000..c88fc0c84b8
--- /dev/null
+++ b/dev-python/minimock/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">MiniMock</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/minimock/minimock-1.2.8-r1.ebuild b/dev-python/minimock/minimock-1.2.8-r1.ebuild
new file mode 100644
index 00000000000..de28ebee220
--- /dev/null
+++ b/dev-python/minimock/minimock-1.2.8-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="MiniMock"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="The simplest possible mock library"
+HOMEPAGE="http://pypi.python.org/pypi/MiniMock"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm ppc x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( docs/changelog.rst docs/index.rst )
diff --git a/dev-python/miniupnpc/Manifest b/dev-python/miniupnpc/Manifest
new file mode 100644
index 00000000000..5cf93000073
--- /dev/null
+++ b/dev-python/miniupnpc/Manifest
@@ -0,0 +1 @@
+DIST miniupnpc-1.8.tar.gz 70624 SHA256 bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c SHA512 8eedac9ad473fc952ca8896fe534d6da6b1b234e8b6f35f721394d4c71aca84ed287ca6c4f0455b50d97a45e4cd34e27d99a6813386e0864781364aa607e13d4 WHIRLPOOL 5b76ccbb5ed7daa9bb0d481b424b7c31a5f6dc85c5c812ba10175a29aefc0d3924f3db2aa8c3529d1241be59d67d1d4c702d27aad2de8c8a07fecf3857d73169
diff --git a/dev-python/miniupnpc/files/0001-Link-Python-module-against-the-shared-library.patch b/dev-python/miniupnpc/files/0001-Link-Python-module-against-the-shared-library.patch
new file mode 100644
index 00000000000..d9e6c4317ed
--- /dev/null
+++ b/dev-python/miniupnpc/files/0001-Link-Python-module-against-the-shared-library.patch
@@ -0,0 +1,24 @@
+From 34da047ae5b945a43430f59efe0efefdd8f1ba55 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Wed, 3 Aug 2011 08:28:31 +0200
+Subject: [PATCH] Link Python module against the shared library.
+
+---
+ setup.py | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index ca31f96..f5aef19 100644
+--- a/setup.py
++++ b/setup.py
+@@ -10,6 +10,6 @@ from distutils.core import setup, Extension
+ setup(name="miniupnpc", version="1.5",
+ ext_modules=[
+ Extension(name="miniupnpc", sources=["miniupnpcmodule.c"],
+- extra_objects=["libminiupnpc.a"])
++ libraries=["miniupnpc"])
+ ])
+
+--
+1.7.6
+
diff --git a/dev-python/miniupnpc/metadata.xml b/dev-python/miniupnpc/metadata.xml
new file mode 100644
index 00000000000..f38aad4d9e5
--- /dev/null
+++ b/dev-python/miniupnpc/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+</maintainer>
+<maintainer>
+ <email>nikoli@gmx.us</email>
+ <name>Nikoli</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-python/miniupnpc/miniupnpc-1.8.ebuild b/dev-python/miniupnpc/miniupnpc-1.8.ebuild
new file mode 100644
index 00000000000..804c1f135d0
--- /dev/null
+++ b/dev-python/miniupnpc/miniupnpc-1.8.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 pypy)
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for UPnP client library"
+HOMEPAGE="http://miniupnp.free.fr/"
+SRC_URI="http://miniupnp.free.fr/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND=">=net-libs/miniupnpc-${PV}"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/0001-Link-Python-module-against-the-shared-library.patch
+)
+
+# DOCS are installed by net-libs/miniupnpc.
+DOCS=()
diff --git a/dev-python/misaka/Manifest b/dev-python/misaka/Manifest
new file mode 100644
index 00000000000..1e9401a965a
--- /dev/null
+++ b/dev-python/misaka/Manifest
@@ -0,0 +1 @@
+DIST misaka-1.0.2.tar.gz 78702 SHA256 6197e4886ff0c2718df1b472e40b5fea45f447a7a5b0192a48123ee868973517 SHA512 ba3ef2e4c66e0e33e21bb554c3e317342929b3d9969aaba7e3dbd745430b3952b6bb7d3142a3049c4de3e3dede7cc68a9810cd43642e014949e4564fcb2cc74d WHIRLPOOL 8b36e931b50da2e55a3a21e9ef0955e677dc89db3de49c9b9fab776a94d607542320d067ced9d927a52b9f3b9d09f6d92ca4170738a8bdd4334629b68b262fc3
diff --git a/dev-python/misaka/metadata.xml b/dev-python/misaka/metadata.xml
new file mode 100644
index 00000000000..2a633326801
--- /dev/null
+++ b/dev-python/misaka/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">misaka</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/misaka/misaka-1.0.2.ebuild b/dev-python/misaka/misaka-1.0.2.ebuild
new file mode 100644
index 00000000000..c1b61239f71
--- /dev/null
+++ b/dev-python/misaka/misaka-1.0.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="The Python binding for Sundown, a markdown parsing library"
+HOMEPAGE="http://misaka.61924.nl/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/cython[${PYTHON_USEDEP}]"
diff --git a/dev-python/mistune/Manifest b/dev-python/mistune/Manifest
new file mode 100644
index 00000000000..d0ede317d6e
--- /dev/null
+++ b/dev-python/mistune/Manifest
@@ -0,0 +1,3 @@
+DIST mistune-0.5.1.tar.gz 183864 SHA256 cc66489a28845c0e1848ae290af5b555074eb76185136ca058e8eed1faa89692 SHA512 56399def88cc1daf5df02a97aba49c3dcc2f860d53222e524bfbd5f48f262f01344582bfd647c363e631b25c300923f690cd0e68ff4e179c4974166f8beca95f WHIRLPOOL 7fbf46712111c0f3087203e50630e200c4df395cd6593001bc23761f5b07c6151c3199dd44b607058bcfbe726eef244797423497d304e87a1f7ceacff2df4261
+DIST mistune-0.6.tar.gz 47026 SHA256 d54a69365d01bc97412a39c11674a8aae3f333586e91f38895cc1ad818e13dc5 SHA512 f7f7a7830a733f957c8c541195e061de3ba5843540bc1811639526d7ff0f7b7f549c33af14990bb50e9890eaeb9645cfb9b8cd92e92a4e9a01e388773a33ca16 WHIRLPOOL c52395733faa678655b987a8705f05075ca05922aa5ed5a910d67af35694bdc8a11f7fb8b3fed6398e587dda2208e7e28015756eb5185d372cd3fd3de33610bd
+DIST mistune-0.7.tar.gz 48203 SHA256 1daa2e55f5de63ecde7c446c4677c0447006752f78ad2c9c1c3c3452d395f89f SHA512 0d7450dab279f8dc1a608bccad34ec6a99c54ef26ce2439ffa92e1589b0a505ef11382c5d5db990df0e57ba908e3d4b1198c6416dccaf7f5b798894c898874a3 WHIRLPOOL 51db0cf3ab4990c0ee4b2503e2c1ad2ede225c999d0196a6f24cd4d18a69236d1c9365ffc79f0011b1d2d977aa6a69533a968b2e640bb4c0345234e9e5e5e44c
diff --git a/dev-python/mistune/files/mistune-0.6-inline-html.patch b/dev-python/mistune/files/mistune-0.6-inline-html.patch
new file mode 100644
index 00000000000..f10aee5b6d0
--- /dev/null
+++ b/dev-python/mistune/files/mistune-0.6-inline-html.patch
@@ -0,0 +1,536 @@
+diff --git a/CHANGES.rst b/CHANGES.rst
+index eb204dd..3eb99a7 100644
+--- a/CHANGES.rst
++++ b/CHANGES.rst
+@@ -3,6 +3,14 @@ Changelog
+
+ Here is the full history of mistune.
+
++Version 0.7
++~~~~~~~~~~~
++
++Release date not decided.
++
++* Fix the breaking change in version 0.6 with options: **parse_inline_html** and **parse_block_html**
++
++
+ Version 0.6
+ ~~~~~~~~~~~
+
+diff --git a/README.rst b/README.rst
+index 894833b..f6cb5f9 100644
+--- a/README.rst
++++ b/README.rst
+@@ -38,12 +38,6 @@ Installing mistune with pip::
+
+ $ pip install mistune
+
+-If pip is not available, try easy_install::
+-
+- $ easy_install mistune
+-
+-Cython Feature
+-~~~~~~~~~~~~~~
+
+ Mistune can be faster, if you compile with cython::
+
+@@ -59,10 +53,49 @@ A simple API that render a markdown formatted text:
+
+ import mistune
+
+- mistune.markdown('I am using **markdown**')
+- # output: <p>I am using <strong>markdown</strong></p>
++ mistune.markdown('I am using **mistune markdown parser**')
++ # output: <p>I am using <strong>mistune markdown parser</strong></p>
++
++If you care about performance, it is better to re-use the Markdown instance:
++
++.. code:: python
++
++ import mistune
++
++ markdown = mistune.Markdown()
++ markdown('I am using **mistune markdown parser**')
++
++Mistune has enabled all features by default. You don't have to configure
++anything. But there are options for you to change the parser behaviors.
++
++
++Options
++-------
++
++Here is a list of all options that will affect the rendering results,
++configure them with ``mistune.Renderer``:
++
++.. code:: python
++
++ renderer = mistune.Renderer(escape=True, hard_wrap=True)
++ # use this renderer instance
++ markdown = mistune.Markdown(renderer=renderer)
++ markdown(text)
++
++* **escape**: if set to *True*, all raw html tags will be escaped.
++* **hard_wrap**: if set to *True*, it will has GFM line breaks feature.
++* **use_xhtml**: if set to *True*, all tags will be in xhtml, for example: ``<hr />``.
++* **parse_html**: parse text in block and inline level html.
++* **parse_block_html**: parse text only in block level html.
++* **parse_inline_html**: parse text only in inline level html.
++
++When using the default renderer, you can use one of the following shortcuts::
++
++ mistune.markdown(text, escape=True, hard_wrap=True)
++
++ markdown = mistune.Markdown(escape=True, hard_wrap=True)
++ markdown(text)
+
+-Mistune has all features by default. You don't have to configure anything.
+
+ Renderer
+ --------
+@@ -79,7 +112,7 @@ Here is an example of code highlighting:
+ from pygments.lexers import get_lexer_by_name
+ from pygments.formatters import HtmlFormatter
+
+- class MyRenderer(mistune.Renderer):
++ class HighlightRenderer(mistune.Renderer):
+ def block_code(self, code, lang):
+ if not lang:
+ return '\n<pre><code>%s</code></pre>\n' % \
+@@ -88,9 +121,9 @@ Here is an example of code highlighting:
+ formatter = HtmlFormatter()
+ return highlight(code, lexer, formatter)
+
+- renderer = MyRenderer()
+- md = mistune.Markdown(renderer=renderer)
+- print(md.render('Some Markdown text.'))
++ renderer = HighlightRenderer()
++ markdown = mistune.Markdown(renderer=renderer)
++ print(markdown('Some code text.'))
+
+
+ Block Level
+@@ -127,34 +160,18 @@ Here is a list of span level renderer API::
+ linebreak()
+ newline()
+ link(link, title, content)
+- tag(html)
+ strikethrough(text)
+ text(text)
++ inline_html(text)
+
++Footnotes
++~~~~~~~~~
+
+-Options
+--------
+-
+-Here is a list of all options that will affect the rendering results:
+-
+-.. code:: python
+-
+- renderer = mistune.Renderer(escape=True)
+- md = mistune.Markdown(renderer=renderer)
+- md.render(text)
+-
+-* **escape**: if set to *True*, all raw html tags will be escaped.
+-* **hard_wrap**: if set to *True*, it will has GFM line breaks feature.
+-* **use_xhtml**: if set to *True*, all tags will be in xhtml, for example: ``<hr />``.
+-* **parse_html**: parse text in block level html.
+-
+-When using the default renderer, you can use one of the following shorthands::
+-
+- mistune.markdown(text, escape=True)
+-
+- md = mistune.Markdown(escape=True)
+- md.render(text)
++Here is a list of renderers related to footnotes::
+
++ footnote_ref(key, index)
++ footnote_item(key, text)
++ footnotes(text)
+
+ Lexers
+ ------
+@@ -172,33 +189,23 @@ It is an inline grammar, which requires custom ``InlineGrammar`` and
+ import copy
+ from mistune import Renderer, InlineGrammar, InlineLexer
+
+- class MyRenderer(Renderer):
++ class WikiLinkRenderer(Renderer):
+ def wiki_link(self, alt, link):
+ return '<a href="%s">%s</a>' % (link, alt)
+
++ class WikiLinkInlineLexer(InlineLexer):
++ def enable_wiki_link(self):
++ # add wiki_link rules
++ self.rules.wiki_link = re.compile(
++ r'\[\[' # [[
++ r'([\s\S]+?\|[\s\S]+?)' # Page 2|Page 2
++ r'\]\](?!\])' # ]]
++ )
+
+- class MyInlineGrammar(InlineGrammar):
+- # it would take a while for creating the right regex
+- wiki_link = re.compile(
+- r'\[\[' # [[
+- r'([\s\S]+?\|[\s\S]+?)' # Page 2|Page 2
+- r'\]\](?!\])' # ]]
+- )
+-
+-
+- class MyInlineLexer(InlineLexer):
+- default_rules = copy.copy(InlineLexer.default_rules)
+-
+- # Add wiki_link parser to default rules
+- # you can insert it any place you like
+- default_rules.insert(3, 'wiki_link')
+-
+- def __init__(self, renderer, rules=None, **kwargs):
+- if rules is None:
+- # use the inline grammar
+- rules = MyInlineGrammar()
+-
+- super(MyInlineLexer, self).__init__(renderer, rules, **kwargs)
++ # Add wiki_link parser to default rules
++ # you can insert it some place you like
++ # but place matters, maybe 3 is not good
++ self.default_rules.insert(3, 'wiki_link')
+
+ def output_wiki_link(self, m):
+ text = m.group(1)
+@@ -211,8 +218,10 @@ You should pass the inline lexer to ``Markdown`` parser:
+
+ .. code:: python
+
+- renderer = MyRenderer()
+- inline = MyInlineLexer(renderer)
++ renderer = WikiLinkRenderer()
++ inline = WikiLinkInlineLexer(renderer)
++ # enable the feature
++ inline.enable_wiki_link()
+ markdown = Markdown(renderer, inline=inline)
+ markdown('[[Link Text|Wiki Link]]')
+
+@@ -220,12 +229,21 @@ It is the same with block level lexer. It would take a while to understand
+ the whole mechanism. But you won't do the trick a lot.
+
+
+-Contribution
+-------------
++Contribution & Extensions
++-------------------------
+
+ Mistune itself doesn't accept any extension. It will always be a simple one
+ file script.
+
+ If you want to add features, you can head over to `mistune-contrib`_.
+
++Here are some extensions already in `mistune-contrib`_:
++
++* Math/MathJax features
++* Highlight Code Renderer
++* TOC table of content features
++* MultiMarkdown Metadata parser
++
++Get inspired with the contrib repository.
++
+ .. _`mistune-contrib`: https://github.com/lepture/mistune-contrib
+diff --git a/mistune.py b/mistune.py
+index 316f86d..86d215e 100644
+--- a/mistune.py
++++ b/mistune.py
+@@ -476,6 +476,11 @@ class InlineLexer(object):
+ 'double_emphasis', 'emphasis', 'code',
+ 'linebreak', 'strikethrough', 'text',
+ ]
++ inline_html_rules = [
++ 'escape', 'autolink', 'url', 'link', 'reflink',
++ 'nolink', 'double_emphasis', 'emphasis', 'code',
++ 'linebreak', 'strikethrough', 'text',
++ ]
+
+ def __init__(self, renderer, rules=None, **kwargs):
+ self.renderer = renderer
+@@ -491,6 +496,10 @@ class InlineLexer(object):
+ self._in_link = False
+ self._in_footnote = False
+
++ kwargs.update(self.renderer.options)
++ _to_parse = kwargs.get('parse_html') or kwargs.get('parse_inline_html')
++ self._parse_inline_html = _to_parse
++
+ def __call__(self, text):
+ return self.output(text)
+
+@@ -553,7 +562,15 @@ class InlineLexer(object):
+ return self.renderer.autolink(link, False)
+
+ def output_inline_html(self, m):
+- return self.renderer.inline_html(m.group(0))
++ text = m.group(0)
++ if self._parse_inline_html:
++ if m.group(1) == 'a':
++ self._in_link = True
++ text = self.output(text, rules=self.inline_html_rules)
++ self._in_link = False
++ else:
++ text = self.output(text, rules=self.inline_html_rules)
++ return self.renderer.inline_html(text)
+
+ def output_footnote(self, m):
+ key = _keyify(m.group(1))
+@@ -909,6 +926,10 @@ class Markdown(object):
+ self.footnotes = []
+ self.tokens = []
+
++ # detect if it should parse text in block html
++ _to_parse = kwargs.get('parse_html') or kwargs.get('parse_block_html')
++ self._parse_block_html = _to_parse
++
+ def __call__(self, text):
+ return self.parse(text)
+
+@@ -1072,7 +1093,7 @@ class Markdown(object):
+
+ def output_block_html(self):
+ text = self.token['text']
+- if self.options.get('parse_html') and not self.token.get('pre'):
++ if self._parse_block_html and not self.token.get('pre'):
+ text = self.inline(text)
+ return self.renderer.block_html(text)
+
+diff --git a/tests/test_cases.py b/tests/test_cases.py
+index 933fa4c..3853a67 100644
+--- a/tests/test_cases.py
++++ b/tests/test_cases.py
+@@ -99,12 +99,36 @@ def test_use_xhtml():
+ assert '<img src="bar" alt="foo" title="title" />' in ret
+
+
+-def test_block_html():
++def test_parse_html():
+ ret = mistune.markdown('<div>**foo**</div>')
+ assert '<strong>' not in ret
+ ret = mistune.markdown('<div>**foo**</div>', parse_html=True)
+ assert '<strong>' in ret
+
++ ret = mistune.markdown('<span>**foo**</span>')
++ assert '<strong>' not in ret
++ ret = mistune.markdown('<span>**foo**</span>', parse_html=True)
++ assert '<strong>' in ret
++
++ ret = mistune.markdown('<span>http://example.com</span>', parse_html=True)
++ assert 'href' in ret
++ ret = mistune.markdown('<a>http://example.com</a>', parse_html=True)
++ assert 'href' not in ret
++
++
++def test_parse_inline_html():
++ ret = mistune.markdown('<div>**foo**</div>', parse_inline_html=True)
++ assert '<strong>' not in ret
++ ret = mistune.markdown('<span>**foo**</span>', parse_inline_html=True)
++ assert '<strong>' in ret
++
++
++def test_parse_block_html():
++ ret = mistune.markdown('<div>**foo**</div>', parse_block_html=True)
++ assert '<strong>' in ret
++ ret = mistune.markdown('<span>**foo**</span>', parse_block_html=True)
++ assert '<strong>' not in ret
++
+
+ def test_trigger_more_cases():
+ markdown = mistune.Markdown(
+@@ -114,79 +138,3 @@ def test_trigger_more_cases():
+ )
+ ret = markdown.render('foo[^foo]\n\n[^foo]: foo\n\n[^foo]: bar\n')
+ assert 'bar' not in ret
+-
+-
+-def test_custom_lexer():
+- import copy
+-
+- class MyInlineGrammar(mistune.InlineGrammar):
+- # it would take a while for creating the right regex
+- wiki_link = re.compile(
+- r'\[\[' # [[
+- r'([\s\S]+?\|[\s\S]+?)' # Page 2|Page 2
+- r'\]\](?!\])' # ]]
+- )
+-
+- class MyInlineLexer(mistune.InlineLexer):
+- default_rules = copy.copy(mistune.InlineLexer.default_rules)
+- default_rules.insert(3, 'wiki_link')
+-
+- def __init__(self, renderer, rules=None, **kwargs):
+- if rules is None:
+- rules = MyInlineGrammar()
+-
+- super(MyInlineLexer, self).__init__(renderer, rules, **kwargs)
+-
+- def output_wiki_link(self, m):
+- text = m.group(1)
+- alt, link = text.split('|')
+- return '<a href="%s">%s</a>' % (link, alt)
+-
+- markdown = mistune.Markdown(inline=MyInlineLexer)
+- ret = markdown('[[Link Text|Wiki Link]]')
+- assert '<a href' in ret
+-
+-
+-def test_token_tree():
+- """Tests a Renderer that returns a list from the placeholder method."""
+-
+- class CustomRenderer(mistune.Renderer):
+- def placeholder(self):
+- return []
+-
+- def __getattribute__(self, name):
+- """Saves the arguments to each Markdown handling method."""
+- found = CustomRenderer.__dict__.get(name)
+- if found:
+- return object.__getattribute__(self, name)
+-
+- def fake_method(*args, **kwargs):
+- return [(name, args, kwargs)]
+- return fake_method
+-
+- with open(os.path.join(root, 'fixtures', 'data', 'tree.md')) as f:
+- content = f.read()
+-
+- expected = [
+- ('header', ([('text', ('Title here',), {})], 2, 'Title here'), {}),
+- ('paragraph', ([('text', ('Some text.',), {})],), {}),
+- ('paragraph',
+- ([('text', ('In two paragraphs. And then a list.',), {})],),
+- {}),
+- ('list',
+- ([('list_item', ([('text', ('foo',), {})],), {}),
+- ('list_item',
+- ([('text', ('bar',), {}),
+- ('list',
+- ([('list_item', ([('text', ('meep',), {})],), {}),
+- ('list_item', ([('text', ('stuff',), {})],), {})],
+- True),
+- {})],),
+- {})],
+- False),
+- {})
+- ]
+-
+- processor = mistune.Markdown(renderer=CustomRenderer())
+- found = processor.render(content)
+- assert expected == found, "Expected:\n%r\n\nFound:\n%r" % (expected, found)
+diff --git a/tests/test_subclassing.py b/tests/test_subclassing.py
+index 2cebfc0..f0df225 100644
+--- a/tests/test_subclassing.py
++++ b/tests/test_subclassing.py
+@@ -2,6 +2,7 @@
+
+ import os
+ import re
++import copy
+ import mistune
+
+ root = os.path.dirname(__file__)
+@@ -73,7 +74,7 @@ class MarkdownWithMath(mistune.Markdown):
+ )
+
+
+-class CustomRenderer(mistune.Renderer):
++class MathRenderer(mistune.Renderer):
+ def block_math(self, text):
+ return '$$%s$$' % text
+
+@@ -92,7 +93,7 @@ def assert_data(filename):
+ else:
+ text = filename
+
+- rv = MarkdownWithMath(renderer=CustomRenderer()).render(text)
++ rv = MarkdownWithMath(renderer=MathRenderer()).render(text)
+ assert text in rv
+
+
+@@ -109,3 +110,82 @@ def test_markdown2html_math():
+ def test_math_paragraph():
+ # https://github.com/ipython/ipython/issues/6724
+ assert_data('math-paragraph.md')
++
++
++class WikiInlineGrammar(mistune.InlineGrammar):
++ # it would take a while for creating the right regex
++ wiki_link = re.compile(
++ r'\[\[' # [[
++ r'([\s\S]+?\|[\s\S]+?)' # Page 2|Page 2
++ r'\]\](?!\])' # ]]
++ )
++
++
++class WikiInlineLexer(mistune.InlineLexer):
++ default_rules = copy.copy(mistune.InlineLexer.default_rules)
++ default_rules.insert(3, 'wiki_link')
++
++ def __init__(self, renderer, rules=None, **kwargs):
++ if rules is None:
++ rules = WikiInlineGrammar()
++
++ super(WikiInlineLexer, self).__init__(renderer, rules, **kwargs)
++
++ def output_wiki_link(self, m):
++ text = m.group(1)
++ alt, link = text.split('|')
++ return '<a href="%s">%s</a>' % (link, alt)
++
++
++def test_custom_lexer():
++ markdown = mistune.Markdown(inline=WikiInlineLexer)
++ ret = markdown('[[Link Text|Wiki Link]]')
++ assert '<a href' in ret
++
++
++class TokenTreeRenderer(mistune.Renderer):
++ # options is required
++ options = {}
++
++ def placeholder(self):
++ return []
++
++ def __getattribute__(self, name):
++ """Saves the arguments to each Markdown handling method."""
++ found = TokenTreeRenderer.__dict__.get(name)
++ if found is not None:
++ return object.__getattribute__(self, name)
++
++ def fake_method(*args, **kwargs):
++ return [(name, args, kwargs)]
++ return fake_method
++
++
++def test_token_tree():
++ """Tests a Renderer that returns a list from the placeholder method."""
++ with open(os.path.join(root, 'fixtures', 'data', 'tree.md')) as f:
++ content = f.read()
++
++ expected = [
++ ('header', ([('text', ('Title here',), {})], 2, 'Title here'), {}),
++ ('paragraph', ([('text', ('Some text.',), {})],), {}),
++ ('paragraph',
++ ([('text', ('In two paragraphs. And then a list.',), {})],),
++ {}),
++ ('list',
++ ([('list_item', ([('text', ('foo',), {})],), {}),
++ ('list_item',
++ ([('text', ('bar',), {}),
++ ('list',
++ ([('list_item', ([('text', ('meep',), {})],), {}),
++ ('list_item', ([('text', ('stuff',), {})],), {})],
++ True),
++ {})],),
++ {})],
++ False),
++ {})
++ ]
++
++ processor = mistune.Markdown(renderer=TokenTreeRenderer())
++ found = processor.render(content)
++ assert expected == found, "Expected:\n%r\n\nFound:\n%r" % (expected, found)
diff --git a/dev-python/mistune/metadata.xml b/dev-python/mistune/metadata.xml
new file mode 100644
index 00000000000..3266c54d66b
--- /dev/null
+++ b/dev-python/mistune/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">mistune</remote-id>
+ <remote-id type="github">lepture/mistune</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mistune/mistune-0.5.1.ebuild b/dev-python/mistune/mistune-0.5.1.ebuild
new file mode 100644
index 00000000000..c8fbbb0e707
--- /dev/null
+++ b/dev-python/mistune/mistune-0.5.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="The fastest markdown parser in pure Python"
+HOMEPAGE="https://pypi.python.org/pypi/mistune https://github.com/lepture/mistune"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/cython[$(python_gen_usedep 'python*')]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/mistune/mistune-0.6-r1.ebuild b/dev-python/mistune/mistune-0.6-r1.ebuild
new file mode 100644
index 00000000000..a10ce82299b
--- /dev/null
+++ b/dev-python/mistune/mistune-0.6-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="The fastest markdown parser in pure Python"
+HOMEPAGE="https://pypi.python.org/pypi/mistune https://github.com/lepture/mistune"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/cython[$(python_gen_usedep 'python*')]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}"/${P}-inline-html.patch )
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/mistune/mistune-0.7.ebuild b/dev-python/mistune/mistune-0.7.ebuild
new file mode 100644
index 00000000000..9ba8e32b7d8
--- /dev/null
+++ b/dev-python/mistune/mistune-0.7.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="The fastest markdown parser in pure Python"
+HOMEPAGE="https://pypi.python.org/pypi/mistune https://github.com/lepture/mistune"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/cython[$(python_gen_usedep 'python*')]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/mkdocs/Manifest b/dev-python/mkdocs/Manifest
new file mode 100644
index 00000000000..5e5c66e965c
--- /dev/null
+++ b/dev-python/mkdocs/Manifest
@@ -0,0 +1,3 @@
+DIST mkdocs-0.11.1.tar.gz 3688578 SHA256 dced877e483bf38bc0842ff656ad88196142252597c5e5bfd40973042d179bfe SHA512 dff3040be2b032447c500a9037876c446d7f208773f33a078ed93fc63f9c564f7ba382916d7879ae4d3f61300fdec1185d9f6a2d53cfb918fd5cfdf8e47c67b9 WHIRLPOOL c040e7725cac975b363e2ad110394d3b68e381fae6ff830bba7bb07d8d8262361ad0853db99e8133a8fed17a5a45761129fb48c59111a5dd6b0ea4b76006588b
+DIST mkdocs-0.12.2.tar.gz 6042907 SHA256 3d96844b742c00e7466d63a713a3b6b01575aa71f6ae7214dd12797d48df38b8 SHA512 149d8e27df8474ade24e4cbff1b8eef1d7a7549997499c7df774afdb89bc9fe0d8de7d869d8b29aba883d1672032c76e8dbdb7e8982da6f94e2145d0b554e677 WHIRLPOOL c476ff900c94cf880c7f5c5f8edb615f11e4f169bae0b696a217de0c7384c7fb4818b5f9afdfb8a6f7c5c77877ada518f938a1b0b756703b5866f82b6a240262
+DIST mkdocs-0.14.0.tar.gz 6248506 SHA256 fd3e1623dcd7027dbac55f4d8c4f1c1b990e87588ee463999e717b5083556b73 SHA512 47c95f258362df8b124a9689a79a9927d26b1f7816b027fd14d193c79bb5340bdea8770c47566e00452edcdf801fe858569f4c76aa9d3f1799e6e7100bb916ff WHIRLPOOL be64596ebbd3c206ce805fa268719db49ff16272d63562c80664d9515f3a164304db80b680dcae7ff1a50a61cc42aa8a47c2df9ff6be270788eae36b5fb1e78d
diff --git a/dev-python/mkdocs/files/0.12.2-skip-invalid-test.patch b/dev-python/mkdocs/files/0.12.2-skip-invalid-test.patch
new file mode 100644
index 00000000000..cb8a23eb813
--- /dev/null
+++ b/dev-python/mkdocs/files/0.12.2-skip-invalid-test.patch
@@ -0,0 +1,12 @@
+diff --git a/mkdocs/tests/config_tests.py b/mkdocs/tests/config_tests.py
+index 647c695..b26d59d 100644
+--- a/mkdocs/tests/config_tests.py
++++ b/mkdocs/tests/config_tests.py
+@@ -130,7 +130,6 @@ class ConfigTests(unittest.TestCase):
+ {'docs_dir': 'docs', 'site_dir': ''},
+ {'docs_dir': '', 'site_dir': 'site'},
+ {'docs_dir': '', 'site_dir': ''},
+- {'docs_dir': j('..', 'mkdocs', 'docs'), 'site_dir': 'docs'},
+ )
+
+ conf = {
diff --git a/dev-python/mkdocs/files/skip-invalid-test.patch b/dev-python/mkdocs/files/skip-invalid-test.patch
new file mode 100644
index 00000000000..58bf9e4c01d
--- /dev/null
+++ b/dev-python/mkdocs/files/skip-invalid-test.patch
@@ -0,0 +1,24 @@
+diff --git a/mkdocs/tests/config/config_options_tests.py b/mkdocs/tests/config/config_options_tests.py
+index 1721bdd..4a41658 100644
+--- a/mkdocs/tests/config/config_options_tests.py
++++ b/mkdocs/tests/config/config_options_tests.py
+@@ -180,7 +180,6 @@ class SiteDirTest(unittest.TestCase):
+ {'docs_dir': '.', 'site_dir': '.'},
+ {'docs_dir': 'docs', 'site_dir': ''},
+ {'docs_dir': '', 'site_dir': ''},
+- {'docs_dir': j('..', 'mkdocs', 'docs'), 'site_dir': 'docs'},
+ )
+
+ for test_config in test_configs:
+diff --git a/mkdocs/tests/config/config_tests.py b/mkdocs/tests/config/config_tests.py
+index fe32fd9..d5ce61e 100644
+--- a/mkdocs/tests/config/config_tests.py
++++ b/mkdocs/tests/config/config_tests.py
+@@ -181,7 +181,6 @@ class ConfigTests(unittest.TestCase):
+ {'docs_dir': '.', 'site_dir': '.'},
+ {'docs_dir': 'docs', 'site_dir': ''},
+ {'docs_dir': '', 'site_dir': ''},
+- {'docs_dir': j('..', 'mkdocs', 'docs'), 'site_dir': 'docs'},
+ )
+
+ conf = {
diff --git a/dev-python/mkdocs/metadata.xml b/dev-python/mkdocs/metadata.xml
new file mode 100644
index 00000000000..e39764a8ab1
--- /dev/null
+++ b/dev-python/mkdocs/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">tomchristie/mkdocs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mkdocs/mkdocs-0.11.1-r1.ebuild b/dev-python/mkdocs/mkdocs-0.11.1-r1.ebuild
new file mode 100644
index 00000000000..fed5d4d0089
--- /dev/null
+++ b/dev-python/mkdocs/mkdocs-0.11.1-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Project documentation with Markdown."
+HOMEPAGE="http://www.mkdocs.org"
+SRC_URI="https://github.com/tomchristie/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+RDEPEND="
+ >=dev-python/jinja-2.7.1[${PYTHON_USEDEP}]
+ >=dev-python/markdown-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
+ >=dev-python/watchdog-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/ghp-import-0.4.1[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ ebegin 'patching setup.py'
+ sed \
+ -e "20s/,[^']*//" \
+ -i setup.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" -m mkdocs.main build || die "failed to build documentation"
+ fi
+}
+
+python_test() {
+ nosetests mkdocs/test.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( site/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mkdocs/mkdocs-0.12.2.ebuild b/dev-python/mkdocs/mkdocs-0.12.2.ebuild
new file mode 100644
index 00000000000..042b4fa9fcc
--- /dev/null
+++ b/dev-python/mkdocs/mkdocs-0.12.2.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Project documentation with Markdown."
+HOMEPAGE="http://www.mkdocs.org"
+SRC_URI="https://github.com/tomchristie/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc test"
+
+CDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="
+ ${CDEPEND}
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/ghp-import-0.4.1[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.7.1[${PYTHON_USEDEP}]
+ >=dev-python/livereload-2.3.2[${PYTHON_USEDEP}]
+ >=dev-python/markdown-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PV}"-skip-invalid-test.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" -m mkdocs.main build || die "failed to build documentation"
+ fi
+}
+
+python_test() {
+ nosetests mkdocs/tests || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( site/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mkdocs/mkdocs-0.14.0.ebuild b/dev-python/mkdocs/mkdocs-0.14.0.ebuild
new file mode 100644
index 00000000000..7a86da10a52
--- /dev/null
+++ b/dev-python/mkdocs/mkdocs-0.14.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Project documentation with Markdown."
+HOMEPAGE="http://www.mkdocs.org"
+SRC_URI="https://github.com/tomchristie/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+CDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="
+ ${CDEPEND}
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/click-4.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.7.1[${PYTHON_USEDEP}]
+ >=dev-python/livereload-2.3.2[${PYTHON_USEDEP}]
+ >=dev-python/markdown-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.1[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/skip-invalid-test.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests mkdocs/tests || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/mkpythonproj/Manifest b/dev-python/mkpythonproj/Manifest
new file mode 100644
index 00000000000..bac8e8f0998
--- /dev/null
+++ b/dev-python/mkpythonproj/Manifest
@@ -0,0 +1 @@
+DIST mkpythonproj-1.9.tar.gz 34828 SHA256 c89385ce08b46c81c4dbe1a9f77d2078a80ed49fc2fe11c81baf89f3ad68ead5 SHA512 6ace3a00657ca1e853b882e897ae727eede5f1f5d72f016b439be2d747ea7cf4954aed85032a50549c1a44f88fd98afd727476bef77797fa53c2234e1d22673b WHIRLPOOL 4e9564bc4beb1e23670a8e0d5d81c6f7069342ddc3fe403af906f8a516405886d287b9c550912f76f3d3f9e7d56efa1c131e801e8935a5edacd32d8aeea8b9c6
diff --git a/dev-python/mkpythonproj/metadata.xml b/dev-python/mkpythonproj/metadata.xml
new file mode 100644
index 00000000000..0d924dec2c7
--- /dev/null
+++ b/dev-python/mkpythonproj/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/mkpythonproj/mkpythonproj-1.9.ebuild b/dev-python/mkpythonproj/mkpythonproj-1.9.ebuild
new file mode 100644
index 00000000000..a332c12ef56
--- /dev/null
+++ b/dev-python/mkpythonproj/mkpythonproj-1.9.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Creates the framework for a new Python project or script"
+HOMEPAGE="http://www.seanet.com/~hgg9140/comp/mkpythonproj/doc/index.html"
+SRC_URI="http://www.seanet.com/~hgg9140/comp/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mock/Manifest b/dev-python/mock/Manifest
new file mode 100644
index 00000000000..87ab07ab8e3
--- /dev/null
+++ b/dev-python/mock/Manifest
@@ -0,0 +1,3 @@
+DIST mock-1.0.1.tar.gz 818644 SHA256 b839dd2d9c117c701430c149956918a423a9863b48b09c90e30a6013e7d2f44f SHA512 4f6f4ebc34843e16b15d866e415ad9992e79bd266a63a22fee31b773ba77615e3406bc8890ceed92c0ee296380d68c46299c4c4448a3526f9cb96b258d32cf58 WHIRLPOOL d5a83199a355d9dc8f327f287e6f6fb889f569eb6642c86390aead3f91505c5fb98512e15ed34cadb407dc0a56d541395132872f1a910d20d330d6d3190f164c
+DIST mock-1.2.0.tar.gz 70370 SHA256 c2df20835beea1c018f4ecc8382317c50aea01351caae1730933f564757d571e SHA512 61a04ca2d4f1f0d9f682b86d569a1f1eafa077f0dcb40903d3970b4d29e31b4258259c26e55548e0c49bbb14ca21715233d58d9f34ca4afb3cec2d683fbf043f WHIRLPOOL b93ed20a696e90f48e83016f90560a2504f6892d8f33d7075e19dcae9c9d8b59d69c5022355cb8b95c119970478a7bf244b34455cbe75d36438efaec78e82673
+DIST mock-1.3.0.tar.gz 70908 SHA256 1e247dbecc6ce057299eb7ee019ad68314bb93152e81d9a6110d35f4d5eca0f6 SHA512 10cbb78b89f2e82abfcadc035a526182f83b59df4775cd85acfdbeb4505791c63b7a3761e6126a08d9aedbd07ead8632ac2a728dc07a362f4aaeea694bdecaf9 WHIRLPOOL 783fa1a7dade482c318805cc34bc642e29403e2fd1e6010acf212283d20981216cc8ef85cfea3e72c9f521d2954cf8e895cbe7ee126cd84d780c8b80727421f2
diff --git a/dev-python/mock/files/mock-1.0.1-fix-python3.4.patch b/dev-python/mock/files/mock-1.0.1-fix-python3.4.patch
new file mode 100644
index 00000000000..166ee2ac00d
--- /dev/null
+++ b/dev-python/mock/files/mock-1.0.1-fix-python3.4.patch
@@ -0,0 +1,30 @@
+# Fix test errors with python 3.4 - thanks to Ubuntu developer Barry Warsaw.
+
+diff -r d356250e275d mock.py
+--- a/mock.py Tue Apr 09 14:53:33 2013 +0100
++++ b/mock.py Wed Feb 26 15:12:18 2014 -0500
+@@ -239,12 +239,21 @@
+ funcopy.__name__ = func.__name__
+ funcopy.__doc__ = func.__doc__
+ #funcopy.__dict__.update(func.__dict__)
+- funcopy.__module__ = func.__module__
++ try:
++ funcopy.__module__ = func.__module__
++ except AttributeError:
++ pass
+ if not inPy3k:
+ funcopy.func_defaults = func.func_defaults
+ return
+- funcopy.__defaults__ = func.__defaults__
+- funcopy.__kwdefaults__ = func.__kwdefaults__
++ try:
++ funcopy.__defaults__ = func.__defaults__
++ except AttributeError:
++ pass
++ try:
++ funcopy.__kwdefaults__ = func.__kwdefaults__
++ except AttributeError:
++ pass
+
+
+ def _callable(obj):
diff --git a/dev-python/mock/metadata.xml b/dev-python/mock/metadata.xml
new file mode 100644
index 00000000000..65b34d679ea
--- /dev/null
+++ b/dev-python/mock/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mock</remote-id>
+ <remote-id type="github">testing-cabal/mock</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mock/mock-1.0.1-r1.ebuild b/dev-python/mock/mock-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..b90e7514d98
--- /dev/null
+++ b/dev-python/mock/mock-1.0.1-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python Mocking and Patching Library for Testing"
+HOMEPAGE="http://www.voidspace.org.uk/python/mock/ http://pypi.python.org/pypi/mock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="doc test"
+
+# dev-python/unittest2 is not required with Python >=3.2.
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( docs/*.txt )
+
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r html/ -x html/objects.inv -x html/output.txt -x html/_sources
+ fi
+}
diff --git a/dev-python/mock/mock-1.0.1-r2.ebuild b/dev-python/mock/mock-1.0.1-r2.ebuild
new file mode 100644
index 00000000000..06557c703ac
--- /dev/null
+++ b/dev-python/mock/mock-1.0.1-r2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python Mocking and Patching Library for Testing"
+HOMEPAGE="http://www.voidspace.org.uk/python/mock/ http://pypi.python.org/pypi/mock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="doc test"
+
+# dev-python/unittest2 is not required with Python >=3.2.
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/unittest2[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+RDEPEND=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-fix-python3.4.patch
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( docs/*.txt )
+
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r html/ -x html/objects.inv -x html/output.txt -x html/_sources
+ fi
+}
diff --git a/dev-python/mock/mock-1.2.0.ebuild b/dev-python/mock/mock-1.2.0.ebuild
new file mode 100644
index 00000000000..c1331c7a1d3
--- /dev/null
+++ b/dev-python/mock/mock-1.2.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Rolling backport of unittest.mock for all Pythons"
+HOMEPAGE="https://github.com/testing-cabal/mock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~m68k ~mips ~s390 ~sh ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="doc test"
+
+CDEPEND="$(python_gen_cond_dep 'dev-python/funcsigs[${PYTHON_USEDEP}]' 'python2_7')"
+DEPEND="
+ >=dev-python/setuptools-17.1[${PYTHON_USEDEP}]
+ >=dev-python/pbr-1.3[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/unittest2-1.1.0[${PYTHON_USEDEP}]' python{2_7,3_3} pypy)
+ )"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/six-1.7[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ nosetests || die "tests fail under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local DOCS=( docs/*.txt )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mock/mock-1.3.0-r1.ebuild b/dev-python/mock/mock-1.3.0-r1.ebuild
new file mode 100644
index 00000000000..e7b8f1a1829
--- /dev/null
+++ b/dev-python/mock/mock-1.3.0-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Rolling backport of unittest.mock for all Pythons"
+HOMEPAGE="https://github.com/testing-cabal/mock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~m68k ~mips ~s390 ~sh ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="doc test"
+
+CDEPEND="$(python_gen_cond_dep 'dev-python/funcsigs[${PYTHON_USEDEP}]' 'python2_7')
+ >=dev-python/pbr-1.3[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/setuptools-17.1[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/unittest2-1.1.0[${PYTHON_USEDEP}]' python{2_7,3_3} pypy)
+ )"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/six-1.7[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ nosetests || die "tests fail under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local DOCS=( docs/*.txt )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mocker/Manifest b/dev-python/mocker/Manifest
new file mode 100644
index 00000000000..067a516c2da
--- /dev/null
+++ b/dev-python/mocker/Manifest
@@ -0,0 +1 @@
+DIST mocker-1.1.1.tar.bz2 36357 SHA256 2009911707c74b28bdc9959b5224717e45fcb93475b4b7bb4efad3285fcf2919 SHA512 79fc08220b932f5e8ec4999a872fd522a71e2d193fb7842a60b164793863d97aefbd5b16469243c323b8ee151a33e1ea18703b7ceaa239c816bc09a3fb7f6825 WHIRLPOOL 29103b97a278575a424ff46f986459d93751a2865fb1eecfa37134053dfdd03e0998f280b44c43d9c9bd4044b7121b20c191e7dc1989790d774eda653f731619
diff --git a/dev-python/mocker/files/mocker-1.1.1-pypy_test.patch b/dev-python/mocker/files/mocker-1.1.1-pypy_test.patch
new file mode 100644
index 00000000000..b0036ad6dd1
--- /dev/null
+++ b/dev-python/mocker/files/mocker-1.1.1-pypy_test.patch
@@ -0,0 +1,29 @@
+Upstream maintainer assures us "The "assertRaises" line should be skipped IMO. The next call actually succeeds,
+but of course there is no point to test for unsupported functions."
+Re the 2nd patch;
+PyPy actually behaves as if __slots__ was added to the class
+see http://morepypy.blogspot.ch/2010/11/efficiently-implementing-python-objects.html
+diff -ur mocker-1.1.1.orig/test.py mocker-1.1.1/test.py
+--- test.py 2012-05-19 19:27:02.000000000 +0800
++++ test.py 2012-07-11 14:43:57.848953730 +0800
+@@ -3880,7 +3881,7 @@
+ from zlib import adler32
+ # If that fails, this test has to change because either adler32 has
+ # changed, or the implementation of getargspec has changed.
+- self.assertRaises(TypeError, inspect.getargspec, adler32)
++ # self.assertRaises(TypeError, inspect.getargspec, adler32)
+ try:
+ task = SpecChecker(adler32)
+ task.run(self.path("asd"))
+@@ -4060,7 +4060,8 @@
+ self.calendar = calendar
+ obj = C()
+ self.task.replay()
+- self.assertEquals(type(obj.calendar), Mock)
+- self.assertTrue(obj.calendar is self.mock)
++ if not hasattr(sys, 'pypy_version_info'):
++ self.assertEquals(type(obj.calendar), Mock)
++ self.assertTrue(obj.calendar is self.mock)
+
+ def test_install_on_submodule(self):
+ from os import path
diff --git a/dev-python/mocker/metadata.xml b/dev-python/mocker/metadata.xml
new file mode 100644
index 00000000000..ff6fd8b591a
--- /dev/null
+++ b/dev-python/mocker/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mocker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mocker/mocker-1.1.1-r1.ebuild b/dev-python/mocker/mocker-1.1.1-r1.ebuild
new file mode 100644
index 00000000000..ad342178d58
--- /dev/null
+++ b/dev-python/mocker/mocker-1.1.1-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Platform for Python test doubles: mocks, stubs, fakes, and dummies"
+HOMEPAGE="http://labix.org/mocker http://pypi.python.org/pypi/mocker"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${P}-pypy_test.patch )
+
+python_test() {
+ "${PYTHON}" test.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/mockldap/Manifest b/dev-python/mockldap/Manifest
new file mode 100644
index 00000000000..442ce209d6a
--- /dev/null
+++ b/dev-python/mockldap/Manifest
@@ -0,0 +1,4 @@
+DIST mockldap-0.2.2.tar.gz 22237 SHA256 a2327eeb735a283da7dfa91a878a80d8804fc0bee66e835ac9b62054cf8d00b5 SHA512 79beb00d663e7ba48972cfe85eae59916f2d10f9924ee232f71bdd2b8b821d9d6276b4c54a2480d2726afb0f162193058e390aa7ee614dad0a9ffa652f8cd244 WHIRLPOOL 4457c4d8b6ec75ac0b4379dcd0c2927455d0ba2acd74d15db86c328a49bdd476a5a32cf81fad5c89e67461f4b09272740eb0d52fd5dd1c5827ab182d72e149b7
+DIST mockldap-0.2.3.tar.gz 22369 SHA256 a37eb912cbc0cab5320cb848530c90729d87939ff9264dc38adba3bffc596e65 SHA512 3e17d9f3d6ae5a33014e2ccfe521170af1b136f38b68b216df721059941d958b87f03fb4ed5772282d319cfae9974cf1ae9e4e3bec629d161761e2018ed26788 WHIRLPOOL 2cf75ee5fabf4a350f82fc7b70b7c834e20f3bfddbc33741668c9d6765b57141dd18ae81b3fc2b15c9df20389374f3129e826e193723b220c51f2c721c48f7ba
+DIST mockldap-0.2.4.tar.gz 22460 SHA256 6d96035920cec440ca415fc809a37f60ccf394ef169b0693c03e5bba65927532 SHA512 536c511e28ac2a3ed0b1a525db71a60f12a8e6bddb93fe2873fdfeddc80067e83a3f3ba8f8cd98a50fe6ce931232da9575102dba9fa9525644d0f1b3733c694e WHIRLPOOL 6b70446e01f7fb0e18cc6c0333e926e4ef8976b95bfb058341a739f55e6ab951b07f9e41f5e787dd0264100e82e31efd0b523c2095d317c6f9fa0f80908ce941
+DIST mockldap-0.2.5.tar.gz 22775 SHA256 994eae87a9ff4a13ceb192d71c66a3bc041663f07db227cfbac81c9a87b94d77 SHA512 d1a2eb1d860daaa7e9063d80ec1df3ad69a44639ce6894db3ee47766a40d92a50d6fc1e0ae84000798fb86b7a6082c353bb9a3941dd01571bd52d761bcb05010 WHIRLPOOL d4dec0cb06a93100be309351a459f741ffb90849629b8a68ef81711b002b73afc81619c091687983606d9490802cb1c8a24e180093b70d9e891cfdb256d2383c
diff --git a/dev-python/mockldap/files/mapping.patch b/dev-python/mockldap/files/mapping.patch
new file mode 100644
index 00000000000..f3cdd862a9d
--- /dev/null
+++ b/dev-python/mockldap/files/mapping.patch
@@ -0,0 +1,12 @@
+Disable un-needed d'loading during doc build
+diff -ur mockldap-0.1.7.orig/docs/source/conf.py mockldap-0.1.7/docs/source/conf.py
+--- docs/source/conf.py 2014-03-08 00:51:00.000000000 +0800
++++ docs/source/conf.py 2014-04-12 16:04:52.113446583 +0800
+@@ -28,7 +28,6 @@
+ # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+ extensions = [
+ 'sphinx.ext.autodoc',
+- 'sphinx.ext.intersphinx',
+ 'sphinx.ext.viewcode',
+ ]
+
diff --git a/dev-python/mockldap/files/mockldap-0.1.5-modify_s-backport.patch b/dev-python/mockldap/files/mockldap-0.1.5-modify_s-backport.patch
new file mode 100644
index 00000000000..c66c63890ae
--- /dev/null
+++ b/dev-python/mockldap/files/mockldap-0.1.5-modify_s-backport.patch
@@ -0,0 +1,21 @@
+# HG changeset patch
+# User Peter Sagerson <psagers.hg@ignorare.net>
+# Date 1392920906 28800
+# Node ID 6433fd7dc97473150114c06a90d189a62a39951f
+# Parent f298b032a25ef6c2bcc6749d9bf096352a49f37d
+Fix tests to match the recent modify_s change.
+
+diff --git a/src/mockldap/tests.py b/src/mockldap/tests.py
+--- a/src/mockldap/tests.py
++++ b/src/mockldap/tests.py
+@@ -453,8 +453,8 @@
+
+ self.ldapobj.modify_s(manager[0], mod_list)
+
+- self.assertNotIn('objectClass',
+- self.ldapobj.directory[manager[0]].keys())
++ self.assertEqual(self.ldapobj.directory[manager[0]]['objectClass'],
++ [])
+
+ def test_modify_s_invalid_dn(self):
+ mod_list = [(ldap.MOD_DELETE, 'objectClass', None)]
diff --git a/dev-python/mockldap/metadata.xml b/dev-python/mockldap/metadata.xml
new file mode 100644
index 00000000000..4f80f5ed7d9
--- /dev/null
+++ b/dev-python/mockldap/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mockldap</remote-id>
+ <remote-id type="bitbucket">psagers/mockldap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mockldap/mockldap-0.2.2.ebuild b/dev-python/mockldap/mockldap-0.2.2.ebuild
new file mode 100644
index 00000000000..dd8d7ca967e
--- /dev/null
+++ b/dev-python/mockldap/mockldap-0.2.2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple mock implementation of python-ldap"
+HOMEPAGE="https://bitbucket.org/psagers/mockldap/ https://pypi.python.org/pypi/mockldap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="~dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/python-ldap[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Disable un-needed d'loading during doc build
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if ! has_version dev-python/passlib; then
+ elog "Please install dev-python/passlib for hashed password support."
+ fi
+}
diff --git a/dev-python/mockldap/mockldap-0.2.3.ebuild b/dev-python/mockldap/mockldap-0.2.3.ebuild
new file mode 100644
index 00000000000..4007b5ada43
--- /dev/null
+++ b/dev-python/mockldap/mockldap-0.2.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple mock implementation of python-ldap"
+HOMEPAGE="https://bitbucket.org/psagers/mockldap/ https://pypi.python.org/pypi/mockldap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+RDEPEND="~dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/python-ldap[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Disable un-needed d'loading during doc build
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if ! has_version dev-python/passlib; then
+ elog "Please install dev-python/passlib for hashed password support."
+ fi
+}
diff --git a/dev-python/mockldap/mockldap-0.2.4.ebuild b/dev-python/mockldap/mockldap-0.2.4.ebuild
new file mode 100644
index 00000000000..12f38f5629a
--- /dev/null
+++ b/dev-python/mockldap/mockldap-0.2.4.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple mock implementation of python-ldap"
+HOMEPAGE="https://bitbucket.org/psagers/mockldap/ https://pypi.python.org/pypi/mockldap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="~dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/python-ldap[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Disable un-needed d'loading during doc build
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if ! has_version dev-python/passlib; then
+ elog "Please install dev-python/passlib for hashed password support."
+ fi
+}
diff --git a/dev-python/mockldap/mockldap-0.2.5.ebuild b/dev-python/mockldap/mockldap-0.2.5.ebuild
new file mode 100644
index 00000000000..12f38f5629a
--- /dev/null
+++ b/dev-python/mockldap/mockldap-0.2.5.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple mock implementation of python-ldap"
+HOMEPAGE="https://bitbucket.org/psagers/mockldap/ https://pypi.python.org/pypi/mockldap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="~dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/python-ldap[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Disable un-needed d'loading during doc build
+PATCHES=( "${FILESDIR}"/mapping.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if ! has_version dev-python/passlib; then
+ elog "Please install dev-python/passlib for hashed password support."
+ fi
+}
diff --git a/dev-python/mongoengine/Manifest b/dev-python/mongoengine/Manifest
new file mode 100644
index 00000000000..af4556743d4
--- /dev/null
+++ b/dev-python/mongoengine/Manifest
@@ -0,0 +1 @@
+DIST mongoengine-0.8.3.tar.gz 219978 SHA256 e8e8acbffda03d70ab09615135b823b7707bd11a4e6c9327c2fd8cbed145c14a SHA512 b77c36ae008fb31f26a60135fbba3a9cf08375506a760daa3fe9e2558a6c67f4ea769eccf7c472c9ddef900fe50548aca00a81d0e666b007398b31cb4d32e368 WHIRLPOOL 241c0b51a2c9a130ed8416266baa1394d06def7c7b074cec7c6a35da6add251cd0aa05f0350bf9334ee9d3921e6a686c23dbdf5a3120a1459a4adfc134c244e1
diff --git a/dev-python/mongoengine/metadata.xml b/dev-python/mongoengine/metadata.xml
new file mode 100644
index 00000000000..a1b620006dc
--- /dev/null
+++ b/dev-python/mongoengine/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">MongoEngine/mongoengine</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mongoengine/mongoengine-0.8.3.ebuild b/dev-python/mongoengine/mongoengine-0.8.3.ebuild
new file mode 100644
index 00000000000..b9bfc2fe994
--- /dev/null
+++ b/dev-python/mongoengine/mongoengine-0.8.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+RESTRICT="test" # connects to local DB and other nonsense
+
+DESCRIPTION="A Python Object-Document-Mapper for working with MongoDB"
+HOMEPAGE="https://github.com/MongoEngine/mongoengine/"
+SRC_URI="https://github.com/MongoEngine/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pymongo[${PYTHON_USEDEP}]
+ "
+
+src_prepare() {
+ sed -i -e 's/tests/tests*/g' setup.py || die "Failed to fix test removal thingy"
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/monotonic/Manifest b/dev-python/monotonic/Manifest
new file mode 100644
index 00000000000..213d31cddd6
--- /dev/null
+++ b/dev-python/monotonic/Manifest
@@ -0,0 +1,2 @@
+DIST monotonic-0.2.tar.gz 6652 SHA256 c5e81e875a43e218135ea2aa4c367523894e1a2d7633ddafbed5292c527644a8 SHA512 0da2f9504aebf1b046a06156e30b8d6b6fde29c642f442ba8e5a43336309fca0fe636488ea69e463fcba5951d990723fddc2b9172211f6d8c57b0ab3ebab1a66 WHIRLPOOL 129f6a170856780d727ff2ef11d4b3688971b7376c9e9f590c7bc85aa20ba35d699751ddd5de58d144d4a3d540a2aac7d3f9fd3a63d010d88d7f93ffa62c836c
+DIST monotonic-0.3.tar.gz 6707 SHA256 2825ba5ded67b1a70d44529634d3f4ddfad67a5ed7fdcf026022a3ce175be07b SHA512 772154934ffdd1a12aacc331761ce219980caac1bce243fd0740320a25152cf800142c5787c9423270bf02d18e88973dcd981781e2279b28ce364063102f1099 WHIRLPOOL 83d34eac5ee577ba8c42c6276d1c3a46fc30a63919ffd6f86260c09aaf6720ab171db89dfdaa28fd6d42ebb309725ff2e4e0e6c8306c21f9f12dce3d71436e71
diff --git a/dev-python/monotonic/metadata.xml b/dev-python/monotonic/metadata.xml
new file mode 100644
index 00000000000..04fc00a938e
--- /dev/null
+++ b/dev-python/monotonic/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">monotonic</remote-id>
+ <remote-id type="github">atdt/monotonic</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/monotonic/monotonic-0.2.ebuild b/dev-python/monotonic/monotonic-0.2.ebuild
new file mode 100644
index 00000000000..f469780ef41
--- /dev/null
+++ b/dev-python/monotonic/monotonic-0.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An implementation of time.monotonic() for Python 2 & < 3.3"
+HOMEPAGE="https://github.com/atdt/monotonic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/monotonic/monotonic-0.3.ebuild b/dev-python/monotonic/monotonic-0.3.ebuild
new file mode 100644
index 00000000000..f469780ef41
--- /dev/null
+++ b/dev-python/monotonic/monotonic-0.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An implementation of time.monotonic() for Python 2 & < 3.3"
+HOMEPAGE="https://github.com/atdt/monotonic"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/morbid/Manifest b/dev-python/morbid/Manifest
new file mode 100644
index 00000000000..56c7a5fee98
--- /dev/null
+++ b/dev-python/morbid/Manifest
@@ -0,0 +1 @@
+DIST morbid-0.8.7.3.tar.gz 15054 SHA256 71a9c88cee81dc473645e8568985dddd92437ca5e0bfc4558677573f8cad9fce SHA512 50a01e75ecf1691dcb6f4354647038627196eb4cd37d6e44812912bf0890870d307c8705f6894ecc389a86508d2dc81ed9195408b922c5ad140104a9b78c26dc WHIRLPOOL fa4ff28cdd13334a1f14ba2681a6d183f62b28f98bc52a792b2d5bf25c489780a04b65577d55dd089f1ceeb4ed246c362d242578fa82ca5bc64b3394bc543f17
diff --git a/dev-python/morbid/metadata.xml b/dev-python/morbid/metadata.xml
new file mode 100644
index 00000000000..615475f3eed
--- /dev/null
+++ b/dev-python/morbid/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">morbid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/morbid/morbid-0.8.7.3-r1.ebuild b/dev-python/morbid/morbid-0.8.7.3-r1.ebuild
new file mode 100644
index 00000000000..86d7cd21df3
--- /dev/null
+++ b/dev-python/morbid/morbid-0.8.7.3-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Twisted-based publish/subscribe messaging server that uses the STOMP protocol"
+HOMEPAGE="http://pypi.python.org/pypi/morbid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-python/stomper[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/morbid/morbid-0.8.7.3.ebuild b/dev-python/morbid/morbid-0.8.7.3.ebuild
new file mode 100644
index 00000000000..b9eb54f0454
--- /dev/null
+++ b/dev-python/morbid/morbid-0.8.7.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils
+
+DESCRIPTION="A Twisted-based publish/subscribe messaging server that uses the STOMP protocol"
+HOMEPAGE="http://pypi.python.org/pypi/morbid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~ppc ~ppc64 ~sparc x86"
+IUSE=""
+
+RDEPEND="dev-python/stomper
+ dev-python/twisted-core
+ dev-python/twisted-web"
+DEPEND="${RDEPEND}
+ dev-python/setuptools"
diff --git a/dev-python/more-itertools/Manifest b/dev-python/more-itertools/Manifest
new file mode 100644
index 00000000000..4c5bed44174
--- /dev/null
+++ b/dev-python/more-itertools/Manifest
@@ -0,0 +1 @@
+DIST more-itertools-2.2.tar.gz 19807 SHA256 93e62e05c7ad3da1a233def6731e8285156701e3419a5fe279017c429ec67ce0 SHA512 579a778b91607800c4000a30c7509e9fc44ad1d35598ab9041b547aca9d94b811d3fc0abf5c84413fb70be87eb20177685a8a30dc7146a005fa1eb82986294f8 WHIRLPOOL 75ad77394757b30709700957f20136029100eb0e6a42ca7a031a54f0bc71fc926eb552c1b29b0b92af175a618ae826c6380c2919ae3e74d60fa3423e352a9c37
diff --git a/dev-python/more-itertools/metadata.xml b/dev-python/more-itertools/metadata.xml
new file mode 100644
index 00000000000..a6785f1e01b
--- /dev/null
+++ b/dev-python/more-itertools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">more-itertools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/more-itertools/more-itertools-2.2.ebuild b/dev-python/more-itertools/more-itertools-2.2.ebuild
new file mode 100644
index 00000000000..b90f0660863
--- /dev/null
+++ b/dev-python/more-itertools/more-itertools-2.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="More routines for operating on iterables, beyond itertools"
+HOMEPAGE="http://pypi.python.org/pypi/${PN}"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
new file mode 100644
index 00000000000..2769d63271f
--- /dev/null
+++ b/dev-python/moto/Manifest
@@ -0,0 +1,3 @@
+DIST moto-0.3.8.tar.gz 101161 SHA256 0215034a2834d86ff622c11bcba2570240a54635cda5ec83d48c1e663179b047 SHA512 f414499b6c475b3a5e69570997b0f96fc9d998f622209d48b686c1f77a33e984e95028806ae1ba1ec1d41d75e59b83f96bd66b566c8a7b664dacc910c0035edd WHIRLPOOL 13e5edd809a772c9ce955196ca268db4663c8d68959a4fa7fcaaa44ebf0f6d147d471bf00d27a6ec2d0a4e4a1a037fb09756ad92d0733601f852f522f2ce265e
+DIST moto-0.4.3.tar.gz 147498 SHA256 955b0a19d466c917b5c9e97a03df6f10d184dea263efdd7796b1725b4a90a48c SHA512 3c8a2b5cf2b404f531d187adb96f03d38ec89ce147066922f8da7e71e33b2cbe01b5264d1dd7f7abddc9a94759e4ee6b3111da3838796acbd1a83ad6fbfd4a21 WHIRLPOOL 8cf88239a4c1acbfce293133e68baa05783800754a1f07c33a3643f071bcb0a0e68f7215b8696a378de71369edfead00a1708ba0b276108e0bb446f981343943
+DIST moto-0.4.8.tar.gz 154891 SHA256 d72a0427a0112a21f7009e2301ed7cc7c9fb085da1e1615fba4c5f02f6d70bd1 SHA512 e52a8fefd22983996718eec49e607a26978604e67a50523ee43fbf8c1d0ce871cc390404c7ae6951d6bff9b640f3b4dffa3a3d4425134a056e37db2ebcdcaacf WHIRLPOOL 4e0e1fb89571e53cfb1a67b6627b852b37743539917912e56bf9c596bd86981c3c2115cb7ca8b1014767db55a19363ce2604bb860aace1214eb597eea6722852
diff --git a/dev-python/moto/metadata.xml b/dev-python/moto/metadata.xml
new file mode 100644
index 00000000000..bf151f0343d
--- /dev/null
+++ b/dev-python/moto/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">moto</remote-id>
+ <remote-id type="github">spulec/moto</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/moto/moto-0.3.8.ebuild b/dev-python/moto/moto-0.3.8.ebuild
new file mode 100644
index 00000000000..e68c33e9525
--- /dev/null
+++ b/dev-python/moto/moto-0.3.8.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit distutils-r1
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="https://github.com/spulec/moto"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/boto[${PYTHON_USEDEP}]
+ dev-python/dicttoxml[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/httpretty[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]"
diff --git a/dev-python/moto/moto-0.4.3.ebuild b/dev-python/moto/moto-0.4.3.ebuild
new file mode 100644
index 00000000000..dcb9d700aa3
--- /dev/null
+++ b/dev-python/moto/moto-0.4.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="https://github.com/spulec/moto"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/boto-2.20.0[${PYTHON_USEDEP}]
+ dev-python/dicttoxml[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/httpretty-0.6.1[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]"
diff --git a/dev-python/moto/moto-0.4.8.ebuild b/dev-python/moto/moto-0.4.8.ebuild
new file mode 100644
index 00000000000..dcb9d700aa3
--- /dev/null
+++ b/dev-python/moto/moto-0.4.8.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="https://github.com/spulec/moto"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/boto-2.20.0[${PYTHON_USEDEP}]
+ dev-python/dicttoxml[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/httpretty-0.6.1[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]"
diff --git a/dev-python/mox/Manifest b/dev-python/mox/Manifest
new file mode 100644
index 00000000000..f0993b522b8
--- /dev/null
+++ b/dev-python/mox/Manifest
@@ -0,0 +1 @@
+DIST mox-0.5.3.tar.gz 31266 SHA256 4d18a4577d14da13d032be21cbdfceed302171c275b72adaa4c5997d589a5030 SHA512 122606264ea8bf83d38f8576c8208fd1bc17cd76009390f516ed4bdf705d49ccfbeed0fa3e9ac1940df3969e0254662c602c497d6c6833108dfcacc59f1c789e WHIRLPOOL 9c6a2c257250b0217752d728d47b97f8d60be4001e0f5d13e4584b1ae34d2582bb685dfa768246c6cfca838b7fb847bbc6aac3fa35d8c57be9874984eb63b16f
diff --git a/dev-python/mox/metadata.xml b/dev-python/mox/metadata.xml
new file mode 100644
index 00000000000..95a2d0e50d9
--- /dev/null
+++ b/dev-python/mox/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">pymox</remote-id>
+ <remote-id type="pypi">mox</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mox/mox-0.5.3-r1.ebuild b/dev-python/mox/mox-0.5.3-r1.ebuild
new file mode 100644
index 00000000000..d61e906eb8c
--- /dev/null
+++ b/dev-python/mox/mox-0.5.3-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A mock object framework for Python, loosely based on EasyMock for Java"
+HOMEPAGE="http://code.google.com/p/pymox/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 ~sh ~sparc x86"
+IUSE="test"
+
+python_test() {
+ ${PYTHON} mox_test.py || die
+}
diff --git a/dev-python/mox3/Manifest b/dev-python/mox3/Manifest
new file mode 100644
index 00000000000..60a8e5027dd
--- /dev/null
+++ b/dev-python/mox3/Manifest
@@ -0,0 +1 @@
+DIST mox3-0.7.0.tar.gz 44073 SHA256 7cc2ffac72d55816bbf670b03cf636b4abdc089c3d8b31a6760b22fc1eeedde2 SHA512 ee4b87bad46fdb63e8988186846a1823fe9db512f1cd8cf37266db14413307824e45e38121bd16ca4c7f3753fbc051dfcd98dc5c9c9c933604b007ff1e7fea05 WHIRLPOOL 0c71c0ef8960ee535fa11a27855725601929ebd50ef56611c8aa8ac0bee500b63b3d63a60bb444511f2bc3b05bf65eb7d91821144d56da4e0da343ff3689d427
diff --git a/dev-python/mox3/metadata.xml b/dev-python/mox3/metadata.xml
new file mode 100644
index 00000000000..b1c2c7fd684
--- /dev/null
+++ b/dev-python/mox3/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">mox3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mox3/mox3-0.7.0-r1.ebuild b/dev-python/mox3/mox3-0.7.0-r1.ebuild
new file mode 100644
index 00000000000..55755bf0d84
--- /dev/null
+++ b/dev-python/mox3/mox3-0.7.0-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+DISTUTILS_IN_SOURCE_BUILD=TRUE
+
+inherit distutils-r1
+
+DESCRIPTION="Mock object framework for Python"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+CDEPEND="
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+CRDEPEND=">=dev-python/fixtures-0.3.12[${PYTHON_USEDEP}]"
+
+# NOTE dev-python/hacking isn't actually required for tests
+# >=dev-python/hacking-0.5.6[${PYTHON_USEDEP}]
+# <dev-python/hacking-0.7[${PYTHON_USEDEP}]
+
+# NOTE dev-python/pyflakes isn't actually required for tests
+# ~dev-python/pyflakes-0.7.2[${PYTHON_USEDEP}]
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ ${CRDEPEND}
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.0[${PYTHON_USEDEP}]
+ ~dev-python/pep8-1.4.5[${PYTHON_USEDEP}]
+ dev-python/subunit[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.17[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.32[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ ${CRDEPEND}
+"
+
+python_test() {
+ # This single test fails on python3.4.
+ # I speculate this is due to the old style classes going away but have not
+ # verified this in any way.
+ if [[ "${EPYTHON}" = "python3.4" ]]; then
+ ebegin "patching mox3/tests/test_mox.py for ${EPYTHON}"
+ sed \
+ -e '/def testStubOutClass_OldStyle(self):/,/def/ d' \
+ -i mox3/tests/test_mox.py
+ STATUS=$?
+ eend $?
+ [[ ${STATUS} -gt 0 ]] && die
+ fi
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/mox3/mox3-0.7.0.ebuild b/dev-python/mox3/mox3-0.7.0.ebuild
new file mode 100644
index 00000000000..2010ed8c813
--- /dev/null
+++ b/dev-python/mox3/mox3-0.7.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py2.6 capable but unrequired
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+# Use at your own risk ;), or because an openstack package cited it as a req'd dep :)
+DESCRIPTION="The Mock object framework for Python"
+HOMEPAGE="http://code.google.com/p/pymox/wiki/MoxDocumentation http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+LICENSE="Apache-2.0"
+SLOT="0"
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# Though test-req's cites hacking>=0.5.6,<0.7, setting to hacking>=0.7.2-r1,<0.8
+# since it WORKS and supports py3.2. What more do you want
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ ~dev-python/pep8-1.4.5[${PYTHON_USEDEP}]
+ ~dev-python/pyflakes-0.7.2[${PYTHON_USEDEP}]
+ ~dev-python/flake8-2.0[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ dev-python/subunit[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.17[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.32[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/fixtures-0.3.12[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init || die
+ testr run || die "testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "flake8 drew error on a run over folder ${PN}/tests"
+}
diff --git a/dev-python/mpi4py/Manifest b/dev-python/mpi4py/Manifest
new file mode 100644
index 00000000000..db920f5b1d0
--- /dev/null
+++ b/dev-python/mpi4py/Manifest
@@ -0,0 +1 @@
+DIST mpi4py-1.3.1.tar.gz 1046580 SHA256 e7bd2044aaac5a6ea87a87b2ecc73b310bb6efe5026031e33067ea3c2efc3507 SHA512 15e81f2a1e6f6af7a54f0e8ec43ddf36cc565b7fe9e3dd35603c9d128199c5acd1584757ffca999c8826c0bbccf371175d40a7a24c85d3369efd77da5b3b603f WHIRLPOOL e32fef50c8cd8f866e40fb29f90775736cf0ea31c8a3fc4d460cded8b2056bae0c8d847b304c3222d3e5ffc913ca5cc722425e496d35bf41624f9b5ccdf3ead2
diff --git a/dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch b/dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch
new file mode 100644
index 00000000000..ae1eade0de2
--- /dev/null
+++ b/dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Christoph Junghans <junghans@votca.org>
+# Date 1407773183 21600
+# Mon Aug 11 10:06:23 2014 -0600
+# Node ID ee313041ba5d7f0706f8140b4e965179e807ef56
+# Parent c66c1be9d40ae69aa61c45572fbe14ef3209378e
+Fix usage of LDSHARED
+
+- LDSHARED contain the linker, too
+- was used as it would only contain the options in the latter part
+- use split_linker_cmd to throw away the linker cmd
+- see https://bugs.gentoo.org/show_bug.cgi?id=514288
+
+diff -r c66c1be9d40a -r ee313041ba5d conf/mpidistutils.py
+--- a/conf/mpidistutils.py Wed Sep 04 22:40:25 2013 +0300
++++ b/conf/mpidistutils.py Mon Aug 11 10:06:23 2014 -0600
+@@ -176,6 +176,7 @@
+ opt = environ.get('OPT', opt )
+ ccshared = environ.get('CCSHARED', ccshared)
+ ldshared = environ.get('LDSHARED', ldshared)
++ _, ldshared = split_linker_cmd(ldshared)
+ cflags = ' '.join((basecflags, opt, cflags))
+ cxxflags = ' '.join((basecflags, opt, cxxflags))
+ cxxflags = cxxflags.replace('-Wstrict-prototypes', '')
diff --git a/dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch b/dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch
new file mode 100644
index 00000000000..f92639f5be5
--- /dev/null
+++ b/dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch
@@ -0,0 +1,81 @@
+ test/test_win.py | 48 +++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 37 insertions(+), 11 deletions(-)
+
+diff --git a/test/test_win.py b/test/test_win.py
+index 6da5c1f..7127e56 100644
+--- a/test/test_win.py
++++ b/test/test_win.py
+@@ -1,6 +1,30 @@
+ import sys
+ from mpi4py import MPI
+ import mpiunittest as unittest
++try:
++ from sys import getrefcount
++except ImportError:
++ class getrefcount(object):
++ def __init__(self, arg):
++ pass
++ def __eq__(self, other):
++ return True
++ def __add__(self, other):
++ return self
++ def __sub__(self, other):
++ return self
++
++def memzero(m):
++ n = len(m)
++ if n == 0: return
++ try:
++ zero = '\0'.encode('ascii')
++ m[0] = zero
++ except TypeError:
++ zero = 0
++ m[0] = zero
++ for i in range(n):
++ m[i] = zero
+
+ class BaseTestWin(object):
+
+@@ -11,29 +35,31 @@ class BaseTestWin(object):
+ try:
+ self.mpi_memory = MPI.Alloc_mem(10)
+ self.memory = self.mpi_memory
+- try:
+- zero = bytearray([0])
+- except NameError:
+- zero = str('\0')
+- self.memory[:] = zero * len(self.memory)
++ memzero(self.memory)
+ except MPI.Exception:
+ from array import array
+ self.mpi_memory = None
+ self.memory = array('B',[0]*10)
+- refcnt = sys.getrefcount(self.memory)
++ refcnt = getrefcount(self.memory)
+ self.WIN = MPI.Win.Create(self.memory, 1, self.INFO, self.COMM)
+ if type(self.memory).__name__ == 'buffer':
+- self.assertEqual(sys.getrefcount(self.memory), refcnt+1)
++ self.assertEqual(getrefcount(self.memory), refcnt+1)
+ else:
+- self.assertEqual(sys.getrefcount(self.memory), refcnt)
++ if sys.version_info[:3] < (3, 3):
++ self.assertEqual(getrefcount(self.memory), refcnt)
++ else:
++ self.assertEqual(getrefcount(self.memory), refcnt+1)
+
+ def tearDown(self):
+- refcnt = sys.getrefcount(self.memory)
++ refcnt = getrefcount(self.memory)
+ self.WIN.Free()
+ if type(self.memory).__name__ == 'buffer':
+- self.assertEqual(sys.getrefcount(self.memory), refcnt-1)
++ self.assertEqual(getrefcount(self.memory), refcnt-1)
+ else:
+- self.assertEqual(sys.getrefcount(self.memory), refcnt)
++ if sys.version_info[:3] < (3, 3):
++ self.assertEqual(getrefcount(self.memory), refcnt)
++ else:
++ self.assertEqual(getrefcount(self.memory), refcnt-1)
+ if self.mpi_memory:
+ MPI.Free_mem(self.mpi_memory)
+
diff --git a/dev-python/mpi4py/metadata.xml b/dev-python/mpi4py/metadata.xml
new file mode 100644
index 00000000000..5bbdad7d34f
--- /dev/null
+++ b/dev-python/mpi4py/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">MPI for Python (mpi4py) provides bindings of the Message Passing
+ Interface (MPI) standard for the Python programming language,
+ allowing any Python program to exploit multiple processors.
+ This package is constructed on top of the MPI-1/MPI-2 specification
+ and provides an object oriented interface which closely follows
+ MPI-2 C++ bindings. It supports point-to-point (sends, receives) and
+ collective (broadcasts, scatters, gathers) communications of any
+ picklable Python object as well as optimized communications of
+ Python object exposing the single-segment buffer interface (NumPy
+ arrays, builtin bytes/string/array objects).
+</longdescription>
+ <upstream>
+ <remote-id type="google-code">mpi4py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mpi4py/mpi4py-1.3.1.ebuild b/dev-python/mpi4py/mpi4py-1.3.1.ebuild
new file mode 100644
index 00000000000..635ea933d25
--- /dev/null
+++ b/dev-python/mpi4py/mpi4py-1.3.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Message Passing Interface for Python"
+HOMEPAGE="http://code.google.com/p/mpi4py/ http://pypi.python.org/pypi/mpi4py"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="virtual/mpi"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ virtual/mpi[romio] )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${P}-py3-test-backport-1.patch "${FILESDIR}"/${P}-ldshared.patch )
+
+python_prepare_all() {
+ # not needed on install
+ rm -r docs/source || die
+ distutils-r1_python_prepare_all
+}
+
+src_compile() {
+ export FAKEROOTKEY=1
+ distutils-r1_src_compile
+}
+
+python_test() {
+ echo "Beginning test phase"
+ pushd "${BUILD_DIR}"/../ &> /dev/null
+ mpiexec -n 2 "${PYTHON}" ./test/runtests.py -v || die "Testsuite failed under ${EPYTHON}"
+ popd &> /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mpmath/Manifest b/dev-python/mpmath/Manifest
new file mode 100644
index 00000000000..c09501166a7
--- /dev/null
+++ b/dev-python/mpmath/Manifest
@@ -0,0 +1,2 @@
+DIST mpmath-all-0.18.tar.gz 2122954 SHA256 47cc9587ea10202cdfb1afce4fb7410821e91ae6ecb1b54d62be1adfce80ee40 SHA512 a22e1c82f33a30584c975d196601e7bddaf33d4a41b1f288216a9df038ba5a45fd1002c5aa5f15084d05bee3abad944168ad131ac7e4feb218aac22789d8a63f WHIRLPOOL 7544b09310fbb262f2a4f487fa29af429196142e3fcab5822c1383420c7d8948a70b0f505adc0ce4fd7c0e6b6936b8dc6832a5e3d92e7c7cb71d05f6343dd79a
+DIST mpmath-all-0.19.tar.gz 2123129 SHA256 21a824db176799f42843e4510da4bc6db36ef92b5a43fff70fad7e29bffb9c86 SHA512 5a6ed0b5fad84c1e8399467ea7a1295f9b77c8e673b821c11e3298e88df6c48d9967eed84e2979bf12868e2f9b42bffba01a0c1836a6d82ac42d5f423fed6580 WHIRLPOOL 360fedc4d6942a138b33c63867f8a5e4ce4c101a8f7221c61503933e75073807676cbb240c9bddea765159cb134efd608256c9b921b7d282763b57d2897eefdb
diff --git a/dev-python/mpmath/files/mpmath.patch b/dev-python/mpmath/files/mpmath.patch
new file mode 100644
index 00000000000..3040216e56c
--- /dev/null
+++ b/dev-python/mpmath/files/mpmath.patch
@@ -0,0 +1,9 @@
+diff -r -U1 mpmath-all-0.17.orig/setup.py mpmath-all-0.17/setup.py
+--- mpmath-all-0.17.orig/setup.py 2011-02-02 03:17:50.000000000 +0600
++++ mpmath-all-0.17/setup.py 2011-02-13 01:18:00.000000000 +0600
+@@ -15,4 +15,3 @@
+ 'mpmath/functions',
+- 'mpmath/matrices',
+- 'mpmath/tests'],
++ 'mpmath/matrices'],
+ classifiers=['Topic :: Scientific/Engineering :: Mathematics']
diff --git a/dev-python/mpmath/metadata.xml b/dev-python/mpmath/metadata.xml
new file mode 100644
index 00000000000..2d2c4a18f19
--- /dev/null
+++ b/dev-python/mpmath/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-mathematics</herd>
+<maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+</maintainer>
+<longdescription lang="en">
+ A Python library for arbitrary-precision floating-point arithmetic
+</longdescription>
+<use>
+ <flag name="matplotlib">Add support for <pkg>dev-python/matplotlib</pkg></flag>
+</use>
+<upstream>
+ <remote-id type="pypi">mpmath</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/mpmath/mpmath-0.18.ebuild b/dev-python/mpmath/mpmath-0.18.ebuild
new file mode 100644
index 00000000000..921698ed116
--- /dev/null
+++ b/dev-python/mpmath/mpmath-0.18.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1 eutils
+
+MY_PN=${PN}-all
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python library for arbitrary-precision floating-point arithmetic"
+HOMEPAGE="http://code.google.com/p/mpmath"
+SRC_URI="mirror://pypi/m/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-linux ~x86-macos"
+
+IUSE="doc examples gmp matplotlib test"
+
+RDEPEND="
+ gmp? ( dev-python/gmpy )
+ matplotlib? ( dev-python/matplotlib )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}.patch"
+ )
+
+ # this fails with the current version of dev-python/py
+ rm ${PN}/conftest.py || die
+
+ # this test requires X
+ rm ${PN}/tests/test_visualization.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ cd doc || die
+ "${PYTHON}" build.py || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ py.test -v || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/. )
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mpmath/mpmath-0.19.ebuild b/dev-python/mpmath/mpmath-0.19.ebuild
new file mode 100644
index 00000000000..6a8289e2d86
--- /dev/null
+++ b/dev-python/mpmath/mpmath-0.19.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+MY_PN=${PN}-all
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python library for arbitrary-precision floating-point arithmetic"
+HOMEPAGE="http://mpmath.org/"
+SRC_URI="http://mpmath.org/files/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-linux ~x86-macos"
+
+IUSE="doc examples gmp matplotlib test"
+
+RDEPEND="
+ gmp? ( dev-python/gmpy )
+ matplotlib? ( dev-python/matplotlib[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}.patch"
+ )
+
+ # this fails with the current version of dev-python/py
+ rm ${PN}/conftest.py || die
+
+ # this test requires X
+ rm ${PN}/tests/test_visualization.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ cd doc || die
+ "${PYTHON}" build.py || die "Generation of documentation failed"
+ fi
+}
+
+python_test() {
+ py.test -v || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/. )
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/msgpack/Manifest b/dev-python/msgpack/Manifest
new file mode 100644
index 00000000000..0d6f3362258
--- /dev/null
+++ b/dev-python/msgpack/Manifest
@@ -0,0 +1 @@
+DIST msgpack-python-0.4.6.tar.gz 116433 SHA256 bfcc581c9dbbf07cc2f951baf30c3249a57e20dcbd60f7e6ffc43ab3cc614794 SHA512 492246b03035cfb10a99aed59d23a7b10d1fd4cfa044cdec737b4f65fe3f7c30d3c9754389fd5efc2eb41760e4813ac246915ac7a50dc5659e65002a476bb886 WHIRLPOOL 9aa400181557c20d0b1e011424dc4b68de269942b3b7e27e24b113ee4d98f4161355d3479d7ff8c60c0017e0fe28ceb4fca06e67e881982141fa348336eaee85
diff --git a/dev-python/msgpack/metadata.xml b/dev-python/msgpack/metadata.xml
new file mode 100644
index 00000000000..6860185adab
--- /dev/null
+++ b/dev-python/msgpack/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">msgpack-python</remote-id>
+ <remote-id type="github">msgpack/msgpack-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/msgpack/msgpack-0.4.6.ebuild b/dev-python/msgpack/msgpack-0.4.6.ebuild
new file mode 100644
index 00000000000..f1369e1aa4d
--- /dev/null
+++ b/dev-python/msgpack/msgpack-0.4.6.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN}-python"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="MessagePack (de)serializer for Python"
+HOMEPAGE="http://msgpack.org https://github.com/msgpack/msgpack-python/ https://pypi.python.org/pypi/msgpack-python/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ py.test test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/multipledispatch/Manifest b/dev-python/multipledispatch/Manifest
new file mode 100644
index 00000000000..e345fb843c0
--- /dev/null
+++ b/dev-python/multipledispatch/Manifest
@@ -0,0 +1,3 @@
+DIST multipledispatch-0.4.6.tar.gz 7066 SHA256 9974135f46af8f22096f0517afede26a9b2e015aed9e154c4f5e3173a447162c SHA512 90b7f0ca33abd149ce130124a6464c531698582bb831260266cca1779bf661b6868a3eaff1eab66072e84c464d3bdde517d61b970d6385f33f583fa9bc034d2c WHIRLPOOL 319f1fc7d9a6ea77f2c22a849cd7e5808c21cc792aa5168fdf3adfefe5dea65c17910245db6eb8aefdd74dd72643f3261fb67b9937c47439a897285e462fbeb8
+DIST multipledispatch-0.4.7.tar.gz 7234 SHA256 401bb875cdbd85359f01029e60ef7610bf1172b5052474285daf4102b109496d SHA512 ab1109848560bfbdf66c07d42459729a8e9ee100e4113404447c96e810f52a48bb4aef435e7b4997dfcb1d59959ce491f329c1566f5c4d6c5f6c298a74125d55 WHIRLPOOL 1061fd465f98aee880128cfde7320f5e6c671964382ee24c0b9e296113575296ad833e0e438ff2921795d14f6d2a0d2cc2c893716b4b59394a23445d6e64ee44
+DIST multipledispatch-0.4.8.tar.gz 7393 SHA256 07d41fb3ed25e8424536e48a8566f88a0f9926ca4b6174bff6aa16c98251b92e SHA512 7ca66b4d34a8002babb83678bfc11b1851a23fafea8f59c8240a7c3e8912918439dda236a75c8ae50064e5e87920cf5a7db290a67d6afe1c178010b76c89345d WHIRLPOOL 26263306f29240c052709c2ae5367fd88c936c74e94a478b3474c85c945842d2108d47432e8d855836d9989418cff890a418e51b7c2360899d71bd20cf1b85d5
diff --git a/dev-python/multipledispatch/metadata.xml b/dev-python/multipledispatch/metadata.xml
new file mode 100644
index 00000000000..dcddd9577ad
--- /dev/null
+++ b/dev-python/multipledispatch/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">multipledispatch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/multipledispatch/multipledispatch-0.4.6.ebuild b/dev-python/multipledispatch/multipledispatch-0.4.6.ebuild
new file mode 100644
index 00000000000..3d7136cfb97
--- /dev/null
+++ b/dev-python/multipledispatch/multipledispatch-0.4.6.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="RESTful HTTP Content Negotiation for Flask, Bottle, web.py and webapp2"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/mimerender"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="dev-python/mimeparse[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/multipledispatch/multipledispatch-0.4.7.ebuild b/dev-python/multipledispatch/multipledispatch-0.4.7.ebuild
new file mode 100644
index 00000000000..da58e81ea0a
--- /dev/null
+++ b/dev-python/multipledispatch/multipledispatch-0.4.7.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="RESTful HTTP Content Negotiation for Flask, Bottle, web.py and webapp2"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/mimerender"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/multipledispatch/multipledispatch-0.4.8.ebuild b/dev-python/multipledispatch/multipledispatch-0.4.8.ebuild
new file mode 100644
index 00000000000..571cadf700f
--- /dev/null
+++ b/dev-python/multipledispatch/multipledispatch-0.4.8.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="RESTful HTTP Content Negotiation for Flask, Bottle, web.py and webapp2"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/mimerender"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/munkres/Manifest b/dev-python/munkres/Manifest
new file mode 100644
index 00000000000..5c3274c9bf3
--- /dev/null
+++ b/dev-python/munkres/Manifest
@@ -0,0 +1 @@
+DIST munkres-1.0.5.4.tar.gz 43050 SHA256 105adad30659dbdf82815d3e12a74d4c01a3e0741d5ccbce194ee2ad4e5338d2 SHA512 a2b1577b75f3099cae57750543c985ab60097d5fa70481d3c6d8394dd55d0d8f99aacf5db625be7fa12772e976cf34d4b51c7841c3a24ee9df8214a68aa66aed WHIRLPOOL de64e126d37a0d267c0048ba368ab58f34aa9ae0d41cc3a97019370d3c12b231bee206c0c0f87d28f22e4b4ac1c29cd054350522372574437b6a09204d1a6561
diff --git a/dev-python/munkres/metadata.xml b/dev-python/munkres/metadata.xml
new file mode 100644
index 00000000000..3524090db53
--- /dev/null
+++ b/dev-python/munkres/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>joshua.downer@gmail.com</email>
+ <name>Joshua Downer</name>
+ </maintainer>
+ <longdescription lang="en">The Munkres module provides an implementation of the Munkres algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm), useful for solving the Assignment Problem.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">munkres</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/munkres/munkres-1.0.5.4-r2.ebuild b/dev-python/munkres/munkres-1.0.5.4-r2.ebuild
new file mode 100644
index 00000000000..4dbe68e0abf
--- /dev/null
+++ b/dev-python/munkres/munkres-1.0.5.4-r2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Module implementing munkres algorithm for the Assignment Problem"
+HOMEPAGE="http://pypi.python.org/pypi/munkres/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test doc"
+
+python_test() {
+ "${PYTHON}" "${PN}.py" || die
+}
+
+src_install() {
+ distutils-r1_src_install
+ use doc && dohtml -r html/
+}
diff --git a/dev-python/mwlib-ext/Manifest b/dev-python/mwlib-ext/Manifest
new file mode 100644
index 00000000000..2248bb31178
--- /dev/null
+++ b/dev-python/mwlib-ext/Manifest
@@ -0,0 +1,2 @@
+DIST mwlib.ext-0.12.4.zip 2168636 SHA256 fa7ed70ff32389a7b825c430004ed37161963262c5b64c4835694c73c7d3a4bb SHA512 4fabe12c6a3ff352921ce3a46608e3194304176f9fe7c5860d39ac7f51e0dcb5ecca3002799c94ec4c53a1c9aa42f59f9cad646adeccffcfb194b5411b50efb9 WHIRLPOOL d3b0cdfe0b3ad34140320b350bb98cd44583c807b4b7b6f98e48345992435f3b985ba5e22aa02a976fcd544aa55f455f7c0d97ffd8c703539f26226d17dba137
+DIST mwlib.ext-0.13.2.zip 2111364 SHA256 9229193ee719568d482192d9d913b3c4bb96af7c589d6c31ed4a62caf5054278 SHA512 a7c6a53d92335d59f952c9fc549ef079afa92dbf8b3c97930463c817c867c27d6ea97b3a52aeadc12c6d107f149630799007409f1c1ca23186ba64a2e71ca6d8 WHIRLPOOL 600ada3cf17f8c8076d38262a2777acfe8c6add37f04360d64fb1869d9dfaa13c6dc176436e18208689a73386588aaf5004c7dc4baa36100776c4d58d3d74618
diff --git a/dev-python/mwlib-ext/files/0.12.4-unbundle-reportlab.patch b/dev-python/mwlib-ext/files/0.12.4-unbundle-reportlab.patch
new file mode 100644
index 00000000000..b630ae122c6
--- /dev/null
+++ b/dev-python/mwlib-ext/files/0.12.4-unbundle-reportlab.patch
@@ -0,0 +1,36 @@
+diff --git a/setup.py b/setup.py
+index 9886715..b47b79b 100755
+--- a/setup.py
++++ b/setup.py
+@@ -7,30 +7,16 @@ except ImportError:
+ ez_setup.use_setuptools()
+ from setuptools import setup, Extension, find_packages
+
+-from distutils import sysconfig
+-if sysconfig.get_config_var("LIBM") == "-lm":
+- libraries = ["m"]
+-else:
+- libraries = []
+-
+ install_requires = []
+ execfile('mwlib/_extversion.py') # adds 'version' to local namespace
+
+-ext_modules = []
+-ext_modules.append(Extension("mwlib.ext._rl_accel",
+- ['upstream-src/src/rl_addons/rl_accel/_rl_accel.c'],
+- libraries=libraries))
+-
+-packages = ["mwlib.ext." + x for x in find_packages("upstream-src/src")] + find_packages(".")
++packages = find_packages(".")
+
+ setup(
+ name="mwlib.ext",
+ version=str(version),
+ install_requires=install_requires,
+ packages=packages,
+- package_dir={"mwlib.ext.reportlab": "upstream-src/src/reportlab",
+- "mwlib.ext.rl_addons": "upstream-src/src/rl_addons"},
+- ext_modules=ext_modules,
+ namespace_packages=['mwlib'],
+ include_package_data=True,
+ zip_safe=False,
diff --git a/dev-python/mwlib-ext/files/0.13.2-unbundle-reportlab.patch b/dev-python/mwlib-ext/files/0.13.2-unbundle-reportlab.patch
new file mode 100644
index 00000000000..12156a796a5
--- /dev/null
+++ b/dev-python/mwlib-ext/files/0.13.2-unbundle-reportlab.patch
@@ -0,0 +1,35 @@
+diff -ur mwlib.ext-0.13.2.orig/setup.py mwlib.ext-0.13.2/setup.py
+--- setup.py 2013-07-02 09:53:32.000000000 +0800
++++ setup.py 2013-07-27 13:24:48.169128958 +0800
+@@ -1,30 +1,16 @@
+ #! /usr/bin/env python
+
+ from setuptools import setup, Extension, find_packages
+-from distutils import sysconfig
+-if sysconfig.get_config_var("LIBM") == "-lm":
+- libraries = ["m"]
+-else:
+- libraries = []
+-
+ install_requires = []
+ execfile('mwlib/_extversion.py') # adds 'version' to local namespace
+
+-ext_modules = []
+-ext_modules.append(Extension("mwlib.ext._rl_accel",
+- ['upstream-src/src/rl_addons/rl_accel/_rl_accel.c'],
+- libraries=libraries))
+-
+-packages = ["mwlib.ext." + x for x in find_packages("upstream-src/src")] + find_packages(".")
++packages = find_packages(".")
+
+ setup(
+ name="mwlib.ext",
+ version=str(version),
+ install_requires=install_requires,
+ packages=packages,
+- package_dir={"mwlib.ext.reportlab": "upstream-src/src/reportlab",
+- "mwlib.ext.rl_addons": "upstream-src/src/rl_addons"},
+- ext_modules=ext_modules,
+ namespace_packages=['mwlib'],
+ include_package_data=True,
+ zip_safe=False,
diff --git a/dev-python/mwlib-ext/metadata.xml b/dev-python/mwlib-ext/metadata.xml
new file mode 100644
index 00000000000..c74bb5b4ec5
--- /dev/null
+++ b/dev-python/mwlib-ext/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mwlib.ext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mwlib-ext/mwlib-ext-0.12.4-r1.ebuild b/dev-python/mwlib-ext/mwlib-ext-0.12.4-r1.ebuild
new file mode 100644
index 00000000000..1beeef52a2a
--- /dev/null
+++ b/dev-python/mwlib-ext/mwlib-ext-0.12.4-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="${PN/-/.}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Extension module to mwlib to pull in reportlab"
+HOMEPAGE="http://code.pediapress.com/wiki/wiki http://pypi.python.org/pypi/mwlib.ext"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/reportlab-2.6[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}/0.12.4-unbundle-reportlab.patch" )
diff --git a/dev-python/mwlib-ext/mwlib-ext-0.13.2.ebuild b/dev-python/mwlib-ext/mwlib-ext-0.13.2.ebuild
new file mode 100644
index 00000000000..cb699d9842d
--- /dev/null
+++ b/dev-python/mwlib-ext/mwlib-ext-0.13.2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="${PN/-/.}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Extension module to mwlib to pull in reportlab"
+HOMEPAGE="http://code.pediapress.com/wiki/wiki http://pypi.python.org/pypi/mwlib.ext"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/reportlab-2.6[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}/${PV}-unbundle-reportlab.patch" )
diff --git a/dev-python/mwlib-rl/Manifest b/dev-python/mwlib-rl/Manifest
new file mode 100644
index 00000000000..5fd8f029777
--- /dev/null
+++ b/dev-python/mwlib-rl/Manifest
@@ -0,0 +1,2 @@
+DIST mwlib.rl-0.14.5.zip 4239803 SHA256 dddf9603ea0ca5aa87890217709eb5a5b16baeca547db3daad43c3ace73b6bc1 SHA512 a874b4aa6318a86d47cdf1f44d66e8a52d4504b2e05ca2b8f365a31a613840c04aac79addedc8ce4df7f3059e6a9a25ba933d1b94c636cc3cdf74a8e0f6e63ec WHIRLPOOL d85e9187d01412000376a2b8a1047d474f37b463c752a3beebe6720059617c576ae32f8535d7a6f9d4871c1ea148ded5fdc3cf9a6f1dc56c7ec8ec1ec9a4e780
+DIST mwlib.rl-0.14.6.tar.gz 4018190 SHA256 12862d1bd1344cb326dc24a0a6a8dd4a95589bcd8f66cef7a0f6b016b7307108 SHA512 35c32b2c63f6a614002104ddc77827ee11c02e86b77cf9aca8520a1cdbe43a86a7efe093bface1e67a9dfcafc1e48e208a945c170d5aa5041c23e2b61c37e066 WHIRLPOOL 1770a1f001ed3643d8c3415a0d4bfd7b3213a87694edbbb5b6b54495a5b96da28c32b3ae47711db01c55e0a697f87469cf2b507e97ffa9f633d2bf0a10f930df
diff --git a/dev-python/mwlib-rl/files/0.14.3-use-system-fonts.patch b/dev-python/mwlib-rl/files/0.14.3-use-system-fonts.patch
new file mode 100644
index 00000000000..bf6bea78057
--- /dev/null
+++ b/dev-python/mwlib-rl/files/0.14.3-use-system-fonts.patch
@@ -0,0 +1,13 @@
+diff --git a/mwlib/rl/fontconfig.py b/mwlib/rl/fontconfig.py
+index fdf5cba..ab792df 100755
+--- a/mwlib/rl/fontconfig.py
++++ b/mwlib/rl/fontconfig.py
+@@ -14,7 +14,7 @@ from reportlab.pdfbase import pdfmetrics
+ from reportlab.pdfbase.ttfonts import TTFont
+ from reportlab.pdfbase.cidfonts import UnicodeCIDFont
+
+-font_paths = [os.path.dirname(mwlib.fonts.__file__),
++font_paths = ['/usr/share/fonts',
+ os.path.expanduser('~/mwlibfonts/')
+ ]
+
diff --git a/dev-python/mwlib-rl/metadata.xml b/dev-python/mwlib-rl/metadata.xml
new file mode 100644
index 00000000000..afa512415f6
--- /dev/null
+++ b/dev-python/mwlib-rl/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mwlib.rl</remote-id>
+ <remote-id type="github">pediapress/mwlib.rl</remote-id>
+ </upstream>
+ <use>
+ <flag name="pdftk">Enable support for <pkg>app-text/pdftk</pkg>, required to generate TOCs</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/mwlib-rl/mwlib-rl-0.14.5.ebuild b/dev-python/mwlib-rl/mwlib-rl-0.14.5.ebuild
new file mode 100644
index 00000000000..d8c650bfc3e
--- /dev/null
+++ b/dev-python/mwlib-rl/mwlib-rl-0.14.5.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml"
+
+inherit distutils-r1
+
+MY_PN="${PN/-/.}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Generate pdfs from mediawiki markup"
+HOMEPAGE="http://code.pediapress.com/wiki/wiki http://pypi.python.org/pypi/mwlib.rl"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test pdftk"
+
+RDEPEND=">=dev-python/mwlib-0.15.8-r1[${PYTHON_USEDEP}]
+ >=dev-python/mwlib-ext-0.12.4-r1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.4[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ media-fonts/freefont
+ || ( media-gfx/graphicsmagick[imagemagick] media-gfx/imagemagick )
+ pdftk? ( app-text/pdftk )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}/0.14.3-use-system-fonts.patch" )
+DOCS=( example-mwlib.config README.rst )
+
+python_prepare_all() {
+ rm -r mwlib/fonts/freefont || die "removing bundled fonts failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ py.test || die "tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ elog "If you need extended/non-lating rendering support, please install the"
+ elog "corresponding font packages:"
+ elog " - media-fonts/libertine-ttf"
+ elog " - media-fonts/sil-ezra"
+ elog " - media-fonts/farsi-fonts"
+ elog " - media-fonts/arphicfonts"
+ elog " - media-fonts/unfonts"
+ # TODO: need the following packages as well:
+ # ttf-indic-fonts ttf-gfs-artemisia ttf-thai-arundina
+}
diff --git a/dev-python/mwlib-rl/mwlib-rl-0.14.6.ebuild b/dev-python/mwlib-rl/mwlib-rl-0.14.6.ebuild
new file mode 100644
index 00000000000..a77f6f02266
--- /dev/null
+++ b/dev-python/mwlib-rl/mwlib-rl-0.14.6.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml"
+
+inherit distutils-r1
+
+MY_PN="${PN/-/.}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Generate pdfs from mediawiki markup"
+HOMEPAGE="http://code.pediapress.com/code/ http://pypi.python.org/pypi/mwlib.rl https://github.com/pediapress/mwlib.rl/"
+SRC_URI="https://github.com/pediapress/mwlib.rl/archive/${PV}.tar.gz -> ${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test pdftk"
+
+RDEPEND=">=dev-python/mwlib-0.15.8-r1[${PYTHON_USEDEP}]
+ >=dev-python/mwlib-ext-0.12.4-r1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.4[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ media-fonts/freefont
+ || ( media-gfx/graphicsmagick[imagemagick] media-gfx/imagemagick )
+ pdftk? ( app-text/pdftk )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}/0.14.3-use-system-fonts.patch" )
+DOCS=( example-mwlib.config README.rst )
+
+python_prepare_all() {
+ rm -r mwlib/fonts/freefont || die "removing bundled fonts failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ py.test || die "tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ elog "If you need extended/non-lating rendering support, please install the"
+ elog "corresponding font packages:"
+ elog " - media-fonts/libertine-ttf"
+ elog " - media-fonts/sil-ezra"
+ elog " - media-fonts/farsi-fonts"
+ elog " - media-fonts/arphicfonts"
+ elog " - media-fonts/unfonts"
+ # TODO: need the following packages as well:
+ # ttf-indic-fonts ttf-gfs-artemisia ttf-thai-arundina
+}
diff --git a/dev-python/mwlib/Manifest b/dev-python/mwlib/Manifest
new file mode 100644
index 00000000000..f66c9155373
--- /dev/null
+++ b/dev-python/mwlib/Manifest
@@ -0,0 +1 @@
+DIST mwlib-0.15.15.tar.gz 1705073 SHA256 06ce351df76fb4605913cda6c9702f8e5ea99147921921c2f8462c60791e4946 SHA512 e1c04c0cd86b8fd31f54033387426dcad343d4b5ef03f2f51b3689c0894f2cfa85c9246401f713836d76435c42c380ecf94c3000b4f38d1f1b2789780d93c5ca WHIRLPOOL b854d06f8b5450b519d0aa6e9232b8480839ecf867d111fc9f189e9c70fd7b857152cd40548132a1ac8fd3313c0ab5c79e244f4434ab752ac0ea4cc56bee5d53
diff --git a/dev-python/mwlib/files/mw-qserve.confd b/dev-python/mwlib/files/mw-qserve.confd
new file mode 100644
index 00000000000..bcd18d4667a
--- /dev/null
+++ b/dev-python/mwlib/files/mw-qserve.confd
@@ -0,0 +1,14 @@
+# The port to listen to
+MW_QSERVE_PORT=14311
+
+# The interface to listen to (for example: 127.0.0.1)
+MW_QSERVE_INTERFACE="127.0.0.1"
+
+# The user running the mw-qserve service, defaults to 'mwlib'
+# MW_QSERVE_USER="mwlib"
+
+# The group running the mq-qserve service, defaults to 'mwlib'
+# MW_QSERVE_GROUP="mwlib"
+
+# The logfile collecting all output from stdout and stderr, comment out for no logging
+MW_QSERVE_LOGFILE="/var/log/mwlib/mw-qserve.log"
diff --git a/dev-python/mwlib/files/mw-qserve.initd b/dev-python/mwlib/files/mw-qserve.initd
new file mode 100644
index 00000000000..ac9dd78016b
--- /dev/null
+++ b/dev-python/mwlib/files/mw-qserve.initd
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="mw-qserve is a job queue server used to distribute and manage jobs"
+
+command="/usr/bin/mw-qserve"
+command_args="--interface=${MW_QSERVE_INTERFACE} --port=${MW_QSERVE_PORT}"
+
+pidfile="/var/run/${SVCNAME}.pid"
+command_background="yes"
+
+start_stop_daemon_args="--user ${MW_QSERVE_USER:-mwlib} \
+ --group ${MW_QSERVE_GROUP:-mwlib} \
+ ${MW_QSERVE_LOGFILE:+--stderr ${MW_QSERVE_LOGFILE}} \
+ ${MW_QSERVE_LOGFILE:+--stdout ${MW_QSERVE_LOGFILE}}"
+
+depend() {
+ need net localmount
+}
diff --git a/dev-python/mwlib/files/mw-qserve.logrotate b/dev-python/mwlib/files/mw-qserve.logrotate
new file mode 100644
index 00000000000..3b9cf46e941
--- /dev/null
+++ b/dev-python/mwlib/files/mw-qserve.logrotate
@@ -0,0 +1,7 @@
+/var/log/mwlib/mw-qserve.log {
+ su mwlib mwlib
+ missingok
+ postrotate
+ /etc/init.d/mw-qserve restart > /dev/null 2>&1
+ endscript
+}
diff --git a/dev-python/mwlib/files/mwlib-purge-cache.cron-r1 b/dev-python/mwlib/files/mwlib-purge-cache.cron-r1
new file mode 100644
index 00000000000..870beecad23
--- /dev/null
+++ b/dev-python/mwlib/files/mwlib-purge-cache.cron-r1
@@ -0,0 +1,4 @@
+# purge mw-serve cache directory
+# --cache-dir=DIR: the NSLAVE_CACHEDIR directory specified in /etc/conf.d/nslave
+# --purge-cache=HOURS: remove cache files that have not been touched for at east HOURS hours
+00 23 * * * sudo -u mwlib mw-serve-ctl --cache-dir=/var/cache/mwlib --purge-cache=24
diff --git a/dev-python/mwlib/files/nserve.confd b/dev-python/mwlib/files/nserve.confd
new file mode 100644
index 00000000000..7a482e9989c
--- /dev/null
+++ b/dev-python/mwlib/files/nserve.confd
@@ -0,0 +1,20 @@
+# The port on which the mw-qserve service is listening
+MW_QSERVE_PORT=14311
+
+# The interface on which the mw-qserve is listening (for example: 127.0.0.1)
+MW_QSERVE_INTERFACE="127.0.0.1"
+
+# The port to listen to
+NSERVE_PORT=8899
+
+# The interface to listen to (for example: 127.0.0.1)
+NSERVE_INTERFACE="127.0.0.1"
+
+# The user running the nserve service, defaults to 'mwlib'
+# NSERVE_USER="mwlib"
+
+# The group running the nserve service, defaults to 'mwlib'
+# NSERVE_GROUP="mwlib"
+
+# The logfile collecting all output from stdout and stderr, comment out for no logging
+NSERVE_LOGFILE="/var/log/mwlib/nserve.log"
diff --git a/dev-python/mwlib/files/nserve.initd b/dev-python/mwlib/files/nserve.initd
new file mode 100644
index 00000000000..498bd738d63
--- /dev/null
+++ b/dev-python/mwlib/files/nserve.initd
@@ -0,0 +1,24 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="nserve is a HTTP server which distributes received jobs to a mw-qserve instance"
+
+command="/usr/bin/nserve"
+command_args="--port=${NSERVE_PORT} \
+ --interface=${NSERVE_INTERFACE} \
+ --qserve=${MW_QSERVE_INTERFACE}:${MW_QSERVE_PORT}"
+
+pidfile="/var/run/${SVCNAME}.pid"
+command_background="yes"
+
+start_stop_daemon_args="--user ${NSERVE_USER:-mwlib} \
+ --group ${NSERVE_GROUP:-mwlib} \
+ ${NSERVE_LOGFILE:+--stderr ${NSERVE_LOGFILE}} \
+ ${NSERVE_LOGFILE:+--stdout ${NSERVE_LOGFILE}}"
+
+depend() {
+ need net localmount
+ use mw-qserve
+}
diff --git a/dev-python/mwlib/files/nserve.logrotate b/dev-python/mwlib/files/nserve.logrotate
new file mode 100644
index 00000000000..54cc4587335
--- /dev/null
+++ b/dev-python/mwlib/files/nserve.logrotate
@@ -0,0 +1,7 @@
+/var/log/mwlib/nserve.log {
+ su mwlib mwlib
+ missingok
+ postrotate
+ /etc/init.d/nserve restart > /dev/null 2>&1
+ endscript
+}
diff --git a/dev-python/mwlib/files/nslave.confd-r1 b/dev-python/mwlib/files/nslave.confd-r1
new file mode 100644
index 00000000000..ccf75849816
--- /dev/null
+++ b/dev-python/mwlib/files/nslave.confd-r1
@@ -0,0 +1,26 @@
+# The address to serve the rendered files to the wiki
+NSLAVE_ADDRESS="localhost"
+
+# The port to serve the rendered files to the wiki
+NSLAVE_PORT=8898
+
+# The url to serve the rendered files to the wiki
+NSLAVE_URL="http://${NSLAVE_ADDRESS}:${NSLAVE_PORT}/cache"
+
+# The directory to save the rendered PDFs to
+NSLAVE_CACHEDIR="/var/cache/mwlib/"
+
+# The umask to create files in NSLAVE_CACHEDIR
+NSLAVE_UMASK=027
+
+# How many greenlets are allowed to run in parallel
+NSLAVE_NUMPROCS=10
+
+# The user running the nserve service, defaults to 'mwlib'
+# NSLAVE_USER="mwlib"
+
+# The group running the nserve service, defaults to 'mwlib'
+# NSLAVE_GROUP="mwlib"
+
+# The logfile collecting all output from stdout and stderr, comment out for no logging
+NSLAVE_LOGFILE="/var/log/mwlib/nslave.log"
diff --git a/dev-python/mwlib/files/nslave.initd-r1 b/dev-python/mwlib/files/nslave.initd-r1
new file mode 100644
index 00000000000..81f81d3a944
--- /dev/null
+++ b/dev-python/mwlib/files/nslave.initd-r1
@@ -0,0 +1,27 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="nslave pulls new jobs from a mw-qserve instance"
+
+command="/usr/bin/nslave"
+command_args="--cachedir=${NSLAVE_CACHEDIR} \
+ --serve-files-address=${NSLAVE_ADDRESS} \
+ --serve-files-port=${NSLAVE_PORT} \
+ --url=${NSLAVE_URL} \
+ --numprocs=${NSLAVE_NUMPROCS}"
+
+pidfile="/var/run/${SVCNAME}.pid"
+command_background="yes"
+
+start_stop_daemon_args="--user ${NSLAVE_USER:-mwlib} \
+ --group ${NSLAVE_GROUP:-mwlib} \
+ ${NSLAVE_LOGFILE:+--stderr ${NSLAVE_LOGFILE}} \
+ ${NSLAVE_LOGFILE:+--stdout ${NSLAVE_LOGFILE}} \
+ --umask ${NSLAVE_UMASK}"
+
+depend() {
+ need net localmount
+ use mw-qserve
+}
diff --git a/dev-python/mwlib/files/nslave.logrotate b/dev-python/mwlib/files/nslave.logrotate
new file mode 100644
index 00000000000..0637e248f2e
--- /dev/null
+++ b/dev-python/mwlib/files/nslave.logrotate
@@ -0,0 +1,7 @@
+/var/log/mwlib/nslave.log {
+ su mwlib mwlib
+ missingok
+ postrotate
+ /etc/init.d/nslave restart > /dev/null 2>&1
+ endscript
+}
diff --git a/dev-python/mwlib/files/postman.confd b/dev-python/mwlib/files/postman.confd
new file mode 100644
index 00000000000..168627480dd
--- /dev/null
+++ b/dev-python/mwlib/files/postman.confd
@@ -0,0 +1,12 @@
+# The cache-directory to which the collections are saved, make sure you enter
+# the same directory as in /etc/conf.d/nslave
+POSTMAN_CACHEDIR="/var/cache/mwlib/"
+
+# The user running the postman service, defaults to 'mwlib'
+# POSTMAN_USER="mwlib"
+
+# The group running the postman service, defaults to 'mwlib'
+# POSTMAN_GROUP="mwlib"
+
+# The logfile collecting all output from stdout and stderr, comment out for no logging
+POSTMAN_LOGFILE="/var/log/mwlib/postman.log"
diff --git a/dev-python/mwlib/files/postman.initd-r1 b/dev-python/mwlib/files/postman.initd-r1
new file mode 100644
index 00000000000..0b276240a1d
--- /dev/null
+++ b/dev-python/mwlib/files/postman.initd-r1
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="postman uploads zip collections to pediapress in case someone likes to order printed books"
+
+command="/usr/bin/postman"
+command_args="--cachedir=${POSTMAN_CACHEDIR}"
+
+pidfile="/var/run/${SVCNAME}.pid"
+command_background="yes"
+
+start_stop_daemon_args="--user ${POSTMAN_USER:-mwlib} \
+ --group ${POSTMAN_GROUP:-mwlib} \
+ ${POSTMAN_LOGFILE:+--stderr ${POSTMAN_LOGFILE}} \
+ ${POSTMAN_LOGFILE:+--stdout ${POSTMAN_LOGFILE}}"
+
+depend() {
+ need net localmount
+}
diff --git a/dev-python/mwlib/files/postman.logrotate b/dev-python/mwlib/files/postman.logrotate
new file mode 100644
index 00000000000..50cbccda7df
--- /dev/null
+++ b/dev-python/mwlib/files/postman.logrotate
@@ -0,0 +1,7 @@
+/var/log/mwlib/postman.log {
+ su mwlib mwlib
+ missingok
+ postrotate
+ /etc/init.d/postman restart > /dev/null 2>&1
+ endscript
+}
diff --git a/dev-python/mwlib/metadata.xml b/dev-python/mwlib/metadata.xml
new file mode 100644
index 00000000000..a27761e03ab
--- /dev/null
+++ b/dev-python/mwlib/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mwlib</remote-id>
+ <remote-id type="github">pediapress/mwlib</remote-id>
+ </upstream>
+ <use>
+ <flag name="server">Install the daemons required when using mwlib for generating PDFs on a MediaWiki instance.</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/mwlib/mwlib-0.15.15.ebuild b/dev-python/mwlib/mwlib-0.15.15.ebuild
new file mode 100644
index 00000000000..6be53b70b32
--- /dev/null
+++ b/dev-python/mwlib/mwlib-0.15.15.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 user
+
+DESCRIPTION="Tools for parsing Mediawiki content to other formats"
+HOMEPAGE="http://code.pediapress.com/code/ http://pypi.python.org/pypi/mwlib https://github.com/pediapress/mwlib/"
+SRC_URI="https://github.com/pediapress/mwlib/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc server test"
+
+RDEPEND="dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/odfpy-0.9[${PYTHON_USEDEP}]
+ <dev-python/odfpy-0.10[${PYTHON_USEDEP}]
+ >=dev-python/pyPdf-1.12[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-1.5.5[${PYTHON_USEDEP}]
+ <dev-python/pyparsing-1.6[${PYTHON_USEDEP}]
+ >=dev-python/timelib-0.2[${PYTHON_USEDEP}]
+ virtual/latex-base
+ >=dev-python/simplejson-2.3[${PYTHON_USEDEP}]
+ dev-python/gevent[${PYTHON_USEDEP}]
+ >=dev-python/bottle-0.10[${PYTHON_USEDEP}]
+ >=dev-python/apipkg-1.2[${PYTHON_USEDEP}]
+ >=dev-python/qserve-0.2.7[${PYTHON_USEDEP}]
+ dev-python/roman[${PYTHON_USEDEP}]
+ >=dev-python/py-1.4[${PYTHON_USEDEP}]
+ dev-python/sqlite3dbm[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ server? ( app-admin/sudo )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ dev-util/re2c
+ dev-python/cython[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/wsgiintercept-0.6[${PYTHON_USEDEP}] )"
+
+# TODO: requires ploticus to generate timelines
+
+DOCS=(changelog.rst)
+
+pkg_setup() {
+ if use server ; then
+ enewgroup mwlib
+ enewuser mwlib -1 -1 -1 mwlib
+ fi
+}
+
+python_prepare_all() {
+ # mwlib.apipkg is actually used.
+ sed -e 's/, "apipkg"//' -i setup.py || die
+
+ # Execute odflint script.
+ sed \
+ -e "/def _get_odflint_module():/,/odflint = _get_odflint_module()/d" \
+ -e "s/odflint.lint(path)/os.system('odflint %s' % path)/" \
+ -i tests/test_odfwriter.py || die
+
+ # Disable test which requires installed mw-zip or mw-render script
+ # which don't get generated in distutils_install_for_testing for some reason
+ rm -f tests/test_{nuwiki,redirect,render,zipwiki}.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if [[ ${EPYTHON} == python2* ]] ; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ distutils_install_for_testing
+ PATH="${TEST_DIR}/scripts:${PATH}" py.test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+
+ if use server ; then
+ keepdir /var/log/mwlib
+ keepdir /var/cache/mwlib
+
+ fowners mwlib:mwlib /var/log/mwlib /var/cache/mwlib
+ fperms 0750 /var/log/mwlib /var/cache/mwlib
+
+ insinto /etc/logrotate.d
+ for d in mw-qserve nserve ; do
+ newins "${FILESDIR}/${d}.logrotate" "${d}"
+ newinitd "${FILESDIR}/${d}.initd" "${d}"
+ newconfd "${FILESDIR}/${d}.confd" "${d}"
+ done
+
+ newins "${FILESDIR}/nslave.logrotate" "nslave"
+ newinitd "${FILESDIR}/nslave.initd-r1" "nslave"
+ newconfd "${FILESDIR}/nslave.confd-r1" "nslave"
+
+ newins "${FILESDIR}/postman.logrotate" "postman"
+ newinitd "${FILESDIR}/postman.initd-r1" "postman"
+ newconfd "${FILESDIR}/postman.confd" "postman"
+
+ insinto /etc/cron.d
+ newins "${FILESDIR}/mwlib-purge-cache.cron-r1" "mwlib-purge-cache"
+ else
+ rm "${D}"/usr/bin/{mw-qserve,nserve,nslave,postman}* || die "removing binaries failed"
+ fi
+}
+
+pkg_postinst() {
+ elog "Please enable required image formats for dev-python/pillow"
+ if use server ; then
+ elog "A cronjob to cleanup the cache files got installed to"
+ elog " /etc/cron.d/mwlib-purge-cache"
+ elog "Default parameters are to clean every 24h, adjust it to your needs."
+ fi
+}
diff --git a/dev-python/myghty/Manifest b/dev-python/myghty/Manifest
new file mode 100644
index 00000000000..988f26609e2
--- /dev/null
+++ b/dev-python/myghty/Manifest
@@ -0,0 +1 @@
+DIST Myghty-1.2.tar.gz 292439 SHA256 3de2d5bfd7ad8bd7cc33827b3b481fe8143dbe67eb0bcb53d38d46530a2fa7aa SHA512 a4534149241e794eb8a469b062d2696076cc5bc0fc07f3e093dc2ae0e489a9e79ce6d053f75ddc5b5ab64de9c0e4341d801e7e595dd5a0dcc24a3551fcef7098 WHIRLPOOL 9c7755fd0b892a9243a68961805dc05ade6a9b3569c12683719eeff400f85333272305b0848926ee989ac38cc5cd94dd7da879f0236ecc57bcbde23e795364bd
diff --git a/dev-python/myghty/metadata.xml b/dev-python/myghty/metadata.xml
new file mode 100644
index 00000000000..4c18139204f
--- /dev/null
+++ b/dev-python/myghty/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Myghty</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/myghty/myghty-1.2-r1.ebuild b/dev-python/myghty/myghty-1.2-r1.ebuild
new file mode 100644
index 00000000000..c9bb9b465de
--- /dev/null
+++ b/dev-python/myghty/myghty-1.2-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Myghty"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Template and view-controller framework derived from HTML::Mason"
+HOMEPAGE="http://www.myghty.org/ http://pypi.python.org/pypi/Myghty"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=">=dev-python/routes-1.0[${PYTHON_USEDEP}]
+ dev-python/paste[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/pastescript[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ cd doc || die
+ "${PYTHON}" genhtml.py || die
+ fi
+}
+
+python_test() {
+ "${PYTHON}" test/alltests.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r doc/html/.
+ fi
+}
diff --git a/dev-python/myghtyutils/Manifest b/dev-python/myghtyutils/Manifest
new file mode 100644
index 00000000000..6d2986dc1a3
--- /dev/null
+++ b/dev-python/myghtyutils/Manifest
@@ -0,0 +1 @@
+DIST MyghtyUtils-0.52.zip 31038 SHA256 2bbf206bd4c07b7d690b0397714fd893ab380f0ba5a82a897cda3647a3641cb5 SHA512 353174413c74ff440db299e0aa4c64cf01f67282f7290df8a9f7156c9efd6e502217ec8fa972ad91d37b0a137c5367378ece325f7f32c0f9fa83cdc0c15aeaf8 WHIRLPOOL bb86746cd6225754a6fb63ba08385f54f837ff723ddbf02b246d3b22af0cd66e667f990bb32db046ded27ee22270e09548c38e65fd4b698a29cd0f510836eb84
diff --git a/dev-python/myghtyutils/metadata.xml b/dev-python/myghtyutils/metadata.xml
new file mode 100644
index 00000000000..ed85cb0f24b
--- /dev/null
+++ b/dev-python/myghtyutils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">MyghtyUtils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/myghtyutils/myghtyutils-0.52-r1.ebuild b/dev-python/myghtyutils/myghtyutils-0.52-r1.ebuild
new file mode 100644
index 00000000000..9a4e1e60a8d
--- /dev/null
+++ b/dev-python/myghtyutils/myghtyutils-0.52-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="MyghtyUtils"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Set of utility classes used by Myghty templating"
+HOMEPAGE="http://www.myghty.org http://pypi.python.org/pypi/MyghtyUtils"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/myghty[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/mygpoclient/Manifest b/dev-python/mygpoclient/Manifest
new file mode 100644
index 00000000000..c88a76bf828
--- /dev/null
+++ b/dev-python/mygpoclient/Manifest
@@ -0,0 +1 @@
+DIST mygpoclient-1.7.tar.gz 35890 SHA256 6a0b7b1fe2b046875456e14eda3e42430e493bf2251a64481cf4fd1a1e21a80e SHA512 95e5920799300590830be6fba9d48fcd0398cab9eb07e34c9f07254f01f0fd483a3f117434a536c82fa8b1c846017919c9e3cbb7e848109912d9c38a347f896c WHIRLPOOL bb325dc6d824c7f8bc46d216011607314485f8065277e40b4521360b0fcf23b9c66804cf173a9f21d4000621df158c48c7f1f4f57f1fc175c70df1bff5338a25
diff --git a/dev-python/mygpoclient/files/tests.patch b/dev-python/mygpoclient/files/tests.patch
new file mode 100644
index 00000000000..041cee501a0
--- /dev/null
+++ b/dev-python/mygpoclient/files/tests.patch
@@ -0,0 +1,34 @@
+diff -ur mygpoclient-1.7.orig/mygpoclient/locator_test.py mygpoclient-1.7/mygpoclient/locator_test.py
+--- mygpoclient-1.7.orig/mygpoclient/locator_test.py 2013-02-08 19:39:32.000000000 +0800
++++ mygpoclient-1.7/mygpoclient/locator_test.py 2013-03-09 23:33:37.137651841 +0800
+@@ -16,7 +16,7 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ from mygpoclient import locator
+-import unittest
++import unittest, sys
+
+ class Test_Exceptions(unittest.TestCase):
+ def setUp(self):
+@@ -54,18 +54,21 @@
+ podcast='http://example.org/episodes.rss',
+ device_id='gpodder')
+
++ @unittest.skipIf(hasattr(sys, 'pypy_version_info'), "pypy doesn't raise ValueError")
+ def test_device_settings_uri_exception(self):
+ """Test if using no parameter for a device Setting raises a ValueError"""
+ self.assertRaises(ValueError,
+ self.locator.settings_uri, type='device',
+ scope_param1=None, scope_param2=None)
+
++ @unittest.skipIf(hasattr(sys, 'pypy_version_info'), "pypy doesn't raise ValueError")
+ def test_podcast_settings_uri_exception(self):
+ """Test if using no parameter for a podcast Setting raises a ValueError"""
+ self.assertRaises(ValueError,
+ self.locator.settings_uri, type='podcast',
+ scope_param1=None, scope_param2=None)
+
++ @unittest.skipIf(hasattr(sys, 'pypy_version_info'), "pypy doesn't raise ValueError")
+ def test_episode_settings_uri_exception(self):
+ """Test if only using one parameter for a episode Setting raises a ValueError"""
+ self.assertRaises(ValueError,
diff --git a/dev-python/mygpoclient/metadata.xml b/dev-python/mygpoclient/metadata.xml
new file mode 100644
index 00000000000..c77ae0cadab
--- /dev/null
+++ b/dev-python/mygpoclient/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sound</herd>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/mygpoclient/mygpoclient-1.7-r1.ebuild b/dev-python/mygpoclient/mygpoclient-1.7-r1.ebuild
new file mode 100644
index 00000000000..ecbac2a52f3
--- /dev/null
+++ b/dev-python/mygpoclient/mygpoclient-1.7-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A gpodder.net client library"
+HOMEPAGE="http://thp.io/2010/mygpoclient/"
+SRC_URI="http://thp.io/2010/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="dev-python/simplejson"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/minimock
+ )"
+
+PATCHES=( "${FILESDIR}"/tests.patch )
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # Disable tests requring network connection.
+ rm -f mygpoclient/http_test.py
+}
+
+python_test() {
+ if [[ "${EPYTHON:0:4}" == "pypy" ]]; then
+ nosetests --cover-erase --with-coverage --cover-package=mygpoclient "${BUILD_DIR}"/lib/${PN}/
+ else
+ nosetests --cover-erase --with-coverage --with-doctest --cover-package=mygpoclient "${BUILD_DIR}"/lib/${PN}/
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+ rm -f $(find "${D}" -name "*_test.py")
+}
diff --git a/dev-python/mypy/Manifest b/dev-python/mypy/Manifest
new file mode 100644
index 00000000000..7a82e9c3342
--- /dev/null
+++ b/dev-python/mypy/Manifest
@@ -0,0 +1 @@
+DIST mypy-0.2.0.tar.gz 626604 SHA256 0c24f50509bdf3e0d9bd386a08ef4f11ee0114e1f5a9b2afeacbf9561cf022c1 SHA512 b03014abf152407c7629dba925aca6178fcdf57532f47c728edcb591a56942cda13e02122f405aa269e9b6303de1f4a9d5cbb2d5a5af6e90a808a3db94cca53f WHIRLPOOL 7d9f05ead0bfea78bdf228b0bb7c3519e8eaa70f52c00049963780f42e71e9f44168edb09d2e558f59b07a4d09912d1d6d3c8b11a2b9e47db77b2c06e56eb910
diff --git a/dev-python/mypy/files/use-which.patch b/dev-python/mypy/files/use-which.patch
new file mode 100644
index 00000000000..bca26f03c76
--- /dev/null
+++ b/dev-python/mypy/files/use-which.patch
@@ -0,0 +1,20 @@
+diff --git a/scripts/mypy b/scripts/mypy
+index e758f1f..5a06146 100755
+--- a/scripts/mypy
++++ b/scripts/mypy
+@@ -45,14 +45,7 @@ def find_bin_directory() -> str:
+
+ This is used by build to find stubs and other data files.
+ """
+- script = __file__
+- # Follow up to 5 symbolic links (cap to avoid cycles).
+- for i in range(5):
+- if os.path.islink(script):
+- script = readlinkabs(script)
+- else:
+- break
+- return os.path.dirname(script)
++ return os.path.dirname(shutil.which('mypy'))
+
+
+ def readlinkabs(link: str) -> str:
diff --git a/dev-python/mypy/metadata.xml b/dev-python/mypy/metadata.xml
new file mode 100644
index 00000000000..082e0c25fc4
--- /dev/null
+++ b/dev-python/mypy/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">JukkaL/mypy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mypy/mypy-0.2.0-r1.ebuild b/dev-python/mypy/mypy-0.2.0-r1.ebuild
new file mode 100644
index 00000000000..0b30dccda29
--- /dev/null
+++ b/dev-python/mypy/mypy-0.2.0-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Optional static typing for Python"
+HOMEPAGE="http://www.mypy-lang.org/"
+SRC_URI="https://github.com/JukkaL/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples"
+
+DEPEND="
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=""
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/use-which.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" tests.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mypy/mypy-0.2.0.ebuild b/dev-python/mypy/mypy-0.2.0.ebuild
new file mode 100644
index 00000000000..7d8aef31dfd
--- /dev/null
+++ b/dev-python/mypy/mypy-0.2.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Optional static typing for Python"
+HOMEPAGE="http://www.mypy-lang.org/"
+SRC_URI="https://github.com/JukkaL/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples"
+
+DEPEND="
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" tests.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mysql-connector-python/Manifest b/dev-python/mysql-connector-python/Manifest
new file mode 100644
index 00000000000..81b6ab929b9
--- /dev/null
+++ b/dev-python/mysql-connector-python/Manifest
@@ -0,0 +1,2 @@
+DIST mysql-connector-python-2.0.3.tar.gz 210699 SHA256 b07a42c6c1d0476d47315428df89f3fd84626d1df18045babdaa182a6a331ec8 SHA512 2c9c6ee8042c3a694b7a88841176db682ae17def03e6a9628e098b5652d387eca882cbf1ec3e6d963c3b3913f66bc63e26ce7cc82a5f9fba01dfe00fcb574d7c WHIRLPOOL 41fe675d60b24a73f959117fb9ab85257d821f6f53f7f8f2ca0029aa17100ef30b7201f71dffd52bc64bca3e435f725bb9fac573078b852161507991990f6aca
+DIST mysql-connector-python-2.1.1.tar.gz 260751 SHA256 5306e982592fbd4adbdc6a89f198f175ac1a7353c7c57def59e1d2e74b954cb3 SHA512 02eef242c186ed648454225bbb75931fa7099d1286cb3425224e86c57ba5e7cca3bb2216892109c8be366596e76c671d4ebde7c6641fc39869cbffeb3738597c WHIRLPOOL 57b7390403b54727fac4cd0d92323190ac37e9f8b18bc588cef569d336b8db2fa36b5ddeaf1887ecff4e61ffab941a156c858ff626060536e8d7cdca6102e53e
diff --git a/dev-python/mysql-connector-python/metadata.xml b/dev-python/mysql-connector-python/metadata.xml
new file mode 100644
index 00000000000..665d741edb2
--- /dev/null
+++ b/dev-python/mysql-connector-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>mysql</herd>
+<herd>python</herd>
+<use>
+</use>
+</pkgmetadata>
diff --git a/dev-python/mysql-connector-python/mysql-connector-python-2.0.3.ebuild b/dev-python/mysql-connector-python/mysql-connector-python-2.0.3.ebuild
new file mode 100644
index 00000000000..21a64e57b42
--- /dev/null
+++ b/dev-python/mysql-connector-python/mysql-connector-python-2.0.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python client library for MariaDB/MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/connector/python/"
+SRC_URI="mirror://mysql/Downloads/Connector-Python/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~x86"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="examples"
+
+DOCS=( README.txt CHANGES.txt )
+EXAMPLES=( examples/. )
diff --git a/dev-python/mysql-connector-python/mysql-connector-python-2.1.1.ebuild b/dev-python/mysql-connector-python/mysql-connector-python-2.1.1.ebuild
new file mode 100644
index 00000000000..8cb6369cc9d
--- /dev/null
+++ b/dev-python/mysql-connector-python/mysql-connector-python-2.1.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python client library for MariaDB/MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/connector/python/"
+SRC_URI="mirror://mysql/Downloads/Connector-Python/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~x86"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="examples"
+
+DOCS=( README.txt CHANGES.txt docs/README_DOCS.txt )
+
+EXAMPLES=( examples/. )
diff --git a/dev-python/mysql-python/Manifest b/dev-python/mysql-python/Manifest
new file mode 100644
index 00000000000..73922c06d85
--- /dev/null
+++ b/dev-python/mysql-python/Manifest
@@ -0,0 +1,2 @@
+DIST MySQL-python-1.2.3.tar.gz 70305 SHA256 7de66fbbf923634e7c965aeaefa74642ba75ae20ee1cefcefc3009595b7a7e6e SHA512 8c1c88ccf833744ac1f78673cb306cafe7f9bfc85ab2ce6dee1024b86571c17f006e3ab8452dba3527976f39aca64757b2d961c30ef4ac61c9a27e60a5f1abf5 WHIRLPOOL 31e294d658d80b876e54d9825252b0fcffd369a8c80926c78b5830401125761ecfc2d0faa49669d8a404228fc6395ef2bcf7c614d47c13e6a2438e66af36dcd6
+DIST MySQL-python-1.2.5.zip 108935 SHA256 811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e140c74 SHA512 37521c6fd855c4cde495cc8ec085aca79c2d441a6e3710759385bf2e2c17f43d3311cf1166663892829d2e3999c419443c358c7031cdda225ac44611ced188d0 WHIRLPOOL 4dba5b960b6fda6e7096bbeeb38b35b6c645b2126dc82a3d24eb0f14feec7532a474bded66393ad7ee10ed4a6ed1e927fe994ddfaafda2534ba1e93bb1a7c0f6
diff --git a/dev-python/mysql-python/metadata.xml b/dev-python/mysql-python/metadata.xml
new file mode 100644
index 00000000000..feecb70ba29
--- /dev/null
+++ b/dev-python/mysql-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">mysql-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mysql-python/mysql-python-1.2.3-r1.ebuild b/dev-python/mysql-python/mysql-python-1.2.3-r1.ebuild
new file mode 100644
index 00000000000..4e789c3027c
--- /dev/null
+++ b/dev-python/mysql-python/mysql-python-1.2.3-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+MY_P="MySQL-python-${PV}"
+
+DESCRIPTION="Python interface to MySQL"
+HOMEPAGE="http://sourceforge.net/projects/mysql-python/ http://pypi.python.org/pypi/MySQL-python"
+SRC_URI="mirror://sourceforge/mysql-python/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="virtual/mysql"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( HISTORY README doc/{FAQ,MySQLdb}.txt )
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
diff --git a/dev-python/mysql-python/mysql-python-1.2.5-r1.ebuild b/dev-python/mysql-python/mysql-python-1.2.5-r1.ebuild
new file mode 100644
index 00000000000..481b5d99a74
--- /dev/null
+++ b/dev-python/mysql-python/mysql-python-1.2.5-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="MySQL-python"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python interface to MySQL"
+HOMEPAGE="http://sourceforge.net/projects/mysql-python/ http://pypi.python.org/pypi/MySQL-python"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="virtual/mysql"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( HISTORY README.md doc/{FAQ,MySQLdb}.rst )
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html doc doc/_build/
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mysql-python/mysql-python-1.2.5.ebuild b/dev-python/mysql-python/mysql-python-1.2.5.ebuild
new file mode 100644
index 00000000000..9236c57a5c8
--- /dev/null
+++ b/dev-python/mysql-python/mysql-python-1.2.5.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="MySQL-python"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python interface to MySQL"
+HOMEPAGE="http://sourceforge.net/projects/mysql-python/ http://pypi.python.org/pypi/MySQL-python"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="virtual/mysql"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( HISTORY README.md doc/{FAQ,MySQLdb}.rst )
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_compile_all() {
+ use doc && sphinx-build -b html doc doc/_build/
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/mysqlclient/Manifest b/dev-python/mysqlclient/Manifest
new file mode 100644
index 00000000000..0a96e667318
--- /dev/null
+++ b/dev-python/mysqlclient/Manifest
@@ -0,0 +1 @@
+DIST mysqlclient-1.3.6.tar.gz 78133 SHA256 1f63a8ab111530a0ff9acaeb118074f11e7564b7c124f2e7fc56fcac641aecf2 SHA512 387f3aef2f913d72fcb08001c70724702bf0af0d6d17be37cba390ffed10e54886f8a9da04cf8f76d3e7e19bd9fb932f0e80142e374703ca97d67d095ad512d1 WHIRLPOOL 4d767c12a73892c48f9456450df797a79238a06e1d1c159b4ae69264906bdd0461b1acbc89efff8c3c050774244c7a102e37061746d5fc4fb14e4dead2ab9070
diff --git a/dev-python/mysqlclient/metadata.xml b/dev-python/mysqlclient/metadata.xml
new file mode 100644
index 00000000000..f25e113f80e
--- /dev/null
+++ b/dev-python/mysqlclient/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">mysqlclient</remote-id>
+ <remote-id type="github">PyMySQL/mysqlclient-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mysqlclient/mysqlclient-1.3.6.ebuild b/dev-python/mysqlclient/mysqlclient-1.3.6.ebuild
new file mode 100644
index 00000000000..930269da648
--- /dev/null
+++ b/dev-python/mysqlclient/mysqlclient-1.3.6.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Fork of MySQL-python"
+HOMEPAGE="https://pypi.python.org/pypi/mysqlclient/ https://github.com/PyMySQL/mysqlclient-python"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="
+ !dev-python/mysql-python
+ virtual/mysql"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+DOCS=( HISTORY README.md doc/{FAQ,MySQLdb}.rst )
+
+python_compile_all() {
+ use doc && sphinx-build -b html doc doc/_build/
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/natgrid/Manifest b/dev-python/natgrid/Manifest
new file mode 100644
index 00000000000..ecd55562e01
--- /dev/null
+++ b/dev-python/natgrid/Manifest
@@ -0,0 +1 @@
+DIST natgrid-0.2.1.tar.gz 35205 SHA256 99085f49540d030c8f7ed7e8af7170e1bbfa1961abf18f4546b0504ab5d2414c SHA512 489e8454f05ff994bad23d88bb423fd0bc17e838193865d3dbb6be0d01221203dcd1644c133827421ba4acf354295f07533ff838b138056064e1bee73d43c922 WHIRLPOOL 5262f5ca341ec265ca8e41aa4e7f10d5d581c7f55bed34f607effe7a8c44ddd5226c8ff0e81ed2c58fc1578405e8ef21c7a8828106ce40b3ed0b0b0bdec75aec
diff --git a/dev-python/natgrid/metadata.xml b/dev-python/natgrid/metadata.xml
new file mode 100644
index 00000000000..a3b93014161
--- /dev/null
+++ b/dev-python/natgrid/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ mpl_toolkits.natgrid is an python interface to natgrid C library for
+ gridding irregularly spaced data.
+ The original natgrid is a natural neighbor gridding package.
+ (See http://www.ncarg.ucar.edu//ngmath/natgrid/nnhome.html).
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">matplotlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/natgrid/natgrid-0.2.1-r2.ebuild b/dev-python/natgrid/natgrid-0.2.1-r2.ebuild
new file mode 100644
index 00000000000..6302c6fdbc1
--- /dev/null
+++ b/dev-python/natgrid/natgrid-0.2.1-r2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Matplotlib toolkit for gridding irreguraly spaced data"
+HOMEPAGE="http://matplotlib.sourceforge.net/users/toolkits.html"
+SRC_URI="mirror://sourceforge/matplotlib/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=">=dev-python/matplotlib-0.98[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ insinto /usr/share/doc/${PF}
+ doins test.py || die "doins failed"
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ distutils-r1_python_install
+ # Fix collision with dev-python/matplotlib.
+ rm "${D}$(python_get_sitedir)/mpl_toolkits/__init__.py" || die
+}
diff --git a/dev-python/natsort/Manifest b/dev-python/natsort/Manifest
new file mode 100644
index 00000000000..e2ebe21fac6
--- /dev/null
+++ b/dev-python/natsort/Manifest
@@ -0,0 +1,2 @@
+DIST natsort-3.4.0.tar.gz 16113 SHA256 a58ea2410eedf587adda3f2a4ef93a820a99028b253b510c79ef5b4a11cd1dbb SHA512 5aa91f2cbdec3e97081cc7248e7d596437f5c0b53151eb59a95c161b35d331c80737f5ffe39c74a0233a0c20ffec7d244d9e70d6fb7263880270c8379c81bc44 WHIRLPOOL 792034fe0e266db6a508ddb9faf7a557a0e38aa8c3f10dec3c3debda917fe1f5c86f097199f42f83fe422fbbc6770c4d39adb1cff9a811fdd5dcad4dcec07002
+DIST natsort-4.0.3.tar.gz 60736 SHA256 283bfc8ce4c4d03f0a04b8d1908c747eff858d3774161074eb5b052972263b9f SHA512 abefb9226888679649fd1f4441a5016bfcbb79cf215c7be887cf1f67976ca6701f0f35424bb4ad405e9376fe3f3c38740a6f249cd233b92d7275f94e483b0b4a WHIRLPOOL afb1c78f2909128ccdb6b68c1bb2d54f400c87a1b293a06a29126db3732f9baa1bfd16d40f45097a45a3fd6be87b73973da0f3da34ff58e8967092a642128ab8
diff --git a/dev-python/natsort/metadata.xml b/dev-python/natsort/metadata.xml
new file mode 100644
index 00000000000..05b633d6876
--- /dev/null
+++ b/dev-python/natsort/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">natsort</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/natsort/natsort-3.4.0.ebuild b/dev-python/natsort/natsort-3.4.0.ebuild
new file mode 100644
index 00000000000..49112fcacb1
--- /dev/null
+++ b/dev-python/natsort/natsort-3.4.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Natural sorting for Python"
+HOMEPAGE="https://pypi.python.org/pypi/natsort"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ia64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/natsort/natsort-4.0.3.ebuild b/dev-python/natsort/natsort-4.0.3.ebuild
new file mode 100644
index 00000000000..314bd98dd4d
--- /dev/null
+++ b/dev-python/natsort/natsort-4.0.3.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Natural sorting for Python"
+HOMEPAGE="https://pypi.python.org/pypi/natsort"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/nautilus-python/Manifest b/dev-python/nautilus-python/Manifest
new file mode 100644
index 00000000000..712a077d086
--- /dev/null
+++ b/dev-python/nautilus-python/Manifest
@@ -0,0 +1 @@
+DIST nautilus-python-1.1.tar.xz 239392 SHA256 7825e08ada8e131f829d0e7d4144dcfac9fad7bfd7c0600bf3985349c20c496b SHA512 e721f46414a3efa4b5f5ec3f56cc00a308ec010a7a0612cef975d6f436494701f8bdbed39bdb5186c8013a582c7e63288a1c60adc4b8967c9ec69d6301a50fef WHIRLPOOL 280b6019a9850596b69777a758d89b06bfce5f30188feb274c8d5820ec6b9ecfcc8c0c402dbfee184378b2c02b6c29bc798ff061a139defd8cfae4e12b5d591d
diff --git a/dev-python/nautilus-python/metadata.xml b/dev-python/nautilus-python/metadata.xml
new file mode 100644
index 00000000000..21ba9b5773c
--- /dev/null
+++ b/dev-python/nautilus-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tetromino@gentoo.org</email>
+ <name>Alexandre Rostovtsev</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/nautilus-python/nautilus-python-1.1-r1.ebuild b/dev-python/nautilus-python/nautilus-python-1.1-r1.ebuild
new file mode 100644
index 00000000000..fd59a87fc1c
--- /dev/null
+++ b/dev-python/nautilus-python/nautilus-python-1.1-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="2"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 python
+
+DESCRIPTION="Python bindings for the Nautilus file manager"
+HOMEPAGE="http://projects.gnome.org/nautilus-python/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 x86"
+IUSE="doc"
+
+# Depend on pygobject:3 for sanity, and because it's automagic
+RDEPEND="dev-python/pygobject:3
+ >=gnome-base/nautilus-2.32[introspection]"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/docbook-xml-dtd:4.1.2
+ >=dev-util/gtk-doc-1.9 )"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_install() {
+ gnome2_src_install
+ # Directory for systemwide extensions
+ keepdir /usr/share/nautilus-python/extensions/
+ # Doesn't get installed by "make install" for some reason
+ if use doc; then
+ insinto /usr/share/gtk-doc/html/nautilus-python # for dev-util/devhelp
+ doins -r docs/html/*
+ fi
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ python_need_rebuild
+}
diff --git a/dev-python/nautilus-python/nautilus-python-1.1-r2.ebuild b/dev-python/nautilus-python/nautilus-python-1.1-r2.ebuild
new file mode 100644
index 00000000000..d629054e7cb
--- /dev/null
+++ b/dev-python/nautilus-python/nautilus-python-1.1-r2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils gnome2 python-single-r1
+
+DESCRIPTION="Python bindings for the Nautilus file manager"
+HOMEPAGE="http://projects.gnome.org/nautilus-python/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~x86"
+IUSE="doc"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# Depend on pygobject:3 for sanity, and because it's automagic
+RDEPEND="
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ >=gnome-base/nautilus-2.32[introspection]
+ ${PYTHON_DEPS}
+"
+DEPEND="${RDEPEND}
+ >=dev-util/gtk-doc-am-1.9
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-xml-dtd:4.1.2
+ dev-libs/libxslt
+ >=dev-util/gtk-doc-1.9 )
+"
+
+src_configure() {
+ # FIXME: package does not ship pre-built documentation
+ # and has broken logic for dealing with gtk-doc
+ gnome2_src_configure $(use_enable doc gtk-doc)
+}
+
+src_install() {
+ gnome2_src_install
+ # Directory for systemwide extensions
+ keepdir /usr/share/nautilus-python/extensions
+ # Doesn't get installed by "make install" for some reason
+ if use doc ; then
+ insinto /usr/share/gtk-doc/html/nautilus-python # for dev-util/devhelp
+ doins -r docs/html/.
+ fi
+}
diff --git a/dev-python/ndg-httpsclient/Manifest b/dev-python/ndg-httpsclient/Manifest
new file mode 100644
index 00000000000..f40dd41bab3
--- /dev/null
+++ b/dev-python/ndg-httpsclient/Manifest
@@ -0,0 +1,2 @@
+DIST ndg_httpsclient-0.3.2.tar.gz 21514 SHA256 cc806d43f3e79be40f923d94f542f23a94c6ddbb9a63258b0bf875f325508973 SHA512 0060d1b0f749cc3017f4d5550bf0e7242e035f5f84a914a23219a85ba0dd9185e6edf88c38db16df8dfe05beb267262cc2fed00758c0b4d8b2ee222abe2d642e WHIRLPOOL a7d058939909b5b9ffc8c4f9432d97f4cbb76824b34cc5bf9fd0d32edcf2cee77daad34ad48ad8927c2a3c2a30c960cdc5568131706d15089749f3037b66607d
+DIST ndg_httpsclient-0.4.0.tar.gz 24038 SHA256 e8c155fdebd9c4bcb0810b4ed01ae1987554b1ee034dd7532d7b8fdae38a6274 SHA512 3c0225a20c25cf0f12f03005bb79e738527c0488bb660c1eb3b55c505a0ef503002d37fcffb3d013e5f91101bdd03080a68d5805d6d29b682cc01bdc9f0e4a19 WHIRLPOOL 0c9c0a2cd2e5a0d2b742910129442285e4bdf1278c2590443fa00107066f5561af4249d4f1504720e8a48342ba1d0110fe8480e0adcd41ca999384bf3dc06853
diff --git a/dev-python/ndg-httpsclient/metadata.xml b/dev-python/ndg-httpsclient/metadata.xml
new file mode 100644
index 00000000000..7a46194ed57
--- /dev/null
+++ b/dev-python/ndg-httpsclient/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">ndg-httpsclient</remote-id>
+ <remote-id type="github">cedadev/ndg_httpsclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ndg-httpsclient/ndg-httpsclient-0.3.2.ebuild b/dev-python/ndg-httpsclient/ndg-httpsclient-0.3.2.ebuild
new file mode 100644
index 00000000000..62ce5425a0e
--- /dev/null
+++ b/dev-python/ndg-httpsclient/ndg-httpsclient-0.3.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
+HOMEPAGE="http://ndg-security.ceda.ac.uk/wiki/ndg_httpsclient
+ https://pypi.python.org/pypi/ndg-httpsclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P/-/_}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND="dev-python/pyopenssl[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${P/-/_}"
diff --git a/dev-python/ndg-httpsclient/ndg-httpsclient-0.4.0.ebuild b/dev-python/ndg-httpsclient/ndg-httpsclient-0.4.0.ebuild
new file mode 100644
index 00000000000..01ec815e501
--- /dev/null
+++ b/dev-python/ndg-httpsclient/ndg-httpsclient-0.4.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
+HOMEPAGE="https://github.com/cedadev/ndg_httpsclient/
+ https://pypi.python.org/pypi/ndg-httpsclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P/-/_}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND="dev-python/pyopenssl[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${P/-/_}"
+
+# doc build by Makefile in folder documentation is broken
diff --git a/dev-python/neovim-python-client/Manifest b/dev-python/neovim-python-client/Manifest
new file mode 100644
index 00000000000..844f2826257
--- /dev/null
+++ b/dev-python/neovim-python-client/Manifest
@@ -0,0 +1 @@
+DIST neovim-python-client-0.0.37.tar.xz 38008 SHA256 615120048e0bac403fe85dd9bc74a5b2fe92cc9d1dc7c65f92f8a2bf361e0ec9 SHA512 23c3557564a16f9d1c4561d6ebb6d546d52c1cdc0216f36e77edf4567f7143f30e6832296324a3897a1eb38992973c63f99c373d88e330650cd8de6e4ba665cd WHIRLPOOL d0099e8f149eea2b115129b226253d848aa1b5be2685bab5eff6cd2fa5c5c5d0de6f070ed2fca860d9bc8105a139bbb6bb9d7a4f02baef1bf337d13046803463
diff --git a/dev-python/neovim-python-client/metadata.xml b/dev-python/neovim-python-client/metadata.xml
new file mode 100644
index 00000000000..804596a4714
--- /dev/null
+++ b/dev-python/neovim-python-client/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>vim</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">neovim/python-client</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/neovim-python-client/neovim-python-client-0.0.37.ebuild b/dev-python/neovim-python-client/neovim-python-client-0.0.37.ebuild
new file mode 100644
index 00000000000..68eec917998
--- /dev/null
+++ b/dev-python/neovim-python-client/neovim-python-client-0.0.37.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python client to connect to Neovim thru its msgpack-rpc API"
+HOMEPAGE="https://github.com/neovim/python-client"
+SRC_URI="http://dev.gentoo.org/~yngwin/distfiles/${P}.tar.xz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gtk"
+REQUIRED_USE="gtk? ( python_targets_python2_7 )" # experimental gui only works with py2
+
+DEPEND=">=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/greenlet[${PYTHON_USEDEP}]' 'python*')
+ $(python_gen_cond_dep 'dev-python/trollius[${PYTHON_USEDEP}]' python{2_7,3_3})
+ gtk? ( >=dev-python/click-3.0[${PYTHON_USEDEP}]
+ dev-python/pygobject:2
+ dev-python/pygtk:2
+ x11-libs/gtk+:2[introspection] )"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/netaddr/Manifest b/dev-python/netaddr/Manifest
new file mode 100644
index 00000000000..92ab43d4e20
--- /dev/null
+++ b/dev-python/netaddr/Manifest
@@ -0,0 +1,4 @@
+DIST netaddr-0.7.12.tar.gz 1504096 SHA256 88bf0bff238df672b1a521cdc291db025f7462223b065405b62d58a22c0d0abe SHA512 d7783ecc697045d381d2d028d02c1773effd1331f15f2fb6423a06ed7915700e42862130d2ceb16c73ed0443a5055d101ce7ea3d10474f9af40cde83d2251e55 WHIRLPOOL 580aa6443fd384d8ed180e39b6c42e36d55cf2c644a470bd0aa657f6d1282d5082e718e9225ef2c5b352a48bb0599ee11642d7b72a5f50c7e621f8700f1da2bb
+DIST netaddr-0.7.13.tar.gz 1548094 SHA256 ca42c260b49e5fd74ba9104efa6a4fca6b55316ca42714d20d2b9b8e751e0412 SHA512 3bef68f9bf33d3c8946b2dd0a0ed1c182bf4e604501de1f62ec0e1a31c1c4a6806b78be847b49fa93ddbf50e2e58012f3ef68e7dad08297d7647d878ba17144c WHIRLPOOL a7a031607cdcaf0d0ed2eb7faa6c9db32f02663d48b827c5df558db88a0515a1778da67cdaa646bb55b424b86baeeb857d76d51d710b4555225d605eb802dca7
+DIST netaddr-0.7.14.tar.gz 1560641 SHA256 02abbb54c9edd6a3046385d2634f51c1dbddbbc9b5816599ecd052b1d9ff445f SHA512 8492932aa5218d84e211df9ac405b9f2eb2f66d9a0cfe7b427634461bd3c71a3c94662c8e13e0d484481cb621e60dfff22aa8065b00a03094543c33b50d3502f WHIRLPOOL 6198af280532f782a3a539749c41b44f139ea600edbfcd7aac66cd167546f27dee54afa63c9e48841180fdceb79bff086ab1fbe8b10c9b197e4c975754da0858
+DIST netaddr-0.7.15.tar.gz 1525041 SHA256 d5b5bb3f4e9a94f93d232bb876e567517d8fb59e5bebb5339483b44df5529d11 SHA512 b6279638598b756366fd236003dbd5315b4535d2d13153857d1a2b160d9521eb94e2a46e89eb317b72081ae6b0e8916da7932fa766541616e49b2a24b7494cf3 WHIRLPOOL b515b2fc7dc7970f9751ec28ca2a7b0937a7ad7a1f9a36b9e995dea430b004c2294263654d9c321fe29e7eff7af1e78281bf89432b408aa6324b0833b80e1847
diff --git a/dev-python/netaddr/metadata.xml b/dev-python/netaddr/metadata.xml
new file mode 100644
index 00000000000..591d65cef99
--- /dev/null
+++ b/dev-python/netaddr/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>andreis.vinogradovs@gmail.com</email>
+ </maintainer>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+ </maintainer>
+ <use>
+ <flag name="cli">Enable netaddr shell with <pkg>dev-python/ipython</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">netaddr</remote-id>
+ <remote-id type="github">drkjam/netaddr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/netaddr/netaddr-0.7.12.ebuild b/dev-python/netaddr/netaddr-0.7.12.ebuild
new file mode 100644
index 00000000000..7ce913bf70e
--- /dev/null
+++ b/dev-python/netaddr/netaddr-0.7.12.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Network address representation and manipulation library"
+HOMEPAGE="https://github.com/drkjam/netaddr http://pypi.python.org/pypi/netaddr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="cli"
+
+DEPEND=""
+RDEPEND="cli? ( >=dev-python/ipython-0.13.1-r1[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" netaddr/tests/__init__.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/netaddr/netaddr-0.7.13.ebuild b/dev-python/netaddr/netaddr-0.7.13.ebuild
new file mode 100644
index 00000000000..6c83dfb3a98
--- /dev/null
+++ b/dev-python/netaddr/netaddr-0.7.13.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Network address representation and manipulation library"
+HOMEPAGE="https://github.com/drkjam/netaddr http://pypi.python.org/pypi/netaddr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="cli"
+
+DEPEND=""
+RDEPEND="cli? ( >=dev-python/ipython-0.13.1-r1[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" netaddr/tests/__init__.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/netaddr/netaddr-0.7.14.ebuild b/dev-python/netaddr/netaddr-0.7.14.ebuild
new file mode 100644
index 00000000000..6c83dfb3a98
--- /dev/null
+++ b/dev-python/netaddr/netaddr-0.7.14.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Network address representation and manipulation library"
+HOMEPAGE="https://github.com/drkjam/netaddr http://pypi.python.org/pypi/netaddr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="cli"
+
+DEPEND=""
+RDEPEND="cli? ( >=dev-python/ipython-0.13.1-r1[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" netaddr/tests/__init__.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/netaddr/netaddr-0.7.15.ebuild b/dev-python/netaddr/netaddr-0.7.15.ebuild
new file mode 100644
index 00000000000..12eb667bc07
--- /dev/null
+++ b/dev-python/netaddr/netaddr-0.7.15.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Network address representation and manipulation library"
+HOMEPAGE="https://github.com/drkjam/netaddr http://pypi.python.org/pypi/netaddr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="cli test"
+
+RDEPEND="cli? ( >=dev-python/ipython-0.13.1-r1[${PYTHON_USEDEP}] )"
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+# test subdir not included in the tarball
+# https://github.com/drkjam/netaddr/issues/102
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/netcdf4-python/Manifest b/dev-python/netcdf4-python/Manifest
new file mode 100644
index 00000000000..4c6560d961a
--- /dev/null
+++ b/dev-python/netcdf4-python/Manifest
@@ -0,0 +1 @@
+DIST netCDF4-1.0.4.tar.gz 521990 SHA256 99f5eaebae2fae92759d13b790dde4226b2b8c83a68f86543c41c7998cba53b7 SHA512 acebb8b721720fae8ae8347ac10b3bc213cbc6db763001292ab99db56fc20fd82abc17d5449ad8d75f40edb5bf14f24b0bece725671fcc15bf3b0cb6580c46c5 WHIRLPOOL d664d2a187b5191275bdc6fd6a456b684b4c9b1c6c0249e0299ba15ec10a6433b0859f84bf26148a7ca392e307a40f4bdfd13a7dc7ff8b059d8471f18e939b16
diff --git a/dev-python/netcdf4-python/metadata.xml b/dev-python/netcdf4-python/metadata.xml
new file mode 100644
index 00000000000..5ef07a39e7e
--- /dev/null
+++ b/dev-python/netcdf4-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/netcdf4-python/netcdf4-python-1.0.4.ebuild b/dev-python/netcdf4-python/netcdf4-python-1.0.4.ebuild
new file mode 100644
index 00000000000..5d4bca9b4e7
--- /dev/null
+++ b/dev-python/netcdf4-python/netcdf4-python-1.0.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="netCDF4"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python/numpy interface to netCDF"
+HOMEPAGE="https://code.google.com/p/netcdf4-python"
+SRC_URI="https://netcdf4-python.googlecode.com/files/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ sci-libs/hdf5
+ sci-libs/netcdf:=[hdf]"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MY_P}
+
+python_test() {
+ cd test || die
+ ${PYTHON} run_all.py || die
+}
diff --git a/dev-python/netifaces/Manifest b/dev-python/netifaces/Manifest
new file mode 100644
index 00000000000..9da0ec5f767
--- /dev/null
+++ b/dev-python/netifaces/Manifest
@@ -0,0 +1,2 @@
+DIST netifaces-0.10.4.tar.gz 22969 SHA256 9656a169cb83da34d732b0eb72b39373d48774aee009a3d1272b7ea2ce109cde SHA512 1b9b92b69e01e4dd9f9304d3812d78d58ec195a657cb47b2e629ccb1311de4a8cd9716825d7b94d4791f7c479c289638780f6f9afa8a6465fb555130da622b24 WHIRLPOOL 44cb33b6ca0c6cda059bf7e88ca5b4904d1e2d5bb7201f23d8e5b9c3bd337acc99dc47dec76016b6ceee7c5d8d72af03af96afb709ff9368a8dfff8683d4b7e2
+DIST netifaces-0.8.tar.gz 15484 SHA256 53a711038db3d6e5cf7129d6f751185fd052f830f12f271fbfe17bd2671ab1ec SHA512 b3735c4f83d4ed1d52f59937187659f148205a721fd05ce5a10e9ec89ea3519971001b2985e24bb30fb112ee741310babd847f84d4c3fbb34989edc6a743f551 WHIRLPOOL 4f638d769a38a474f0a27642544e1b6e932643f224133024cbfdb44e9637700afc10675fccd61e52e5f6e8a121b25173895d9f173b428aefceded22a42af7ab6
diff --git a/dev-python/netifaces/files/netifaces-0.10.4-remove-osx-fix.patch b/dev-python/netifaces/files/netifaces-0.10.4-remove-osx-fix.patch
new file mode 100644
index 00000000000..7f87a02e365
--- /dev/null
+++ b/dev-python/netifaces/files/netifaces-0.10.4-remove-osx-fix.patch
@@ -0,0 +1,15 @@
+--- netifaces-0.10.4/setup.py
++++ netifaces-0.10.4/setup.py
+@@ -18,12 +18,6 @@
+
+ __version__ = "0.10.4"
+
+-# Disable hard links, otherwise building distributions fails on OS X
+-try:
+- del os.link
+-except:
+- pass
+-
+ # On Windows, we need ws2_32 and iphlpapi
+ if getattr(sys, 'getwindowsversion', None):
+ libraries = ['ws2_32', 'iphlpapi']
diff --git a/dev-python/netifaces/files/netifaces-0.8-remove-osx-fix.patch b/dev-python/netifaces/files/netifaces-0.8-remove-osx-fix.patch
new file mode 100644
index 00000000000..41aedaf02a6
--- /dev/null
+++ b/dev-python/netifaces/files/netifaces-0.8-remove-osx-fix.patch
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User Laurent Bachelier <laurent@bachelier.name>
+# Date 1388257625 -3600
+# Node ID d89bc5823b639a13d299c7485fd81be89ef036a1
+# Parent aa1a71e0adf7129f99c087afa9416a37b527012b
+Remove support for broken operating systems
+
+diff -r aa1a71e0adf7 -r d89bc5823b63 setup.py
+--- a/setup.py Tue Jan 31 11:48:23 2012 +0000
++++ b/setup.py Sat Dec 28 20:07:05 2013 +0100
+@@ -9,12 +9,6 @@
+
+ __version__ = "0.8"
+
+-# Disable hard links, otherwise building distributions fails on OS X
+-try:
+- del os.link
+-except:
+- pass
+-
+ # On Windows, we need ws2_32 and iphlpapi
+ if getattr(sys, 'getwindowsversion', None):
+ libraries = ['ws2_32', 'iphlpapi']
diff --git a/dev-python/netifaces/metadata.xml b/dev-python/netifaces/metadata.xml
new file mode 100644
index 00000000000..434ad9ca391
--- /dev/null
+++ b/dev-python/netifaces/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">netifaces</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/netifaces/netifaces-0.10.4.ebuild b/dev-python/netifaces/netifaces-0.10.4.ebuild
new file mode 100644
index 00000000000..7ca981fda99
--- /dev/null
+++ b/dev-python/netifaces/netifaces-0.10.4.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Portable network interface information"
+HOMEPAGE="http://alastairs-place.net/netifaces/ https://pypi.python.org/pypi/netifaces/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${P}-remove-osx-fix.patch )
diff --git a/dev-python/netifaces/netifaces-0.8-r2.ebuild b/dev-python/netifaces/netifaces-0.8-r2.ebuild
new file mode 100644
index 00000000000..0a6ccedb8f9
--- /dev/null
+++ b/dev-python/netifaces/netifaces-0.8-r2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Portable network interface information"
+HOMEPAGE="http://alastairs-place.net/netifaces/"
+SRC_URI="http://alastairs-place.net/projects/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${P}-remove-osx-fix.patch )
diff --git a/dev-python/netlib/Manifest b/dev-python/netlib/Manifest
new file mode 100644
index 00000000000..85964de4a16
--- /dev/null
+++ b/dev-python/netlib/Manifest
@@ -0,0 +1,5 @@
+DIST netlib-0.10.1.tar.gz 299633 SHA256 ee22365f6aad99326fa83788e8f71ea940affea0df3142efde247c7d520fab7e SHA512 56df59b94b6dcd61809f7319dcfd6807294d0dd1011d64d6b26beb50e3217052a96b267f1facacf46cbd0379a29df7ad5f68ee025b64b7e8fbfd31a9b4d06469 WHIRLPOOL 7e2e48fb6204ae0efe1d0aa9698b7d50ab0802c06ef8478ddd80cf3f3268fdbf1f0de696d4e2110f15f0efd45cdb713c57c5b0fc24482f9d401da4955557a446
+DIST netlib-0.10.tar.gz 60256 SHA256 415e3db96f487177f372d47bc669dcc9068a435e49b8120ec8821026de36bd80 SHA512 e6897a1ba28942eb30f19b4876bf1fcc03a83ec619e162ee09d9c3ad3348cfaebf9b413fdc4c534c56342270c0c767f16b63b79efe51d6589e864e9b51742f4a WHIRLPOOL a6f3106870f30128c96d7f04ab8c5f0136c88217fe20c00f4a7791031ea6e176ef04785403324ac2ca63ce056957c3d53660bbb3cc143499b019ca7b33f3482c
+DIST netlib-0.11.1.tar.gz 43539 SHA256 5d752d93863cbccd8bb8d7990b62903e803490fa2de12c4fb79e028e20a7d309 SHA512 1682bd73d0ff592ad8ec4a79c1f4acd1267440ad0d120a5693f66fd94bfa10b40fdec69b4d43052952a3ecf64d27cb928fd3e5747f54acc419e50c3e1d3b4fbe WHIRLPOOL 8347395165b8d95f12ec81f9651e3dd9a9d71d2d039062fc9a2f6d2a81b0648a709424d83089203d98e3697b5cced511208a076ba524de1f04c6c0578fdce0a2
+DIST netlib-0.11.2.tar.gz 43569 SHA256 66dac408eccb528b284e6a6fa5bc52aa40d1c2a53d74179d3cb2253b3120851e SHA512 ef1b489c5affb4bd7d840af955c50fe6c180b179ebe0a4c67f8005a4e02f03e1ff0d47f3b40da9aae7fc7bc179f82203a4ab43798406a917ab1a1b29eebe5443 WHIRLPOOL a6961a57d6db07e36d2098ee56a303f2e8ebb742d7857f5ab02cd8950cdecd10cd7649a8ca88af5178d82fc8de903f166156306c7e4f3df47f58a1dbe25be457
+DIST netlib-0.12.0.tar.gz 53923 SHA256 2b53b9dd611a80ba65eb5eb11bb70dfec4912e5b38fa84e30756249241012480 SHA512 18a716e084eed577d7731a44cebbcfffcb58140ae808273d683df7f95818fdc990e817fe57ad43a5b439766e022c4b8398f85c3a694f29556856a658a86ac90d WHIRLPOOL 10b3cfa75528deedbb2df9ee6a3750dcf2c20d131974b3c91cd0bfa932d29a069238edbf4f3b93a8ec40b500183d6f86d6737bfb35942ffc0311e1ebc9868f26
diff --git a/dev-python/netlib/metadata.xml b/dev-python/netlib/metadata.xml
new file mode 100644
index 00000000000..b0c3b2a5851
--- /dev/null
+++ b/dev-python/netlib/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">netlib</remote-id>
+ <remote-id type="github">cortesi/netlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/netlib/netlib-0.10.1.ebuild b/dev-python/netlib/netlib-0.10.1.ebuild
new file mode 100644
index 00000000000..c13ea4d9342
--- /dev/null
+++ b/dev-python/netlib/netlib-0.10.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of network utility classes used by pathod and mitmproxy"
+HOMEPAGE="https://github.com/cortesi/netlib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">dev-python/pyasn1-0.1.2[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.12[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ www-servers/pathod[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/netlib/netlib-0.10.ebuild b/dev-python/netlib/netlib-0.10.ebuild
new file mode 100644
index 00000000000..d31f6ebb154
--- /dev/null
+++ b/dev-python/netlib/netlib-0.10.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of network utility classes used by pathod and mitmproxy"
+HOMEPAGE="https://github.com/cortesi/netlib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">dev-python/pyasn1-0.1.2[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.12[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ www-servers/pathod[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/netlib/netlib-0.11.1.ebuild b/dev-python/netlib/netlib-0.11.1.ebuild
new file mode 100644
index 00000000000..69cf980de28
--- /dev/null
+++ b/dev-python/netlib/netlib-0.11.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of network utility classes used by pathod and mitmproxy"
+HOMEPAGE="https://github.com/cortesi/netlib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+ >=dev-python/passlib-1.6.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ www-servers/pathod[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/netlib/netlib-0.11.2.ebuild b/dev-python/netlib/netlib-0.11.2.ebuild
new file mode 100644
index 00000000000..4adb7c0ece2
--- /dev/null
+++ b/dev-python/netlib/netlib-0.11.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator
+
+DESCRIPTION="Collection of network utility classes used by pathod and mitmproxy"
+HOMEPAGE="https://github.com/cortesi/netlib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+ >=dev-python/passlib-1.6.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ =www-servers/pathod-$(get_version_component_range 1-2)*[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/netlib/netlib-0.12.0.ebuild b/dev-python/netlib/netlib-0.12.0.ebuild
new file mode 100644
index 00000000000..4adb7c0ece2
--- /dev/null
+++ b/dev-python/netlib/netlib-0.12.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator
+
+DESCRIPTION="Collection of network utility classes used by pathod and mitmproxy"
+HOMEPAGE="https://github.com/cortesi/netlib/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+ >=dev-python/passlib-1.6.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ =www-servers/pathod-$(get_version_component_range 1-2)*[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/networkx/Manifest b/dev-python/networkx/Manifest
new file mode 100644
index 00000000000..1dd881b5d1b
--- /dev/null
+++ b/dev-python/networkx/Manifest
@@ -0,0 +1,2 @@
+DIST networkx-1.10.tar.gz 1189291 SHA256 ced4095ab83b7451cec1172183eff419ed32e21397ea4e1971d92a5808ed6fb8 SHA512 fc0a0b929991baef63c30382c2045d551b217140393a4264b18a5f1be198d325eee9f57e02dda38a7ad9f99771c5b78f82c673a88b04df122b9d91852db09efd WHIRLPOOL 8a9666142a1978e72b9eeb791de5c2033d0d29cd2db846f2583c41876d6a5c864c295316bb3d1c2858ccda0f4ca5081108ed9c07176eb8146c8c772fa77c8a60
+DIST networkx-1.9.1.tar.gz 1035784 SHA256 6380eb38d0b5770d7e50813c8a48ff7c373b2187b4220339c1adce803df01c59 SHA512 8c18bd07530b26731da4db40dc9d82c81b78b086a2b15a45daa65ab55ec92a4ba836f911add062f698c3f319e5e85b5a26a6a52f760f5cf32e3d2a73c46cd93d WHIRLPOOL 01db9c8560140a52a890851871249c9d509883f7aa877487c16cdcc42973ae74b9c1815371d99247f72766e1f26e0a1afc0965af65583c4a9b59b75c2369fe2a
diff --git a/dev-python/networkx/metadata.xml b/dev-python/networkx/metadata.xml
new file mode 100644
index 00000000000..6281d76bab4
--- /dev/null
+++ b/dev-python/networkx/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ NetworkX is a Python-based package for the creation, manipulation, and
+ study of the structure, dynamics, and functions of complex networks.
+ The structure of a graph or network is encoded in the edges (connections,
+ links, ties, arcs, bonds) between nodes (vertices, sites, actors). If
+ unqualified, by graph we mean a simple undirected graph, i.e. no
+ self-loops and no multiple edges are allowed. By a network we usually
+ mean a graph with weights (fields, properties) on nodes and/or edges.
+ The potential audience for NetworkX includes: mathematicians, physicists,
+ biologists, computer scientists, social scientists.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">networkx</remote-id>
+ <remote-id type="github">networkx/networkx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/networkx/networkx-1.10.ebuild b/dev-python/networkx/networkx-1.10.ebuild
new file mode 100644
index 00000000000..95ff6a288d1
--- /dev/null
+++ b/dev-python/networkx/networkx-1.10.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python tools to manipulate graphs and complex networks"
+HOMEPAGE="http://networkx.github.io/ https://github.com/networkx/networkx"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+COMMON_DEPEND="dev-python/matplotlib[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/numpydoc[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]' python2_7 python{3_3,3_4})
+ )
+ test? (
+ ${COMMON_DEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'media-gfx/pydot[${PYTHON_USEDEP}]' python2_7)
+ )"
+RDEPEND="
+ >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
+ examples? (
+ ${COMMON_DEPEND}
+ $(python_gen_cond_dep 'dev-python/pygraphviz[${PYTHON_USEDEP}]' python2_7)
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ # Avoid d'loading of file objects.inv from 2 sites of python docs
+ sed -e "s/'sphinx.ext.intersphinx', //" -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # https://github.com/networkx/networkx/issues/1263
+ if use doc; then
+ sed \
+ -e "s:^\t\./:\t${PYTHON} :g" \
+ -i doc/Makefile || die
+ emake -C doc html
+ fi
+}
+
+python_test() {
+ nosetests -vv || die
+}
+
+python_install_all() {
+ # Oh my.
+ rm -r "${ED}"usr/share/doc/${P} || die
+
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/networkx/networkx-1.9.1.ebuild b/dev-python/networkx/networkx-1.9.1.ebuild
new file mode 100644
index 00000000000..7957bc3bb3d
--- /dev/null
+++ b/dev-python/networkx/networkx-1.9.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python tools to manipulate graphs and complex networks"
+HOMEPAGE="http://networkx.github.io/ https://github.com/networkx/networkx"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+COMMON_DEPEND="dev-python/matplotlib[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/numpydoc[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]' python2_7 python{3_3,3_4})
+ )
+ test? (
+ ${COMMON_DEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
+ examples? (
+ ${COMMON_DEPEND}
+ $(python_gen_cond_dep 'dev-python/pygraphviz[${PYTHON_USEDEP}]' python2_7)
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ # Avoid d'loading of file objects.inv from 2 sites of python docs
+ sed -e "s/'sphinx.ext.intersphinx', //" -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # https://github.com/networkx/networkx/issues/1263
+ if use doc; then
+ sed \
+ -e "s:^\t\./:\t${PYTHON} :g" \
+ -i doc/Makefile || die
+ emake -C doc html
+ fi
+}
+
+python_test() {
+ nosetests -vv || die
+}
+
+python_install_all() {
+ # Oh my.
+ rm -r "${ED}"usr/share/doc/${P} || die
+
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/nevow/Manifest b/dev-python/nevow/Manifest
new file mode 100644
index 00000000000..a0c9b74d85d
--- /dev/null
+++ b/dev-python/nevow/Manifest
@@ -0,0 +1 @@
+DIST Nevow-0.11.1.tar.gz 563061 SHA256 89d7f6943cf81ccef8dde4016caa1cba977b9366e7aa0660b54239828b421efc SHA512 a7e52fbf6915498e77a41fb100d4c688fcd0567deb56ec946adf1b1712bcfbec7b7a55c551e414606218146772d5274973af7851a78878635e900a4df5193a53 WHIRLPOOL a82ca1334abf201ef9fcf22e579be778e819c488df8c9f774bef7f13041aa996f630408f4a8428e74b2e79df1904dbdf2f858fb79526a9417c1872da95a24963
diff --git a/dev-python/nevow/metadata.xml b/dev-python/nevow/metadata.xml
new file mode 100644
index 00000000000..991dd94eb65
--- /dev/null
+++ b/dev-python/nevow/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Nevow</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nevow/nevow-0.11.1-r1.ebuild b/dev-python/nevow/nevow-0.11.1-r1.ebuild
new file mode 100644
index 00000000000..577984d22bb
--- /dev/null
+++ b/dev-python/nevow/nevow-0.11.1-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A web templating framework that provides LivePage, an automatic AJAX toolkit"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodNevow http://pypi.python.org/pypi/Nevow"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+TWISTED_PLUGINS=( nevow.plugins )
+
+FAILING_TESTS=(
+ nevow/test/test_url.py
+ nevow/test/test_loaders.py
+ nevow/test/test_appserver.py
+ formless/test/test_freeform.py
+)
+
+python_test() {
+ # See bug 355237
+ rm -v ${FAILING_TESTS[@]} || die "can't remove failing tests"
+ trial formless nevow || die "tests failed with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/nevow/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # TODO: prevent installing it
+ rm -r "${D}"/usr/doc || die
+}
diff --git a/dev-python/nevow/nevow-0.11.1.ebuild b/dev-python/nevow/nevow-0.11.1.ebuild
new file mode 100644
index 00000000000..ff450e4ec62
--- /dev/null
+++ b/dev-python/nevow/nevow-0.11.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A web templating framework that provides LivePage, an automatic AJAX toolkit"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodNevow http://pypi.python.org/pypi/Nevow"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+TWISTED_PLUGINS=( nevow.plugins )
+
+python_test() {
+ trial formless nevow || die "tests failed with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/nevow/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # TODO: prevent installing it
+ rm -r "${D}"/usr/doc || die
+}
diff --git a/dev-python/newt_syrup/Manifest b/dev-python/newt_syrup/Manifest
new file mode 100644
index 00000000000..b822e0ff9d8
--- /dev/null
+++ b/dev-python/newt_syrup/Manifest
@@ -0,0 +1 @@
+DIST newt_syrup-0.1.2.tar.gz 14283 SHA256 68de3c40c014721d23692a27b8e816d29d4bce6ee788a17a82df69afc76518e4 SHA512 8e9db226f2f31eea5656d5bea0acd287fefb4699816e8328471685952d6f323037665bf3908cabaff4e2d0359996989ce8e03ce8c8933c995f13c1a5f035ef0c WHIRLPOOL 3f129a3c68e5da3117b97f8a7e5509e031aaecab9754293c81d1975e2818974531a8010992e2fb968dc3871ac750427bd0f405f9ac84ce499c64d68e4c917836
diff --git a/dev-python/newt_syrup/metadata.xml b/dev-python/newt_syrup/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/newt_syrup/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/newt_syrup/newt_syrup-0.1.2-r1.ebuild b/dev-python/newt_syrup/newt_syrup-0.1.2-r1.ebuild
new file mode 100644
index 00000000000..4d6184fda5f
--- /dev/null
+++ b/dev-python/newt_syrup/newt_syrup-0.1.2-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python framework for creating text-based applications"
+HOMEPAGE="http://fedorahosted.org/newt-syrup/"
+SRC_URI="http://mcpierce.fedorapeople.org/rpms/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-libs/newt-0.52.11"
+
+DOCS="COLORS"
diff --git a/dev-python/nltk/Manifest b/dev-python/nltk/Manifest
new file mode 100644
index 00000000000..66152baa49c
--- /dev/null
+++ b/dev-python/nltk/Manifest
@@ -0,0 +1,3 @@
+DIST nltk-2.0.4.tar.gz 955978 SHA256 a554d6b9c5c7c8b597a090d8848a6f78c6fc4665ae43c9a6a6d6a5b207d98c65 SHA512 1a1923f8819016926ad37337077a87782b1b244eb52c93b0b977946a3549a82b8b0cc4eb886f801d283b6df6f55fa8020db435dae9303371cda1dc1f8c40bc88 WHIRLPOOL b0affed720034261de343c4f7a09cc1a977e695ddeb7cd592d3d7b7c960728025336b8ece5667dda090593498d33d4e64b05b1bd3d8336e0f487d5ff2da82f80
+DIST nltk-3.0.3.tar.gz 1011266 SHA256 28d6175984445b9cdcc719f36701f034320edbecb78b69a37d1edc876843ea93 SHA512 b058642670166bff538e2c1c417ffb2e57a217a9f3a056475ad47ffa222df7237bfb4ac00a58952dc6f79f12a32e3a40bf53a96262a4b3caced64c2c09abdfc3 WHIRLPOOL 4201a7d6219f437b8e8df2b7c88ae48578e69825c4fe067d777c92b24bd819172b6a831d2ed51de07a3b52bda20f5c559e2da0dcfde58cafca57c811bbb23cd2
+DIST nltk-3.0.4.tar.gz 1013321 SHA256 e072397ed20ded6511ed97799f7c947536500b80961a1b1d164c228b8009f351 SHA512 ddf1813256d49b2a391b2667eed4f324f963b2e57206d26e0cf757f0d9ebf4b68b7c4f622b507129086815866cba509dd2688430731ec060bbbe8800b3b12f38 WHIRLPOOL 06035550fe2323bbd6db0c57222e38cedbfa7541013420b54ea5aa343d3ad9898d379eb8fea514d6f3c13dd9c0494b4e963064b47b7e737e6acdbbe3bb4d0316
diff --git a/dev-python/nltk/files/fix-newer-setuptools.patch b/dev-python/nltk/files/fix-newer-setuptools.patch
new file mode 100644
index 00000000000..58b8eedbefc
--- /dev/null
+++ b/dev-python/nltk/files/fix-newer-setuptools.patch
@@ -0,0 +1,32 @@
+From efe85968bb23e3afdcd331293f2c2588b1590091 Mon Sep 17 00:00:00 2001
+From: Mikhail Korobov <kmike84@gmail.com>
+Date: Fri, 9 Jan 2015 02:06:21 +0500
+Subject: [PATCH] Fixed installation with recent setuptools.
+
+These lines were introduced here: https://github.com/nltk/nltk/commit/1ecbd2edc32db24b4e6c7dd8555d0b89c668f041
+It seems they fix an issue with .svn folders. We use git now,
+there are no .svn folders.
+
+See also: http://stackoverflow.com/questions/1129180/how-can-i-make-setuptools-ignore-subversion-inventory
+---
+ setup.py | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 3ec0949..079bcf3 100644
+--- a/setup.py
++++ b/setup.py
+@@ -29,13 +29,6 @@
+ # setuptools
+ from setuptools import setup, find_packages
+
+-#
+-# Prevent setuptools from trying to add extra files to the source code
+-# manifest by scanning the version control system for its contents.
+-#
+-from setuptools.command import sdist
+-del sdist.finders[:]
+-
+ setup(
+ name = "nltk",
+ description = "Natural Language Toolkit",
diff --git a/dev-python/nltk/metadata.xml b/dev-python/nltk/metadata.xml
new file mode 100644
index 00000000000..3e7fe5a2e9f
--- /dev/null
+++ b/dev-python/nltk/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>clabbe.montjoie@gmail.com</email>
+ <name>LABBE Corentin (Montjoie)</name>
+ <description>Maintainer. Assign bugs to him</description>
+ </maintainer>
+ <herd>python</herd>
+ <use>
+ <flag name="numpy">Use numpy for the saved word tokenizer</flag>
+ </use>
+ <upstream>
+ <remote-id type="google-code">nltk</remote-id>
+ <remote-id type="pypi">nltk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nltk/nltk-2.0.4.ebuild b/dev-python/nltk/nltk-2.0.4.ebuild
new file mode 100644
index 00000000000..9350d26db10
--- /dev/null
+++ b/dev-python/nltk/nltk-2.0.4.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="tk?,xml(+)"
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Natural Language Toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://nltk.org/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="numpy tk"
+
+RDEPEND="${RDEPEND}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ dev-python/pyyaml[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+src_prepare() {
+ epatch "${FILESDIR}"/fix-newer-setuptools.patch
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/nltk/nltk-3.0.3.ebuild b/dev-python/nltk/nltk-3.0.3.ebuild
new file mode 100644
index 00000000000..d7df607a014
--- /dev/null
+++ b/dev-python/nltk/nltk-3.0.3.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_4} )
+PYTHON_REQ_USE="tk?,xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Natural Language Toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://nltk.org/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="numpy tk"
+
+RDEPEND="${RDEPEND}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ dev-python/pyyaml[${PYTHON_USEDEP}]"
diff --git a/dev-python/nltk/nltk-3.0.4.ebuild b/dev-python/nltk/nltk-3.0.4.ebuild
new file mode 100644
index 00000000000..fe11fd0aa7a
--- /dev/null
+++ b/dev-python/nltk/nltk-3.0.4.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_4} )
+PYTHON_REQ_USE="tk?,xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Natural Language Toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://nltk.org/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="numpy tk"
+
+RDEPEND="numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ dev-python/pyyaml[${PYTHON_USEDEP}]"
diff --git a/dev-python/nose-cover3/Manifest b/dev-python/nose-cover3/Manifest
new file mode 100644
index 00000000000..281b707942b
--- /dev/null
+++ b/dev-python/nose-cover3/Manifest
@@ -0,0 +1 @@
+DIST nose-cover3-0.1.0.tar.gz 14494 SHA256 81310a792285615418e749f6e7c60a4f2cfa6b2f13cf0d19bbf26b1f188444d1 SHA512 208dbef5bb46a403cb51a9490e68e2f06c6fb08c016a9e866959f5fef1d091ed5c3e502b4a579566f37016a0b665ff969a14b160c78e0c392452198134c20ef5 WHIRLPOOL 965bc90acf6163699550497666d89592c29567cd71647995fc82e39cb6d1187d1bebaae2bc853194153c27b2a64068cbd400ef67bdf8bdc1cfe9e03db20bf36e
diff --git a/dev-python/nose-cover3/metadata.xml b/dev-python/nose-cover3/metadata.xml
new file mode 100644
index 00000000000..cdf915205e1
--- /dev/null
+++ b/dev-python/nose-cover3/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">nose-cover3</remote-id>
+ <remote-id type="github">ask/nosecover3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nose-cover3/nose-cover3-0.1.0-r1.ebuild b/dev-python/nose-cover3/nose-cover3-0.1.0-r1.ebuild
new file mode 100644
index 00000000000..c1bff137361
--- /dev/null
+++ b/dev-python/nose-cover3/nose-cover3-0.1.0-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Coverage 3.x support for Nose"
+HOMEPAGE="https://github.com/ask/nosecover3 http://pypi.python.org/pypi/nose-cover3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/nose[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/nose-exclude/Manifest b/dev-python/nose-exclude/Manifest
new file mode 100644
index 00000000000..49f302dcfc9
--- /dev/null
+++ b/dev-python/nose-exclude/Manifest
@@ -0,0 +1,3 @@
+DIST nose-exclude-0.1.9.tar.gz 3444 SHA256 c2862e55f9c6245141fc0437bad5f71a3aa8377d2727b85694884887027625ca SHA512 2f26a3d371bf50d71e235e801c0bef37ac3e7388df7bd16203b5bb330393b2c938deb4a0c2502c75c10038c798456174b74ef4dd10567ac103bf965fcfaf4dea WHIRLPOOL b926c273a1c16a69ab15157d87b079fecd813b579c69eaa9cceee441dca1607e2b949af991e3d0b23d593b07fd9597eedde1e8721fe38a897e0f6f7d221b817d
+DIST nose-exclude-0.2.0.tar.gz 5741 SHA256 27babdc53e0741ed09d21b7fdb5d244aabb1679f67ef81289f0f34e50aca51c9 SHA512 0c23fe809e7e4f75e34bd6e7922cbc021ca880511f9f4d6094ec7cb330261ce2eb10135595f64d555c6503eef5280f8fc41665d8a491e1a01a566c5e277c83f4 WHIRLPOOL 34d9731097e5a6f8e0de111438b3d5db65ec470a79317336c3eb2fceb583a4b7929d4c9b0da8d6b1fc8e8132d2724f2263c2b70e5fc9530dd38be554994b05e8
+DIST nose-exclude-0.3.0.tar.gz 5789 SHA256 eb40022d531c21e827e1261f3a51665a1535b83023598df1e968f41a7d9b3b88 SHA512 25a87e2fe8f424bd009b02b854029dc371ed9a73c7a062c5da32dc76949f0f19c47ac6ab844f2143651e7b66a6b52300edd0eeab3346292671c311ef42f5565c WHIRLPOOL a0841effaf08bda27678d7dffc19c1e933d83fa0ce7340745e72dba17faebc35b85323e598c3d089bcfca70ec521f6cd61c5d46cc56be2f60bf8e24b5904c09e
diff --git a/dev-python/nose-exclude/metadata.xml b/dev-python/nose-exclude/metadata.xml
new file mode 100644
index 00000000000..180e82bbad7
--- /dev/null
+++ b/dev-python/nose-exclude/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Exclude specific directories from nosetests runs.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">nose-exclude</remote-id>
+ <remote-id type="bitbucket">kgrandis/nose-exclude</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nose-exclude/nose-exclude-0.1.9.ebuild b/dev-python/nose-exclude/nose-exclude-0.1.9.ebuild
new file mode 100644
index 00000000000..89c945a8426
--- /dev/null
+++ b/dev-python/nose-exclude/nose-exclude-0.1.9.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Exclude specific directories from nosetests runs"
+HOMEPAGE="http://bitbucket.org/kgrandis/nose-exclude"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/nose[${PYTHON_USEDEP}]"
diff --git a/dev-python/nose-exclude/nose-exclude-0.2.0.ebuild b/dev-python/nose-exclude/nose-exclude-0.2.0.ebuild
new file mode 100644
index 00000000000..f7825b730a0
--- /dev/null
+++ b/dev-python/nose-exclude/nose-exclude-0.2.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Exclude specific directories from nosetests runs"
+HOMEPAGE="http://bitbucket.org/kgrandis/nose-exclude"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/nose[${PYTHON_USEDEP}]"
+RESTRICT="test"
+
+python_test() {
+ # https://bitbucket.org/kgrandis/nose-exclude/issue/10/test-failures-with-python-3
+ esetup.py test
+}
diff --git a/dev-python/nose-exclude/nose-exclude-0.3.0.ebuild b/dev-python/nose-exclude/nose-exclude-0.3.0.ebuild
new file mode 100644
index 00000000000..8d135a60469
--- /dev/null
+++ b/dev-python/nose-exclude/nose-exclude-0.3.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Exclude specific directories from nosetests runs"
+HOMEPAGE="http://bitbucket.org/kgrandis/nose-exclude"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/nose[${PYTHON_USEDEP}]"
+RESTRICT="test"
+
+python_test() {
+ # https://bitbucket.org/kgrandis/nose-exclude/issue/10/test-failures-with-python-3
+ esetup.py test
+}
diff --git a/dev-python/nose-testconfig/Manifest b/dev-python/nose-testconfig/Manifest
new file mode 100644
index 00000000000..2fbcade6c6b
--- /dev/null
+++ b/dev-python/nose-testconfig/Manifest
@@ -0,0 +1 @@
+DIST nose-testconfig-0.9.tar.gz 7614 SHA256 bb6f1dd2dbd3e54a6c456110fb6dced449b5ad5262af712d595c123e4f8c34d3 SHA512 411630f9af56955e5bd87efaf2db0817442f78dc61ea64a29ac186f0a71d23d81220f68bab18ceb7d3bf201bc441b522bf9acff21b541905a5a4397280444a07 WHIRLPOOL e69abb0eb794ed72f54010268a4eeb7356b374efa52caf60cc637a904836ca703b04d36bbbdbb6bc5eefaee6e7d1990cc7d52228864611c91ef631e09624a25b
diff --git a/dev-python/nose-testconfig/metadata.xml b/dev-python/nose-testconfig/metadata.xml
new file mode 100644
index 00000000000..651b8ab5141
--- /dev/null
+++ b/dev-python/nose-testconfig/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">nose-testconfig</remote-id>
+ <remote-id type="bitbucket">jnoller/nose-testconfig</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nose-testconfig/nose-testconfig-0.9.ebuild b/dev-python/nose-testconfig/nose-testconfig-0.9.ebuild
new file mode 100644
index 00000000000..cda3acab3c9
--- /dev/null
+++ b/dev-python/nose-testconfig/nose-testconfig-0.9.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Test Configuration plugin for nosetests"
+HOMEPAGE="http://bitbucket.org/jnoller/nose-testconfig"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+RDEPEND="dev-python/nose"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DOCS=( docs/index.txt )
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/nose/Manifest b/dev-python/nose/Manifest
new file mode 100644
index 00000000000..1afef6aee3e
--- /dev/null
+++ b/dev-python/nose/Manifest
@@ -0,0 +1,3 @@
+DIST nose-1.3.4.tar.gz 277488 SHA256 76bc63a4e2d5e5a0df77ca7d18f0f56e2c46cfb62b71103ba92a92c79fab1e03 SHA512 19499ab08018229ea5195cdac739d6c7c247c5aa5b2c91b801cbd99bad12584ed84c5cfaaa6fa8b4893a46324571a2f8a1988a1381f4ddd58390e597bd7bdc24 WHIRLPOOL 10c3938913e0bfcbb20a7822feadd751c2c1db76d97bf0a5ecbe83be81934a5a23aad4d37a77c68d6da5ac80bdb274f56e2ee3206fb97f96832271d479ca7302
+DIST nose-1.3.6.tar.gz 276273 SHA256 f61e0909a743eed37b1207e38a8e7b4a2fe0a82185e36f2be252ef1b3f901758 SHA512 d0cede08dc33a8ac0af0f18063e57f31b615f06e911edb5ca264575174d8f4adb4338448968c403811d9dcc60f38ade3164662d6c7b69b499f56f0984bb6283c WHIRLPOOL d7360c24aad388c736ce08578eb7ca529873a8603dc0b8e4c79d7756a6d5f6429561b3b8beffc2930301a48767ded06fb3127c27c07432cb25a0549556cb74fe
+DIST nose-1.3.7.tar.gz 280488 SHA256 f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98 SHA512 e65c914f621f8da06b9ab11a0ff2763d6e29b82ce2aaed56da0e3773dc899d9deb1f20015789d44c65a5dad7214520f5b659b3f8d7695fb207ad3f78e5cf1b62 WHIRLPOOL 68684b12e18d41b1f49ba3e832adf8a03b3b84ce530f0bde34f8c40c84f38046aac2777090472fefe87ba7abe3fdffa4cdcad74e3b717fcb9dfe932a0657b965
diff --git a/dev-python/nose/files/nose-0.11.0-disable_intersphinx.patch b/dev-python/nose/files/nose-0.11.0-disable_intersphinx.patch
new file mode 100644
index 00000000000..5ce5a1db880
--- /dev/null
+++ b/dev-python/nose/files/nose-0.11.0-disable_intersphinx.patch
@@ -0,0 +1,17 @@
+--- doc/conf.py.orig 2009-05-07 03:12:35.000000000 +0200
++++ doc/conf.py 2009-05-13 10:13:12.588540888 +0200
+@@ -31,7 +31,7 @@
+
+ # Add any Sphinx extension module names here, as strings. They can be extensions
+ # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx',
++extensions = ['sphinx.ext.autodoc',
+ 'nose.sphinx.pluginopts', 'manbuilder']
+
+ # Add any paths that contain templates here, relative to this directory.
+@@ -231,4 +231,4 @@
+
+
+ # Example configuration for intersphinx: refer to the Python standard library.
+-intersphinx_mapping = {'http://docs.python.org/dev': None}
++#intersphinx_mapping = {'http://docs.python.org/dev': None}
diff --git a/dev-python/nose/files/nose-1.2.1-skiptest.patch b/dev-python/nose/files/nose-1.2.1-skiptest.patch
new file mode 100644
index 00000000000..b8f7a57f4da
--- /dev/null
+++ b/dev-python/nose/files/nose-1.2.1-skiptest.patch
@@ -0,0 +1,23 @@
+Tests are set to compulsory fail, cannot be set to expectedFailure
+diff -ur nose-1.2.1.orig/functional_tests/test_program.py nose-1.2.1/functional_tests/test_program.py
+--- functional_tests/test_program.py 2011-12-14 22:01:38.000000000 +0800
++++ functional_tests/test_program.py 2013-03-02 14:50:28.628004408 +0800
+@@ -1,5 +1,8 @@
+-import os
+-import unittest
++import os, sys
++if sys.version_info[:2] == (2, 7) or hasattr(sys, 'pypy_version_info'):
++ import unittest
++else:
++ import unittest2 as unittest
+ from cStringIO import StringIO
+ from nose import SkipTest
+ from nose.core import TestProgram
+@@ -91,6 +91,7 @@
+ assert not res.errors
+ assert not res.failures
+
++ @unittest.skip("tests set to exit with compulsory fail, error")
+ def test_run_support_twist(self):
+ """Collect and run tests in functional/support/twist
+
diff --git a/dev-python/nose/files/nose-1.3.1-doctest.patch b/dev-python/nose/files/nose-1.3.1-doctest.patch
new file mode 100644
index 00000000000..37d0dcced96
--- /dev/null
+++ b/dev-python/nose/files/nose-1.3.1-doctest.patch
@@ -0,0 +1,45 @@
+https://github.com/nose-devs/nose/commit/5bcedc9a0601b4f70e2cba6c14c3046fb326bfaa.diff
+diff --git a/unit_tests/test_config_defaults.rst b/unit_tests/test_config_defaults.rst
+index 944d370..034f58e 100644
+--- a/unit_tests/test_config_defaults.rst
++++ b/unit_tests/test_config_defaults.rst
+@@ -89,9 +89,9 @@ Invalid config files
+
+ (file-like object)
+
+- >>> options, args = parse([], StringIO("spam"))
++ >>> options, args = parse([], StringIO("spam")) # doctest: +ELLIPSIS
+ error: Error reading config file '<???>': File contains no section headers.
+- file: <???>, line: 1
++ file: ...<???>..., line: 1
+ 'spam'
+
+ (filename)
+@@ -99,7 +99,7 @@ Invalid config files
+ >>> options, args = parse([], os.path.join(support, "invalid.cfg"))
+ ... # doctest: +ELLIPSIS
+ error: Error reading config file '...invalid.cfg': File contains no section headers.
+- file: ...invalid.cfg, line: 1
++ file: ...invalid.cfg..., line: 1
+ 'spam\n'
+
+ (filenames, length == 1)
+@@ -107,7 +107,7 @@ Invalid config files
+ >>> options, args = parse([], [os.path.join(support, "invalid.cfg")])
+ ... # doctest: +ELLIPSIS
+ error: Error reading config file '...invalid.cfg': File contains no section headers.
+- file: ...invalid.cfg, line: 1
++ file: ...invalid.cfg..., line: 1
+ 'spam\n'
+
+ (filenames, length > 1)
+@@ -120,7 +120,7 @@ file is bad
+ ... os.path.join(support, "b.cfg")])
+ ... # doctest: +ELLIPSIS
+ error: Error reading config file '...invalid.cfg': File contains no section headers.
+- file: ...invalid.cfg, line: 1
++ file: ...invalid.cfg..., line: 1
+ 'spam\n'
+
+
+
diff --git a/dev-python/nose/files/nose-1.3.1-pypy-test.patch b/dev-python/nose/files/nose-1.3.1-pypy-test.patch
new file mode 100644
index 00000000000..41ad4687c8a
--- /dev/null
+++ b/dev-python/nose/files/nose-1.3.1-pypy-test.patch
@@ -0,0 +1,42 @@
+https://github.com/nose-devs/nose/commit/0181572a64195a8fa1c6c867ae6c61a79a9606ca.diff
+
+diff --git a/nose/util.py b/nose/util.py
+index dcb5fef..e612696 100644
+--- a/nose/util.py
++++ b/nose/util.py
+@@ -447,11 +447,10 @@ def try_run(obj, names):
+ if func is not None:
+ if type(obj) == types.ModuleType:
+ # py.test compatibility
+- try:
+- args, varargs, varkw, defaults = inspect.getargspec(func)
+- if hasattr(func, '__call__') and ismethod(func.__call__):
+- args.pop(0)
+- except TypeError:
++ if isinstance(func, types.FunctionType):
++ args, varargs, varkw, defaults = \
++ inspect.getargspec(func)
++ else:
+ # Not a function. If it's callable, call it anyway
+ if hasattr(func, '__call__'):
+ func = func.__call__
+diff --git a/unit_tests/test_utils.py b/unit_tests/test_utils.py
+index 2bd837c..cd9ba6e 100644
+--- a/unit_tests/test_utils.py
++++ b/unit_tests/test_utils.py
+@@ -1,4 +1,5 @@
+ import os
++import sys
+ import unittest
+ import nose
+ from nose import case
+@@ -168,7 +169,7 @@ def __call__(self):
+ class Bar_m:
+ def __call__(self, mod):
+ pass
+-
++
+ foo = imp.new_module('foo')
+ foo.bar = bar
+ foo.bar_m = bar_m
+
diff --git a/dev-python/nose/files/nose-1.3.1-python3.4.patch b/dev-python/nose/files/nose-1.3.1-python3.4.patch
new file mode 100644
index 00000000000..2269f755c3f
--- /dev/null
+++ b/dev-python/nose/files/nose-1.3.1-python3.4.patch
@@ -0,0 +1,41 @@
+From 192694ed9f70447317bd54e427a17208bddf03be Mon Sep 17 00:00:00 2001
+From: John Szakmeister <john@szakmeister.net>
+Date: Sat, 15 Mar 2014 06:15:42 -0400
+Subject: [PATCH] Fix #783: try_run is broken with Python 3.4
+
+It turns out that we expected inspect.getargspec() to only work on
+functions (versus classes that are callable). Python 3.4 has changed
+this behavior and now happily returns the arg spec. Let's try to detect
+this situation by checking the __call__() method to if it's actually the
+method of a class. If so, pop the 'self' argument off of args--similar
+to what's done in the exceptional case below.
+---
+ CHANGELOG | 1 +
+ nose/util.py | 4 +++-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/nose/util.py b/nose/util.py
+index 7995700..dcb5fef 100644
+--- a/nose/util.py
++++ b/nose/util.py
+@@ -8,7 +8,7 @@
+ import sys
+ import types
+ import unittest
+-from nose.pyversion import ClassType, TypeType, isgenerator
++from nose.pyversion import ClassType, TypeType, isgenerator, ismethod
+
+
+ log = logging.getLogger('nose')
+@@ -449,6 +449,8 @@ def try_run(obj, names):
+ # py.test compatibility
+ try:
+ args, varargs, varkw, defaults = inspect.getargspec(func)
++ if hasattr(func, '__call__') and ismethod(func.__call__):
++ args.pop(0)
+ except TypeError:
+ # Not a function. If it's callable, call it anyway
+ if hasattr(func, '__call__'):
+--
+1.8.5.5
+
diff --git a/dev-python/nose/files/nose-1.3.1-version.patch b/dev-python/nose/files/nose-1.3.1-version.patch
new file mode 100644
index 00000000000..8f6edb5be2e
--- /dev/null
+++ b/dev-python/nose/files/nose-1.3.1-version.patch
@@ -0,0 +1,16 @@
+https://github.com/nose-devs/nose/commit/43c35e49106916f51f676455888fe7a39d030113.diff
+diff --git a/nose/pyversion.py b/nose/pyversion.py
+index fba5ada..8b56614 100644
+--- a/nose/pyversion.py
++++ b/nose/pyversion.py
+@@ -89,7 +89,8 @@ def __init__(self, cls, func):
+ self.__dict__ = func.__dict__.copy()
+ self._func = func
+ self.__self__ = UnboundSelf(cls)
+- self.im_class = cls
++ if sys.version_info < (3, 0):
++ self.im_class = cls
+
+ def address(self):
+ cls = self.__self__.cls
+
diff --git a/dev-python/nose/metadata.xml b/dev-python/nose/metadata.xml
new file mode 100644
index 00000000000..bc93959923a
--- /dev/null
+++ b/dev-python/nose/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">nose</remote-id>
+ <remote-id type="github">nose-devs/nose</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nose/nose-1.3.4.ebuild b/dev-python/nose/nose-1.3.4.ebuild
new file mode 100644
index 00000000000..c86962275d5
--- /dev/null
+++ b/dev-python/nose/nose-1.3.4.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="A unittest extension offering automatic test suite discovery and easy test authoring"
+HOMEPAGE="http://pypi.python.org/pypi/nose http://readthedocs.org/docs/nose/ https://bitbucket.org/jpellerin/nose"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND="dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )
+ test? ( $(python_gen_cond_dep 'dev-python/twisted-core[${PYTHON_USEDEP}]' python2_7) )"
+
+python_prepare_all() {
+ # Tests need to be converted, and they don't respect BUILD_DIR.
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+
+ # Disable tests requiring network connection.
+ sed \
+ -e "s/test_resolve/_&/g" \
+ -e "s/test_raises_bad_return/_&/g" \
+ -e "s/test_raises_twisted_error/_&/g" \
+ -i unit_tests/test_twisted.py || die "sed failed"
+ # Disable versioning of nosetests script to avoid collision with
+ # versioning performed by the eclass.
+ sed -e "/'nosetests%s = nose:run_exit' % py_vers_tag,/d" \
+ -i setup.py || die "sed2 failed"
+
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i doc/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local add_targets=()
+
+ if use test; then
+ add_targets+=( egg_info )
+ python_is_python3 && add_targets+=( build_tests )
+ fi
+
+ distutils-r1_python_compile ${add_targets[@]}
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+src_test() {
+ # nosetests use heavy multiprocessing during the tests.
+ # this shall make them less likely to kill your system or timeout.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ "${PYTHON}" selftest.py -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install --install-data "${EPREFIX}/usr/share"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r -A txt doc/.build/html/.
+ fi
+}
diff --git a/dev-python/nose/nose-1.3.6.ebuild b/dev-python/nose/nose-1.3.6.ebuild
new file mode 100644
index 00000000000..85007bfd409
--- /dev/null
+++ b/dev-python/nose/nose-1.3.6.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A unittest extension offering automatic test suite discovery and easy test authoring"
+HOMEPAGE="
+ http://pypi.python.org/pypi/nose
+ http://readthedocs.org/docs/nose/
+ https://bitbucket.org/jpellerin/nose"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )
+ test? ( $(python_gen_cond_dep 'dev-python/twisted-core[${PYTHON_USEDEP}]' python2_7) )"
+
+python_prepare_all() {
+ # Tests need to be converted, and they don't respect BUILD_DIR.
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+
+ # Disable tests requiring network connection.
+ sed \
+ -e "s/test_resolve/_&/g" \
+ -e "s/test_raises_bad_return/_&/g" \
+ -e "s/test_raises_twisted_error/_&/g" \
+ -i unit_tests/test_twisted.py || die "sed failed"
+ # Disable versioning of nosetests script to avoid collision with
+ # versioning performed by the eclass.
+ sed -e "/'nosetests%s = nose:run_exit' % py_vers_tag,/d" \
+ -i setup.py || die "sed2 failed"
+
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i doc/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local add_targets=()
+
+ if use test; then
+ add_targets+=( egg_info )
+ python_is_python3 && add_targets+=( build_tests )
+ fi
+
+ distutils-r1_python_compile ${add_targets[@]}
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+src_test() {
+ # nosetests use heavy multiprocessing during the tests.
+ # this shall make them less likely to kill your system or timeout.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ "${PYTHON}" selftest.py -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install --install-data "${EPREFIX}/usr/share"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r -A txt doc/.build/html/.
+ fi
+}
diff --git a/dev-python/nose/nose-1.3.7.ebuild b/dev-python/nose/nose-1.3.7.ebuild
new file mode 100644
index 00000000000..aa885fc821a
--- /dev/null
+++ b/dev-python/nose/nose-1.3.7.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A unittest extension offering automatic test suite discovery and easy test authoring"
+HOMEPAGE="
+ http://pypi.python.org/pypi/nose
+ http://readthedocs.org/docs/nose/
+ https://bitbucket.org/jpellerin/nose"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )
+ test? ( $(python_gen_cond_dep 'dev-python/twisted-core[${PYTHON_USEDEP}]' python2_7) )"
+
+python_prepare_all() {
+ # Tests need to be converted, and they don't respect BUILD_DIR.
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+
+ # Disable tests requiring network connection.
+ sed \
+ -e "s/test_resolve/_&/g" \
+ -e "s/test_raises_bad_return/_&/g" \
+ -e "s/test_raises_twisted_error/_&/g" \
+ -i unit_tests/test_twisted.py || die "sed failed"
+ # Disable versioning of nosetests script to avoid collision with
+ # versioning performed by the eclass.
+ sed -e "/'nosetests%s = nose:run_exit' % py_vers_tag,/d" \
+ -i setup.py || die "sed2 failed"
+
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i doc/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local add_targets=()
+
+ if use test; then
+ add_targets+=( egg_info )
+ python_is_python3 && add_targets+=( build_tests )
+ fi
+
+ distutils-r1_python_compile ${add_targets[@]}
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+src_test() {
+ # nosetests use heavy multiprocessing during the tests.
+ # this shall make them less likely to kill your system or timeout.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ "${PYTHON}" selftest.py -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install --install-data "${EPREFIX}/usr/share"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r -A txt doc/.build/html/.
+ fi
+}
diff --git a/dev-python/nose/nose-9999.ebuild b/dev-python/nose/nose-9999.ebuild
new file mode 100644
index 00000000000..9d4fbab1bfa
--- /dev/null
+++ b/dev-python/nose/nose-9999.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+#if LIVE
+EGIT_REPO_URI="git://github.com/nose-devs/${PN}.git
+ https://github.com/nose-devs/${PN}.git"
+inherit git-2
+#endif
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1 eutils
+
+DESCRIPTION="A unittest extension offering automatic test suite discovery and easy test authoring"
+HOMEPAGE="http://pypi.python.org/pypi/nose http://readthedocs.org/docs/nose/ https://github.com/nose-devs/nose"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND="dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-0.6 )
+ test? ( dev-python/twisted-core )"
+
+#if LIVE
+SRC_URI=
+KEYWORDS=
+#endif
+
+DOCS=( AUTHORS )
+
+python_prepare_all() {
+ # Tests need to be converted, and they don't respect BUILD_DIR.
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+
+ # Disable sphinx.ext.intersphinx, requires network
+ epatch "${FILESDIR}/${PN}-0.11.0-disable_intersphinx.patch"
+ # Disable tests requiring network connection.
+ sed \
+ -e "s/test_resolve/_&/g" \
+ -e "s/test_raises_bad_return/_&/g" \
+ -e "s/test_raises_twisted_error/_&/g" \
+ -i unit_tests/test_twisted.py || die "sed failed"
+ # Disable versioning of nosetests script to avoid collision with
+ # versioning performed by the eclass.
+ sed -e "/'nosetests%s = nose:run_exit' % py_vers_tag,/d" \
+ -i setup.py || die "sed2 failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local add_targets=()
+
+ if use test; then
+ add_targets+=( egg_info )
+ [[ ${EPYTHON} == python3* ]] && add_targets+=( build_tests )
+ fi
+
+ distutils-r1_python_compile ${add_targets[@]}
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+src_test() {
+ # nosetests use heavy multiprocessing during the tests.
+ # this shall make them less likely to kill your system or timeout.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ "${PYTHON}" selftest.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install --install-data "${EPREFIX}/usr/share"
+}
+
+python_install_all() {
+ local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r -A txt doc/.build/html/.
+ fi
+}
diff --git a/dev-python/nose_fixes/Manifest b/dev-python/nose_fixes/Manifest
new file mode 100644
index 00000000000..b8642e19a24
--- /dev/null
+++ b/dev-python/nose_fixes/Manifest
@@ -0,0 +1 @@
+DIST nose_fixes-1.3.tar.gz 10033 SHA256 dd6aca7f2702b36d4bbcd8bec7b2950fb3478f49f520758252688887db2e0564 SHA512 2e054c04493cf11f06ee8977d4922290dbdd7928a4fe4947a76b6cf300c2d16796b578e48c0ea514f3c5a38e011fa9779e7d308eafa0ec12cc0622e124494d93 WHIRLPOOL 04e1ba50fde31cfdaf4efb5df429b0a607f4a5870835164f7d359071f10b9bd9557f4f7666d4417cfa0a1d3ea3a916061c379dd2f63e36698a5db9cbd102bc28
diff --git a/dev-python/nose_fixes/metadata.xml b/dev-python/nose_fixes/metadata.xml
new file mode 100644
index 00000000000..3c51872bc41
--- /dev/null
+++ b/dev-python/nose_fixes/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">nose_fixes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nose_fixes/nose_fixes-1.3.ebuild b/dev-python/nose_fixes/nose_fixes-1.3.ebuild
new file mode 100644
index 00000000000..994702e3cf0
--- /dev/null
+++ b/dev-python/nose_fixes/nose_fixes-1.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package for providing Mozilla's CA Bundle"
+HOMEPAGE="http://packages.python.org/nose_fixes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/pkginfo[${PYTHON_USEDEP}]' python2_7) )"
+
+python_prepare_all() {
+ sed -e 's:../bin/sphinx-build:/usr/bin/sphinx-build:' -i docs/Makefile || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/nosehtmloutput/Manifest b/dev-python/nosehtmloutput/Manifest
new file mode 100644
index 00000000000..c897132707d
--- /dev/null
+++ b/dev-python/nosehtmloutput/Manifest
@@ -0,0 +1,2 @@
+DIST nosehtmloutput-0.0.4.tar.gz 18044 SHA256 a62cf629376ff9e20a350ff64745caab1ae15d7bc14a1f7ae7a36ad8fea7ed1d SHA512 740c9acf3e35c10dcf72307a29ac2afe7297cf306cb489ac6e6d0b86786b857640a9a9e589e7416c5953c87aa5b3783cfeb9c8d69e6cc2442cbaaf3de6a118ab WHIRLPOOL 073bd68303fe6b1737a7db76c45dac84378270f44472a6d25c5dd00c169e3df925d28e1498b6c86134738ca837796bb1a1e4b162aa3bad098ffc62cfb80b35f0
+DIST nosehtmloutput-0.0.5.tar.gz 7525 SHA256 98409e4e231e25582f4d657f31bbe9665e8299b4f0f157e55f1f37b46b67271e SHA512 85bf7d2ab9db9e054772a1af85c17b6213edb2c5bcf30e78392470ad79fad51f15a67f5923282b867248828beab4ca5ea57fe18a071c21995cf56cb56c6bec84 WHIRLPOOL ec9664b659ac43c0761d87799513a2f1d57b8276c803193a6e0a33067b98db147d54e69d31b335e1bec723d5982cf67c26ab9873ad03fc5993992d58d9bf1156
diff --git a/dev-python/nosehtmloutput/metadata.xml b/dev-python/nosehtmloutput/metadata.xml
new file mode 100644
index 00000000000..079041c345e
--- /dev/null
+++ b/dev-python/nosehtmloutput/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Nose plugin to produce test results in html.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">nosehtmloutput</remote-id>
+ <remote-id type="github">cboylan/nose-html-output</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nosehtmloutput/nosehtmloutput-0.0.4-r1.ebuild b/dev-python/nosehtmloutput/nosehtmloutput-0.0.4-r1.ebuild
new file mode 100644
index 00000000000..56883a53a49
--- /dev/null
+++ b/dev-python/nosehtmloutput/nosehtmloutput-0.0.4-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Nose plugin to produce test results in html"
+HOMEPAGE="https://github.com/cboylan/nose-html-output"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/nose[${PYTHON_USEDEP}]"
diff --git a/dev-python/nosehtmloutput/nosehtmloutput-0.0.5.ebuild b/dev-python/nosehtmloutput/nosehtmloutput-0.0.5.ebuild
new file mode 100644
index 00000000000..e2cd4f54c3c
--- /dev/null
+++ b/dev-python/nosehtmloutput/nosehtmloutput-0.0.5.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Nose plugin to produce test results in html"
+HOMEPAGE="https://github.com/cboylan/nose-html-output"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/nose[${PYTHON_USEDEP}]"
diff --git a/dev-python/nosexcover/Manifest b/dev-python/nosexcover/Manifest
new file mode 100644
index 00000000000..e4a25d40fcb
--- /dev/null
+++ b/dev-python/nosexcover/Manifest
@@ -0,0 +1 @@
+DIST nosexcover-1.0.10.tar.gz 2744 SHA256 f5b3a7c936c4f703f15418c1f325775098184b69fa572f868edb8a99f8f144a8 SHA512 dbc3bc3379676d56711c96a4cf2d6b46ee77b5b04ac6a5fb2d58fee780ee547664738b9c6b248e3af64b3d0b7e6c9b44310c8e7025551df543c547da4239f52a WHIRLPOOL a7549547b9423ff32977dfea4dfd7babce05e637a3379b3b7e2d63c711608214ddd0495a09f5e7b5ef9560d46f82ef1727ec75e47f96a95245b0c0148093b4ad
diff --git a/dev-python/nosexcover/metadata.xml b/dev-python/nosexcover/metadata.xml
new file mode 100644
index 00000000000..9930af0eba6
--- /dev/null
+++ b/dev-python/nosexcover/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">nosexcover</remote-id>
+ <remote-id type="github">cmheisel/nose-xcover</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/nosexcover/nosexcover-1.0.10.ebuild b/dev-python/nosexcover/nosexcover-1.0.10.ebuild
new file mode 100644
index 00000000000..17af6248452
--- /dev/null
+++ b/dev-python/nosexcover/nosexcover-1.0.10.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extends nose.plugins.cover to add Cobertura-style XML reports"
+HOMEPAGE="https://github.com/cmheisel/nose-xcover/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.4[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/notify-python/Manifest b/dev-python/notify-python/Manifest
new file mode 100644
index 00000000000..281a9241d80
--- /dev/null
+++ b/dev-python/notify-python/Manifest
@@ -0,0 +1 @@
+DIST notify-python-0.1.1.tar.bz2 214514 SHA256 7d3bbb7c3d8f56c922cc31d02ef9057a4f06998cc2fd4f3119a576fcf8d504ce SHA512 67021af81d77b6a1ead4ee2a0ab4e8684c2b60c672ab7aa09a8f89d71cf646453d9be76455ac28616d70645019946db1731a7021fbb91fe66d9e057fcb3815a0 WHIRLPOOL 106e71668290ebba145cc88542aac6dbe63eebcac84f7eced68256536b9fe8f3a574bad90362e07c993fdb88df2712826d8d0aa75b7f7a3c8bf5013d3cb3263c
diff --git a/dev-python/notify-python/files/notify-python-0.1.1-libnotify-0.7.patch b/dev-python/notify-python/files/notify-python-0.1.1-libnotify-0.7.patch
new file mode 100644
index 00000000000..ee146cb6fd8
--- /dev/null
+++ b/dev-python/notify-python/files/notify-python-0.1.1-libnotify-0.7.patch
@@ -0,0 +1,37 @@
+http://pkgs.fedoraproject.org/gitweb/?p=notify-python.git;a=blob_plain;f=libnotify07.patch;hb=HEAD
+
+--- src/pynotify.defs
++++ src/pynotify.defs
+@@ -38,7 +38,6 @@
+ '("const-gchar*" "summary")
+ '("const-gchar*" "message" (null-ok) (default "NULL"))
+ '("const-gchar*" "icon" (null-ok) (default "NULL"))
+- '("GtkWidget*" "attach" (null-ok) (default "NULL"))
+ )
+ )
+
+@@ -53,24 +52,6 @@
+ )
+ )
+
+-(define-method attach_to_widget
+- (of-object "NotifyNotification")
+- (c-name "notify_notification_attach_to_widget")
+- (return-type "none")
+- (parameters
+- '("GtkWidget*" "attach")
+- )
+-)
+-
+-(define-method attach_to_status_icon
+- (of-object "NotifyNotification")
+- (c-name "notify_notification_attach_to_status_icon")
+- (return-type "none")
+- (parameters
+- '("GtkStatusIcon*" "attach")
+- )
+-)
+-
+ (define-method show
+ (of-object "NotifyNotification")
+ (c-name "notify_notification_show")
diff --git a/dev-python/notify-python/metadata.xml b/dev-python/notify-python/metadata.xml
new file mode 100644
index 00000000000..f95d435c3a6
--- /dev/null
+++ b/dev-python/notify-python/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/notify-python/notify-python-0.1.1-r3.ebuild b/dev-python/notify-python/notify-python-0.1.1-r3.ebuild
new file mode 100644
index 00000000000..1bde31ffa4e
--- /dev/null
+++ b/dev-python/notify-python/notify-python-0.1.1-r3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools-utils eutils python-r1
+
+DESCRIPTION="Python bindings for libnotify"
+HOMEPAGE="http://www.galago-project.org/"
+SRC_URI="http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ~mips ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND="
+ >=dev-python/pygtk-2.24:2[${PYTHON_USEDEP}]
+ >=x11-libs/libnotify-0.7"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}"/${P}-libnotify-0.7.patch )
+
+src_prepare() {
+ # Remove the old pynotify.c to ensure it's properly regenerated #212128.
+ rm -f src/pynotify.c || die
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ python_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_test() {
+ python_foreach_impl autotools-utils_src_test
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+ prune_libtool_files --all
+
+ # Requested from bug 351879.
+ if use examples; then
+ docinto examples
+ dodoc tests/*.{png,py}
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/numba/Manifest b/dev-python/numba/Manifest
new file mode 100644
index 00000000000..068ecdd00ef
--- /dev/null
+++ b/dev-python/numba/Manifest
@@ -0,0 +1,3 @@
+DIST numba-0.18.2.tar.gz 786935 SHA256 5988621a8dd3609d252435c8e280bf01e2f25d9eb63bb8ae49487fe013235a7f SHA512 03d0511df1a5e98f4166a1febc51b6bc4dbf4ca8b432c315a93c8a5c762f6d0ac830fd264c4b42cdb52f262a24c6777885abcccc6e61e08605f30c4bb830850d WHIRLPOOL d62e5e14191146d301fd5475023d0e711e1a014f52c8d2d4661529adb6190006c37259e9a45a8336e5e4cbf8d60fa8a69babce6e0cf01a297ef43d1e7f563cf7
+DIST numba-0.19.2.tar.gz 871394 SHA256 10bdd84a3a8dfb9b195ad7d3b11c1f52693833820268c64837dc8510e66f1e2e SHA512 9eca230b5d69890680278248365e748b2e8a7e040703e80acaed2c0e1dc3576e102bde3809eceb6e600d90e02685e66419ca3423d332620c034fe9c07995aa67 WHIRLPOOL bfba05b56ff9fa9708b67dad1f514bc35c72ac3bf76e349f2ec20c63f7cb9c1664b106898559220e796ae9cafc7a48dbb5e6e537720d6cd4f6b5ccde4903dc67
+DIST numba-0.20.0.tar.gz 895183 SHA256 62dd4eebbd8fef27a8a60b74de2f540b12223939e197877babb13bf06eba5d9f SHA512 d511ed382813471dd2b9f6d99ee7cae4b77375a3c003df44ec2954b0f16c32b0fec76b3c33df46c821f17a4d148afab6c4b2d43429548a5bc81efbebc4fb54e3 WHIRLPOOL 8345bed1965715aace541bfcde33f4a999241fac8f655d80d1bb67db5ae806924fec47e3895b2a61484474fef2d4362d15800aa5be8b1c8f1922eaeb06d432ce
diff --git a/dev-python/numba/files/numba-0.19.2-docbuild.patch b/dev-python/numba/files/numba-0.19.2-docbuild.patch
new file mode 100644
index 00000000000..1c8853c1b11
--- /dev/null
+++ b/dev-python/numba/files/numba-0.19.2-docbuild.patch
@@ -0,0 +1,17 @@
+Delete intersphinx, delete entry to set sphinxjp.themecore which is absent from portage
+diff -ur numba-0.19.2.orig/docs/source/conf.py numba-0.19.2/docs/source/conf.py
+--- docs/source/conf.py 2015-06-28 15:19:14.573386743 +0800
++++ docs/source/conf.py 2015-06-28 15:20:16.808191183 +0800
+@@ -36,12 +36,9 @@
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+ # ones.
+ extensions = [
+- 'sphinx.ext.intersphinx',
+ 'sphinx.ext.todo',
+ #'sphinx.ext.mathjax',
+ 'sphinx.ext.autodoc',
+- #'sphinx.ext.graphviz',
+- 'sphinxjp.themecore',
+ ]
+
+ todo_include_todos = True
diff --git a/dev-python/numba/metadata.xml b/dev-python/numba/metadata.xml
new file mode 100644
index 00000000000..98eac6d30b5
--- /dev/null
+++ b/dev-python/numba/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Numba is a NumPy-aware optimizing compiler for Python. It uses the LLVM
+ compiler infrastructure to compile Python syntax to machine code.
+ It is aware of NumPy arrays as typed memory regions and so can
+ speed-up code using NumPy arrays. Other, less well-typed code will be
+ translated to Python C-API calls effectively removing the
+ "interpreter" but not removing the dynamic indirection.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">numba</remote-id>
+ <remote-id type="github">numba/numba</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/numba/numba-0.18.2.ebuild b/dev-python/numba/numba-0.18.2.ebuild
new file mode 100644
index 00000000000..0e35b03b34b
--- /dev/null
+++ b/dev-python/numba/numba-0.18.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# test phase is pointless since it errors in circa 60% of 1984 tests
+RESTRICT="test"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="NumPy aware dynamic Python compiler using LLVM"
+HOMEPAGE="http://numba.pydata.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/llvmlite[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python{2_7,3_3})
+ $(python_gen_cond_dep 'dev-python/funcsigs[${PYTHON_USEDEP}]' python2_7)"
+DEPEND="test? ( ${RDEPEND} )"
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import numba; numba.test()" || die
+}
+
+python_install_all() {
+ # doc needs obsolete sphnxjp package
+ use doc && dodoc docs/Numba.pdf
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/numba/numba-0.19.2.ebuild b/dev-python/numba/numba-0.19.2.ebuild
new file mode 100644
index 00000000000..b8115eca008
--- /dev/null
+++ b/dev-python/numba/numba-0.19.2.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# test phase is pointless since it errors in circa 60% of 1984 tests
+RESTRICT="test"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="NumPy aware dynamic Python compiler using LLVM"
+HOMEPAGE="http://numba.pydata.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/llvmlite[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python{2_7,3_3})
+ $(python_gen_cond_dep 'dev-python/funcsigs[${PYTHON_USEDEP}]' python2_7)"
+DEPEND="test? ( ${RDEPEND} )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Delete intersphinx & entry to set sphinxjp.themecore, which is absent from portage, from conf.py
+PATCHES=( "${FILESDIR}"/${P}-docbuild.patch )
+
+python_prepare_all() {
+ # Re-set them of doc build to one provided by sphinx
+ if has_version ">=dev-python/sphinx-1.3.1"; then
+ sed -e 's:basicstrap:classic:' -i docs/source/conf.py || die
+ else
+ sed -e 's:basicstrap:default:' -i docs/source/conf.py || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C docs/ html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import numba; numba.test()" || die
+}
+
+python_install_all() {
+ # doc needs obsolete sphinxjp package
+# use doc && dodoc docs/Numba.pdf
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/numba/numba-0.20.0.ebuild b/dev-python/numba/numba-0.20.0.ebuild
new file mode 100644
index 00000000000..1af7b26533e
--- /dev/null
+++ b/dev-python/numba/numba-0.20.0.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# test phase is pointless since it errors in circa 60% of 1984 tests
+RESTRICT="test"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="NumPy aware dynamic Python compiler using LLVM"
+HOMEPAGE="http://numba.pydata.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/llvmlite[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python{2_7,3_3})
+ $(python_gen_cond_dep 'dev-python/funcsigs[${PYTHON_USEDEP}]' python2_7)"
+DEPEND="test? ( ${RDEPEND} )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Delete intersphinx & entry to set sphinxjp.themecore, which is absent from portage, from conf.py
+PATCHES=( "${FILESDIR}"/${PN}-0.19.2-docbuild.patch )
+
+python_prepare_all() {
+ # Re-set them of doc build to one provided by sphinx
+ if has_version ">=dev-python/sphinx-1.3.1"; then
+ sed -e 's:basicstrap:classic:' -i docs/source/conf.py || die
+ else
+ sed -e 's:basicstrap:default:' -i docs/source/conf.py || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C docs/ html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import numba; numba.test()" || die
+}
+
+python_install_all() {
+ # doc needs obsolete sphinxjp package
+# use doc && dodoc docs/Numba.pdf
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/numdisplay/Manifest b/dev-python/numdisplay/Manifest
new file mode 100644
index 00000000000..1a47ecc6b49
--- /dev/null
+++ b/dev-python/numdisplay/Manifest
@@ -0,0 +1 @@
+DIST numdisplay-1.6.0.tar.gz 27397 SHA256 66a702b881aa54f31b7e5e3b7283fd75f8ebd469133e5a3e1943928c82fccc34 SHA512 345aaf360ff8768bd3ddd0b176c4369e38b43f6883a841a7d1cd3d8a15f0f95309c1949126afa0e37bd569371b483b5885923e7048f09a46086d192a3894bfec WHIRLPOOL cef9e62e018b1a19ae4e18380776bd92b21431aeb19516023bece8221052ccaa2244fd7513061c7f9cc43f220eedbcd3a802a175300d8a745fb002761ca4edba
diff --git a/dev-python/numdisplay/metadata.xml b/dev-python/numdisplay/metadata.xml
new file mode 100644
index 00000000000..7a5f1bc1804
--- /dev/null
+++ b/dev-python/numdisplay/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+ Numdisplay provides the capability to visualize numarray array objects
+ using astronomical image display tools such as DS9 or XIMTOOL
+ directly from the Python command line.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/numdisplay/numdisplay-1.6.0-r1.ebuild b/dev-python/numdisplay/numdisplay-1.6.0-r1.ebuild
new file mode 100644
index 00000000000..c2e398d1c47
--- /dev/null
+++ b/dev-python/numdisplay/numdisplay-1.6.0-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package for interactively displaying FITS arrays"
+HOMEPAGE="http://stsdas.stsci.edu/numdisplay/"
+SRC_URI="http://stsdas.stsci.edu/download/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}"
+
+python_install() {
+ distutils-r1_python_install
+ find "${D}" -name LICENSE.txt -delete || die
+}
diff --git a/dev-python/numexpr/Manifest b/dev-python/numexpr/Manifest
new file mode 100644
index 00000000000..c297876c0e1
--- /dev/null
+++ b/dev-python/numexpr/Manifest
@@ -0,0 +1,3 @@
+DIST numexpr-2.4.1.tar.gz 84990 SHA256 5b53a9e9e50f33e2e562b4ae9f88066c9e54a3bd7c144d29d0067b87856815b4 SHA512 d5aa34532dd1a504b3c78cff07def4114201560c04ce30d033a4701eb95961c53582b71291569cd10f22d50b00edc5dbb4e1b6454d8597c68f231c9c576471b7 WHIRLPOOL 9bfde967bc772111e1cc4a8e5931dc31896b7da4b43c33b8ae7bb3701f782e895b434ee4cddabe2a90abfe90cc240322b92dc224b7917123d90f2d9f9044cea4
+DIST numexpr-2.4.3.tar.gz 85171 SHA256 3ae7191c89df40db6b0a8637a4dace7c5956bc910793a53225f985f3b443c722 SHA512 b33984072fddd4303980be8533e1348b48ff27de5e150029147e3666ce6bb9e1147dbc45eb0ef22506aebaea6fb366d65ff01221235f9b9935d78ea70ba9aa53 WHIRLPOOL ac5981bac643b825d6ab2fbd6c46b6d73ad62374490e5f05a71fc0b9c4269ab401617da98079e1604b11f454863e64e009a2acc00b7b30499b20eff73efe033f
+DIST numexpr-2.4.tar.gz 84770 SHA256 1b63a5ce11c10d36433e2a74e2e4c360a4e004618507778881659e80a912fc58 SHA512 bebc3e81505f4c2e7d3c6f7cf2c02fe1ce07186c81de743db43399f2f81a135125a675dbd7a631fea55aaea1d092ab9a84539676027ce31f6fb7b1fca23cf253 WHIRLPOOL 1cf2e98f8e092505c1098f0c55a1b05488146164afa3bfec351cbe8ed44fa401edab503884ffa2b599a5a8db86e4bda94229a6d147aba60f554141ec85f37273
diff --git a/dev-python/numexpr/metadata.xml b/dev-python/numexpr/metadata.xml
new file mode 100644
index 00000000000..d1db4bfbe81
--- /dev/null
+++ b/dev-python/numexpr/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ The numexpr package evaluates multiple-operator array expressions
+ many times faster than NumPy can. It accepts the expression as a
+ string, analyzes it, rewrites it more efficiently, and compiles it
+ to faster Python code on the fly. It's the next best thing to
+ writing the expression in C and compiling it with a specialized
+ just-in-time (JIT) compiler, i.e. it does not require a compiler at
+ runtime.
+</longdescription>
+ <use>
+ <flag name="mkl">Enable support for Intel Vector Math Library, part of
+ <pkg>sci-libs/mkl</pkg>.</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">numexpr</remote-id>
+ <remote-id type="github">pydata/numexpr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/numexpr/numexpr-2.4.1.ebuild b/dev-python/numexpr/numexpr-2.4.1.ebuild
new file mode 100644
index 00000000000..f115595836c
--- /dev/null
+++ b/dev-python/numexpr/numexpr-2.4.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast numerical array expression evaluator for Python and NumPy"
+HOMEPAGE="https://github.com/pydata/numexpr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="mkl"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ mkl? ( sci-libs/mkl )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( ANNOUNCE.rst AUTHORS.txt README.rst RELEASE_NOTES.rst )
+
+python_prepare_all() {
+ # TODO: mkl can be used but it fails for me
+ # only works with mkl in tree. newer mkl will use pkgconfig
+ if use mkl; then
+ local ext
+ use amd64 && ext=_lp64
+ cat <<- EOF > "${S}"/site.cfg
+ [mkl]
+ library_dirs = ${MKLROOT}/lib/em64t
+ include_dirs = ${MKLROOT}/include
+ mkl_libs = mkl_solver${ext}, mkl_intel${ext}, \
+ mkl_intel_thread, mkl_core, iomp5
+ EOF
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ "${PYTHON}" -c "import numexpr; numexpr.test()" || die
+}
diff --git a/dev-python/numexpr/numexpr-2.4.3.ebuild b/dev-python/numexpr/numexpr-2.4.3.ebuild
new file mode 100644
index 00000000000..40aa4ecea9d
--- /dev/null
+++ b/dev-python/numexpr/numexpr-2.4.3.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast numerical array expression evaluator for Python and NumPy"
+HOMEPAGE="https://github.com/pydata/numexpr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="mkl"
+
+RDEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ mkl? ( sci-libs/mkl )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # TODO: mkl can be used but it fails for me
+ # only works with mkl in tree. newer mkl will use pkgconfig
+ if use mkl; then
+ local ext
+ use amd64 && ext=_lp64
+ cat <<- EOF > "${S}"/site.cfg
+ [mkl]
+ library_dirs = ${MKLROOT}/lib/em64t
+ include_dirs = ${MKLROOT}/include
+ mkl_libs = mkl_solver${ext}, mkl_intel${ext}, \
+ mkl_intel_thread, mkl_core, iomp5
+ EOF
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # https://github.com/pydata/numexpr/issues/177
+ # there are 2 known test failures under py3 only
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ "${PYTHON}" -c "import numexpr; numexpr.test()" || die
+ pushd > /dev/null
+}
diff --git a/dev-python/numexpr/numexpr-2.4.ebuild b/dev-python/numexpr/numexpr-2.4.ebuild
new file mode 100644
index 00000000000..83c7c988eac
--- /dev/null
+++ b/dev-python/numexpr/numexpr-2.4.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast numerical array expression evaluator for Python and NumPy"
+HOMEPAGE="https://github.com/pydata/numexpr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="mkl"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ mkl? ( sci-libs/mkl )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( ANNOUNCE.rst AUTHORS.txt README.rst RELEASE_NOTES.rst )
+
+python_prepare_all() {
+ # TODO: mkl can be used but it fails for me
+ # only works with mkl in tree. newer mkl will use pkgconfig
+ if use mkl; then
+ local ext
+ use amd64 && ext=_lp64
+ cat <<- EOF > "${S}"/site.cfg
+ [mkl]
+ library_dirs = ${MKLROOT}/lib/em64t
+ include_dirs = ${MKLROOT}/include
+ mkl_libs = mkl_solver${ext}, mkl_intel${ext}, \
+ mkl_intel_thread, mkl_core, iomp5
+ EOF
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ "${PYTHON}" -c "import numexpr; numexpr.test()" || die
+}
diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest
new file mode 100644
index 00000000000..dcd56be3c27
--- /dev/null
+++ b/dev-python/numpy/Manifest
@@ -0,0 +1,15 @@
+DIST numpy-1.8.0.tar.gz 3779617 SHA256 2764d0819acc77e9ff81b060fe7f69530b0d85c26ac9d162639b787cb227d253 SHA512 ec3d002ed786335e8748983261c96f88a9f1520fc345ad5b810dc02a5e126e15fe5afb02bed1f4b43d580a1da39583d86b84f57dc456b0702653e34e5357c857 WHIRLPOOL 8796d90795ddec62e6d72be433ea00917a63ef39cf3fe81e094f653e1863b69ecdce812995877f78e4324434141b03e2ceb3f872ed4e023b19c6bd9bcc294ac2
+DIST numpy-1.8.1.tar.gz 3794076 SHA256 3d722fc3ac922a34c50183683e828052cd9bb7e9134a95098441297d7ea1c7a9 SHA512 39ef9e13f8681a2c2ba3d74ab96fd28c5669e653308fd1549f262921814fa7c276ce6d9fb65ef135006584c608bdf3db198d43f66c9286fc7b3c79803dbc1f57 WHIRLPOOL 10615c0c70c153156034447e9c3f2b70b0259173a44af3b5cc641dd31c0af71ef1053a9cc7938deff5edb899ae2666b2b3109491d7394f03d1a81cb19722d398
+DIST numpy-1.8.2.tar.gz 3792998 SHA256 6d487fc724780d66746bde264ea71f5cd77d3a39e52ee2b073dcaed63bc669db SHA512 996e6b8e2d42f223e44660f56bf73eb8ab124f400d89218f8f5e4d7c9860ada44a4d7c54526137b0695c7a10f36e8834fbf0d42b7cb20bcdb5d5c245d673385c WHIRLPOOL 0d3a05b1e3c0a1ceb0a7b4818406dbb45506e5f25bc2727d4ff44cc0a0520e6556b3c68ae24dbca37ba9d67ae2defbb3ff9c906d4c2635b29ed44452d70e8311
+DIST numpy-1.9.0.tar.gz 3962108 SHA256 2745b1d64445da3c29a34450320025c11897ae4af77475f861966e98b2cb1a0f SHA512 dc9fb453367bd429336ed7391c0923d0d3af5f8ab26ef8681bc1a9e934ac28e2c9bc30e11f1026c2ea5710a3c4e27188007ee14b194bfca6a03228fad8f3d2fd WHIRLPOOL 5111f5cbb43bd279587f858196fbe86103abde7e8d6536337af51fe4a8371d39057d9ea75ac73ab501ff5c07c5c6e7e4e62f660ca263181e2fee3e6e61718ba9
+DIST numpy-1.9.1.tar.gz 3978007 SHA256 0075bbe07e30b659ae4415446f45812dc1b96121a493a4a1f8b1ba77b75b1e1c SHA512 8286a55f4bd5f9c16b1252ee64a644fe4a03758d31ef2e16714c2f5c61d96f766fb6ffc98986c58e1db1c2b812a2d10e89eae3442263615e46472418c2d4edd4 WHIRLPOOL 9025fee798b2e0b23af4c5870fd12606de65c91a176e2900ca93ed853767165dfbe7344125aba19a58d031f82880d6347095070ed3585deb8866819c32422751
+DIST numpy-1.9.2.tar.gz 3986067 SHA256 325e5f2b0b434ecb6e6882c7e1034cc6cdde3eeeea87dbc482575199a6aeef2a SHA512 70470ebb9afef5dfd0c83ceb7a9d5f1b7a072b1a9b54b04f04f5ed50fbaedd5b4906bd500472268d478f94df9e749a88698b1ff30f2d80258e7f3fec040617d9 WHIRLPOOL 59f5dc52cb95c7ce80fec3a7feac6cfda1d149596bf6d95c18bd8314e31a8df494b2b470c4cc3d8c296c9fc11c718d70d5b9b5344337175ca75496504c0fd201
+DIST numpy-html-1.8.0.zip 9779825 SHA256 39e853c1aaa711976333782f465f2579ca66e6698393f6ba79f5cc78317b1203 SHA512 33333c48a3f4d27ccddf6696dce4e346f8729d1f398128b3bfebb8a9d53ded7bb62b63a766319f6e49ba7cf8ca4e1ce252996acd263976ad2990bf9650d71043 WHIRLPOOL 7eea0ad3418c55d6104a4a115fcdcd5eeb291b9fc1237724e10dcbbf95bc7a4a23b519c64976ac405fb4c5abbaae87a6c747f9ad695d08b6326b459ba1fb8a15
+DIST numpy-html-1.8.1.zip 9703711 SHA256 f7fc3af4dba7b40deabd1828a86ea2e2eb5b9fa17c7ebddd73ee4cb8625105b1 SHA512 1d52c657931f4eebb5325159444aedd969b201f5098855058f1ef632dc8677372d632291154ebc3db9869cdb8abf7eb820eade1a9edba2d6be1ae918cb38c071 WHIRLPOOL e502b1416bad4b189773ba98035dfbeed0dc251d8f9b76e336450f14e8425caf92d55d2b1c2cc5ef9eb2d33eb2bf7cd55e720c1b265e45539b195fea1d7f046c
+DIST numpy-html-1.9.1.zip 9839137 SHA256 12a24937f8273fcf79090c99b6c4154a0ecfc378386498cf2afe727ea171407c SHA512 647a6be9f93995aca14185e283a2b412678c6e8080fe4f14e7cc9ee63c28eebb64dea6bbe28f30ef6850a5565dd1e06928fd660ac762e9a91454d309eff96ed4 WHIRLPOOL 68c367fd0416d27b1cf43edf7ca48bc8845c02856bbbacdf63c88fe8bbffd5dd86fb3e5cdea8f669dd78adf7bcc4d184953048783802df323126c1b22baf8e92
+DIST numpy-ref-1.8.0.pdf 5324229 SHA256 49ecb1d768eb48598439cc63058f830ca3522fe1cfeba1a321086e9820ae8911 SHA512 d89314215c4adefa487b3e46b2babeda7739ee193fef821846d4df0089fabf2167b47dd2990b6bd423432f75238547548924622c6f3b9a90a36d578450001eb2 WHIRLPOOL 3bb12c719cbe4734014774f1bfc3f98af544ee2c407adb2e3ee988e2b1035ad0ef711eaa68168656be7b034df2db76c8789daa2940a048b4a6cb3af0bb0eca68
+DIST numpy-ref-1.8.1.pdf 5348248 SHA256 973851e66d0d5ab095f444f8aeb966fefe2dd544226395abbb110fc1b60f351d SHA512 340dd8f47430f24fea81bb3a8674e1a58f4290a9d1c5d64bac96d50b31a94a770e78381e42daf8b0a6a90cefe5cafe86b0c89f7cc7635a042a7e85eb74bdbdf5 WHIRLPOOL be13f88bb68944186c564a5c3789daededade240a26e7fb61c980a090249ab3a5b1f40805e97214168fbf0c099fb6b12d981ff313bace572f130023b29e7aaa7
+DIST numpy-ref-1.9.1.pdf 5318122 SHA256 3c8e5881a3460e1cc9da95fe2167044e8f832ab8e980c3606d1f353e7ac6dcee SHA512 5171bb22588117a53e0eac355520581f7817a7e7a099ae83bb73f2ac8248a60e139ae9719dc543b44f25ccf8319c9f149fec1bf5aa55d943fad06a8e6da0d9ba WHIRLPOOL 5c99daf3ae2e6bf235aed287682f1b96d5b6afc9d290f544a8baab892b39c9f6dd9f649abe3e103cc90c990d87e4d653d8157d774a8bd35eccc9cc6ac7a870f9
+DIST numpy-user-1.8.0.pdf 408447 SHA256 a8c30360f9e46c63cfdf48fa594971d94d68ce59ece08c13d4acde8b14032cfe SHA512 10293dba45377c6f1024125a49810b01e388eb33a3e8ed75b8ec39c2b93e53878cbe62e6b7adbf1e957dc47ef253e20304afa7d86d798fb5198887cbe618131f WHIRLPOOL 70cc5a5e97a919bb027f92ac87127fb1bc08d06e2a131c4b413837e76d8feab9b65d7dc9e95b6e797d057efb6abf0d2b3e7562ee3cd140b1ff1418bad5475335
+DIST numpy-user-1.8.1.pdf 408305 SHA256 be827f2d92ef86c3af7f59c623017e7bc23ee95c64f88e8c9871f3ad1f99b262 SHA512 9e646e89e7e67834fa596e43082b43842d1c59287d22fd8d20c9f0a1d3d56a518a08cc2c036de4972ad0d6d9d3c2f56e2210f76e7244d3f7547b5204d84d3c7c WHIRLPOOL bf4105093b208b35b1914e842821b8d289b46eb28f1fda110643f5970bbfafe801e9d148c5f535b43eba9a23e09d333e3aecd9a55b33e64827883d253477d19a
+DIST numpy-user-1.9.1.pdf 418111 SHA256 e1f6baed0b73f3d4b106c88924c083f9a519e860c1beb718830bf1aee1892232 SHA512 724302468a8e93daf70d379bb1ee7369953e297c40ea260f080b7aca3c9c81e619a81705bdfb2ea214da5b5325ec2b48e953eceeaa1d60c07593b00c35989f45 WHIRLPOOL f93ed20c5da7b379e3afcafab97c7eb60231ed4f73cebf18184e00b9a8a5a531fa32992f7f28f16d2714b3056c61153c29267c8c6b93cb100e06f53bced1bd6a
diff --git a/dev-python/numpy/files/numpy-1.8.0-f2py-insecure-temporary.patch b/dev-python/numpy/files/numpy-1.8.0-f2py-insecure-temporary.patch
new file mode 100644
index 00000000000..5a68e8e2aa9
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.8.0-f2py-insecure-temporary.patch
@@ -0,0 +1,214 @@
+ numpy/core/tests/test_memmap.py | 34 ++++++++++++++++------------------
+ numpy/core/tests/test_multiarray.py | 9 +++------
+ numpy/f2py/__init__.py | 22 +++++++++++-----------
+ numpy/f2py/f2py2e.py | 4 ++--
+ numpy/lib/tests/test_io.py | 24 ++++++++++++++++--------
+ 5 files changed, 48 insertions(+), 45 deletions(-)
+
+diff --git a/numpy/core/tests/test_memmap.py b/numpy/core/tests/test_memmap.py
+index 6de6319..10e7a08 100644
+--- a/numpy/core/tests/test_memmap.py
++++ b/numpy/core/tests/test_memmap.py
+@@ -1,7 +1,7 @@
+ from __future__ import division, absolute_import, print_function
+
+ import sys
+-from tempfile import NamedTemporaryFile, TemporaryFile, mktemp
++from tempfile import NamedTemporaryFile, TemporaryFile
+ import os
+
+ from numpy import memmap
+@@ -33,12 +33,11 @@ class TestMemmap(TestCase):
+ assert_array_equal(self.data, newfp)
+
+ def test_open_with_filename(self):
+- tmpname = mktemp('', 'mmap')
+- fp = memmap(tmpname, dtype=self.dtype, mode='w+',
+- shape=self.shape)
+- fp[:] = self.data[:]
+- del fp
+- os.unlink(tmpname)
++ with NamedTemporaryFile() as tmp:
++ fp = memmap(tmp.name, dtype=self.dtype, mode='w+',
++ shape=self.shape)
++ fp[:] = self.data[:]
++ del fp
+
+ def test_unnamed_file(self):
+ with TemporaryFile() as f:
+@@ -55,17 +54,16 @@ class TestMemmap(TestCase):
+ del fp
+
+ def test_filename(self):
+- tmpname = mktemp('', 'mmap')
+- fp = memmap(tmpname, dtype=self.dtype, mode='w+',
+- shape=self.shape)
+- abspath = os.path.abspath(tmpname)
+- fp[:] = self.data[:]
+- self.assertEqual(abspath, fp.filename)
+- b = fp[:1]
+- self.assertEqual(abspath, b.filename)
+- del b
+- del fp
+- os.unlink(tmpname)
++ with NamedTemporaryFile() as tmp:
++ fp = memmap(tmp.name, dtype=self.dtype, mode='w+',
++ shape=self.shape)
++ abspath = os.path.abspath(tmp.name)
++ fp[:] = self.data[:]
++ self.assertEqual(abspath, fp.filename)
++ b = fp[:1]
++ self.assertEqual(abspath, b.filename)
++ del b
++ del fp
+
+ def test_filename_fileobj(self):
+ fp = memmap(self.tmpfp, dtype=self.dtype, mode="w+",
+diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py
+index a0c4bcf..37b9931 100644
+--- a/numpy/core/tests/test_multiarray.py
++++ b/numpy/core/tests/test_multiarray.py
+@@ -2051,12 +2051,11 @@ class TestIO(object):
+ self.x = rand(shape) + rand(shape).astype(np.complex)*1j
+ self.x[0,:, 1] = [nan, inf, -inf, nan]
+ self.dtype = self.x.dtype
+- self.filename = tempfile.mktemp()
++ self.file = tempfile.NamedTemporaryFile()
++ self.filename = self.file.name
+
+ def tearDown(self):
+- if os.path.isfile(self.filename):
+- os.unlink(self.filename)
+- #tmp_file.close()
++ self.file.close()
+
+ def test_bool_fromstring(self):
+ v = np.array([True, False, True, False], dtype=np.bool_)
+@@ -2084,7 +2083,6 @@ class TestIO(object):
+ y = np.fromfile(f, dtype=self.dtype)
+ f.close()
+ assert_array_equal(y, self.x.flat)
+- os.unlink(self.filename)
+
+ def test_roundtrip_filename(self):
+ self.x.tofile(self.filename)
+@@ -2217,7 +2215,6 @@ class TestIO(object):
+ s = f.read()
+ f.close()
+ assert_equal(s, '1.51,2.0,3.51,4.0')
+- os.unlink(self.filename)
+
+ def test_tofile_format(self):
+ x = np.array([1.51, 2, 3.51, 4], dtype=float)
+diff --git a/numpy/f2py/__init__.py b/numpy/f2py/__init__.py
+index ccdbd4e..fcfd185 100644
+--- a/numpy/f2py/__init__.py
++++ b/numpy/f2py/__init__.py
+@@ -28,20 +28,20 @@ def compile(source,
+ from numpy.distutils.exec_command import exec_command
+ import tempfile
+ if source_fn is None:
+- fname = os.path.join(tempfile.mktemp()+'.f')
++ f = tempfile.NamedTemporaryFile(suffix='.f')
+ else:
+- fname = source_fn
+-
+- f = open(fname, 'w')
+- f.write(source)
+- f.close()
+-
+- args = ' -c -m %s %s %s'%(modulename, fname, extra_args)
+- c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' %(sys.executable, args)
+- s, o = exec_command(c)
+- if source_fn is None:
+- try: os.remove(fname)
+- except OSError: pass
++ f = open(source_fn, 'w')
++
++ try:
++ f.write(source)
++ f.flush()
++
++ args = ' -c -m %s %s %s'%(modulename, f.name, extra_args)
++ c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' % \
++ (sys.executable, args)
++ s, o = exec_command(c)
++ finally:
++ f.close()
+ return s
+
+ from numpy.testing import Tester
+diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py
+old mode 100755
+new mode 100644
+index 011b430..b264ea3
+--- a/numpy/f2py/f2py2e.py
++++ b/numpy/f2py/f2py2e.py
+@@ -91,7 +91,7 @@ Options:
+ --lower is assumed with -h key, and --no-lower without -h key.
+
+ --build-dir <dirname> All f2py generated files are created in <dirname>.
+- Default is tempfile.mktemp().
++ Default is tempfile.mkdtemp().
+
+ --overwrite-signature Overwrite existing signature file.
+
+@@ -428,7 +428,7 @@ def run_compile():
+ del sys.argv[i]
+ else:
+ remove_build_dir = 1
+- build_dir = os.path.join(tempfile.mktemp())
++ build_dir = tempfile.mkdtemp()
+
+ _reg1 = re.compile(r'[-][-]link[-]')
+ sysinfo_flags = [_m for _m in sys.argv[1:] if _reg1.match(_m)]
+diff --git a/numpy/lib/tests/test_io.py b/numpy/lib/tests/test_io.py
+index fdd78b2..caffada 100644
+--- a/numpy/lib/tests/test_io.py
++++ b/numpy/lib/tests/test_io.py
+@@ -4,7 +4,9 @@ import sys
+ import gzip
+ import os
+ import threading
+-from tempfile import mkstemp, mktemp, NamedTemporaryFile
++import shutil
++import contextlib
++from tempfile import mkstemp, mkdtemp, NamedTemporaryFile
+ import time
+ import warnings
+ import gc
+@@ -21,6 +23,12 @@ from numpy.ma.testutils import (TestCase, assert_equal, assert_array_equal,
+ assert_raises, run_module_suite)
+ from numpy.testing import assert_warns, assert_, build_err_msg
+
++@contextlib.contextmanager
++def tempdir(change_dir=False):
++ tmpdir = mkdtemp()
++ yield tmpdir
++ shutil.rmtree(tmpdir)
++
+
+ class TextIO(BytesIO):
+ """Helper IO class.
+@@ -145,14 +153,14 @@ class TestSavezLoad(RoundtripTest, TestCase):
+ @np.testing.dec.slow
+ def test_big_arrays(self):
+ L = (1 << 31) + 100000
+- tmp = mktemp(suffix='.npz')
+ a = np.empty(L, dtype=np.uint8)
+- np.savez(tmp, a=a)
+- del a
+- npfile = np.load(tmp)
+- a = npfile['a']
+- npfile.close()
+- os.remove(tmp)
++ with tempdir() as tmpdir:
++ tmp = os.path.join(tmpdir, "file.npz")
++ np.savez(tmp, a=a)
++ del a
++ npfile = np.load(tmp)
++ a = npfile['a']
++ npfile.close()
+
+ def test_multiple_arrays(self):
+ a = np.array([[1, 2], [3, 4]], float)
diff --git a/dev-python/numpy/files/numpy-1.8.0-no-hardcode-blas.patch b/dev-python/numpy/files/numpy-1.8.0-no-hardcode-blas.patch
new file mode 100644
index 00000000000..eaf30dd8e13
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.8.0-no-hardcode-blas.patch
@@ -0,0 +1,25 @@
+patch to allow any blas (c or f77) to simulate the
+special treatment atlas libs have in numpy.
+2013: numpy.distutils still horrendous code
+
+--- numpy/distutils/system_info.py.orig 2013-11-25 19:54:45.760217851 -0800
++++ numpy/distutils/system_info.py 2013-11-25 20:00:26.575310888 -0800
+@@ -293,17 +293,7 @@
+ 1 - display warning message
+ 2 - raise error
+ """
+- cl = {'atlas': atlas_info, # use lapack_opt or blas_opt instead
+- 'atlas_threads': atlas_threads_info, # ditto
+- 'atlas_blas': atlas_blas_info,
+- 'atlas_blas_threads': atlas_blas_threads_info,
+- 'lapack_atlas': lapack_atlas_info, # use lapack_opt instead
+- 'lapack_atlas_threads': lapack_atlas_threads_info, # ditto
+- 'mkl': mkl_info,
+- 'openblas': openblas_info, # use blas_opt instead
+- 'lapack_mkl': lapack_mkl_info, # use lapack_opt instead
+- 'blas_mkl': blas_mkl_info, # use blas_opt instead
+- 'x11': x11_info,
++ cl = {'x11': x11_info,
+ 'fft_opt': fft_opt_info,
+ 'fftw': fftw_info,
+ 'fftw2': fftw2_info,
diff --git a/dev-python/numpy/files/numpy-1.9.0-OO.patch b/dev-python/numpy/files/numpy-1.9.0-OO.patch
new file mode 100644
index 00000000000..f1ebc23e157
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.9.0-OO.patch
@@ -0,0 +1,91 @@
+From dc453917978e98dcdf3bbc106b080c80f0a1301e Mon Sep 17 00:00:00 2001
+From: Charles Harris <charlesr.harris@gmail.com>
+Date: Fri, 3 Oct 2014 20:03:31 -0600
+Subject: [PATCH] BUG: Make numpy import when run with Python flag '-OO'.
+
+This consists of checking for a docstring equal to None and skipping two
+tests that require docstrings.
+
+Closes #5148.
+---
+ numpy/lib/tests/test_function_base.py | 6 +++++-
+ numpy/lib/tests/test_utils.py | 3 ++-
+ numpy/ma/extras.py | 8 +++++---
+ 3 files changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py
+index ee38b35..a3f8056 100644
+--- a/numpy/lib/tests/test_function_base.py
++++ b/numpy/lib/tests/test_function_base.py
+@@ -1,12 +1,14 @@
+ from __future__ import division, absolute_import, print_function
+
+ import warnings
++import sys
+
+ import numpy as np
+ from numpy.testing import (
+ run_module_suite, TestCase, assert_, assert_equal, assert_array_equal,
+ assert_almost_equal, assert_array_almost_equal, assert_raises,
+- assert_allclose, assert_array_max_ulp, assert_warns, assert_raises_regex
++ assert_allclose, assert_array_max_ulp, assert_warns,
++ assert_raises_regex, dec
+ )
+ from numpy.random import rand
+ from numpy.lib import *
+@@ -2094,6 +2096,8 @@ def test_string_arg(self):
+
+
+ class TestAdd_newdoc(TestCase):
++
++ @dec.skipif(sys.flags.optimize == 2)
+ def test_add_doc(self):
+ # test np.add_newdoc
+ tgt = "Current flat index into the array."
+diff --git a/numpy/lib/tests/test_utils.py b/numpy/lib/tests/test_utils.py
+index fcb37f9..8fbd1c4 100644
+--- a/numpy/lib/tests/test_utils.py
++++ b/numpy/lib/tests/test_utils.py
+@@ -3,7 +3,7 @@
+ import sys
+ from numpy.core import arange
+ from numpy.testing import (
+- run_module_suite, assert_, assert_equal
++ run_module_suite, assert_, assert_equal, dec
+ )
+ from numpy.lib import deprecate
+ import numpy.lib.utils as utils
+@@ -14,6 +14,7 @@
+ from StringIO import StringIO
+
+
++@dec.skipif(sys.flags.optimize == 2)
+ def test_lookfor():
+ out = StringIO()
+ utils.lookfor('eigenvalue', module='numpy', output=out,
+diff --git a/numpy/ma/extras.py b/numpy/ma/extras.py
+index 82a61a6..a993fd0 100644
+--- a/numpy/ma/extras.py
++++ b/numpy/ma/extras.py
+@@ -434,8 +434,10 @@ def apply_over_axes(func, a, axes):
+ raise ValueError("function is not returning "
+ "an array of the correct shape")
+ return val
+-apply_over_axes.__doc__ = np.apply_over_axes.__doc__[
+- :np.apply_over_axes.__doc__.find('Notes')].rstrip() + \
++
++if apply_over_axes.__doc__ is not None:
++ apply_over_axes.__doc__ = np.apply_over_axes.__doc__[
++ :np.apply_over_axes.__doc__.find('Notes')].rstrip() + \
+ """
+
+ Examples
+@@ -462,7 +464,7 @@ def apply_over_axes(func, a, axes):
+ [[[46]
+ [--]
+ [124]]]
+-"""
++ """
+
+
+ def average(a, axis=None, weights=None, returned=False):
diff --git a/dev-python/numpy/files/numpy-1.9.0-no-hardcode-blas.patch b/dev-python/numpy/files/numpy-1.9.0-no-hardcode-blas.patch
new file mode 100644
index 00000000000..128ea1391dd
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.9.0-no-hardcode-blas.patch
@@ -0,0 +1,25 @@
+--- numpy/distutils/system_info.py 2014-09-07 08:57:47.000000000 +0000
++++ numpy/distutils/system_info.py 2014-10-19 17:57:12.099448481 +0000
+@@ -296,20 +296,7 @@
+ 1 - display warning message
+ 2 - raise error
+ """
+- cl = {'atlas': atlas_info, # use lapack_opt or blas_opt instead
+- 'atlas_threads': atlas_threads_info, # ditto
+- 'atlas_blas': atlas_blas_info,
+- 'atlas_blas_threads': atlas_blas_threads_info,
+- 'lapack_atlas': lapack_atlas_info, # use lapack_opt instead
+- 'lapack_atlas_threads': lapack_atlas_threads_info, # ditto
+- 'mkl': mkl_info,
+- # openblas which may or may not have embedded lapack
+- 'openblas': openblas_info, # use blas_opt instead
+- # openblas with embedded lapack
+- 'openblas_lapack': openblas_lapack_info, # use blas_opt instead
+- 'lapack_mkl': lapack_mkl_info, # use lapack_opt instead
+- 'blas_mkl': blas_mkl_info, # use blas_opt instead
+- 'x11': x11_info,
++ cl = {'x11': x11_info,
+ 'fft_opt': fft_opt_info,
+ 'fftw': fftw_info,
+ 'fftw2': fftw2_info,
+
diff --git a/dev-python/numpy/files/numpy-1.9.2-no-hardcode-blas.patch b/dev-python/numpy/files/numpy-1.9.2-no-hardcode-blas.patch
new file mode 100644
index 00000000000..674dbfadbf0
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.9.2-no-hardcode-blas.patch
@@ -0,0 +1,35 @@
+ numpy/distutils/system_info.py | 21 +--------------------
+ 1 file changed, 1 insertion(+), 20 deletions(-)
+
+diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
+index a050430..d0878a5 100644
+--- a/numpy/distutils/system_info.py
++++ b/numpy/distutils/system_info.py
+@@ -303,26 +303,7 @@ def get_info(name, notfound_action=0):
+ 1 - display warning message
+ 2 - raise error
+ """
+- cl = {'atlas': atlas_info, # use lapack_opt or blas_opt instead
+- 'atlas_threads': atlas_threads_info, # ditto
+- 'atlas_blas': atlas_blas_info,
+- 'atlas_blas_threads': atlas_blas_threads_info,
+- 'lapack_atlas': lapack_atlas_info, # use lapack_opt instead
+- 'lapack_atlas_threads': lapack_atlas_threads_info, # ditto
+- 'atlas_3_10': atlas_3_10_info, # use lapack_opt or blas_opt instead
+- 'atlas_3_10_threads': atlas_3_10_threads_info, # ditto
+- 'atlas_3_10_blas': atlas_3_10_blas_info,
+- 'atlas_3_10_blas_threads': atlas_3_10_blas_threads_info,
+- 'lapack_atlas_3_10': lapack_atlas_3_10_info, # use lapack_opt instead
+- 'lapack_atlas_3_10_threads': lapack_atlas_3_10_threads_info, # ditto
+- 'mkl': mkl_info,
+- # openblas which may or may not have embedded lapack
+- 'openblas': openblas_info, # use blas_opt instead
+- # openblas with embedded lapack
+- 'openblas_lapack': openblas_lapack_info, # use blas_opt instead
+- 'lapack_mkl': lapack_mkl_info, # use lapack_opt instead
+- 'blas_mkl': blas_mkl_info, # use blas_opt instead
+- 'x11': x11_info,
++ cl = {'x11': x11_info,
+ 'fft_opt': fft_opt_info,
+ 'fftw': fftw_info,
+ 'fftw2': fftw2_info,
diff --git a/dev-python/numpy/metadata.xml b/dev-python/numpy/metadata.xml
new file mode 100644
index 00000000000..0bfafa1af2f
--- /dev/null
+++ b/dev-python/numpy/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <herd>python</herd>
+ <longdescription lang="en">
+ NumPy is a general-purpose array-processing Python package designed to
+ efficiently manipulate large multi-dimensional arrays of arbitrary
+ records without sacrificing too much speed for small multi-dimensional
+ arrays. There are also basic facilities for discrete fourier transform,
+ basic linear algebra and random number generation.
+ It is the successor of Numeric and numarray.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">numpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/numpy/numpy-1.8.0-r1.ebuild b/dev-python/numpy/numpy-1.8.0-r1.ebuild
new file mode 100644
index 00000000000..e01e6de8052
--- /dev/null
+++ b/dev-python/numpy/numpy-1.8.0-r1.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator
+
+DOC_PV="${PV}"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${P}/${PN}-html-${DOC_PV}.zip
+ http://docs.scipy.org/doc/${P}/${PN}-ref-${DOC_PV}.pdf
+ http://docs.scipy.org/doc/${P}/${PN}-user-${DOC_PV}.pdf
+ )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ doc? ( app-arch/unzip )
+ lapack? ( virtual/pkgconfig )
+ test? ( >=dev-python/nose-0.10[${PYTHON_USEDEP}] )"
+
+# Uses distutils.command.config.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${P}-no-hardcode-blas.patch
+ "${FILESDIR}"/${P}-f2py-insecure-temporary.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+pc_incdir() {
+ $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+ sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+ $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+ sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+ $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+ sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+ -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+ | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ # make sure _dotblas.so gets built
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ cat >> site.cfg <<-EOF
+ [blas]
+ include_dirs = $(pc_incdir cblas)
+ library_dirs = $(pc_libdir cblas blas):${libdir}
+ blas_libs = $(pc_libs cblas blas)
+ [lapack]
+ library_dirs = $(pc_libdir lapack):${libdir}
+ lapack_libs = $(pc_libs lapack)
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s:+os\.path.*$::' numpy/f2py/setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+ ${EPYTHON} -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc COMPATIBILITY DEV_README.txt THANKS.txt
+
+ docinto f2py
+ dodoc numpy/f2py/docs/*.txt
+ doman numpy/f2py/f2py.1
+
+ if use doc; then
+ dohtml -r "${WORKDIR}"/html/*
+ insinto /usr/share/doc/${PF}
+ doins "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf
+ fi
+}
diff --git a/dev-python/numpy/numpy-1.8.1.ebuild b/dev-python/numpy/numpy-1.8.1.ebuild
new file mode 100644
index 00000000000..7769eb5f1a4
--- /dev/null
+++ b/dev-python/numpy/numpy-1.8.1.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator
+
+DOC_PV="${PV}"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${P}/${PN}-html-${DOC_PV}.zip
+ http://docs.scipy.org/doc/${P}/${PN}-ref-${DOC_PV}.pdf
+ http://docs.scipy.org/doc/${P}/${PN}-user-${DOC_PV}.pdf
+ )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ doc? ( app-arch/unzip )
+ lapack? ( virtual/pkgconfig )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# Uses distutils.command.config.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.8.0-no-hardcode-blas.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+pc_incdir() {
+ $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+ sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+ $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+ sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+ $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+ sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+ -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+ | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ # make sure _dotblas.so gets built
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ cat >> site.cfg <<-EOF
+ [blas]
+ include_dirs = $(pc_incdir cblas)
+ library_dirs = $(pc_libdir cblas blas):${libdir}
+ blas_libs = $(pc_libs cblas blas)
+ [lapack]
+ library_dirs = $(pc_libdir lapack):${libdir}
+ lapack_libs = $(pc_libs lapack)
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s:+os\.path.*$::' numpy/f2py/setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+ ${EPYTHON} -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc COMPATIBILITY DEV_README.txt THANKS.txt
+
+ if use doc; then
+ dohtml -r "${WORKDIR}"/html/*
+ dodoc "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf
+ fi
+
+ docinto f2py
+ dodoc numpy/f2py/docs/*.txt
+ doman numpy/f2py/f2py.1
+}
diff --git a/dev-python/numpy/numpy-1.8.2.ebuild b/dev-python/numpy/numpy-1.8.2.ebuild
new file mode 100644
index 00000000000..3ca3e504c42
--- /dev/null
+++ b/dev-python/numpy/numpy-1.8.2.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator
+
+DOC_PV="1.8.1"
+DOC_P="${PN}-${DOC_PV}"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-html-${DOC_PV}.zip
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-ref-${DOC_PV}.pdf
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-user-${DOC_PV}.pdf
+ )"
+# It appears the docs haven't been upgraded, still @ 1.8.1
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ doc? ( app-arch/unzip )
+ lapack? ( virtual/pkgconfig )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# Uses distutils.command.config.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.8.0-no-hardcode-blas.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+pc_incdir() {
+ $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+ sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+ $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+ sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+ $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+ sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+ -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+ | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ # make sure _dotblas.so gets built
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ cat >> site.cfg <<-EOF
+ [blas]
+ include_dirs = $(pc_incdir cblas)
+ library_dirs = $(pc_libdir cblas blas):${libdir}
+ blas_libs = $(pc_libs cblas blas)
+ [lapack]
+ library_dirs = $(pc_libdir lapack):${libdir}
+ lapack_libs = $(pc_libs lapack)
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s:+os\.path.*$::' numpy/f2py/setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+ ${EPYTHON} -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc COMPATIBILITY DEV_README.txt THANKS.txt
+
+ if use doc; then
+ dohtml -r "${WORKDIR}"/html/*
+ dodoc "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf
+ fi
+
+ docinto f2py
+ dodoc numpy/f2py/docs/*.txt
+ doman numpy/f2py/f2py.1
+}
diff --git a/dev-python/numpy/numpy-1.9.0-r1.ebuild b/dev-python/numpy/numpy-1.9.0-r1.ebuild
new file mode 100644
index 00000000000..fa61e78e11e
--- /dev/null
+++ b/dev-python/numpy/numpy-1.9.0-r1.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator
+
+DOC_PV="1.8.1"
+DOC_P="${PN}-${DOC_PV}"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-html-${DOC_PV}.zip
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-ref-${DOC_PV}.pdf
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-user-${DOC_PV}.pdf
+ )"
+# It appears the docs haven't been upgraded, still @ 1.8.1
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ doc? ( app-arch/unzip )
+ lapack? ( virtual/pkgconfig )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# Uses distutils.command.config.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.0-no-hardcode-blas.patch
+ # https://github.com/numpy/numpy/commit/dc453917978e98dcdf3bbc106b080c80f0a1301e.patch
+ "${FILESDIR}"/${PN}-1.9.0-OO.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+pc_incdir() {
+ $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+ sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+ $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+ sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+ $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+ sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+ -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+ | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ # make sure _dotblas.so gets built
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ cat >> site.cfg <<-EOF
+ [blas]
+ include_dirs = $(pc_incdir cblas)
+ library_dirs = $(pc_libdir cblas blas):${libdir}
+ blas_libs = $(pc_libs cblas blas)
+ [lapack]
+ library_dirs = $(pc_libdir lapack):${libdir}
+ lapack_libs = $(pc_libs lapack)
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s:+os\.path.*$::' numpy/f2py/setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+ ${EPYTHON} -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc COMPATIBILITY DEV_README.txt THANKS.txt
+
+ if use doc; then
+ dohtml -r "${WORKDIR}"/html/*
+ dodoc "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf
+ fi
+
+ # absent in 1.9
+ #docinto f2py
+ #dodoc numpy/f2py/docs/*.txt
+ #doman numpy/f2py/f2py.1
+}
diff --git a/dev-python/numpy/numpy-1.9.0.ebuild b/dev-python/numpy/numpy-1.9.0.ebuild
new file mode 100644
index 00000000000..12415c46b07
--- /dev/null
+++ b/dev-python/numpy/numpy-1.9.0.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator
+
+DOC_PV="1.8.1"
+DOC_P="${PN}-${DOC_PV}"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-html-${DOC_PV}.zip
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-ref-${DOC_PV}.pdf
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-user-${DOC_PV}.pdf
+ )"
+# It appears the docs haven't been upgraded, still @ 1.8.1
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ doc? ( app-arch/unzip )
+ lapack? ( virtual/pkgconfig )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# Uses distutils.command.config.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.0-no-hardcode-blas.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+pc_incdir() {
+ $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+ sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+ $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+ sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+ $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+ sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+ -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+ | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ # make sure _dotblas.so gets built
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ cat >> site.cfg <<-EOF
+ [blas]
+ include_dirs = $(pc_incdir cblas)
+ library_dirs = $(pc_libdir cblas blas):${libdir}
+ blas_libs = $(pc_libs cblas blas)
+ [lapack]
+ library_dirs = $(pc_libdir lapack):${libdir}
+ lapack_libs = $(pc_libs lapack)
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s:+os\.path.*$::' numpy/f2py/setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+ ${EPYTHON} -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc COMPATIBILITY DEV_README.txt THANKS.txt
+
+ if use doc; then
+ dohtml -r "${WORKDIR}"/html/*
+ dodoc "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf
+ fi
+
+ # absent in 1.9
+ #docinto f2py
+ #dodoc numpy/f2py/docs/*.txt
+ #doman numpy/f2py/f2py.1
+}
diff --git a/dev-python/numpy/numpy-1.9.1.ebuild b/dev-python/numpy/numpy-1.9.1.ebuild
new file mode 100644
index 00000000000..12415c46b07
--- /dev/null
+++ b/dev-python/numpy/numpy-1.9.1.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator
+
+DOC_PV="1.8.1"
+DOC_P="${PN}-${DOC_PV}"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-html-${DOC_PV}.zip
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-ref-${DOC_PV}.pdf
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-user-${DOC_PV}.pdf
+ )"
+# It appears the docs haven't been upgraded, still @ 1.8.1
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ doc? ( app-arch/unzip )
+ lapack? ( virtual/pkgconfig )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# Uses distutils.command.config.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.0-no-hardcode-blas.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+pc_incdir() {
+ $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+ sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+ $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+ sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+ $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+ sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+ -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+ | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ # make sure _dotblas.so gets built
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ cat >> site.cfg <<-EOF
+ [blas]
+ include_dirs = $(pc_incdir cblas)
+ library_dirs = $(pc_libdir cblas blas):${libdir}
+ blas_libs = $(pc_libs cblas blas)
+ [lapack]
+ library_dirs = $(pc_libdir lapack):${libdir}
+ lapack_libs = $(pc_libs lapack)
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s:+os\.path.*$::' numpy/f2py/setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+ ${EPYTHON} -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc COMPATIBILITY DEV_README.txt THANKS.txt
+
+ if use doc; then
+ dohtml -r "${WORKDIR}"/html/*
+ dodoc "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf
+ fi
+
+ # absent in 1.9
+ #docinto f2py
+ #dodoc numpy/f2py/docs/*.txt
+ #doman numpy/f2py/f2py.1
+}
diff --git a/dev-python/numpy/numpy-1.9.2.ebuild b/dev-python/numpy/numpy-1.9.2.ebuild
new file mode 100644
index 00000000000..865164f1831
--- /dev/null
+++ b/dev-python/numpy/numpy-1.9.2.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 eutils flag-o-matic fortran-2 multilib toolchain-funcs versionator
+
+DOC_PV="1.9.1"
+DOC_P="${PN}-${DOC_PV}"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="http://numpy.scipy.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-html-${DOC_PV}.zip
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-ref-${DOC_PV}.pdf
+ http://docs.scipy.org/doc/${DOC_P}/${PN}-user-${DOC_PV}.pdf
+ )"
+# It appears the docs haven't been upgraded, still @ 1.8.1
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/cblas virtual/lapack )"
+DEPEND="${RDEPEND}
+ doc? ( app-arch/unzip )
+ lapack? ( virtual/pkgconfig )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# Uses distutils.command.config.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${P}-no-hardcode-blas.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+pc_incdir() {
+ $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+ sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+ $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+ sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+ $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+ sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+ -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+ | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ # make sure _dotblas.so gets built
+ sed -i -e '/NO_ATLAS_INFO/,+1d' numpy/core/setup.py || die
+ cat >> site.cfg <<-EOF
+ [blas]
+ include_dirs = $(pc_incdir cblas)
+ library_dirs = $(pc_libdir cblas blas):${libdir}
+ blas_libs = $(pc_libs cblas blas)
+ [lapack]
+ library_dirs = $(pc_libdir lapack):${libdir}
+ lapack_libs = $(pc_libs lapack)
+ EOF
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s:+os\.path.*$::' numpy/f2py/setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+ ${EPYTHON} -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc COMPATIBILITY DEV_README.txt THANKS.txt
+
+ if use doc; then
+ dohtml -r "${WORKDIR}"/html/*
+ dodoc "${DISTDIR}"/${PN}-{user,ref}-${DOC_PV}.pdf
+ fi
+
+ # absent in 1.9
+ #docinto f2py
+ #dodoc numpy/f2py/docs/*.txt
+ #doman numpy/f2py/f2py.1
+}
diff --git a/dev-python/numpydoc/Manifest b/dev-python/numpydoc/Manifest
new file mode 100644
index 00000000000..13c1bd5f820
--- /dev/null
+++ b/dev-python/numpydoc/Manifest
@@ -0,0 +1,2 @@
+DIST numpydoc-0.4.tar.gz 28972 SHA256 20e07c60766a7a044f228de5bdcc0d10b84a9f0b460e0c09422a4f60ef21ff8f SHA512 980c3f56562b0faff4a8f453faff36d8ed92ca7241174c16fe0cc7d60e0d250e6674b6dc2aa98906922f5ccdd0800222b724f759d96174648147ca12e710e574 WHIRLPOOL 8eac57ebcc2eca69b89f98c053332380d902fc1d20dc46bf06768150f14e48b5cf77c203ebf4001766fde05ba9c80ad3bc94ce105ac9e32466c58fc48c64fdad
+DIST numpydoc-0.5.tar.gz 32051 SHA256 93f050bceb52489d92f85c346981f1962c867c01f233d3252894ceae5cb48d34 SHA512 f5ddd07103f3eadad979ddca2bfb4b1681fb783e58de80fbb2cbcb85dcdbe2340f708c94c9d494dce44ac3b1dff1b4b7bcf57231c2eb848f9468b72cec03b038 WHIRLPOOL dbb713f97c0a0a02ae06fd0d2190b2d52471a7ab1c1dcd5bbcf7df98111c97818a32c53c7857648e6c6788818f39b184de6544480382fc011e4a6a52ea43ba1d
diff --git a/dev-python/numpydoc/metadata.xml b/dev-python/numpydoc/metadata.xml
new file mode 100644
index 00000000000..d70636c886e
--- /dev/null
+++ b/dev-python/numpydoc/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">numpydoc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/numpydoc/numpydoc-0.4-r1.ebuild b/dev-python/numpydoc/numpydoc-0.4-r1.ebuild
new file mode 100644
index 00000000000..9679b9d64ba
--- /dev/null
+++ b/dev-python/numpydoc/numpydoc-0.4-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Sphinx extension to support docstrings in Numpy format"
+HOMEPAGE="https://pypi.python.org/pypi/numpydoc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86 ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ chmod -R a+r *.egg-info || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Tests are written only for py2m pypy
+ if ! python_is_python3; then
+ nosetests || die "Testing failed with ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/numpydoc/numpydoc-0.5.ebuild b/dev-python/numpydoc/numpydoc-0.5.ebuild
new file mode 100644
index 00000000000..2859d82c647
--- /dev/null
+++ b/dev-python/numpydoc/numpydoc-0.5.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Sphinx extension to support docstrings in Numpy format"
+HOMEPAGE="https://pypi.python.org/pypi/numpydoc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-1.4.0[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ chmod -R a+r *.egg-info || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/oauth/Manifest b/dev-python/oauth/Manifest
new file mode 100644
index 00000000000..b808b95a496
--- /dev/null
+++ b/dev-python/oauth/Manifest
@@ -0,0 +1 @@
+DIST oauth-1.0.1.tar.gz 9533 SHA256 e769819ff0b0c043d020246ce1defcaadd65b9c21d244468a45a7f06cb88af5d SHA512 a503b1bfff18c97a0e666cc376bfcb11e3cc0f3340dd16e0254fcd4340ed28ab0fc52d1de81b573309351a5edaf83d0b437c155580c00e32a81a7c219ee7eca9 WHIRLPOOL c068087ac15061236bb5809d51e4e55c9ea489c36ac27275f69e8e8eb3b1e3fc89a08b75c8cb23091cd68e8722911bb5dfd643c371bc5c3ee7589fe6158392e9
diff --git a/dev-python/oauth/metadata.xml b/dev-python/oauth/metadata.xml
new file mode 100644
index 00000000000..27c5e14c8ff
--- /dev/null
+++ b/dev-python/oauth/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">oauth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oauth/oauth-1.0.1-r1.ebuild b/dev-python/oauth/oauth-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..09422d54957
--- /dev/null
+++ b/dev-python/oauth/oauth-1.0.1-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python OAuth module"
+HOMEPAGE="http://pypi.python.org/pypi/oauth"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/oauth2/Manifest b/dev-python/oauth2/Manifest
new file mode 100644
index 00000000000..e7e92e1a3a3
--- /dev/null
+++ b/dev-python/oauth2/Manifest
@@ -0,0 +1 @@
+DIST oauth2-1.5.211.tar.gz 18608 SHA256 82a38f674da1fa496c0fc4df714cbb058540bed72a30c50a2e344b0d984c4d21 SHA512 3f5606702d4e305c191c924cab01ee3fc7e170a26460c1d49031e3d9a296b3502d5e18edb1ec0e291abd61797cb47b7b2b8929eff33eb8bc9fd73434b3ab028a WHIRLPOOL bd262f4c6d324c048951addc158485bd81c12125fea8cf59545b2cb31c343c793a91cc892d27baeec54b2c62df818e5cb8e9b10196d4f9860fd6e62a37c7bffe
diff --git a/dev-python/oauth2/files/oauth2-exclude-tests.patch b/dev-python/oauth2/files/oauth2-exclude-tests.patch
new file mode 100644
index 00000000000..e2296d869e9
--- /dev/null
+++ b/dev-python/oauth2/files/oauth2-exclude-tests.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index acc41e1..1efd034 100755
+--- a/setup.py
++++ b/setup.py
+@@ -31,7 +31,7 @@ setup(name=PKG,
+ author="Joe Stump",
+ author_email="joe@simplegeo.com",
+ url="http://github.com/simplegeo/python-oauth2",
+- packages = find_packages(),
++ packages = find_packages(exclude=['tests']),
+ install_requires = ['httplib2'],
+ license = "MIT License",
+ keywords="oauth",
diff --git a/dev-python/oauth2/metadata.xml b/dev-python/oauth2/metadata.xml
new file mode 100644
index 00000000000..b8382a97ef6
--- /dev/null
+++ b/dev-python/oauth2/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">oauth2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oauth2/oauth2-1.5.211-r1.ebuild b/dev-python/oauth2/oauth2-1.5.211-r1.ebuild
new file mode 100644
index 00000000000..e8f27d6e593
--- /dev/null
+++ b/dev-python/oauth2/oauth2-1.5.211-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library for OAuth version 1.0"
+HOMEPAGE="http://pypi.python.org/pypi/oauth2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x64-macos"
+IUSE="test"
+
+RDEPEND="dev-python/httplib2[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=( "${FILESDIR}/${PN}-exclude-tests.patch" )
+
+python_test() {
+ esetup.py test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/oauth2client/Manifest b/dev-python/oauth2client/Manifest
new file mode 100644
index 00000000000..4b0332aa3a5
--- /dev/null
+++ b/dev-python/oauth2client/Manifest
@@ -0,0 +1,2 @@
+DIST oauth2client-1.4.11.tar.gz 107844 SHA256 c7f4af0ae4ef7717fc596709e5c5d6ee5775f1fa2b2d69ccfaf0c7c42f2e6756 SHA512 bf06e5a1bb903f940d1e384a9213e13e9e815460a5d79ad24942fbf619d70b39392bc764b0867faea4557bfe031e8a6734639401d6d4ac6297517d840b5191d3 WHIRLPOOL fad31559f000ce7a3154e9fa458bc9731c7e4ef7a392e74e6888e6ee5b649a31284adb1b487fa57406a8ff30b37c9a1a840f0b1fb66bc2a9573cabea2375f2bc
+DIST oauth2client-1.4.6.tar.gz 95325 SHA256 d4376fc0f5543612c62cdee5ea68530bd9c8542891b3f4427d8bf9a1f5a134c8 SHA512 e75e6c535ca4e427f3a869fa7e600bf7544752a100f623cbbeb117d872a2361a60d1524fc2639521393a58dc6f684d9e1452980d6a5ffb6f4dbed516911cc4ca WHIRLPOOL acb26ef17115138a8932313cbbb8c9a802e2296d20343ab746123ad0ef8a38ea8587c10c45863b56b7b4d5b052675434236a050ae64c6c05546a42fd3cdc4f6b
diff --git a/dev-python/oauth2client/metadata.xml b/dev-python/oauth2client/metadata.xml
new file mode 100644
index 00000000000..b36b6dfa439
--- /dev/null
+++ b/dev-python/oauth2client/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">google/oauth2client</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oauth2client/oauth2client-1.4.11.ebuild b/dev-python/oauth2client/oauth2client-1.4.11.ebuild
new file mode 100644
index 00000000000..c13ae18e82e
--- /dev/null
+++ b/dev-python/oauth2client/oauth2client-1.4.11.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy)
+
+inherit distutils-r1
+
+DESCRIPTION="Library for accessing resources protected by OAuth 2.0"
+HOMEPAGE="https://github.com/google/oauth2client"
+SRC_URI="https://github.com/google/oauth2client/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
+ ~dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ ~dev-python/pyasn1-modules-0.0.5[${PYTHON_USEDEP}]
+ ~dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+ >=dev-python/six-1.6.1[${PYTHON_USEDEP}]
+ !<=dev-python/google-api-python-client-1.1[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+# Needs network
+RESTRICT=test
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/oauth2client/oauth2client-1.4.6.ebuild b/dev-python/oauth2client/oauth2client-1.4.6.ebuild
new file mode 100644
index 00000000000..7621c7e14e6
--- /dev/null
+++ b/dev-python/oauth2client/oauth2client-1.4.6.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library for accessing resources protected by OAuth 2.0"
+HOMEPAGE="https://github.com/google/oauth2client"
+SRC_URI="https://github.com/google/oauth2client/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
+ ~dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ ~dev-python/pyasn1-modules-0.0.5[${PYTHON_USEDEP}]
+ ~dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+ >=dev-python/six-1.6.1[${PYTHON_USEDEP}]
+ !<=dev-python/google-api-python-client-1.1[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+# Needs network
+RESTRICT=test
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/oauthlib/Manifest b/dev-python/oauthlib/Manifest
new file mode 100644
index 00000000000..d8a8e85658e
--- /dev/null
+++ b/dev-python/oauthlib/Manifest
@@ -0,0 +1,2 @@
+DIST oauthlib-0.7.2.tar.gz 106079 SHA256 a051f04ee8ec3305055ab34d87b36c9a449375e07c7d6a05bcafa48329cac7c3 SHA512 11bcd1b0930342017c63c305029efa3cc44afb4ce786c0d0afdecc22928a9ada1356899a58e6e7332e08d1a62c3ce83889f6396234534143781635983185b974 WHIRLPOOL 55cd2df10e40e4b05518b2b830418ea8718b584348eda031a8b0281dcddf93ab5afde88a7a583bb3a0f9fd4a59272e61ff68418bb9aee469e203f0f79a01836c
+DIST oauthlib-1.0.1.tar.gz 108125 SHA256 2f1999a7c11f8714a1545de033b0950da77f651ff64f271d7dd9df15dc72049b SHA512 4592ba6a146df55451f65ceab9dd049ddaba20bb0364c4cff882450b701052afc88541e6bf2a112ee18499a9c80e3b1b5e1292899ff7c861e0042c5f96b75653 WHIRLPOOL da8dad0ece0c1f9fbe486c0c23943068612b603e708fdc3c601f19203e2301c308972a50db335804bc1797f645e6355996b7cf484490a4d187d89d337b5f45ed
diff --git a/dev-python/oauthlib/metadata.xml b/dev-python/oauthlib/metadata.xml
new file mode 100644
index 00000000000..73b1a997dc9
--- /dev/null
+++ b/dev-python/oauthlib/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">oauthlib</remote-id>
+ <remote-id type="github">idan/oauthlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oauthlib/oauthlib-0.7.2.ebuild b/dev-python/oauthlib/oauthlib-0.7.2.ebuild
new file mode 100644
index 00000000000..4530459419e
--- /dev/null
+++ b/dev-python/oauthlib/oauthlib-0.7.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
+HOMEPAGE="https://github.com/idan/oauthlib http://pypi.python.org/pypi/oauthlib"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE="test"
+
+# optional extras hard set as RDEPs. See setup.py
+RDEPEND="dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/pyjwt[${PYTHON_USEDEP}]
+ dev-python/blinker[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]' python2_7)
+ )"
+
+python_test() {
+ nosetests || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/oauthlib/oauthlib-1.0.1.ebuild b/dev-python/oauthlib/oauthlib-1.0.1.ebuild
new file mode 100644
index 00000000000..c0751e0ca67
--- /dev/null
+++ b/dev-python/oauthlib/oauthlib-1.0.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
+HOMEPAGE="https://github.com/idan/oauthlib http://pypi.python.org/pypi/oauthlib"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+# optional extras hard set as RDEPs. See setup.py
+RDEPEND="dev-python/pycrypto[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-1.0.0[${PYTHON_USEDEP}]
+ dev-python/blinker[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ "
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/unittest2[${PYTHON_USEDEP}]' python2_7) )
+ "
+
+python_test() {
+ nosetests || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/objgraph/Manifest b/dev-python/objgraph/Manifest
new file mode 100644
index 00000000000..d5a670e87b2
--- /dev/null
+++ b/dev-python/objgraph/Manifest
@@ -0,0 +1,2 @@
+DIST objgraph-1.7.2.tar.gz 545016 SHA256 3b08ccf1f06b8c13574c1edf4767fd9b50607a41218cf8a64f12e2f7a8be4d70 SHA512 22012031723060b47058c00cd97035b53238f8cf49c4e51b1f7735bf9c1d5aac9a5f0bcbe605317952f9b9390fc3bf247211082b4540e05cbf76670c27861ac2 WHIRLPOOL 23a017ac5fd9fa7ed266bc92675cb6d20afc38b2291465ba76414f1ff11edd42856732ffab1a187ebf8d683a1393f51cf7406104938fadf0fd286963fba6000e
+DIST objgraph-1.8.1.tar.gz 549402 SHA256 b4d4628adf39176beeb881fc575832256756bf0d73c1746b2b3529fd309b1a67 SHA512 c09e66aecc5dadc5a6e3d93e0f97fa6e816c5cbe968540400ed3d1248b958c955648cb2b4247ba00cd2388302dbcc178c55686cd2b95858b965a2717c6ff0c90 WHIRLPOOL f8e273422079249e0a22aa8f136fed72aa2fb1f8b925acfe52bf4677ac6164cc2ef919b5e4c23ab81ee978c94563366b52c52ed00c82ff8ce17056e644471c17
diff --git a/dev-python/objgraph/metadata.xml b/dev-python/objgraph/metadata.xml
new file mode 100644
index 00000000000..0641e64317e
--- /dev/null
+++ b/dev-python/objgraph/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>heroxbd@gentoo.org</email>
+ <name>Benda Xu</name>
+ </maintainer>
+ <longdescription>A module that lets you visually explore Python object graphs.</longdescription>
+ <upstream>
+ <remote-id type="pypi">objgraph</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/objgraph/objgraph-1.7.2.ebuild b/dev-python/objgraph/objgraph-1.7.2.ebuild
new file mode 100644
index 00000000000..717426727f1
--- /dev/null
+++ b/dev-python/objgraph/objgraph-1.7.2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Draws Python object reference graphs with graphviz"
+HOMEPAGE="http://mg.pov.lt/objgraph/"
+SRC_URI="mirror://pypi/o/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~amd64"
+SLOT="0"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND="media-gfx/graphviz"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/* )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/objgraph/objgraph-1.8.1.ebuild b/dev-python/objgraph/objgraph-1.8.1.ebuild
new file mode 100644
index 00000000000..d120aba9de8
--- /dev/null
+++ b/dev-python/objgraph/objgraph-1.8.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Draws Python object reference graphs with graphviz"
+HOMEPAGE="http://mg.pov.lt/objgraph/"
+SRC_URI="mirror://pypi/o/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~amd64"
+SLOT="0"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND="media-gfx/graphviz"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/* )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oct2py/Manifest b/dev-python/oct2py/Manifest
new file mode 100644
index 00000000000..14368942459
--- /dev/null
+++ b/dev-python/oct2py/Manifest
@@ -0,0 +1,2 @@
+DIST oct2py-0.4.0.tar.gz 107828 SHA256 f44da1ff41d8b21806976eaef500f1690c9c023bcd2be9a34d2dbbf26e442f00 SHA512 d62b6c7cc0f3a61e78cd4cd6a43d93a90f5d69187eb946847aa3f1df50edf6402ee845c51094696667afc29c284d6ef6e9af58d74b62ec177c2e4d18108c615e WHIRLPOOL 96da3725d4a53fa74791c219bd03d6adc49f11e47deb0ef864c86acc15f52145e303d4ac669667e79ef90dbb4af4cc7df298f16ebff7d5c20d02710c57c7738b
+DIST oct2py-1.3.0.tar.gz 321768 SHA256 f0cae7aae111631c0fffb7f2511ee14fb847b4f501340e8506b0805b50c32f28 SHA512 b9a8896fa463356a08dee7cd2db97bedd5487d93ed33fe73e2c5205118915eac86dcd51dea42dc7338a7f6486704d1c8cb3259c3d8a2b53230c50608d1d043d8 WHIRLPOOL f06214e8005281fec801856596f076a5ad0c35bc3bdc62db3057b320ac1ef8ab07a7f073c4e9ced62ce336c64e773128d333fd0bb26fb891ea6931b84ee22001
diff --git a/dev-python/oct2py/files/oct2py-1.3.0-test.patch b/dev-python/oct2py/files/oct2py-1.3.0-test.patch
new file mode 100644
index 00000000000..9bc22e09191
--- /dev/null
+++ b/dev-python/oct2py/files/oct2py-1.3.0-test.patch
@@ -0,0 +1,21 @@
+diff --git a/oct2py/ipython/tests/test_octavemagic.py b/oct2py/ipython/tests/test_octavemagic.py
+index b75d992..43c0a8b 100644
+--- a/oct2py/ipython/tests/test_octavemagic.py
++++ b/oct2py/ipython/tests/test_octavemagic.py
+@@ -1,5 +1,6 @@
+ """Tests for Octave magics extension."""
+
++import codecs
+ import unittest
+ import sys
+ from IPython.testing.globalipapp import get_ipython
+@@ -22,7 +23,8 @@ class OctaveMagicTest(unittest.TestCase):
+ IPython team's logic.
+ '''
+ if not sys.stdin.encoding:
+- sys.stdin.encoding = 'utf-8' # needed for py.test
++ # needed for py.test
++ sys.stdin = codecs.getreader('utf-8')(sys.stdin)
+ cls.ip = get_ipython()
+ # This is just to get a minimally modified version of the changes
+ # working
diff --git a/dev-python/oct2py/metadata.xml b/dev-python/oct2py/metadata.xml
new file mode 100644
index 00000000000..3afa342d8a4
--- /dev/null
+++ b/dev-python/oct2py/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-mathematics</herd>
+<longdescription lang="en">
+ Uses Octave to run commands and m-files. Supports any Octave
+ function or m-file, passing the data seamlessly between Python and
+ Octave using MAT files.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">oct2py</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/oct2py/oct2py-0.4.0-r1.ebuild b/dev-python/oct2py/oct2py-0.4.0-r1.ebuild
new file mode 100644
index 00000000000..ec8b85cd5d9
--- /dev/null
+++ b/dev-python/oct2py/oct2py-0.4.0-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python to GNU Octave bridge"
+HOMEPAGE="http://pypi.python.org/pypi/oct2py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ sci-mathematics/octave"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build doc html || die
+ fi
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/${PF}/
+ doins -r example
+ fi
+}
diff --git a/dev-python/oct2py/oct2py-1.3.0-r1.ebuild b/dev-python/oct2py/oct2py-1.3.0-r1.ebuild
new file mode 100644
index 00000000000..953032de352
--- /dev/null
+++ b/dev-python/oct2py/oct2py-1.3.0-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python to GNU Octave bridge"
+HOMEPAGE="http://pypi.python.org/pypi/oct2py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ sci-mathematics/octave"
+DEPEND="${RDEPEND}
+ doc? (
+ dev-python/sphinx-bootstrap-theme[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${P}-test.patch"
+ )
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build docs html || die
+ fi
+}
+
+python_test() {
+ unset DISPLAY
+ if [[ ${EPYTHON} == python2.7 ]]; then
+ local OPTIONS="--with-doctest"
+ fi
+ nosetests oct2py ${OPTIONS} || die "Tests fail with ${EPYTHON}"
+ iptest -v IPython.extensions.tests.test_octavemagic || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r example
+ fi
+}
diff --git a/dev-python/oct2py/oct2py-1.3.0.ebuild b/dev-python/oct2py/oct2py-1.3.0.ebuild
new file mode 100644
index 00000000000..b4a4a026dc6
--- /dev/null
+++ b/dev-python/oct2py/oct2py-1.3.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python to GNU Octave bridge"
+HOMEPAGE="http://pypi.python.org/pypi/oct2py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ sci-mathematics/octave"
+DEPEND="${RDEPEND}
+ doc? (
+ dev-python/sphinx-bootstrap-theme[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build docs html || die
+ fi
+}
+
+python_test() {
+ nosetests oct2py --with-doctest || die "Tests fail with ${EPYTHON}"
+ iptest -v IPython.extensions.tests.test_octavemagic || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r example
+ fi
+}
diff --git a/dev-python/odfpy/Manifest b/dev-python/odfpy/Manifest
new file mode 100644
index 00000000000..a4c901be8c9
--- /dev/null
+++ b/dev-python/odfpy/Manifest
@@ -0,0 +1,2 @@
+DIST odfpy-0.9.6.tar.gz 452061 SHA256 907f62853858913bc3d5b00e4be4f4e5d56ab3f0d51125a54e949824b560f0bf SHA512 6e49e956426695984d634c2409129741b84d093886fe8012dc17196e20abff77bb486c986e497b0f35642ad0de60a8bbf3cf07352d85ea509cab7da9f3fa470b WHIRLPOOL 11625e99a500eb9e6c13b1c1cb19486689accbb2f8dc6f93a858496ba5f60a1513a89302bce24c1603ef0d46a17bca1126a40c4532f9fafb2cab3b0263c1acd8
+DIST odfpy-1.3.1.tar.gz 469339 SHA256 0292500fbe716fd261bfef71ddf231fd9bc913d2b0a1ced91a2488bdf3c9fcea SHA512 a730e3763069d91ec5f613e6222efbb46cbc32c6ddf962f574b86f6dbaa728491ec3f1ca6707f5d5227bb5968cd6f75a66f40576372ea72b794886f219c46ab1 WHIRLPOOL 843f311e50a9a4575f2d929baee65610e723a90b9af09ea1c52f22770a87fa3e8f71c35c94d248fc2372b9a0128a802f1ae54dba6638f411c9ff0a3de83b1cef
diff --git a/dev-python/odfpy/files/odfpy-0.9.4-tests.patch b/dev-python/odfpy/files/odfpy-0.9.4-tests.patch
new file mode 100644
index 00000000000..1c0be00af5a
--- /dev/null
+++ b/dev-python/odfpy/files/odfpy-0.9.4-tests.patch
@@ -0,0 +1,32 @@
+--- tests/testxmlgen.py
++++ tests/testxmlgen.py
+@@ -20,6 +20,7 @@
+
+ import xml.sax, xml.sax.saxutils
+ import StringIO
++import sys
+ import unittest
+
+ class MyGen(xml.sax.saxutils.XMLGenerator):
+@@ -70,14 +71,16 @@
+ <a:greetings xmlns:a="http://example.com/ns">
+ <a:greet xml:lang="en">Hello world</a:greet>
+ </a:greetings>"""
+- parser.feed(testcontent)
+- parser.close()
+- expectedresult="""<?xml version="1.0" encoding="utf-8"?>
++ if sys.version_info < (2, 7):
++ self.assertRaises(KeyError, parser.feed, testcontent)
++ else:
++ parser.feed(testcontent)
++ parser.close()
++ expectedresult="""<?xml version="1.0" encoding="utf-8"?>
+ <a:greetings xmlns:a="http://example.com/ns">
+ <a:greet xml:lang="en">Hello world</a:greet>
+ </a:greetings>"""
+- self.assertEqual( outfp.getvalue(), expectedresult)
+-# self.assertRaises(KeyError, parser.feed, testcontent)
++ self.assertEqual( outfp.getvalue(), expectedresult)
+
+ def test_myxml(self):
+ """ Test that my patch works """
diff --git a/dev-python/odfpy/metadata.xml b/dev-python/odfpy/metadata.xml
new file mode 100644
index 00000000000..70933e33efc
--- /dev/null
+++ b/dev-python/odfpy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">odfpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/odfpy/odfpy-0.9.6-r1.ebuild b/dev-python/odfpy/odfpy-0.9.6-r1.ebuild
new file mode 100644
index 00000000000..a599cc03b7e
--- /dev/null
+++ b/dev-python/odfpy/odfpy-0.9.6-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python API and tools to manipulate OpenDocument files"
+HOMEPAGE="https://joinup.ec.europa.eu/software/odfpy/home http://pypi.python.org/pypi/odfpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}/${PN}-0.9.4-tests.patch" )
+
+python_test() {
+ local exit_status=0 test
+ for test in tests/test*.py; do
+ einfo "Running ${test} ..."
+ "${PYTHON}" "${test}"
+ [[ $? -ne 0 ]] && exit_status=1
+ done
+ return ${exit_status}
+}
diff --git a/dev-python/odfpy/odfpy-1.3.1.ebuild b/dev-python/odfpy/odfpy-1.3.1.ebuild
new file mode 100644
index 00000000000..042a082f014
--- /dev/null
+++ b/dev-python/odfpy/odfpy-1.3.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+# Classifier: Programming Language :: Python :: 2 :: Only
+# py3 fails one test, pypy anpother.
+# Notes on page of home repo reports support of python3.
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python API and tools to manipulate OpenDocument files"
+HOMEPAGE="https://joinup.ec.europa.eu/software/odfpy/home http://pypi.python.org/pypi/odfpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+# Tarball missing required folder to build docs in html.
+
+python_test() {
+ # Known single fail under python3 suspected to be caused in python3 itself
+ # https://github.com/eea/odfpy/issues/21
+
+ local exit_status=0 test
+ for test in tests/test*.py; do
+ einfo "Running ${test} ..."
+ "${PYTHON}" ${test}
+ [[ $? -ne 0 ]] && exit_status=1
+ done
+ return ${exit_status}
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/odo/Manifest b/dev-python/odo/Manifest
new file mode 100644
index 00000000000..2223c0fcda6
--- /dev/null
+++ b/dev-python/odo/Manifest
@@ -0,0 +1,2 @@
+DIST odo-0.3.2.zip 142291 SHA256 515365ec8b67c7c73303391b8f12107be6a8f4ab983352f548dcb32f8eb175e5 SHA512 c2a0dc2f62225bb394fc5f01476a9159310c798f7ea115ccf6e292d99c666509a0e6ef10c50c47c491ffdc805046152a9d75f90940153fbba4382426a07354b7 WHIRLPOOL 74ee63848e20b8936d6608f240c449bf3d81916bf40be51723fd7f519139474fa74f477bc3e835c9988e8926e12510a5e234817291240a1ae4aeefbb0a8c0cb3
+DIST odo-0.3.3.tar.gz 109748 SHA256 2499ee86c26c74daa28f21ed235ca331911065950deea5169ebdb7d5dae6ebef SHA512 7c470ea5a24ab5ccc3e72d1cbb4dcd2d370bb5de6ee5d8f1dafb8215db057f920d61470dbba02e5510ee5700fe86f2ae842bbc2bbbedf20e801789998b9c714e WHIRLPOOL 8c5329310a33d890452de8d9156f207ab294b26a68722719f375f2da4bef8fd23b47aee883c4a5c79e0f39cc30eb5eaab544e3f02c34b24062c6c2c2bfc146c3
diff --git a/dev-python/odo/metadata.xml b/dev-python/odo/metadata.xml
new file mode 100644
index 00000000000..bbfce266d3f
--- /dev/null
+++ b/dev-python/odo/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">odo</remote-id>
+ <remote-id type="github">ContinuumIO/odo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/odo/odo-0.3.2.ebuild b/dev-python/odo/odo-0.3.2.ebuild
new file mode 100644
index 00000000000..e17aee79bd0
--- /dev/null
+++ b/dev-python/odo/odo-0.3.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Data migration in python"
+HOMEPAGE="https://github.com/ContinuumIO/odo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="app-arch/unzip
+ doc? ( dev-python/docutils )"
+RDEPEND=">=dev-python/datashape-0.4.4[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.15.0[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ >=dev-python/multipledispatch-0.4.7[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ "
+
+python_prepare_all() {
+ sed -e '/.. toctree::/d' -i docs/source/index.rst|| die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ pushd docs/source > /dev/null
+ mkdir ../build || die
+ local i;
+ for i in ./*
+ do
+ rst2html.py $i > ../build/${i/rst/html} || die
+ done
+ popd > /dev/null
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/odo/odo-0.3.3.ebuild b/dev-python/odo/odo-0.3.3.ebuild
new file mode 100644
index 00000000000..dd0574d8ff8
--- /dev/null
+++ b/dev-python/odo/odo-0.3.3.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Data migration in python"
+HOMEPAGE="https://github.com/ContinuumIO/odo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="app-arch/unzip
+ doc? ( dev-python/docutils )"
+RDEPEND=">=dev-python/datashape-0.4.4[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.15.0[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ >=dev-python/multipledispatch-0.4.7[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ "
+
+python_prepare_all() {
+ sed -e '/.. toctree::/d' -i docs/source/index.rst|| die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ pushd docs/source > /dev/null
+ mkdir ../build || die
+ local i;
+ for i in ./*
+ do
+ rst2html.py $i > ../build/${i/rst/html} || die
+ done
+ popd > /dev/null
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oosuite/Manifest b/dev-python/oosuite/Manifest
new file mode 100644
index 00000000000..2505fe44fe1
--- /dev/null
+++ b/dev-python/oosuite/Manifest
@@ -0,0 +1,2 @@
+DIST OOSuite-0.45.zip 520692 SHA256 62bae3f45d256c63858f5acb4caeffd1c93d0b8748a2cdfed8ac9323258eb6fe SHA512 9908da3fd5919a18770f45ff1e995d8345e3dca22b90aa4cec439485d261e482633e481fb1f57aa6e1da43505da3a009ad97aa9a306171eb885dd7ee19f48c74 WHIRLPOOL 1674fe4d0bd5df81724d40d6b2b9947315c116c242e5699d91fe3c72cec4b8333db1b3c28e394fe1fca9243e8a1478a36aaa96c715f716ca1e195669df0431b5
+DIST OOSuite-0.50.zip 529690 SHA256 64954e7f22fb8218d24d0c479671dcf53442896c2dcacd50dae27ea9510f9c59 SHA512 b8dcdb750bd623050702c40e221f681a1b226975532dfe9b2e8d9b4cda7948612782c049ea46f582bf38a99e7b746e0d20afba5693f7ab36f8288cec7c44a7d2 WHIRLPOOL 5a4be22c24274b94d0259ffe48fa8156733ad5e814b1783cb4db10f9c9f424d3600b3c43595fc915e59d374105f89756b9b9d71d03bad3cfd3353a67bc672c52
diff --git a/dev-python/oosuite/metadata.xml b/dev-python/oosuite/metadata.xml
new file mode 100644
index 00000000000..0db43e9d552
--- /dev/null
+++ b/dev-python/oosuite/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-mathematics</herd>
+<longdescription lang='en'>
+ The OpenOpt suite of Python packages contains the following modules:
+ * openopt: universal numerical optimization package with
+ several solvers (e.g. ralg) and connections to tens of other,
+ graphical output of convergence.
+ * FuncDesigner: tool to rapidly build functions over
+ variables/arrays and get their dense/sparse derivatives via
+ automatic differentiation, integration (with specifiable accuracy by
+ interalg), interpolation, uncertainty analysis and interval
+ analysis, eigenvalue analysis, solve systems of linear/nonlinear/ODE
+ equations and numerical optimization problems coded in FuncDesigner
+ by OpenOpt.
+ * DerApproximator: tool to get (or check user-supplied) derivatives
+ via finite-difference approximation
+ * SpaceFuncs: tool for 2D, 3D, N-dimensional geometric modeling with
+ possibilities of parametrized calculations, numerical optimization
+ and solving systems of geometrical equations.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/oosuite/oosuite-0.45.ebuild b/dev-python/oosuite/oosuite-0.45.ebuild
new file mode 100644
index 00000000000..832d3896d46
--- /dev/null
+++ b/dev-python/oosuite/oosuite-0.45.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils
+
+MYPN="OOSuite"
+MYPID="f/f3"
+
+DESCRIPTION="OpenOpt suite of Python modules for numerical optimization"
+HOMEPAGE="http://openopt.org/"
+SRC_URI="http://openopt.org/images/${MYPID}/${MYPN}.zip -> ${MYPN}-${PV}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples minimal tk"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ !minimal? (
+ dev-python/cvxopt[glpk,${PYTHON_USEDEP}]
+ dev-python/lp_solve[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/setproctitle[${PYTHON_USEDEP}]
+ sci-libs/nlopt[python]
+ sci-libs/scipy[${PYTHON_USEDEP}] )"
+DEPEND="
+ app-arch/unzip
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/PythonPackages"
+
+OO_DIRS="DerApproximator FuncDesigner OpenOpt SpaceFuncs"
+
+python_prepare() {
+ # reorganize SpaceFuncs
+ pushd SpaceFuncs > /dev/null
+ mkdir SpaceFuncs
+ cp __version__.py SpaceFuncs || die
+ mv SpaceFuncs.py __init__.py kernel SpaceFuncs || die
+ popd > /dev/null
+ local d
+ for d in ${OO_DIRS}; do
+ pushd ${d} > /dev/null
+ find . -name "*COPYING*" -delete
+ find . -type d -name examples -or -name tests -or -name doc \
+ -exec rm -r '{}' +
+ distutils-r1_python_prepare
+ popd > /dev/null
+ done
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # move all examples and tests to ease installation in proper directory
+ mkdir "${WORKDIR}/examples"
+ local d e
+ for d in ${OO_DIRS}; do
+ mkdir "${WORKDIR}/examples/${d}" || die
+ for e in $(find ${d} -type d -name examples -or -name tests -or -name doc); do
+ mv ${e} "${WORKDIR}/examples/${d}/" || die
+ done
+ done
+}
+
+python_compile() {
+ local d
+ for d in ${OO_DIRS}; do
+ pushd ${d} > /dev/null
+ distutils-r1_python_compile
+ popd > /dev/null
+ done
+}
+
+python_test() {
+ local d t oldpath=${PYTHONPATH}
+ for d in ${OO_DIRS}; do
+ PYTHONPATH="${BUILD_DIR}/${d}/build/lib:${PYTHONPATH}"
+ done
+ export PYTHONPATH
+ cd "${WORKDIR}"/examples
+ # limit the tests, other need more dependencies
+ for t in \
+ DerApproximator/tests/t_check.py \
+ FuncDesigner/examples/sle1.py \
+ OpenOpt/examples/nlp_1.py \
+ SpaceFuncs/examples/triangle.py
+ do
+ "${PYTHON}" ${t} || die "test ${t} failed"
+ done
+ export PYTHONPATH=${oldpath}
+}
+
+python_install() {
+ local d
+ for d in ${OO_DIRS}; do
+ pushd ${d} > /dev/null
+ distutils-r1_python_install
+ popd > /dev/null
+ done
+ use examples && EXAMPLES="${WORKDIR}"/examples
+}
diff --git a/dev-python/oosuite/oosuite-0.50.ebuild b/dev-python/oosuite/oosuite-0.50.ebuild
new file mode 100644
index 00000000000..832d3896d46
--- /dev/null
+++ b/dev-python/oosuite/oosuite-0.50.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils
+
+MYPN="OOSuite"
+MYPID="f/f3"
+
+DESCRIPTION="OpenOpt suite of Python modules for numerical optimization"
+HOMEPAGE="http://openopt.org/"
+SRC_URI="http://openopt.org/images/${MYPID}/${MYPN}.zip -> ${MYPN}-${PV}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples minimal tk"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ !minimal? (
+ dev-python/cvxopt[glpk,${PYTHON_USEDEP}]
+ dev-python/lp_solve[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/setproctitle[${PYTHON_USEDEP}]
+ sci-libs/nlopt[python]
+ sci-libs/scipy[${PYTHON_USEDEP}] )"
+DEPEND="
+ app-arch/unzip
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/PythonPackages"
+
+OO_DIRS="DerApproximator FuncDesigner OpenOpt SpaceFuncs"
+
+python_prepare() {
+ # reorganize SpaceFuncs
+ pushd SpaceFuncs > /dev/null
+ mkdir SpaceFuncs
+ cp __version__.py SpaceFuncs || die
+ mv SpaceFuncs.py __init__.py kernel SpaceFuncs || die
+ popd > /dev/null
+ local d
+ for d in ${OO_DIRS}; do
+ pushd ${d} > /dev/null
+ find . -name "*COPYING*" -delete
+ find . -type d -name examples -or -name tests -or -name doc \
+ -exec rm -r '{}' +
+ distutils-r1_python_prepare
+ popd > /dev/null
+ done
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # move all examples and tests to ease installation in proper directory
+ mkdir "${WORKDIR}/examples"
+ local d e
+ for d in ${OO_DIRS}; do
+ mkdir "${WORKDIR}/examples/${d}" || die
+ for e in $(find ${d} -type d -name examples -or -name tests -or -name doc); do
+ mv ${e} "${WORKDIR}/examples/${d}/" || die
+ done
+ done
+}
+
+python_compile() {
+ local d
+ for d in ${OO_DIRS}; do
+ pushd ${d} > /dev/null
+ distutils-r1_python_compile
+ popd > /dev/null
+ done
+}
+
+python_test() {
+ local d t oldpath=${PYTHONPATH}
+ for d in ${OO_DIRS}; do
+ PYTHONPATH="${BUILD_DIR}/${d}/build/lib:${PYTHONPATH}"
+ done
+ export PYTHONPATH
+ cd "${WORKDIR}"/examples
+ # limit the tests, other need more dependencies
+ for t in \
+ DerApproximator/tests/t_check.py \
+ FuncDesigner/examples/sle1.py \
+ OpenOpt/examples/nlp_1.py \
+ SpaceFuncs/examples/triangle.py
+ do
+ "${PYTHON}" ${t} || die "test ${t} failed"
+ done
+ export PYTHONPATH=${oldpath}
+}
+
+python_install() {
+ local d
+ for d in ${OO_DIRS}; do
+ pushd ${d} > /dev/null
+ distutils-r1_python_install
+ popd > /dev/null
+ done
+ use examples && EXAMPLES="${WORKDIR}"/examples
+}
diff --git a/dev-python/openpyxl/Manifest b/dev-python/openpyxl/Manifest
new file mode 100644
index 00000000000..2a5ba45da9f
--- /dev/null
+++ b/dev-python/openpyxl/Manifest
@@ -0,0 +1,3 @@
+DIST openpyxl-2.1.0.tar.bz2 5286312 SHA256 60b64a18ccec5b4850c9b41cc8481c6dba3227926469b98d78279bc016eeabb0 SHA512 e537d1b2e1caae3932fde38295865609a4b1f9607378f5223bdfa8d219671331729453eb20092f7583ee3663200e40e8e3bd6a38119096c731d60d7efe2893dd WHIRLPOOL 0ba8228b4b942ef39136efb5d19695d5d619c3e3e77ad8ca402d2f933435e70c4b83adcdd400d36a491bfaa334644bee0668e823c420df5d199cabbf035cf948
+DIST openpyxl-2.2.3.tar.gz 108576 SHA256 7d46b38960bae1e912eb8161bb4e040d2611f295126703a18865b65c49a49a7c SHA512 aac0fac10611f15b4b006b4c6ca6fd7c854d3c7bc8203fcfcb932898cf599a809f14ee21f42f263bc75cc98b907fcb7dd5953c328aa0a5adeb2c7e5556de5aba WHIRLPOOL ca98df2cc6c5985c1d12c7493403aa6cabe02192d91d1dfadb73e8823eaf94661738afc6cd1e28b4183b34f123e0fcaab4472748de8724abc79683f0119be7f9
+DIST openpyxl-2.2.4.tar.gz 108810 SHA256 bd1b795ffc928f8c3f64fc0182e087a5f9afe7df94c78335a8d12eed872d182a SHA512 b33832bf194ef80cb5ce8dc4ee06f5c2f372fcd1074f7a4b0fea94c9528d17a80bfc83bb2a20e40118bd2250d63ade1a772bbc20533b9355472284a186ebe977 WHIRLPOOL 4a799125391a587a027e936a60f3853440ffe754e1078b6e95b3d7077ff89f0b308fd7e431561fdc7bb8707a17cbf39088ef88395e101dd578bcdcf568e9e6e4
diff --git a/dev-python/openpyxl/metadata.xml b/dev-python/openpyxl/metadata.xml
new file mode 100644
index 00000000000..22dd4e4633f
--- /dev/null
+++ b/dev-python/openpyxl/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ Openpyxl is a pure Python module to read/write Excel 2007 (OpenXML)
+ xlsx/xlsm files.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">openpyxl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/openpyxl/openpyxl-2.1.0.ebuild b/dev-python/openpyxl/openpyxl-2.1.0.ebuild
new file mode 100644
index 00000000000..a2dfde0a1af
--- /dev/null
+++ b/dev-python/openpyxl/openpyxl-2.1.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Pure python reader and writer of Excel OpenXML files"
+HOMEPAGE="http://openpyxl.readthedocs.org"
+SRC_URI="https://bitbucket.org/ericgazoni/openpyxl-328/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/jdcal[${PYTHON_USEDEP}]"
+DEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all(){
+ sed -e "s: 'sphinx.ext.intersphinx',::" \
+ -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/openpyxl/openpyxl-2.2.3.ebuild b/dev-python/openpyxl/openpyxl-2.2.3.ebuild
new file mode 100644
index 00000000000..edadb7cde1c
--- /dev/null
+++ b/dev-python/openpyxl/openpyxl-2.2.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Pure python reader and writer of Excel OpenXML files"
+HOMEPAGE="http://openpyxl.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/jdcal[${PYTHON_USEDEP}]"
+DEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )"
+
+# tests aren't contained in tarball
+RESTRICT="test"
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/openpyxl/openpyxl-2.2.4.ebuild b/dev-python/openpyxl/openpyxl-2.2.4.ebuild
new file mode 100644
index 00000000000..b61d84c3082
--- /dev/null
+++ b/dev-python/openpyxl/openpyxl-2.2.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Pure python reader and writer of Excel OpenXML files"
+HOMEPAGE="http://openpyxl.readthedocs.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/jdcal[${PYTHON_USEDEP}]"
+DEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )"
+
+# tests aren't contained in tarball
+RESTRICT="test"
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/openpyxl/openpyxl-9999.ebuild b/dev-python/openpyxl/openpyxl-9999.ebuild
new file mode 100644
index 00000000000..7c2ec5391c9
--- /dev/null
+++ b/dev-python/openpyxl/openpyxl-9999.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 mercurial
+
+DESCRIPTION="Pure python reader and writer of Excel OpenXML files"
+HOMEPAGE="http://openpyxl.readthedocs.org"
+SRC_URI=""
+EHG_REPO_URI="https://bitbucket.org/openpyxl/openpyxl"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND="dev-python/jdcal[${PYTHON_USEDEP}]"
+DEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/openstack-nose-plugin/Manifest b/dev-python/openstack-nose-plugin/Manifest
new file mode 100644
index 00000000000..cac28f7f21c
--- /dev/null
+++ b/dev-python/openstack-nose-plugin/Manifest
@@ -0,0 +1 @@
+DIST openstack.nose_plugin-0.11.tar.gz 4120 SHA256 a28d44dc23de8164d7893da7020404c73c4325b46d5507911f0257c15f613b4f SHA512 25139ebd3229cb5e07e296848d5a0bff090bec9b3ba618fe3a4278bdc9b2f7f0eced887285e9e3836b555afcbd74f061ec90a8a63d5c1fdfc53b7aea48a102a2 WHIRLPOOL d102ef5622404f77022f8cf1c04ac6b47b6a735a2e39523681589e92c1579824667fb5a863dd4cd6ac88e0d8915aad7c7aa85b18321d017ed281b6ce80528e05
diff --git a/dev-python/openstack-nose-plugin/metadata.xml b/dev-python/openstack-nose-plugin/metadata.xml
new file mode 100644
index 00000000000..2187f9b909e
--- /dev/null
+++ b/dev-python/openstack-nose-plugin/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ openstack.nose_plugin provides a nose plugin that allow's nosetests output
+ to mimic the output of openstack's run_tests.py.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">openstack.nose_plugin</remote-id>
+ <remote-id type="github">openstack-dev/openstack-nose</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/openstack-nose-plugin/openstack-nose-plugin-0.11-r2.ebuild b/dev-python/openstack-nose-plugin/openstack-nose-plugin-0.11-r2.ebuild
new file mode 100644
index 00000000000..a8ad26fe7fe
--- /dev/null
+++ b/dev-python/openstack-nose-plugin/openstack-nose-plugin-0.11-r2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="openstack run_tests.py style output for nosetests"
+HOMEPAGE="https://github.com/openstack-dev/openstack-nose"
+MY_PN="openstack.nose_plugin"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/termcolor[${PYTHON_USEDEP}]"
diff --git a/dev-python/optcomplete/Manifest b/dev-python/optcomplete/Manifest
new file mode 100644
index 00000000000..40d04bca83c
--- /dev/null
+++ b/dev-python/optcomplete/Manifest
@@ -0,0 +1 @@
+DIST optcomplete-1.2.tar.bz2 15358 SHA256 628481e3908d1f78faae34380b1873cecb3027ce40a18f94a98a2fe8de11e71a SHA512 2b2a902755eae0da0d362e6c504bd007fd13309ac515e6b68d6b2d177648645b7bd9c73d172c5eb2d0473caf261d8d60583a8f83779c901d50c304c03811e7ea WHIRLPOOL 7e1e57958afc9b514c781f47f06dc629bb294ccd48c0f8a936636df11b4b4f51829d29dac71340e254efb5b2b5b520f68cccbc76ef0a2e2d4fec8eabe46e6fd7
diff --git a/dev-python/optcomplete/metadata.xml b/dev-python/optcomplete/metadata.xml
new file mode 100644
index 00000000000..7685e730d33
--- /dev/null
+++ b/dev-python/optcomplete/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ This Python module aims at providing almost automatically shell completion
+ for any Python program that already uses the optparse module.
+
+ This module aims at placing the shell completion routine and the option
+ parsing code in a single location: in the program itself.
+
+ The logic is that since a program already knows about its options, and in
+ Python we have a standard module to specify them programmatically since
+ Python-2.3 (optparse), the program itself is in the best position to suggest
+ completions for an incomplete command-line to a shell that invokes it.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/optcomplete/optcomplete-1.2-r1.ebuild b/dev-python/optcomplete/optcomplete-1.2-r1.ebuild
new file mode 100644
index 00000000000..cae27380d2f
--- /dev/null
+++ b/dev-python/optcomplete/optcomplete-1.2-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Shell completion self-generator for Python"
+HOMEPAGE="http://furius.ca/optcomplete/ http://pypi.python.org/pypi/optcomplete"
+SRC_URI="http://furius.ca/downloads/${PN}/releases/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~x86-linux"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+python_install_all() {
+ use examples && local EXAMPLES=( bin/. )
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ordereddict/Manifest b/dev-python/ordereddict/Manifest
new file mode 100644
index 00000000000..c0972ec575a
--- /dev/null
+++ b/dev-python/ordereddict/Manifest
@@ -0,0 +1 @@
+DIST ordereddict-1.1.tar.gz 2114 SHA256 1c35b4ac206cef2d24816c89f89cf289dd3d38cf7c449bb3fab7bf6d43f01b1f SHA512 20b2beb1ee6309885b2d702c04d21e683fae3061f19176aceae381688be0fed5b2fbf55a1ff901460e93bf14c83169d2b7a286e3725b008583711134656d86e5 WHIRLPOOL 228d1a6a1926d7c1decc892c53d6260e78af0a32fcee2e04ce46a828648a2fcba16ba637b78cd30f903224baadb1ad78b232d0b8f7d68d0bc8c10daebb8ed86c
diff --git a/dev-python/ordereddict/metadata.xml b/dev-python/ordereddict/metadata.xml
new file mode 100644
index 00000000000..4c42f6a05cf
--- /dev/null
+++ b/dev-python/ordereddict/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">ordereddict</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ordereddict/ordereddict-1.1.ebuild b/dev-python/ordereddict/ordereddict-1.1.ebuild
new file mode 100644
index 00000000000..1d145cb8bc1
--- /dev/null
+++ b/dev-python/ordereddict/ordereddict-1.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A drop-in substitute for Py2.7's new collections.OrderedDict that
+works in Python 2.4-2.6."
+HOMEPAGE="https://pypi.python.org/pypi/ordereddict"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND=""
diff --git a/dev-python/os-diskconfig-python-novaclient-ext/Manifest b/dev-python/os-diskconfig-python-novaclient-ext/Manifest
new file mode 100644
index 00000000000..b7e1d9510b2
--- /dev/null
+++ b/dev-python/os-diskconfig-python-novaclient-ext/Manifest
@@ -0,0 +1,2 @@
+DIST os_diskconfig_python_novaclient_ext-0.1.1.tar.gz 2013 SHA256 1edcb7b39070b773f5d3cef015906dfd257e80e7116bf613770e748ed469f1ca SHA512 0b71de275c1909455909c3e1c4b2a09f69ddfa3970e79ef0e77783b61737997e470038970dd1e1eea22d2a7f3ee1cbf899dcdc0672f8d0f220ce68c4a6e629b2 WHIRLPOOL a573e9949e49ef6fec509e8e75f366b5ec1a502b98437b4464784ad017153499731e930468011aecdc61104c966c5c226bee7d42ef9910e3638b2fb9f09d8c5c
+DIST os_diskconfig_python_novaclient_ext-0.1.2.tar.gz 2513 SHA256 78076a7b05afb8842734329f306bd69e64af6af910a3bc973fcf023723b8d7fc SHA512 f89a37962c309c6b292a4d6e3057e4dadf8934cbbe1ee5e12cc66e0ddb5f62bdd1c6d63e82b686dd3b9f508819600d7be14eeb4d17fb6698cb4af90462c36b60 WHIRLPOOL af101273148d49149e1ca604589c97e5d170328349090b2ef358a927abca541a3dfe2c354edaecc879f1c58af67459bc77b86436edb1d186408b99db116bb447
diff --git a/dev-python/os-diskconfig-python-novaclient-ext/metadata.xml b/dev-python/os-diskconfig-python-novaclient-ext/metadata.xml
new file mode 100644
index 00000000000..4369f0dc28f
--- /dev/null
+++ b/dev-python/os-diskconfig-python-novaclient-ext/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Disk Config extension for python-novaclient
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">os_diskconfig_python_novaclient_ext</remote-id>
+ <remote-id type="github">rackspace/os_diskconfig_python_novaclient_ext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1-r1.ebuild b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1-r1.ebuild
new file mode 100644
index 00000000000..4816f5f0eb3
--- /dev/null
+++ b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/os_diskconfig_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_diskconfig_python_novaclient_ext/os_diskconfig_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_diskconfig_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1.ebuild b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1.ebuild
new file mode 100644
index 00000000000..22b952a65b9
--- /dev/null
+++ b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/os_diskconfig_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_diskconfig_python_novaclient_ext/os_diskconfig_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_diskconfig_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.2.ebuild b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.2.ebuild
new file mode 100644
index 00000000000..4816f5f0eb3
--- /dev/null
+++ b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-0.1.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/os_diskconfig_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_diskconfig_python_novaclient_ext/os_diskconfig_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_diskconfig_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-9999.ebuild b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-9999.ebuild
new file mode 100644
index 00000000000..17718b77ea5
--- /dev/null
+++ b/dev-python/os-diskconfig-python-novaclient-ext/os-diskconfig-python-novaclient-ext-9999.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 git-2
+
+EGIT_REPO_URI="git://github.com/rackspace/os_diskconfig_python_novaclient_ext.git
+ https://github.com/rackspace/os_diskconfig_python_novaclient_ext.git"
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/os_diskconfig_python_novaclient_ext"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS=""
+
+S="${WORKDIR}/os_diskconfig_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-networksv2-python-novaclient-ext/Manifest b/dev-python/os-networksv2-python-novaclient-ext/Manifest
new file mode 100644
index 00000000000..53a06834e88
--- /dev/null
+++ b/dev-python/os-networksv2-python-novaclient-ext/Manifest
@@ -0,0 +1,2 @@
+DIST os_networksv2_python_novaclient_ext-0.21.tar.gz 2171 SHA256 2598aaaf19a6897be8427a402bb10b772178ed3c8922d9d955fa411ed8ec11a8 SHA512 077549d05addcdaedf9ea07f3fd15cc35f0282602cd46406666ce3a395ce5ca00f48fe70ac64269998bcf661f3e220115ed497abf0d78688f0d9d8a78297db0c WHIRLPOOL fee01e4c71ef57e02efe0ba216b00cf22be3b637515eccf87e7fbccc84a1622926cb2445c520d6faaafe83dfc0955bac6bd13edef7c091d1b19762c8738e0c83
+DIST os_networksv2_python_novaclient_ext-0.25.tar.gz 2363 SHA256 35ba71b027daf4c407d7a2fd94604d0437eea0c1de4d8d5d0f8ab69100834a0f SHA512 ad380001bd03506d0e7f5033f660f445930f1d2ac11d2a66122d2c7c69fdd888ec6408a6f191eb4310725afe7b69f64c9d5abc5c561ad91e41b5676b7e651807 WHIRLPOOL 625025941026ce5b05dc53a66515429b3dd178c634b09580f8ed095a2b8b63f384a309d9a6feb11efb43a9eeec86efa8fcb28ee5747deb137ecf6153aba66584
diff --git a/dev-python/os-networksv2-python-novaclient-ext/metadata.xml b/dev-python/os-networksv2-python-novaclient-ext/metadata.xml
new file mode 100644
index 00000000000..9991ef9522a
--- /dev/null
+++ b/dev-python/os-networksv2-python-novaclient-ext/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Adds network extension support to python-novaclient
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">os_networksv2_python_novaclient_ext</remote-id>
+ <remote-id type="github">rackspace/os_networksv2_python_novaclient_ext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21-r1.ebuild b/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21-r1.ebuild
new file mode 100644
index 00000000000..435f713bbee
--- /dev/null
+++ b/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds network extension support to python-novaclient"
+HOMEPAGE="https://github.com/rackspace/os_networksv2_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_networksv2_python_novaclient_ext/os_networksv2_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_networksv2_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21.ebuild b/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21.ebuild
new file mode 100644
index 00000000000..b80623e0299
--- /dev/null
+++ b/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.21.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds network extension support to python-novaclient"
+HOMEPAGE="https://github.com/rackspace/os_networksv2_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_networksv2_python_novaclient_ext/os_networksv2_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_networksv2_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.25.ebuild b/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.25.ebuild
new file mode 100644
index 00000000000..db5c30019ce
--- /dev/null
+++ b/dev-python/os-networksv2-python-novaclient-ext/os-networksv2-python-novaclient-ext-0.25.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds network extension support to python-novaclient"
+HOMEPAGE="https://github.com/rackspace/os_networksv2_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_networksv2_python_novaclient_ext/os_networksv2_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_networksv2_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.20.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-virtual-interfacesv2-python-novaclient-ext/Manifest b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/Manifest
new file mode 100644
index 00000000000..a742e585f17
--- /dev/null
+++ b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/Manifest
@@ -0,0 +1,2 @@
+DIST os_virtual_interfacesv2_python_novaclient_ext-0.15.tar.gz 2566 SHA256 7d6c1371750568efc0f8a02e2b8d18fa885b9289ed25228252a2a6a5f0e53480 SHA512 bf774de1563f9149a538033518e0c9c2b994518ccaa96ae39b7ad4cf2572e0d78b8588b53e71594dd1a0d9f445b72b353bc0588849723c0562161a27ae8efa7a WHIRLPOOL 23c302ebefb88459507ff76315b2df5e9d36aeda886cf2695d93d68c49409468ebbf02fd15db19441a9e053e9c7dc9083567a5374e89e33583494fbcd1b5c9ab
+DIST os_virtual_interfacesv2_python_novaclient_ext-0.19.tar.gz 2675 SHA256 5171370e5cea447019cee5da22102b7eca4d4a7fb3f12875e2d7658d98462c0a SHA512 74ad8e6e3988a90741974491d7ff92c4e614dfd3bb78355c058c4cb6af15b8acfc5a8be15fe9143561fe75bd0645fd935e64dba4dff27dbee7656c963e76e042 WHIRLPOOL 8104c0cd4ff28b51be08f8bcad31564bce8aee3b7a391d9338f87b46d8a47711b72b1ac21522e0027b03c3279b455a81928977f2fec6de34d431f396bdfe2987
diff --git a/dev-python/os-virtual-interfacesv2-python-novaclient-ext/metadata.xml b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/metadata.xml
new file mode 100644
index 00000000000..4e679560300
--- /dev/null
+++ b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Adds Virtual Interfaces support to python-novaclient
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">os_virtual_interfacesv2_python_novaclient_ext</remote-id>
+ <remote-id type="github">cerberus98/os_virtual_interfacesv2_ext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.15.ebuild b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.15.ebuild
new file mode 100644
index 00000000000..6a5a48b3c52
--- /dev/null
+++ b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.15.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds Virtual Interfaces support to python-novaclient"
+HOMEPAGE="https://github.com/cerberus98/os_virtual_interfacesv2_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_virtual_interfacesv2_python_novaclient_ext/os_virtual_interfacesv2_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_virtual_interfacesv2_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.19.ebuild b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.19.ebuild
new file mode 100644
index 00000000000..553d1487d1f
--- /dev/null
+++ b/dev-python/os-virtual-interfacesv2-python-novaclient-ext/os-virtual-interfacesv2-python-novaclient-ext-0.19.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds Virtual Interfaces support to python-novaclient"
+HOMEPAGE="https://github.com/cerberus98/os_virtual_interfacesv2_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/os_virtual_interfacesv2_python_novaclient_ext/os_virtual_interfacesv2_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/os_virtual_interfacesv2_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.20.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/oslo-concurrency/Manifest b/dev-python/oslo-concurrency/Manifest
new file mode 100644
index 00000000000..d7f9c061122
--- /dev/null
+++ b/dev-python/oslo-concurrency/Manifest
@@ -0,0 +1,3 @@
+DIST oslo.concurrency-1.8.0.tar.gz 52531 SHA256 2070e04106d9d3bdffdd9729a1f0b62a101680001534ba91aa2fdc3967509285 SHA512 38741fe0a1807a33483ed67cc5119a1f7052eb546583ed812bb61d1c3ff7844e9024278b72da40992bc0de2ecd35e2a49439d4f69cf394dcb74122961e916b66 WHIRLPOOL 5d7e2d03d390577e16f2eae3519e0fad61bf19aacc015fb8770d32227092238fb99b94f52247b4a626f381f053097e7457757542428ce24651810177e2efd679
+DIST oslo.concurrency-1.8.1.tar.gz 53044 SHA256 12c5339c9263c994feb5c59290f7fb0eab12d6b729284efd01dd324c95bdecbb SHA512 227c16dd6916bd48ec937520650196b80bbbdf3988e7d6095eecd1ded601e207f24f63598881276591403e3b7c6e85f9adcce5a8ca210f82cffc75eff2351422 WHIRLPOOL 48bf1ffd9b04d0c5f199a8a6ff2deec6e25557a5af680450d30441b715edf0fea986c6620fb9a0ab722b13ca5f4664d39450db5e23cc96a331ed65532abf7a5a
+DIST oslo.concurrency-1.8.2.tar.gz 53278 SHA256 149f4c972916f14c14c97d7be7b92ba59497c1bbd09c114ee3681bef0773daca SHA512 b73b52cef9dca932b8d0b737bd544f0a6d138de701aa9d2309d6e7698af337e4aea5cbb47c78c2ebda14abc164b8cc2b40fee6c8e92a30ee674318f436cf3b94 WHIRLPOOL 1ad6cc6dc0d339b2bec4959539fdadfb0914b1677005e250b4e74da3be97310474d20514003b0c0f50a4c6dff021ac8efa25e1f9b4502f419ab9763117caa16e
diff --git a/dev-python/oslo-concurrency/metadata.xml b/dev-python/oslo-concurrency/metadata.xml
new file mode 100644
index 00000000000..8de0725b580
--- /dev/null
+++ b/dev-python/oslo-concurrency/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Oslo concurrency library has utilities for safely running multi-thread, multi-process applications using locking mechanisms and for running external processes.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.concurrency</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-concurrency/oslo-concurrency-1.8.0.ebuild b/dev-python/oslo-concurrency/oslo-concurrency-1.8.0.ebuild
new file mode 100644
index 00000000000..927404b399d
--- /dev/null
+++ b/dev-python/oslo-concurrency/oslo-concurrency-1.8.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="library for running multi-thread, multi-process applications"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.concurrency"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.concurrency/oslo.concurrency-${PV}.tar.gz"
+S="${WORKDIR}/oslo.concurrency-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ dev-python/posix_ipc[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/retrying-1.2.3[${PYTHON_USEDEP}]
+ !~dev-python/retrying-1.3.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i '/futures/d' test-requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-concurrency/oslo-concurrency-1.8.1.ebuild b/dev-python/oslo-concurrency/oslo-concurrency-1.8.1.ebuild
new file mode 100644
index 00000000000..7a25c946a08
--- /dev/null
+++ b/dev-python/oslo-concurrency/oslo-concurrency-1.8.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="library for running multi-thread, multi-process applications"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.concurrency"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.concurrency/oslo.concurrency-${PV}.tar.gz"
+S="${WORKDIR}/oslo.concurrency-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ !~dev-python/eventlet-0.17.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ dev-python/posix_ipc[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/retrying-1.2.3[${PYTHON_USEDEP}]
+ !~dev-python/retrying-1.3.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i '/futures/d' test-requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-concurrency/oslo-concurrency-1.8.2.ebuild b/dev-python/oslo-concurrency/oslo-concurrency-1.8.2.ebuild
new file mode 100644
index 00000000000..60b144ed608
--- /dev/null
+++ b/dev-python/oslo-concurrency/oslo-concurrency-1.8.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="library for running multi-thread, multi-process applications"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.concurrency"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.concurrency/oslo.concurrency-${PV}.tar.gz"
+S="${WORKDIR}/oslo.concurrency-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ !~dev-python/eventlet-0.17.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ <dev-python/fixtures-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ dev-python/posix_ipc[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/retrying-1.2.3[${PYTHON_USEDEP}]
+ !~dev-python/retrying-1.3.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i '/futures/d' test-requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/Manifest b/dev-python/oslo-config/Manifest
new file mode 100644
index 00000000000..3855f9951ec
--- /dev/null
+++ b/dev-python/oslo-config/Manifest
@@ -0,0 +1,9 @@
+DIST oslo.config-1.10.0.tar.gz 96553 SHA256 1e77a2b3a05700192a11d0091b8c28257821eec8ae34707e08f8cb89aae770a5 SHA512 0e702644801726c0f1c0a70a417b9f17273567314859a985d62e1505eb4dc390a4ba41e2b5888acee9fe3e4ae25e4857acebad1474b347ea66e002a240044489 WHIRLPOOL c9447a4cabc5b8b324ca71d2ec82a95a0adcee7871c4dd604916683a19b4271296dc81e57b7580e588f2e57dcc590239e636357026d09c957d2adb0b032efe46
+DIST oslo.config-1.11.0.tar.gz 95550 SHA256 a5f61075b16e9155cc4e5aceab98f6e47d85bccaeb3739e364e151a9af0bc1ed SHA512 7fa8819e0f2516c94cfe48afbb7e620fc870d02b9e270cfda9726b241cd61271b04c40a97e70d3500590e70e7631d62491c7378db0e5a9b6975e8e42e6aa8d70 WHIRLPOOL 4a2c67297437536b66598dd2fba0f7594c2103a7e82d9839041e587a3421a0e53ab030f0a052a244364b3427c2a59e6aa212891cdd678f3965630828e5566866
+DIST oslo.config-1.12.1.tar.gz 93823 SHA256 d43880e88a55b13840dfd80495837017d4da3ad96aed288345410e0b35138477 SHA512 6300ca44bd4d3384bb56d5b75b6faab0b0ad47583af9bedd49b3a817159989c5acbf36998c9f58f491ec9147cb63ac82357dff903b7b32a81d098c66f86e9efe WHIRLPOOL 37b295a7f1cbbce2e45a9f39ffcd82911635aa85b345df40856660da3c0b5955501a0ef74e6e5248587c2d6bbf67233d1afab3451d727278bfeb4cb70bd23410
+DIST oslo.config-1.3.0.tar.gz 49529 SHA256 1fa44f663f7109ccc3ddd393fbc5a7a077208e116f94e41ada7fbd977f27cbab SHA512 f596cf21e31b78bfe031d74db6720179d5092370dab87ad735605880ac2fd5d8f13b5aac06b4cdc0e1630343fbb90076151282e17916cbf1c020811a71f23583 WHIRLPOOL 5d108815e633d229895b4b8385e8b2d10ebbbeeb5eccd218a532dce93b4c77a651870aae2eae01fada9fd63fcfc09805f9bc5c8ee3794f20b369a4af31d60162
+DIST oslo.config-1.4.0.tar.gz 66544 SHA256 739e76e0a83ec585a3c0415140d9e6ba1b14c7f207e33643e8af7eb4346ffe07 SHA512 cbb9ebe2fd5daa6c78abe0a2169ed3e102f30d6118e53be34257356b218612d5905ecdada28527e8f8820385ef4a404b500ecbe95b01a9f00309271d0f869bc0 WHIRLPOOL fa756561a75c5aec8cc9d7784de2b5d8fc64ef3b86c979dd022d7ffed5f5ef02e261f8450d8818753b69710fb2096b136ef6a8571c2a9259193a27aa8c5343f4
+DIST oslo.config-1.6.0.tar.gz 90139 SHA256 a88cf1af696b4d9cae783a4c8c6898e6fb4abd176f9c9906ba388e7eac5eab17 SHA512 980ad40dd86695f9dd6aa9a491354b61a1b2852c24712493e20946a3b2c664348b07c9860674f7373b52e05b0dfe4c0de9cc1615b04c0a4d35a0ef7252058c3b WHIRLPOOL 78d2a49dda926172a5879095e056736108418445316c84d7f2b9a0e0c1baa871b900e6b9da414221cbcc3a0582d72126ec209e99719d9d2e21d6a2d34832b0ec
+DIST oslo.config-1.6.1.tar.gz 90868 SHA256 4709df3a8ba05e6a47300770f1c90ade77b3d095f28e8f75191df8745268bb20 SHA512 5fca40faa8f942fca3b6178258b7ffaa8642c855225eb045a19667546359ffc709ce68a12a680ad41a7e10281d70b0b54f50da5683297f9308bd8ab862f7906a WHIRLPOOL 7b97d20873a119b5de65e34f065091e964c68c24c1424a404da39d4f04c19590f8d4c1ae63663ebc32f9cb7d8bdc8aabedbdb3873779d2a8a10b77b6d9ab9662
+DIST oslo.config-1.7.0.tar.gz 92399 SHA256 522ac2b6c2367af2d8badd07d0f9ad7434d5765cd4b62851471a5c1eee767439 SHA512 411b7e32293c1eea1b4f654e897eb3539eee617e433aa944a971cf666510987de23f342ef195fcff83578fcfc42aea2002e006667ebc1ba630e8b3577d382eaa WHIRLPOOL f8967bc89c6710bd9405ea95e70cd26a98a603302b440efc4b1229ed9e12a9e795c47845c1420a1a2313362bcd15030904b2fc95a735413051bad85d8e598c8d
+DIST oslo.config-1.9.3.tar.gz 94155 SHA256 ab54e67776d9bbee86ba8cce9393ba3186e6e63de926e9797598dc35fe790140 SHA512 e4daa78bb82593806221c143b374ffcbba49bad5f6a7994703febf24918fe728fdf0e4f9c8e7eeebfd78acd3fe2b4e483d56e1249f0c81970d0f760a9e71f179 WHIRLPOOL a921908faa3a0f2a38fd5565cc7252f7dbd5c5074b48bfaee349984ccd81c20625940a9ea616f71bf3fe111c8ddb5e15fa398ba677521ba21173a6a52a70ab33
diff --git a/dev-python/oslo-config/metadata.xml b/dev-python/oslo-config/metadata.xml
new file mode 100644
index 00000000000..71fd3c13f70
--- /dev/null
+++ b/dev-python/oslo-config/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Oslo configuration API supports parsing command line arguments.
+ Oslo also supports .ini style configuration files.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.config</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-config/oslo-config-1.10.0.ebuild b/dev-python/oslo-config/oslo-config-1.10.0.ebuild
new file mode 100644
index 00000000000..c420361c069
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.10.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/stevedore-1.4.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ rm -rf .testrepository || die "could not remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.11.0.ebuild b/dev-python/oslo-config/oslo-config-1.11.0.ebuild
new file mode 100644
index 00000000000..2312b93f24e
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.11.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ rm -rf .testrepository || die "could not remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.12.1.ebuild b/dev-python/oslo-config/oslo-config-1.12.1.ebuild
new file mode 100644
index 00000000000..9f3e6256d83
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.12.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+"
+distutils-r1_python_prepare_all() {
+ sed -i '/argparse/d' requirements.txt
+}
+
+python_test() {
+ rm -rf .testrepository || die "could not remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.3.0.ebuild b/dev-python/oslo-config/oslo-config-1.3.0.ebuild
new file mode 100644
index 00000000000..8bf89f7a69b
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.3.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="The Oslo configuration API supports parsing command line arguments
+and ini style configuration files"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.config"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/six-1.5.2[${PYTHON_USEDEP}]"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.4.0.ebuild b/dev-python/oslo-config/oslo-config-1.4.0.ebuild
new file mode 100644
index 00000000000..e91e36b4ae4
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.4.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.6.0.ebuild b/dev-python/oslo-config/oslo-config-1.6.0.ebuild
new file mode 100644
index 00000000000..faa2f4b2649
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.6.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.6.1.ebuild b/dev-python/oslo-config/oslo-config-1.6.1.ebuild
new file mode 100644
index 00000000000..a9e68d622f1
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.6.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.7.0.ebuild b/dev-python/oslo-config/oslo-config-1.7.0.ebuild
new file mode 100644
index 00000000000..769a469044c
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.7.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-config/oslo-config-1.9.3.ebuild b/dev-python/oslo-config/oslo-config-1.9.3.ebuild
new file mode 100644
index 00000000000..bcc1600c1d5
--- /dev/null
+++ b/dev-python/oslo-config/oslo-config-1.9.3.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo Configuration API"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.config/oslo.config-${PV}.tar.gz"
+S="${WORKDIR}/oslo.config-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ rm -rf .testrepository || die "could not remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-context/Manifest b/dev-python/oslo-context/Manifest
new file mode 100644
index 00000000000..f54c354f08c
--- /dev/null
+++ b/dev-python/oslo-context/Manifest
@@ -0,0 +1,3 @@
+DIST oslo.context-0.1.0.tar.gz 12320 SHA256 0340e533033607c18ce6a305d92f38a71fd89aaf439bf45074fd4ba9ee086971 SHA512 3e2e2cab4d5efbf8385277ac33d2babad3054b22713b3f343a47644c4420b1034e7711d353990116d2e149383293ba5a1ab1fe9247b42bf119705f5006e1a5b0 WHIRLPOOL 61b8b1be44213a8f1520c29de80adffd1341a3d3278fce0c7fc0bd50165a5b6793aaf6d62ea7685871cf20b59b922d773d3e67fbc26e3d7d13ef01773cbd8e7d
+DIST oslo.context-0.2.0.tar.gz 12726 SHA256 30bee9680a2bf5f947227cfd5996cebb17fd8c8e3013e5a594f7a7accb2947dd SHA512 afc1cf80a97bb90386750719e8314801057bf75c7cab1c2689d774bb337944cff324dc3737931f78b24bbf686ba4b5bbcb1e1ac1aae5347e700fd148556e6881 WHIRLPOOL 99dc8b37c582befbb9b32c26d8d106eb89bd9ef561193bc2cbf22c5ed0c2470f0f60a79bd06f9390866849eab2e65525ced9c8974c330ff5df2df3b5f3261e82
+DIST oslo.context-0.3.0.tar.gz 13108 SHA256 5ac98e1bf0f502de8f31d4ae397ce6b663beab26870e9f9a80d231400353b9cb SHA512 3a6cb17ec85b159d3bc496d3acfcfd7f03e92f32e5483c79be391d45a2af88ceb3c8ec2aae6714ac75f66b6664e3260a1e29c6f14c6802e8fa156f303b943ffa WHIRLPOOL c511b7470c09281402809af78ff7bd57d6ca241ab15736c876a9f705c08da8c7b5ce3dccd1867325e7b2052e83aec4fdd9fd9a32a9bd05f68ad10ccb4a9983cc
diff --git a/dev-python/oslo-context/metadata.xml b/dev-python/oslo-context/metadata.xml
new file mode 100644
index 00000000000..511a7b2f8d1
--- /dev/null
+++ b/dev-python/oslo-context/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Oslo context library has helpers to maintain useful information about a request context. The request context is usually populated in the WSGI pipeline and used by various modules such as logging
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.context</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-context/oslo-context-0.1.0-r1.ebuild b/dev-python/oslo-context/oslo-context-0.1.0-r1.ebuild
new file mode 100644
index 00000000000..909485b5837
--- /dev/null
+++ b/dev-python/oslo-context/oslo-context-0.1.0-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Helpers to maintain useful information about a request context"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.context"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.context/oslo.context-${PV}.tar.gz"
+S="${WORKDIR}/oslo.context-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-context/oslo-context-0.1.0.ebuild b/dev-python/oslo-context/oslo-context-0.1.0.ebuild
new file mode 100644
index 00000000000..82e864ef715
--- /dev/null
+++ b/dev-python/oslo-context/oslo-context-0.1.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Helpers to maintain useful information about a request context"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.context"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.context/oslo.context-${PV}.tar.gz"
+S="${WORKDIR}/oslo.context-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-context/oslo-context-0.2.0.ebuild b/dev-python/oslo-context/oslo-context-0.2.0.ebuild
new file mode 100644
index 00000000000..02d568716e2
--- /dev/null
+++ b/dev-python/oslo-context/oslo-context-0.2.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Helpers to maintain useful information about a request context"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.context"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.context/oslo.context-${PV}.tar.gz"
+S="${WORKDIR}/oslo.context-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-context/oslo-context-0.3.0.ebuild b/dev-python/oslo-context/oslo-context-0.3.0.ebuild
new file mode 100644
index 00000000000..91d2d350a1e
--- /dev/null
+++ b/dev-python/oslo-context/oslo-context-0.3.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Helpers to maintain useful information about a request context"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.context"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.context/oslo.context-${PV}.tar.gz"
+S="${WORKDIR}/oslo.context-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-db/Manifest b/dev-python/oslo-db/Manifest
new file mode 100644
index 00000000000..4150a23c3f7
--- /dev/null
+++ b/dev-python/oslo-db/Manifest
@@ -0,0 +1,6 @@
+DIST oslo.db-1.0.2.tar.gz 90060 SHA256 7092525eab0352748fc0c58a7facd3d6ae967d9130589b4afc12bfa171bee837 SHA512 77412e531f93966229c6cb866f34cb22c9b97e419f6035f0cb51a093ed218277aed85bf6b8a684b68ceb212ca9f17b0bda8073601cc4a569c3503d2dd1b59311 WHIRLPOOL ccde39e352adf7916b73b9883da1ef3aa99ce862d3dbd4b3ce86c058118cd49a43a50918237e0fb13ce7655cc6a88b3f745a5aee47af9af9e2a431dbb6cd4714
+DIST oslo.db-1.4.1.tar.gz 127166 SHA256 e1fc76e17db9552c42ddca7b95ef8dce9a2049c68b90c0130ed2e27c7a9d82fb SHA512 138bef9fb82d08be9f2d13061689f6f2af7f16e75968d51e423d58a0c6a5bcc12b13a3849dbb0862789256f737e9c3e72be844125bd2cdcfcce0df91b8694ecc WHIRLPOOL 7a98eae42a620699518415f191af4099b4d2cfc8d68392b2d5ae29e90d2f501670110bf19edfd223a55f52b078cb7c26125f7e99fded99eb52715a45afd578d0
+DIST oslo.db-1.7.1.tar.gz 134351 SHA256 21ceab26d3fe4f69e8ec3a7444cff2f13bc8a6e298cc8ffbfbe965f782931b74 SHA512 02f48ec51c4af4eaa76d2ead7c73f5748b6f8340d7d9d304334f44b718b6aa8f841cc7b48166521f6ca6d93d8ee2a33d06570ec99b8ef1b1b628b6aa6d1eb789 WHIRLPOOL 11f2aa7a5a67bc822216cb3694623d5d6121dd9fc48d78e4837c56af589a73b8b43c2b01b8be2e799993e0af8e57972503d4e404f9242dcca1582ca7b17cbba2
+DIST oslo.db-1.7.2.tar.gz 134542 SHA256 e10b1bc9b128aaeae652809e1659ec2d2f64e2d1a143b9c9c66eb9cfef66c02c SHA512 341289a7bdbf61382bbeab101b41e889ebea7297986fb765d0fbeeec027d47d78d249f8b1df3ff6fed77f3c457e75fca249826dbbe5a7417ae3b6da7f766dc5c WHIRLPOOL 7b29b0d6088ca666af931f90d0ec1b1cea9340066a9a90756f179cbd1944cd6e70d07b709718c6df2db50a7f14561004f4fd5411677484d20bd96764b06fb823
+DIST oslo.db-1.8.0.tar.gz 143208 SHA256 0688ced3c34c975e2a68139e0f91601ef43c79fb73308d75674fdc40d30a2d4c SHA512 c97fd671572dc1fdc2bff642e5680f1b8910c737d295ff8d79bed6e4886de46216361de47c1e7f0ac88315988b7d1cd448d6cffff58d906524d8f9ec86d2e582 WHIRLPOOL 70d72ac5f0baf1c01eea040908a2b35336f793b3c7968f218e83a2c1699fd7381ca84cabef9a612069020a1292c3e195047a5795ca6fd9c62b961c68393b3f38
+DIST oslo.db-1.9.0.tar.gz 143040 SHA256 028ed6a38c1ed6d39d04f3dc2d7b7e2e0aca3cf53e72e145c3c07a5a0fb80eb8 SHA512 2131b2641502007b9b42aecbcb7e83a0cc90527edda2df91d52507dc58f0418b0111c9fb22e9d8bcf40ed53588adc9f02bec1b3df5788d99c775c328c1b3118b WHIRLPOOL f6205bb8e06efaf549d433c236069a5f0432cf49d1c64aadab0617f7badf4b6ea1a7277e42da1f62428c81d33f802adbb8895daf3cbbf9bd0e3e95f475a6bc80
diff --git a/dev-python/oslo-db/metadata.xml b/dev-python/oslo-db/metadata.xml
new file mode 100644
index 00000000000..35df5115468
--- /dev/null
+++ b/dev-python/oslo-db/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ OpenStack Common DB Code
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.db</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-db/oslo-db-1.0.2.ebuild b/dev-python/oslo-db/oslo-db-1.0.2.ebuild
new file mode 100644
index 00000000000..b3291ddd1c0
--- /dev/null
+++ b/dev-python/oslo-db/oslo-db-1.0.2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Common DB Code"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.db/oslo.db-${PV}.tar.gz"
+S="${WORKDIR}/oslo.db-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+sqlite mysql postgres"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/alembic-0.6.4[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-0.3.0[${PYTHON_USEDEP}]
+ sqlite? (
+ || (
+ (
+ >=dev-python/sqlalchemy-0.8.4[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.8.99[sqlite,${PYTHON_USEDEP}]
+ )
+ (
+ >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+ )
+ )
+ )
+ mysql? (
+ dev-python/mysql-python
+ || (
+ (
+ >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}]
+ )
+ (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ )
+ postgres? (
+ dev-python/psycopg:2
+ || (
+ (
+ >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}]
+ )
+ (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ )
+ >=dev-python/sqlalchemy-migrate-0.9.1[${PYTHON_USEDEP}]
+ !~dev-python/sqlalchemy-migrate-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.0.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-db/oslo-db-1.4.1.ebuild b/dev-python/oslo-db/oslo-db-1.4.1.ebuild
new file mode 100644
index 00000000000..26cb331c57e
--- /dev/null
+++ b/dev-python/oslo-db/oslo-db-1.4.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Common DB Code"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.db/oslo.db-${PV}.tar.gz"
+S="${WORKDIR}/oslo.db-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+sqlite mysql postgres"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.2[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/alembic-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ sqlite? (
+ || (
+ (
+ >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+ )
+ )
+ )
+ mysql? (
+ dev-python/mysql-python
+ || (
+ (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ )
+ postgres? (
+ dev-python/psycopg:2
+ || (
+ (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ )
+ >=dev-python/sqlalchemy-migrate-0.9.1[${PYTHON_USEDEP}]
+ !~dev-python/sqlalchemy-migrate-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-db/oslo-db-1.7.1.ebuild b/dev-python/oslo-db/oslo-db-1.7.1.ebuild
new file mode 100644
index 00000000000..a6a5315fbe8
--- /dev/null
+++ b/dev-python/oslo-db/oslo-db-1.7.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Common DB Code"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.db/oslo.db-${PV}.tar.gz"
+S="${WORKDIR}/oslo.db-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="+sqlite mysql postgres"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.2[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/alembic-0.7.2[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ sqlite? (
+ || (
+ >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+ )
+ )
+ mysql? (
+ dev-python/mysql-python
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ postgres? (
+ dev-python/psycopg:2
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ >=dev-python/sqlalchemy-migrate-0.9.5[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-db/oslo-db-1.7.2.ebuild b/dev-python/oslo-db/oslo-db-1.7.2.ebuild
new file mode 100644
index 00000000000..ea9e64e2d7f
--- /dev/null
+++ b/dev-python/oslo-db/oslo-db-1.7.2.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Common DB Code"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.db/oslo.db-${PV}.tar.gz"
+S="${WORKDIR}/oslo.db-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+sqlite mysql postgres"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.2[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/alembic-0.7.2[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ sqlite? (
+ || (
+ >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+ )
+ )
+ mysql? (
+ dev-python/mysql-python
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ postgres? (
+ dev-python/psycopg:2
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ >=dev-python/sqlalchemy-migrate-0.9.5[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-db/oslo-db-1.8.0.ebuild b/dev-python/oslo-db/oslo-db-1.8.0.ebuild
new file mode 100644
index 00000000000..5a6c2877d22
--- /dev/null
+++ b/dev-python/oslo-db/oslo-db-1.8.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Common DB Code"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.db/oslo.db-${PV}.tar.gz"
+S="${WORKDIR}/oslo.db-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+sqlite mysql postgres"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.2[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/alembic-0.7.2[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ sqlite? (
+ || (
+ >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+ )
+ )
+ mysql? (
+ dev-python/mysql-python
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ postgres? (
+ dev-python/psycopg:2
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ >=dev-python/sqlalchemy-migrate-0.9.5[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-db/oslo-db-1.9.0.ebuild b/dev-python/oslo-db/oslo-db-1.9.0.ebuild
new file mode 100644
index 00000000000..5a6c2877d22
--- /dev/null
+++ b/dev-python/oslo-db/oslo-db-1.9.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Common DB Code"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.db/oslo.db-${PV}.tar.gz"
+S="${WORKDIR}/oslo.db-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+sqlite mysql postgres"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.2[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/alembic-0.7.2[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ sqlite? (
+ || (
+ >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+ )
+ )
+ mysql? (
+ dev-python/mysql-python
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ postgres? (
+ dev-python/psycopg:2
+ || (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ )
+ >=dev-python/sqlalchemy-migrate-0.9.5[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-i18n/Manifest b/dev-python/oslo-i18n/Manifest
new file mode 100644
index 00000000000..073eefa2661
--- /dev/null
+++ b/dev-python/oslo-i18n/Manifest
@@ -0,0 +1,5 @@
+DIST oslo.i18n-1.0.0.tar.gz 31042 SHA256 008f86bc297ee05c63b1e2e4a85985802f086c81b16b0853e8e47df0592b23bc SHA512 907971cf4a85bfd2f935faf30dced837614eaa08397b7243a497c6fb50c1228c5cd5f562fb452ebc2a0ad929073724b1e44b38df9b5f424833ed958dcbfc96ab WHIRLPOOL b6ffb2bfce611bb5dd99bd62d24709dfa8626bc93edc7e51aa27e422f556851b31a3525e15fcb2481a72d6b225acc957ecf1ae64bdd38dcae8411173cc8b999d
+DIST oslo.i18n-1.3.1.tar.gz 35050 SHA256 8e1b9b3f87cea9e43a2414bb02d8c79b0a688c916afa1f1453f6a0a65ffd85f6 SHA512 987beef5e59b213988001fb53f1b2e41b122b830bd476c64a4481f7650db45d31d66c94d79da26e1fc346035393c00a63febb1254d3ab881ce3d2b00398c5ac8 WHIRLPOOL 7b590d93c478d855edfdfba8a31dac491913426100c8e216cfd4b82ff47b60f98b34a56ff69e2af49d0c16d3e2ac1813731527ab21bb4f9fe2f33dc5847d0835
+DIST oslo.i18n-1.4.0.tar.gz 36140 SHA256 a3d64e8d2b4235a457da2c6269d8c97e867a90ba7d938fe0ed3cfc792c8c87bb SHA512 df1491bb4d98b9295c08f4b7dc18cfff2758834ff5edb9aa3bdc064e587ab475e7e060dc5212c5db1e7e2f34cc4177e5c713a4ac6908a9750f50dc6316105682 WHIRLPOOL 8e77849c0a8f3c5a7e5b314f756673f31a3464f2a65c35e8ad506fd0ce10430b2fea0fae97eaccfef258b74a24db2f86b0843575d25f3d3a84a3b19ae0c5ff12
+DIST oslo.i18n-1.5.0.tar.gz 36068 SHA256 cd09da0780e45737b784bdc026ea705ad006e3c003aa5dfeab83f269b4ea0e70 SHA512 20a640950b7e0eef69371eece396fc6b284c87e195b98a98ec689f207f9ab4f8a41c70cac1c64b0f68621742b6e9da8001d422f67242a3e03e6b4cf09d8add96 WHIRLPOOL ce22737d5285abe18a7e62d01894da59f7d1068a0d16dd055ba62d40888bba7d1408f3d739bfa6a5da7f7149fc84f3794067db4562538f7cee99fca3871924ac
+DIST oslo.i18n-1.6.0.tar.gz 36136 SHA256 29be916f3f4c79cca76d57e604a187b3020354a2ca89d486647b79d8a9adbb9e SHA512 c3a338ce0e5f7fb22f193aa749b4d2402f394af6b010cbb8dddbe2ec259cf39ff8a31d1730da4517ec24208b1bf439af48b97bfdb34acfecd78876bb3f6f4ec1 WHIRLPOOL 50274047e4ee12dc4c823f23e3dd9c7459f381d7882339e8de4b743a67ae433e9a062b1042fc4304c9b9dd9544744a76d3139265f0d1cef8320e91cd7af2fc06
diff --git a/dev-python/oslo-i18n/metadata.xml b/dev-python/oslo-i18n/metadata.xml
new file mode 100644
index 00000000000..d91740215fc
--- /dev/null
+++ b/dev-python/oslo-i18n/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.i18n</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-i18n/oslo-i18n-1.0.0.ebuild b/dev-python/oslo-i18n/oslo-i18n-1.0.0.ebuild
new file mode 100644
index 00000000000..f87a4a1ff10
--- /dev/null
+++ b/dev-python/oslo-i18n/oslo-i18n-1.0.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.i18n library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-i18n/oslo-i18n-1.3.1.ebuild b/dev-python/oslo-i18n/oslo-i18n-1.3.1.ebuild
new file mode 100644
index 00000000000..3330a521e53
--- /dev/null
+++ b/dev-python/oslo-i18n/oslo-i18n-1.3.1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.i18n library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-i18n/oslo-i18n-1.4.0.ebuild b/dev-python/oslo-i18n/oslo-i18n-1.4.0.ebuild
new file mode 100644
index 00000000000..3b10df6f1a0
--- /dev/null
+++ b/dev-python/oslo-i18n/oslo-i18n-1.4.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.i18n library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-i18n/oslo-i18n-1.5.0.ebuild b/dev-python/oslo-i18n/oslo-i18n-1.5.0.ebuild
new file mode 100644
index 00000000000..f71536ce9e7
--- /dev/null
+++ b/dev-python/oslo-i18n/oslo-i18n-1.5.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.i18n library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-i18n/oslo-i18n-1.6.0.ebuild b/dev-python/oslo-i18n/oslo-i18n-1.6.0.ebuild
new file mode 100644
index 00000000000..f183acb3578
--- /dev/null
+++ b/dev-python/oslo-i18n/oslo-i18n-1.6.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.i18n library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-log/Manifest b/dev-python/oslo-log/Manifest
new file mode 100644
index 00000000000..0e03e1dd4ea
--- /dev/null
+++ b/dev-python/oslo-log/Manifest
@@ -0,0 +1,3 @@
+DIST oslo.log-0.3.0.tar.gz 33955 SHA256 c32f85824f2634ffbb34fc7bc1dfebdc706b404ff787d97df98ccc508b311e59 SHA512 d50ead9274e29a9fa3d03f7cfa4de51601b4e2d3c28ccf1ded3a389d7485e5d858c418a5eafbedaec164f4d47ff40e066b0a3f6e11530f270a9d0a4a93d20556 WHIRLPOOL 6d1177899b4771660685a34ce7f91835803c27533bb8d60a047db889e243fac9e49f91ab691244beb0dbdc226bb6b0186e5d3e845e68e96005d4b574aeed01ba
+DIST oslo.log-1.0.0.tar.gz 34366 SHA256 3d66e9a70b82bc1c7c0b70114d093620e86bef679177ee1ec668c6e0a1acf52a SHA512 420a019592778e69cf339617d21b2eabde8220709f9067bbfe61ce11b8defc54f6635b8f120557b032bea15eac936ad4957e23f9f041556390c9e0b641ca0c0f WHIRLPOOL b579fe52acba0ca5957a55b6720862ef7343d0f41157e667f7bd63e57c6779af683cbaf083440c98a1cf0184cc162eb91b64a52a1a19c1e9732a7eb4ce8530c7
+DIST oslo.log-1.1.0.tar.gz 40991 SHA256 a568d567a99443b617338e4a9f120d3c866896b99e5aad2eff1bcfa448ea7e28 SHA512 761324c6a48e6c43411c44a741c7c8e38bdc0ad08e1eeadaf4efd3b264e00c428042b873bc294a0176bc0831d7a612d08e49da838611ad66e2954a7547cc42a0 WHIRLPOOL f680ce7722818bb3d1f2e682bce447ae37fd16a1ba066ac264c5c7ae1b29803c3c12e33138d6b66afcc5e222a401526f1b1eb07f294974551eef0184e83e575d
diff --git a/dev-python/oslo-log/metadata.xml b/dev-python/oslo-log/metadata.xml
new file mode 100644
index 00000000000..78bc1ad14f0
--- /dev/null
+++ b/dev-python/oslo-log/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+OpenStack logging configuration library provides standardized configuration for all openstack projects.
+It also provides custom formatters, handlers and support for context specific logging (like resource id’s etc).
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.log</remote-id>
+ <remote-id type="github">openstack/oslo.log</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-log/oslo-log-0.3.0.ebuild b/dev-python/oslo-log/oslo-log-0.3.0.ebuild
new file mode 100644
index 00000000000..74bd15c8eb8
--- /dev/null
+++ b/dev-python/oslo-log/oslo-log-0.3.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack logging config library provides standardized configuration for all openstack projects."
+HOMEPAGE="http://pypi.python.org/pypi/oslo.log https://github.com/openstack/oslo.log"
+SRC_URI="mirror://pypi/o/oslo.log/oslo.log-${PV}.tar.gz"
+S="${WORKDIR}/oslo.log-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests oslo_log/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/oslo-log/oslo-log-1.0.0.ebuild b/dev-python/oslo-log/oslo-log-1.0.0.ebuild
new file mode 100644
index 00000000000..a4e42d8532a
--- /dev/null
+++ b/dev-python/oslo-log/oslo-log-1.0.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack logging config library provides standardized configuration for all openstack projects."
+HOMEPAGE="http://pypi.python.org/pypi/oslo.log https://github.com/openstack/oslo.log"
+SRC_URI="mirror://pypi/o/oslo.log/oslo.log-${PV}.tar.gz"
+S="${WORKDIR}/oslo.log-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests oslo_log/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/oslo-log/oslo-log-1.1.0.ebuild b/dev-python/oslo-log/oslo-log-1.1.0.ebuild
new file mode 100644
index 00000000000..1cc85e61c7c
--- /dev/null
+++ b/dev-python/oslo-log/oslo-log-1.1.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack logging config library provides standardized configuration for all openstack projects."
+HOMEPAGE="http://pypi.python.org/pypi/oslo.log https://github.com/openstack/oslo.log"
+SRC_URI="mirror://pypi/o/oslo.log/oslo.log-${PV}.tar.gz"
+S="${WORKDIR}/oslo.log-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests oslo_log/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/Manifest b/dev-python/oslo-messaging/Manifest
new file mode 100644
index 00000000000..8e9ab445153
--- /dev/null
+++ b/dev-python/oslo-messaging/Manifest
@@ -0,0 +1,8 @@
+DIST oslo.messaging-1.10.0.tar.gz 216864 SHA256 d7044bf66bf65848778a10955ac3ee9d7c5174c9b07687c2e36a624417e91d06 SHA512 e2a6e06248a52ddab4cf1fd02510e8d900b39002944df191776289290efac3455a78751caed018b5755158a643b31d9beaa825f0af5147caaf1571e5dbad2a50 WHIRLPOOL 61baa991eaabe168a2b2383913b74be545ac009010d0297dbac2ebb5165b2cae8c00226bf3539071a00c79d5d2db510d64c1accb9b64d03631e8b8b485818294
+DIST oslo.messaging-1.4.1.tar.gz 144160 SHA256 28243db5fb84287016d6f58fa485a71496c825bcfca3ae806035017700a11945 SHA512 e5099bafa81f0dd86459034cf8a11031fb84b1af3b1fa7820e526f45241f37e8b2eea1a11b7aa420e38b36b3d7fbc2116ceeffe6cf635af9c36cc4ef8bb3b76a WHIRLPOOL 5732bcc2857448e996743914dc1e43b56fe13c6d5715b40967177dfbe0718b6e9d166e5a90fb394ae210150487bca2e3977335971ee9bf2780003ee790cb81d3
+DIST oslo.messaging-1.5.1.tar.gz 146353 SHA256 b1bac4fe771b089e839ae6b071a441f18468a5ac7c506a506d93875dce200250 SHA512 657633df4900321dccf0ede8d1e047d628c9451c9f33d5a4f61cd4bf1e476d1212b7b05351afab8e1020555ef69e567446e26970a2593c97cceaf2153259f640 WHIRLPOOL b869843f1f9e03054466b3324887922b011868b9b520231f7299d0496bc3d7decdea9b12f437c2bc2f8b1883231c7c5af269a86662c5e40740aecc7ce463050c
+DIST oslo.messaging-1.7.0.tar.gz 201952 SHA256 dd18921a9bcdc8d34c64410bb684dcd852a7a320e6be4992b0c93a7dc02b12f8 SHA512 1531d19a585609091f490138044b5c543ef26c34811e0268245a4710d945d61bdb77cc5729cd7b3f4477e2d78c1feda3801c614e8994c9d3f2638e93af73c7f7 WHIRLPOOL f53580b6b955ffccae0e7f80e39e11895e4cc7a2e22755c0183bfc5a6c13af42ebebd71c8137a6be767f66f83d6de20510bb46e67f02de6f9dc1717a82c80687
+DIST oslo.messaging-1.8.0.tar.gz 201858 SHA256 afff6d8367e6723a64dcb518d709d4ed0f91e15960360051d2498fc34e4ddda2 SHA512 5a2f79350f0763af52df984a43464bc12126e1520e4761c2c055b011f6063604e9aac4273732f45b1056a6af7aff120d005140ee89b2a9e5118f347c0918ad0d WHIRLPOOL 1343e4b6d691756240b252fbae90301bfde08b64ed7a0fade0d8b1662913ab55d1e844dade8215dbad68c4fab64e50005b1691b68aa35772d4ece862fe3bb9e7
+DIST oslo.messaging-1.8.2.tar.gz 208688 SHA256 31222c9afe3b5655401424a6229f633bebf20cfe5027e69d2e12f7e954556f1a SHA512 a8940635fb1d08871675730d2eb841af74896963d1f9624fec6ecff03e99f280091f342abba683aa9a5eac209009e75618f637571e34c5ef76fd8617f4ffe525 WHIRLPOOL 0fa2f5531178763ff607b062b8741ba02d396e868cc41a4e668e2ec26ef119f12dfa4261da418ec314c915e36e90f2cbd8da88f1bf559460fa0e442cd4a9b0f1
+DIST oslo.messaging-1.8.3.tar.gz 208757 SHA256 149d325431e2c4415edd5bdaec0cff4e9109c02e8f428382610cfa1a238692ea SHA512 98fd93a4ae366ac413ec0ad0310b669d9e0dddf61a03b2da40bfdfb3aec63de95a187556bcdecc19a209c38398f2ed0359aa05c9024bbad429e4c79c35b91b01 WHIRLPOOL 22f2a4237f874f3a681d3ea6e87bea7ed9759f967dfe8abfa8c6dc0f68d362b248f54b98fb7e64ff388de7c406f0cde29861fd17fe2fef5a8a688855b67c436c
+DIST oslo.messaging-1.9.0.tar.gz 214963 SHA256 ac5f58378515597e6d5759653cac3828eb2ee6bb11e2bbf94ee0d65a692990ed SHA512 2e7de860fed55b0548f3cfa4a911cba0750889fd807ed7addb83192dd37f84997ceecd92faf480be97873e58286748865c8c57a09014ae0de97c60be826cd27f WHIRLPOOL 8e331116313757c93b2add853a35929e0a0603b691f9ffb322f4e39c422e13d83ee757277e42ce9b0360cf9e5823bb066a48fadc8eb706f7ebca018b014e1e06
diff --git a/dev-python/oslo-messaging/metadata.xml b/dev-python/oslo-messaging/metadata.xml
new file mode 100644
index 00000000000..d885208542e
--- /dev/null
+++ b/dev-python/oslo-messaging/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Oslo messaging API supports RPC and notifications over a number of different messaging transports.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.messaging</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.10.0.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.10.0.ebuild
new file mode 100644
index 00000000000..bef7b6d3363
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.10.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-14.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ !~dev-python/eventlet-0.17.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.6[${PYTHON_USEDEP}]
+ >=dev-python/aioeventlet-0.4[${PYTHON_USEDEP}]
+ >=dev-python/trollius-1.0.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.4.1.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.4.1.ebuild
new file mode 100644
index 00000000000..ea0b2f1e87c
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.4.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/oslotest[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.13.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.4.8[${PYTHON_USEDEP}]"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.5.1.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.5.1.ebuild
new file mode 100644
index 00000000000..52afa0cdcc1
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.5.1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.15.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-0.1.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.7.0.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.7.0.ebuild
new file mode 100644
index 00000000000..1a8e147514a
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.7.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-14.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.6[${PYTHON_USEDEP}]
+ >=dev-python/aioeventlet-0.4[${PYTHON_USEDEP}]
+ >=dev-python/trollius-1.0.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.8.0.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.8.0.ebuild
new file mode 100644
index 00000000000..afacc9f6726
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.8.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-14.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.6[${PYTHON_USEDEP}]
+ >=dev-python/aioeventlet-0.4[${PYTHON_USEDEP}]
+ >=dev-python/trollius-1.0.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.8.2.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.8.2.ebuild
new file mode 100644
index 00000000000..660f9bf9266
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.8.2.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-14.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.6[${PYTHON_USEDEP}]
+ >=dev-python/aioeventlet-0.4[${PYTHON_USEDEP}]
+ >=dev-python/trollius-1.0.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.8.3.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.8.3.ebuild
new file mode 100644
index 00000000000..222256f0d4d
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.8.3.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-14.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/stevedore-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ !~dev-python/eventlet-0.17.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-middleware-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.6[${PYTHON_USEDEP}]
+ >=dev-python/aioeventlet-0.4[${PYTHON_USEDEP}]
+ >=dev-python/trollius-1.0.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-messaging/oslo-messaging-1.9.0.ebuild b/dev-python/oslo-messaging/oslo-messaging-1.9.0.ebuild
new file mode 100644
index 00000000000..8be57bd51ef
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-1.9.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over a number of different messaging transports"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.messaging"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ dev-python/qpid-python[${PYTHON_USEDEP}]
+ >=dev-python/redis-py-2.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-14.3.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0
+ <dev-python/oslo-context-0.3.0
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/stevedore-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ !~dev-python/eventlet-0.17.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-middleware-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.6[${PYTHON_USEDEP}]
+ >=dev-python/aioeventlet-0.4[${PYTHON_USEDEP}]
+ >=dev-python/trollius-1.0.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-middleware/Manifest b/dev-python/oslo-middleware/Manifest
new file mode 100644
index 00000000000..5b1ab12d777
--- /dev/null
+++ b/dev-python/oslo-middleware/Manifest
@@ -0,0 +1,6 @@
+DIST oslo.middleware-0.4.0.tar.gz 21486 SHA256 d300f8342b5faaf712890d58da111789740aebb4b46874e41b45110b704719cb SHA512 6001ecdf42b0a2cf99c51bd43492e5d8dded2e41669e25a866808407d7762c90cdb8da2a8f5070c64df1ca81b5dedeac8dd012d2576c14fb201d236e73ed2188 WHIRLPOOL d431f55b50a6eccb29c9c4e061c8424d57a818007cec77792eb1ca2ea38c2309186f4ed5949558a60a1e385ac1a7dfb7b03940de129e3fc3f3421722b51f7503
+DIST oslo.middleware-0.5.0.tar.gz 23161 SHA256 c2d2a78debef27181d69e4f2e887cb2e4617f32ad4681a26c0d67210151bddf0 SHA512 a92c1e3bc82fdacf8028170e32600d48e4da0c422a1290ee4dde5fd848b367cc4c8906b7db1f1116d6a3a81a1d4e5d896f3bd3a89c121e58f2a108b532debe4a WHIRLPOOL 3d108f06e30273fbb99450be52512b548a152a7cd75143ff7a015b929506ed7070f4cf6b216b80d5b4c6a07724e9d72cfebaa4ae459f29d3516ebc7bc846c05e
+DIST oslo.middleware-1.0.0.tar.gz 23209 SHA256 5ccf160ae5ce23f3f59b86535352e3b5a9fa35dab0edc4ede8b17438da559995 SHA512 d1658c4608a1ba8f6501d9c576263560e2c77c24d6653081c17115f96011f298b0d203b1511830b4842efc08303b0d7452e6608f3e848145c25e9b960d11613c WHIRLPOOL 0a6c71290c2bbf5d8eca5c7264cd97f981e650139695f08a7fc6e320508cea9bdbb1d4c6d5b01f7cf702d11d5e21712477f73aa2fe2f62e17aa2c731022417d8
+DIST oslo.middleware-1.1.0.tar.gz 29957 SHA256 0647456ebf1611e2a0efc445673af3583780b0ccf694f61a8830d54fb5d6f63c SHA512 ae497098fe4edccf79ce93de1bd42967081616a81f7be8ec255a8732021943e8f377a6b57f6cc23c992506a5bed2641299d2653fcce6f6619d2ca1eff318cf71 WHIRLPOOL 410e422ea3b36e843e2ee91d64c23d84ffd86819bfca7e226fda3f1c2a6d11c9e8a8a4e7d5696764ce276a0b9984becf9361967861c17676b4fd9d77894baf82
+DIST oslo.middleware-1.2.0.tar.gz 29850 SHA256 0597ae9df233ba58e3f58e03878ba1f1d34a30918895bb109ebe50d8760495b7 SHA512 021836c40d096d96effc904a1ddd4889dde7f40e598aa435be3e8b5a0ff5dce013515bae878bf4eb05680fe01737c9fa20701de46bad151e7b795b229309e9db WHIRLPOOL 627b3c968e806cb1256768286ea580aa2ff4edd37107e3873db52030224cddda19ae2a4b341616f6a103dc4c456260d5c02f6645be4bf805758587eb54fece68
+DIST oslo.middleware-1.3.0.tar.gz 29172 SHA256 9e0fcf28f5d635c10e684bce26524e79a9da78a5c3d380c6759d2f419a0ff1c5 SHA512 39f3ba43aac0839aa47112eb6406286ae5e9ff92c53b46540e456d885617ad583a5a1ec3d86bdd1f95be9bb31354b3dba061da1fe28e6174ce01adc75901e6c7 WHIRLPOOL 05d57f094c22cddae6982cd3cc45cbf2fb881b181eceb39fc7295e9f930425180d4c2e72ce0ee700c979dffd0f40bc65d4d83eaada424553cc047cb7a8123db3
diff --git a/dev-python/oslo-middleware/metadata.xml b/dev-python/oslo-middleware/metadata.xml
new file mode 100644
index 00000000000..b9665513ba2
--- /dev/null
+++ b/dev-python/oslo-middleware/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Oslo middleware library includes components that can be injected into wsgi pipelines to intercept request/response flows. The base class can be enhanced with functionality like add/delete/modification of http headers and support for limiting size/connection etc
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.middleware</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-middleware/oslo-middleware-0.4.0.ebuild b/dev-python/oslo-middleware/oslo-middleware-0.4.0.ebuild
new file mode 100644
index 00000000000..9ac1ec6c3e0
--- /dev/null
+++ b/dev-python/oslo-middleware/oslo-middleware-0.4.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library includes components to be injected into wsgi pipelines to intercept request/response flows"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.middleware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.middleware/oslo.middleware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.middleware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-middleware/oslo-middleware-0.5.0.ebuild b/dev-python/oslo-middleware/oslo-middleware-0.5.0.ebuild
new file mode 100644
index 00000000000..a692c4f007c
--- /dev/null
+++ b/dev-python/oslo-middleware/oslo-middleware-0.5.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library includes components to be injected into wsgi pipelines to intercept request/response flows"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.middleware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.middleware/oslo.middleware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.middleware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-middleware/oslo-middleware-1.0.0.ebuild b/dev-python/oslo-middleware/oslo-middleware-1.0.0.ebuild
new file mode 100644
index 00000000000..d7d813393ae
--- /dev/null
+++ b/dev-python/oslo-middleware/oslo-middleware-1.0.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library includes components to be injected into wsgi pipelines to intercept request/response flows"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.middleware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.middleware/oslo.middleware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.middleware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-middleware/oslo-middleware-1.1.0.ebuild b/dev-python/oslo-middleware/oslo-middleware-1.1.0.ebuild
new file mode 100644
index 00000000000..6df908b1546
--- /dev/null
+++ b/dev-python/oslo-middleware/oslo-middleware-1.1.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library includes components to be injected into wsgi pipelines to intercept request/response flows"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.middleware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.middleware/oslo.middleware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.middleware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-middleware/oslo-middleware-1.2.0.ebuild b/dev-python/oslo-middleware/oslo-middleware-1.2.0.ebuild
new file mode 100644
index 00000000000..96f95ba10e8
--- /dev/null
+++ b/dev-python/oslo-middleware/oslo-middleware-1.2.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library includes components to be injected into wsgi pipelines to intercept request/response flows"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.middleware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.middleware/oslo.middleware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.middleware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-middleware/oslo-middleware-1.3.0.ebuild b/dev-python/oslo-middleware/oslo-middleware-1.3.0.ebuild
new file mode 100644
index 00000000000..1d182ae7875
--- /dev/null
+++ b/dev-python/oslo-middleware/oslo-middleware-1.3.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library includes components to be injected into wsgi pipelines to intercept request/response flows."
+HOMEPAGE="https://pypi.python.org/pypi/oslo.middleware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.middleware/oslo.middleware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.middleware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-policy/Manifest b/dev-python/oslo-policy/Manifest
new file mode 100644
index 00000000000..d5820f0bb3b
--- /dev/null
+++ b/dev-python/oslo-policy/Manifest
@@ -0,0 +1 @@
+DIST oslo.policy-0.3.2.tar.gz 31745 SHA256 e69a5c559f95bcbf91eb0ea9f16aa65f0fe5fccc7fa03693d4cc991b76e969a6 SHA512 55043f7cbb93799dc53735844d8a315bbdfdba6c83121612737e6125f78e9396f071b2ff6d67133b582228e7e3a36912a4ab02aaa6641ce62f8820a1500bdd99 WHIRLPOOL a93e99f46db150e14327f5a6109dec56993a78c28ef93daa630418685da4d60d1017d8d805ae856eccf8e7553983dec7cc4b87005f12b965a9b4d75348e288e7
diff --git a/dev-python/oslo-policy/metadata.xml b/dev-python/oslo-policy/metadata.xml
new file mode 100644
index 00000000000..e0f0463b6ff
--- /dev/null
+++ b/dev-python/oslo-policy/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Oslo Policy library provides support for RBAC policy enforcement across all OpenStack services.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.policy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-policy/oslo-policy-0.3.2.ebuild b/dev-python/oslo-policy/oslo-policy-0.3.2.ebuild
new file mode 100644
index 00000000000..034d0a2d730
--- /dev/null
+++ b/dev-python/oslo-policy/oslo-policy-0.3.2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4)
+
+inherit distutils-r1
+
+DESCRIPTION="The Oslo Policy library provides support for RBAC policy enforcement across all OpenStack services."
+HOMEPAGE="https://pypi.python.org/pypi/oslo.policy"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.policy/oslo.policy-${PV}.tar.gz"
+S="${WORKDIR}/oslo.policy-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-rootwrap/Manifest b/dev-python/oslo-rootwrap/Manifest
new file mode 100644
index 00000000000..29a1a0a78ca
--- /dev/null
+++ b/dev-python/oslo-rootwrap/Manifest
@@ -0,0 +1,3 @@
+DIST oslo.rootwrap-1.2.0.tar.gz 21838 SHA256 95dcb20ebeb5a178fa25e7815d3a17e0cbd92c5eaf0b6e9e677c1eadd2c5fc22 SHA512 868a0ca97049ca2d750b7d52401a1e87efcfefb170e8dea4768b2e75e60f01d797181421c93e1aa1166d44e5ef8abceecc69c267a249706cf8ba05bb5c21f872 WHIRLPOOL 34a0728d6e93fd27c474a9234f73ddc6d0e2762917222ea5b847251f8ae52329a02de4e29987cb9a867596cb8a43b34a80d20f9bc391090785d785863eec11f5
+DIST oslo.rootwrap-1.3.0.tar.gz 37576 SHA256 42081a30779be0a8e33ee53f4e1235c17080278c4285505a6b65243740aab629 SHA512 256b2da73818ff7b7c02a0fbfaa90f9c93877e1f5f1ec15b2f68af6c90169fde639bb6334d2eae352cbd80a3006f6de472843bf7e499d96eb056b6d57077ca56 WHIRLPOOL 4b05d567bc2ce63f6da9f144de91246ab9d6857b388f75bbb80fc529339eda1be4b485c057249e4a67fdd5702f2474fb2010f8b4155053cd607ce18df4f64533
+DIST oslo.rootwrap-1.6.0.tar.gz 48419 SHA256 5fe6d1619a5306f9181899c7cc5251ba5a0de0d3c60f85b2172a2f7d400a4962 SHA512 89f6615f87e9d45e7810157a07df3f8ceeab5f7b6826bc16256294eb9c6031cf6c5c698d92816f31e160d1f5bb98b7564cbf54079b0370ec47b9dbe83c3c2b0f WHIRLPOOL 4109b2e393b41c70e7e94f9f71674b6ea8dc6ae369cfe094f31a3372d049355f690f5bcf2a90804b5f1a0d02560d798471b855c39fcea3b5a577b1f86fba8f10
diff --git a/dev-python/oslo-rootwrap/metadata.xml b/dev-python/oslo-rootwrap/metadata.xml
new file mode 100644
index 00000000000..cfdefbb90e7
--- /dev/null
+++ b/dev-python/oslo-rootwrap/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Oslo Rootwrap allows fine filtering of shell commands to run as root from OpenStack services.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.rootwrap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-rootwrap/oslo-rootwrap-1.2.0.ebuild b/dev-python/oslo-rootwrap/oslo-rootwrap-1.2.0.ebuild
new file mode 100644
index 00000000000..e4c9c81c8d0
--- /dev/null
+++ b/dev-python/oslo-rootwrap/oslo-rootwrap-1.2.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="The Oslo Rootwrap allows fine filtering of shell commands to run as root from OpenStack services"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.config"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.rootwrap/oslo.rootwrap-${PV}.tar.gz"
+S="${WORKDIR}/oslo.rootwrap-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ dev-python/subunit[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.17[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.32[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/six-1.4.1[${PYTHON_USEDEP}]"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ sed -i 's/sbin\/ip/bin\/ip/g' tests/test_rootwrap.py
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-rootwrap/oslo-rootwrap-1.3.0.ebuild b/dev-python/oslo-rootwrap/oslo-rootwrap-1.3.0.ebuild
new file mode 100644
index 00000000000..10647f92a09
--- /dev/null
+++ b/dev-python/oslo-rootwrap/oslo-rootwrap-1.3.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="The Oslo Rootwrap allows fine filtering of shell commands to run as root from OpenStack services"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.config"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.rootwrap/oslo.rootwrap-${PV}.tar.gz"
+S="${WORKDIR}/oslo.rootwrap-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.15.1[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/six-1.7.0[${PYTHON_USEDEP}]"
+
+# This time half the doc files are missing; Do you want them?
+
+python_test() {
+ sed -i 's/sbin\/ip/bin\/ip/g' tests/test_rootwrap.py
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-rootwrap/oslo-rootwrap-1.6.0.ebuild b/dev-python/oslo-rootwrap/oslo-rootwrap-1.6.0.ebuild
new file mode 100644
index 00000000000..b4177a80039
--- /dev/null
+++ b/dev-python/oslo-rootwrap/oslo-rootwrap-1.6.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="The Oslo Rootwrap allows fine filtering of shell commands to run as root from OpenStack services"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.config"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.rootwrap/oslo.rootwrap-${PV}.tar.gz"
+S="${WORKDIR}/oslo.rootwrap-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ sed -i 's/sbin\/ip/bin\/ip/g' tests/test_rootwrap.py
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-serialization/Manifest b/dev-python/oslo-serialization/Manifest
new file mode 100644
index 00000000000..a957512bd29
--- /dev/null
+++ b/dev-python/oslo-serialization/Manifest
@@ -0,0 +1,4 @@
+DIST oslo.serialization-1.0.0.tar.gz 16242 SHA256 f9748cfbce1cb2a48942f12cf64a558f607135cddd610dadef8a036aa879063c SHA512 5cde309368b61f7fbf4ea6ece4c7e26bb1c43f4eb96adee8aea89810d81d0b112a1d8443b658f6d25558c0e9071b55ba81ddbea608bc51459afb3704ac9bd78b WHIRLPOOL 2c7dc9223e23d8df3e5ac0c3962ca1d8f66c3bf1f67943274aefc03245f65d312ab33353ea3dc8b63a748a785524b1e5a846361965f2c381fcec90dff51becd4
+DIST oslo.serialization-1.3.0.tar.gz 22586 SHA256 6d5b0f8a0bdb59a7818e62c4c85c4f1ea81f634f2add368b553c93a5c4f28e93 SHA512 47db8850d8f3111e5dd0ef7d506cd629ba36d0996487dfe80256557f505d66accbc83131d6066e323eec85f1b9b22776c4a351372e50ab66e059c89a61f8ad16 WHIRLPOOL b4a9889a66c96da0f43f40cf7647da4ea848ec408192170eefe9f3d8cea435eacd5d5e55e2d4701b961b6819147faed82189f3e90cc3e33b1766b014bdc3aa5b
+DIST oslo.serialization-1.4.0.tar.gz 20631 SHA256 082dca272f0a941e1cdca1dc02849c5ddac65fa7d19604096be54cd41e7b4317 SHA512 d6f1428dbceecdad7e0bff8895a8312f00613f17f93b9a9ed66ff4c00e803331b2b19c547ebe3e13eccdd08dce82babd5753c8ede873705bff1cc70cafc1bfd9 WHIRLPOOL 5fe72f5e5ee85d828482bcef066ee86950cc69b1b7850c3340d60b18d2cc3b5221f63e5ef449a081f57c4f31c0f15864610847f072e529da6d832be67d3439de
+DIST oslo.serialization-1.5.0.tar.gz 24068 SHA256 3ca368c96777cb54a656b6429914717d17f05a7bda13ce6065c0930dce0d4f78 SHA512 5d5f7bce43b5ac3b2c7f12a53fb78340bc0a1eb7454426f43f2e9e45c913425a58e7828cd89bcf7b1b7ba58e1e50fe09097fb9b836872a89eb85676baa40b7a8 WHIRLPOOL 68553208d25e0c8f617258ef9c8eafb3d7b331794b26659963c170474435f7456cf4e7fe33134407965cb0f5b490a48655b08a7154bb76988327dbe344cc2c87
diff --git a/dev-python/oslo-serialization/metadata.xml b/dev-python/oslo-serialization/metadata.xml
new file mode 100644
index 00000000000..d046d558284
--- /dev/null
+++ b/dev-python/oslo-serialization/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.serialization</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-serialization/oslo-serialization-1.0.0-r1.ebuild b/dev-python/oslo-serialization/oslo-serialization-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..e73e476cef1
--- /dev/null
+++ b/dev-python/oslo-serialization/oslo-serialization-1.0.0-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.serialization library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Note: not in tree
+#test? ( <dev-python/hacking-0.8[${PYTHON_USEDEP}] )
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.5.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due ot the use of namespace packages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ PYTHONPATH="${TEST_DIR}/lib:${PYTHONPATH}"
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-serialization/oslo-serialization-1.0.0.ebuild b/dev-python/oslo-serialization/oslo-serialization-1.0.0.ebuild
new file mode 100644
index 00000000000..6c446bc5724
--- /dev/null
+++ b/dev-python/oslo-serialization/oslo-serialization-1.0.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.serialization library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Note: not in tree
+#test? ( <dev-python/hacking-0.8[${PYTHON_USEDEP}] )
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.5.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due ot the use of namespace packages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ PYTHONPATH="${TEST_DIR}/lib:${PYTHONPATH}"
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-serialization/oslo-serialization-1.3.0-r1.ebuild b/dev-python/oslo-serialization/oslo-serialization-1.3.0-r1.ebuild
new file mode 100644
index 00000000000..95cf01c9653
--- /dev/null
+++ b/dev-python/oslo-serialization/oslo-serialization-1.3.0-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.serialization library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Note: not in tree
+#test? ( <dev-python/hacking-0.8[${PYTHON_USEDEP}] )
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due ot the use of namespace packages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ PYTHONPATH="${TEST_DIR}/lib:${PYTHONPATH}"
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-serialization/oslo-serialization-1.3.0.ebuild b/dev-python/oslo-serialization/oslo-serialization-1.3.0.ebuild
new file mode 100644
index 00000000000..e110bba05c5
--- /dev/null
+++ b/dev-python/oslo-serialization/oslo-serialization-1.3.0.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.serialization library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+# Note: not in tree
+#test? ( <dev-python/hacking-0.8[${PYTHON_USEDEP}] )
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due ot the use of namespace packages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ PYTHONPATH="${TEST_DIR}/lib:${PYTHONPATH}"
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-serialization/oslo-serialization-1.4.0.ebuild b/dev-python/oslo-serialization/oslo-serialization-1.4.0.ebuild
new file mode 100644
index 00000000000..b271274f544
--- /dev/null
+++ b/dev-python/oslo-serialization/oslo-serialization-1.4.0.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.serialization library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+# Note: not in tree
+#test? ( <dev-python/hacking-0.8[${PYTHON_USEDEP}] )
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due ot the use of namespace packages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ PYTHONPATH="${TEST_DIR}/lib:${PYTHONPATH}"
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-serialization/oslo-serialization-1.5.0.ebuild b/dev-python/oslo-serialization/oslo-serialization-1.5.0.ebuild
new file mode 100644
index 00000000000..e3ecfd8bdb7
--- /dev/null
+++ b/dev-python/oslo-serialization/oslo-serialization-1.5.0.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="oslo.serialization library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+# Note: not in tree
+#test? ( <dev-python/hacking-0.8[${PYTHON_USEDEP}] )
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due ot the use of namespace packages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ PYTHONPATH="${TEST_DIR}/lib:${PYTHONPATH}"
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-sphinx/Manifest b/dev-python/oslo-sphinx/Manifest
new file mode 100644
index 00000000000..14325dad08e
--- /dev/null
+++ b/dev-python/oslo-sphinx/Manifest
@@ -0,0 +1,3 @@
+DIST oslosphinx-2.2.0.tar.gz 21094 SHA256 a0f650b9c79c333a4fbd51ebeab7c6f5f957c400c13f5b89a936afbc16de8874 SHA512 d8efc5c1852dd195ff5a13847674093915eb1fcaed94bd46ec50667888b851786f362340182e507cbecabbb4155ed456af4f4611c689db67738613c409bc0473 WHIRLPOOL 5e48bcac16123041f6ca9d5e2eaca329af10729a995ff8ad1db6bd01acf926891a4162515940a7984a6cca872fc80c9063ab721ccf76991eec91888f3b8d60b6
+DIST oslosphinx-2.5.0.tar.gz 26445 SHA256 d0452adbfee87d70ccddc270173362efc14c423cad3b27f96409932613051a7d SHA512 91ea48d70ff3f850f4c7ada54500f150b40f63bed2476312dc5aab3714533c906171fa88a564bc541f9c1103242dd7e96809e564fef21d6f8a529770b387159a WHIRLPOOL a58e5f7e3d391c2e91e21dd86fbafb30e7b15af7bea07994a7aa5f02da85bf44575b7b3047c34a435968d4dbfd6e70b0806f5a63943262453665380d11b44886
+DIST oslosphinx-3.0.0.tar.gz 25644 SHA256 d39129be6b6076e087ab9a108c1b17f67cbb233ffc2481528df3d76b612cc1f6 SHA512 f2b5f35124bac9bf661ba45af1f18703725d5b5432cc708689a548bde6918975722729f321fb4c1fc8a146011c7e86c1c6abfdc746806d4bf7fa7d640e057a0c WHIRLPOOL 8ccc00a71a3d5f67a33a989120ad2591977169b93a5d81fd2c7798a6b93ad33ce45e6ebd2be69c7e0b0e4fa2e79719e393e63f9a250b50e7b5b9d4621bf03e94
diff --git a/dev-python/oslo-sphinx/metadata.xml b/dev-python/oslo-sphinx/metadata.xml
new file mode 100644
index 00000000000..be8e747352d
--- /dev/null
+++ b/dev-python/oslo-sphinx/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Theme and extension support for Sphinx documentation from the OpenStack project.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslosphinx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-sphinx/oslo-sphinx-2.2.0-r1.ebuild b/dev-python/oslo-sphinx/oslo-sphinx-2.2.0-r1.ebuild
new file mode 100644
index 00000000000..030d3c62be2
--- /dev/null
+++ b/dev-python/oslo-sphinx/oslo-sphinx-2.2.0-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN="${PN//-/}"
+
+DESCRIPTION="OpenStack Sphinx Extensions"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+# NOTE: dev-python/hacking is unecessary as there are no tests
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+"
+RDEPEND=""
diff --git a/dev-python/oslo-sphinx/oslo-sphinx-2.5.0.ebuild b/dev-python/oslo-sphinx/oslo-sphinx-2.5.0.ebuild
new file mode 100644
index 00000000000..d605f8c88db
--- /dev/null
+++ b/dev-python/oslo-sphinx/oslo-sphinx-2.5.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN="${PN//-/}"
+
+DESCRIPTION="OpenStack Sphinx Extensions"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~hppa ~ppc64 x86"
+IUSE=""
+
+# NOTE: dev-python/hacking is unecessary as there are no tests
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-sphinx/oslo-sphinx-3.0.0.ebuild b/dev-python/oslo-sphinx/oslo-sphinx-3.0.0.ebuild
new file mode 100644
index 00000000000..0c4d9831e30
--- /dev/null
+++ b/dev-python/oslo-sphinx/oslo-sphinx-3.0.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN="${PN//-/}"
+
+DESCRIPTION="OpenStack Sphinx Extensions and Theme"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86"
+IUSE="doc"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=">=dev-python/requests-2.5.2[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-utils/Manifest b/dev-python/oslo-utils/Manifest
new file mode 100644
index 00000000000..d7c00aa8e8d
--- /dev/null
+++ b/dev-python/oslo-utils/Manifest
@@ -0,0 +1,6 @@
+DIST oslo.utils-1.0.0.tar.gz 32719 SHA256 4d1fdb896eb7a690ddf2a04b47c347caefaf1117bb2be83723546fbaa5141864 SHA512 09c6b759f39eb90ec382f68f3cf70e600847bdc6c44802a82e279a10be75587fe5e67f5e5b136ab6ac338b69ff484a869dbf236e0e46fc72a90ca69619a53c9b WHIRLPOOL 470720887a248afc953c691ba8e659fb010b3b59708992a34387814487b3077f723879f603d931d1a14efd87fe95f868103ca7beaa8bb78c97a9510c28e8364c
+DIST oslo.utils-1.1.0.tar.gz 40359 SHA256 f12dfba246ff52e94ec005d5c5862c0300e6cd295ceb953b37b876571a544dc1 SHA512 6b6ffc086e88c0222e9931c78680f15f021b9e9bb211bcb9b4114cc62f47b5bf85846b58e7b792355c7bfe1c01dddcb78871f981fde719360c3889daa85a5ddc WHIRLPOOL f44c34acdecd1d4bd495c60e65d41cebdaa7ef1a39fc4a749a339161ec428e3d274462e34fa8729aa2e7bcdc1f0de66e8d3f87c022c6c91425f1778ca7bef145
+DIST oslo.utils-1.2.1.tar.gz 54946 SHA256 9cd8bcde345554582fd12c6daab81a7327a90c72861aa644e8b7b3fbfed5deba SHA512 f928afe21ef908cb6f20beb42502c4709827fdcc7e44f81fd5adeb4ac8faf07649c813824702e0a1972e8100ec894f441017dfc3a887f1b56afd4bfa24846803 WHIRLPOOL c91b4e2eb283b46df6341d7f52ca61ee20b286c84afd8ca8a287627a7d3be914b343c9fd1ea141e02f2c7179c96921ab38c6d094666ba3979dc639fa5fb2e4f7
+DIST oslo.utils-1.3.0.tar.gz 57677 SHA256 1586065ba1cb4e5dbd731fd612d52945af815b9e3e1404209d8c955b87909b84 SHA512 cd8855ab3fc7123b6410c52142a82fbce0813defe77ca6e7434bd2d4f678c8c477a045aa6abd9fde8915874e45f058094f017a6150f4e07917db44b545788f01 WHIRLPOOL 1cecace92c179f7db2c382d0e6cbf53cb7a2ec8f38d4108f87b78de7ae4204d044af8d3cd5e5a75facda0d71b3933f5339d0bc5f9ff2869696173862cdf309f6
+DIST oslo.utils-1.4.0.tar.gz 61352 SHA256 f90e1d52542225031bc7e3d9bdc1b1270a80388e30285532124586e45e9317f6 SHA512 43cb855a9f05986db34f6aec845d0c4d6eb4c2e5fdb10b7f348786a6e28122eb6f476bb09af76bb406a985e4fae3f0b94eb5f1bbfd5b41fa5853cbb2d94b3a24 WHIRLPOOL f7f282199641a22f23fd3214b73ca1c52a7f241ebd4b67c1f1ba8505b62a42d70c7ed6a665357fb017de8ac1e8d7267f0f367bf88786dc97b23b0a9669328372
+DIST oslo.utils-1.5.0.tar.gz 67945 SHA256 797c048eb266abd7cf2e872b460e466453cc593efa524675e40b5abd3cdcaba6 SHA512 c9a582ef45223eab01ef49a8c248345cfccf57edb9d7d257c71f0f6014fdc95e6d47ecc84905b380dd1a4869636cdcf84f5f5648741a01323a37e16d818f3f14 WHIRLPOOL fb15d70b4b81faddd61d1d32f07e41a8e65052c407f3dfddb1d77a7f44150ba5da99327e28edad3f8eb65a6140f30bd83d6b68646ad2bf10985ba870c1d2442a
diff --git a/dev-python/oslo-utils/metadata.xml b/dev-python/oslo-utils/metadata.xml
new file mode 100644
index 00000000000..9a4d5257d74
--- /dev/null
+++ b/dev-python/oslo-utils/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.utils</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-utils/oslo-utils-1.0.0.ebuild b/dev-python/oslo-utils/oslo-utils-1.0.0.ebuild
new file mode 100644
index 00000000000..090b028c6b7
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-1.0.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+DISTUTILS_IN_SOURCE_BUILD=TRUE
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.1[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due to the use of namespace packcages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-utils/oslo-utils-1.1.0.ebuild b/dev-python/oslo-utils/oslo-utils-1.1.0.ebuild
new file mode 100644
index 00000000000..23555d7c3d0
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-1.1.0.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due to the use of namespace packages but root
+# cause was never truly established.
+#
+# Tests fail with:
+# ImportError: No module named 'oslo.utils
+
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-utils/oslo-utils-1.2.1.ebuild b/dev-python/oslo-utils/oslo-utils-1.2.1.ebuild
new file mode 100644
index 00000000000..069dad23475
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-1.2.1.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due to the use of namespace packages but root
+# cause was never truly established.
+#
+# Tests fail with:
+# ImportError: No module named 'oslo.utils
+
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-utils/oslo-utils-1.3.0.ebuild b/dev-python/oslo-utils/oslo-utils-1.3.0.ebuild
new file mode 100644
index 00000000000..df4701eed26
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-1.3.0.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/hacking-0.9.1[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation
+#
+# Installation appears to fail due to the use of namespace packages but root
+# cause was never truly established.
+#
+# Tests fail with:
+# ImportError: No module named 'oslo.utils
+
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-utils/oslo-utils-1.4.0.ebuild b/dev-python/oslo-utils/oslo-utils-1.4.0.ebuild
new file mode 100644
index 00000000000..42d027bb37c
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-1.4.0.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/hacking-0.9.1[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation
+#
+# Installation appears to fail due to the use of namespace packages but root
+# cause was never truly established.
+#
+# Tests fail with:
+# ImportError: No module named 'oslo.utils
+
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-utils/oslo-utils-1.5.0.ebuild b/dev-python/oslo-utils/oslo-utils-1.5.0.ebuild
new file mode 100644
index 00000000000..214f10a8e66
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-1.5.0.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+# Note: Tests fail due to requiring installation
+#
+# Installation appears to fail due to the use of namespace packages but root
+# cause was never truly established.
+#
+# Tests fail with:
+# ImportError: No module named 'oslo.utils
+
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/oslo-vmware/Manifest b/dev-python/oslo-vmware/Manifest
new file mode 100644
index 00000000000..1e59a5ff9d1
--- /dev/null
+++ b/dev-python/oslo-vmware/Manifest
@@ -0,0 +1,3 @@
+DIST oslo.vmware-0.11.1.tar.gz 103846 SHA256 594231dfeb2294d2cee627da9c4ec8438d985c03e4e711f8d10c073641cde293 SHA512 04c27708e5da05710ef7f86e0a2dace7c3400e27728947d02d2d5fe4362811baa42b0e1c5298709b1bb416e45327129345276dce0c34bc9b2fa6f3d338f8d0ba WHIRLPOOL 6f6337ab64a0de5773791b1f282c1c9cef221705c4ea346a067d4b450b4e6e17ae27990244f2f8051996cf7e739e4c027f96c01e6cc3b3381e17d5c0bf985a3b
+DIST oslo.vmware-0.11.2.tar.gz 102933 SHA256 036cf0ad6ab0d4defd743678999851d570c2ca1ff34eba916920ce54d9a5d348 SHA512 632635adcc09749d0fe8bd204e1b06374e9790cec4d53cbaa06b2afa6745460cd417d60df26cb1e287d6e9de98eaa09788c6797993a06d8649b765a9298d0f39 WHIRLPOOL dd77312f307e5f65a969bae52e52dbab175e4a25f627d3ccf35435ac64c551093b8b67b707388d46175d93f344e2731ebdfa2ba6062ac3b562a00877cc98b880
+DIST oslo.vmware-0.7.0.tar.gz 69513 SHA256 c4c7f3b0a3734d357122beec977fea3cb48988c09c34ad4c5cfcd8211853484f SHA512 02e899613c23f4d7b2f46b7388a5a15aceae2537af0d9bf311b0b2a4b22d3afd534b07d0d444e1bfe2a0c0ae481924970a2b9b0274ca496dce1b6ff909f8eaab WHIRLPOOL 049cd90379a11b0e59884a25c5f8224bca40b8cdd28aaa5d8c2cc9da2c83850fb6ace2bd92cf04e665c4658831eb94bbaa3ffcbd702bb4e1e6663624d154bbd7
diff --git a/dev-python/oslo-vmware/metadata.xml b/dev-python/oslo-vmware/metadata.xml
new file mode 100644
index 00000000000..b86dca4897a
--- /dev/null
+++ b/dev-python/oslo-vmware/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>openstack@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ The Oslo messaging API supports RPC and notifications over a number of different messaging transports.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslo.vmware</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslo-vmware/oslo-vmware-0.11.1.ebuild b/dev-python/oslo-vmware/oslo-vmware-0.11.1.ebuild
new file mode 100644
index 00000000000..23d1df81813
--- /dev/null
+++ b/dev-python/oslo-vmware/oslo-vmware-0.11.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo VMware library for OpenStack projects"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.vmware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.vmware/oslo.vmware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.vmware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/pylint-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/suds-0.4[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.8.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-concurrency-1.4.1[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-vmware/oslo-vmware-0.11.2.ebuild b/dev-python/oslo-vmware/oslo-vmware-0.11.2.ebuild
new file mode 100644
index 00000000000..d0f882ec9ea
--- /dev/null
+++ b/dev-python/oslo-vmware/oslo-vmware-0.11.2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo VMware library for OpenStack projects"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.vmware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.vmware/oslo.vmware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.vmware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/pylint-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ <dev-python/mock-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/stevedore-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/suds-0.6[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.16.1[${PYTHON_USEDEP}]
+ !~dev-python/eventlet-0.17.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.8.3[${PYTHON_USEDEP}]
+ <dev-python/urllib3-1.11[${PYTHON_USEDEP}]
+ >=dev-python/oslo-concurrency-1.8.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-concurrency-1.9.0[${PYTHON_USEDEP}]
+"
+python_prepare() {
+ sed -i '/suds-jurko/d' requirements-py3.txt || die
+}
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslo-vmware/oslo-vmware-0.7.0.ebuild b/dev-python/oslo-vmware/oslo-vmware-0.7.0.ebuild
new file mode 100644
index 00000000000..d0bdcbfea06
--- /dev/null
+++ b/dev-python/oslo-vmware/oslo-vmware-0.7.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo VMware library for OpenStack projects"
+HOMEPAGE="https://pypi.python.org/pypi/oslo.vmware"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.vmware/oslo.vmware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.vmware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ ~dev-python/pylint-0.25.2[${PYTHON_USEDEP}]
+
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/suds-0.4[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.15.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ nosetests tests/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/oslotest/Manifest b/dev-python/oslotest/Manifest
new file mode 100644
index 00000000000..113f0987cb3
--- /dev/null
+++ b/dev-python/oslotest/Manifest
@@ -0,0 +1,4 @@
+DIST oslotest-1.3.0.tar.gz 18084 SHA256 7c29dcf2289b4de8b3a64764ae617626e86bda948746aced80c49452df9e038a SHA512 f2db5ba6eedebc5937cbee94aa18e3b5ea9933d833ceb1e3906a18d7bc2bc9b423c7608ecad4ab4f8e9099a57ace1b610259a8b1dd7e8ad7f1d60a46ba717bcb WHIRLPOOL 2a4bd1e55ef379a0c7fd413a79af35e208ec3ff90b90fcc84bf36bb2e1a17bc3954545d81e32de4adf410872832b763e470dc3c99ce1893cea5dc1339df9d4ae
+DIST oslotest-1.5.0.tar.gz 20622 SHA256 df732f8bd4b6b5d6869e4b570624c4a0ee3f906bee9b4cd70e8933b0dcef5586 SHA512 9e4f335d8eaa9b4c22f127b43ae5a96cf036ea0238b557a549a2b3b465e5f06e7b4c58a72e752e6d1be40a9dc6cee6c331bca4635679eb80c0a36d858c195ae4 WHIRLPOOL 552cd5c5e96634d39fd334619807645eb8258879c1048771b64c618bca3497a1c9449b5b51111a86c7b231e9721a4982b6679fbbb22bf08d546fdbe219814498
+DIST oslotest-1.5.1.tar.gz 20723 SHA256 8123fb3471d82b141614728e66beecedecdd33c2844d1ef0c14c89b833339981 SHA512 b69770d260060bfec4185a3d1484d304be0e48c4dfa6ab2613eb3a73fd046eb3b0ad90ed061d8c6cca65bd3e76d7fdbe8832a73ea6674e5c9aa92d7a3978322f WHIRLPOOL 777c6c8a93502e795b3c61ddab62d8b3dffdaed62b65f73b6c63180721a00b4a64fef48a631919ef75c3c2b7e42237d71be78548ef62198113e27ffead4c1ef9
+DIST oslotest-1.6.0.tar.gz 21226 SHA256 cb65b53b753375b669dcdb4717c362a205d19e3d16ca26310c0916cfd359354c SHA512 e7eb97dfde919b523c302d7dc495d835791c646b98ce579a6056e2412b93c1791d6d7e2c8333d142b89f1e7a414f1d5c61a321b41d8ad0ba4592227f9e3073a7 WHIRLPOOL 3b8f984f9adccf9abfdd70f5b593a16a0061bac0705c3331d0065a1ad6bc4a97b402e7f4e757a22f01e203980865510bf7741baffc9ede77ad1f652e15b6dfb1
diff --git a/dev-python/oslotest/metadata.xml b/dev-python/oslotest/metadata.xml
new file mode 100644
index 00000000000..acff0385e32
--- /dev/null
+++ b/dev-python/oslotest/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ OpenStack test framework and test fixtures
+ The oslotest package is cross-tested against its consuming projects to
+ ensure that no changes to the library break the tests in those other projects.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">oslotest</remote-id>
+ <remote-id type="launchpad">oslo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/oslotest/oslotest-1.3.0.ebuild b/dev-python/oslotest/oslotest-1.3.0.ebuild
new file mode 100644
index 00000000000..0abebfe40a7
--- /dev/null
+++ b/dev-python/oslotest/oslotest-1.3.0.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack test framework"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -rf .testrepository || die "coudln't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use doc && doman doc/build/man/oslotest.1
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "man page installation requires USE=doc"
+}
diff --git a/dev-python/oslotest/oslotest-1.5.0.ebuild b/dev-python/oslotest/oslotest-1.5.0.ebuild
new file mode 100644
index 00000000000..c2cdee57e80
--- /dev/null
+++ b/dev-python/oslotest/oslotest-1.5.0.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack test framework"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "coudln't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use doc && doman doc/build/man/oslotest.1
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "man page installation requires USE=doc"
+}
diff --git a/dev-python/oslotest/oslotest-1.5.1.ebuild b/dev-python/oslotest/oslotest-1.5.1.ebuild
new file mode 100644
index 00000000000..e4ab5e2ce8e
--- /dev/null
+++ b/dev-python/oslotest/oslotest-1.5.1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack test framework"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "coudln't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use doc && doman doc/build/man/oslotest.1
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "man page installation requires USE=doc"
+}
diff --git a/dev-python/oslotest/oslotest-1.6.0.ebuild b/dev-python/oslotest/oslotest-1.6.0.ebuild
new file mode 100644
index 00000000000..59926b5de5b
--- /dev/null
+++ b/dev-python/oslotest/oslotest-1.6.0.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Oslo test framework"
+HOMEPAGE="http://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ rm -rf .testrepository || die "coudln't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use doc && doman doc/build/man/oslotest.1
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "man page installation requires USE=doc"
+}
diff --git a/dev-python/osprofiler/Manifest b/dev-python/osprofiler/Manifest
new file mode 100644
index 00000000000..941889a4159
--- /dev/null
+++ b/dev-python/osprofiler/Manifest
@@ -0,0 +1 @@
+DIST osprofiler-0.3.0.tar.gz 42443 SHA256 7d7e1d0b93ce96901f7a307a712196273818a8f20e59916ff099589b48f53207 SHA512 a25c076f090b6e931efde487b8b000695be7077ca235e860997499dc3a67699cbf7ead9299f1aba77bcb9c402e7fc3dabc1005f349d349b9400b70c995001851 WHIRLPOOL cdc192ba11974de635f1e21da93cb1b5123c168c604fabf73471921618bc04f337d7173e8f9a5be4fdfc360ddf2f902b8e118af04804c4d9768745ef9a27d813
diff --git a/dev-python/osprofiler/metadata.xml b/dev-python/osprofiler/metadata.xml
new file mode 100644
index 00000000000..0960b3e8e57
--- /dev/null
+++ b/dev-python/osprofiler/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ OpenStack Profiler Library
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">osprofiler</remote-id>
+ <remote-id type="launchpad">osprofiler</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/osprofiler/osprofiler-0.3.0.ebuild b/dev-python/osprofiler/osprofiler-0.3.0.ebuild
new file mode 100644
index 00000000000..96628bb2ea4
--- /dev/null
+++ b/dev-python/osprofiler/osprofiler-0.3.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Profiler Library"
+HOMEPAGE="http://launchpad.net/osprofiler"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pSQL/Manifest b/dev-python/pSQL/Manifest
new file mode 100644
index 00000000000..e874b105d6e
--- /dev/null
+++ b/dev-python/pSQL/Manifest
@@ -0,0 +1,2 @@
+DIST pSQL-1.2.0.tar.gz 21046 SHA256 fc955844e1263ccaa8e59f10266e280569b8c043c3bade178bda66daf58f80b2 SHA512 f6dc4a87db7faca23a9b70dd20413f9f4f35dee3be001bd443bc8e3bc572316b6103c02de8ff40406811e6c62b40b2b54efa72421dd2742ecc023168c709a3ce WHIRLPOOL 94e1cc3da19b5c2ce5ac9a10710c83ebace2e7e929f061ad670b5baf2af5e38762945fbdba4250961c31d756ed2048f763b9a66d5d99e8b54e9c3d424c5df996
+DIST pSQL-1.2.1.tar.gz 21158 SHA256 9467f379656fa3b4053de67baa5bb0e650f1bcc437bbe0c0a7b088d1bf4e31d0 SHA512 39b21327eb2cd1ad6207c08e2ce6507c7d05992ef852fd06427dcb461e5175b24e983e432c8616c759f291d3bfd9906a654834afa79e37cc7c839ddb5e181779 WHIRLPOOL ed997754faa3b100e38656a6cc5b16574327fe0a05de17516bc5b5e6e5329f42c95151f373f45623bb666ed57c314e43d8562f6aa7944ee7afafb4df6ddaf3ed
diff --git a/dev-python/pSQL/metadata.xml b/dev-python/pSQL/metadata.xml
new file mode 100644
index 00000000000..361f5aeb05e
--- /dev/null
+++ b/dev-python/pSQL/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/pSQL/pSQL-1.2.0.ebuild b/dev-python/pSQL/pSQL-1.2.0.ebuild
new file mode 100644
index 00000000000..674b2ab45a4
--- /dev/null
+++ b/dev-python/pSQL/pSQL-1.2.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1
+
+DESCRIPTION="MySQL abstraction layer for python"
+HOMEPAGE="http://software.fionet.com/pSQL/"
+SRC_URI="http://software.fionet.com/pSQL/release/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ dev-python/mysql-python[${PYTHON_USEDEP}]
+ dev-python/egenix-mx-base[${PYTHON_USEDEP}]"
+DEPEND=""
+
+src_install() {
+ python_parallel_foreach_impl python_domodule pSQL.py
+
+ dodoc *pSQL
+}
diff --git a/dev-python/pSQL/pSQL-1.2.1.ebuild b/dev-python/pSQL/pSQL-1.2.1.ebuild
new file mode 100644
index 00000000000..674b2ab45a4
--- /dev/null
+++ b/dev-python/pSQL/pSQL-1.2.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1
+
+DESCRIPTION="MySQL abstraction layer for python"
+HOMEPAGE="http://software.fionet.com/pSQL/"
+SRC_URI="http://software.fionet.com/pSQL/release/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ dev-python/mysql-python[${PYTHON_USEDEP}]
+ dev-python/egenix-mx-base[${PYTHON_USEDEP}]"
+DEPEND=""
+
+src_install() {
+ python_parallel_foreach_impl python_domodule pSQL.py
+
+ dodoc *pSQL
+}
diff --git a/dev-python/paisley/Manifest b/dev-python/paisley/Manifest
new file mode 100644
index 00000000000..624a602f61a
--- /dev/null
+++ b/dev-python/paisley/Manifest
@@ -0,0 +1 @@
+DIST paisley-0.3.1.tar.gz 6373 SHA256 531767b266c82e72d7f58e91b8e8093da6d227c779069894b50253f1fad280a3 SHA512 abfceece7c3156fd3ed234e1c2ed07e8f3e366c735969e382feb3b8c464679d8a9f0a224be0720c351b3e19d576bb5aff6fc11d789bfd879a0f2aba40dfaef73 WHIRLPOOL fe4955aebadf9a508210f55b2a20c47bf5af974949fd1cec1d7192a7f109ae089ed336dd86e8c839dfb5a29a0b455d4268e655ccbc706458857b95e6980fd2e1
diff --git a/dev-python/paisley/metadata.xml b/dev-python/paisley/metadata.xml
new file mode 100644
index 00000000000..ead40ea006d
--- /dev/null
+++ b/dev-python/paisley/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">paisley</remote-id>
+ <remote-id type="launchpad">paisley</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/paisley/paisley-0.3.1-r1.ebuild b/dev-python/paisley/paisley-0.3.1-r1.ebuild
new file mode 100644
index 00000000000..a83a2687f23
--- /dev/null
+++ b/dev-python/paisley/paisley-0.3.1-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Paisley is a CouchDB client written in Python to be used within a Twisted application"
+HOMEPAGE="http://launchpad.net/paisley http://pypi.python.org/pypi/paisley"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "tests failed"
+}
diff --git a/dev-python/paisley/paisley-0.3.1.ebuild b/dev-python/paisley/paisley-0.3.1.ebuild
new file mode 100644
index 00000000000..cbdf944435f
--- /dev/null
+++ b/dev-python/paisley/paisley-0.3.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+DISTUTILS_SRC_TEST="nosetests"
+
+inherit distutils
+
+DESCRIPTION="Paisley is a CouchDB client written in Python to be used within a Twisted application"
+HOMEPAGE="http://launchpad.net/paisley http://pypi.python.org/pypi/paisley"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND="dev-python/simplejson
+ dev-python/twisted-core
+ dev-python/twisted-web"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/pandas/Manifest b/dev-python/pandas/Manifest
new file mode 100644
index 00000000000..f1eb82bdf47
--- /dev/null
+++ b/dev-python/pandas/Manifest
@@ -0,0 +1 @@
+DIST pandas-0.16.2.tar.gz 4931751 SHA256 e01853dfe111f3aea005315573400b7216ddbabbf1f28d482a71217d67ae4f81 SHA512 44874e12a42a01dd7ed88f3f97e954732a534a5e2dc4815ef6203bdb2d88850a607e6631a35ae8fc79f4621a5dfaa34f39bb1c9a0ecfb17da1cf0c10f35ff27b WHIRLPOOL 6f2874ac07b49f4b2aaefdb87375b7c5adb31e3ff60c6b808f3e3467ad82999dd894de884ebbfd64fc7235e875d17ce871b516c96ff71a17310b708597168702
diff --git a/dev-python/pandas/metadata.xml b/dev-python/pandas/metadata.xml
new file mode 100644
index 00000000000..f56691dffb3
--- /dev/null
+++ b/dev-python/pandas/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ Pandas is a Python package providing fast, flexible, and expressive
+ data structures designed to make working with "relational" or
+ "labeled" data both easy and intuitive. It aims to be the
+ fundamental high-level building block for doing practical, real
+ world data analysis in Python.
+</longdescription>
+ <use>
+ <flag name="excel">Pull a few Python packages for Microsoft Excel i/o</flag>
+ <flag name="html">Enable HTML i/o via <pkg>dev-python/beautifulsoup</pkg></flag>
+ <flag name="R">Enable support for R via <pkg>dev-python/rpy</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">pandas</remote-id>
+ <remote-id type="github">pydata/pandas</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pandas/pandas-0.16.2.ebuild b/dev-python/pandas/pandas-0.16.2.ebuild
new file mode 100644
index 00000000000..abe7e64f914
--- /dev/null
+++ b/dev-python/pandas/pandas-0.16.2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils flag-o-matic virtualx
+
+DESCRIPTION="Powerful data structures for data analysis and statistics"
+HOMEPAGE="http://pandas.pydata.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc excel html test R"
+
+EXTRA_DEPEND="
+ >=dev-python/google-api-python-client-1.2.0[$(python_gen_usedep python2_7 pypy)]
+ dev-python/openpyxl[${PYTHON_USEDEP}]
+ dev-python/pymysql[${PYTHON_USEDEP}]
+ dev-python/python-gflags[$(python_gen_usedep python2_7 pypy)]
+ dev-python/psycopg:2[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ "
+CDEPEND="
+ >dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.0[${PYTHON_USEDEP}]
+ !~dev-python/openpyxl-1.9.0[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ >=dev-python/cython-0.19.1[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/html5lib[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-1.6.1[${PYTHON_USEDEP}]
+ dev-python/openpyxl[${PYTHON_USEDEP}]
+ >=dev-python/pytables-3.0.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/rpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+ dev-python/xlrd[$(python_gen_usedep 'python2_7')]
+ dev-python/xlwt[$(python_gen_usedep 'python2_7')]
+ x11-misc/xclip
+ )
+ test? (
+ ${EXTRA_DEPEND}
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )"
+# dev-python/statsmodels invokes a circular dep
+# hence rm from doc? ( ), again
+RDEPEND="${CDEPEND}
+ >=dev-python/numexpr-2.1[${PYTHON_USEDEP}]
+ dev-python/bottleneck[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pytables[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ excel? (
+ dev-python/xlrd[$(python_gen_usedep 'python2_7')]
+ dev-python/xlwt[$(python_gen_usedep 'python2_7')]
+ || (
+ dev-python/xlsxwriter[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-1.6.1[${PYTHON_USEDEP}]
+ )
+ )
+ html? (
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ || (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/html5lib[${PYTHON_USEDEP}] )
+ )
+ R? ( dev-python/rpy[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i doc/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # To build docs the need be located in $BUILD_DIR,
+ # else PYTHONPATH points to unusable modules.
+ if use doc; then
+ cd "${BUILD_DIR}"/lib || die
+ cp -ar "${S}"/doc . && cd doc || die
+ LANG=C PYTHONPATH=. "${EPYTHON}" make.py html || die
+ fi
+}
+
+python_test() {
+ local test_pandas='not network and not disabled'
+ [[ -n "${FAST_PANDAS}" ]] && test_pandas+=' and not slow'
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ VIRTUALX_COMMAND="nosetests"
+ PYTHONPATH=. MPLCONFIGDIR=. HOME=. \
+ virtualmake --verbosity=3 -A "${test_pandas}" pandas
+ popd > /dev/null
+}
+
+python_install_all() {
+ if use doc; then
+ dodoc -r "${BUILD_DIR}"/lib/doc/build/html
+ einfo "An initial build of docs is absent of references to statsmodels"
+ einfo "due to circular dependency. To have them included, emerge"
+ einfo "statsmodels next and re-emerge pandas with USE doc"
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ local x
+ elog "Please install"
+ for x in ${EXTRA_DEPEND}; do
+ optfeature "additional functionality" "${x%%[*}"
+ done
+}
diff --git a/dev-python/pandas/pandas-9999.ebuild b/dev-python/pandas/pandas-9999.ebuild
new file mode 100644
index 00000000000..8eea8e99e51
--- /dev/null
+++ b/dev-python/pandas/pandas-9999.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils flag-o-matic git-r3 virtualx
+
+DESCRIPTION="Powerful data structures for data analysis and statistics"
+HOMEPAGE="http://pandas.pydata.org/"
+SRC_URI=""
+EGIT_REPO_URI="https://github.com/pydata/pandas.git"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS=""
+IUSE="doc excel html test R"
+
+EXTRA_DEPEND="
+ >=dev-python/google-api-python-client-1.2.0[$(python_gen_usedep python2_7 pypy)]
+ dev-python/openpyxl[${PYTHON_USEDEP}]
+ dev-python/pymysql[${PYTHON_USEDEP}]
+ dev-python/python-gflags[$(python_gen_usedep python2_7 pypy)]
+ dev-python/psycopg:2[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/xlsxwriter[${PYTHON_USEDEP}]
+ "
+CDEPEND="
+ >dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.0[${PYTHON_USEDEP}]
+ !~dev-python/openpyxl-1.9.0[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ doc? (
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/html5lib[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-1.6.1[${PYTHON_USEDEP}]
+ dev-python/openpyxl[${PYTHON_USEDEP}]
+ >=dev-python/pytables-3.0.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/rpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.2.1[${PYTHON_USEDEP}]
+ dev-python/xlrd[$(python_gen_usedep 'python2_7')]
+ dev-python/xlwt[$(python_gen_usedep 'python2_7')]
+ x11-misc/xclip
+ )
+ test? (
+ ${EXTRA_DEPEND}
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )"
+# dev-python/statsmodels invokes a circular dep
+# hence rm from doc? ( ), again
+RDEPEND="${CDEPEND}
+ >=dev-python/numexpr-2.1[${PYTHON_USEDEP}]
+ dev-python/bottleneck[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pytables[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ excel? (
+ >=dev-python/openpyxl-1.6.1[${PYTHON_USEDEP}]
+ dev-python/xlrd[$(python_gen_usedep 'python2_7')]
+ dev-python/xlwt[$(python_gen_usedep 'python2_7')]
+ )
+ html? (
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ || (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/html5lib[${PYTHON_USEDEP}] )
+ )
+ R? ( dev-python/rpy[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i doc/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # To build docs the need be located in $BUILD_DIR,
+ # else PYTHONPATH points to unusable modules.
+ if use doc; then
+ cd "${BUILD_DIR}"/lib || die
+ cp -ar "${S}"/doc . && cd doc || die
+ LANG=C PYTHONPATH=. "${EPYTHON}" make.py html || die
+ fi
+}
+
+python_test() {
+ local test_pandas='not network and not disabled'
+ [[ -n "${FAST_PANDAS}" ]] && test_pandas+=' and not slow'
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ VIRTUALX_COMMAND="nosetests"
+ PYTHONPATH=. MPLCONFIGDIR=. HOME=. \
+ virtualmake --verbosity=3 -A "${test_pandas}" pandas
+ popd > /dev/null
+}
+
+python_install_all() {
+ if use doc; then
+ dodoc -r "${BUILD_DIR}"/lib/doc/build/html
+ einfo "An initial build of docs is absent of references to statsmodels"
+ einfo "due to circular dependency. To have them included, emerge"
+ einfo "statsmodels next and re-emerge pandas with USE doc"
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ local x
+ elog "Please install"
+ for x in ${EXTRA_DEPEND}; do
+ optfeature "additional functionality" "${x%%[*}"
+ done
+}
diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest
new file mode 100644
index 00000000000..3a9ed3e04ba
--- /dev/null
+++ b/dev-python/paramiko/Manifest
@@ -0,0 +1,5 @@
+DIST paramiko-1.10.1.tar.gz 822839 SHA256 5fac0dbb3d7498bf4a7e1b8fac920cb8977a90e260d43d7e30fac2d6dd5fbabc SHA512 89d2333592ceff1bb5de9d9cbc4e6b44d29e470c26eeecfe0f34c3506cbead87934347ccfa5a1ac72a70024ce4961858f01b51990569d99971dc24177eac407f WHIRLPOOL 91873637f22068264033a41da517e5b2504bc779aee0ca0252ea0158b80dad1cc472310d40e1a8dfc33e25d86ce80748935e459a0b2e591da9d279127ee0629f
+DIST paramiko-1.12.2.tar.gz 907747 SHA256 d73bdafd1cb7181f7fd22164b55578f2389487aa50e58fa915b22e2f539b50cb SHA512 a8247c27ef3068b1c73ca39d7ce0da36ea7cbf28bdac805c92fd73bbe57c7f84e38433d330d54ea850ef952c57ff596dfb6627caee8e8b9c4ce69b1958fed094 WHIRLPOOL 13b03cb6fa1ec09451a45cba148b6d9790b75affb74bacfb20ada00ffb4e5cc7db5de6a6eda24433882ad305c76ccb1bb29e1e7170d53420e5b2c055b3b98dc3
+DIST paramiko-1.13.0.tar.gz 1108744 SHA256 920d68fdb549189c7ebff89f432cc242161d76554a91ae38fad94e7ab70349f5 SHA512 b05b93eb27600ac9df178aa4f045ee6b20f0052ea5e3f937d4eb6c6e1940208b02f9d6ddabf3070edaf4a68b86ca817ae77ebfb24a7d1dc725be86f99b071fc6 WHIRLPOOL 47baf72cbc9f51532477cc1f4665c6c7a66eaf47eb5b856d506cc4286d832cdda2881f86ef919837dfe43e6db99c186a127d01dbecf012d4b4d4afbd1a7215df
+DIST paramiko-1.15.1.tar.gz 1219256 SHA256 6ed97e2281bb48728692cdc621f6b86a65fdc1d46b178ce250cfec10b977a04c SHA512 146076792e42965aaca08e74630c18422ed767a3da64c63fa63da9a464e1dade5a3f77635a5aae569e5a382d9a31eb4ee738399cd93895e355b4a57119c99f1c WHIRLPOOL 4f4bb6276363130d14c80e55d5c6858712a25404735e9671969d79ff1d1b1399918e24b6c80b275bbf76373a95cb407ca34fba5da8bc92bcd1322e4651ad1354
+DIST paramiko-1.15.2.tar.gz 1220578 SHA256 4f56a671a3eecbb76e6143e6e4ca007d503a39aa79aa9e14ade667fa53fd6e55 SHA512 c8fe6c5e4c99ac0922c08f3c006b55852f54c3043eb3ddae5b6e5fba0592bf08b10ec399ec6865bbe84c759c8a15a00722247409b666f42e93b18bfd658158cd WHIRLPOOL 477e9e3d93f4faa9471c2a3e87ac96e7fe0ecdbdfb838b348ba2873e4bc408e78a5840f02002db6bbea18de8b9e2c83240db5a3c16543e4949ea62250de7a26a
diff --git a/dev-python/paramiko/metadata.xml b/dev-python/paramiko/metadata.xml
new file mode 100644
index 00000000000..3684fd93405
--- /dev/null
+++ b/dev-python/paramiko/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+This is a library for making SSH2 connections (client or server).
+Emphasis is on using SSH2 as an alternative to SSL for making secure
+connections between python scripts. All major ciphers and hash methods
+are supported. SFTP client mode is now supported too.
+</longdescription>
+ <longdescription lang="ja">
+これはSSH2コネクション(クライアントとサーバー)を作り出すためのライブラリです。注
+目点はPython言語スクリプト間のセキュアなコネクションを作り出すSSLの代用にSSHを利
+用している所です。有名なCipherとHash処理の全てがサポートされています。SFTPクライ
+アントもサポートされています。
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">paramiko</remote-id>
+ <remote-id type="github">paramiko/paramiko</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/paramiko/paramiko-1.10.1.ebuild b/dev-python/paramiko/paramiko-1.10.1.ebuild
new file mode 100644
index 00000000000..b5e1fc87610
--- /dev/null
+++ b/dev-python/paramiko/paramiko-1.10.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="https://github.com/paramiko/paramiko/ http://pypi.python.org/pypi/paramiko"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc examples"
+
+RDEPEND=">=dev-python/pycrypto-2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test.py --verbose || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( demos/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/paramiko/paramiko-1.12.2.ebuild b/dev-python/paramiko/paramiko-1.12.2.ebuild
new file mode 100644
index 00000000000..cd18bbed72d
--- /dev/null
+++ b/dev-python/paramiko/paramiko-1.12.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="https://github.com/paramiko/paramiko/ http://pypi.python.org/pypi/paramiko"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris"
+IUSE="doc examples"
+
+RDEPEND=">=dev-python/pycrypto-2.1[${PYTHON_USEDEP}]
+ dev-python/ecdsa"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test.py --verbose || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( demos/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/paramiko/paramiko-1.13.0.ebuild b/dev-python/paramiko/paramiko-1.13.0.ebuild
new file mode 100644
index 00000000000..e3ae8f1d7ce
--- /dev/null
+++ b/dev-python/paramiko/paramiko-1.13.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="http://www.paramiko.org/ https://github.com/paramiko/paramiko/ http://pypi.python.org/pypi/paramiko/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris"
+IUSE="doc examples"
+
+RDEPEND=">=dev-python/pycrypto-2.1[${PYTHON_USEDEP}]
+ >=dev-python/ecdsa-0.9[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# Required for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ "${PYTHON}" test.py --verbose || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( demos/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/paramiko/paramiko-1.15.1-r1.ebuild b/dev-python/paramiko/paramiko-1.15.1-r1.ebuild
new file mode 100644
index 00000000000..b6c6c04f593
--- /dev/null
+++ b/dev-python/paramiko/paramiko-1.15.1-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="http://www.paramiko.org/ https://github.com/paramiko/paramiko/ http://pypi.python.org/pypi/paramiko/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/pycrypto-2.1[${PYTHON_USEDEP}]
+ !=dev-python/pycrypto-2.4[${PYTHON_USEDEP}]
+ >=dev-python/ecdsa-0.11[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# Required for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ "${PYTHON}" test.py --verbose || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( demos/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/paramiko/paramiko-1.15.2.ebuild b/dev-python/paramiko/paramiko-1.15.2.ebuild
new file mode 100644
index 00000000000..327973d633e
--- /dev/null
+++ b/dev-python/paramiko/paramiko-1.15.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="http://www.paramiko.org/ https://github.com/paramiko/paramiko/ http://pypi.python.org/pypi/paramiko/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/pycrypto-2.1[${PYTHON_USEDEP}]
+ !=dev-python/pycrypto-2.4[${PYTHON_USEDEP}]
+ >=dev-python/ecdsa-0.11[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# Required for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ "${PYTHON}" test.py --verbose || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( demos/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/paramunittest/Manifest b/dev-python/paramunittest/Manifest
new file mode 100644
index 00000000000..07e6d263540
--- /dev/null
+++ b/dev-python/paramunittest/Manifest
@@ -0,0 +1 @@
+DIST ParamUnittest-0.2.tar.gz 2482 SHA256 a14509549171465c3a444fa631cb7066787e05970777e6370fbb17cde148e74e SHA512 ad39def15e5983ebe6b018b10f966b7f83085facccc50e71010f88b8bcfdb704e889ce021535b2e4dd84bc1ae413088e7c028990d934d4fe28d3186b4b01a3b7 WHIRLPOOL 48c923527872f075421144c4e9a487ffd974e18a511f292c5746202fe29a803778c1c4c239bceb90fcb1742f76faab5a64b91906b7801c79f6dfa249e3d8ba74
diff --git a/dev-python/paramunittest/metadata.xml b/dev-python/paramunittest/metadata.xml
new file mode 100644
index 00000000000..57fc2a75dfe
--- /dev/null
+++ b/dev-python/paramunittest/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">ParamUnittest</remote-id>
+ <remote-id type="github">rik0/ParamUnittest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/paramunittest/paramunittest-0.2.ebuild b/dev-python/paramunittest/paramunittest-0.2.ebuild
new file mode 100644
index 00000000000..9ae13c1abf8
--- /dev/null
+++ b/dev-python/paramunittest/paramunittest-0.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN=ParamUnittest
+
+DESCRIPTION="Simple extension to have parametrized unit tests."
+HOMEPAGE="https://github.com/rik0/ParamUnittest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/parse-type/Manifest b/dev-python/parse-type/Manifest
new file mode 100644
index 00000000000..e5a0767b702
--- /dev/null
+++ b/dev-python/parse-type/Manifest
@@ -0,0 +1 @@
+DIST parse_type-0.3.4.tar.gz 62199 SHA256 3dd0b323bafcb8c25e000ce5589042a1c99cba9c3bec77b9f591e46bc9606147 SHA512 5ef80ed820cc7e2f4fa8fd0fbf64160c81f77b4a1af38015e3ec7e3be3f613ecc2211d5dba15ef600cbe11c556a2c1fb6cdc8374c52c608914aa903fad84267f WHIRLPOOL 236c047e7cbbb22bdde0424bc446404141694492cf4b0c7bb63f99f6fc8c7fa2a02b4a97e4c6b3d957a2d2a2156b3a514e9614761011f20ca4414a363c551e56
diff --git a/dev-python/parse-type/metadata.xml b/dev-python/parse-type/metadata.xml
new file mode 100644
index 00000000000..2a20f8bc86c
--- /dev/null
+++ b/dev-python/parse-type/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">parse_type</remote-id>
+ <remote-id type="github">jenisys/parse_type</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/parse-type/parse-type-0.3.4.ebuild b/dev-python/parse-type/parse-type-0.3.4.ebuild
new file mode 100644
index 00000000000..87577c185f6
--- /dev/null
+++ b/dev-python/parse-type/parse-type-0.3.4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Simplifies to build parse types based on the parse module"
+HOMEPAGE="https://github.com/jenisys/parse_type"
+
+MY_PN="${PN/-/_}"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-runner[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/parse-1.6[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' 'python2*' 'python3_3')
+"
+
+python_test() {
+ py.test tests || "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/parse/Manifest b/dev-python/parse/Manifest
new file mode 100644
index 00000000000..c1a0bb1dca4
--- /dev/null
+++ b/dev-python/parse/Manifest
@@ -0,0 +1 @@
+DIST parse-1.6.4.tar.gz 24025 SHA256 a7cccad221632f1e2553d585b428b20d362738311e6f58933ef46b4389c16054 SHA512 2848e3331f1b2604bb5f1a8a0084ff0b7e0f12b2d3832395461f4b76729637783250d18a134048106ffa6768794f38fc51534dbe5a88db303f0426530587dcee WHIRLPOOL 2c3b91ec933ac206aaf2c2201b3108bb291a448f458d79aa2e6db5cdee676e05c200f1bf60f3f9810161e126c7ae4633efe498276fb2d1b270b10ebc4ca2047c
diff --git a/dev-python/parse/metadata.xml b/dev-python/parse/metadata.xml
new file mode 100644
index 00000000000..8cc34e969fc
--- /dev/null
+++ b/dev-python/parse/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">parse</remote-id>
+ <remote-id type="github">r1chardj0n3s/parse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/parse/parse-1.6.4.ebuild b/dev-python/parse/parse-1.6.4.ebuild
new file mode 100644
index 00000000000..68e397a104b
--- /dev/null
+++ b/dev-python/parse/parse-1.6.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="parse() is the opposite of format()"
+HOMEPAGE="https://github.com/r1chardj0n3s/parse"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" test_parse.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/parsedatetime/Manifest b/dev-python/parsedatetime/Manifest
new file mode 100644
index 00000000000..b86c2debf33
--- /dev/null
+++ b/dev-python/parsedatetime/Manifest
@@ -0,0 +1 @@
+DIST parsedatetime-1.5.tar.gz 61150 SHA256 4698420df9765f8f4ea41d9e771874ea8dff907e695f26634919b41f39590980 SHA512 cd76711f403e1344a6d4ac56c7d39ad280a47c10333a09ec2a65152b79f7a284d1d6ba3af7b7d7df9a32f650036012a115a3811d34f5dfe13582acec2ee5f130 WHIRLPOOL c90b54c16dfac0f98ce18c6595eed42ee09f0234e2314d054d64d3a01fc3c47a692a76dd867f843b67d1e76ce48cd910d581c68f63be03e40fe52e9119b66507
diff --git a/dev-python/parsedatetime/metadata.xml b/dev-python/parsedatetime/metadata.xml
new file mode 100644
index 00000000000..3be1e82eb36
--- /dev/null
+++ b/dev-python/parsedatetime/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/parsedatetime/parsedatetime-1.5.ebuild b/dev-python/parsedatetime/parsedatetime-1.5.ebuild
new file mode 100644
index 00000000000..a6b437d2313
--- /dev/null
+++ b/dev-python/parsedatetime/parsedatetime-1.5.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Parse human-readable date/time strings"
+HOMEPAGE="https://github.com/bear/parsedatetime"
+SRC_URI="https://github.com/bear/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${PYTHON} run_tests.py || die
+}
diff --git a/dev-python/parsley/Manifest b/dev-python/parsley/Manifest
new file mode 100644
index 00000000000..9f86b23eb8a
--- /dev/null
+++ b/dev-python/parsley/Manifest
@@ -0,0 +1 @@
+DIST parsley-1.2.tar.gz 106385 SHA256 1b5465f8244fd930929fe99c8ef710ab3d65d8a12814f73181eeb1ce22fea416 SHA512 55810ec6c77c6ed60bd84c34bffbeba6f65132907e46ee9b85c8f27215e2be08960edc98ae20cdd431bd74d6cf0ca494ca914e8b1cfd091c549e82bb019490e5 WHIRLPOOL 1a3f59072d642148f18049d31b92f3d2873ac337200e53ab73faf91398fbbb8876909d9e5c37ac90b743ef8a0ab6c629b08a3c3f6668e11f213d7aa9a5f180a8
diff --git a/dev-python/parsley/metadata.xml b/dev-python/parsley/metadata.xml
new file mode 100644
index 00000000000..bf01c094db6
--- /dev/null
+++ b/dev-python/parsley/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">python-parsley/parsley</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/parsley/parsley-1.2.ebuild b/dev-python/parsley/parsley-1.2.ebuild
new file mode 100644
index 00000000000..129dcb03ded
--- /dev/null
+++ b/dev-python/parsley/parsley-1.2.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Pattern-Matching Language Based on OMeta and Python"
+HOMEPAGE="https://github.com/python-parsley/parsley"
+SRC_URI="https://github.com/python-${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/passlib/Manifest b/dev-python/passlib/Manifest
new file mode 100644
index 00000000000..c150f79dfdd
--- /dev/null
+++ b/dev-python/passlib/Manifest
@@ -0,0 +1,2 @@
+DIST passlib-1.6.1.tar.gz 395855 SHA256 00cfb564feb2d97ebaf6b28acdc9277a0c73c3c1df7b2a7b65605c76e724177b SHA512 93c047dc0a06f19a20e5da97db43c5c76e06d69baeac15cc932ef0306ae22dac5c1a3925889a140fd181ab4e00ac513ec829951e15babf5aad89bd2d08dc9907 WHIRLPOOL b0840a1fd903000db06c1739d902e01c3cc4fb9f63692b0316fd60bd3393fa5be134037476da135306cc258fe38853269ebbb424d13f45edda9dd1c1b370d957
+DIST passlib-1.6.2.tar.gz 408950 SHA256 e987f6000d16272f75314c7147eb015727e8532a3b747b1a8fb58e154c68392d SHA512 4c58df875549d9d4a5a9cb5d7b8e853b2614cab1c67a35d0d113fcd6332bbe0f5b6d2521d71eade2e020d0a42cd9ce0a6e866c82bc1a840391f9005ba0baceea WHIRLPOOL 74bc9eceb460108d435eb25a46db1dd91acef146c4972fffcd065a8774247faf423ddcb3bfe6d143a65b1f2a681aa562424ba881bf71e088633aa201c7ceb3d9
diff --git a/dev-python/passlib/metadata.xml b/dev-python/passlib/metadata.xml
new file mode 100644
index 00000000000..03438f6f4e7
--- /dev/null
+++ b/dev-python/passlib/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ comprehensive password hashing framework supporting over 20 schemes
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">passlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/passlib/passlib-1.6.1-r1.ebuild b/dev-python/passlib/passlib-1.6.1-r1.ebuild
new file mode 100644
index 00000000000..3d60e4682cd
--- /dev/null
+++ b/dev-python/passlib/passlib-1.6.1-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Password hashing framework supporting over 20 schemes"
+HOMEPAGE="http://code.google.com/p/passlib/"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dodoc docs/{*.rst,requirements.txt,lib/*.rst}
+}
diff --git a/dev-python/passlib/passlib-1.6.2.ebuild b/dev-python/passlib/passlib-1.6.2.ebuild
new file mode 100644
index 00000000000..829deb71169
--- /dev/null
+++ b/dev-python/passlib/passlib-1.6.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Password hashing framework supporting over 20 schemes"
+HOMEPAGE="http://code.google.com/p/passlib/"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE="test doc"
+
+RDEPEND="dev-python/bcrypt[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ # https://code.google.com/p/passlib/issues/detail?id=50
+ # py3 on testing choaks on the suite
+ if ! python_is_python3; then
+ nosetests -w "${BUILD_DIR}"/lib \
+ -e test_90_django_reference -e test_91_django_generation \
+ -e test_77_fuzz_input -e test_config \
+ -e test_registry.py || die "Tests fail with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dodoc docs/{*.rst,requirements.txt,lib/*.rst}
+}
diff --git a/dev-python/passwordmeter/Manifest b/dev-python/passwordmeter/Manifest
new file mode 100644
index 00000000000..0831c32e5c6
--- /dev/null
+++ b/dev-python/passwordmeter/Manifest
@@ -0,0 +1 @@
+DIST passwordmeter-0.1.7.tar.gz 51122 SHA256 7342315ea145cc22c5403c93f59e6b87c3643767646ad86039c7e2a2000eeace SHA512 a5911af9a1caed35ecc881d324ab0514de54babc41b9fd2ba91542fdef3d0875a737d181023caeb81537006777b71d63806e5fd2118c6e5b74d8b87c7d6866bf WHIRLPOOL fe2b6025ffbee53109f5aac7ea11c3a5075fe4e22690e3e94636c10cf31131cb5e5d0b0be9e74bf95a0494d0ef00ec61a1d7e8f4f7f2b83be9c1d26a356a6521
diff --git a/dev-python/passwordmeter/metadata.xml b/dev-python/passwordmeter/metadata.xml
new file mode 100644
index 00000000000..ed769ec3d92
--- /dev/null
+++ b/dev-python/passwordmeter/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">passwordmeter</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/passwordmeter/passwordmeter-0.1.7-r1.ebuild b/dev-python/passwordmeter/passwordmeter-0.1.7-r1.ebuild
new file mode 100644
index 00000000000..42d9f3747b2
--- /dev/null
+++ b/dev-python/passwordmeter/passwordmeter-0.1.7-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A password strength measuring library"
+HOMEPAGE="https://pypi.python.org/pypi/passwordmeter/ https://github.com/cadithealth/passwordmeter"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/asset-0.6.1[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ sed \
+ -e '/distribute/d' \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests --verbose || die
+}
diff --git a/dev-python/paste/Manifest b/dev-python/paste/Manifest
new file mode 100644
index 00000000000..2b6d4408db1
--- /dev/null
+++ b/dev-python/paste/Manifest
@@ -0,0 +1,2 @@
+DIST Paste-1.7.5.1.tar.gz 523304 SHA256 11645842ba8ec986ae8cfbe4c6cacff5c35f0f4527abf4f5581ae8b4ad49c0b6 SHA512 058a86dec41f132c22b14f3bc882d9c02c04bb0cc9ea5fc5371911698c3d7a89859742a4b806ad388c7fe37289b816db16c50bce21f56c8371293c4d91b5ccb6 WHIRLPOOL 5928a6f20c136a77576b653df34337f1eb110845b8d53d7637eeb6c792fe7f10fe622adefec382378aef16c1abee91c37e90e5fe17dbaa07046681a393f6c5c8
+DIST Paste-2.0.2.tar.gz 627842 SHA256 adac3ac893a2dac6b8ffd49901377dd6819e05be3436b374d698641071daba99 SHA512 32eddeab1bab9d0b1a30848d89613b40ed02a77912f7ef5a86880e1c1a860c5637cd45114bd58cc5ac84410a569ede67e6ebd7afd2007c588433d54d6940f529 WHIRLPOOL 08c997079e632b92e592211d942298235228ec22b997d549f608552f139a941cdd47a5c2da859867c279cab0ad7f388823f1af163ed7ea8aeaaa7558407e3750
diff --git a/dev-python/paste/files/paste-1.7.5.1-email-mime.patch b/dev-python/paste/files/paste-1.7.5.1-email-mime.patch
new file mode 100644
index 00000000000..4c06997b080
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-email-mime.patch
@@ -0,0 +1,19 @@
+--- a/paste/exceptions/reporter.py
++++ b/paste/exceptions/reporter.py
+@@ -1,8 +1,14 @@
+ # (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
+ # Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+
+-from email.MIMEText import MIMEText
+-from email.MIMEMultipart import MIMEMultipart
++try:
++ from email.MIMEText import MIMEText
++except:
++ from email.mime.text import MIMEText
++try:
++ from email.MIMEMultipart import MIMEMultipart
++except:
++ from email.mime.multipart import MIMEMultipart
+ import smtplib
+ import time
+ try:
diff --git a/dev-python/paste/files/paste-1.7.5.1-fix-tests-for-pypy.patch b/dev-python/paste/files/paste-1.7.5.1-fix-tests-for-pypy.patch
new file mode 100644
index 00000000000..b5e9430c3bb
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-fix-tests-for-pypy.patch
@@ -0,0 +1,24 @@
+Ignore the exception detail for two exceptions that are slightly
+different on pypy.
+
+diff -r 7f90a96378ed tests/test_template.txt
+--- a/tests/test_template.txt Mon Mar 05 21:14:08 2012 +0100
++++ b/tests/test_template.txt Wed May 16 23:29:46 2012 +0200
+@@ -6,7 +6,7 @@
+ 'Hi Ian'
+ >>> Template('Hi {{repr(name)}}').substitute(name='Ian')
+ "Hi 'Ian'"
+- >>> Template('Hi {{name+1}}').substitute(name='Ian')
++ >>> Template('Hi {{name+1}}').substitute(name='Ian') #doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ TypeError: cannot concatenate 'str' and 'int' objects at line 1 column 6
+@@ -125,7 +125,7 @@
+ >>> sub('{{default x=1}}{{x}}')
+ '1'
+ >>> # The normal case:
+- >>> sub('{{x}}')
++ >>> sub('{{x}}') #doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ NameError: name 'x' is not defined at line 1 column 3
diff --git a/dev-python/paste/files/paste-1.7.5.1-hmac.patch b/dev-python/paste/files/paste-1.7.5.1-hmac.patch
new file mode 100644
index 00000000000..c86d0f977cf
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-hmac.patch
@@ -0,0 +1,11 @@
+--- a/paste/auth/cookie.py
++++ b/paste/auth/cookie.py
+@@ -52,7 +52,7 @@
+
+ def make_time(value):
+ return time.strftime("%Y%m%d%H%M", time.gmtime(value))
+-_signature_size = len(hmac.new('x', 'x', sha1).digest())
++_signature_size = len(hmac.new(b'x', b'x', sha1).digest())
+ _header_size = _signature_size + len(make_time(time.time()))
+
+ # @@: Should this be using urllib.quote?
diff --git a/dev-python/paste/files/paste-1.7.5.1-python27-lambda.patch b/dev-python/paste/files/paste-1.7.5.1-python27-lambda.patch
new file mode 100644
index 00000000000..91dcad13715
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-python27-lambda.patch
@@ -0,0 +1,12 @@
+diff -r 30425672adf7 paste/auth/cookie.py
+--- a/paste/auth/cookie.py Wed Jun 23 17:15:45 2010 -0500
++++ b/paste/auth/cookie.py Mon Aug 02 20:06:43 2010 -0700
+@@ -62,7 +62,7 @@
+ _decode = [(v, k) for (k, v) in _encode]
+ _decode.reverse()
+ def encode(s, sublist = _encode):
+- return reduce((lambda a, (b, c): a.replace(b, c)), sublist, str(s))
++ return reduce((lambda a, b: a.replace(b[0], b[1])), sublist, str(s))
+ decode = lambda s: encode(s, _decode)
+
+ class CookieTooLarge(RuntimeError):
diff --git a/dev-python/paste/files/paste-1.7.5.1-rfc822.patch b/dev-python/paste/files/paste-1.7.5.1-rfc822.patch
new file mode 100644
index 00000000000..e0950fcaabe
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-rfc822.patch
@@ -0,0 +1,14 @@
+--- a/paste/httpheaders.py
++++ b/paste/httpheaders.py
+@@ -137,7 +137,10 @@
+ import mimetypes
+ import urllib2
+ import re
+-from rfc822 import formatdate, parsedate_tz, mktime_tz
++try:
++ from rfc822 import formatdate, parsedate_tz, mktime_tz
++except ImportError:
++ from email.utils import formatdate, parsedate_tz, mktime_tz
+ from time import time as now
+ from httpexceptions import HTTPBadRequest
+
diff --git a/dev-python/paste/files/paste-1.7.5.1-types.patch b/dev-python/paste/files/paste-1.7.5.1-types.patch
new file mode 100644
index 00000000000..87ea53c3964
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-types.patch
@@ -0,0 +1,57 @@
+--- a/paste/lint.py
++++ b/paste/lint.py
+@@ -111,7 +111,6 @@
+
+ import re
+ import sys
+-from types import DictType, StringType, TupleType, ListType
+ import warnings
+
+ header_re = re.compile(r'^[a-zA-Z][a-zA-Z0-9\-_]*$')
+@@ -282,7 +281,7 @@
+ "Iterator garbage collected without being closed")
+
+ def check_environ(environ):
+- assert type(environ) is DictType, (
++ assert isinstance(environ,dict), (
+ "Environment is not of the right type: %r (environment: %r)"
+ % (type(environ), environ))
+
+@@ -309,11 +308,11 @@
+ if '.' in key:
+ # Extension, we don't care about its type
+ continue
+- assert type(environ[key]) is StringType, (
++ assert isinstance(environ[key], str), (
+ "Environmental variable %s is not a string: %r (value: %r)"
+ % (key, type(environ[key]), environ[key]))
+
+- assert type(environ['wsgi.version']) is TupleType, (
++ assert isinstance(environ['wsgi.version'], tuple), (
+ "wsgi.version should be a tuple (%r)" % environ['wsgi.version'])
+ assert environ['wsgi.url_scheme'] in ('http', 'https'), (
+ "wsgi.url_scheme unknown: %r" % environ['wsgi.url_scheme'])
+@@ -359,7 +358,7 @@
+ % (wsgi_errors, attr))
+
+ def check_status(status):
+- assert type(status) is StringType, (
++ assert isinstance(status, str), (
+ "Status must be a string (not %r)" % status)
+ # Implicitly check that we can turn it into an integer:
+ status_code = status.split(None, 1)[0]
+@@ -374,12 +373,12 @@
+ % status, WSGIWarning)
+
+ def check_headers(headers):
+- assert type(headers) is ListType, (
++ assert isinstance(headers,list), (
+ "Headers (%r) must be of type list: %r"
+ % (headers, type(headers)))
+ header_names = {}
+ for item in headers:
+- assert type(item) is TupleType, (
++ assert isinstance(item, tuple), (
+ "Individual headers (%r) must be of type tuple: %r"
+ % (item, type(item)))
+ assert len(item) == 2
diff --git a/dev-python/paste/files/paste-1.7.5.1-unbundle-stdlib.patch b/dev-python/paste/files/paste-1.7.5.1-unbundle-stdlib.patch
new file mode 100644
index 00000000000..b389df2482c
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-unbundle-stdlib.patch
@@ -0,0 +1,1211 @@
+--- a/paste/debug/fsdiff.py
++++ b/paste/debug/fsdiff.py
+@@ -12,7 +12,10 @@
+ import os
+ from fnmatch import fnmatch
+ from datetime import datetime
+-from paste.util.UserDict24 import IterableUserDict
++try:
++ from UserDict import IterableUserDict
++except ImportError:
++ from paste.util.UserDict24 import IterableUserDict
+ import operator
+ import re
+
+--- a/paste/debug/doctest_webapp.py
++++ b/paste/debug/doctest_webapp.py
+@@ -8,10 +8,7 @@
+ These are functions for use when doctest-testing a document.
+ """
+
+-try:
+- import subprocess
+-except ImportError:
+- from paste.util import subprocess24 as subprocess
++import subprocess
+ import doctest
+ import os
+ import sys
+--- a/paste/debug/wdg_validate.py
++++ b/paste/debug/wdg_validate.py
+@@ -6,10 +6,7 @@
+ """
+
+ from cStringIO import StringIO
+-try:
+- import subprocess
+-except ImportError:
+- from paste.util import subprocess24 as subprocess
++import subprocess
+ from paste.response import header_value
+ import re
+ import cgi
+--- a/paste/fixture.py
++++ b/paste/fixture.py
+@@ -26,10 +26,7 @@
+ except ImportError:
+ from StringIO import StringIO
+ import re
+-try:
+- import subprocess
+-except ImportError:
+- from paste.util import subprocess24 as subprocess
++import subprocess
+
+ from paste import wsgilib
+ from paste import lint
+--- a/paste/util/subprocess24.py
++++ /dev/null
+@@ -1,1152 +0,0 @@
+-# subprocess - Subprocesses with accessible I/O streams
+-#
+-# For more information about this module, see PEP 324.
+-#
+-# This module should remain compatible with Python 2.2, see PEP 291.
+-#
+-# Copyright (c) 2003-2005 by Peter Astrand <astrand@lysator.liu.se>
+-#
+-# Licensed to PSF under a Contributor Agreement.
+-# See http://www.python.org/2.4/license for licensing details.
+-
+-r"""subprocess - Subprocesses with accessible I/O streams
+-
+-This module allows you to spawn processes, connect to their
+-input/output/error pipes, and obtain their return codes. This module
+-intends to replace several other, older modules and functions, like:
+-
+-os.system
+-os.spawn*
+-os.popen*
+-popen2.*
+-commands.*
+-
+-Information about how the subprocess module can be used to replace these
+-modules and functions can be found below.
+-
+-
+-
+-Using the subprocess module
+-===========================
+-This module defines one class called Popen:
+-
+-class Popen(args, bufsize=0, executable=None,
+- stdin=None, stdout=None, stderr=None,
+- preexec_fn=None, close_fds=False, shell=False,
+- cwd=None, env=None, universal_newlines=False,
+- startupinfo=None, creationflags=0):
+-
+-
+-Arguments are:
+-
+-args should be a string, or a sequence of program arguments. The
+-program to execute is normally the first item in the args sequence or
+-string, but can be explicitly set by using the executable argument.
+-
+-On UNIX, with shell=False (default): In this case, the Popen class
+-uses os.execvp() to execute the child program. args should normally
+-be a sequence. A string will be treated as a sequence with the string
+-as the only item (the program to execute).
+-
+-On UNIX, with shell=True: If args is a string, it specifies the
+-command string to execute through the shell. If args is a sequence,
+-the first item specifies the command string, and any additional items
+-will be treated as additional shell arguments.
+-
+-On Windows: the Popen class uses CreateProcess() to execute the child
+-program, which operates on strings. If args is a sequence, it will be
+-converted to a string using the list2cmdline method. Please note that
+-not all MS Windows applications interpret the command line the same
+-way: The list2cmdline is designed for applications using the same
+-rules as the MS C runtime.
+-
+-bufsize, if given, has the same meaning as the corresponding argument
+-to the built-in open() function: 0 means unbuffered, 1 means line
+-buffered, any other positive value means use a buffer of
+-(approximately) that size. A negative bufsize means to use the system
+-default, which usually means fully buffered. The default value for
+-bufsize is 0 (unbuffered).
+-
+-stdin, stdout and stderr specify the executed programs' standard
+-input, standard output and standard error file handles, respectively.
+-Valid values are PIPE, an existing file descriptor (a positive
+-integer), an existing file object, and None. PIPE indicates that a
+-new pipe to the child should be created. With None, no redirection
+-will occur; the child's file handles will be inherited from the
+-parent. Additionally, stderr can be STDOUT, which indicates that the
+-stderr data from the applications should be captured into the same
+-file handle as for stdout.
+-
+-If preexec_fn is set to a callable object, this object will be called
+-in the child process just before the child is executed.
+-
+-If close_fds is true, all file descriptors except 0, 1 and 2 will be
+-closed before the child process is executed.
+-
+-if shell is true, the specified command will be executed through the
+-shell.
+-
+-If cwd is not None, the current directory will be changed to cwd
+-before the child is executed.
+-
+-If env is not None, it defines the environment variables for the new
+-process.
+-
+-If universal_newlines is true, the file objects stdout and stderr are
+-opened as a text files, but lines may be terminated by any of '\n',
+-the Unix end-of-line convention, '\r', the Macintosh convention or
+-'\r\n', the Windows convention. All of these external representations
+-are seen as '\n' by the Python program. Note: This feature is only
+-available if Python is built with universal newline support (the
+-default). Also, the newlines attribute of the file objects stdout,
+-stdin and stderr are not updated by the communicate() method.
+-
+-The startupinfo and creationflags, if given, will be passed to the
+-underlying CreateProcess() function. They can specify things such as
+-appearance of the main window and priority for the new process.
+-(Windows only)
+-
+-
+-This module also defines two shortcut functions:
+-
+-call(*args, **kwargs):
+- Run command with arguments. Wait for command to complete, then
+- return the returncode attribute. The arguments are the same as for
+- the Popen constructor. Example:
+-
+- retcode = call(["ls", "-l"])
+-
+-
+-Exceptions
+-----------
+-Exceptions raised in the child process, before the new program has
+-started to execute, will be re-raised in the parent. Additionally,
+-the exception object will have one extra attribute called
+-'child_traceback', which is a string containing traceback information
+-from the childs point of view.
+-
+-The most common exception raised is OSError. This occurs, for
+-example, when trying to execute a non-existent file. Applications
+-should prepare for OSErrors.
+-
+-A ValueError will be raised if Popen is called with invalid arguments.
+-
+-
+-Security
+---------
+-Unlike some other popen functions, this implementation will never call
+-/bin/sh implicitly. This means that all characters, including shell
+-metacharacters, can safely be passed to child processes.
+-
+-
+-Popen objects
+-=============
+-Instances of the Popen class have the following methods:
+-
+-poll()
+- Check if child process has terminated. Returns returncode
+- attribute.
+-
+-wait()
+- Wait for child process to terminate. Returns returncode attribute.
+-
+-communicate(input=None)
+- Interact with process: Send data to stdin. Read data from stdout
+- and stderr, until end-of-file is reached. Wait for process to
+- terminate. The optional stdin argument should be a string to be
+- sent to the child process, or None, if no data should be sent to
+- the child.
+-
+- communicate() returns a tuple (stdout, stderr).
+-
+- Note: The data read is buffered in memory, so do not use this
+- method if the data size is large or unlimited.
+-
+-The following attributes are also available:
+-
+-stdin
+- If the stdin argument is PIPE, this attribute is a file object
+- that provides input to the child process. Otherwise, it is None.
+-
+-stdout
+- If the stdout argument is PIPE, this attribute is a file object
+- that provides output from the child process. Otherwise, it is
+- None.
+-
+-stderr
+- If the stderr argument is PIPE, this attribute is file object that
+- provides error output from the child process. Otherwise, it is
+- None.
+-
+-pid
+- The process ID of the child process.
+-
+-returncode
+- The child return code. A None value indicates that the process
+- hasn't terminated yet. A negative value -N indicates that the
+- child was terminated by signal N (UNIX only).
+-
+-
+-Replacing older functions with the subprocess module
+-====================================================
+-In this section, "a ==> b" means that b can be used as a replacement
+-for a.
+-
+-Note: All functions in this section fail (more or less) silently if
+-the executed program cannot be found; this module raises an OSError
+-exception.
+-
+-In the following examples, we assume that the subprocess module is
+-imported with "from subprocess import *".
+-
+-
+-Replacing /bin/sh shell backquote
+----------------------------------
+-output=`mycmd myarg`
+-==>
+-output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
+-
+-
+-Replacing shell pipe line
+--------------------------
+-output=`dmesg | grep hda`
+-==>
+-p1 = Popen(["dmesg"], stdout=PIPE)
+-p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
+-output = p2.communicate()[0]
+-
+-
+-Replacing os.system()
+----------------------
+-sts = os.system("mycmd" + " myarg")
+-==>
+-p = Popen("mycmd" + " myarg", shell=True)
+-sts = os.waitpid(p.pid, 0)
+-
+-Note:
+-
+-* Calling the program through the shell is usually not required.
+-
+-* It's easier to look at the returncode attribute than the
+- exitstatus.
+-
+-A more real-world example would look like this:
+-
+-try:
+- retcode = call("mycmd" + " myarg", shell=True)
+- if retcode < 0:
+- print >>sys.stderr, "Child was terminated by signal", -retcode
+- else:
+- print >>sys.stderr, "Child returned", retcode
+-except OSError, e:
+- print >>sys.stderr, "Execution failed:", e
+-
+-
+-Replacing os.spawn*
+--------------------
+-P_NOWAIT example:
+-
+-pid = os.spawnlp(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg")
+-==>
+-pid = Popen(["/bin/mycmd", "myarg"]).pid
+-
+-
+-P_WAIT example:
+-
+-retcode = os.spawnlp(os.P_WAIT, "/bin/mycmd", "mycmd", "myarg")
+-==>
+-retcode = call(["/bin/mycmd", "myarg"])
+-
+-
+-Vector example:
+-
+-os.spawnvp(os.P_NOWAIT, path, args)
+-==>
+-Popen([path] + args[1:])
+-
+-
+-Environment example:
+-
+-os.spawnlpe(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg", env)
+-==>
+-Popen(["/bin/mycmd", "myarg"], env={"PATH": "/usr/bin"})
+-
+-
+-Replacing os.popen*
+--------------------
+-pipe = os.popen(cmd, mode='r', bufsize)
+-==>
+-pipe = Popen(cmd, shell=True, bufsize=bufsize, stdout=PIPE).stdout
+-
+-pipe = os.popen(cmd, mode='w', bufsize)
+-==>
+-pipe = Popen(cmd, shell=True, bufsize=bufsize, stdin=PIPE).stdin
+-
+-
+-(child_stdin, child_stdout) = os.popen2(cmd, mode, bufsize)
+-==>
+-p = Popen(cmd, shell=True, bufsize=bufsize,
+- stdin=PIPE, stdout=PIPE, close_fds=True)
+-(child_stdin, child_stdout) = (p.stdin, p.stdout)
+-
+-
+-(child_stdin,
+- child_stdout,
+- child_stderr) = os.popen3(cmd, mode, bufsize)
+-==>
+-p = Popen(cmd, shell=True, bufsize=bufsize,
+- stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
+-(child_stdin,
+- child_stdout,
+- child_stderr) = (p.stdin, p.stdout, p.stderr)
+-
+-
+-(child_stdin, child_stdout_and_stderr) = os.popen4(cmd, mode, bufsize)
+-==>
+-p = Popen(cmd, shell=True, bufsize=bufsize,
+- stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
+-(child_stdin, child_stdout_and_stderr) = (p.stdin, p.stdout)
+-
+-
+-Replacing popen2.*
+-------------------
+-Note: If the cmd argument to popen2 functions is a string, the command
+-is executed through /bin/sh. If it is a list, the command is directly
+-executed.
+-
+-(child_stdout, child_stdin) = popen2.popen2("somestring", bufsize, mode)
+-==>
+-p = Popen(["somestring"], shell=True, bufsize=bufsize
+- stdin=PIPE, stdout=PIPE, close_fds=True)
+-(child_stdout, child_stdin) = (p.stdout, p.stdin)
+-
+-
+-(child_stdout, child_stdin) = popen2.popen2(["mycmd", "myarg"], bufsize, mode)
+-==>
+-p = Popen(["mycmd", "myarg"], bufsize=bufsize,
+- stdin=PIPE, stdout=PIPE, close_fds=True)
+-(child_stdout, child_stdin) = (p.stdout, p.stdin)
+-
+-The popen2.Popen3 and popen3.Popen4 basically works as subprocess.Popen,
+-except that:
+-
+-* subprocess.Popen raises an exception if the execution fails
+-* the capturestderr argument is replaced with the stderr argument.
+-* stdin=PIPE and stdout=PIPE must be specified.
+-* popen2 closes all filedescriptors by default, but you have to specify
+- close_fds=True with subprocess.Popen.
+-
+-
+-"""
+-
+-import sys
+-mswindows = (sys.platform == "win32")
+-
+-import os
+-import types
+-import traceback
+-
+-if mswindows:
+- import threading
+- import msvcrt
+- ## @@: Changed in Paste
+- ## Since this module is only used on pre-python-2.4 systems, they probably
+- ## don't have _subprocess installed, but hopefully have the win32 stuff
+- ## installed.
+- if 1: # <-- change this to use pywin32 instead of the _subprocess driver
+- import pywintypes
+- from win32api import GetStdHandle, STD_INPUT_HANDLE, \
+- STD_OUTPUT_HANDLE, STD_ERROR_HANDLE
+- from win32api import GetCurrentProcess, DuplicateHandle, \
+- GetModuleFileName, GetVersion
+- from win32con import DUPLICATE_SAME_ACCESS, SW_HIDE
+- from win32pipe import CreatePipe
+- from win32process import CreateProcess, STARTUPINFO, \
+- GetExitCodeProcess, STARTF_USESTDHANDLES, \
+- STARTF_USESHOWWINDOW, CREATE_NEW_CONSOLE
+- from win32event import WaitForSingleObject, INFINITE, WAIT_OBJECT_0
+- else:
+- from _subprocess import *
+- class STARTUPINFO:
+- dwFlags = 0
+- hStdInput = None
+- hStdOutput = None
+- hStdError = None
+- class pywintypes:
+- error = IOError
+-else:
+- import select
+- import errno
+- import fcntl
+- import pickle
+-
+-__all__ = ["Popen", "PIPE", "STDOUT", "call"]
+-
+-try:
+- MAXFD = os.sysconf("SC_OPEN_MAX")
+-except:
+- MAXFD = 256
+-
+-# True/False does not exist on 2.2.0
+-try:
+- False
+-except NameError:
+- False = 0
+- True = 1
+-
+-_active = []
+-
+-def _cleanup():
+- for inst in _active[:]:
+- inst.poll()
+-
+-PIPE = -1
+-STDOUT = -2
+-
+-
+-def call(*args, **kwargs):
+- """Run command with arguments. Wait for command to complete, then
+- return the returncode attribute.
+-
+- The arguments are the same as for the Popen constructor. Example:
+-
+- retcode = call(["ls", "-l"])
+- """
+- return Popen(*args, **kwargs).wait()
+-
+-
+-def list2cmdline(seq):
+- """
+- Translate a sequence of arguments into a command line
+- string, using the same rules as the MS C runtime:
+-
+- 1) Arguments are delimited by white space, which is either a
+- space or a tab.
+-
+- 2) A string surrounded by double quotation marks is
+- interpreted as a single argument, regardless of white space
+- contained within. A quoted string can be embedded in an
+- argument.
+-
+- 3) A double quotation mark preceded by a backslash is
+- interpreted as a literal double quotation mark.
+-
+- 4) Backslashes are interpreted literally, unless they
+- immediately precede a double quotation mark.
+-
+- 5) If backslashes immediately precede a double quotation mark,
+- every pair of backslashes is interpreted as a literal
+- backslash. If the number of backslashes is odd, the last
+- backslash escapes the next double quotation mark as
+- described in rule 3.
+- """
+-
+- # See
+- # http://msdn.microsoft.com/library/en-us/vccelng/htm/progs_12.asp
+- result = []
+- needquote = False
+- for arg in seq:
+- bs_buf = []
+-
+- # Add a space to separate this argument from the others
+- if result:
+- result.append(' ')
+-
+- needquote = (" " in arg) or ("\t" in arg)
+- if needquote:
+- result.append('"')
+-
+- for c in arg:
+- if c == '\\':
+- # Don't know if we need to double yet.
+- bs_buf.append(c)
+- elif c == '"':
+- # Double backspaces.
+- result.append('\\' * len(bs_buf)*2)
+- bs_buf = []
+- result.append('\\"')
+- else:
+- # Normal char
+- if bs_buf:
+- result.extend(bs_buf)
+- bs_buf = []
+- result.append(c)
+-
+- # Add remaining backspaces, if any.
+- if bs_buf:
+- result.extend(bs_buf)
+-
+- if needquote:
+- result.extend(bs_buf)
+- result.append('"')
+-
+- return ''.join(result)
+-
+-
+-class Popen(object):
+- def __init__(self, args, bufsize=0, executable=None,
+- stdin=None, stdout=None, stderr=None,
+- preexec_fn=None, close_fds=False, shell=False,
+- cwd=None, env=None, universal_newlines=False,
+- startupinfo=None, creationflags=0):
+- """Create new Popen instance."""
+- _cleanup()
+-
+- if not isinstance(bufsize, (int, long)):
+- raise TypeError("bufsize must be an integer")
+-
+- if mswindows:
+- if preexec_fn is not None:
+- raise ValueError("preexec_fn is not supported on Windows "
+- "platforms")
+- if close_fds:
+- raise ValueError("close_fds is not supported on Windows "
+- "platforms")
+- else:
+- # POSIX
+- if startupinfo is not None:
+- raise ValueError("startupinfo is only supported on Windows "
+- "platforms")
+- if creationflags != 0:
+- raise ValueError("creationflags is only supported on Windows "
+- "platforms")
+-
+- self.stdin = None
+- self.stdout = None
+- self.stderr = None
+- self.pid = None
+- self.returncode = None
+- self.universal_newlines = universal_newlines
+-
+- # Input and output objects. The general principle is like
+- # this:
+- #
+- # Parent Child
+- # ------ -----
+- # p2cwrite ---stdin---> p2cread
+- # c2pread <--stdout--- c2pwrite
+- # errread <--stderr--- errwrite
+- #
+- # On POSIX, the child objects are file descriptors. On
+- # Windows, these are Windows file handles. The parent objects
+- # are file descriptors on both platforms. The parent objects
+- # are None when not using PIPEs. The child objects are None
+- # when not redirecting.
+-
+- (p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite) = self._get_handles(stdin, stdout, stderr)
+-
+- self._execute_child(args, executable, preexec_fn, close_fds,
+- cwd, env, universal_newlines,
+- startupinfo, creationflags, shell,
+- p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite)
+-
+- if p2cwrite:
+- self.stdin = os.fdopen(p2cwrite, 'wb', bufsize)
+- if c2pread:
+- if universal_newlines:
+- self.stdout = os.fdopen(c2pread, 'rU', bufsize)
+- else:
+- self.stdout = os.fdopen(c2pread, 'rb', bufsize)
+- if errread:
+- if universal_newlines:
+- self.stderr = os.fdopen(errread, 'rU', bufsize)
+- else:
+- self.stderr = os.fdopen(errread, 'rb', bufsize)
+-
+- _active.append(self)
+-
+-
+- def _translate_newlines(self, data):
+- data = data.replace("\r\n", "\n")
+- data = data.replace("\r", "\n")
+- return data
+-
+-
+- if mswindows:
+- #
+- # Windows methods
+- #
+- def _get_handles(self, stdin, stdout, stderr):
+- """Construct and return tupel with IO objects:
+- p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite
+- """
+- if stdin == None and stdout == None and stderr == None:
+- return (None, None, None, None, None, None)
+-
+- p2cread, p2cwrite = None, None
+- c2pread, c2pwrite = None, None
+- errread, errwrite = None, None
+-
+- if stdin == None:
+- p2cread = GetStdHandle(STD_INPUT_HANDLE)
+- elif stdin == PIPE:
+- p2cread, p2cwrite = CreatePipe(None, 0)
+- # Detach and turn into fd
+- p2cwrite = p2cwrite.Detach()
+- p2cwrite = msvcrt.open_osfhandle(p2cwrite, 0)
+- elif type(stdin) == types.IntType:
+- p2cread = msvcrt.get_osfhandle(stdin)
+- else:
+- # Assuming file-like object
+- p2cread = msvcrt.get_osfhandle(stdin.fileno())
+- p2cread = self._make_inheritable(p2cread)
+-
+- if stdout == None:
+- c2pwrite = GetStdHandle(STD_OUTPUT_HANDLE)
+- elif stdout == PIPE:
+- c2pread, c2pwrite = CreatePipe(None, 0)
+- # Detach and turn into fd
+- c2pread = c2pread.Detach()
+- c2pread = msvcrt.open_osfhandle(c2pread, 0)
+- elif type(stdout) == types.IntType:
+- c2pwrite = msvcrt.get_osfhandle(stdout)
+- else:
+- # Assuming file-like object
+- c2pwrite = msvcrt.get_osfhandle(stdout.fileno())
+- c2pwrite = self._make_inheritable(c2pwrite)
+-
+- if stderr == None:
+- errwrite = GetStdHandle(STD_ERROR_HANDLE)
+- elif stderr == PIPE:
+- errread, errwrite = CreatePipe(None, 0)
+- # Detach and turn into fd
+- errread = errread.Detach()
+- errread = msvcrt.open_osfhandle(errread, 0)
+- elif stderr == STDOUT:
+- errwrite = c2pwrite
+- elif type(stderr) == types.IntType:
+- errwrite = msvcrt.get_osfhandle(stderr)
+- else:
+- # Assuming file-like object
+- errwrite = msvcrt.get_osfhandle(stderr.fileno())
+- errwrite = self._make_inheritable(errwrite)
+-
+- return (p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite)
+-
+-
+- def _make_inheritable(self, handle):
+- """Return a duplicate of handle, which is inheritable"""
+- return DuplicateHandle(GetCurrentProcess(), handle,
+- GetCurrentProcess(), 0, 1,
+- DUPLICATE_SAME_ACCESS)
+-
+-
+- def _find_w9xpopen(self):
+- """Find and return absolut path to w9xpopen.exe"""
+- w9xpopen = os.path.join(os.path.dirname(GetModuleFileName(0)),
+- "w9xpopen.exe")
+- if not os.path.exists(w9xpopen):
+- # Eeek - file-not-found - possibly an embedding
+- # situation - see if we can locate it in sys.exec_prefix
+- w9xpopen = os.path.join(os.path.dirname(sys.exec_prefix),
+- "w9xpopen.exe")
+- if not os.path.exists(w9xpopen):
+- raise RuntimeError("Cannot locate w9xpopen.exe, which is "
+- "needed for Popen to work with your "
+- "shell or platform.")
+- return w9xpopen
+-
+-
+- def _execute_child(self, args, executable, preexec_fn, close_fds,
+- cwd, env, universal_newlines,
+- startupinfo, creationflags, shell,
+- p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite):
+- """Execute program (MS Windows version)"""
+-
+- if not isinstance(args, types.StringTypes):
+- args = list2cmdline(args)
+-
+- # Process startup details
+- default_startupinfo = STARTUPINFO()
+- if startupinfo == None:
+- startupinfo = default_startupinfo
+- if not None in (p2cread, c2pwrite, errwrite):
+- startupinfo.dwFlags |= STARTF_USESTDHANDLES
+- startupinfo.hStdInput = p2cread
+- startupinfo.hStdOutput = c2pwrite
+- startupinfo.hStdError = errwrite
+-
+- if shell:
+- default_startupinfo.dwFlags |= STARTF_USESHOWWINDOW
+- default_startupinfo.wShowWindow = SW_HIDE
+- comspec = os.environ.get("COMSPEC", "cmd.exe")
+- args = comspec + " /c " + args
+- if (GetVersion() >= 0x80000000L or
+- os.path.basename(comspec).lower() == "command.com"):
+- # Win9x, or using command.com on NT. We need to
+- # use the w9xpopen intermediate program. For more
+- # information, see KB Q150956
+- # (http://web.archive.org/web/20011105084002/http://support.microsoft.com/support/kb/articles/Q150/9/56.asp)
+- w9xpopen = self._find_w9xpopen()
+- args = '"%s" %s' % (w9xpopen, args)
+- # Not passing CREATE_NEW_CONSOLE has been known to
+- # cause random failures on win9x. Specifically a
+- # dialog: "Your program accessed mem currently in
+- # use at xxx" and a hopeful warning about the
+- # stability of your system. Cost is Ctrl+C wont
+- # kill children.
+- creationflags |= CREATE_NEW_CONSOLE
+-
+- # Start the process
+- try:
+- hp, ht, pid, tid = CreateProcess(executable, args,
+- # no special security
+- None, None,
+- # must inherit handles to pass std
+- # handles
+- 1,
+- creationflags,
+- env,
+- cwd,
+- startupinfo)
+- except pywintypes.error, e:
+- # Translate pywintypes.error to WindowsError, which is
+- # a subclass of OSError. FIXME: We should really
+- # translate errno using _sys_errlist (or simliar), but
+- # how can this be done from Python?
+- raise WindowsError(*e.args)
+-
+- # Retain the process handle, but close the thread handle
+- self._handle = hp
+- self.pid = pid
+- ht.Close()
+-
+- # Child is launched. Close the parent's copy of those pipe
+- # handles that only the child should have open. You need
+- # to make sure that no handles to the write end of the
+- # output pipe are maintained in this process or else the
+- # pipe will not close when the child process exits and the
+- # ReadFile will hang.
+- if p2cread != None:
+- p2cread.Close()
+- if c2pwrite != None:
+- c2pwrite.Close()
+- if errwrite != None:
+- errwrite.Close()
+-
+-
+- def poll(self):
+- """Check if child process has terminated. Returns returncode
+- attribute."""
+- if self.returncode == None:
+- if WaitForSingleObject(self._handle, 0) == WAIT_OBJECT_0:
+- self.returncode = GetExitCodeProcess(self._handle)
+- _active.remove(self)
+- return self.returncode
+-
+-
+- def wait(self):
+- """Wait for child process to terminate. Returns returncode
+- attribute."""
+- if self.returncode == None:
+- obj = WaitForSingleObject(self._handle, INFINITE)
+- self.returncode = GetExitCodeProcess(self._handle)
+- _active.remove(self)
+- return self.returncode
+-
+-
+- def _readerthread(self, fh, buffer):
+- buffer.append(fh.read())
+-
+-
+- def communicate(self, input=None):
+- """Interact with process: Send data to stdin. Read data from
+- stdout and stderr, until end-of-file is reached. Wait for
+- process to terminate. The optional input argument should be a
+- string to be sent to the child process, or None, if no data
+- should be sent to the child.
+-
+- communicate() returns a tuple (stdout, stderr)."""
+- stdout = None # Return
+- stderr = None # Return
+-
+- if self.stdout:
+- stdout = []
+- stdout_thread = threading.Thread(target=self._readerthread,
+- args=(self.stdout, stdout))
+- stdout_thread.setDaemon(True)
+- stdout_thread.start()
+- if self.stderr:
+- stderr = []
+- stderr_thread = threading.Thread(target=self._readerthread,
+- args=(self.stderr, stderr))
+- stderr_thread.setDaemon(True)
+- stderr_thread.start()
+-
+- if self.stdin:
+- if input != None:
+- self.stdin.write(input)
+- self.stdin.close()
+-
+- if self.stdout:
+- stdout_thread.join()
+- if self.stderr:
+- stderr_thread.join()
+-
+- # All data exchanged. Translate lists into strings.
+- if stdout != None:
+- stdout = stdout[0]
+- if stderr != None:
+- stderr = stderr[0]
+-
+- # Translate newlines, if requested. We cannot let the file
+- # object do the translation: It is based on stdio, which is
+- # impossible to combine with select (unless forcing no
+- # buffering).
+- if self.universal_newlines and hasattr(open, 'newlines'):
+- if stdout:
+- stdout = self._translate_newlines(stdout)
+- if stderr:
+- stderr = self._translate_newlines(stderr)
+-
+- self.wait()
+- return (stdout, stderr)
+-
+- else:
+- #
+- # POSIX methods
+- #
+- def _get_handles(self, stdin, stdout, stderr):
+- """Construct and return tupel with IO objects:
+- p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite
+- """
+- p2cread, p2cwrite = None, None
+- c2pread, c2pwrite = None, None
+- errread, errwrite = None, None
+-
+- if stdin == None:
+- pass
+- elif stdin == PIPE:
+- p2cread, p2cwrite = os.pipe()
+- elif type(stdin) == types.IntType:
+- p2cread = stdin
+- else:
+- # Assuming file-like object
+- p2cread = stdin.fileno()
+-
+- if stdout == None:
+- pass
+- elif stdout == PIPE:
+- c2pread, c2pwrite = os.pipe()
+- elif type(stdout) == types.IntType:
+- c2pwrite = stdout
+- else:
+- # Assuming file-like object
+- c2pwrite = stdout.fileno()
+-
+- if stderr == None:
+- pass
+- elif stderr == PIPE:
+- errread, errwrite = os.pipe()
+- elif stderr == STDOUT:
+- errwrite = c2pwrite
+- elif type(stderr) == types.IntType:
+- errwrite = stderr
+- else:
+- # Assuming file-like object
+- errwrite = stderr.fileno()
+-
+- return (p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite)
+-
+-
+- def _set_cloexec_flag(self, fd):
+- try:
+- cloexec_flag = fcntl.FD_CLOEXEC
+- except AttributeError:
+- cloexec_flag = 1
+-
+- old = fcntl.fcntl(fd, fcntl.F_GETFD)
+- fcntl.fcntl(fd, fcntl.F_SETFD, old | cloexec_flag)
+-
+-
+- def _close_fds(self, but):
+- for i in range(3, MAXFD):
+- if i == but:
+- continue
+- try:
+- os.close(i)
+- except:
+- pass
+-
+-
+- def _execute_child(self, args, executable, preexec_fn, close_fds,
+- cwd, env, universal_newlines,
+- startupinfo, creationflags, shell,
+- p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite):
+- """Execute program (POSIX version)"""
+-
+- if isinstance(args, types.StringTypes):
+- args = [args]
+-
+- if shell:
+- args = ["/bin/sh", "-c"] + args
+-
+- if executable == None:
+- executable = args[0]
+-
+- # For transferring possible exec failure from child to parent
+- # The first char specifies the exception type: 0 means
+- # OSError, 1 means some other error.
+- errpipe_read, errpipe_write = os.pipe()
+- self._set_cloexec_flag(errpipe_write)
+-
+- self.pid = os.fork()
+- if self.pid == 0:
+- # Child
+- try:
+- # Close parent's pipe ends
+- if p2cwrite:
+- os.close(p2cwrite)
+- if c2pread:
+- os.close(c2pread)
+- if errread:
+- os.close(errread)
+- os.close(errpipe_read)
+-
+- # Dup fds for child
+- if p2cread:
+- os.dup2(p2cread, 0)
+- if c2pwrite:
+- os.dup2(c2pwrite, 1)
+- if errwrite:
+- os.dup2(errwrite, 2)
+-
+- # Close pipe fds. Make sure we doesn't close the same
+- # fd more than once.
+- if p2cread:
+- os.close(p2cread)
+- if c2pwrite and c2pwrite not in (p2cread,):
+- os.close(c2pwrite)
+- if errwrite and errwrite not in (p2cread, c2pwrite):
+- os.close(errwrite)
+-
+- # Close all other fds, if asked for
+- if close_fds:
+- self._close_fds(but=errpipe_write)
+-
+- if cwd != None:
+- os.chdir(cwd)
+-
+- if preexec_fn:
+- apply(preexec_fn)
+-
+- if env == None:
+- os.execvp(executable, args)
+- else:
+- os.execvpe(executable, args, env)
+-
+- except:
+- exc_type, exc_value, tb = sys.exc_info()
+- # Save the traceback and attach it to the exception object
+- exc_lines = traceback.format_exception(exc_type,
+- exc_value,
+- tb)
+- exc_value.child_traceback = ''.join(exc_lines)
+- os.write(errpipe_write, pickle.dumps(exc_value))
+-
+- # This exitcode won't be reported to applications, so it
+- # really doesn't matter what we return.
+- os._exit(255)
+-
+- # Parent
+- os.close(errpipe_write)
+- if p2cread and p2cwrite:
+- os.close(p2cread)
+- if c2pwrite and c2pread:
+- os.close(c2pwrite)
+- if errwrite and errread:
+- os.close(errwrite)
+-
+- # Wait for exec to fail or succeed; possibly raising exception
+- data = os.read(errpipe_read, 1048576) # Exceptions limited to 1 MB
+- os.close(errpipe_read)
+- if data != "":
+- os.waitpid(self.pid, 0)
+- child_exception = pickle.loads(data)
+- raise child_exception
+-
+-
+- def _handle_exitstatus(self, sts):
+- if os.WIFSIGNALED(sts):
+- self.returncode = -os.WTERMSIG(sts)
+- elif os.WIFEXITED(sts):
+- self.returncode = os.WEXITSTATUS(sts)
+- else:
+- # Should never happen
+- raise RuntimeError("Unknown child exit status!")
+-
+- _active.remove(self)
+-
+-
+- def poll(self):
+- """Check if child process has terminated. Returns returncode
+- attribute."""
+- if self.returncode == None:
+- try:
+- pid, sts = os.waitpid(self.pid, os.WNOHANG)
+- if pid == self.pid:
+- self._handle_exitstatus(sts)
+- except os.error:
+- pass
+- return self.returncode
+-
+-
+- def wait(self):
+- """Wait for child process to terminate. Returns returncode
+- attribute."""
+- if self.returncode == None:
+- pid, sts = os.waitpid(self.pid, 0)
+- self._handle_exitstatus(sts)
+- return self.returncode
+-
+-
+- def communicate(self, input=None):
+- """Interact with process: Send data to stdin. Read data from
+- stdout and stderr, until end-of-file is reached. Wait for
+- process to terminate. The optional input argument should be a
+- string to be sent to the child process, or None, if no data
+- should be sent to the child.
+-
+- communicate() returns a tuple (stdout, stderr)."""
+- read_set = []
+- write_set = []
+- stdout = None # Return
+- stderr = None # Return
+-
+- if self.stdin:
+- # Flush stdio buffer. This might block, if the user has
+- # been writing to .stdin in an uncontrolled fashion.
+- self.stdin.flush()
+- if input:
+- write_set.append(self.stdin)
+- else:
+- self.stdin.close()
+- if self.stdout:
+- read_set.append(self.stdout)
+- stdout = []
+- if self.stderr:
+- read_set.append(self.stderr)
+- stderr = []
+-
+- while read_set or write_set:
+- rlist, wlist, xlist = select.select(read_set, write_set, [])
+-
+- if self.stdin in wlist:
+- # When select has indicated that the file is writable,
+- # we can write up to PIPE_BUF bytes without risk
+- # blocking. POSIX defines PIPE_BUF >= 512
+- bytes_written = os.write(self.stdin.fileno(), input[:512])
+- input = input[bytes_written:]
+- if not input:
+- self.stdin.close()
+- write_set.remove(self.stdin)
+-
+- if self.stdout in rlist:
+- data = os.read(self.stdout.fileno(), 1024)
+- if data == "":
+- self.stdout.close()
+- read_set.remove(self.stdout)
+- stdout.append(data)
+-
+- if self.stderr in rlist:
+- data = os.read(self.stderr.fileno(), 1024)
+- if data == "":
+- self.stderr.close()
+- read_set.remove(self.stderr)
+- stderr.append(data)
+-
+- # All data exchanged. Translate lists into strings.
+- if stdout != None:
+- stdout = ''.join(stdout)
+- if stderr != None:
+- stderr = ''.join(stderr)
+-
+- # Translate newlines, if requested. We cannot let the file
+- # object do the translation: It is based on stdio, which is
+- # impossible to combine with select (unless forcing no
+- # buffering).
+- if self.universal_newlines and hasattr(open, 'newlines'):
+- if stdout:
+- stdout = self._translate_newlines(stdout)
+- if stderr:
+- stderr = self._translate_newlines(stderr)
+-
+- self.wait()
+- return (stdout, stderr)
+-
+-
+-def _demo_posix():
+- #
+- # Example 1: Simple redirection: Get process list
+- #
+- plist = Popen(["ps"], stdout=PIPE).communicate()[0]
+- print "Process list:"
+- print plist
+-
+- #
+- # Example 2: Change uid before executing child
+- #
+- if os.getuid() == 0:
+- p = Popen(["id"], preexec_fn=lambda: os.setuid(100))
+- p.wait()
+-
+- #
+- # Example 3: Connecting several subprocesses
+- #
+- print "Looking for 'hda'..."
+- p1 = Popen(["dmesg"], stdout=PIPE)
+- p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
+- print repr(p2.communicate()[0])
+-
+- #
+- # Example 4: Catch execution error
+- #
+- print
+- print "Trying a weird file..."
+- try:
+- print Popen(["/this/path/does/not/exist"]).communicate()
+- except OSError, e:
+- if e.errno == errno.ENOENT:
+- print "The file didn't exist. I thought so..."
+- print "Child traceback:"
+- print e.child_traceback
+- else:
+- print "Error", e.errno
+- else:
+- print >>sys.stderr, "Gosh. No error."
+-
+-
+-def _demo_windows():
+- #
+- # Example 1: Connecting several subprocesses
+- #
+- print "Looking for 'PROMPT' in set output..."
+- p1 = Popen("set", stdout=PIPE, shell=True)
+- p2 = Popen('find "PROMPT"', stdin=p1.stdout, stdout=PIPE)
+- print repr(p2.communicate()[0])
+-
+- #
+- # Example 2: Simple execution of program
+- #
+- print "Executing calc..."
+- p = Popen("calc")
+- p.wait()
+-
+-
+-if __name__ == "__main__":
+- if mswindows:
+- _demo_windows()
+- else:
+- _demo_posix()
diff --git a/dev-python/paste/files/paste-1.7.5.1-unbundle-tempita.patch b/dev-python/paste/files/paste-1.7.5.1-unbundle-tempita.patch
new file mode 100644
index 00000000000..689973fd88a
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-unbundle-tempita.patch
@@ -0,0 +1,1860 @@
+Index: Paste-1.7.4/paste/util/looper/__init__.py
+===================================================================
+--- /dev/null
++++ Paste-1.7.4/paste/util/looper/__init__.py
+@@ -0,0 +1,4 @@
++try:
++ from tempita._looper import *
++except ImportError:
++ from _looper import *
+Index: Paste-1.7.4/paste/util/looper/_looper.py
+===================================================================
+--- /dev/null
++++ Paste-1.7.4/paste/util/looper/_looper.py
+@@ -0,0 +1,152 @@
++"""
++Helper for looping over sequences, particular in templates.
++
++Often in a loop in a template it's handy to know what's next up,
++previously up, if this is the first or last item in the sequence, etc.
++These can be awkward to manage in a normal Python loop, but using the
++looper you can get a better sense of the context. Use like::
++
++ >>> for loop, item in looper(['a', 'b', 'c']):
++ ... print loop.number, item
++ ... if not loop.last:
++ ... print '---'
++ 1 a
++ ---
++ 2 b
++ ---
++ 3 c
++
++"""
++
++__all__ = ['looper']
++
++class looper(object):
++ """
++ Helper for looping (particularly in templates)
++
++ Use this like::
++
++ for loop, item in looper(seq):
++ if loop.first:
++ ...
++ """
++
++ def __init__(self, seq):
++ self.seq = seq
++
++ def __iter__(self):
++ return looper_iter(self.seq)
++
++ def __repr__(self):
++ return '<%s for %r>' % (
++ self.__class__.__name__, self.seq)
++
++class looper_iter(object):
++
++ def __init__(self, seq):
++ self.seq = list(seq)
++ self.pos = 0
++
++ def __iter__(self):
++ return self
++
++ def next(self):
++ if self.pos >= len(self.seq):
++ raise StopIteration
++ result = loop_pos(self.seq, self.pos), self.seq[self.pos]
++ self.pos += 1
++ return result
++
++class loop_pos(object):
++
++ def __init__(self, seq, pos):
++ self.seq = seq
++ self.pos = pos
++
++ def __repr__(self):
++ return '<loop pos=%r at %r>' % (
++ self.seq[pos], pos)
++
++ def index(self):
++ return self.pos
++ index = property(index)
++
++ def number(self):
++ return self.pos + 1
++ number = property(number)
++
++ def item(self):
++ return self.seq[self.pos]
++ item = property(item)
++
++ def next(self):
++ try:
++ return self.seq[self.pos+1]
++ except IndexError:
++ return None
++ next = property(next)
++
++ def previous(self):
++ if self.pos == 0:
++ return None
++ return self.seq[self.pos-1]
++ previous = property(previous)
++
++ def odd(self):
++ return not self.pos % 2
++ odd = property(odd)
++
++ def even(self):
++ return self.pos % 2
++ even = property(even)
++
++ def first(self):
++ return self.pos == 0
++ first = property(first)
++
++ def last(self):
++ return self.pos == len(self.seq)-1
++ last = property(last)
++
++ def length(self):
++ return len(self.seq)
++ length = property(length)
++
++ def first_group(self, getter=None):
++ """
++ Returns true if this item is the start of a new group,
++ where groups mean that some attribute has changed. The getter
++ can be None (the item itself changes), an attribute name like
++ ``'.attr'``, a function, or a dict key or list index.
++ """
++ if self.first:
++ return True
++ return self._compare_group(self.item, self.previous, getter)
++
++ def last_group(self, getter=None):
++ """
++ Returns true if this item is the end of a new group,
++ where groups mean that some attribute has changed. The getter
++ can be None (the item itself changes), an attribute name like
++ ``'.attr'``, a function, or a dict key or list index.
++ """
++ if self.last:
++ return True
++ return self._compare_group(self.item, self.next, getter)
++
++ def _compare_group(self, item, other, getter):
++ if getter is None:
++ return item != other
++ elif (isinstance(getter, basestring)
++ and getter.startswith('.')):
++ getter = getter[1:]
++ if getter.endswith('()'):
++ getter = getter[:-2]
++ return getattr(item, getter)() != getattr(other, getter)()
++ else:
++ return getattr(item, getter) != getattr(other, getter)
++ elif callable(getter):
++ return getter(item) != getter(other)
++ else:
++ return item[getter] != other[getter]
++
+Index: Paste-1.7.4/paste/util/looper.py
+===================================================================
+--- Paste-1.7.4.orig/paste/util/looper.py
++++ /dev/null
+@@ -1,152 +0,0 @@
+-"""
+-Helper for looping over sequences, particular in templates.
+-
+-Often in a loop in a template it's handy to know what's next up,
+-previously up, if this is the first or last item in the sequence, etc.
+-These can be awkward to manage in a normal Python loop, but using the
+-looper you can get a better sense of the context. Use like::
+-
+- >>> for loop, item in looper(['a', 'b', 'c']):
+- ... print loop.number, item
+- ... if not loop.last:
+- ... print '---'
+- 1 a
+- ---
+- 2 b
+- ---
+- 3 c
+-
+-"""
+-
+-__all__ = ['looper']
+-
+-class looper(object):
+- """
+- Helper for looping (particularly in templates)
+-
+- Use this like::
+-
+- for loop, item in looper(seq):
+- if loop.first:
+- ...
+- """
+-
+- def __init__(self, seq):
+- self.seq = seq
+-
+- def __iter__(self):
+- return looper_iter(self.seq)
+-
+- def __repr__(self):
+- return '<%s for %r>' % (
+- self.__class__.__name__, self.seq)
+-
+-class looper_iter(object):
+-
+- def __init__(self, seq):
+- self.seq = list(seq)
+- self.pos = 0
+-
+- def __iter__(self):
+- return self
+-
+- def next(self):
+- if self.pos >= len(self.seq):
+- raise StopIteration
+- result = loop_pos(self.seq, self.pos), self.seq[self.pos]
+- self.pos += 1
+- return result
+-
+-class loop_pos(object):
+-
+- def __init__(self, seq, pos):
+- self.seq = seq
+- self.pos = pos
+-
+- def __repr__(self):
+- return '<loop pos=%r at %r>' % (
+- self.seq[pos], pos)
+-
+- def index(self):
+- return self.pos
+- index = property(index)
+-
+- def number(self):
+- return self.pos + 1
+- number = property(number)
+-
+- def item(self):
+- return self.seq[self.pos]
+- item = property(item)
+-
+- def next(self):
+- try:
+- return self.seq[self.pos+1]
+- except IndexError:
+- return None
+- next = property(next)
+-
+- def previous(self):
+- if self.pos == 0:
+- return None
+- return self.seq[self.pos-1]
+- previous = property(previous)
+-
+- def odd(self):
+- return not self.pos % 2
+- odd = property(odd)
+-
+- def even(self):
+- return self.pos % 2
+- even = property(even)
+-
+- def first(self):
+- return self.pos == 0
+- first = property(first)
+-
+- def last(self):
+- return self.pos == len(self.seq)-1
+- last = property(last)
+-
+- def length(self):
+- return len(self.seq)
+- length = property(length)
+-
+- def first_group(self, getter=None):
+- """
+- Returns true if this item is the start of a new group,
+- where groups mean that some attribute has changed. The getter
+- can be None (the item itself changes), an attribute name like
+- ``'.attr'``, a function, or a dict key or list index.
+- """
+- if self.first:
+- return True
+- return self._compare_group(self.item, self.previous, getter)
+-
+- def last_group(self, getter=None):
+- """
+- Returns true if this item is the end of a new group,
+- where groups mean that some attribute has changed. The getter
+- can be None (the item itself changes), an attribute name like
+- ``'.attr'``, a function, or a dict key or list index.
+- """
+- if self.last:
+- return True
+- return self._compare_group(self.item, self.next, getter)
+-
+- def _compare_group(self, item, other, getter):
+- if getter is None:
+- return item != other
+- elif (isinstance(getter, basestring)
+- and getter.startswith('.')):
+- getter = getter[1:]
+- if getter.endswith('()'):
+- getter = getter[:-2]
+- return getattr(item, getter)() != getattr(other, getter)()
+- else:
+- return getattr(item, getter) != getattr(other, getter)
+- elif callable(getter):
+- return getter(item) != getter(other)
+- else:
+- return item[getter] != other[getter]
+-
+Index: Paste-1.7.4/paste/util/template/__init__.py
+===================================================================
+--- /dev/null
++++ Paste-1.7.4/paste/util/template/__init__.py
+@@ -0,0 +1,6 @@
++try:
++ from tempita import *
++ from tempita import paste_script_template_renderer
++except ImportError:
++ from _template import *
++ from _template import paste_script_template_renderer
+Index: Paste-1.7.4/paste/util/template/_template.py
+===================================================================
+--- /dev/null
++++ Paste-1.7.4/paste/util/template/_template.py
+@@ -0,0 +1,758 @@
++"""
++A small templating language
++
++This implements a small templating language for use internally in
++Paste and Paste Script. This language implements if/elif/else,
++for/continue/break, expressions, and blocks of Python code. The
++syntax is::
++
++ {{any expression (function calls etc)}}
++ {{any expression | filter}}
++ {{for x in y}}...{{endfor}}
++ {{if x}}x{{elif y}}y{{else}}z{{endif}}
++ {{py:x=1}}
++ {{py:
++ def foo(bar):
++ return 'baz'
++ }}
++ {{default var = default_value}}
++ {{# comment}}
++
++You use this with the ``Template`` class or the ``sub`` shortcut.
++The ``Template`` class takes the template string and the name of
++the template (for errors) and a default namespace. Then (like
++``string.Template``) you can call the ``tmpl.substitute(**kw)``
++method to make a substitution (or ``tmpl.substitute(a_dict)``).
++
++``sub(content, **kw)`` substitutes the template immediately. You
++can use ``__name='tmpl.html'`` to set the name of the template.
++
++If there are syntax errors ``TemplateError`` will be raised.
++"""
++
++import re
++import sys
++import cgi
++import urllib
++from paste.util.looper import looper
++
++__all__ = ['TemplateError', 'Template', 'sub', 'HTMLTemplate',
++ 'sub_html', 'html', 'bunch']
++
++token_re = re.compile(r'\{\{|\}\}')
++in_re = re.compile(r'\s+in\s+')
++var_re = re.compile(r'^[a-z_][a-z0-9_]*$', re.I)
++
++class TemplateError(Exception):
++ """Exception raised while parsing a template
++ """
++
++ def __init__(self, message, position, name=None):
++ self.message = message
++ self.position = position
++ self.name = name
++
++ def __str__(self):
++ msg = '%s at line %s column %s' % (
++ self.message, self.position[0], self.position[1])
++ if self.name:
++ msg += ' in %s' % self.name
++ return msg
++
++class _TemplateContinue(Exception):
++ pass
++
++class _TemplateBreak(Exception):
++ pass
++
++class Template(object):
++
++ default_namespace = {
++ 'start_braces': '{{',
++ 'end_braces': '}}',
++ 'looper': looper,
++ }
++
++ default_encoding = 'utf8'
++
++ def __init__(self, content, name=None, namespace=None):
++ self.content = content
++ self._unicode = isinstance(content, unicode)
++ self.name = name
++ self._parsed = parse(content, name=name)
++ if namespace is None:
++ namespace = {}
++ self.namespace = namespace
++
++ def from_filename(cls, filename, namespace=None, encoding=None):
++ f = open(filename, 'rb')
++ c = f.read()
++ f.close()
++ if encoding:
++ c = c.decode(encoding)
++ return cls(content=c, name=filename, namespace=namespace)
++
++ from_filename = classmethod(from_filename)
++
++ def __repr__(self):
++ return '<%s %s name=%r>' % (
++ self.__class__.__name__,
++ hex(id(self))[2:], self.name)
++
++ def substitute(self, *args, **kw):
++ if args:
++ if kw:
++ raise TypeError(
++ "You can only give positional *or* keyword arguments")
++ if len(args) > 1:
++ raise TypeError(
++ "You can only give on positional argument")
++ kw = args[0]
++ ns = self.default_namespace.copy()
++ ns.update(self.namespace)
++ ns.update(kw)
++ result = self._interpret(ns)
++ return result
++
++ def _interpret(self, ns):
++ __traceback_hide__ = True
++ parts = []
++ self._interpret_codes(self._parsed, ns, out=parts)
++ return ''.join(parts)
++
++ def _interpret_codes(self, codes, ns, out):
++ __traceback_hide__ = True
++ for item in codes:
++ if isinstance(item, basestring):
++ out.append(item)
++ else:
++ self._interpret_code(item, ns, out)
++
++ def _interpret_code(self, code, ns, out):
++ __traceback_hide__ = True
++ name, pos = code[0], code[1]
++ if name == 'py':
++ self._exec(code[2], ns, pos)
++ elif name == 'continue':
++ raise _TemplateContinue()
++ elif name == 'break':
++ raise _TemplateBreak()
++ elif name == 'for':
++ vars, expr, content = code[2], code[3], code[4]
++ expr = self._eval(expr, ns, pos)
++ self._interpret_for(vars, expr, content, ns, out)
++ elif name == 'cond':
++ parts = code[2:]
++ self._interpret_if(parts, ns, out)
++ elif name == 'expr':
++ parts = code[2].split('|')
++ base = self._eval(parts[0], ns, pos)
++ for part in parts[1:]:
++ func = self._eval(part, ns, pos)
++ base = func(base)
++ out.append(self._repr(base, pos))
++ elif name == 'default':
++ var, expr = code[2], code[3]
++ if var not in ns:
++ result = self._eval(expr, ns, pos)
++ ns[var] = result
++ elif name == 'comment':
++ return
++ else:
++ assert 0, "Unknown code: %r" % name
++
++ def _interpret_for(self, vars, expr, content, ns, out):
++ __traceback_hide__ = True
++ for item in expr:
++ if len(vars) == 1:
++ ns[vars[0]] = item
++ else:
++ if len(vars) != len(item):
++ raise ValueError(
++ 'Need %i items to unpack (got %i items)'
++ % (len(vars), len(item)))
++ for name, value in zip(vars, item):
++ ns[name] = value
++ try:
++ self._interpret_codes(content, ns, out)
++ except _TemplateContinue:
++ continue
++ except _TemplateBreak:
++ break
++
++ def _interpret_if(self, parts, ns, out):
++ __traceback_hide__ = True
++ # @@: if/else/else gets through
++ for part in parts:
++ assert not isinstance(part, basestring)
++ name, pos = part[0], part[1]
++ if name == 'else':
++ result = True
++ else:
++ result = self._eval(part[2], ns, pos)
++ if result:
++ self._interpret_codes(part[3], ns, out)
++ break
++
++ def _eval(self, code, ns, pos):
++ __traceback_hide__ = True
++ try:
++ value = eval(code, ns)
++ return value
++ except:
++ exc_info = sys.exc_info()
++ e = exc_info[1]
++ if getattr(e, 'args'):
++ arg0 = e.args[0]
++ else:
++ arg0 = str(e)
++ e.args = (self._add_line_info(arg0, pos),)
++ raise exc_info[0], e, exc_info[2]
++
++ def _exec(self, code, ns, pos):
++ __traceback_hide__ = True
++ try:
++ exec code in ns
++ except:
++ exc_info = sys.exc_info()
++ e = exc_info[1]
++ e.args = (self._add_line_info(e.args[0], pos),)
++ raise exc_info[0], e, exc_info[2]
++
++ def _repr(self, value, pos):
++ __traceback_hide__ = True
++ try:
++ if value is None:
++ return ''
++ if self._unicode:
++ try:
++ value = unicode(value)
++ except UnicodeDecodeError:
++ value = str(value)
++ else:
++ value = str(value)
++ except:
++ exc_info = sys.exc_info()
++ e = exc_info[1]
++ e.args = (self._add_line_info(e.args[0], pos),)
++ raise exc_info[0], e, exc_info[2]
++ else:
++ if self._unicode and isinstance(value, str):
++ if not self.decode_encoding:
++ raise UnicodeDecodeError(
++ 'Cannot decode str value %r into unicode '
++ '(no default_encoding provided)' % value)
++ value = value.decode(self.default_encoding)
++ elif not self._unicode and isinstance(value, unicode):
++ if not self.decode_encoding:
++ raise UnicodeEncodeError(
++ 'Cannot encode unicode value %r into str '
++ '(no default_encoding provided)' % value)
++ value = value.encode(self.default_encoding)
++ return value
++
++
++ def _add_line_info(self, msg, pos):
++ msg = "%s at line %s column %s" % (
++ msg, pos[0], pos[1])
++ if self.name:
++ msg += " in file %s" % self.name
++ return msg
++
++def sub(content, **kw):
++ name = kw.get('__name')
++ tmpl = Template(content, name=name)
++ return tmpl.substitute(kw)
++ return result
++
++def paste_script_template_renderer(content, vars, filename=None):
++ tmpl = Template(content, name=filename)
++ return tmpl.substitute(vars)
++
++class bunch(dict):
++
++ def __init__(self, **kw):
++ for name, value in kw.items():
++ setattr(self, name, value)
++
++ def __setattr__(self, name, value):
++ self[name] = value
++
++ def __getattr__(self, name):
++ try:
++ return self[name]
++ except KeyError:
++ raise AttributeError(name)
++
++ def __getitem__(self, key):
++ if 'default' in self:
++ try:
++ return dict.__getitem__(self, key)
++ except KeyError:
++ return dict.__getitem__(self, 'default')
++ else:
++ return dict.__getitem__(self, key)
++
++ def __repr__(self):
++ items = [
++ (k, v) for k, v in self.items()]
++ items.sort()
++ return '<%s %s>' % (
++ self.__class__.__name__,
++ ' '.join(['%s=%r' % (k, v) for k, v in items]))
++
++############################################################
++## HTML Templating
++############################################################
++
++class html(object):
++ def __init__(self, value):
++ self.value = value
++ def __str__(self):
++ return self.value
++ def __repr__(self):
++ return '<%s %r>' % (
++ self.__class__.__name__, self.value)
++
++def html_quote(value):
++ if value is None:
++ return ''
++ if not isinstance(value, basestring):
++ if hasattr(value, '__unicode__'):
++ value = unicode(value)
++ else:
++ value = str(value)
++ value = cgi.escape(value, 1)
++ if isinstance(value, unicode):
++ value = value.encode('ascii', 'xmlcharrefreplace')
++ return value
++
++def url(v):
++ if not isinstance(v, basestring):
++ if hasattr(v, '__unicode__'):
++ v = unicode(v)
++ else:
++ v = str(v)
++ if isinstance(v, unicode):
++ v = v.encode('utf8')
++ return urllib.quote(v)
++
++def attr(**kw):
++ kw = kw.items()
++ kw.sort()
++ parts = []
++ for name, value in kw:
++ if value is None:
++ continue
++ if name.endswith('_'):
++ name = name[:-1]
++ parts.append('%s="%s"' % (html_quote(name), html_quote(value)))
++ return html(' '.join(parts))
++
++class HTMLTemplate(Template):
++
++ default_namespace = Template.default_namespace.copy()
++ default_namespace.update(dict(
++ html=html,
++ attr=attr,
++ url=url,
++ ))
++
++ def _repr(self, value, pos):
++ plain = Template._repr(self, value, pos)
++ if isinstance(value, html):
++ return plain
++ else:
++ return html_quote(plain)
++
++def sub_html(content, **kw):
++ name = kw.get('__name')
++ tmpl = HTMLTemplate(content, name=name)
++ return tmpl.substitute(kw)
++ return result
++
++
++############################################################
++## Lexing and Parsing
++############################################################
++
++def lex(s, name=None, trim_whitespace=True):
++ """
++ Lex a string into chunks:
++
++ >>> lex('hey')
++ ['hey']
++ >>> lex('hey {{you}}')
++ ['hey ', ('you', (1, 7))]
++ >>> lex('hey {{')
++ Traceback (most recent call last):
++ ...
++ TemplateError: No }} to finish last expression at line 1 column 7
++ >>> lex('hey }}')
++ Traceback (most recent call last):
++ ...
++ TemplateError: }} outside expression at line 1 column 7
++ >>> lex('hey {{ {{')
++ Traceback (most recent call last):
++ ...
++ TemplateError: {{ inside expression at line 1 column 10
++
++ """
++ in_expr = False
++ chunks = []
++ last = 0
++ last_pos = (1, 1)
++ for match in token_re.finditer(s):
++ expr = match.group(0)
++ pos = find_position(s, match.end())
++ if expr == '{{' and in_expr:
++ raise TemplateError('{{ inside expression', position=pos,
++ name=name)
++ elif expr == '}}' and not in_expr:
++ raise TemplateError('}} outside expression', position=pos,
++ name=name)
++ if expr == '{{':
++ part = s[last:match.start()]
++ if part:
++ chunks.append(part)
++ in_expr = True
++ else:
++ chunks.append((s[last:match.start()], last_pos))
++ in_expr = False
++ last = match.end()
++ last_pos = pos
++ if in_expr:
++ raise TemplateError('No }} to finish last expression',
++ name=name, position=last_pos)
++ part = s[last:]
++ if part:
++ chunks.append(part)
++ if trim_whitespace:
++ chunks = trim_lex(chunks)
++ return chunks
++
++statement_re = re.compile(r'^(?:if |elif |else |for |py:)')
++single_statements = ['endif', 'endfor', 'continue', 'break']
++trail_whitespace_re = re.compile(r'\n[\t ]*$')
++lead_whitespace_re = re.compile(r'^[\t ]*\n')
++
++def trim_lex(tokens):
++ r"""
++ Takes a lexed set of tokens, and removes whitespace when there is
++ a directive on a line by itself:
++
++ >>> tokens = lex('{{if x}}\nx\n{{endif}}\ny', trim_whitespace=False)
++ >>> tokens
++ [('if x', (1, 3)), '\nx\n', ('endif', (3, 3)), '\ny']
++ >>> trim_lex(tokens)
++ [('if x', (1, 3)), 'x\n', ('endif', (3, 3)), 'y']
++ """
++ for i in range(len(tokens)):
++ current = tokens[i]
++ if isinstance(tokens[i], basestring):
++ # we don't trim this
++ continue
++ item = current[0]
++ if not statement_re.search(item) and item not in single_statements:
++ continue
++ if not i:
++ prev = ''
++ else:
++ prev = tokens[i-1]
++ if i+1 >= len(tokens):
++ next = ''
++ else:
++ next = tokens[i+1]
++ if (not isinstance(next, basestring)
++ or not isinstance(prev, basestring)):
++ continue
++ if ((not prev or trail_whitespace_re.search(prev))
++ and (not next or lead_whitespace_re.search(next))):
++ if prev:
++ m = trail_whitespace_re.search(prev)
++ # +1 to leave the leading \n on:
++ prev = prev[:m.start()+1]
++ tokens[i-1] = prev
++ if next:
++ m = lead_whitespace_re.search(next)
++ next = next[m.end():]
++ tokens[i+1] = next
++ return tokens
++
++
++def find_position(string, index):
++ """Given a string and index, return (line, column)"""
++ leading = string[:index].splitlines()
++ return (len(leading), len(leading[-1])+1)
++
++def parse(s, name=None):
++ r"""
++ Parses a string into a kind of AST
++
++ >>> parse('{{x}}')
++ [('expr', (1, 3), 'x')]
++ >>> parse('foo')
++ ['foo']
++ >>> parse('{{if x}}test{{endif}}')
++ [('cond', (1, 3), ('if', (1, 3), 'x', ['test']))]
++ >>> parse('series->{{for x in y}}x={{x}}{{endfor}}')
++ ['series->', ('for', (1, 11), ('x',), 'y', ['x=', ('expr', (1, 27), 'x')])]
++ >>> parse('{{for x, y in z:}}{{continue}}{{endfor}}')
++ [('for', (1, 3), ('x', 'y'), 'z', [('continue', (1, 21))])]
++ >>> parse('{{py:x=1}}')
++ [('py', (1, 3), 'x=1')]
++ >>> parse('{{if x}}a{{elif y}}b{{else}}c{{endif}}')
++ [('cond', (1, 3), ('if', (1, 3), 'x', ['a']), ('elif', (1, 12), 'y', ['b']), ('else', (1, 23), None, ['c']))]
++
++ Some exceptions::
++
++ >>> parse('{{continue}}')
++ Traceback (most recent call last):
++ ...
++ TemplateError: continue outside of for loop at line 1 column 3
++ >>> parse('{{if x}}foo')
++ Traceback (most recent call last):
++ ...
++ TemplateError: No {{endif}} at line 1 column 3
++ >>> parse('{{else}}')
++ Traceback (most recent call last):
++ ...
++ TemplateError: else outside of an if block at line 1 column 3
++ >>> parse('{{if x}}{{for x in y}}{{endif}}{{endfor}}')
++ Traceback (most recent call last):
++ ...
++ TemplateError: Unexpected endif at line 1 column 25
++ >>> parse('{{if}}{{endif}}')
++ Traceback (most recent call last):
++ ...
++ TemplateError: if with no expression at line 1 column 3
++ >>> parse('{{for x y}}{{endfor}}')
++ Traceback (most recent call last):
++ ...
++ TemplateError: Bad for (no "in") in 'x y' at line 1 column 3
++ >>> parse('{{py:x=1\ny=2}}')
++ Traceback (most recent call last):
++ ...
++ TemplateError: Multi-line py blocks must start with a newline at line 1 column 3
++ """
++ tokens = lex(s, name=name)
++ result = []
++ while tokens:
++ next, tokens = parse_expr(tokens, name)
++ result.append(next)
++ return result
++
++def parse_expr(tokens, name, context=()):
++ if isinstance(tokens[0], basestring):
++ return tokens[0], tokens[1:]
++ expr, pos = tokens[0]
++ expr = expr.strip()
++ if expr.startswith('py:'):
++ expr = expr[3:].lstrip(' \t')
++ if expr.startswith('\n'):
++ expr = expr[1:]
++ else:
++ if '\n' in expr:
++ raise TemplateError(
++ 'Multi-line py blocks must start with a newline',
++ position=pos, name=name)
++ return ('py', pos, expr), tokens[1:]
++ elif expr in ('continue', 'break'):
++ if 'for' not in context:
++ raise TemplateError(
++ 'continue outside of for loop',
++ position=pos, name=name)
++ return (expr, pos), tokens[1:]
++ elif expr.startswith('if '):
++ return parse_cond(tokens, name, context)
++ elif (expr.startswith('elif ')
++ or expr == 'else'):
++ raise TemplateError(
++ '%s outside of an if block' % expr.split()[0],
++ position=pos, name=name)
++ elif expr in ('if', 'elif', 'for'):
++ raise TemplateError(
++ '%s with no expression' % expr,
++ position=pos, name=name)
++ elif expr in ('endif', 'endfor'):
++ raise TemplateError(
++ 'Unexpected %s' % expr,
++ position=pos, name=name)
++ elif expr.startswith('for '):
++ return parse_for(tokens, name, context)
++ elif expr.startswith('default '):
++ return parse_default(tokens, name, context)
++ elif expr.startswith('#'):
++ return ('comment', pos, tokens[0][0]), tokens[1:]
++ return ('expr', pos, tokens[0][0]), tokens[1:]
++
++def parse_cond(tokens, name, context):
++ start = tokens[0][1]
++ pieces = []
++ context = context + ('if',)
++ while 1:
++ if not tokens:
++ raise TemplateError(
++ 'Missing {{endif}}',
++ position=start, name=name)
++ if (isinstance(tokens[0], tuple)
++ and tokens[0][0] == 'endif'):
++ return ('cond', start) + tuple(pieces), tokens[1:]
++ next, tokens = parse_one_cond(tokens, name, context)
++ pieces.append(next)
++
++def parse_one_cond(tokens, name, context):
++ (first, pos), tokens = tokens[0], tokens[1:]
++ content = []
++ if first.endswith(':'):
++ first = first[:-1]
++ if first.startswith('if '):
++ part = ('if', pos, first[3:].lstrip(), content)
++ elif first.startswith('elif '):
++ part = ('elif', pos, first[5:].lstrip(), content)
++ elif first == 'else':
++ part = ('else', pos, None, content)
++ else:
++ assert 0, "Unexpected token %r at %s" % (first, pos)
++ while 1:
++ if not tokens:
++ raise TemplateError(
++ 'No {{endif}}',
++ position=pos, name=name)
++ if (isinstance(tokens[0], tuple)
++ and (tokens[0][0] == 'endif'
++ or tokens[0][0].startswith('elif ')
++ or tokens[0][0] == 'else')):
++ return part, tokens
++ next, tokens = parse_expr(tokens, name, context)
++ content.append(next)
++
++def parse_for(tokens, name, context):
++ first, pos = tokens[0]
++ tokens = tokens[1:]
++ context = ('for',) + context
++ content = []
++ assert first.startswith('for ')
++ if first.endswith(':'):
++ first = first[:-1]
++ first = first[3:].strip()
++ match = in_re.search(first)
++ if not match:
++ raise TemplateError(
++ 'Bad for (no "in") in %r' % first,
++ position=pos, name=name)
++ vars = first[:match.start()]
++ if '(' in vars:
++ raise TemplateError(
++ 'You cannot have () in the variable section of a for loop (%r)'
++ % vars, position=pos, name=name)
++ vars = tuple([
++ v.strip() for v in first[:match.start()].split(',')
++ if v.strip()])
++ expr = first[match.end():]
++ while 1:
++ if not tokens:
++ raise TemplateError(
++ 'No {{endfor}}',
++ position=pos, name=name)
++ if (isinstance(tokens[0], tuple)
++ and tokens[0][0] == 'endfor'):
++ return ('for', pos, vars, expr, content), tokens[1:]
++ next, tokens = parse_expr(tokens, name, context)
++ content.append(next)
++
++def parse_default(tokens, name, context):
++ first, pos = tokens[0]
++ assert first.startswith('default ')
++ first = first.split(None, 1)[1]
++ parts = first.split('=', 1)
++ if len(parts) == 1:
++ raise TemplateError(
++ "Expression must be {{default var=value}}; no = found in %r" % first,
++ position=pos, name=name)
++ var = parts[0].strip()
++ if ',' in var:
++ raise TemplateError(
++ "{{default x, y = ...}} is not supported",
++ position=pos, name=name)
++ if not var_re.search(var):
++ raise TemplateError(
++ "Not a valid variable name for {{default}}: %r"
++ % var, position=pos, name=name)
++ expr = parts[1].strip()
++ return ('default', pos, var, expr), tokens[1:]
++
++_fill_command_usage = """\
++%prog [OPTIONS] TEMPLATE arg=value
++
++Use py:arg=value to set a Python value; otherwise all values are
++strings.
++"""
++
++def fill_command(args=None):
++ import sys, optparse, pkg_resources, os
++ if args is None:
++ args = sys.argv[1:]
++ dist = pkg_resources.get_distribution('Paste')
++ parser = optparse.OptionParser(
++ version=str(dist),
++ usage=_fill_command_usage)
++ parser.add_option(
++ '-o', '--output',
++ dest='output',
++ metavar="FILENAME",
++ help="File to write output to (default stdout)")
++ parser.add_option(
++ '--html',
++ dest='use_html',
++ action='store_true',
++ help="Use HTML style filling (including automatic HTML quoting)")
++ parser.add_option(
++ '--env',
++ dest='use_env',
++ action='store_true',
++ help="Put the environment in as top-level variables")
++ options, args = parser.parse_args(args)
++ if len(args) < 1:
++ print 'You must give a template filename'
++ print dir(parser)
++ assert 0
++ template_name = args[0]
++ args = args[1:]
++ vars = {}
++ if options.use_env:
++ vars.update(os.environ)
++ for value in args:
++ if '=' not in value:
++ print 'Bad argument: %r' % value
++ sys.exit(2)
++ name, value = value.split('=', 1)
++ if name.startswith('py:'):
++ name = name[:3]
++ value = eval(value)
++ vars[name] = value
++ if template_name == '-':
++ template_content = sys.stdin.read()
++ template_name = '<stdin>'
++ else:
++ f = open(template_name, 'rb')
++ template_content = f.read()
++ f.close()
++ if options.use_html:
++ TemplateClass = HTMLTemplate
++ else:
++ TemplateClass = Template
++ template = TemplateClass(template_content, name=template_name)
++ result = template.substitute(vars)
++ if options.output:
++ f = open(options.output, 'wb')
++ f.write(result)
++ f.close()
++ else:
++ sys.stdout.write(result)
++
++if __name__ == '__main__':
++ from paste.util.template import fill_command
++ fill_command()
++
++
+Index: Paste-1.7.4/paste/util/template.py
+===================================================================
+--- Paste-1.7.4.orig/paste/util/template.py
++++ /dev/null
+@@ -1,758 +0,0 @@
+-"""
+-A small templating language
+-
+-This implements a small templating language for use internally in
+-Paste and Paste Script. This language implements if/elif/else,
+-for/continue/break, expressions, and blocks of Python code. The
+-syntax is::
+-
+- {{any expression (function calls etc)}}
+- {{any expression | filter}}
+- {{for x in y}}...{{endfor}}
+- {{if x}}x{{elif y}}y{{else}}z{{endif}}
+- {{py:x=1}}
+- {{py:
+- def foo(bar):
+- return 'baz'
+- }}
+- {{default var = default_value}}
+- {{# comment}}
+-
+-You use this with the ``Template`` class or the ``sub`` shortcut.
+-The ``Template`` class takes the template string and the name of
+-the template (for errors) and a default namespace. Then (like
+-``string.Template``) you can call the ``tmpl.substitute(**kw)``
+-method to make a substitution (or ``tmpl.substitute(a_dict)``).
+-
+-``sub(content, **kw)`` substitutes the template immediately. You
+-can use ``__name='tmpl.html'`` to set the name of the template.
+-
+-If there are syntax errors ``TemplateError`` will be raised.
+-"""
+-
+-import re
+-import sys
+-import cgi
+-import urllib
+-from paste.util.looper import looper
+-
+-__all__ = ['TemplateError', 'Template', 'sub', 'HTMLTemplate',
+- 'sub_html', 'html', 'bunch']
+-
+-token_re = re.compile(r'\{\{|\}\}')
+-in_re = re.compile(r'\s+in\s+')
+-var_re = re.compile(r'^[a-z_][a-z0-9_]*$', re.I)
+-
+-class TemplateError(Exception):
+- """Exception raised while parsing a template
+- """
+-
+- def __init__(self, message, position, name=None):
+- self.message = message
+- self.position = position
+- self.name = name
+-
+- def __str__(self):
+- msg = '%s at line %s column %s' % (
+- self.message, self.position[0], self.position[1])
+- if self.name:
+- msg += ' in %s' % self.name
+- return msg
+-
+-class _TemplateContinue(Exception):
+- pass
+-
+-class _TemplateBreak(Exception):
+- pass
+-
+-class Template(object):
+-
+- default_namespace = {
+- 'start_braces': '{{',
+- 'end_braces': '}}',
+- 'looper': looper,
+- }
+-
+- default_encoding = 'utf8'
+-
+- def __init__(self, content, name=None, namespace=None):
+- self.content = content
+- self._unicode = isinstance(content, unicode)
+- self.name = name
+- self._parsed = parse(content, name=name)
+- if namespace is None:
+- namespace = {}
+- self.namespace = namespace
+-
+- def from_filename(cls, filename, namespace=None, encoding=None):
+- f = open(filename, 'rb')
+- c = f.read()
+- f.close()
+- if encoding:
+- c = c.decode(encoding)
+- return cls(content=c, name=filename, namespace=namespace)
+-
+- from_filename = classmethod(from_filename)
+-
+- def __repr__(self):
+- return '<%s %s name=%r>' % (
+- self.__class__.__name__,
+- hex(id(self))[2:], self.name)
+-
+- def substitute(self, *args, **kw):
+- if args:
+- if kw:
+- raise TypeError(
+- "You can only give positional *or* keyword arguments")
+- if len(args) > 1:
+- raise TypeError(
+- "You can only give on positional argument")
+- kw = args[0]
+- ns = self.default_namespace.copy()
+- ns.update(self.namespace)
+- ns.update(kw)
+- result = self._interpret(ns)
+- return result
+-
+- def _interpret(self, ns):
+- __traceback_hide__ = True
+- parts = []
+- self._interpret_codes(self._parsed, ns, out=parts)
+- return ''.join(parts)
+-
+- def _interpret_codes(self, codes, ns, out):
+- __traceback_hide__ = True
+- for item in codes:
+- if isinstance(item, basestring):
+- out.append(item)
+- else:
+- self._interpret_code(item, ns, out)
+-
+- def _interpret_code(self, code, ns, out):
+- __traceback_hide__ = True
+- name, pos = code[0], code[1]
+- if name == 'py':
+- self._exec(code[2], ns, pos)
+- elif name == 'continue':
+- raise _TemplateContinue()
+- elif name == 'break':
+- raise _TemplateBreak()
+- elif name == 'for':
+- vars, expr, content = code[2], code[3], code[4]
+- expr = self._eval(expr, ns, pos)
+- self._interpret_for(vars, expr, content, ns, out)
+- elif name == 'cond':
+- parts = code[2:]
+- self._interpret_if(parts, ns, out)
+- elif name == 'expr':
+- parts = code[2].split('|')
+- base = self._eval(parts[0], ns, pos)
+- for part in parts[1:]:
+- func = self._eval(part, ns, pos)
+- base = func(base)
+- out.append(self._repr(base, pos))
+- elif name == 'default':
+- var, expr = code[2], code[3]
+- if var not in ns:
+- result = self._eval(expr, ns, pos)
+- ns[var] = result
+- elif name == 'comment':
+- return
+- else:
+- assert 0, "Unknown code: %r" % name
+-
+- def _interpret_for(self, vars, expr, content, ns, out):
+- __traceback_hide__ = True
+- for item in expr:
+- if len(vars) == 1:
+- ns[vars[0]] = item
+- else:
+- if len(vars) != len(item):
+- raise ValueError(
+- 'Need %i items to unpack (got %i items)'
+- % (len(vars), len(item)))
+- for name, value in zip(vars, item):
+- ns[name] = value
+- try:
+- self._interpret_codes(content, ns, out)
+- except _TemplateContinue:
+- continue
+- except _TemplateBreak:
+- break
+-
+- def _interpret_if(self, parts, ns, out):
+- __traceback_hide__ = True
+- # @@: if/else/else gets through
+- for part in parts:
+- assert not isinstance(part, basestring)
+- name, pos = part[0], part[1]
+- if name == 'else':
+- result = True
+- else:
+- result = self._eval(part[2], ns, pos)
+- if result:
+- self._interpret_codes(part[3], ns, out)
+- break
+-
+- def _eval(self, code, ns, pos):
+- __traceback_hide__ = True
+- try:
+- value = eval(code, ns)
+- return value
+- except:
+- exc_info = sys.exc_info()
+- e = exc_info[1]
+- if getattr(e, 'args'):
+- arg0 = e.args[0]
+- else:
+- arg0 = str(e)
+- e.args = (self._add_line_info(arg0, pos),)
+- raise exc_info[0], e, exc_info[2]
+-
+- def _exec(self, code, ns, pos):
+- __traceback_hide__ = True
+- try:
+- exec code in ns
+- except:
+- exc_info = sys.exc_info()
+- e = exc_info[1]
+- e.args = (self._add_line_info(e.args[0], pos),)
+- raise exc_info[0], e, exc_info[2]
+-
+- def _repr(self, value, pos):
+- __traceback_hide__ = True
+- try:
+- if value is None:
+- return ''
+- if self._unicode:
+- try:
+- value = unicode(value)
+- except UnicodeDecodeError:
+- value = str(value)
+- else:
+- value = str(value)
+- except:
+- exc_info = sys.exc_info()
+- e = exc_info[1]
+- e.args = (self._add_line_info(e.args[0], pos),)
+- raise exc_info[0], e, exc_info[2]
+- else:
+- if self._unicode and isinstance(value, str):
+- if not self.decode_encoding:
+- raise UnicodeDecodeError(
+- 'Cannot decode str value %r into unicode '
+- '(no default_encoding provided)' % value)
+- value = value.decode(self.default_encoding)
+- elif not self._unicode and isinstance(value, unicode):
+- if not self.decode_encoding:
+- raise UnicodeEncodeError(
+- 'Cannot encode unicode value %r into str '
+- '(no default_encoding provided)' % value)
+- value = value.encode(self.default_encoding)
+- return value
+-
+-
+- def _add_line_info(self, msg, pos):
+- msg = "%s at line %s column %s" % (
+- msg, pos[0], pos[1])
+- if self.name:
+- msg += " in file %s" % self.name
+- return msg
+-
+-def sub(content, **kw):
+- name = kw.get('__name')
+- tmpl = Template(content, name=name)
+- return tmpl.substitute(kw)
+- return result
+-
+-def paste_script_template_renderer(content, vars, filename=None):
+- tmpl = Template(content, name=filename)
+- return tmpl.substitute(vars)
+-
+-class bunch(dict):
+-
+- def __init__(self, **kw):
+- for name, value in kw.items():
+- setattr(self, name, value)
+-
+- def __setattr__(self, name, value):
+- self[name] = value
+-
+- def __getattr__(self, name):
+- try:
+- return self[name]
+- except KeyError:
+- raise AttributeError(name)
+-
+- def __getitem__(self, key):
+- if 'default' in self:
+- try:
+- return dict.__getitem__(self, key)
+- except KeyError:
+- return dict.__getitem__(self, 'default')
+- else:
+- return dict.__getitem__(self, key)
+-
+- def __repr__(self):
+- items = [
+- (k, v) for k, v in self.items()]
+- items.sort()
+- return '<%s %s>' % (
+- self.__class__.__name__,
+- ' '.join(['%s=%r' % (k, v) for k, v in items]))
+-
+-############################################################
+-## HTML Templating
+-############################################################
+-
+-class html(object):
+- def __init__(self, value):
+- self.value = value
+- def __str__(self):
+- return self.value
+- def __repr__(self):
+- return '<%s %r>' % (
+- self.__class__.__name__, self.value)
+-
+-def html_quote(value):
+- if value is None:
+- return ''
+- if not isinstance(value, basestring):
+- if hasattr(value, '__unicode__'):
+- value = unicode(value)
+- else:
+- value = str(value)
+- value = cgi.escape(value, 1)
+- if isinstance(value, unicode):
+- value = value.encode('ascii', 'xmlcharrefreplace')
+- return value
+-
+-def url(v):
+- if not isinstance(v, basestring):
+- if hasattr(v, '__unicode__'):
+- v = unicode(v)
+- else:
+- v = str(v)
+- if isinstance(v, unicode):
+- v = v.encode('utf8')
+- return urllib.quote(v)
+-
+-def attr(**kw):
+- kw = kw.items()
+- kw.sort()
+- parts = []
+- for name, value in kw:
+- if value is None:
+- continue
+- if name.endswith('_'):
+- name = name[:-1]
+- parts.append('%s="%s"' % (html_quote(name), html_quote(value)))
+- return html(' '.join(parts))
+-
+-class HTMLTemplate(Template):
+-
+- default_namespace = Template.default_namespace.copy()
+- default_namespace.update(dict(
+- html=html,
+- attr=attr,
+- url=url,
+- ))
+-
+- def _repr(self, value, pos):
+- plain = Template._repr(self, value, pos)
+- if isinstance(value, html):
+- return plain
+- else:
+- return html_quote(plain)
+-
+-def sub_html(content, **kw):
+- name = kw.get('__name')
+- tmpl = HTMLTemplate(content, name=name)
+- return tmpl.substitute(kw)
+- return result
+-
+-
+-############################################################
+-## Lexing and Parsing
+-############################################################
+-
+-def lex(s, name=None, trim_whitespace=True):
+- """
+- Lex a string into chunks:
+-
+- >>> lex('hey')
+- ['hey']
+- >>> lex('hey {{you}}')
+- ['hey ', ('you', (1, 7))]
+- >>> lex('hey {{')
+- Traceback (most recent call last):
+- ...
+- TemplateError: No }} to finish last expression at line 1 column 7
+- >>> lex('hey }}')
+- Traceback (most recent call last):
+- ...
+- TemplateError: }} outside expression at line 1 column 7
+- >>> lex('hey {{ {{')
+- Traceback (most recent call last):
+- ...
+- TemplateError: {{ inside expression at line 1 column 10
+-
+- """
+- in_expr = False
+- chunks = []
+- last = 0
+- last_pos = (1, 1)
+- for match in token_re.finditer(s):
+- expr = match.group(0)
+- pos = find_position(s, match.end())
+- if expr == '{{' and in_expr:
+- raise TemplateError('{{ inside expression', position=pos,
+- name=name)
+- elif expr == '}}' and not in_expr:
+- raise TemplateError('}} outside expression', position=pos,
+- name=name)
+- if expr == '{{':
+- part = s[last:match.start()]
+- if part:
+- chunks.append(part)
+- in_expr = True
+- else:
+- chunks.append((s[last:match.start()], last_pos))
+- in_expr = False
+- last = match.end()
+- last_pos = pos
+- if in_expr:
+- raise TemplateError('No }} to finish last expression',
+- name=name, position=last_pos)
+- part = s[last:]
+- if part:
+- chunks.append(part)
+- if trim_whitespace:
+- chunks = trim_lex(chunks)
+- return chunks
+-
+-statement_re = re.compile(r'^(?:if |elif |else |for |py:)')
+-single_statements = ['endif', 'endfor', 'continue', 'break']
+-trail_whitespace_re = re.compile(r'\n[\t ]*$')
+-lead_whitespace_re = re.compile(r'^[\t ]*\n')
+-
+-def trim_lex(tokens):
+- r"""
+- Takes a lexed set of tokens, and removes whitespace when there is
+- a directive on a line by itself:
+-
+- >>> tokens = lex('{{if x}}\nx\n{{endif}}\ny', trim_whitespace=False)
+- >>> tokens
+- [('if x', (1, 3)), '\nx\n', ('endif', (3, 3)), '\ny']
+- >>> trim_lex(tokens)
+- [('if x', (1, 3)), 'x\n', ('endif', (3, 3)), 'y']
+- """
+- for i in range(len(tokens)):
+- current = tokens[i]
+- if isinstance(tokens[i], basestring):
+- # we don't trim this
+- continue
+- item = current[0]
+- if not statement_re.search(item) and item not in single_statements:
+- continue
+- if not i:
+- prev = ''
+- else:
+- prev = tokens[i-1]
+- if i+1 >= len(tokens):
+- next = ''
+- else:
+- next = tokens[i+1]
+- if (not isinstance(next, basestring)
+- or not isinstance(prev, basestring)):
+- continue
+- if ((not prev or trail_whitespace_re.search(prev))
+- and (not next or lead_whitespace_re.search(next))):
+- if prev:
+- m = trail_whitespace_re.search(prev)
+- # +1 to leave the leading \n on:
+- prev = prev[:m.start()+1]
+- tokens[i-1] = prev
+- if next:
+- m = lead_whitespace_re.search(next)
+- next = next[m.end():]
+- tokens[i+1] = next
+- return tokens
+-
+-
+-def find_position(string, index):
+- """Given a string and index, return (line, column)"""
+- leading = string[:index].splitlines()
+- return (len(leading), len(leading[-1])+1)
+-
+-def parse(s, name=None):
+- r"""
+- Parses a string into a kind of AST
+-
+- >>> parse('{{x}}')
+- [('expr', (1, 3), 'x')]
+- >>> parse('foo')
+- ['foo']
+- >>> parse('{{if x}}test{{endif}}')
+- [('cond', (1, 3), ('if', (1, 3), 'x', ['test']))]
+- >>> parse('series->{{for x in y}}x={{x}}{{endfor}}')
+- ['series->', ('for', (1, 11), ('x',), 'y', ['x=', ('expr', (1, 27), 'x')])]
+- >>> parse('{{for x, y in z:}}{{continue}}{{endfor}}')
+- [('for', (1, 3), ('x', 'y'), 'z', [('continue', (1, 21))])]
+- >>> parse('{{py:x=1}}')
+- [('py', (1, 3), 'x=1')]
+- >>> parse('{{if x}}a{{elif y}}b{{else}}c{{endif}}')
+- [('cond', (1, 3), ('if', (1, 3), 'x', ['a']), ('elif', (1, 12), 'y', ['b']), ('else', (1, 23), None, ['c']))]
+-
+- Some exceptions::
+-
+- >>> parse('{{continue}}')
+- Traceback (most recent call last):
+- ...
+- TemplateError: continue outside of for loop at line 1 column 3
+- >>> parse('{{if x}}foo')
+- Traceback (most recent call last):
+- ...
+- TemplateError: No {{endif}} at line 1 column 3
+- >>> parse('{{else}}')
+- Traceback (most recent call last):
+- ...
+- TemplateError: else outside of an if block at line 1 column 3
+- >>> parse('{{if x}}{{for x in y}}{{endif}}{{endfor}}')
+- Traceback (most recent call last):
+- ...
+- TemplateError: Unexpected endif at line 1 column 25
+- >>> parse('{{if}}{{endif}}')
+- Traceback (most recent call last):
+- ...
+- TemplateError: if with no expression at line 1 column 3
+- >>> parse('{{for x y}}{{endfor}}')
+- Traceback (most recent call last):
+- ...
+- TemplateError: Bad for (no "in") in 'x y' at line 1 column 3
+- >>> parse('{{py:x=1\ny=2}}')
+- Traceback (most recent call last):
+- ...
+- TemplateError: Multi-line py blocks must start with a newline at line 1 column 3
+- """
+- tokens = lex(s, name=name)
+- result = []
+- while tokens:
+- next, tokens = parse_expr(tokens, name)
+- result.append(next)
+- return result
+-
+-def parse_expr(tokens, name, context=()):
+- if isinstance(tokens[0], basestring):
+- return tokens[0], tokens[1:]
+- expr, pos = tokens[0]
+- expr = expr.strip()
+- if expr.startswith('py:'):
+- expr = expr[3:].lstrip(' \t')
+- if expr.startswith('\n'):
+- expr = expr[1:]
+- else:
+- if '\n' in expr:
+- raise TemplateError(
+- 'Multi-line py blocks must start with a newline',
+- position=pos, name=name)
+- return ('py', pos, expr), tokens[1:]
+- elif expr in ('continue', 'break'):
+- if 'for' not in context:
+- raise TemplateError(
+- 'continue outside of for loop',
+- position=pos, name=name)
+- return (expr, pos), tokens[1:]
+- elif expr.startswith('if '):
+- return parse_cond(tokens, name, context)
+- elif (expr.startswith('elif ')
+- or expr == 'else'):
+- raise TemplateError(
+- '%s outside of an if block' % expr.split()[0],
+- position=pos, name=name)
+- elif expr in ('if', 'elif', 'for'):
+- raise TemplateError(
+- '%s with no expression' % expr,
+- position=pos, name=name)
+- elif expr in ('endif', 'endfor'):
+- raise TemplateError(
+- 'Unexpected %s' % expr,
+- position=pos, name=name)
+- elif expr.startswith('for '):
+- return parse_for(tokens, name, context)
+- elif expr.startswith('default '):
+- return parse_default(tokens, name, context)
+- elif expr.startswith('#'):
+- return ('comment', pos, tokens[0][0]), tokens[1:]
+- return ('expr', pos, tokens[0][0]), tokens[1:]
+-
+-def parse_cond(tokens, name, context):
+- start = tokens[0][1]
+- pieces = []
+- context = context + ('if',)
+- while 1:
+- if not tokens:
+- raise TemplateError(
+- 'Missing {{endif}}',
+- position=start, name=name)
+- if (isinstance(tokens[0], tuple)
+- and tokens[0][0] == 'endif'):
+- return ('cond', start) + tuple(pieces), tokens[1:]
+- next, tokens = parse_one_cond(tokens, name, context)
+- pieces.append(next)
+-
+-def parse_one_cond(tokens, name, context):
+- (first, pos), tokens = tokens[0], tokens[1:]
+- content = []
+- if first.endswith(':'):
+- first = first[:-1]
+- if first.startswith('if '):
+- part = ('if', pos, first[3:].lstrip(), content)
+- elif first.startswith('elif '):
+- part = ('elif', pos, first[5:].lstrip(), content)
+- elif first == 'else':
+- part = ('else', pos, None, content)
+- else:
+- assert 0, "Unexpected token %r at %s" % (first, pos)
+- while 1:
+- if not tokens:
+- raise TemplateError(
+- 'No {{endif}}',
+- position=pos, name=name)
+- if (isinstance(tokens[0], tuple)
+- and (tokens[0][0] == 'endif'
+- or tokens[0][0].startswith('elif ')
+- or tokens[0][0] == 'else')):
+- return part, tokens
+- next, tokens = parse_expr(tokens, name, context)
+- content.append(next)
+-
+-def parse_for(tokens, name, context):
+- first, pos = tokens[0]
+- tokens = tokens[1:]
+- context = ('for',) + context
+- content = []
+- assert first.startswith('for ')
+- if first.endswith(':'):
+- first = first[:-1]
+- first = first[3:].strip()
+- match = in_re.search(first)
+- if not match:
+- raise TemplateError(
+- 'Bad for (no "in") in %r' % first,
+- position=pos, name=name)
+- vars = first[:match.start()]
+- if '(' in vars:
+- raise TemplateError(
+- 'You cannot have () in the variable section of a for loop (%r)'
+- % vars, position=pos, name=name)
+- vars = tuple([
+- v.strip() for v in first[:match.start()].split(',')
+- if v.strip()])
+- expr = first[match.end():]
+- while 1:
+- if not tokens:
+- raise TemplateError(
+- 'No {{endfor}}',
+- position=pos, name=name)
+- if (isinstance(tokens[0], tuple)
+- and tokens[0][0] == 'endfor'):
+- return ('for', pos, vars, expr, content), tokens[1:]
+- next, tokens = parse_expr(tokens, name, context)
+- content.append(next)
+-
+-def parse_default(tokens, name, context):
+- first, pos = tokens[0]
+- assert first.startswith('default ')
+- first = first.split(None, 1)[1]
+- parts = first.split('=', 1)
+- if len(parts) == 1:
+- raise TemplateError(
+- "Expression must be {{default var=value}}; no = found in %r" % first,
+- position=pos, name=name)
+- var = parts[0].strip()
+- if ',' in var:
+- raise TemplateError(
+- "{{default x, y = ...}} is not supported",
+- position=pos, name=name)
+- if not var_re.search(var):
+- raise TemplateError(
+- "Not a valid variable name for {{default}}: %r"
+- % var, position=pos, name=name)
+- expr = parts[1].strip()
+- return ('default', pos, var, expr), tokens[1:]
+-
+-_fill_command_usage = """\
+-%prog [OPTIONS] TEMPLATE arg=value
+-
+-Use py:arg=value to set a Python value; otherwise all values are
+-strings.
+-"""
+-
+-def fill_command(args=None):
+- import sys, optparse, pkg_resources, os
+- if args is None:
+- args = sys.argv[1:]
+- dist = pkg_resources.get_distribution('Paste')
+- parser = optparse.OptionParser(
+- version=str(dist),
+- usage=_fill_command_usage)
+- parser.add_option(
+- '-o', '--output',
+- dest='output',
+- metavar="FILENAME",
+- help="File to write output to (default stdout)")
+- parser.add_option(
+- '--html',
+- dest='use_html',
+- action='store_true',
+- help="Use HTML style filling (including automatic HTML quoting)")
+- parser.add_option(
+- '--env',
+- dest='use_env',
+- action='store_true',
+- help="Put the environment in as top-level variables")
+- options, args = parser.parse_args(args)
+- if len(args) < 1:
+- print 'You must give a template filename'
+- print dir(parser)
+- assert 0
+- template_name = args[0]
+- args = args[1:]
+- vars = {}
+- if options.use_env:
+- vars.update(os.environ)
+- for value in args:
+- if '=' not in value:
+- print 'Bad argument: %r' % value
+- sys.exit(2)
+- name, value = value.split('=', 1)
+- if name.startswith('py:'):
+- name = name[:3]
+- value = eval(value)
+- vars[name] = value
+- if template_name == '-':
+- template_content = sys.stdin.read()
+- template_name = '<stdin>'
+- else:
+- f = open(template_name, 'rb')
+- template_content = f.read()
+- f.close()
+- if options.use_html:
+- TemplateClass = HTMLTemplate
+- else:
+- TemplateClass = Template
+- template = TemplateClass(template_content, name=template_name)
+- result = template.substitute(vars)
+- if options.output:
+- f = open(options.output, 'wb')
+- f.write(result)
+- f.close()
+- else:
+- sys.stdout.write(result)
+-
+-if __name__ == '__main__':
+- from paste.util.template import fill_command
+- fill_command()
+-
+-
diff --git a/dev-python/paste/files/paste-1.7.5.1-userdict.patch b/dev-python/paste/files/paste-1.7.5.1-userdict.patch
new file mode 100644
index 00000000000..061f38a5282
--- /dev/null
+++ b/dev-python/paste/files/paste-1.7.5.1-userdict.patch
@@ -0,0 +1,64 @@
+--- a/paste/debug/fsdiff.py
++++ b/paste/debug/fsdiff.py
+@@ -12,10 +12,14 @@
+ import os
+ from fnmatch import fnmatch
+ from datetime import datetime
++
+ try:
+- from UserDict import IterableUserDict
++ import collections.UserDict as IterableUserDict
+ except ImportError:
+- from paste.util.UserDict24 import IterableUserDict
++ try:
++ from UserDict import IterableUserDict
++ except ImportError:
++ from paste.util.UserDict24 import IterableUserDict
+ import operator
+ import re
+
+--- a/paste/request.py
++++ b/paste/request.py
+@@ -22,10 +22,12 @@
+ from StringIO import StringIO
+ import urlparse
+ import urllib
++
+ try:
+ from UserDict import DictMixin
+ except ImportError:
+- from paste.util.UserDict24 import DictMixin
++ from collections import MutableMapping as DictMixin
++
+ from paste.util.multidict import MultiDict
+
+ __all__ = ['get_cookies', 'get_cookie_dict', 'parse_querystring',
+--- a/paste/urlmap.py
++++ b/paste/urlmap.py
+@@ -4,7 +4,10 @@
+ Map URL prefixes to WSGI applications. See ``URLMap``
+ """
+
+-from UserDict import DictMixin
++try:
++ from UserDict import DictMixin
++except ImportError:
++ from collections import MutableMapping as DictMixin
+ import re
+ import os
+ import cgi
+--- a/paste/util/multidict.py
++++ b/paste/util/multidict.py
+@@ -3,7 +3,11 @@
+ import cgi
+ import copy
+ import sys
+-from UserDict import DictMixin
++
++try:
++ from UserDict import DictMixin
++except ImportError:
++ from collections import MutableMapping as DictMixin
+
+ class MultiDict(DictMixin):
+
diff --git a/dev-python/paste/files/paste-2.0.2-unbundle-tempita.patch b/dev-python/paste/files/paste-2.0.2-unbundle-tempita.patch
new file mode 100644
index 00000000000..eef7abb4108
--- /dev/null
+++ b/dev-python/paste/files/paste-2.0.2-unbundle-tempita.patch
@@ -0,0 +1,36 @@
+ paste/util/looper/__init__.py | 4 ++++
+ paste/util/{looper.py => looper/_looper.py} | 0
+ paste/util/template/__init__.py | 6 ++++++
+ paste/util/{template.py => template/_template.py} | 0
+ 4 files changed, 10 insertions(+)
+
+diff --git a/paste/util/looper/__init__.py b/paste/util/looper/__init__.py
+new file mode 100644
+index 0000000..77d7e80
+--- /dev/null
++++ b/paste/util/looper/__init__.py
+@@ -0,0 +1,4 @@
++try:
++ from tempita._looper import *
++except ImportError:
++ from _looper import *
+diff --git a/paste/util/looper.py b/paste/util/looper/_looper.py
+similarity index 100%
+rename from paste/util/looper.py
+rename to paste/util/looper/_looper.py
+diff --git a/paste/util/template/__init__.py b/paste/util/template/__init__.py
+new file mode 100644
+index 0000000..a0a5730
+--- /dev/null
++++ b/paste/util/template/__init__.py
+@@ -0,0 +1,6 @@
++try:
++ from tempita import *
++ from tempita import paste_script_template_renderer
++except ImportError:
++ from _template import *
++ from _template import paste_script_template_renderer
+diff --git a/paste/util/template.py b/paste/util/template/_template.py
+similarity index 100%
+rename from paste/util/template.py
+rename to paste/util/template/_template.py
diff --git a/dev-python/paste/metadata.xml b/dev-python/paste/metadata.xml
new file mode 100644
index 00000000000..60a4c183502
--- /dev/null
+++ b/dev-python/paste/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="flup">enable support for flup (and therefore for various
+ wgsi servers and middleware)</flag>
+ <flag name="openid">enable OpenID support</flag>
+ </use>
+ <longdescription lang="en">This package provides several pieces of "middleware" (or filters) that can
+ be nested to build web applications. Each piece of middleware uses the WSGI
+ (PEP 333) interface, and should be compatible with other middleware based on
+ those interfaces.</longdescription>
+ <upstream>
+ <remote-id type="pypi">Paste</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/paste/paste-1.7.5.1-r1.ebuild b/dev-python/paste/paste-1.7.5.1-r1.ebuild
new file mode 100644
index 00000000000..e3e8a3f7a00
--- /dev/null
+++ b/dev-python/paste/paste-1.7.5.1-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Paste"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Tools for using a Web Server Gateway Interface stack"
+HOMEPAGE="http://pythonpaste.org http://pypi.python.org/pypi/Paste"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~x86-interix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc flup openid"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ flup? ( dev-python/flup[${PYTHON_USEDEP}] )
+ openid? ( dev-python/python-openid[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable failing tests.
+ rm -f tests/test_cgiapp.py
+ sed \
+ -e "s/test_find_file/_&/" \
+ -e "s/test_deep/_&/" \
+ -e "s/test_static_parser/_&/" \
+ -i tests/test_urlparser.py || die "sed failed"
+
+ # Remove a test that runs against the paste website.
+ rm -f tests/test_proxy.py
+
+ local PATCHES=(
+ "${FILESDIR}/${P}-fix-tests-for-pypy.patch"
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile egg_info --egg-base "${BUILD_DIR}/lib"
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests -P || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install egg_info --egg-base "${BUILD_DIR}/lib"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/paste/paste-1.7.5.1-r2.ebuild b/dev-python/paste/paste-1.7.5.1-r2.ebuild
new file mode 100644
index 00000000000..1267db6af92
--- /dev/null
+++ b/dev-python/paste/paste-1.7.5.1-r2.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+# notes wrt py-3 compatibility:
+# Debian ships paste for py3 using 2to3. Many tests fail when using such converted code and
+# the fact that the errors are sometimes nested inside paste indicate that the
+# result is indeed broken. Upstream is not responsive nor interested in porting.
+
+inherit distutils-r1
+
+MY_PN="Paste"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Tools for using a Web Server Gateway Interface stack"
+HOMEPAGE="http://pythonpaste.org http://pypi.python.org/pypi/Paste"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-interix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc flup openid"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/tempita-0.5.2_pre20130828[${PYTHON_USEDEP}]
+ flup? ( dev-python/flup[${PYTHON_USEDEP}] )
+ openid? ( dev-python/python-openid[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable failing tests.
+ rm -f tests/test_cgiapp.py
+ sed \
+ -e "s/test_find_file/_&/" \
+ -e "s/test_deep/_&/" \
+ -e "s/test_static_parser/_&/" \
+ -i tests/test_urlparser.py || die "sed failed"
+
+ # Remove a test that runs against the paste website.
+ rm -f tests/test_proxy.py
+
+ local PATCHES=(
+ "${FILESDIR}/${P}-fix-tests-for-pypy.patch"
+ "${FILESDIR}/${P}-python27-lambda.patch"
+ "${FILESDIR}/${P}-unbundle-stdlib.patch"
+ "${FILESDIR}/${P}-unbundle-tempita.patch"
+ "${FILESDIR}/${P}-userdict.patch"
+ "${FILESDIR}/${P}-rfc822.patch"
+ "${FILESDIR}/${P}-email-mime.patch"
+ "${FILESDIR}/${P}-types.patch"
+ "${FILESDIR}/${P}-hmac.patch"
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile egg_info --egg-base "${BUILD_DIR}/lib"
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests -P || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install egg_info --egg-base "${BUILD_DIR}/lib"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/paste/paste-2.0.2.ebuild b/dev-python/paste/paste-2.0.2.ebuild
new file mode 100644
index 00000000000..38c1b01e6d8
--- /dev/null
+++ b/dev-python/paste/paste-2.0.2.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN="Paste"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Tools for using a Web Server Gateway Interface stack"
+HOMEPAGE="http://pythonpaste.org http://pypi.python.org/pypi/Paste"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~x86-interix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc flup openid"
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/tempita-0.5.2_pre20130828[${PYTHON_USEDEP}]
+ flup? ( dev-python/flup[$(python_gen_usedep 'python2*')] )
+ openid? ( dev-python/python-openid[$(python_gen_usedep 'python2*')] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable failing tests.
+ rm -f tests/test_cgiapp.py || die
+ sed \
+ -e "s/test_find_file/_&/" \
+ -e "s/test_deep/_&/" \
+ -e "s/test_static_parser/_&/" \
+ -i tests/test_urlparser.py || die "sed failed"
+
+ # Remove a test that runs against the paste website.
+ rm -f tests/test_proxy.py || die
+
+ local PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.5.1-fix-tests-for-pypy.patch
+ "${FILESDIR}"/${P}-unbundle-tempita.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile egg_info --egg-base "${BUILD_DIR}/lib"
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests -P -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install egg_info --egg-base "${BUILD_DIR}/lib"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pastedeploy/Manifest b/dev-python/pastedeploy/Manifest
new file mode 100644
index 00000000000..94cc2861890
--- /dev/null
+++ b/dev-python/pastedeploy/Manifest
@@ -0,0 +1 @@
+DIST PasteDeploy-1.5.2.tar.gz 24006 SHA256 d5858f89a255e6294e63ed46b73613c56e3b9a2d82a42f1df4d06c8421a9e3cb SHA512 03147b2e735f4504b928066d35f46e7d19a49b85afc506b793fba69c8827a4d5b8185074bdd4a963ac392cc104f5a608d1db9a3538d7d3239da5febcbff4ccab WHIRLPOOL 0a48c72278c71376f8b4ddc708c1b6c3370b13f66fc3d438d1a485e69d413814ca37cf580d8e09e0d49a8a35f7e6e0104744440a3fe6b1dfeb5914d3a0557793
diff --git a/dev-python/pastedeploy/metadata.xml b/dev-python/pastedeploy/metadata.xml
new file mode 100644
index 00000000000..12e6c22fb53
--- /dev/null
+++ b/dev-python/pastedeploy/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Paste Deployment is a system for finding and configuring WSGI applications
+ and servers. For WSGI application consumers it provides a single, simple
+ function (loadapp) for loading a WSGI application from a configuration file
+ or a Python Egg. For WSGI application providers it only asks for a single,
+ simple entry point to your application, so that application users don't need
+ to be exposed to the implementation details of your application.</longdescription>
+ <upstream>
+ <remote-id type="pypi">PasteDeploy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pastedeploy/pastedeploy-1.5.2.ebuild b/dev-python/pastedeploy/pastedeploy-1.5.2.ebuild
new file mode 100644
index 00000000000..ddad671f9d6
--- /dev/null
+++ b/dev-python/pastedeploy/pastedeploy-1.5.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="PasteDeploy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Load, configure, and compose WSGI applications and servers"
+HOMEPAGE="http://pythonpaste.org/deploy/ http://pypi.python.org/pypi/PasteDeploy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ppc ppc64 x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ use doc && dodoc docs/*.txt
+}
diff --git a/dev-python/pastescript/Manifest b/dev-python/pastescript/Manifest
new file mode 100644
index 00000000000..14429e6a55d
--- /dev/null
+++ b/dev-python/pastescript/Manifest
@@ -0,0 +1 @@
+DIST PasteScript-2.0.2.tar.gz 117521 SHA256 c03f249805538cc2328741ae8d262a9200ae1c993119b3d9bac4cd422cb476c0 SHA512 2f093eb982972fed354219c75c2e008931cea553960cea8aaafbe57cde8556de5626e7eb9bb3b9b7328bad3b7d9899f11fc9773a65380396dae506e7531516de WHIRLPOOL 951c16499bb9e120813749871cfdc7b36b04660c4dbb4c0d2c7335312a8b58c412dc0ca49029ce674be90207645eb1657bde8ae869ffb72d29c592ca978cdca9
diff --git a/dev-python/pastescript/files/pastescript-setup.py-exclude-tests.patch b/dev-python/pastescript/files/pastescript-setup.py-exclude-tests.patch
new file mode 100644
index 00000000000..24190a783f0
--- /dev/null
+++ b/dev-python/pastescript/files/pastescript-setup.py-exclude-tests.patch
@@ -0,0 +1,19 @@
+# HG changeset patch
+# User Mike Gilbert <floppym@gentoo.org>
+# Date 1353179174 18000
+# Node ID 814fbc493e7a9999086127f64c2406ecb1794990
+# Parent 510ff7d7627750eb0dbbc0d36fa63c72ffa6b303
+Exclude subpackages of tests.
+
+diff --git a/setup.py b/setup.py
+--- a/setup.py
++++ b/setup.py
+@@ -61,7 +61,7 @@
+ url="http://pythonpaste.org/script/",
+ namespace_packages=['paste'],
+ license='MIT',
+- packages=find_packages(exclude='tests'),
++ packages=find_packages(exclude=['tests','tests.*']),
+ package_data={
+ 'paste.script': ['paster-templates/basic_package/setup.*',
+ 'paster-templates/basic_package/tests/*.py',
diff --git a/dev-python/pastescript/metadata.xml b/dev-python/pastescript/metadata.xml
new file mode 100644
index 00000000000..6b387078e55
--- /dev/null
+++ b/dev-python/pastescript/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">PasteScript</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pastescript/pastescript-2.0.2.ebuild b/dev-python/pastescript/pastescript-2.0.2.ebuild
new file mode 100644
index 00000000000..f583a86f888
--- /dev/null
+++ b/dev-python/pastescript/pastescript-2.0.2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN="PasteScript"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A pluggable command-line frontend, including commands to setup package file layouts"
+HOMEPAGE="http://pythonpaste.org/script/ http://pypi.python.org/pypi/PasteScript"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND="
+ >=dev-python/paste-1.3[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? (
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Tests are broken.
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ esetup.py build_sphinx
+ fi
+}
+
+python_test() {
+ nosetests -v -v || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ cd "${BUILD_DIR}"/sphinx/html || die
+ dohtml -r [a-z]* _static
+ fi
+}
diff --git a/dev-python/path-py/Manifest b/dev-python/path-py/Manifest
new file mode 100644
index 00000000000..fc2d054e84a
--- /dev/null
+++ b/dev-python/path-py/Manifest
@@ -0,0 +1,2 @@
+DIST path.py-7.2.zip 33360 SHA256 5e2330895ff3a7873c90cf2600da51b0baae0a3d5fd3ce47d22b32b15db65e1f SHA512 b3c810305e04a4167d86a0732a3fdfd95e545252fa0ade3eb9d41ce76d5e2cc7b0396a707af99c9ab475a2fcb7df2ea3858cfe183ba8da25217fe9f27855392f WHIRLPOOL 72a753879a6420dce2d504dffe1f1c7f10f53819a7c7f8e7b10b29e106083f02005ac2824b40e556392591592eaead17adc33f221eeec875d066bb5ed6685600
+DIST path.py-7.3.zip 33549 SHA256 f7d146f40768e3742199a5316fbe3eb6a6091b9feedcb4b969c7348dc03151e1 SHA512 f676b81deda7b42a2a29fef0827d7c8ecbe743d0fa5efdc8221a78f3e744f357a179a9b8451264636ca2626f58d422a02d6ad77cc57eef74dd3b186585863433 WHIRLPOOL 7da96c488aa6bcdea0a65c69b412710dbc85f7bed04dd571389ca190d43fea2e711659ca3546b926efc69d631a1408b5905839c39866d7e98b7dde19803d0c4f
diff --git a/dev-python/path-py/metadata.xml b/dev-python/path-py/metadata.xml
new file mode 100644
index 00000000000..d1a9051ef22
--- /dev/null
+++ b/dev-python/path-py/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">path.py</remote-id>
+ <remote-id type="github">jaraco/path.py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/path-py/path-py-7.2.ebuild b/dev-python/path-py/path-py-7.2.ebuild
new file mode 100644
index 00000000000..8b4f0570661
--- /dev/null
+++ b/dev-python/path-py/path-py-7.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_P="path.py-${PV}"
+
+DESCRIPTION="A module wrapper for os.path"
+HOMEPAGE="http://pythonhosted.org/path.py https://pypi.python.org/pypi/path.py https://github.com/jaraco/path.py"
+SRC_URI="mirror://pypi/p/path.py/${MY_P}.zip"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/path-py/path-py-7.3.ebuild b/dev-python/path-py/path-py-7.3.ebuild
new file mode 100644
index 00000000000..8b4f0570661
--- /dev/null
+++ b/dev-python/path-py/path-py-7.3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_P="path.py-${PV}"
+
+DESCRIPTION="A module wrapper for os.path"
+HOMEPAGE="http://pythonhosted.org/path.py https://pypi.python.org/pypi/path.py https://github.com/jaraco/path.py"
+SRC_URI="mirror://pypi/p/path.py/${MY_P}.zip"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/pathlib/Manifest b/dev-python/pathlib/Manifest
new file mode 100644
index 00000000000..19de8232336
--- /dev/null
+++ b/dev-python/pathlib/Manifest
@@ -0,0 +1 @@
+DIST pathlib-1.0.1.tar.gz 49298 SHA256 6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f SHA512 d85e45dfcc85ce75a7e7b609163dc8c75c688f279c1833510185f280af5501e473376dc09bddc6a804d1fcc3177a939db85af37b7b8d5b183b9bc2b85b3b0f8b WHIRLPOOL 3cb4b7c11e5cd0f3c942ffdd4478999c021a2c8167b586c99fea467bb145a71a51350d61be727f85ae63539d6407fe920cd07cacea654c3002cadf48e52e972a
diff --git a/dev-python/pathlib/metadata.xml b/dev-python/pathlib/metadata.xml
new file mode 100644
index 00000000000..71126cde305
--- /dev/null
+++ b/dev-python/pathlib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pathlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pathlib/pathlib-1.0.1.ebuild b/dev-python/pathlib/pathlib-1.0.1.ebuild
new file mode 100644
index 00000000000..a85afa5784d
--- /dev/null
+++ b/dev-python/pathlib/pathlib-1.0.1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# In Python 3.4, pathlib is now part of the standard library.
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Object-oriented filesystem paths"
+HOMEPAGE="https://pathlib.readthedocs.org/"
+SRC_URI="mirror://pypi/p/pathlib/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
diff --git a/dev-python/pathtools/Manifest b/dev-python/pathtools/Manifest
new file mode 100644
index 00000000000..de36df170fe
--- /dev/null
+++ b/dev-python/pathtools/Manifest
@@ -0,0 +1 @@
+DIST pathtools-0.1.2.tar.gz 11006 SHA256 7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0 SHA512 e014cb17f3d61ce7979e36663f94a44d4f1116c35e3d2ec8c4ac207a81935dde246495ed06597e6edade1509f384b9e5729a97ffd3eec31b1d1c4a8372d1dfd7 WHIRLPOOL b08011d5cea80535a91d7e3145e6f9c3435a9717589b307c7c0f5334c7a249c9aace68b2037682ac0364a623e70847ee1c0752df205b99bd66fa464622e8a0fb
diff --git a/dev-python/pathtools/metadata.xml b/dev-python/pathtools/metadata.xml
new file mode 100644
index 00000000000..fb0a6d8541c
--- /dev/null
+++ b/dev-python/pathtools/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>hasufell@gentoo.org</email>
+ <name>Julian Ospald</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pathtools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pathtools/pathtools-0.1.2.ebuild b/dev-python/pathtools/pathtools-0.1.2.ebuild
new file mode 100644
index 00000000000..a4b837217b1
--- /dev/null
+++ b/dev-python/pathtools/pathtools-0.1.2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy)
+inherit distutils-r1
+
+DESCRIPTION="Pattern matching and various utilities for file systems paths"
+HOMEPAGE="https://pypi.python.org/pypi/pathtools/"
+SRC_URI="mirror://pypi/p/pathtools/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/patsy/Manifest b/dev-python/patsy/Manifest
new file mode 100644
index 00000000000..31c617b218d
--- /dev/null
+++ b/dev-python/patsy/Manifest
@@ -0,0 +1,3 @@
+DIST patsy-0.2.0.tar.gz 315486 SHA256 1d399e504dc7c9e5f35460698dd4ebf098aa215e861ea4f5ded29e98e73740c3 SHA512 4e1028dcab58e2fc938c4f8dec0aeb148fbf7d2430855d8caa844bc19088b66a8ab9b83edc3f3066df41e751f1e0ff6d24478109be562e420da6c84e3f76763f WHIRLPOOL 2da9956373cc9bd2f13d277bcca37467ab8f5b37223f9c6bf6d59b6c69e7c54bdcc70433c990ea4a02aa424c497be08031966963721194af308cda1bb36edb13
+DIST patsy-0.2.1.tar.gz 316115 SHA256 31374ce25275813d8f1c48bdda40bba06f7a16cce7dcdfad73f43a555393d065 SHA512 b7cbd9b224081b2496292b23c134abfdd9decedfda433bc7c289b899003c527184e0ba0f729eca1f3bceceac0c43090d9b611b8b1f593df5ce2a01129fabf9f6 WHIRLPOOL 91b8bc896146e48c272429482d3294a35cbc0a46662e66b913811491b2d89005371dc6eb09f38a4a043e507fba3b359dcf3a1fc61e9bf88c462c8b9ebeb995d9
+DIST patsy-0.3.0.zip 414947 SHA256 a55dd4ca09af4b9608b81f30322beb450510964c022708ab50e83a065ccf15f0 SHA512 e716588372ca5c2cb8923b5a04c11be4911cb44e7af2c82ebf92aba478bd9ec6707bea5abfa11439038a6be7522c80fb5d67d452725669f38bc81bc9a0c1e2e8 WHIRLPOOL c0e82d8f15961d4954245c7abe03973b8f660c58e57962dbb3d0523a6a544d4a922c578f3394d72e00ca5656ed5a552aeab5633317bf52d33fd856e135094c30
diff --git a/dev-python/patsy/metadata.xml b/dev-python/patsy/metadata.xml
new file mode 100644
index 00000000000..5296bb5bc08
--- /dev/null
+++ b/dev-python/patsy/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-mathematics</herd>
+ <longdescription>
+ A Python package for describing statistical models and for building
+ design matrices. It is closely inspired by and compatible with the
+ 'formula' mini-language used in R and S.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">patsy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/patsy/patsy-0.2.0.ebuild b/dev-python/patsy/patsy-0.2.0.ebuild
new file mode 100644
index 00000000000..e7fa8e258f5
--- /dev/null
+++ b/dev-python/patsy/patsy-0.2.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to describe statistical models and design matrices"
+HOMEPAGE="http://patsy.readthedocs.org/en/latest/index.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/ipython
+ dev-python/matplotlib
+ dev-python/sphinx )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -r doc/_build/html/*
+}
diff --git a/dev-python/patsy/patsy-0.2.1.ebuild b/dev-python/patsy/patsy-0.2.1.ebuild
new file mode 100644
index 00000000000..e7fa8e258f5
--- /dev/null
+++ b/dev-python/patsy/patsy-0.2.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to describe statistical models and design matrices"
+HOMEPAGE="http://patsy.readthedocs.org/en/latest/index.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/ipython
+ dev-python/matplotlib
+ dev-python/sphinx )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -r doc/_build/html/*
+}
diff --git a/dev-python/patsy/patsy-0.3.0-r1.ebuild b/dev-python/patsy/patsy-0.3.0-r1.ebuild
new file mode 100644
index 00000000000..fec3066e024
--- /dev/null
+++ b/dev-python/patsy/patsy-0.3.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to describe statistical models and design matrices"
+HOMEPAGE="http://patsy.readthedocs.org/en/latest/index.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -r doc/_build/html/*
+}
diff --git a/dev-python/patsy/patsy-0.3.0.ebuild b/dev-python/patsy/patsy-0.3.0.ebuild
new file mode 100644
index 00000000000..ebc5e84d7f1
--- /dev/null
+++ b/dev-python/patsy/patsy-0.3.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to describe statistical models and design matrices"
+HOMEPAGE="http://patsy.readthedocs.org/en/latest/index.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -r doc/_build/html/*
+}
diff --git a/dev-python/paver/Manifest b/dev-python/paver/Manifest
new file mode 100644
index 00000000000..2b6912aa9df
--- /dev/null
+++ b/dev-python/paver/Manifest
@@ -0,0 +1,2 @@
+DIST Paver-1.2.3.tar.gz 365188 SHA256 85944a3c485707761a804131a29be07a63d799155583f7e6c6a9e519eea34053 SHA512 c45f6d6f898c679357b89273a078942ff3b199f72c86dd5422955f274a9eae09189a1e6d48d626c02417f7a2e7fbfa0d796448c812c7c838fd1dc0f918f10be1 WHIRLPOOL 039ea516e5e650d7a59a7beeba4ab2545af6cc6a9ddaaab9d06a3fe9e5dde1919acb22215c783e404d04ffc1216b4bcb6d7e34d6b68573f5f4a1e8b9326bcaf4
+DIST Paver-1.2.4.tar.gz 328794 SHA256 6e155686eda543f3a863ef1d4389bce389a9738468a02f8aefc4b8b71cf6777e SHA512 ba737f2da0582d4c3364b654a79d9868bb394fcbf1102feea3604821a65075631fbdb7b767ba8977f3231bcb6cf167abd994fb1dd9fd080046ea8bcfde8cdeb7 WHIRLPOOL 924380325dc63ffc9eb77742c7cb428a240c6d18c91977418492cbdb419c60f294c1313dfaeca86b4a78c97487f10cfc600454e0be147a2ad293a1038c6ff3cc
diff --git a/dev-python/paver/files/paver-1.2.0-skip-cog-tests.patch b/dev-python/paver/files/paver-1.2.0-skip-cog-tests.patch
new file mode 100644
index 00000000000..1ee339dd3bb
--- /dev/null
+++ b/dev-python/paver/files/paver-1.2.0-skip-cog-tests.patch
@@ -0,0 +1,34 @@
+From 1b9641cd841fe5d22ba4c5ef4198e47995c74f04 Mon Sep 17 00:00:00 2001
+From: Almad <bugs@almad.net>
+Date: Wed, 27 Feb 2013 02:56:12 +0100
+Subject: [PATCH] Skip cog tests if tests are not installed (refs #93)
+
+---
+ paver/tests/test_doctools.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/paver/tests/test_doctools.py b/paver/tests/test_doctools.py
+index bc0cf8c..6104b3f 100644
+--- a/paver/tests/test_doctools.py
++++ b/paver/tests/test_doctools.py
+@@ -137,6 +137,8 @@ def test_include_lookup():
+ """, "Second was '%s'" % (second)
+
+ def test_cogging():
++ if not paver.doctools.has_cog:
++ raise SkipTest("Cog must be installed for this test")
+ _no25()
+ env = tasks.Environment(doctools)
+ tasks.environment = env
+@@ -159,6 +161,8 @@ def test_cogging():
+ assert "print sys.path" not in data
+
+ def test_cogging_with_markers_removed():
++ if not paver.doctools.has_cog:
++ raise SkipTest("Cog must be installed for this test")
+ _no25()
+ env = tasks.Environment(doctools)
+ tasks.environment = env
+--
+1.7.10
+
diff --git a/dev-python/paver/metadata.xml b/dev-python/paver/metadata.xml
new file mode 100644
index 00000000000..eacac6c8f0d
--- /dev/null
+++ b/dev-python/paver/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Paver</remote-id>
+ <remote-id type="github">paver/paver</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/paver/paver-1.2.3.ebuild b/dev-python/paver/paver-1.2.3.ebuild
new file mode 100644
index 00000000000..77472610bc0
--- /dev/null
+++ b/dev-python/paver/paver-1.2.3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN=${PN/p/P}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python-based software project scripting tool along the lines of Make"
+HOMEPAGE="http://www.blueskyonmars.com/projects/paver/ http://pypi.python.org/pypi/Paver"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86"
+IUSE="test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/paver/paver-1.2.4.ebuild b/dev-python/paver/paver-1.2.4.ebuild
new file mode 100644
index 00000000000..b47dad8249b
--- /dev/null
+++ b/dev-python/paver/paver-1.2.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN=${PN/p/P}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python-based software project scripting tool along the lines of Make"
+HOMEPAGE="http://www.blueskyonmars.com/projects/paver/ http://github.com/paver/paver"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ # There is a regression in tests
+ # https://github.com/paver/paver/issues/143
+ nosetests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/pbkdf2/Manifest b/dev-python/pbkdf2/Manifest
new file mode 100644
index 00000000000..d97cc40669d
--- /dev/null
+++ b/dev-python/pbkdf2/Manifest
@@ -0,0 +1 @@
+DIST pbkdf2-1.3.tar.gz 6360 SHA256 ac6397369f128212c43064a2b4878038dab78dab41875364554aaf2a684e6979 SHA512 1297950d045f9b56f5eb9f771fe65091802c1f12f090a8a80fb5e36bfa10f1c1ac3b9dc8088f4a640b840fb7073aadd3fdf39f3979118046ba5cde477d071244 WHIRLPOOL 85dc9f380d469fc3fe016cb5054c8078dd07d38481df6a7ea51512be238f272dcf1f74a5bed6d5874045edc418913db8d096f355081318803995da5647869a6a
diff --git a/dev-python/pbkdf2/metadata.xml b/dev-python/pbkdf2/metadata.xml
new file mode 100644
index 00000000000..b987fb894b5
--- /dev/null
+++ b/dev-python/pbkdf2/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <maintainer>
+ <email>luke-jr+gentoobugs@utopios.org</email>
+ <name>Luke Dashjr</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pbkdf2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pbkdf2/pbkdf2-1.3.ebuild b/dev-python/pbkdf2/pbkdf2-1.3.ebuild
new file mode 100644
index 00000000000..43ba8c171a9
--- /dev/null
+++ b/dev-python/pbkdf2/pbkdf2-1.3.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Implementation of the password-based key derivation function, PBKDF2, specified in RSA PKCS#5 v2.0"
+HOMEPAGE="http://www.dlitz.net/software/python-pbkdf2/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
diff --git a/dev-python/pbr/Manifest b/dev-python/pbr/Manifest
new file mode 100644
index 00000000000..0446612fc9c
--- /dev/null
+++ b/dev-python/pbr/Manifest
@@ -0,0 +1,8 @@
+DIST pbr-0.10.8.tar.gz 82952 SHA256 a741650c697abe9dd3da00039a57a45a15a6eed017a16f6b7e4c0161fae2b4b2 SHA512 d79455288657ca07e38a64393d54bda8f88b75242b929ea9f88ac809ba88fffa4793eba0459cae368d822164de5a89721c77fadd05ab624db5897f6cf447b1f4 WHIRLPOOL 621f34852dc31cd149422a36fc0416fdc8640f9103439267f9b6f117a80c5dd949fab18287c10c5d5022248812b792f83766b32a62608d42d8b08066c890753e
+DIST pbr-0.11.0.tar.gz 94347 SHA256 d7f0d69aef367a764d69a4728afd966025ce9394d6029a924ef838ecdf592f6d SHA512 6ddcbc39b25e57d20108f72334934f5243d397e2b5316ad26bdbdf32ae6e5bed0ad6fcb47d8e92d6c73a9bd369c463a962cae9fce5800096dd819f2ce58a045b WHIRLPOOL 0f239031cd89fde32f92b792c5e8d7b030644cd277cab6492028a75a5b0e2c8610ac2cf908fd644998663b21bb1a188147a1be0727d60726d4ba5c0edc0ddae5
+DIST pbr-0.8.2.tar.gz 77790 SHA256 eef2ace8d65d5902582cbc9ad3b2ecff0e86a6f90ad4837d8b17d568dd9dd20e SHA512 76d7d4c97660d5a6bbe9a33498a93b32528073024520e570739c511c0138ba1af7e35139bf77ca2a94063e5979baccd6252619449d6aed546fd1331be81ab52a WHIRLPOOL d6331fcd6e7d4eb750e3285e92fd21dfdfbb054b880f954156d1e781025a0c0e1c464e0c23cad587799ceba787928af092d34071eb0a5c4595b0e8aa6db52ff0
+DIST pbr-1.0.1.tar.gz 96438 SHA256 fc3d19ab844647388cc13a3df403bda872d2fc16662803d0ebcc1787d3645552 SHA512 4c4d623a558761edb5724ccb55122bf37a57a2ef48c5a2788df0d564d913a0aa59887f12da698d019e2636d70e92f45002520aeb6b7401f4b47d10c4c76b7567 WHIRLPOOL 1c08bad2d47e3805d59464a62365423fdd46a711d3ca860375962af2ba899d8e8165912f28d3c35957554116a466cbb16c57272a24eeba73d8ce0ca417c23837
+DIST pbr-1.1.1.tar.gz 97607 SHA256 3d63cc8e145e5e20624859d6453d783ae1451704483ae23d3315041d65e4d423 SHA512 bf997b85ef1b1f3ff51050ca9314f48ffd3119ba0da3acfe0e97b8498eb4af5137a528a3359527c21bbbcc6425b2eebaff69177c3eecb612a1d137b020bd019c WHIRLPOOL 45c6e4ca421df003a9ec19dca500972395644a55cafa1482c8860a87baf3ffa71ef9c4180f07dfe4db3c8b2ac0ca8171233a7e54245622cd9108f5a975ec1b80
+DIST pbr-1.2.0.tar.gz 99092 SHA256 1543fc3e00261369c160fc8cf700717aad15fbc1f0ea0e8dc4f372cb91a655d0 SHA512 e5adc396596f4b42a8eb569c970a3cf571b119740b9ca221dc57c6f34c088df1dbfca3c704b7dd3b2d6676d48f9eba17ddb535e28ef6ab0572206620b894c5a2 WHIRLPOOL 6baaeecc6dc7c228d76f7a8f42af19cf179540483267ea863323e09654a3faac0cabbea6dc6d83b36e0c4496cd5872f05e1e9b7f5c5a36272fc746f84e2dd504
+DIST pbr-1.3.0.tar.gz 99701 SHA256 1a6f8d514fc11d2571c75c207d932c106f024f199b5f12d25f8ca022b026c59d SHA512 29f661a1d8bed6df5017bb342209e702f19e72c321952a9131d84222162599208bea67922485a87b6f3505e072d62cb13fdfcdd4fbb7c085b3476f6ff5a07df9 WHIRLPOOL 978d943efd2f582b8067a898f102005c749df8addee4ec3d6f4f4c4078e3190263ceba46409281e7bd38ab59ad12f45d3d208cfd6ba58ece72d973161dfd08e9
+DIST pbr-1.4.0.tar.gz 102181 SHA256 f080232fb6b208615b4c1854bf4277bb097d19c9ef89f94f203c1436fe600e92 SHA512 c6ccc8fd6598e089eb80342ce0d76f26dd1242eedb64aa7c0020be43ba74b1591cff52a5eec9d9c9b958315e7902b78bf120bf758aacc28fcec3f07ac5173150 WHIRLPOOL 9cee1204273256588982065c388c06e053253ebd2ae242a89b5f60a8052c1fe58e2136a30c289b8278131e9487a902ce8902e883cbd3b73c34f9fe87de1229c5
diff --git a/dev-python/pbr/metadata.xml b/dev-python/pbr/metadata.xml
new file mode 100644
index 00000000000..bbc246e7b75
--- /dev/null
+++ b/dev-python/pbr/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Python Build Reasonableness
+ PBR is a library that injects some useful and sensible default behaviors into your setuptools run.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pbr</remote-id>
+ <remote-id type="github">openstack-dev/pbr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pbr/pbr-0.10.8.ebuild b/dev-python/pbr/pbr-0.10.8.ebuild
new file mode 100644
index 00000000000..6b80a8ca591
--- /dev/null
+++ b/dev-python/pbr/pbr-0.10.8.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/flake8-2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND=">dev-python/pip-1.4[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; removed tests pass once package is emerged,
+ # it's the suite's design that breaks form, not the tests' intended purpose
+ testr init || die
+ testr run || die "Testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/pbr/pbr-0.11.0.ebuild b/dev-python/pbr/pbr-0.11.0.ebuild
new file mode 100644
index 00000000000..c4e10f6000a
--- /dev/null
+++ b/dev-python/pbr/pbr-0.11.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND="dev-python/pip[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; removed tests pass once package is emerged,
+ # it's the suite's design that breaks form, not the tests' intended purpose
+ testr init || die
+ testr run || die "Testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/pbr/pbr-0.8.2-r1.ebuild b/dev-python/pbr/pbr-0.8.2-r1.ebuild
new file mode 100644
index 00000000000..12f82a9ff37
--- /dev/null
+++ b/dev-python/pbr/pbr-0.8.2-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="PBR is a library that injects some useful and sensible default
+behaviors into your setuptools run."
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~hppa ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/flake8-2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND=">dev-python/pip-1.4[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; removed tests pass once package is emerged,
+ # it's the suite's design that breaks form, not the tests' intended purpose
+ testr init
+ testr run || die "Testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/pbr/pbr-0.8.2.ebuild b/dev-python/pbr/pbr-0.8.2.ebuild
new file mode 100644
index 00000000000..d6a5f3dc47d
--- /dev/null
+++ b/dev-python/pbr/pbr-0.8.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="PBR is a library that injects some useful and sensible default
+behaviors into your setuptools run."
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha ~amd64 arm hppa ~ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/flake8-2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND=">dev-python/pip-1.4[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+# You can do this in about 3 different ways; throw it in a src_test() and prepend it to a
+# distutils-r1_src_test or os it a distutils-r1_python_test, but really it makes for a HUGE 'meh'
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ sed -e s':test_console_script_develop:_&:' -i pbr/tests/test_core.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run || die "Testsuite failed under ${EPYTHON}"
+ flake8 "${PN}"/tests || die "Run over tests folder by flake8 drew error"
+}
diff --git a/dev-python/pbr/pbr-1.0.1.ebuild b/dev-python/pbr/pbr-1.0.1.ebuild
new file mode 100644
index 00000000000..1a554bb0274
--- /dev/null
+++ b/dev-python/pbr/pbr-1.0.1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )"
+RDEPEND="dev-python/pip[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; removed tests pass once package is emerged,
+ # it's the suite's design that breaks form, not the tests' intended purpose
+ testr init || die
+ testr run || die "Testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/pbr/pbr-1.1.1.ebuild b/dev-python/pbr/pbr-1.1.1.ebuild
new file mode 100644
index 00000000000..f9498baa6b2
--- /dev/null
+++ b/dev-python/pbr/pbr-1.1.1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )"
+RDEPEND="dev-python/pip[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; removed tests pass once package is emerged,
+ # it's the suite's design that breaks form, not the tests' intended purpose
+ testr init || die
+ testr run || die "Testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/pbr/pbr-1.2.0.ebuild b/dev-python/pbr/pbr-1.2.0.ebuild
new file mode 100644
index 00000000000..db41123120d
--- /dev/null
+++ b/dev-python/pbr/pbr-1.2.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-1.4.0[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )"
+RDEPEND="dev-python/pip[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; removed tests pass once package is emerged,
+ # it's the suite's design that breaks form, not the tests' intended purpose
+ testr init || die
+ testr run || die "Testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/pbr/pbr-1.3.0.ebuild b/dev-python/pbr/pbr-1.3.0.ebuild
new file mode 100644
index 00000000000..1c676517645
--- /dev/null
+++ b/dev-python/pbr/pbr-1.3.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-1.4.0[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )"
+RDEPEND="dev-python/pip[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; Tests, that have been removed, pass once package is emerged.
+ esetup.py testr
+}
diff --git a/dev-python/pbr/pbr-1.4.0.ebuild b/dev-python/pbr/pbr-1.4.0.ebuild
new file mode 100644
index 00000000000..0016a6f8418
--- /dev/null
+++ b/dev-python/pbr/pbr-1.4.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack-dev/pbr"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+#KEYWORDS="~amd64 ~hppa ~amd64-linux ~x86-linux"
+KEYWORDS=""
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.2[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-1.4.0[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )"
+RDEPEND="dev-python/pip[${PYTHON_USEDEP}]"
+
+# Requ'd for testsuite
+DISTUTILS_IN_SOURCE_BUILD=1
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # This test passes when run within the source and doesn't represent a failure, but rather
+ # a gentoo sandbox constraint
+ # Rm tests that rely upon the package being already installed and fail
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -e s':test_sdist_extra_files:_&:' \
+ -e s':test_command_hooks:_&:' \
+ -e s':test_sdist_git_extra_files:_&:' \
+ -i pbr/tests/test_core.py || die
+ sed -e s':test_command_hooks:_&:' \
+ -e s':test_global_setup_hooks:_&:' \
+ -i pbr/tests/test_hooks.py || die
+ einfo "rogue tests disabled"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Note; Tests, that have been removed, pass once package is emerged.
+ esetup.py testr
+}
diff --git a/dev-python/pdfrw/Manifest b/dev-python/pdfrw/Manifest
new file mode 100644
index 00000000000..1f5e474d439
--- /dev/null
+++ b/dev-python/pdfrw/Manifest
@@ -0,0 +1,2 @@
+DIST pdfrw-0.1.tar.gz 30366 SHA256 8a85cb87b888c030d87cc3fce10ad93e5f99e721b80b99bf50e29a074c048f83 SHA512 16b79beec6281c499c03106dbf91e17aaf060966f9deef1983155a37dcde64b4e5dac16db89d29e6e9aca4897bb61be109fef5c6d87bd986bfd40f2f149c3d31 WHIRLPOOL 49c0250565309c66c184f6eb106c61b847dcd1cf54f725742cd643d5339a9154b78b5135c1be4b233f713b2f8aa72e7149eb634b262a488533f5e79e49572794
+DIST pdfrw-0.2.tar.gz 69177 SHA256 09f734df28f9ad712a2c14308b1d60e7202762c3ce2e32a6ad30e7ec149822b2 SHA512 4f1ed3b7ddb42969110291b31e02e15e1f98316ede25eaa4d63cdbc443497a278267309769351e04cff52651cdbc44c93771e521cb953ba08d57152f81ee516f WHIRLPOOL efbe6fa4e2ce53f27f1aed76183d2098ff2e1a9792a581078a219c27ec02c787ad6252a3d0120beda01214bcb3aa85600d23f48e90d8deaf45eec49ae88cfade
diff --git a/dev-python/pdfrw/metadata.xml b/dev-python/pdfrw/metadata.xml
new file mode 100644
index 00000000000..04c2cee1f08
--- /dev/null
+++ b/dev-python/pdfrw/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pdfrw</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pdfrw/pdfrw-0.1.ebuild b/dev-python/pdfrw/pdfrw-0.1.ebuild
new file mode 100644
index 00000000000..8bb0032eedf
--- /dev/null
+++ b/dev-python/pdfrw/pdfrw-0.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="PDF file reader/writer library"
+HOMEPAGE="https://code.google.com/p/pdfrw/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ppc ~ppc64 x86"
+IUSE=""
diff --git a/dev-python/pdfrw/pdfrw-0.2.ebuild b/dev-python/pdfrw/pdfrw-0.2.ebuild
new file mode 100644
index 00000000000..b70002ad80f
--- /dev/null
+++ b/dev-python/pdfrw/pdfrw-0.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="PDF file reader/writer library"
+HOMEPAGE="https://code.google.com/p/pdfrw/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE=""
diff --git a/dev-python/peak-rules/Manifest b/dev-python/peak-rules/Manifest
new file mode 100644
index 00000000000..6146f5de165
--- /dev/null
+++ b/dev-python/peak-rules/Manifest
@@ -0,0 +1 @@
+DIST peak-rules-0.5.tar.gz 113173 SHA256 f6883f455f231d8eb72d1fd276eaae2dd91f415ad6abd6e2ec05ba8a2b4a3d55 SHA512 7ab915641829f6366b681b4c576e7213097cbd2be76bd526fdbb4f128762c04c08ee20e3fe3ef36e1df0e544719f71c28079745c9c88f98911074da51ecfa169 WHIRLPOOL 19d7c78c6689b4af1d6386f8146cb915cfe05871d7d596ceeb4c5e35876d855644ea4783ecd7c2906e3f85191cfb9d20f47e282ccef5fabe14232d41380817fc
diff --git a/dev-python/peak-rules/metadata.xml b/dev-python/peak-rules/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/peak-rules/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/peak-rules/peak-rules-0.5.ebuild b/dev-python/peak-rules/peak-rules-0.5.ebuild
new file mode 100644
index 00000000000..caec4bf05ed
--- /dev/null
+++ b/dev-python/peak-rules/peak-rules-0.5.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="PEAK-Rules"
+MY_P="${MY_PN}-${PV}a1.dev-r2713"
+
+DESCRIPTION="Generic functions and business rules support systems"
+HOMEPAGE="http://peak.telecommunity.com/ https://pypi.python.org/pypi/PEAK-Rules/"
+SRC_URI="http://peak.telecommunity.com/snapshots/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DOCS=( Code-Generation.txt Criteria.txt Indexing.txt README.txt Syntax-Matching.txt )
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/bytecodeassembler-0.6[${PYTHON_USEDEP}]
+ >=dev-python/addons-0.6[${PYTHON_USEDEP}]
+ >=dev-python/extremes-1.1[${PYTHON_USEDEP}]
+ test? ( >=dev-python/importing-1.10[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}"/${MY_P}
+
+python_test() {
+ PYTHONPATH=$PYTHONPATH:"${S}"/peak/rules/ "${PYTHON}" test_rules.py \
+ && einfo "Tests passed under ${EPYTHON}" \
+ || die "Tests failed under ${EPYTHON}"
+}
+
+src_test() {
+ # Relative import misfires for core.py during emerge
+ sed -e "s:from peak.rules.core:from core:" -i test_rules.py
+ distutils-r1_src_test
+ # Return to original statefor final install
+ sed -e "s:from core:from peak.rules.core:" -i test_rules.py
+}
diff --git a/dev-python/peewee/Manifest b/dev-python/peewee/Manifest
new file mode 100644
index 00000000000..4dee79104ab
--- /dev/null
+++ b/dev-python/peewee/Manifest
@@ -0,0 +1,4 @@
+DIST peewee-2.5.1.tar.gz 556698 SHA256 65f426a5eb403b1427e97732ca36db4edba3581334fa8de68bcf82068e02169e SHA512 f6a014f7a28f31fa1459f192ea376dc8df39b969e032cc875e9ba48d59a4d20994cc20d7bf797976a220d2a5e53a2f8637a1efe37f530224f09c87b739768902 WHIRLPOOL 8ecfd5dc922c027c67f421015574334fa33153c552721d61c5d844dc46b8dd4d164061d382344422d4bab1d0622d45700012b8ec574e952c921198cc841456d4
+DIST peewee-2.6.0.tar.gz 558595 SHA256 724c4dbd81062a21562d164b828abec7c506f1a49ef5ece41f015bd669ddf447 SHA512 6d9c7ef89ac61bb294d7a9dd1249cf4a089f4f83b2680b86964dd8b67dcdbd0cf597cf897d66e141866148838e34ecd4e1d1ede10d1cc01db41318a0ac09cb71 WHIRLPOOL 357f55fbc95b3600d1a758b1192e88fd2b9e570b00468e2c98490188dd28c415bb36932bd38095c6c1db79217085eb641fea9a87ff1a9ee51d546d0e7525940d
+DIST peewee-2.6.1.tar.gz 567141 SHA256 e5162d9c8043ef36d163b594a53a1095f6b4fe7589ec5427896f77a94d59445b SHA512 84f3b05509fda503265796fadf3b029a96bc9500073e8e5f861d0d6c69d9dcf6a3a0a3efefbbfc1c3ac3878d14a004e72b5d0fa11008d1ac0ea23ce8762c248d WHIRLPOOL de1b72f141bd6da97e3d7faaefe969024c73e0db763ec37b68be948df5cdd0d2e97a1a4135a9b1bab17b91f28d91a4d598a97ab75291fe0b0805e82cd20be79a
+DIST peewee-2.6.2.tar.gz 574383 SHA256 2e9ee19d6beef477a14436be6bc173d2472f6ddc0afb28763fd5a4e8fb287e35 SHA512 a38b46d39c04106ddc047f56cd8ebbf48218547a3d8f7dec693f99b9c9b82df505c1948f91155177a00797765d0758ffea79d5ee5da5cf9b59adcd4b2e269483 WHIRLPOOL bff5aa5ef22f08cda83a70b933a4e5734ffb5adaa5388b399694ed8246a92b89edecb78375e6d561aafa6768f7d22bcd3cab1623fd43665be5a6712893b6f9ee
diff --git a/dev-python/peewee/metadata.xml b/dev-python/peewee/metadata.xml
new file mode 100644
index 00000000000..dfaea1228fe
--- /dev/null
+++ b/dev-python/peewee/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">coleifer/peewee</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/peewee/peewee-2.5.1.ebuild b/dev-python/peewee/peewee-2.5.1.ebuild
new file mode 100644
index 00000000000..143f63ab712
--- /dev/null
+++ b/dev-python/peewee/peewee-2.5.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Small python ORM"
+HOMEPAGE="https://github.com/coleifer/peewee/"
+SRC_URI="https://github.com/coleifer/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# Req'd to ensure a unique tmp.db for each python impl running the testsuite.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" ./runtests.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/peewee/peewee-2.6.0.ebuild b/dev-python/peewee/peewee-2.6.0.ebuild
new file mode 100644
index 00000000000..9070a3191b3
--- /dev/null
+++ b/dev-python/peewee/peewee-2.6.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Small python ORM"
+HOMEPAGE="https://github.com/coleifer/peewee/"
+SRC_URI="https://github.com/coleifer/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# Req'd to ensure a unique tmp.db for each python impl running the testsuite.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Testsuite run using runtests.py does not require deps listed in previous ebuild
+ "${PYTHON}" ./runtests.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/peewee/peewee-2.6.1.ebuild b/dev-python/peewee/peewee-2.6.1.ebuild
new file mode 100644
index 00000000000..9070a3191b3
--- /dev/null
+++ b/dev-python/peewee/peewee-2.6.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Small python ORM"
+HOMEPAGE="https://github.com/coleifer/peewee/"
+SRC_URI="https://github.com/coleifer/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# Req'd to ensure a unique tmp.db for each python impl running the testsuite.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Testsuite run using runtests.py does not require deps listed in previous ebuild
+ "${PYTHON}" ./runtests.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/peewee/peewee-2.6.2.ebuild b/dev-python/peewee/peewee-2.6.2.ebuild
new file mode 100644
index 00000000000..9070a3191b3
--- /dev/null
+++ b/dev-python/peewee/peewee-2.6.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Small python ORM"
+HOMEPAGE="https://github.com/coleifer/peewee/"
+SRC_URI="https://github.com/coleifer/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+# Req'd to ensure a unique tmp.db for each python impl running the testsuite.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Testsuite run using runtests.py does not require deps listed in previous ebuild
+ "${PYTHON}" ./runtests.py || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pep8/Manifest b/dev-python/pep8/Manifest
new file mode 100644
index 00000000000..c4cec7c92ee
--- /dev/null
+++ b/dev-python/pep8/Manifest
@@ -0,0 +1,5 @@
+DIST pep8-1.4.5.tar.gz 63021 SHA256 dd908e7df835ebb1b82ba0675e1b7e173ea9c55d7ae62808ecad2e6db2a6ee0e SHA512 c4d8e5b116762480e1aad2ddad1cd02d2d74779adcef8153739c7ca1e56d33bd81b42c984c525797548d915245f24d3cea636d6b89ade8e9e428f31b0a6fe8a6 WHIRLPOOL c597328ce58d226311162c7126c949f92e9142f0fa9a979cdd0ede29f71b839587ef4c5cef57ac8fdd608753f52a6c91220b90807ca9b3b56cc5b5772c688b9a
+DIST pep8-1.5.6.tar.gz 66944 SHA256 1a8be992f8daac6144af0f3972f40159f46d81cb36dde4adeea01576e4bf041a SHA512 9de60df0f56eeb28be835b3f11d060150e08c19403552b769abe0794a1aca65e3a17fd8b45f35b34b11593f527c2f4521ab72823aa1475963b1281c044c71ec1 WHIRLPOOL 97f90d9b4ae69d87cf5eb014998f74d8fc97640a31a457a2b39db495eeb9bc0634d5a56a6bf7636d44dbef70179a3c0c0098e7963a5d63e7d3cfccd0b250675b
+DIST pep8-1.5.7.tar.gz 67302 SHA256 15b42131b25f376165d195fe4e17b0a28311182aaf9330d5eb575bbeda5a6989 SHA512 ae5cc6cc47d71e90059fec0c89f5e8e7b71b08d185c95b0c8cf0aa9acaee4841d0cfc617fb1ca6d7af7f4721480a1992b6178dc845d80dfe87fe3792d515a3eb WHIRLPOOL 09621e17fec73de00ab4840365898084651bab4cbcf982a1393eba5e0bb2d04c0374c5dd69bf6915b6542b4ce6ac13a614395811387badf6384f266d0b61fec3
+DIST pep8-1.6.1.tar.gz 73103 SHA256 573677cb85ff089244b0f99af955f76c2e37456632610b6deda6167139ce155a SHA512 7a9d83cfe7b61b2ef598c74a465b81971ad1d0be3a708410e431d8475fc507204979857c10dbf4332701aac0d28244f19dc9c400ca85161acdd61d8084158ef8 WHIRLPOOL 0a032be9cdea4f45c86255dddbb06e1629e148e8b15e6a83d8abc7ed06f52d6c184f2953367dca5b94978e2351b3873c6cf3bc02c811aa9f8ce50964b31306c5
+DIST pep8-1.6.2.tar.gz 74534 SHA256 b8b7e35630b5539e26a197dfc6005be9e1e9a135496b377723a8ebc01b9bcbff SHA512 f046a1e3ed68a7c409ad6c501a54ed14188de670f0e0d873d2d7960e45fec0c4e2c27067877854ecbb20f3690f9d2ca1fa4bc1cc52b22e1f71bd0aec4ddb6fc9 WHIRLPOOL cf482b333da7a7c936277e2fdab057b6e9b30ef7597dde0f4e49abc3b18727584814779d15216977371a8e72b593395083bda8728600d55fab6ce3b43ce777ee
diff --git a/dev-python/pep8/metadata.xml b/dev-python/pep8/metadata.xml
new file mode 100644
index 00000000000..3be2d3b02ee
--- /dev/null
+++ b/dev-python/pep8/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pep8</remote-id>
+ <remote-id type="github">jcrocholl/pep8</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pep8/pep8-1.4.5.ebuild b/dev-python/pep8/pep8-1.4.5.ebuild
new file mode 100644
index 00000000000..0d60b978168
--- /dev/null
+++ b/dev-python/pep8/pep8-1.4.5.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python style guide checker"
+HOMEPAGE="http://github.com/jcrocholl/pep8 http://pypi.python.org/pypi/pep8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=( CHANGES.txt )
+
+python_test() {
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py -v --testsuite=testsuite || die
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py --doctest -v || die
+}
diff --git a/dev-python/pep8/pep8-1.5.6.ebuild b/dev-python/pep8/pep8-1.5.6.ebuild
new file mode 100644
index 00000000000..447be257597
--- /dev/null
+++ b/dev-python/pep8/pep8-1.5.6.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python style guide checker"
+HOMEPAGE="http://github.com/jcrocholl/pep8 http://pypi.python.org/pypi/pep8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~hppa ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py -v --testsuite=testsuite || die
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py --doctest -v || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pep8/pep8-1.5.7.ebuild b/dev-python/pep8/pep8-1.5.7.ebuild
new file mode 100644
index 00000000000..deaec149283
--- /dev/null
+++ b/dev-python/pep8/pep8-1.5.7.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python style guide checker"
+HOMEPAGE="http://github.com/jcrocholl/pep8 http://pypi.python.org/pypi/pep8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py -v --testsuite=testsuite || die
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py --doctest -v || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pep8/pep8-1.6.1.ebuild b/dev-python/pep8/pep8-1.6.1.ebuild
new file mode 100644
index 00000000000..c6c3d0e8785
--- /dev/null
+++ b/dev-python/pep8/pep8-1.6.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python style guide checker"
+HOMEPAGE="http://github.com/jcrocholl/pep8 http://pypi.python.org/pypi/pep8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py -v --testsuite=testsuite || die
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py --doctest -v || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pep8/pep8-1.6.2.ebuild b/dev-python/pep8/pep8-1.6.2.ebuild
new file mode 100644
index 00000000000..e4bdafa2417
--- /dev/null
+++ b/dev-python/pep8/pep8-1.6.2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python style guide checker"
+HOMEPAGE="http://github.com/jcrocholl/pep8 http://pypi.python.org/pypi/pep8"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py -v --testsuite=testsuite || die
+ PYTHONPATH="${S}" "${PYTHON}" pep8.py --doctest -v || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/peppercorn/Manifest b/dev-python/peppercorn/Manifest
new file mode 100644
index 00000000000..cc6fd2f09ad
--- /dev/null
+++ b/dev-python/peppercorn/Manifest
@@ -0,0 +1,2 @@
+DIST peppercorn-0.4.tar.gz 18349 SHA256 9a53edd7259a73256519a0d4b23fdc210ea3dfc415e0becdba1d2498cbf7e28a SHA512 b89d36e5c5887f8a21f6bc0d9da33ef0c57a19848dc61fad105bf076eb5214119fb2fa75beeefb936a95e6aa98da7c48ad60596f68da629383820111ef127100 WHIRLPOOL a76793182e65eff1b498f7a872222d427d27a17cae8985fcf1bbb7ab87732f5d4fb6357b94556dd1ac5ea4b4b2d152bfa9864e83e9efaa7879fbf7a01c3dee2a
+DIST peppercorn-0.5.tar.gz 19637 SHA256 921cba5d51fa211e6da0fbd2120b9a98d663422a80f5bb669ad81ffb0909774b SHA512 37f9df282872b0c664780f5e27caf81cc379b05009756cf6c79290b09893d88427f3619916688412dabf20e99f264da8832d959563943e2910b1fcac696edc31 WHIRLPOOL a104c3dca197c5bdd32a9a3f4fafb7c93459cbb8da13f8e581990962ac9afc56c22cdbb101d17271983b61fb0e83f4c0b25590a88d8f54c403110067ea3ba12f
diff --git a/dev-python/peppercorn/metadata.xml b/dev-python/peppercorn/metadata.xml
new file mode 100644
index 00000000000..0d46aa06c98
--- /dev/null
+++ b/dev-python/peppercorn/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">peppercorn</remote-id>
+ <remote-id type="github">Pylons/peppercorn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/peppercorn/peppercorn-0.4-r1.ebuild b/dev-python/peppercorn/peppercorn-0.4-r1.ebuild
new file mode 100644
index 00000000000..f5656f600a0
--- /dev/null
+++ b/dev-python/peppercorn/peppercorn-0.4-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for converting a token stream into a data structure for use in web form posts"
+HOMEPAGE="https://github.com/Pylons/peppercorn http://pypi.python.org/pypi/peppercorn"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+# Include COPYRIGHT.txt because the license seems to require it.
+DOCS=( CHANGES.txt README.txt COPYRIGHT.txt )
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Install only the .rst source, as sphinx processing requires a
+ # theme only available from git that contains hardcoded references
+ # to files on https://static.pylonsproject.org/ (so the docs would
+ # not actually work offline). Install into a "docs" subdirectory
+ # so the reference in the README remains correct.
+ docinto docs
+ dodoc docs/*.rst
+}
diff --git a/dev-python/peppercorn/peppercorn-0.5.ebuild b/dev-python/peppercorn/peppercorn-0.5.ebuild
new file mode 100644
index 00000000000..7d14d3b628b
--- /dev/null
+++ b/dev-python/peppercorn/peppercorn-0.5.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for converting a token stream into a data structure for use in web form posts"
+HOMEPAGE="https://github.com/Pylons/peppercorn http://pypi.python.org/pypi/peppercorn"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+# Include COPYRIGHT.txt because the license seems to require it
+DOCS=( CHANGES.txt README.txt COPYRIGHT.txt )
+
+python_prepare_all() {
+ # Fix Sphinx theme. courtesy of Arfrever
+ sed -e "/# Add and use Pylons theme/,+36d" -i docs/conf.py || die "sed failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pexpect/Manifest b/dev-python/pexpect/Manifest
new file mode 100644
index 00000000000..95581b8e9c5
--- /dev/null
+++ b/dev-python/pexpect/Manifest
@@ -0,0 +1,5 @@
+DIST pexpect-2.4.tar.gz 113251 SHA256 43c788f59dcf4bed677fd0b16891787dbf747e210ffedb6e90156fbbbd4d3b7b SHA512 0d5db34f3dc0e1a5bf7d8d0ab584897e4142592f35765762e4ca60d112106b91485098c91ad95a3cb3ad1f3d600619fa0ad41d930085e75974d78e0f06280a9f WHIRLPOOL 587a94b785645a950a643bff7bf972af285faea9dcf73064eb40e96d7cb29e87543bb14c65cdc2366573236ec56cc03c4076bc952899e567872628ff5c4d9785
+DIST pexpect-3.0.tar.gz 146662 SHA256 1d6cee0fa5ab212f9ddac9852bab0df5fff11a173ed1bfde9346d5c8aa42d14c SHA512 f84cbc843978baf0ab05bae63dd080d4ca14e8fd51de4e53cf33ddb6219c9e460f68861e44104a59ddb2c1b9dc8568bc87ee778ea52b10e18e365b771ca9aa63 WHIRLPOOL e2def4eb61007d5cbb5370daa82672f6063bf87a2a238237720652f85051bb72383b4d808c8a7148063fafe020ce1253a83f97237594b52a75f8a49689e38171
+DIST pexpect-3.1.tar.gz 130404 SHA256 bd0045066718fba98481032303f07565cca6b22b3b7f104efe3e077a55e9ee8d SHA512 8b6edfc6537dcd241446807f0b659c5040ee3a87329df03c76bed0d0328070e3bd144f957661e1ce46f0a6dae89f869ea99d38b22257fc20c2eb3377c4ccafc8 WHIRLPOOL 2472a6b0166c2096cf20056495eb3445c3266edb59c0b2db7dc0a32e8504e2b1755f1bef8245b8c9514325f2d5196d4b6dbed241222b14dd46644fb2e0e60fc9
+DIST pexpect-3.2.tar.gz 131070 SHA256 dbc4c9a01c118e198d1b6ca76f31eb7292f212567f253e6b36a880e5168e961f SHA512 2d25ebb7c19168a083b7af6a84a4ab5162b9fa5ae19b5786ee9592c663dd9ca264c1d1840a219f0ff44bc14853fc801c1d2e73a053f5d2afc2d1eea174b0b505 WHIRLPOOL 70ac0fe69e3410cd74d5b99b4dc654171f5aa763629793f6eed5a6fb607b1bd604b070fd8ee511998c8e40e188877f20c4233bd567579d8f891a32533865804c
+DIST pexpect-3.3.tar.gz 132330 SHA256 dfea618d43e83cfff21504f18f98019ba520f330e4142e5185ef7c73527de5ba SHA512 66cc501f1c7bb8ba0be4cdc0db840629f51416dc54ae44dc770adb38f1a385116b0a8b9bc7f1cc1447f05ede36ef1b519f5c4e710e6cb736c923ecfc87497cfa WHIRLPOOL e708e722d4e2598958f8d724b84148608e9a53041077b1a1a2af84d5281e11f0c6c050ee88489eebc48bd5556c22e0fe9386680d34b1941ddf21539296629513
diff --git a/dev-python/pexpect/metadata.xml b/dev-python/pexpect/metadata.xml
new file mode 100644
index 00000000000..c6bb9600883
--- /dev/null
+++ b/dev-python/pexpect/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pexpect</remote-id>
+ <remote-id type="github">pexpect/pexpect</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pexpect/pexpect-2.4-r1.ebuild b/dev-python/pexpect/pexpect-2.4-r1.ebuild
new file mode 100644
index 00000000000..2496ff53f3e
--- /dev/null
+++ b/dev-python/pexpect/pexpect-2.4-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for spawning child applications and responding to expected patterns"
+HOMEPAGE="http://pexpect.sourceforge.net/ http://pypi.python.org/pypi/pexpect"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pexpect/pexpect-2.4.ebuild b/dev-python/pexpect/pexpect-2.4.ebuild
new file mode 100644
index 00000000000..fe95ec3c8b2
--- /dev/null
+++ b/dev-python/pexpect/pexpect-2.4.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_DEPEND="2"
+
+inherit distutils
+
+DESCRIPTION="Python module for spawning child applications and responding to expected patterns"
+HOMEPAGE="http://pexpect.sourceforge.net/ http://pypi.python.org/pypi/pexpect"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+RESTRICT_PYTHON_ABIS="3.*"
+
+PYTHON_MODNAME="ANSI.py fdpexpect.py FSM.py pexpect.py pxssh.py screen.py"
+
+src_install() {
+ distutils_src_install
+
+ use doc && dohtml -r doc/*
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pexpect/pexpect-3.0.ebuild b/dev-python/pexpect/pexpect-3.0.ebuild
new file mode 100644
index 00000000000..57be2dac6e2
--- /dev/null
+++ b/dev-python/pexpect/pexpect-3.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for spawning child applications and responding to expected patterns"
+HOMEPAGE="http://pexpect.sourceforge.net/ http://pypi.python.org/pypi/pexpect"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm hppa ~ia64 ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pexpect/pexpect-3.1.ebuild b/dev-python/pexpect/pexpect-3.1.ebuild
new file mode 100644
index 00000000000..436773d86b4
--- /dev/null
+++ b/dev-python/pexpect/pexpect-3.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for spawning child applications and responding to expected patterns"
+HOMEPAGE="http://pexpect.sourceforge.net/ http://pypi.python.org/pypi/pexpect"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~amd64-fbsd ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pexpect/pexpect-3.2.ebuild b/dev-python/pexpect/pexpect-3.2.ebuild
new file mode 100644
index 00000000000..3121d13adc1
--- /dev/null
+++ b/dev-python/pexpect/pexpect-3.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for spawning child applications and responding to expected patterns"
+HOMEPAGE="http://pexpect.sourceforge.net/ http://pypi.python.org/pypi/pexpect"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~amd64-fbsd ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ . test.env || die
+ "${PYTHON}" tools/testall.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pexpect/pexpect-3.3.ebuild b/dev-python/pexpect/pexpect-3.3.ebuild
new file mode 100644
index 00000000000..60511a2df5a
--- /dev/null
+++ b/dev-python/pexpect/pexpect-3.3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for spawning child applications and responding to expected patterns"
+HOMEPAGE="http://pexpect.sourceforge.net/ http://pypi.python.org/pypi/pexpect/ https://github.com/pexpect/pexpect/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pgasync/Manifest b/dev-python/pgasync/Manifest
new file mode 100644
index 00000000000..82b9c248d48
--- /dev/null
+++ b/dev-python/pgasync/Manifest
@@ -0,0 +1 @@
+DIST pgasync-2.01.tar.gz 22314 SHA256 c38ac6ae200d54c22ad480ea020e0019692e69992344abce287232b30ccfe56c SHA512 36916ce3dcebf82367eace8fd689e0d300ffc040250869794191bfb723053050c9766fa5ce251341c317f7fbab418ace4dc36345d5c73eea92c1d04d36e802af WHIRLPOOL 6ac847535e7e8efdc28cf64323b302ee590bb38103049d19bc8f41aab6d2c9ec50d0493da0fea014e44f610871aed446c713e58b46f80db6414195b6d6327ab3
diff --git a/dev-python/pgasync/metadata.xml b/dev-python/pgasync/metadata.xml
new file mode 100644
index 00000000000..664c1a06cc5
--- /dev/null
+++ b/dev-python/pgasync/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>postgresql</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pgasync/pgasync-2.01-r1.ebuild b/dev-python/pgasync/pgasync-2.01-r1.ebuild
new file mode 100644
index 00000000000..4bb12ae6241
--- /dev/null
+++ b/dev-python/pgasync/pgasync-2.01-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An asynchronous API to PostgreSQL for twisted"
+HOMEPAGE="http://www.jamwt.com/pgasync/"
+SRC_URI="http://www.jamwt.com/pgasync/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/twisted-core[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS="CHANGELOG PKG-INFO README TODO"
+
+src_install() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pgmagick/Manifest b/dev-python/pgmagick/Manifest
new file mode 100644
index 00000000000..8a900c28dbd
--- /dev/null
+++ b/dev-python/pgmagick/Manifest
@@ -0,0 +1,2 @@
+DIST pgmagick-0.5.10.tar.gz 39826 SHA256 89274107200a84e56e0fc4f6c482fd3b865d28c820c6d3e81cdbd4089e2dd233 SHA512 a5b05c50e8ffd61dc84547d7dcba7d47b4d31d19b00c372eac84324faa9b88194ef3283224a60ce0bc17fa1de8f22cec188dc03388fb119ace7c4b6c6eab875f WHIRLPOOL aeaee541af0ebc6f474fc20a5b38d635cd27602594602d7132ab96cc11172509fa5218e71719a46792a7dfe63872a30ef11019c92eb0d0bb433a468de59b7494
+DIST pgmagick-0.5.11.tar.gz 39872 SHA256 83d611bb516eb2465a0167463f427f3fbdd6fa4efa1b8a24caa64fcec6bc8b3d SHA512 6b53204319538ca05e25e601135c47acfffb8af7f062c567875ad5740daf0d30263aefe7180a478d605b98922a7f3e5a2ae1f56d01b2e5f1d5c6b4b34fb6d44f WHIRLPOOL f53bacd57521bddea70564fbe934de918dc1563859656804c4d1d5e941e9c23869c4636b047ceab6baff726b83040a45849f5e4eabdb805198aa5bc694021358
diff --git a/dev-python/pgmagick/metadata.xml b/dev-python/pgmagick/metadata.xml
new file mode 100644
index 00000000000..961ad9f0991
--- /dev/null
+++ b/dev-python/pgmagick/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pgmagick</remote-id>
+ <remote-id type="bitbucket">hhatto/pgmagick</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pgmagick/pgmagick-0.5.10.ebuild b/dev-python/pgmagick/pgmagick-0.5.10.ebuild
new file mode 100644
index 00000000000..e75928f8172
--- /dev/null
+++ b/dev-python/pgmagick/pgmagick-0.5.10.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Yet another boost.python based wrapper for GraphicsMagick"
+HOMEPAGE="https://pypi.python.org/pypi/pgmagick/ http://bitbucket.org/hhatto/pgmagick/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="media-gfx/graphicsmagick[cxx]
+ dev-libs/boost:=[python,${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ media-fonts/corefonts )"
+
+python_test() {
+ # https://bitbucket.org/hhatto/pgmagick/issue/46/
+ for test in test/test_*.py; do
+ "${PYTHON}" $test
+ done
+}
diff --git a/dev-python/pgmagick/pgmagick-0.5.11.ebuild b/dev-python/pgmagick/pgmagick-0.5.11.ebuild
new file mode 100644
index 00000000000..e75928f8172
--- /dev/null
+++ b/dev-python/pgmagick/pgmagick-0.5.11.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Yet another boost.python based wrapper for GraphicsMagick"
+HOMEPAGE="https://pypi.python.org/pypi/pgmagick/ http://bitbucket.org/hhatto/pgmagick/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="media-gfx/graphicsmagick[cxx]
+ dev-libs/boost:=[python,${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ media-fonts/corefonts )"
+
+python_test() {
+ # https://bitbucket.org/hhatto/pgmagick/issue/46/
+ for test in test/test_*.py; do
+ "${PYTHON}" $test
+ done
+}
diff --git a/dev-python/pgpdump/Manifest b/dev-python/pgpdump/Manifest
new file mode 100644
index 00000000000..c317f819155
--- /dev/null
+++ b/dev-python/pgpdump/Manifest
@@ -0,0 +1 @@
+DIST pgpdump-1.5.tar.gz 69446 SHA256 1c4700857bf7ba735b08cfe4101aa3a4f5fd839657af249c17b2697c20829668 SHA512 b9fc7f78b920296301acaad2dbbafefff7b5f1658cbb65f5892a28d0b4d5110581bba984ad5cdabde3330025e3828387d7127c689cb86a7163c0b5ac0d0d2de0 WHIRLPOOL 81b3bfc26f89419261d0104d848f584b602f280efa62b078c902224f3c545b757d2864c946adea7800df08ab693b9dd182a9ed43aa617480f9e04865f7372a81
diff --git a/dev-python/pgpdump/metadata.xml b/dev-python/pgpdump/metadata.xml
new file mode 100644
index 00000000000..2002d32b2e5
--- /dev/null
+++ b/dev-python/pgpdump/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pgpdump</remote-id>
+ <remote-id type="github">toofishes/python-pgpdump</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pgpdump/pgpdump-1.5.ebuild b/dev-python/pgpdump/pgpdump-1.5.ebuild
new file mode 100644
index 00000000000..66fdc27d347
--- /dev/null
+++ b/dev-python/pgpdump/pgpdump-1.5.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="PGP packet parser library"
+HOMEPAGE="https://pypi.python.org/pypi/pgpdump https://github.com/toofishes/python-pgpdump"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/piddle/Manifest b/dev-python/piddle/Manifest
new file mode 100644
index 00000000000..60bd59ce202
--- /dev/null
+++ b/dev-python/piddle/Manifest
@@ -0,0 +1 @@
+DIST piddle-1.0.15.tar.gz 454044 SHA256 84c33ba0d054e6b585005aae3a4a99aa5e0d735798fb015c220c24a548d1364d SHA512 5ab216f67721b47360a6e757bddb268173b7fbe3d1a54dfc6dda0a7c050064f833e24911f16882e98af1d56a6ee840a205aa4d0d2e394a375c7abc98d0074a07 WHIRLPOOL e32f4246c8a6eebc155b93ba96c6c5c437c0dd70817513e9e2c0dea43bb3940935d5282969c3a0076dfe9015761978f039e9dd26f8a2294dac051a009735f375
diff --git a/dev-python/piddle/metadata.xml b/dev-python/piddle/metadata.xml
new file mode 100644
index 00000000000..974f176f52a
--- /dev/null
+++ b/dev-python/piddle/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+PIDDLE is a Python module for creating two-dimensional graphics in a
+manner that is both cross-platform and cross-media; that is, it can
+support screen graphics (e.g. QuickDraw, Windows, Tk) as well as file
+output (PostScript, PDF, GIF, etc.). It makes use of the native 2D
+drawing calls of each backend, for maximum efficiency and quality. It
+works by defining a base class (piddle.Canvas) with methods for all
+supported drawing primitives. A particular drawing context is provided
+in the form of a derived class. PIDDLE applications will be able to
+automatically select an appropriate backend for the user's environment.
+</longdescription>
+ <longdescription lang="ja">
+PIDDLEはクロスプラットフォームとクロスメディアの両方のマナーに沿った二次元画像を
+作成するためのPython言語モジュールです。つまり、これはファイル出力(Postscript, PDF, GIFなど)と同じ様にスクリーン・グラフィック(例えばQuickDraw, TK)をサポートし&gt;ます。最大限の効果と品質のため、ネイティブ2D描画を各バックエンドの呼出しのように
+します。これは原始的なサポートされた描画方法を指すメソッドを持ったベース・クラス
+(Paddle.Canvas)を明確にする事で働きます。特別のドロー・コンテキストは派生元クラ&gt;スのフォームで提供されます。PIDDLEアプリケーションはユーザー環境に適切なバックエ
+ンドを自動的に選択するでしょう。
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">piddle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/piddle/piddle-1.0.15-r1.ebuild b/dev-python/piddle/piddle-1.0.15-r1.ebuild
new file mode 100644
index 00000000000..e411e656bd3
--- /dev/null
+++ b/dev-python/piddle/piddle-1.0.15-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Cross-media, cross-platform 2D graphics package"
+HOMEPAGE="http://piddle.sourceforge.net/"
+SRC_URI="mirror://sourceforge/piddle/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~x86"
+IUSE="doc"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/piddle/piddle-1.0.15.ebuild b/dev-python/piddle/piddle-1.0.15.ebuild
new file mode 100644
index 00000000000..31406622425
--- /dev/null
+++ b/dev-python/piddle/piddle-1.0.15.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils
+
+DESCRIPTION="Cross-media, cross-platform 2D graphics package"
+HOMEPAGE="http://piddle.sourceforge.net/"
+SRC_URI="mirror://sourceforge/piddle/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ia64 x86"
+IUSE=""
+
+src_install() {
+ distutils_src_install
+ dohtml -r docs/*
+}
diff --git a/dev-python/pika/Manifest b/dev-python/pika/Manifest
new file mode 100644
index 00000000000..ca37cd4ed5d
--- /dev/null
+++ b/dev-python/pika/Manifest
@@ -0,0 +1 @@
+DIST pika-0.9.14.tar.gz 72651 SHA256 5e2be3cb4ebdc267abd8e481c09bc30e95919a24e3a5f3f69744959490ead0e3 SHA512 c5b279c48341cef7b86d11414159de778afd3cf043d0ba8ba45adff6e8fbf72ec39642ed533c4d3674df3555fdaa0d7ff32a1844001bc56c1c380643d075870c WHIRLPOOL 3f73bbf4b892b9f60a5c113dd65027103de84578cad895b306fcff9ec02861429d4e32a8ba4a22f5def2a1030e8f10dceffb8f9c715d3bb845394fe012c6808f
diff --git a/dev-python/pika/metadata.xml b/dev-python/pika/metadata.xml
new file mode 100644
index 00000000000..a0484b5114c
--- /dev/null
+++ b/dev-python/pika/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>xarthisius@gentoo.org</email>
+ <name>Kacper Kowalik</name>
+ </maintainer>
+ <longdescription>Pika is a pure-Python implementation of the AMQP 0-9-1 protocol that tries to stay fairly independent of the underlying network support library. Pika was developed primarily for use with RabbitMQ, but should also work with other AMQP 0-9-1 brokers.</longdescription>
+ <upstream>
+ <remote-id type="pypi">pika</remote-id>
+ <remote-id type="github">pika/pika</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pika/pika-0.9.14.ebuild b/dev-python/pika/pika-0.9.14.ebuild
new file mode 100644
index 00000000000..26dee82841c
--- /dev/null
+++ b/dev-python/pika/pika-0.9.14.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure-Python implementation of the AMQP"
+HOMEPAGE="https://pika.readthedocs.org/ https://github.com/pika/pika"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/pillow/Manifest b/dev-python/pillow/Manifest
new file mode 100644
index 00000000000..e5be260f342
--- /dev/null
+++ b/dev-python/pillow/Manifest
@@ -0,0 +1,4 @@
+DIST Pillow-2.5.3.zip 6873222 SHA256 62ff6c6cb88d4a1d6e856315b1691186b06cb923f18fde86d6abac9eeb9096d1 SHA512 09d8cb9391f1627e01898eef15109ddd1deecc0bcd342f35e85b7cc0eacc61952ed8c297c460b858815d05ed9ab65c3674ef1c4b73d583ff37fd7eed7368af35 WHIRLPOOL 99f8bd559eaad619db872bb29673abd0073dc5e3f4f85056e51a4e59c5e85193de10934e4b725ef9b40af535c8dac7128debf441982fa3a2355411944d495527
+DIST Pillow-2.8.1.zip 9275663 SHA256 4363b52527c263e77f5b18c3dfffd15ae454edf0c4457197ecbe29863a651938 SHA512 75c0cfb53530549a2bac66cc3457747c239779233c64fe944fa661e7401acd915700e0dfd74e13c93d96afb9b50a112f09cbaea49205e83d8797e832a52534e4 WHIRLPOOL e71a39be415c2b83b7d554af7ad86652c08594c302344c919352a64ca48cfc7c1a88ca8dacccdacb283d8a42ad14cd3cb230c2900a9f11dc31ad20e203d6596d
+DIST Pillow-2.8.2.zip 9402887 SHA256 57a900c2f30e53ed054adad401ab69643d9ab21e3acb0a647749a168e4e24446 SHA512 2bc1e17cb65d5e953e30ea1606dbf79059d51f60ff5c2b000869fc2d9f93f8bbf5cf41b0147fc83974c48341cc68df6964d3d8203e0d6cc6a45ede95f3e0bc2f WHIRLPOOL 4b5ad1db34427a161ce1885a858df72e4aaffd61b5bf9010702803874f44391678d228f71777fca058f424c6ac6208e8c3d7421eeff88c42bb6df94d1d13d771
+DIST Pillow-2.9.0.zip 9612840 SHA256 d1db8dfed77547076037d589b598e04f2cbc1a7835d3d3f137bf20c8994854d5 SHA512 d06371fbe67eca66229cdec7896423f55c9335be50698168c7bf4f4635352454b2f946eae90b404c68d6b939ec1d7353916d32bc9964d5b8986b8098381d5180 WHIRLPOOL c664fec07c6634cad37791375fb1cb38b0edd542d93e099703dbc520e0d54125a1f00f205bbcdb8493df4dfd05ae1c2088ba305f23e66f0cc3e309f446c44fa5
diff --git a/dev-python/pillow/files/imaging-1.1.7-no-xv.patch b/dev-python/pillow/files/imaging-1.1.7-no-xv.patch
new file mode 100644
index 00000000000..1cbaf515bd4
--- /dev/null
+++ b/dev-python/pillow/files/imaging-1.1.7-no-xv.patch
@@ -0,0 +1,18 @@
+--- PIL/ImageShow.py.old 2009-11-30 10:28:37.000000000 +0100
++++ PIL/ImageShow.py 2009-11-30 10:29:02.000000000 +0100
+@@ -149,13 +149,10 @@
+ def get_command_ex(self, file, title=None, **options):
+ # note: xv is pretty outdated. most modern systems have
+ # imagemagick's display command instead.
+- command = executable = "xv"
+- if title:
+- # FIXME: do full escaping
+- command = command + " -name \"%s\"" % title
++ command = executable = "xdg-open"
+ return command, executable
+
+- if which("xv"):
++ if which("xdg-open"):
+ register(XVViewer)
+
+ if __name__ == "__main__":
diff --git a/dev-python/pillow/files/pillow-2.0.0-delete_hardcoded_paths.patch b/dev-python/pillow/files/pillow-2.0.0-delete_hardcoded_paths.patch
new file mode 100644
index 00000000000..ed5bdca65cb
--- /dev/null
+++ b/dev-python/pillow/files/pillow-2.0.0-delete_hardcoded_paths.patch
@@ -0,0 +1,178 @@
+--- setup.py
++++ setup.py
+@@ -56,11 +56,6 @@
+ return None
+
+
+-def _lib_include(root):
+- # map root to (root/lib, root/include)
+- return os.path.join(root, "lib"), os.path.join(root, "include")
+-
+-
+ def _read(file):
+ return open(file, 'rb').read()
+
+@@ -105,102 +100,17 @@
+ _add_directory(include_dirs, include_root)
+
+ #
+- # add platform directories
+-
+- if sys.platform == "cygwin":
+- # pythonX.Y.dll.a is in the /usr/lib/pythonX.Y/config directory
+- _add_directory(library_dirs, os.path.join(
+- "/usr/lib", "python%s" % sys.version[:3], "config"))
+-
+- elif sys.platform == "darwin":
+- # attempt to make sure we pick freetype2 over other versions
+- _add_directory(include_dirs, "/sw/include/freetype2")
+- _add_directory(include_dirs, "/sw/lib/freetype2/include")
+- # fink installation directories
+- _add_directory(library_dirs, "/sw/lib")
+- _add_directory(include_dirs, "/sw/include")
+- # darwin ports installation directories
+- _add_directory(library_dirs, "/opt/local/lib")
+- _add_directory(include_dirs, "/opt/local/include")
+- # freetype2 ships with X11
+- _add_directory(library_dirs, "/usr/X11/lib")
+- _add_directory(include_dirs, "/usr/X11/include")
+-
+- elif sys.platform.startswith("linux"):
+- for platform_ in (platform.processor(),platform.architecture()[0]):
+- if not platform_: continue
+-
+- if platform_ in ["x86_64", "64bit"]:
+- _add_directory(library_dirs, "/lib64")
+- _add_directory(library_dirs, "/usr/lib64")
+- _add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
+- break
+- elif platform_ in ["i386", "i686", "32bit"]:
+- _add_directory(library_dirs, "/usr/lib/i386-linux-gnu")
+- break
+- else:
+- raise ValueError("Unable to identify Linux platform: `%s`" % platform_)
+-
+- # XXX Kludge. Above /\ we brute force support multiarch. Here we
+- # try Barry's more general approach. Afterward, something should
+- # work ;-)
+- self.add_multiarch_paths()
+-
+- _add_directory(library_dirs, "/usr/local/lib")
+- # FIXME: check /opt/stuff directories here?
+-
+- prefix = sysconfig.get_config_var("prefix")
+- if prefix:
+- _add_directory(library_dirs, os.path.join(prefix, "lib"))
+- _add_directory(include_dirs, os.path.join(prefix, "include"))
+-
+- #
+ # locate tkinter libraries
+
+
+ if _tkinter:
+ TCL_VERSION = _tkinter.TCL_VERSION[:3]
+
+- if _tkinter and not TCL_ROOT:
+- # we have Tkinter but the TCL_ROOT variable was not set;
+- # try to locate appropriate Tcl/Tk libraries
+- PYVERSION = sys.version[0] + sys.version[2]
+- TCLVERSION = TCL_VERSION[0] + TCL_VERSION[2]
+- roots = [
+- # common installation directories, mostly for Windows
+- # (for Unix-style platforms, we'll check in well-known
+- # locations later)
+- os.path.join("/py" + PYVERSION, "Tcl"),
+- os.path.join("/python" + PYVERSION, "Tcl"),
+- "/Tcl", "/Tcl" + TCLVERSION, "/Tcl" + TCL_VERSION,
+- os.path.join(os.environ.get("ProgramFiles", ""), "Tcl"),
+- ]
+- for TCL_ROOT in roots:
+- TCL_ROOT = os.path.abspath(TCL_ROOT)
+- if os.path.isfile(os.path.join(TCL_ROOT, "include", "tk.h")):
+- # FIXME: use distutils logging (?)
+- print("--- using Tcl/Tk libraries at", TCL_ROOT)
+- print("--- using Tcl/Tk version", TCL_VERSION)
+- TCL_ROOT = _lib_include(TCL_ROOT)
+- break
+- else:
+- TCL_ROOT = None
+-
+
+ #
+ # add standard directories
+
+- # look for tcl specific subdirectory (e.g debian)
+- if _tkinter:
+- tcl_dir = "/usr/include/tcl" + TCL_VERSION
+- if os.path.isfile(os.path.join(tcl_dir, "tk.h")):
+- _add_directory(include_dirs, tcl_dir)
+-
+ # standard locations
+- _add_directory(library_dirs, "/usr/local/lib")
+- _add_directory(include_dirs, "/usr/local/include")
+-
+- _add_directory(library_dirs, "/usr/lib")
+ _add_directory(include_dirs, "/usr/include")
+
+ #
+@@ -333,28 +243,7 @@
+ "_webp", ["_webp.c"], libraries=["webp"]))
+
+
+- if sys.platform == "darwin":
+- # locate Tcl/Tk frameworks
+- frameworks = []
+- framework_roots = [
+- "/Library/Frameworks",
+- "/System/Library/Frameworks"]
+- for root in framework_roots:
+- if (os.path.exists(os.path.join(root, "Tcl.framework")) and
+- os.path.exists(os.path.join(root, "Tk.framework"))):
+- print("--- using frameworks at %s" % root)
+- frameworks = ["-framework", "Tcl", "-framework", "Tk"]
+- dir = os.path.join(root, "Tcl.framework", "Headers")
+- _add_directory(self.compiler.include_dirs, dir, 0)
+- dir = os.path.join(root, "Tk.framework", "Headers")
+- _add_directory(self.compiler.include_dirs, dir, 1)
+- break
+- if frameworks:
+- exts.append(Extension(
+- "_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"],
+- extra_compile_args=frameworks, extra_link_args=frameworks))
+- feature.tcl = feature.tk = 1 # mark as present
+- elif feature.tcl and feature.tk:
++ if feature.tcl and feature.tk:
+ exts.append(Extension(
+ "_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"],
+ libraries=[feature.tcl, feature.tk]))
+@@ -445,30 +334,6 @@
+ if m.group(1) < "1.2.3":
+ return m.group(1)
+
+- # http://hg.python.org/users/barry/rev/7e8deab93d5a
+- def add_multiarch_paths(self):
+- # Debian/Ubuntu multiarch support.
+- # https://wiki.ubuntu.com/MultiarchSpec
+- # self.build_temp
+- tmpfile = os.path.join(self.build_temp, 'multiarch')
+- if not os.path.exists(self.build_temp):
+- os.makedirs(self.build_temp)
+- ret = os.system('dpkg-architecture -qDEB_HOST_MULTIARCH > %s' %
+- tmpfile)
+- ret = os.system(
+- 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
+- tmpfile)
+- try:
+- if ret >> 8 == 0:
+- fp = open(tmpfile, 'r')
+- multiarch_path_component = fp.readline().strip()
+- _add_directory(self.compiler.library_dirs,
+- '/usr/lib/' + multiarch_path_component)
+- _add_directory(self.compiler.include_dirs,
+- '/usr/include/' + multiarch_path_component)
+- finally:
+- os.unlink(tmpfile)
+-
+ setup(
+ name=NAME,
+ version=VERSION,
diff --git a/dev-python/pillow/files/pillow-2.0.0-libm_linking.patch b/dev-python/pillow/files/pillow-2.0.0-libm_linking.patch
new file mode 100644
index 00000000000..35d1df5a406
--- /dev/null
+++ b/dev-python/pillow/files/pillow-2.0.0-libm_linking.patch
@@ -0,0 +1,20 @@
+--- setup.py
++++ setup.py
+@@ -197,7 +197,7 @@
+ for file in _LIB_IMAGING:
+ files.append(os.path.join("libImaging", file + ".c"))
+
+- libs = []
++ libs = ["m"]
+ defs = []
+ if feature.jpeg:
+ libs.append(feature.jpeg)
+@@ -249,7 +249,7 @@
+ libraries=[feature.tcl, feature.tk]))
+
+ if os.path.isfile("_imagingmath.c"):
+- exts.append(Extension("_imagingmath", ["_imagingmath.c"]))
++ exts.append(Extension("_imagingmath", ["_imagingmath.c"], libraries=["m"]))
+
+ self.extensions[:] = exts
+
diff --git a/dev-python/pillow/files/pillow-2.8.1-ico-backport.patch b/dev-python/pillow/files/pillow-2.8.1-ico-backport.patch
new file mode 100644
index 00000000000..a4214f332ee
--- /dev/null
+++ b/dev-python/pillow/files/pillow-2.8.1-ico-backport.patch
@@ -0,0 +1,36 @@
+ PIL/IcoImagePlugin.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/PIL/IcoImagePlugin.py b/PIL/IcoImagePlugin.py
+index b4817db..dff4efc 100644
+--- a/PIL/IcoImagePlugin.py
++++ b/PIL/IcoImagePlugin.py
+@@ -49,7 +49,7 @@ def _save(im, fp, filename):
+ filter(lambda x: False if (x[0] > width or x[1] > height or
+ x[0] > 255 or x[1] > 255) else True, sizes)
+ sizes = sorted(sizes, key=lambda x: x[0])
+- fp.write(struct.pack("H", len(sizes))) # idCount(2)
++ fp.write(struct.pack("<H", len(sizes))) # idCount(2)
+ offset = fp.tell() + len(sizes)*16
+ for size in sizes:
+ width, height = size
+@@ -58,7 +58,7 @@ def _save(im, fp, filename):
+ fp.write(b"\0") # bColorCount(1)
+ fp.write(b"\0") # bReserved(1)
+ fp.write(b"\0\0") # wPlanes(2)
+- fp.write(struct.pack("H", 32)) # wBitCount(2)
++ fp.write(struct.pack("<H", 32)) # wBitCount(2)
+
+ image_io = BytesIO()
+ tmp = im.copy()
+@@ -67,8 +67,8 @@ def _save(im, fp, filename):
+ image_io.seek(0)
+ image_bytes = image_io.read()
+ bytes_len = len(image_bytes)
+- fp.write(struct.pack("I", bytes_len)) # dwBytesInRes(4)
+- fp.write(struct.pack("I", offset)) # dwImageOffset(4)
++ fp.write(struct.pack("<I", bytes_len)) # dwBytesInRes(4)
++ fp.write(struct.pack("<I", offset)) # dwImageOffset(4)
+ current = fp.tell()
+ fp.seek(offset)
+ fp.write(image_bytes)
diff --git a/dev-python/pillow/files/pillow-freetype-2.5.1.patch b/dev-python/pillow/files/pillow-freetype-2.5.1.patch
new file mode 100644
index 00000000000..5e949e4f241
--- /dev/null
+++ b/dev-python/pillow/files/pillow-freetype-2.5.1.patch
@@ -0,0 +1,28 @@
+From c6040f618d8f2706a7b46d1cdf37d1a587f9701f Mon Sep 17 00:00:00 2001
+From: Andrew Stromnov <stromnov@gmail.com>
+Date: Thu, 28 Nov 2013 16:58:43 +0400
+Subject: [PATCH] fix compiling with FreeType 2.5.1
+
+---
+ _imagingft.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/_imagingft.c b/_imagingft.c
+index 47d50bd..f19555b 100644
+--- a/_imagingft.c
++++ b/_imagingft.c
+@@ -59,7 +59,11 @@ struct {
+ const char* message;
+ } ft_errors[] =
+
++#if defined(USE_FREETYPE_2_1)
++#include FT_ERRORS_H
++#else
+ #include <freetype/fterrors.h>
++#endif
+
+ /* -------------------------------------------------------------------- */
+ /* font objects */
+--
+1.8.5.1
+
diff --git a/dev-python/pillow/metadata.xml b/dev-python/pillow/metadata.xml
new file mode 100644
index 00000000000..848581db03a
--- /dev/null
+++ b/dev-python/pillow/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="webp">Enable support for webp image format.</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">Pillow</remote-id>
+ <remote-id type="github">python-imaging/Pillow</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pillow/pillow-2.5.3-r1.ebuild b/dev-python/pillow/pillow-2.5.3-r1.ebuild
new file mode 100644
index 00000000000..23478dfcdb9
--- /dev/null
+++ b/dev-python/pillow/pillow-2.5.3-r1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils
+
+MY_PN=Pillow
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python Imaging Library (fork)"
+HOMEPAGE="https://github.com/python-imaging/Pillow https://pypi.python.org/pypi/Pillow"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc examples jpeg jpeg2k lcms scanner test tiff tk truetype webp zlib"
+REQUIRED_USE="test? ( jpeg )"
+
+RDEPEND="
+ truetype? ( media-libs/freetype:2= )
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ lcms? ( media-libs/lcms:2= )
+ scanner? ( media-gfx/sane-backends:0= )
+ tiff? ( media-libs/tiff:0= )
+ webp? ( media-libs/libwebp:0= )
+ zlib? ( sys-libs/zlib:0= )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx
+ dev-python/sphinx-better-theme
+ )"
+RDEPEND+=" !dev-python/imaging"
+
+S="${WORKDIR}/${MY_P}"
+
+# See _render and _clean in Tests/test_imagefont.py
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Disable all the stuff we don't want.
+ local f
+ for f in jpeg lcms tiff tk webp zlib; do
+ if ! use ${f}; then
+ sed -i -e "s:feature.${f} =:& None #:" setup.py || die
+ fi
+ done
+ if ! use truetype; then
+ sed -i -e 's:feature.freetype =:& None #:' setup.py || die
+ fi
+ if ! use jpeg2k; then
+ sed -i -e 's:feature.jpeg2000 =:& None #:' setup.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+# XXX: split into two ebuilds?
+wrap_phase() {
+ "${@}"
+
+ if use scanner; then
+ cd Sane || die
+ "${@}"
+ fi
+}
+
+python_compile() {
+ wrap_phase distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}"
+ nosetests -v Tests/test_*.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install() {
+ python_doheader libImaging/{Imaging.h,ImPlatform.h}
+
+ wrap_phase distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( Scripts/. )
+
+ distutils-r1_python_install_all
+
+ if use scanner; then
+ docinto sane
+ dodoc Sane/{CHANGES,README.rst,sanedoc.txt}
+ fi
+
+ if use examples && use scanner; then
+ docinto examples/sane
+ dodoc Sane/demo_*.py
+ fi
+}
diff --git a/dev-python/pillow/pillow-2.8.1.ebuild b/dev-python/pillow/pillow-2.8.1.ebuild
new file mode 100644
index 00000000000..a8764f99d7b
--- /dev/null
+++ b/dev-python/pillow/pillow-2.8.1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils
+
+MY_PN=Pillow
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python Imaging Library (fork)"
+HOMEPAGE="https://github.com/python-imaging/Pillow https://pypi.python.org/pypi/Pillow"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc examples jpeg jpeg2k lcms test tiff tk truetype webp zlib"
+
+REQUIRED_USE="test? ( jpeg )"
+
+RDEPEND="
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ lcms? ( media-libs/lcms:2= )
+ tiff? ( media-libs/tiff:0= )
+ truetype? ( media-libs/freetype:2= )
+ webp? ( media-libs/libwebp:0= )
+ zlib? ( sys-libs/zlib:0= )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-better-theme[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ "
+RDEPEND+=" !dev-python/imaging"
+
+S="${WORKDIR}/${MY_P}"
+
+# See _render and _clean in Tests/test_imagefont.py
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${P}-ico-backport.patch )
+
+python_prepare_all() {
+ # Disable all the stuff we don't want.
+ local f
+ for f in jpeg lcms tiff tk webp zlib; do
+ if ! use ${f}; then
+ sed -i -e "s:feature.${f} =:& None #:" setup.py || die
+ fi
+ done
+ if ! use truetype; then
+ sed -i -e 's:feature.freetype =:& None #:' setup.py || die
+ fi
+ if ! use jpeg2k; then
+ sed -i -e 's:feature.jpeg2000 =:& None #:' setup.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}"
+ nosetests -vx Tests/test_*.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install() {
+ python_doheader libImaging/{Imaging.h,ImPlatform.h}
+
+ distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( Scripts/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pillow/pillow-2.8.2.ebuild b/dev-python/pillow/pillow-2.8.2.ebuild
new file mode 100644
index 00000000000..4d30a97cbaa
--- /dev/null
+++ b/dev-python/pillow/pillow-2.8.2.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils
+
+MY_PN=Pillow
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python Imaging Library (fork)"
+HOMEPAGE="https://github.com/python-imaging/Pillow https://pypi.python.org/pypi/Pillow"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc examples jpeg jpeg2k lcms test tiff tk truetype webp zlib"
+
+REQUIRED_USE="test? ( jpeg )"
+
+RDEPEND="
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ lcms? ( media-libs/lcms:2= )
+ tiff? ( media-libs/tiff:0= )
+ truetype? ( media-libs/freetype:2= )
+ webp? ( media-libs/libwebp:0= )
+ zlib? ( sys-libs/zlib:0= )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-better-theme[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ "
+RDEPEND+=" !dev-python/imaging"
+
+S="${WORKDIR}/${MY_P}"
+
+# See _render and _clean in Tests/test_imagefont.py
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${PN}-2.8.1-ico-backport.patch )
+
+python_prepare_all() {
+ # Disable all the stuff we don't want.
+ local f
+ for f in jpeg lcms tiff tk webp zlib; do
+ if ! use ${f}; then
+ sed -i -e "s:feature.${f} =:& None #:" setup.py || die
+ fi
+ done
+ if ! use truetype; then
+ sed -i -e 's:feature.freetype =:& None #:' setup.py || die
+ fi
+ if ! use jpeg2k; then
+ sed -i -e 's:feature.jpeg2000 =:& None #:' setup.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}"
+ nosetests -vx Tests/test_*.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install() {
+ python_doheader libImaging/{Imaging.h,ImPlatform.h}
+
+ distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( Scripts/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pillow/pillow-2.9.0.ebuild b/dev-python/pillow/pillow-2.9.0.ebuild
new file mode 100644
index 00000000000..a5e8507fe09
--- /dev/null
+++ b/dev-python/pillow/pillow-2.9.0.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+PYTHON_REQ_USE='tk?'
+
+inherit distutils-r1 eutils
+
+MY_PN=Pillow
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python Imaging Library (fork)"
+HOMEPAGE="https://github.com/python-imaging/Pillow https://pypi.python.org/pypi/Pillow"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc examples jpeg jpeg2k lcms test tiff tk truetype webp zlib"
+
+REQUIRED_USE="test? ( jpeg )"
+
+RDEPEND="
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ lcms? ( media-libs/lcms:2= )
+ tiff? ( media-libs/tiff:0= )
+ truetype? ( media-libs/freetype:2= )
+ webp? ( media-libs/libwebp:0= )
+ zlib? ( sys-libs/zlib:0= )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-better-theme[${PYTHON_USEDEP}]
+ >=dev-python/sphinx_rtd_theme-0.1[${PYTHON_USEDEP}]
+ <dev-python/sphinx_rtd_theme-0.2[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ "
+RDEPEND+=" !dev-python/imaging"
+
+S="${WORKDIR}/${MY_P}"
+
+# See _render and _clean in Tests/test_imagefont.py
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Disable all the stuff we don't want.
+ local f
+ for f in jpeg lcms tiff tk webp zlib; do
+ if ! use ${f}; then
+ sed -i -e "s:feature.${f} =:& None #:" setup.py || die
+ fi
+ done
+ if ! use truetype; then
+ sed -i -e 's:feature.freetype =:& None #:' setup.py || die
+ fi
+ if ! use jpeg2k; then
+ sed -i -e 's:feature.jpeg2000 =:& None #:' setup.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}"
+ nosetests -vx Tests/test_*.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install() {
+ python_doheader libImaging/{Imaging.h,ImPlatform.h}
+
+ distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( Scripts/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest
new file mode 100644
index 00000000000..e49ecf36d85
--- /dev/null
+++ b/dev-python/pip/Manifest
@@ -0,0 +1,7 @@
+DIST pip-1.5.6.tar.gz 938120 SHA256 b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c SHA512 cecd1da900e95bf3e6164e6d0c8c989e8ce17ef892beb9581a567857fe69dd3490b45d366cbb8e3bc84cebcf62ecf34420bcc1fae3fd8cf448927438ae257b68 WHIRLPOOL d6b77000ec465f8ba15db9dd4ce23c491937d5c7ee8fa148cf1cc88d59e972ad0a4a86adeca0d6b5227e97e83c16ae6d14b76976b605db572c08ac7019a02e6d
+DIST pip-6.0.8.tar.gz 1200024 SHA256 0d58487a1b7f5be2e5e965c11afbea1dc44ecec8069de03491a4d0d6c85f4551 SHA512 1e3458d184655e43955881054c8e9b0de4fe57c833bb6e70bf6e67ec834c6ab2dc5d0fd8e4c8f263c790bf58e3a20f302825f1ea553801fe9cc0c653bc95a00d WHIRLPOOL 2569c61f9c77bb83f8cf150b05faa0aa2fce623705a497046afe26ec7dc0ca14871fc2b5a210de89ff6c30ff35af248a6e48636978c557a9ec4552bf3e421d4b
+DIST pip-6.1.1.tar.gz 1051205 SHA256 89f3b626d225e08e7f20d85044afa40f612eb3284484169813dc2d0631f2a556 SHA512 e7d2e003ec60fce5a75a6a23711d7f9b155e898faebcf55f3abdd912ef513f4e0cf43daca8f9da7179a7a4efe6e4a625a532d051349818847df1364eb5b326de WHIRLPOOL 5db07d4ae3bc213cd9d137a4c2bd32ca6eba1044bba3a461ad319b57e77196c1dd7b7c358a95b52cb0cd3fcaa41c3849d0f50227cf0aecd31eac106f6f182e3d
+DIST pip-7.0.0.tar.gz 1053302 SHA256 7b46bfc1b95494731de306a688e2a7bc056d7fa7ad27e026908fb2ae67fed23d SHA512 85bbdca4376de98ee356d0edfb95e1c8ae7ca0fc6643cb6826efbef3c4c63018763b72febe4061d4fc024aae6bf0303fab2f8376ce8cedf0e658471d66568e1e WHIRLPOOL f700acd25ef00d024c6e50fa3b86050e3d5cfb4add15ba635524bcbb776ae41d861c4e81232a816e9c36129784015fe4f4caeb4c62ccd1982f5bd7dd2f47aab9
+DIST pip-7.0.1.tar.gz 1053513 SHA256 cfec177552fdd0b2d12b72651c8e874f955b4c62c1c2c9f2588cbdc1c0d0d416 SHA512 cade5fbcd45e888330a1f78409bba406e009efe819701fed8c4e4abecd0ee1c5099c59290636f961d3b7e8266e1952fa586a5a290aeef13d90359585a7ea6600 WHIRLPOOL c77192dcd25cd7c9433e6281a8b424aa1745feae9cbbd3fe1a251ae3bedbd95ee623b8b82e210bcc4555e310ff3317331b94ce566c9f9decba990d898eb456ce
+DIST pip-7.0.3.tar.gz 1054215 SHA256 b4c598825a6f6dc2cac65968feb28e6be6c1f7f1408493c60a07eaa731a0affd SHA512 b35efe45b4aff1a061f41561de7333415c081d9cbd2ee2eccf7af882ddaec643ec766d0f789b49bd94c961c60c6c2e420b31554f112b427bb3af690f4d00e731 WHIRLPOOL 23c45a70a87c61a3c01525abd46f877ec164e70c28e10aa3099590bf0c8421548828cb08f660016a1bdc73e535c18ebc85b734307b9a2f2e7c230518c574839e
+DIST pip-7.1.0.tar.gz 1049267 SHA256 d5275ba3221182a5dd1b6bcfbfc5ec277fb399dd23226d6fa018048f7e0f10f2 SHA512 abda274dfe5f81e121bef9b3bf7a64218f72786037c17b0d99f36c954b09d6b5200a8b78f43de4739c813628a49cbb9d300e869766958e4ed177cf9caad8d511 WHIRLPOOL 35b2953c00a2ff4838f5f550016292b125f06d10f90736b96efc2240dadeebbba8be3d1b860efbe9989bffd51f5a6c5fa43234615b513cdc1aa900df8eb25f2a
diff --git a/dev-python/pip/files/pip-6.0.2-disable-version-check.patch b/dev-python/pip/files/pip-6.0.2-disable-version-check.patch
new file mode 100644
index 00000000000..a192c228a99
--- /dev/null
+++ b/dev-python/pip/files/pip-6.0.2-disable-version-check.patch
@@ -0,0 +1,14 @@
+Don't check PyPI for new versions of pip by default, updates will occur when
+new releases are added to the tree.
+
+--- pip-6.0.2/pip/cmdoptions.py
++++ pip-6.0.2/pip/cmdoptions.py
+@@ -404,7 +404,7 @@
+ "--disable-pip-version-check",
+ dest="disable_pip_version_check",
+ action="store_true",
+- default=False,
++ default=True,
+ help="Don't periodically check PyPI to determine whether a new version "
+ "of pip is available for download.")
+
diff --git a/dev-python/pip/metadata.xml b/dev-python/pip/metadata.xml
new file mode 100644
index 00000000000..3181c2c8b4a
--- /dev/null
+++ b/dev-python/pip/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pip</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pip/pip-1.5.6.ebuild b/dev-python/pip/pip-1.5.6.ebuild
new file mode 100644
index 00000000000..27c1fd8cfde
--- /dev/null
+++ b/dev-python/pip/pip-1.5.6.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="http://www.pip-installer.org/ http://pypi.python.org/pypi/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE=""
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ ${EPYTHON} pip/runner.py completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${EPYTHON} pip/runner.py completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-6.0.8.ebuild b/dev-python/pip/pip-6.0.8.ebuild
new file mode 100644
index 00000000000..efadc808988
--- /dev/null
+++ b/dev-python/pip/pip-6.0.8.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="http://www.pip-installer.org/ http://pypi.python.org/pypi/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE=""
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${PN}-6.0.2-disable-version-check.patch )
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ ${EPYTHON} pip/__init__.py completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${EPYTHON} pip/__init__.py completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-6.1.1.ebuild b/dev-python/pip/pip-6.1.1.ebuild
new file mode 100644
index 00000000000..04aeedac8e1
--- /dev/null
+++ b/dev-python/pip/pip-6.1.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="http://www.pip-installer.org/ http://pypi.python.org/pypi/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${PN}-6.0.2-disable-version-check.patch )
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ ${EPYTHON} pip/__init__.py completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${EPYTHON} pip/__init__.py completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-7.0.0.ebuild b/dev-python/pip/pip-7.0.0.ebuild
new file mode 100644
index 00000000000..c20b537e000
--- /dev/null
+++ b/dev-python/pip/pip-7.0.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="http://www.pip-installer.org/ http://pypi.python.org/pypi/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${PN}-6.0.2-disable-version-check.patch )
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ ${EPYTHON} pip/__init__.py completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${EPYTHON} pip/__init__.py completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-7.0.1.ebuild b/dev-python/pip/pip-7.0.1.ebuild
new file mode 100644
index 00000000000..c20b537e000
--- /dev/null
+++ b/dev-python/pip/pip-7.0.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="http://www.pip-installer.org/ http://pypi.python.org/pypi/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${PN}-6.0.2-disable-version-check.patch )
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ ${EPYTHON} pip/__init__.py completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${EPYTHON} pip/__init__.py completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-7.0.3.ebuild b/dev-python/pip/pip-7.0.3.ebuild
new file mode 100644
index 00000000000..c20b537e000
--- /dev/null
+++ b/dev-python/pip/pip-7.0.3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="http://www.pip-installer.org/ http://pypi.python.org/pypi/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${PN}-6.0.2-disable-version-check.patch )
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ ${EPYTHON} pip/__init__.py completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${EPYTHON} pip/__init__.py completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-7.1.0.ebuild b/dev-python/pip/pip-7.1.0.ebuild
new file mode 100644
index 00000000000..c20b537e000
--- /dev/null
+++ b/dev-python/pip/pip-7.1.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="http://www.pip-installer.org/ http://pypi.python.org/pypi/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${PN}-6.0.2-disable-version-check.patch )
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ ${EPYTHON} pip/__init__.py completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${EPYTHON} pip/__init__.py completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pivy/Manifest b/dev-python/pivy/Manifest
new file mode 100644
index 00000000000..8e2a325bb70
--- /dev/null
+++ b/dev-python/pivy/Manifest
@@ -0,0 +1 @@
+DIST pivy-0.5_alpha20110303.tar.xz 6289744 SHA256 1df886b4976cde03aa528ccf05f16e42e0baff6a762b3284c1551d53705498b6 SHA512 fd0e90daa3efb3edcbed2a29dc218dadd45b728529de1ba278b3be11c3b4cf39832200babc426ca7ba688440e25a6865d38a04f3470dc5f220700fd3fef9f47f WHIRLPOOL 58d76defc763317eb592d1ce8370abdfbd7d84e2f06f8345afb71c1bcb0671b9c364dcebc0568f2ff5d7c256d845a957274b4b26f83511dc839c63ed9192f70b
diff --git a/dev-python/pivy/metadata.xml b/dev-python/pivy/metadata.xml
new file mode 100644
index 00000000000..59acc2cc580
--- /dev/null
+++ b/dev-python/pivy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>xmw@gentoo.org</email>
+<name>Michael Weber</name>
+</maintainer>
+</pkgmetadata>
+
diff --git a/dev-python/pivy/pivy-0.5_alpha20110303-r1.ebuild b/dev-python/pivy/pivy-0.5_alpha20110303-r1.ebuild
new file mode 100644
index 00000000000..a57d998acc2
--- /dev/null
+++ b/dev-python/pivy/pivy-0.5_alpha20110303-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Coin3d binding for Python"
+HOMEPAGE="http://pivy.coin3d.org/"
+SRC_URI="http://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.xz"
+#identical to latest debian tarball at
+# http://ftp.de.debian.org/debian/pool/main/p/pivy/pivy_0.5.0~v609hg.orig.tar.bz2
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ media-libs/coin
+ >=media-libs/SoQt-1.5.0"
+DEPEND="${RDEPEND}
+ dev-lang/swig"
diff --git a/dev-python/pivy/pivy-9999.ebuild b/dev-python/pivy/pivy-9999.ebuild
new file mode 100644
index 00000000000..792e0ff63fa
--- /dev/null
+++ b/dev-python/pivy/pivy-9999.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit mercurial distutils-r1
+
+DESCRIPTION="Coin3d binding for Python"
+HOMEPAGE="http://pivy.coin3d.org/"
+EHG_REPO_URI="http://hg.sim.no/Pivy/default"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND="
+ media-libs/coin
+ >=media-libs/SoQt-1.5.0"
+DEPEND="${RDEPEND}
+ dev-lang/swig"
diff --git a/dev-python/pkgconfig/Manifest b/dev-python/pkgconfig/Manifest
new file mode 100644
index 00000000000..89265db518a
--- /dev/null
+++ b/dev-python/pkgconfig/Manifest
@@ -0,0 +1 @@
+DIST pkgconfig-1.1.0.tar.gz 3887 SHA256 709daaf077aa2b33bedac12706373412c3683576a43013bbaa529fc2769d80df SHA512 77a551ca797723682c06a2e153ec1fde9468b655a108bebd666e8439f62f958a4edc8c916755ec0913c815b7c80e763b838005d9ef6d833ff4c4ad7c298a7957 WHIRLPOOL 5aeecb80bb58e208266c49c6bf374452e069af01f1890965ba125ff73467ebac0e6ba8e62c0c5492afd11ec3e152ca808dfb603dc6e0073cd0ac412254fb015a
diff --git a/dev-python/pkgconfig/metadata.xml b/dev-python/pkgconfig/metadata.xml
new file mode 100644
index 00000000000..95a000d2dd0
--- /dev/null
+++ b/dev-python/pkgconfig/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pkgconfig</remote-id>
+ <remote-id type="github">matze/pkgconfig</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pkgconfig/pkgconfig-1.1.0.ebuild b/dev-python/pkgconfig/pkgconfig-1.1.0.ebuild
new file mode 100644
index 00000000000..d30c991e84a
--- /dev/null
+++ b/dev-python/pkgconfig/pkgconfig-1.1.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Interface Python with pkg-config"
+HOMEPAGE="https://pypi.python.org/pypi/pkgconfig/ http://github.com/matze/pkgconfig"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/nose-1[${PYTHON_USEDEP}] )
+"
+
+python_prepare_all() {
+ sed -e '/nose/d' -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pkginfo/Manifest b/dev-python/pkginfo/Manifest
new file mode 100644
index 00000000000..938952673fb
--- /dev/null
+++ b/dev-python/pkginfo/Manifest
@@ -0,0 +1,2 @@
+DIST pkginfo-1.0.tar.gz 24802 SHA256 27b171632c6894ae5d0d5677678dfc4e9b86f3b422eb3db1cc62960b1c9886f0 SHA512 1b0f9ed60b53202deb729fa9261059b7fe1b3e4561f27ad51152e5077c45dd4f47fcb81da45cd2e509b046e9bb05652533ae90de31f93831743a9d35c938b14d WHIRLPOOL 312e3bac0a8e4740a40484f9e77a137479e339b6c472409e890d3ba13059a6637c8c2bb0d8bd4496364d98ff3ac1fe7272d4750560c4cdc1d9735187ede0cd5c
+DIST pkginfo-1.2.1.tar.gz 31072 SHA256 ad3f6dfe8a831f96a7b56a588ca874137ca102cc6b79fc9b0a1c3b7ab7320f3c SHA512 8a530a164befdcbc6f1f550e106880e14e9d2c762a5e1055f926ccf0228d9e2312f11598454ef015e97dccb78ac7aeb7309f34279590cd318c19c2bd9a29ed2a WHIRLPOOL 1ab43db82665e0abed88bf59115df726475ba7c611b077803721cd6bfcfcc81120c7a996e8945e74ad18c1ec7f6c9e5a1396df37d4f2c0eca24924f4c22e9ee3
diff --git a/dev-python/pkginfo/metadata.xml b/dev-python/pkginfo/metadata.xml
new file mode 100644
index 00000000000..4bd145235c7
--- /dev/null
+++ b/dev-python/pkginfo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pkginfo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pkginfo/pkginfo-1.0.ebuild b/dev-python/pkginfo/pkginfo-1.0.ebuild
new file mode 100644
index 00000000000..bc94dba109c
--- /dev/null
+++ b/dev-python/pkginfo/pkginfo-1.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides an API for querying the distutils metadata written in a PKG-INFO file"
+HOMEPAGE="http://pypi.python.org/pypi/pkginfo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+LICENSE="MIT"
+SLOT="0"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ sed -e 's:SPHINXBUILD = sphinx-build:SPHINXBUILD = /usr/bin/sphinx-build:' \
+ -i docs/Makefile || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ pushd pkginfo/tests/ > /dev/null
+ for test in test_*.py; do
+ ${PYTHON} ${test} || die "${test} failed with Python ${PYTHON_ABI}"
+ if [[ $? ]]; then
+ einfo "Test ${test} successful"
+ else
+ die "Test ${test} failed under ${EPYTHON}"
+ fi
+ done
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ use examples && local EXAMPLES=( docs/examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pkginfo/pkginfo-1.2.1.ebuild b/dev-python/pkginfo/pkginfo-1.2.1.ebuild
new file mode 100644
index 00000000000..45d92a2a1a9
--- /dev/null
+++ b/dev-python/pkginfo/pkginfo-1.2.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides an API for querying the distutils metadata written in a PKG-INFO file"
+HOMEPAGE="http://pypi.python.org/pypi/pkginfo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+IUSE="doc examples"
+
+LICENSE="MIT"
+SLOT="0"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ sed -e 's:SPHINXBUILD = sphinx-build:SPHINXBUILD = /usr/bin/sphinx-build:' \
+ -i docs/Makefile || die
+
+ # Disable tests that seek to read the version of pkginfo from an installed state
+ # These test will still become installed and testable once installed
+ sed -e 's:test_w_directory_no_EGG_INFO:_&:' \
+ -e 's:test_w_module_and_metadata_version:_&:' \
+ -e 's:test_w_package_name_and_metadata_version:_&:' \
+ -i pkginfo/tests/test_utils.py || die
+ sed -e 's:test_ctor_w_path_nested_egg_info:_&:' \
+ -i pkginfo/tests/test_develop.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Test ${test} failed under ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ use examples && local EXAMPLES=( docs/examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pkipplib/Manifest b/dev-python/pkipplib/Manifest
new file mode 100644
index 00000000000..57b94e65e23
--- /dev/null
+++ b/dev-python/pkipplib/Manifest
@@ -0,0 +1 @@
+DIST pkipplib-0.07.tar.gz 18704 SHA256 2a2c8fd9fda3d31c30cd48f93d22fe419ec6dc5de53c93183e66fbe579c1908b SHA512 223aaf7dcffa3a435ae9a407c1f7c31cd69a15f8b12f6a6d24f3ea589816b1e641cb1efbdf2ea0415e36d0df07d8dae83a55604e7f31d2f1bd7827a3f4724a2e WHIRLPOOL c672c5150c46d18eea0ed236fbda29b34bdde0a9e5e104d80d58639ed4fc133dd3fcd85823e3301bc8be09cf10dfd404abb74cd2b66a469922aa658211c03045
diff --git a/dev-python/pkipplib/metadata.xml b/dev-python/pkipplib/metadata.xml
new file mode 100644
index 00000000000..ad10d14bf48
--- /dev/null
+++ b/dev-python/pkipplib/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
+
diff --git a/dev-python/pkipplib/pkipplib-0.07-r1.ebuild b/dev-python/pkipplib/pkipplib-0.07-r1.ebuild
new file mode 100644
index 00000000000..70e26f6492a
--- /dev/null
+++ b/dev-python/pkipplib/pkipplib-0.07-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pkipplib is a Python module which parses IPP requests"
+HOMEPAGE="http://www.pykota.com/software/pkipplib/"
+SRC_URI="http://www.pykota.com/software/pkipplib/download/tarballs/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/placefinder/Manifest b/dev-python/placefinder/Manifest
new file mode 100644
index 00000000000..c8d11628256
--- /dev/null
+++ b/dev-python/placefinder/Manifest
@@ -0,0 +1 @@
+DIST placefinder-0.3.tar.gz 2632 SHA256 9b42756d46566b681565f352c51fb8e2793338ffe732c56e8d2d500559780d49 SHA512 dcff0ec0e6a1ca361a726bd5996095855d289f0780238aa0371835821294799f13c49919e0966495a9f77b5ea18b3be9deb5d2b5efd6ce0cf8803f13e22f6249 WHIRLPOOL ffb09bafb45c566a300e06704cb672eca5e440cbaaefe44f34a2dce62aa100201fe3d40d5e66605c78974e829464f9a72db0a344268c8e652eeb25eca01c643d
diff --git a/dev-python/placefinder/metadata.xml b/dev-python/placefinder/metadata.xml
new file mode 100644
index 00000000000..7f97fccc20f
--- /dev/null
+++ b/dev-python/placefinder/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">placefinder-py</remote-id>
+ <remote-id type="github">adampresley/placefinder-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/placefinder/placefinder-0.3.ebuild b/dev-python/placefinder/placefinder-0.3.ebuild
new file mode 100644
index 00000000000..4e1ff4ae005
--- /dev/null
+++ b/dev-python/placefinder/placefinder-0.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN}"-py
+
+DESCRIPTION="Yahoo! BOSS PlaceFinder Python Client"
+HOMEPAGE=" https://github.com/adampresley/placefinder-py"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_PN}-${PV}"
diff --git a/dev-python/platinfo/Manifest b/dev-python/platinfo/Manifest
new file mode 100644
index 00000000000..bd6ba8774b0
--- /dev/null
+++ b/dev-python/platinfo/Manifest
@@ -0,0 +1 @@
+DIST platinfo-0.15.0.zip 31022 SHA256 57159fddb7e338576f34cd644ffe7793c61d11a3aa5ecaa3e4f5e46ebed46757 SHA512 504b25bf546a61965cca60b51418dcd6b110a43f9b8c6ad79841bbcbc2502c9d3e50beeb40ac9cc2f0e4d3a3f1c1923718aa1df2dd64091c2d8249bf819fc122 WHIRLPOOL b38b789818dfa8fbf63a25b395236fb1910547cb47f485526f3524bd718a09cda4b2fa391eb45cc5ca4b5bf8215f891bda379373f04cb8b1f633cc40c53994ed
diff --git a/dev-python/platinfo/metadata.xml b/dev-python/platinfo/metadata.xml
new file mode 100644
index 00000000000..4db3a662b0f
--- /dev/null
+++ b/dev-python/platinfo/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aidecoe@gentoo.org</email>
+ <name>Amadeusz Żołnowski</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a small Python module that determines and returns standardized
+ names for platforms, where the "standard" is Trent Mick's reasoning :)
+ from experience building ActivePython on a fairly large number of
+ platforms.
+
+ The driving goal is to provide platform names that are:
+ - relatively short
+ - readable (as much as possible making matching the given name to an
+ actually machine self-explanatory)
+ - be capable enough to produce all names needed to distinguish all
+ platform-specific application builds
+ - generally safe for usage in filenames
+ - not ugly (e.g. "MSWin32" is ugly)
+ </longdescription>
+</pkgmetadata>
+
diff --git a/dev-python/platinfo/platinfo-0.15.0-r1.ebuild b/dev-python/platinfo/platinfo-0.15.0-r1.ebuild
new file mode 100644
index 00000000000..275fc879d60
--- /dev/null
+++ b/dev-python/platinfo/platinfo-0.15.0-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Determines and returns consistent names for platforms"
+HOMEPAGE="http://code.google.com/p/platinfo/"
+SRC_URI="http://platinfo.googlecode.com/files/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/ply/Manifest b/dev-python/ply/Manifest
new file mode 100644
index 00000000000..164ee420f94
--- /dev/null
+++ b/dev-python/ply/Manifest
@@ -0,0 +1,2 @@
+DIST ply-3.4.tar.gz 138342 SHA256 af435f11b7bdd69da5ffbc3fecb8d70a7073ec952e101764c88720cdefb2546b SHA512 6f6ee528393ff83eff2530ca468caf12e4c89b817a38302738597f1478dd41758036c8f32f88f60d1a26e70d9cfceab5530ddcfd3f058c1ee722be95c27e6bcc WHIRLPOOL f2f58e2d0c1170d35554999ca643c102d6821a7535b5782ee7317a4100cf56b5648d643c274cefd66a7b484ae3a9e952bcf4b98d50e7fd1ff220853f982a2f4c
+DIST ply-3.6.tar.gz 281690 SHA256 61367b9eb2f4b819f69ea116750305270f1df8859992c9e356d6a851f25a4b47 SHA512 1a408d7cd4cdc9d747154623672e6baaf37ad2190cb9d6d6a7c1e1cc3cb40f15547734441b8fc99ecd67d7804d767576bdf0ed219cc669bf3d0df37498c55c55 WHIRLPOOL 2868a0046519750a446b683a85966650407afc1ea32ab6d8209b46b280529ca6aa8c47816782020b4c90f6f92d4733dd07565b6518e20c7a036d743edc629496
diff --git a/dev-python/ply/files/3.6-lextab-None.patch b/dev-python/ply/files/3.6-lextab-None.patch
new file mode 100644
index 00000000000..cab0a466d66
--- /dev/null
+++ b/dev-python/ply/files/3.6-lextab-None.patch
@@ -0,0 +1,49 @@
+From dbf122652d38ba03ff9f9fe4aa9bee3693e6775f Mon Sep 17 00:00:00 2001
+From: David Beazley <dave@dabeaz.com>
+Date: Fri, 8 May 2015 10:10:55 -0500
+Subject: [PATCH] Minor fix to account for bad None arguments for
+ tabmodule/lextab
+
+---
+ ply/lex.py | 4 ++++
+ ply/yacc.py | 5 ++++-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/ply/lex.py b/ply/lex.py
+index ed1e2ed..772325c 100644
+--- a/ply/lex.py
++++ b/ply/lex.py
+@@ -859,6 +859,10 @@ def validate_module(self, module):
+ # -----------------------------------------------------------------------------
+ def lex(module=None, object=None, debug=False, optimize=False, lextab='lextab',
+ reflags=0, nowarn=False, outputdir=None, debuglog=None, errorlog=None):
++
++ if lextab is None:
++ lextab = 'lextab'
++
+ global lexer
+
+ ldict = None
+diff --git a/ply/yacc.py b/ply/yacc.py
+index e0b4faf..eb02cc2 100644
+--- a/ply/yacc.py
++++ b/ply/yacc.py
+@@ -2709,7 +2709,7 @@ def write_table(self, tabmodule, outputdir='', signature=''):
+ _lr_method = %r
+
+ _lr_signature = %r
+- ''' % (filename, __tabversion__, self.lr_method, signature))
++ ''' % (os.path.basename(filename), __tabversion__, self.lr_method, signature))
+
+ # Change smaller to 0 to go back to original tables
+ smaller = 1
+@@ -3183,6 +3183,9 @@ def yacc(method='LALR', debug=yaccdebug, module=None, tabmodule=tab_module, star
+ check_recursion=True, optimize=False, write_tables=True, debugfile=debug_file,
+ outputdir=None, debuglog=None, errorlog=None, picklefile=None):
+
++ if tabmodule is None:
++ tabmodule = tab_module
++
+ # Reference to the parsing method of the last built parser
+ global parse
+
diff --git a/dev-python/ply/files/3.6-picklefile-IOError.patch b/dev-python/ply/files/3.6-picklefile-IOError.patch
new file mode 100644
index 00000000000..85b39494a6f
--- /dev/null
+++ b/dev-python/ply/files/3.6-picklefile-IOError.patch
@@ -0,0 +1,24 @@
+From f50768b0b2176998675e728d84ac05f0eef19614 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sun, 17 May 2015 12:14:16 -0400
+Subject: [PATCH] Catch/ignore IOError when opening picklefile for reading in
+ yacc.yacc()
+
+Should resolve #66.
+---
+ ply/yacc.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/ply/yacc.py b/ply/yacc.py
+index eb02cc2..2835c90 100644
+--- a/ply/yacc.py
++++ b/ply/yacc.py
+@@ -3265,6 +3265,8 @@ def yacc(method='LALR', debug=yaccdebug, module=None, tabmodule=tab_module, star
+ errorlog.warning(str(e))
+ except ImportError:
+ pass
++ except IOError:
++ pass
+
+ if debuglog is None:
+ if debug:
diff --git a/dev-python/ply/metadata.xml b/dev-python/ply/metadata.xml
new file mode 100644
index 00000000000..57a9a959420
--- /dev/null
+++ b/dev-python/ply/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+PLY is a Python-only implementation of the popular compiler construction
+tools lex and yacc. The implementation borrows ideas from a number of
+previous efforts; most notably John Aycock's SPARK toolkit. However,
+the overall flavor of the implementation is more closely modeled after
+the C version of lex and yacc. The other significant feature of PLY is
+that it provides extensive input validation and error reporting--much
+more so than other Python parsing tools.
+</longdescription>
+<longdescription lang="ja">
+PLYはLexとYaccの有名なコンパイラ・コンストラクション・ツールのPython言語実装です
+。この実装は以前の試みから幾つものアイディアを借りています。そのほとんどがJohn AycockのSPARKツールキットからです。しかしながら、実装の全体像はC言語によるLexとYaccにより近いモデルです。PLYの他の重要点は幅広い入力バリデーションとエラー報告を>提供する点です。 -- その二点は他のPython言語パーサーより優れています。
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/ply/ply-3.4-r1.ebuild b/dev-python/ply/ply-3.4-r1.ebuild
new file mode 100644
index 00000000000..816c9961e2e
--- /dev/null
+++ b/dev-python/ply/ply-3.4-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Lex-Yacc library"
+HOMEPAGE="http://www.dabeaz.com/ply/ http://pypi.python.org/pypi/ply"
+SRC_URI="http://www.dabeaz.com/ply/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+# See bug #458648 for reference
+RESTRICT="test"
+
+DOCS=( ANNOUNCE CHANGES README TODO )
+
+python_test() {
+ cp -r -l test "${BUILD_DIR}"/ || die
+ cd "${BUILD_DIR}"/test || die
+
+ local t
+ for t in testlex.py testyacc.py; do
+ "${PYTHON}" "${t}" || die "${t} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ply/ply-3.6-r1.ebuild b/dev-python/ply/ply-3.6-r1.ebuild
new file mode 100644
index 00000000000..e302718f0d7
--- /dev/null
+++ b/dev-python/ply/ply-3.6-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Lex-Yacc library"
+HOMEPAGE="http://www.dabeaz.com/ply/ http://pypi.python.org/pypi/ply"
+SRC_URI="http://www.dabeaz.com/ply/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+# See bug #458648 for reference
+RESTRICT="test"
+
+DOCS=( ANNOUNCE CHANGES TODO )
+PATCHES=(
+ "${FILESDIR}/3.6-lextab-None.patch"
+ "${FILESDIR}/3.6-picklefile-IOError.patch"
+)
+
+python_test() {
+ cp -r -l test "${BUILD_DIR}"/ || die
+ cd "${BUILD_DIR}"/test || die
+
+ local t
+ for t in testlex.py testyacc.py; do
+ "${PYTHON}" "${t}" || die "${t} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/plyr/Manifest b/dev-python/plyr/Manifest
new file mode 100644
index 00000000000..4a8c874ec70
--- /dev/null
+++ b/dev-python/plyr/Manifest
@@ -0,0 +1 @@
+DIST python-glyr-1.0.6.tar.gz 42952 SHA256 5bb41d3fb860ef02e560942e9f51d9bef167725cef03577af3667465005bacfd SHA512 c4b04b1379116048f78c3ce5f9d30c92fd0d7198bfda456891d3012d115b86a5970595d9b4bc1d43028e87c9d467c35a7d02c7f3a9f4670dae8a17c22d1ab58a WHIRLPOOL 182b43c2611e35455d152e0a7ef32c9da5530b819ae04bd8086e8e96f8e9c5ee661d940a42b31c56a063286074e1842e468c6d4c4a58513bf478ea2280892e8d
diff --git a/dev-python/plyr/metadata.xml b/dev-python/plyr/metadata.xml
new file mode 100644
index 00000000000..27cb2ccc4b7
--- /dev/null
+++ b/dev-python/plyr/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>wtold.pilat@gmail.com</email>
+ <name>Witold Pilat</name>
+ <description>Proxy maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">sahib/python-glyr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/plyr/plyr-1.0.6.ebuild b/dev-python/plyr/plyr-1.0.6.ebuild
new file mode 100644
index 00000000000..2e53bf55aa0
--- /dev/null
+++ b/dev-python/plyr/plyr-1.0.6.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="python-glyr"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A python wrapper for Glyr"
+HOMEPAGE="http://sahib.github.com/python-glyr/intro.html
+ https://github.com/sahib/python-glyr"
+SRC_URI="https://github.com/sahib/${MY_PN}/archive/${PV}.tar.gz -> ${MY_P}.tar.gz"
+
+LICENSE="GPL-3+"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="media-libs/glyr"
+DEPEND="${RDEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable test requiring internet connection
+ sed -e 's:test_download:_&:' -i tests/test_misc.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html || die "Generating documentation failed"
+ fi
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pmw/Manifest b/dev-python/pmw/Manifest
new file mode 100644
index 00000000000..d6614eb4c96
--- /dev/null
+++ b/dev-python/pmw/Manifest
@@ -0,0 +1,3 @@
+DIST Pmw-2.0.1.tar.gz 830448 SHA256 0b9d28f52755a7a081b44591c3dd912054f896e56c9a627db4dd228306ad1120 SHA512 99654e961aa40a64eebc08fe473e94da0ce431e6465255c68c251dfd544a51edef1a5d97dfd89ce756eb5f7fcf917dbef27f646ba9451ab72f3d460daa09a556 WHIRLPOOL 8486016696e0576794b0ca29c73b9df532be1effeaf2e267f1fc8172bfbbc9be43acbfbf550c3f06ff1660b933d31bae9a0dbf2fa65b4fc2d607762bda46eda7
+DIST Pmw.1.3.3.tar.gz 451232 SHA256 0727bada8afe2e8844e95eb007f5331777389e23f9fce8f49c4864b153e4a494 SHA512 d63fad8f8c5bb9b8cb940b10bdf9e3bc1dabe714e10f32c587d5e1097ef0767492602984089172d85cf57c8ebf34acf555b8fe73a2157c6f734ee36042803668 WHIRLPOOL 6b0aaa767d8553637b2fa709f2f8c19f120ddb680fd8e68d6db77e82826f4ab6c5f872a0100371118486d8b07d43e177f2774c51a7ff4e4aa3825ebe3459abe3
+DIST Pmw.2.0.0.tar.gz 422125 SHA256 72bfdbb206a3853c9855bf8527e7720b3b28bdb79d810b49b208dfb964518ff8 SHA512 409b5ccdc8397b48c4d339e297c9729a1bc3f33c2b256d29b99c4c0e2e013d7aeae4b3089b22112b0d8d43dd8cd5208306afbcc4e9f6ab98005c16773aed7117 WHIRLPOOL 066f2851dafb9f8a1995b58378e0432e337d0f5f1170bd5d32a725d546f7de50e2ffa365ebb791404da2fe46d59e4b5c1c9638edc2163df77db04f095265de05
diff --git a/dev-python/pmw/files/1.3.2-python2.5.patch b/dev-python/pmw/files/1.3.2-python2.5.patch
new file mode 100644
index 00000000000..ff8cce07dda
--- /dev/null
+++ b/dev-python/pmw/files/1.3.2-python2.5.patch
@@ -0,0 +1,54 @@
+Source: http://github.com/nanotube/pmw_fixes/commit/5e6dcbdaef2bb6c40037b922dd0efa081f1575ab (Daniel Folkinshteyn)
+
+fix bug in OptionMenu.setitems, introduced with the fixing of this python
+bug:
+http://bugs.python.org/issue1342811
+
+versions of python 2.5.4 and newer now automatically delete commands when
+items are deleted
+however, that causes error if the command is deleted manually beforehand.
+old versions, on the contrary, require manual command deletion to free up
+the objects.
+
+so we put in a python version check to see if we need to manually delete
+commands.
+
+fixes the Pmw bug referred to here:
+http://sourceforge.net/forum/forum.php?thread_id=3283195&forum_id=33675
+and here:
+http://sourceforge.net/tracker/?func=detail&aid=2795731&group_id=10743&ati
+d=110743
+
+--- a/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py
++++ b/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py
+@@ -1,6 +1,7 @@
+ import types
+ import Tkinter
+ import Pmw
++import sys
+
+ class OptionMenu(Pmw.MegaWidget):
+
+@@ -59,11 +60,17 @@ class OptionMenu(Pmw.MegaWidget):
+
+ def setitems(self, items, index = None):
+
+- # Clean up old items and callback commands.
+- for oldIndex in range(len(self._itemList)):
+- tclCommandName = str(self._menu.entrycget(oldIndex, 'command'))
+- if tclCommandName != '':
+- self._menu.deletecommand(tclCommandName)
++ # python version check
++ # python versions >= 2.5.4 automatically clean commands
++ # and manually cleaning them causes errors when deleting items
++
++ if sys.version_info[0] * 100 + sys.version_info[1] * 10 + \
++ sys.version_info[2] < 254:
++ # Clean up old items and callback commands.
++ for oldIndex in range(len(self._itemList)):
++ tclCommandName = str(self._menu.entrycget(oldIndex, 'command'))
++ if tclCommandName != '':
++ self._menu.deletecommand(tclCommandName)
+ self._menu.delete(0, 'end')
+ self._itemList = list(items)
+
diff --git a/dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch b/dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch
new file mode 100644
index 00000000000..325dc4e2998
--- /dev/null
+++ b/dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch
@@ -0,0 +1,13 @@
+diff -uNr Pmw.1.3.2.orig/src/setup.py Pmw.1.3.2/src/setup.py
+--- Pmw.1.3.2.orig/src/setup.py 2008-08-02 15:40:19.000000000 -0430
++++ Pmw.1.3.2/src/setup.py 2008-08-02 15:40:36.000000000 -0430
+@@ -16,9 +16,7 @@
+ 'Pmw.Pmw_1_3.lib',],
+
+ package_data={'Pmw': ['Pmw_1_3/lib/Pmw.def',
+- 'Pmw_1_3/doc/*',
+ 'Pmw_1_3/contrib/*',
+- 'Pmw_1_3/demos/*',
+ 'Pmw_1_3/tests/*',
+ 'Pmw_1_3/bin/*',
+ ]
diff --git a/dev-python/pmw/files/pmw-1.3.3-install-no-docs.patch b/dev-python/pmw/files/pmw-1.3.3-install-no-docs.patch
new file mode 100644
index 00000000000..979e24abf59
--- /dev/null
+++ b/dev-python/pmw/files/pmw-1.3.3-install-no-docs.patch
@@ -0,0 +1,17 @@
+ src/setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/setup.py b/src/setup.py
+index a5f9039..cfcf8a2 100755
+--- a/src/setup.py
++++ b/src/setup.py
+@@ -16,9 +16,7 @@ setup(name="Pmw",
+ 'Pmw.Pmw_1_3_3.lib',],
+
+ package_data={'Pmw': ['Pmw_1_3_3/lib/Pmw.def',
+- 'Pmw_1_3_3/doc/*',
+ 'Pmw_1_3_3/contrib/*',
+- 'Pmw_1_3_3/demos/*',
+ 'Pmw_1_3_3/tests/*',
+ 'Pmw_1_3_3/bin/*',
+ ]
diff --git a/dev-python/pmw/metadata.xml b/dev-python/pmw/metadata.xml
new file mode 100644
index 00000000000..510bd1c1019
--- /dev/null
+++ b/dev-python/pmw/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pmw</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pmw/pmw-1.3.3-r2.ebuild b/dev-python/pmw/pmw-1.3.3-r2.ebuild
new file mode 100644
index 00000000000..62523454128
--- /dev/null
+++ b/dev-python/pmw/pmw-1.3.3-r2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="tk"
+
+inherit distutils-r1
+
+MY_P="Pmw.${PV}"
+
+DESCRIPTION="Toolkit for building high-level compound widgets in Python using the Tkinter module"
+HOMEPAGE="http://pmw.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="py2"
+KEYWORDS="alpha amd64 ia64 ppc sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+DEPEND="!dev-python/pmw:0"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/src"
+
+DOCS="Pmw/README"
+# http://sourceforge.net/p/pmw/bugs/39/
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${P}-install-no-docs.patch )
+
+python_test() {
+ cd "${BUILD_DIR}/lib/Pmw/Pmw_1_3_3/" || die
+ PYTHONPATH=PYTHONPATH=tests:../../
+ cp tests/{flagup.bmp,earthris.gif} . || die
+ for test in tests/*_test.py; do
+ echo "running test "$test
+ PYTHONPATH=tests:../../ "${PYTHON}" $test || die
+ done
+}
+
+python_install_all() {
+ local DIR="Pmw/Pmw_1_3_3"
+
+ if use doc; then
+ dohtml -a html,gif,py ${DIR}/doc/*
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins ${DIR}/demos/*
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pmw/pmw-2.0.0-r2.ebuild b/dev-python/pmw/pmw-2.0.0-r2.ebuild
new file mode 100644
index 00000000000..0b91cbb7b5f
--- /dev/null
+++ b/dev-python/pmw/pmw-2.0.0-r2.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{3_3,3_4} )
+PYTHON_REQ_USE="tk"
+
+inherit distutils-r1
+
+MY_P="Pmw.${PV}"
+
+DESCRIPTION="Toolkit for building high-level compound widgets in Python using the Tkinter module"
+HOMEPAGE="http://pmw.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="py3"
+KEYWORDS="alpha amd64 ia64 ppc sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+DEPEND="!dev-python/pmw:0"
+RDEPEND="${DEPEND}"
+# http://sourceforge.net/p/pmw/bugs/39/
+RESTRICT="test"
+
+S="${WORKDIR}/src"
+
+DOCS="Pmw/README"
+
+python_prepare() {
+ distutils-r1_python_prepare
+ 2to3 Pmw
+}
+
+python_test() {
+ cd "${BUILD_DIR}/lib/Pmw/Pmw_2_0_0/" || die
+ PYTHONPATH=PYTHONPATH=tests:../../
+ cp tests/{flagup.bmp,earthris.gif} . || die
+ for test in tests/*_test.py; do
+ echo "running test "$test
+ PYTHONPATH=tests:../../ "${PYTHON}" $test || die
+ done
+}
+
+python_install_all() {
+ local DIR="Pmw/Pmw_2_0_0"
+
+ if use doc; then
+ dohtml -a html,gif,py "${DIR}"/doc/*
+ fi
+
+ if use examples; then
+ insinto "/usr/share/doc/${PF}/examples"
+ doins "${DIR}"/demos/*
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pmw/pmw-2.0.1.ebuild b/dev-python/pmw/pmw-2.0.1.ebuild
new file mode 100644
index 00000000000..7aa8f53f1f9
--- /dev/null
+++ b/dev-python/pmw/pmw-2.0.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{3_3,3_4} )
+PYTHON_REQ_USE="tk"
+
+inherit distutils-r1 virtualx
+
+MY_PN="Pmw"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Toolkit for building high-level compound widgets in Python using the Tkinter module"
+HOMEPAGE="http://pmw.sourceforge.net/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="py3"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+DEPEND="!dev-python/pmw:0"
+RDEPEND="${DEPEND}"
+# http://sourceforge.net/p/pmw/bugs/39/
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare() {
+ distutils-r1_python_prepare
+ 2to3 Pmw
+}
+
+python_test() {
+ VIRTUALX_COMMAND="${PYTHON}"
+ cd "${BUILD_DIR}/lib/Pmw/Pmw_${PV//./_}/" || die
+ cp tests/{flagup.bmp,earthris.gif} . || die
+ for test in tests/*_test.py; do
+ echo "running test "$test
+ PYTHONPATH=tests:../../ virtualmake $test || die
+ done
+}
+
+python_install_all() {
+ local DIR="Pmw/Pmw_${PV//./_}"
+
+ use doc && HTML_DOCS=( "${DIR}"/doc/. )
+ use examples && EXAMPLES=( "${DIR}"/demos/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/polib/Manifest b/dev-python/polib/Manifest
new file mode 100644
index 00000000000..7d88dccc0d6
--- /dev/null
+++ b/dev-python/polib/Manifest
@@ -0,0 +1 @@
+DIST polib-1.0.4.tar.gz 151634 SHA256 8b3276f75ce2fce9442e27db3ae63d842416e17f0e2095f39ff52dc735e5749a SHA512 a38d57acdaded0371be83825a28f14f178aebdbc0435724f33eebda109adb2b8210e33659ebec88d2d9e98aa60c482d7f8a958ec18f6769fda7a2fb14edd2744 WHIRLPOOL 1fe4e5bbf27444c1a6d7d79c70325078d3b2d15f6a5eb84852ccb080dfee4d03a7f8311127b6f93e1cb23ad633155bf93221317ec3518b1c5d7ec52b79fab87d
diff --git a/dev-python/polib/metadata.xml b/dev-python/polib/metadata.xml
new file mode 100644
index 00000000000..3b4d48a8b55
--- /dev/null
+++ b/dev-python/polib/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tetromino@gentoo.org</email>
+ <name>Alexandre Rostovtsev</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="bitbucket">izi/polib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/polib/polib-1.0.4.ebuild b/dev-python/polib/polib-1.0.4.ebuild
new file mode 100644
index 00000000000..c0ae9d4d89f
--- /dev/null
+++ b/dev-python/polib/polib-1.0.4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to manipulate gettext files (.po and .mo files)"
+HOMEPAGE="https://bitbucket.org/izi/polib/wiki/Home"
+SRC_URI="https://www.bitbucket.org/izi/polib/downloads/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )
+"
+
+python_compile_all() {
+ if use doc; then
+ cd docs || die
+ emake html
+ fi
+}
+
+python_test() {
+ python tests/tests.py || die
+}
+
+python_install_all() {
+ local DOCS="CHANGELOG README.rst"
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/polygon/Manifest b/dev-python/polygon/Manifest
new file mode 100644
index 00000000000..8276f23a5dc
--- /dev/null
+++ b/dev-python/polygon/Manifest
@@ -0,0 +1,3 @@
+DIST Polygon-2.0.4.zip 73544 SHA256 a9a85d81cc9faabba398001b1e9d32444e98147ac6e31cbdc5ef512c4f7c43dd SHA512 1d1b6a6f601298fc2a05f2fa30ff7ed81feb3e3651f4579524a3f2bb6403ceb404ab7a41545fc742ee8be626d034fd32d5e3554fec56811b1631f8c5b8352dd5 WHIRLPOOL db6342be7594666af6d441b36c825e9c0e8aa333ad5b77c18ca64ac27367b897bd7bcae0ea83fcb748007f3331514d16acafe3101ea1404e04f530441d566d7e
+DIST Polygon2-2.0.6.zip 73551 SHA256 3e0e1a5125e892faa5964523de28c0349b573ed102547e12a1affc3fed2cac3b SHA512 d0827fe3299449842e201598b59e423bf3029302037ffb9329dae0045b2be1727eb33951dfd22f560476360836305526be58e55d9d4cff36f3d9a4b0262b7aed WHIRLPOOL 50b176f05ade1780e21f8280d884996f04df3894a8479b5d82b1410cc53961c0faedea1b20b431b0eeb2996619abf91392e4c9291856a63c8b080605f646c67b
+DIST Polygon3-3.0.7.zip 76193 SHA256 627852f50fd6002b9a59eef291bb38c075d95e67c47a8d3b32713426ee137744 SHA512 e30cd8e51ad69a2d76b61a7d92ead4ac352e729093546b965f649866fd9c6a860e3cdcd9fcd7f8cc9f8d7735ccd1128fb5af00b3de89e4efd7128e446a70b33b WHIRLPOOL 7123420e402e3cb5034ad3ffaba561a8c250e6788ee6b89ca8376ed6a037a889611afcd34f135b1ee16261e2504a22895c491d91a691e1559628673682e1dead
diff --git a/dev-python/polygon/metadata.xml b/dev-python/polygon/metadata.xml
new file mode 100644
index 00000000000..9754f81c78b
--- /dev/null
+++ b/dev-python/polygon/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang="en">
+ Polygon is a python package that handles polygonal shapes in 2D. It contains
+ Python bindings for gpc, the General Polygon Clipping Library by
+ Alan Murta and some extensions written in C and pure Python.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/polygon/polygon-2.0.4.ebuild b/dev-python/polygon/polygon-2.0.4.ebuild
new file mode 100644
index 00000000000..91a1da4c061
--- /dev/null
+++ b/dev-python/polygon/polygon-2.0.4.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.5-jython"
+
+inherit distutils
+
+DESCRIPTION="Python package to handle polygonal shapes in 2D"
+HOMEPAGE="http://www.j-raedler.de/projects/polygon/"
+SRC_URI="mirror://github/jraedler/Polygon2/Polygon-${PV}.zip"
+
+LICENSE="LGPL-2"
+SLOT="2"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+S="${WORKDIR}/Polygon-${PV}"
+
+src_test() {
+ testing() {
+ PYTHONPATH="$(dir -d build-${PYTHON_ABI}/lib*)" "$(PYTHON)" test/Test.py
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+ dodoc HISTORY doc/Polygon.txt
+}
diff --git a/dev-python/polygon/polygon-2.0.6.ebuild b/dev-python/polygon/polygon-2.0.6.ebuild
new file mode 100644
index 00000000000..b84f1789284
--- /dev/null
+++ b/dev-python/polygon/polygon-2.0.6.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package to handle polygonal shapes in 2D"
+HOMEPAGE="http://www.j-raedler.de/projects/polygon/"
+SRC_URI="https://www.bitbucket.org/jraedler/${PN}2/downloads/Polygon2-${PV}.zip"
+
+LICENSE="LGPL-2"
+SLOT="2"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+DEPEND="app-arch/unzip"
+
+S=${WORKDIR}/Polygon2-${PV}
+
+DOCS=( HISTORY doc/Polygon.txt )
+
+python_test() {
+ ${PYTHON} test/Test.py || die "Tests failed"
+}
diff --git a/dev-python/polygon/polygon-3.0.7.ebuild b/dev-python/polygon/polygon-3.0.7.ebuild
new file mode 100644
index 00000000000..8273280c013
--- /dev/null
+++ b/dev-python/polygon/polygon-3.0.7.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package to handle polygonal shapes in 2D"
+HOMEPAGE="http://www.j-raedler.de/projects/polygon"
+SRC_URI="https://www.bitbucket.org/jraedler/${PN}3/downloads/Polygon3-${PV}.zip"
+
+LICENSE="LGPL-2"
+SLOT="3"
+IUSE="examples"
+KEYWORDS="amd64 ppc x86"
+
+DEPEND="app-arch/unzip"
+
+S=${WORKDIR}/Polygon3-${PV}
+
+DOCS=( doc/{Polygon.txt,Polygon.pdf} )
+
+python_prepare_all() {
+ if use examples; then
+ mkdir examples || die
+ mv doc/{Examples.py,testpoly.gpf} examples || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${PYTHON} test/Test.py || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/posix_ipc/Manifest b/dev-python/posix_ipc/Manifest
new file mode 100644
index 00000000000..fd45b4eaa61
--- /dev/null
+++ b/dev-python/posix_ipc/Manifest
@@ -0,0 +1 @@
+DIST posix_ipc-0.9.8.tar.gz 66589 SHA256 271446eb133efb7410eb51265807aa54e0acb8eb7c2abcf027e51b4cb36d36dd SHA512 d0618c302e6d0f9113b9515627095d6baf383dcf4ac603b3a4596ee814873a0baa473e8505918859bda37cb539f98e76fd601e29f6772dbc14f74d6059fd4200 WHIRLPOOL 1c7ff555fdd9050b6c075873141030e0672c6f159ba68ea2f1f9d80cb18539ed7cd9fbfba772ee2be7754fad85943befc11805f8b4ba7eb2bf0cbcf7db5eafe3
diff --git a/dev-python/posix_ipc/metadata.xml b/dev-python/posix_ipc/metadata.xml
new file mode 100644
index 00000000000..12f81c32d1b
--- /dev/null
+++ b/dev-python/posix_ipc/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ POSIX IPC primitives (semaphores, shared memory and message queues) for Python
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">posix_ipc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/posix_ipc/posix_ipc-0.9.8.ebuild b/dev-python/posix_ipc/posix_ipc-0.9.8.ebuild
new file mode 100644
index 00000000000..f154f944468
--- /dev/null
+++ b/dev-python/posix_ipc/posix_ipc-0.9.8.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+DISTUTILS_IN_SOURCE_BUILD=1
+
+inherit distutils-r1
+
+DESCRIPTION="POSIX IPC primitives (semaphores, shared memory and message queues) for Python"
+HOMEPAGE="http://semanchuk.com/philip/posix_ipc/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND=""
diff --git a/dev-python/potr/Manifest b/dev-python/potr/Manifest
new file mode 100644
index 00000000000..ad2acf77ff8
--- /dev/null
+++ b/dev-python/potr/Manifest
@@ -0,0 +1 @@
+DIST python-potr-1.0.1.zip 30200 SHA256 a8a23fc1aac1e9c97b02fe462097f54f2d247f7979f0aa8ce4d66f88f6927bac SHA512 d38f2fc68ce9f72ccee18923183f8640ee51f079da1e79e1f2f22e37383c99da7a6336a8538e28bd90b483fe8e227956ebc052e9c03aa6d7b49e9fc4e8df5281 WHIRLPOOL e0b37d8c5fe6b046a072bebcc8785a55bfba1239de193ac072bc061c58826dc8ba92d35e0e51cc8065578be07af5b272dccde5d5cb2e2506d8e7cfa029a0edf7
diff --git a/dev-python/potr/metadata.xml b/dev-python/potr/metadata.xml
new file mode 100644
index 00000000000..42b14c53258
--- /dev/null
+++ b/dev-python/potr/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>aidecoe@gentoo.org</email>
+ <name>Amadeusz Żołnowski</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a pure Python OTR implementation; it does not bind to libotr.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-potr</remote-id>
+ <remote-id type="github">python-otr/pure-python-otr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/potr/potr-1.0.1.ebuild b/dev-python/potr/potr-1.0.1.ebuild
new file mode 100644
index 00000000000..8429d9b5e06
--- /dev/null
+++ b/dev-python/potr/potr-1.0.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_PN="python-${PN}"
+MY_P="${MY_PN}-${PV}"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure Python OTR implementation"
+HOMEPAGE="https://github.com/python-otr/pure-python-otr"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+CDEPEND=">=dev-python/pycrypto-2.1[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ "
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pp/Manifest b/dev-python/pp/Manifest
new file mode 100644
index 00000000000..15fe775c467
--- /dev/null
+++ b/dev-python/pp/Manifest
@@ -0,0 +1 @@
+DIST pp-1.6.4.tar.bz2 27166 SHA256 7f932d8eff4b35357bf5b48c1abd7734a955c98a50138c13b7b9eb36aadaf408 SHA512 213322aaa60e1485b855e96336a01c45407185892dede693c013a200554656ce08799ee23ee4a0cf628b382b98e0519445c99dbb89f209b1b907ac0a1fc8147e WHIRLPOOL fce8fe3ceaeb9e1d4133734107924faec6bcc5b4d862a37629443d0ec1774504956271dfa1af7de8dd2c06012e488e99dbe1220705fe3f4ae7c8cc8f721211da
diff --git a/dev-python/pp/metadata.xml b/dev-python/pp/metadata.xml
new file mode 100644
index 00000000000..d95e954c9ea
--- /dev/null
+++ b/dev-python/pp/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ PP is a python module which provides mechanism for parallel
+ execution of python code on SMP (systems with multiple processors or
+ cores) and clusters (computers connected via network).
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pp/pp-1.6.4-r1.ebuild b/dev-python/pp/pp-1.6.4-r1.ebuild
new file mode 100644
index 00000000000..167f813ba57
--- /dev/null
+++ b/dev-python/pp/pp-1.6.4-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Parallel and distributed programming for Python"
+HOMEPAGE="http://www.parallelpython.com/"
+SRC_URI="http://www.parallelpython.com/downloads/${PN}/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+python_install_all() {
+ doman doc/ppserver.1
+ use doc && HTML_DOCS=( doc/ppdoc.html )
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r "${S}/examples"
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pretend/Manifest b/dev-python/pretend/Manifest
new file mode 100644
index 00000000000..8f1ceecc991
--- /dev/null
+++ b/dev-python/pretend/Manifest
@@ -0,0 +1,2 @@
+DIST pretend-1.0.7.tar.gz 4788 SHA256 306906ea041a41ba23171aaf82112b49c516edbb08a29c8d0f113ee5def86d19 SHA512 9caa134a6b495c34bd05449b50f8f30e40ddceca9f70448f1735ae6d229996eeee370d01d7a3ed9acc40f385247544c201676699483599d8790e1971b6899f40 WHIRLPOOL c20c888b65f63ef1c4ea616714703529e5bf743970350c29d187f8a69f15c3db4fb1beda57584bb327105824e4ea01badac69a6b8fa4792c4d2ff53378cc31e7
+DIST pretend-1.0.8.tar.gz 4848 SHA256 930f2c1e18503e8f8c403abe2e02166c4a881941745147e712cdd4f49f3fb964 SHA512 25011216947289d340fb979ebc9e2c7f000571f006cf5ce15f10ff0e013164e4329a3a66933d202acf8ced498929cf9e5a2a3666aafa00f78348400615c5cec8 WHIRLPOOL 3148c08f98deadfea44ff59e673d053fc770a01541fb3bdac6416d156ad720658c42cd72b0f96d138962f636aab8080624400589ac5245d458c2cdff04d22015
diff --git a/dev-python/pretend/metadata.xml b/dev-python/pretend/metadata.xml
new file mode 100644
index 00000000000..d9c43ee47ef
--- /dev/null
+++ b/dev-python/pretend/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pretend</remote-id>
+ <remote-id type="github">alex/pretend</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pretend/pretend-1.0.7.ebuild b/dev-python/pretend/pretend-1.0.7.ebuild
new file mode 100644
index 00000000000..9d78f5e1853
--- /dev/null
+++ b/dev-python/pretend/pretend-1.0.7.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for stubbing in Python"
+HOMEPAGE="https://github.com/alex/pretend/ https://pypi.python.org/pypi/pretend/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pretend/pretend-1.0.8.ebuild b/dev-python/pretend/pretend-1.0.8.ebuild
new file mode 100644
index 00000000000..7df731fe547
--- /dev/null
+++ b/dev-python/pretend/pretend-1.0.8.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library for stubbing in Python"
+HOMEPAGE="https://github.com/alex/pretend/ https://pypi.python.org/pypi/pretend/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pretty-yaml/Manifest b/dev-python/pretty-yaml/Manifest
new file mode 100644
index 00000000000..a924d8fc34b
--- /dev/null
+++ b/dev-python/pretty-yaml/Manifest
@@ -0,0 +1,2 @@
+DIST pyaml-14.05.7.tar.gz 7401 SHA256 8c1edf635edc0658d9f6cd222f175e35aecaaef1cad432b188206b71a9cdbd30 SHA512 4a977de705a85341ff817b51e29facea6029c0082cdc0d9b212748d6992a1be3c461d59a5a41f131a14c0cfc0b6db3aad9091e0ff86c05da70974fd3651eaea9 WHIRLPOOL ed5fe07b7dd686a8d460841bfcbbb326d833124f0078a7aa70a80ddd3c85fcc245d9808a2aa19676636fea3d299be986fefead3022d96f846e6a9571ae67024f
+DIST pyaml-15.5.7.tar.gz 14374 SHA256 85c44970d9bca68742faef77cb10a16d4a81be81281541c8d39c10f504042bc6 SHA512 c92250bba3bfded1a4d047940098b532989f9fe020d1e7ccdd45779260e1114c8720d9ef4d98de0abfa699807d9377e29e9ad9c979dd086456eade0fecf6f0ae WHIRLPOOL e7cb76e586f32eebb8cb56af949925030dabc81e5f2f7b1a575980b49ab020968c393739deb6b69afb98f2c4b3ef21601a43166b7ce092c1e88aa3e2e95758cf
diff --git a/dev-python/pretty-yaml/metadata.xml b/dev-python/pretty-yaml/metadata.xml
new file mode 100644
index 00000000000..4eb0ed72e47
--- /dev/null
+++ b/dev-python/pretty-yaml/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyaml</remote-id>
+ <remote-id type="github">mk-fg/pretty-yaml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pretty-yaml/pretty-yaml-14.05.7.ebuild b/dev-python/pretty-yaml/pretty-yaml-14.05.7.ebuild
new file mode 100644
index 00000000000..3bdaa75ae6b
--- /dev/null
+++ b/dev-python/pretty-yaml/pretty-yaml-14.05.7.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_{3,4}})
+
+inherit distutils-r1
+
+MY_PN="${PN//retty-}"
+DESCRIPTION="PyYAML-based module to produce pretty and readable YAML-serialized data"
+HOMEPAGE="https://github.com/mk-fg/pretty-yaml"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="WTFPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
diff --git a/dev-python/pretty-yaml/pretty-yaml-15.5.7.ebuild b/dev-python/pretty-yaml/pretty-yaml-15.5.7.ebuild
new file mode 100644
index 00000000000..5fac8288f0b
--- /dev/null
+++ b/dev-python/pretty-yaml/pretty-yaml-15.5.7.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_{3,4}})
+
+inherit distutils-r1
+
+MY_PN="${PN//retty-}"
+DESCRIPTION="PyYAML-based module to produce pretty and readable YAML-serialized data"
+HOMEPAGE="https://github.com/mk-fg/pretty-yaml"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="WTFPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/unidecode[${PYTHON_USEDEP}] )"
+RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_test() {
+ "${PYTHON}" pyaml/tests/dump.py || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/prettytable/Manifest b/dev-python/prettytable/Manifest
new file mode 100644
index 00000000000..011de67919a
--- /dev/null
+++ b/dev-python/prettytable/Manifest
@@ -0,0 +1,2 @@
+DIST prettytable-0.7.1.tar.bz2 21499 SHA256 599bc5b4b9602e28294cf795733c889c26dd934aa7e0ee9cff9b905d4fbad188 SHA512 1a7aa604f608483b107401ddca9721ddea673ea1415d2a514948f7399835784e0a9025f0e5236f4109890e5924da345bd111893200730501b496c136465c204f WHIRLPOOL cbde4e7053eb82749a21f1ac7e0a9ab7368f9dfbe64f0e434da085dc30f24931110e87c508c500bb340adec6d928dae53f1652d1601a5718311a9e414a2b789c
+DIST prettytable-0.7.2.tar.bz2 21755 SHA256 853c116513625c738dc3ce1aee148b5b5757a86727e67eff6502c7ca59d43c36 SHA512 f3a3fe6fa29f4ef090ff6cac06549ebd9db8b387e7b25fc64c4e37c8444586f50355c5573f38caabc72360aa68054aa189a67aa37f0bd13b872862ecd9151e71 WHIRLPOOL 1b27332ea8b2c83ec13b981508f429881bacacb87ac4a8c51a42b6071daa6d1278a48f3359547efae2c7f9eb1fe5d6b13e2d4232543722aa3aab1f30f9fccfbe
diff --git a/dev-python/prettytable/metadata.xml b/dev-python/prettytable/metadata.xml
new file mode 100644
index 00000000000..70d493aab96
--- /dev/null
+++ b/dev-python/prettytable/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="google-code">prettytable</remote-id>
+ <remote-id type="pypi">PrettyTable</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/prettytable/prettytable-0.7.1-r1.ebuild b/dev-python/prettytable/prettytable-0.7.1-r1.ebuild
new file mode 100644
index 00000000000..07d8caad35b
--- /dev/null
+++ b/dev-python/prettytable/prettytable-0.7.1-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Easily displaying tabular data in a visually appealing ASCII table format"
+HOMEPAGE="https://code.google.com/p/prettytable/"
+SRC_URI="mirror://pypi/P/PrettyTable/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" prettytable_test.py || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/prettytable/prettytable-0.7.2.ebuild b/dev-python/prettytable/prettytable-0.7.2.ebuild
new file mode 100644
index 00000000000..e385645ea2e
--- /dev/null
+++ b/dev-python/prettytable/prettytable-0.7.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Easily displaying tabular data in a visually appealing ASCII table format"
+HOMEPAGE="https://code.google.com/p/prettytable/"
+SRC_URI="mirror://pypi/P/PrettyTable/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ "${PYTHON}" prettytable_test.py || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/processing/Manifest b/dev-python/processing/Manifest
new file mode 100644
index 00000000000..c6128798ebd
--- /dev/null
+++ b/dev-python/processing/Manifest
@@ -0,0 +1 @@
+DIST processing-0.52.zip 178013 SHA256 976fa4f8d30e8dc8216ae24d44c95587ae05ab39e9ac4bdc10691cab51fca11d SHA512 ce5244eefe1bed629afddf2309ea61f44a2a5fe913b97032752ecd92e58add278f7bcf02c5dc9e1985720ceaaa2e4d547f67e9b018313a26ca084c2a86f0efb3 WHIRLPOOL f0e243253d1ea8d7d67c3f209ad5cafa6d0f9f571a77566db7aa25294f3b252b5b3120450c7b149231edc0c6ffd1901725d0373617553de7c554f6a686f54b88
diff --git a/dev-python/processing/metadata.xml b/dev-python/processing/metadata.xml
new file mode 100644
index 00000000000..7e66f50bca0
--- /dev/null
+++ b/dev-python/processing/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">processing</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/processing/processing-0.52-r1.ebuild b/dev-python/processing/processing-0.52-r1.ebuild
new file mode 100644
index 00000000000..76176717d52
--- /dev/null
+++ b/dev-python/processing/processing-0.52-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1 flag-o-matic
+
+KEYWORDS="~amd64 ~x86"
+
+DESCRIPTION="Package for using processes, which mimics the threading module API"
+HOMEPAGE="http://pyprocessing.berlios.de/ http://pypi.python.org/pypi/processing"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${PYTHON_DEPS}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ append-flags -fno-strict-aliasing
+}
diff --git a/dev-python/progressbar/Manifest b/dev-python/progressbar/Manifest
new file mode 100644
index 00000000000..27668abc796
--- /dev/null
+++ b/dev-python/progressbar/Manifest
@@ -0,0 +1 @@
+DIST progressbar-2.3.tar.gz 9802 SHA256 00a316c1a99b70a803d7430fd088da24f37dbfb64f81c4772b97fbc1e8031de4 SHA512 34357d72f8dabc07f4023077a2062cd98dc8a10b14d40cdd6fadd7713a572214fe3176b8638bb0b4b8ffeaa553fa6259793b0813aca9f7c488c22c11807064c3 WHIRLPOOL 85cec2da09debc238cd83e45111b1ed974e3ab0c91bd76787897667abc967d93c78bd2eb3286e483f40164125d8da92e5437163c79af37940be2aa383d4cb2c3
diff --git a/dev-python/progressbar/files/progressbar-2.3-python3.3.patch b/dev-python/progressbar/files/progressbar-2.3-python3.3.patch
new file mode 100644
index 00000000000..112bcf4b377
--- /dev/null
+++ b/dev-python/progressbar/files/progressbar-2.3-python3.3.patch
@@ -0,0 +1,94 @@
+# HG changeset patch
+# User Nilton Volpato <nilton@google.com>
+# Date 1348267873 10800
+# Fri Sep 21 19:51:13 2012 -0300
+# Node ID 3c94a3a1ebe1325c7c605cc8f11126dcc632b04d
+# Parent 83ece680e4fe06aa704de4c3a967355db21046d4
+Remove format as a slot attribute, as that is not compatible with python 3.3
+
+diff --git a/progressbar/widgets.py b/progressbar/widgets.py
+--- a/progressbar/widgets.py
++++ b/progressbar/widgets.py
+@@ -81,11 +81,11 @@
+ class Timer(Widget):
+ """Widget which displays the elapsed seconds."""
+
+- __slots__ = ('format',)
++ __slots__ = ('format_string',)
+ TIME_SENSITIVE = True
+
+ def __init__(self, format='Elapsed Time: %s'):
+- self.format = format
++ self.format_string = format
+
+ @staticmethod
+ def format_time(seconds):
+@@ -97,7 +97,7 @@
+ def update(self, pbar):
+ """Updates the widget to show the elapsed time."""
+
+- return self.format % self.format_time(pbar.seconds_elapsed)
++ return self.format_string % self.format_time(pbar.seconds_elapsed)
+
+
+ class ETA(Timer):
+@@ -121,9 +121,9 @@
+ class FileTransferSpeed(Widget):
+ """Widget for showing the transfer speed (useful for file transfers)."""
+
+- format = '%6.2f %s%s/s'
+- prefixes = ' kMGTPEZY'
+- __slots__ = ('unit', 'format')
++ FORMAT = '%6.2f %s%s/s'
++ PREFIXES = ' kMGTPEZY'
++ __slots__ = ('unit',)
+
+ def __init__(self, unit='B'):
+ self.unit = unit
+@@ -138,7 +138,7 @@
+ power = int(math.log(speed, 1000))
+ scaled = speed / 1000.**power
+
+- return self.format % (scaled, self.prefixes[power], self.unit)
++ return self.FORMAT % (scaled, self.PREFIXES[power], self.unit)
+
+
+ class AnimatedMarker(Widget):
+@@ -168,13 +168,13 @@
+ class Counter(Widget):
+ """Displays the current count."""
+
+- __slots__ = ('format',)
++ __slots__ = ('format_string',)
+
+ def __init__(self, format='%d'):
+- self.format = format
++ self.format_string = format
+
+ def update(self, pbar):
+- return self.format % pbar.currval
++ return self.format_string % pbar.currval
+
+
+ class Percentage(Widget):
+@@ -197,9 +197,9 @@
+ 'value': ('currval', None)
+ }
+
+- __slots__ = ('format',)
++ __slots__ = ('format_string',)
+ def __init__(self, format):
+- self.format = format
++ self.format_string = format
+
+ def update(self, pbar):
+ context = {}
+@@ -213,7 +213,7 @@
+ context[name] = transform(value)
+ except: pass
+
+- return self.format % context
++ return self.format_string % context
+
+
+ class SimpleProgress(Widget):
diff --git a/dev-python/progressbar/metadata.xml b/dev-python/progressbar/metadata.xml
new file mode 100644
index 00000000000..fe5274bb9ce
--- /dev/null
+++ b/dev-python/progressbar/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">python-progressbar</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/progressbar/progressbar-2.3-r1.ebuild b/dev-python/progressbar/progressbar-2.3-r1.ebuild
new file mode 100644
index 00000000000..7fd0509485f
--- /dev/null
+++ b/dev-python/progressbar/progressbar-2.3-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Text progressbar library for python"
+HOMEPAGE="http://code.google.com/p/python-progressbar/ http://pypi.python.org/pypi/progressbar"
+SRC_URI="http://python-${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="|| ( LGPL-2.1 BSD )"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}/progressbar-2.3-python3.3.patch" )
diff --git a/dev-python/promise/Manifest b/dev-python/promise/Manifest
new file mode 100644
index 00000000000..bfcc57bf97d
--- /dev/null
+++ b/dev-python/promise/Manifest
@@ -0,0 +1 @@
+DIST promise-0.2.2.tar.gz 19765 SHA256 1fb52a23bee47644819c4a11b0b7169474625c44629f9b76a04cf59e118f4f6c SHA512 271731b2be94ce65680079d3c43034e2ef5da37efc00c36e513cacc0e19a47ccfc43911c43f6c860789ddf86d96870ad8ca7c3cf0074f977727d630354d79840 WHIRLPOOL cbe48adf35a65cc737b85cbdc0a542dadd56b4e2e45d75567b03f1031dd39f229b0dbba26ed23ee4dfae4e1b0dd0e5f22592ddfa24dc457697895d9e7a5298fe
diff --git a/dev-python/promise/metadata.xml b/dev-python/promise/metadata.xml
new file mode 100644
index 00000000000..54bf1e04ffd
--- /dev/null
+++ b/dev-python/promise/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>djc@gentoo.org</email>
+ <name>Dirkjan Ochtman</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">promise</remote-id>
+ <remote-id type="github">rfk/promise</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/promise/promise-0.2.2-r1.ebuild b/dev-python/promise/promise-0.2.2-r1.ebuild
new file mode 100644
index 00000000000..2535e630322
--- /dev/null
+++ b/dev-python/promise/promise-0.2.2-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="Bytecode optimisation using staticness assertions"
+HOMEPAGE="https://github.com/rfk/promise/ http://pypi.python.org/pypi/promise"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND="${PYTHON_DEPS}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+python_test() {
+ # Timing tests fail.
+ PROMISE_SKIP_TIMING_TESTS="1" nosetests || die "tests failed"
+}
diff --git a/dev-python/prompt_toolkit/Manifest b/dev-python/prompt_toolkit/Manifest
new file mode 100644
index 00000000000..d0151dcf4ce
--- /dev/null
+++ b/dev-python/prompt_toolkit/Manifest
@@ -0,0 +1,7 @@
+DIST prompt_toolkit-0.37.tar.gz 113415 SHA256 680f0abab097619e013c75f4fc234f7734ee888a483d9492e326ecd7883c6859 SHA512 872596db85de5a53170033b6ed1a1dd3246044c2a886df0bee642d94353480d2406c6f9f340fb33bd8cef37cd960b1ced88c73d743f5bbce2783f9d95e8c17ad WHIRLPOOL 8993ec2e815d962cc584e3bda24d26989dfd4a8c1e4749f098d4e96a731b587327f8c36c938ff6c1aa0b67cfeb767c8c1af045684829e5ac2bcbf5ba062aecb3
+DIST prompt_toolkit-0.38.tar.gz 117066 SHA256 6cee2959747580a1f93e3e14ef2826f1d89845d19e5bc32f374c23988e2d5e66 SHA512 6d3bf3da038220eb872aa537d9c469daada969940790745e538e1d215ad50855ef9ceab30992ee7ecb7c43d618d121226dff2a6b720f6ea393239cd34f4a9fea WHIRLPOOL 58a1c3020aecdeb5e6e20404bd4bb736216cdfe0e7c92a443c2ab03c645a3b1a94d529fe1b065a1f0b2610a324f44d46eafe00fc0dda71fd3ab53cddc19ab377
+DIST prompt_toolkit-0.39.tar.gz 117227 SHA256 8b924453f9a79789608ce72190cf519ccdd7d9e79d7ddf910d2784861f748680 SHA512 85b6a20ddea5a2ac09d8df0b29e96b77f702d1610d0683dfaea5c2dc79e2e4e97fd77bd2b9c306f875d5f888ee08e8dcb3734a56e12bd993448a619507367aa8 WHIRLPOOL d33f861fe0f34e53608e41c94ece5a56988ebcb1dc4ac10a42eb60d66c1de75cf63c0f0ac6604e8395b2ad100487b365ec1c1e1ac09c308bfb81614544c05ee3
+DIST prompt_toolkit-0.41.tar.gz 119741 SHA256 2aebfa79d78aced3b7fc78a90fb2937db6329d604cc49c4ab248af6d80d21f69 SHA512 1ecb1cd8ae9c26f8f7780150e857a179cb77f6ec6f32da5a319e0324b032ae1ec9ee21f0e059f0a4e46f315b9694214eab883a1ef4446f2334821231907219d8 WHIRLPOOL 37a9d07fabe957327ecf0fe6fa2f82b0ddc99429d38775259d5d7f9249fb740c757e6ccfb4afe40f4700dc4034bfce0ba8cbeda18477ca762513b44afa542a14
+DIST prompt_toolkit-0.42.tar.gz 121317 SHA256 064184bdc0f040cc7c9fae3715e346112f9d632a292601d5c383cedf3de7de12 SHA512 f6f72b5283fc94138e31bd06d790ba48a85be48c897e8e63f939829be1db212d87047d58307675df3e9a5e631827827f8c2edc4c24be3235f0dfa75feb05f8a9 WHIRLPOOL 7be6113da4482eb4626cb48d57c8d6172134ea7ac631f8bd3f2e417d8a5b4f8c4cb61235810ff89a04d20df8bf9d2a98cddb5bc50689c863435fcc9740e23de8
+DIST prompt_toolkit-0.43.tar.gz 124491 SHA256 b93910285c6f8ea22352b6f82fea4f0f3cee4c0cc14a8134b847e0c3d055aefc SHA512 73dc76085f769ae94649cec880325006f8d2124bbdb90c78d04fd7856e83795206da0fd3c2ff25f17ee06e6a554e0da5bbe02c27c6685d9b86eb20b171f1cab7 WHIRLPOOL a72cae506bfae7ea96a48481f718e92772988237c86b768b75877e5a764a3b70425530b510b1116feada869233a86936ac95925197552a4eebf0770fe5776997
+DIST prompt_toolkit-0.45.tar.gz 125907 SHA256 553fd2b9169674adacf227ede2e056c2bbd7181a4a3ca614960467c0720997a6 SHA512 ed3f374ccbedbcb82c013f499d8344001844c63d7f7fcd08de4d6776ef8ad23f5a85da94da04625de1e6197f197a78d6504954e189ddc6028f666f930f651e0c WHIRLPOOL f7c519473aa73be1d2165bdba7c6a359af108c8bcf8891444e55c5c8ebdbea8425721033dd0bbb2328da3e188bb87301805aa68e9f572d7aacde1752d7ba2b71
diff --git a/dev-python/prompt_toolkit/metadata.xml b/dev-python/prompt_toolkit/metadata.xml
new file mode 100644
index 00000000000..0d992c1a28f
--- /dev/null
+++ b/dev-python/prompt_toolkit/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">prompt_toolkit</remote-id>
+ <remote-id type="github">jonathanslenders/python-prompt-toolkit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/prompt_toolkit/prompt_toolkit-0.37.ebuild b/dev-python/prompt_toolkit/prompt_toolkit-0.37.ebuild
new file mode 100644
index 00000000000..41fe12c1467
--- /dev/null
+++ b/dev-python/prompt_toolkit/prompt_toolkit-0.37.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="https://pypi.python.org/pypi/prompt_toolkit/ https://github.com/jonathanslenders/python-prompt-toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/six-1.8.0[${PYTHON_USEDEP}]
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# not contained in tarball
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" "${S}"/tests/run_tests.py || die
+}
diff --git a/dev-python/prompt_toolkit/prompt_toolkit-0.38.ebuild b/dev-python/prompt_toolkit/prompt_toolkit-0.38.ebuild
new file mode 100644
index 00000000000..41fe12c1467
--- /dev/null
+++ b/dev-python/prompt_toolkit/prompt_toolkit-0.38.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="https://pypi.python.org/pypi/prompt_toolkit/ https://github.com/jonathanslenders/python-prompt-toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/six-1.8.0[${PYTHON_USEDEP}]
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# not contained in tarball
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" "${S}"/tests/run_tests.py || die
+}
diff --git a/dev-python/prompt_toolkit/prompt_toolkit-0.39.ebuild b/dev-python/prompt_toolkit/prompt_toolkit-0.39.ebuild
new file mode 100644
index 00000000000..41fe12c1467
--- /dev/null
+++ b/dev-python/prompt_toolkit/prompt_toolkit-0.39.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="https://pypi.python.org/pypi/prompt_toolkit/ https://github.com/jonathanslenders/python-prompt-toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/six-1.8.0[${PYTHON_USEDEP}]
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# not contained in tarball
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" "${S}"/tests/run_tests.py || die
+}
diff --git a/dev-python/prompt_toolkit/prompt_toolkit-0.41.ebuild b/dev-python/prompt_toolkit/prompt_toolkit-0.41.ebuild
new file mode 100644
index 00000000000..41fe12c1467
--- /dev/null
+++ b/dev-python/prompt_toolkit/prompt_toolkit-0.41.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="https://pypi.python.org/pypi/prompt_toolkit/ https://github.com/jonathanslenders/python-prompt-toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/six-1.8.0[${PYTHON_USEDEP}]
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# not contained in tarball
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" "${S}"/tests/run_tests.py || die
+}
diff --git a/dev-python/prompt_toolkit/prompt_toolkit-0.42.ebuild b/dev-python/prompt_toolkit/prompt_toolkit-0.42.ebuild
new file mode 100644
index 00000000000..d3cd1777925
--- /dev/null
+++ b/dev-python/prompt_toolkit/prompt_toolkit-0.42.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="https://pypi.python.org/pypi/prompt_toolkit/ https://github.com/jonathanslenders/python-prompt-toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# not contained in tarball
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" "${S}"/tests/run_tests.py || die
+}
diff --git a/dev-python/prompt_toolkit/prompt_toolkit-0.43.ebuild b/dev-python/prompt_toolkit/prompt_toolkit-0.43.ebuild
new file mode 100644
index 00000000000..d3cd1777925
--- /dev/null
+++ b/dev-python/prompt_toolkit/prompt_toolkit-0.43.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="https://pypi.python.org/pypi/prompt_toolkit/ https://github.com/jonathanslenders/python-prompt-toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# not contained in tarball
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" "${S}"/tests/run_tests.py || die
+}
diff --git a/dev-python/prompt_toolkit/prompt_toolkit-0.45.ebuild b/dev-python/prompt_toolkit/prompt_toolkit-0.45.ebuild
new file mode 100644
index 00000000000..d3cd1777925
--- /dev/null
+++ b/dev-python/prompt_toolkit/prompt_toolkit-0.45.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="https://pypi.python.org/pypi/prompt_toolkit/ https://github.com/jonathanslenders/python-prompt-toolkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+# not contained in tarball
+RESTRICT="test"
+
+python_test() {
+ "${PYTHON}" "${S}"/tests/run_tests.py || die
+}
diff --git a/dev-python/protorpc/Manifest b/dev-python/protorpc/Manifest
new file mode 100644
index 00000000000..46cd038e311
--- /dev/null
+++ b/dev-python/protorpc/Manifest
@@ -0,0 +1 @@
+DIST protorpc-0.10.0.tar.gz 116667 SHA256 9c612f2898cfd769feae6257b0dcf01e0aff29d5d0a2207c3fade4d49434aa4f SHA512 39932f365f25f73b0badfb868e4be13d24a57aa2388ee8802da46420aa8af053a0f26f51c97599dd5a221e66d0b99ff2743d8dccbe03c42fdbaa9e5f9c8e8fa6 WHIRLPOOL 41ad941b97a90cfac7438bb3ed062ad448f8938ecf5a58d9968cc48cdce73b59e7bdc541ad6b61196c249cd6b13b9e3daab59498b3093b4a7743248baacdbba7
diff --git a/dev-python/protorpc/metadata.xml b/dev-python/protorpc/metadata.xml
new file mode 100644
index 00000000000..20a58d91a28
--- /dev/null
+++ b/dev-python/protorpc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">google/protorpc</remote-id>
+ <remote-id type="pypi">protorpc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/protorpc/protorpc-0.10.0.ebuild b/dev-python/protorpc/protorpc-0.10.0.ebuild
new file mode 100644
index 00000000000..75346dd7dcb
--- /dev/null
+++ b/dev-python/protorpc/protorpc-0.10.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Google Protocol RPC"
+HOMEPAGE="https://github.com/google/protorpc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pssi/Manifest b/dev-python/pssi/Manifest
new file mode 100644
index 00000000000..147207fcdc7
--- /dev/null
+++ b/dev-python/pssi/Manifest
@@ -0,0 +1 @@
+DIST pssi-1.0.tar 266240 SHA256 8c669ec679b1a5107b7446436bbe12ac75763da7d9cbb7d4508942d0b5cce81b SHA512 0127a74d4298d1c5bc3a05a559a5f3e15e1bc759edbeb3750f2557119e06c0b73c559aefd567e2416d8c90fd5772bc6614f2e81c7e9219e3cb29ea03736a233a WHIRLPOOL cf63967d73d709799e5407c238d83ec45bd02c13dcc451ab617e7501d1c9dfd45cff2beda11354855f75d36a474f377bbd8beb9d71bef766f1d9b704fcf9223b
diff --git a/dev-python/pssi/metadata.xml b/dev-python/pssi/metadata.xml
new file mode 100644
index 00000000000..d268875292d
--- /dev/null
+++ b/dev-python/pssi/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>crypto</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">pssi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pssi/pssi-1.0-r1.ebuild b/dev-python/pssi/pssi-1.0-r1.ebuild
new file mode 100644
index 00000000000..2b3d61b439f
--- /dev/null
+++ b/dev-python/pssi/pssi-1.0-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Simple Smartcard Interpreter"
+HOMEPAGE="http://code.google.com/p/pssi/"
+SRC_URI="http://pssi.googlecode.com/files/${P}.tar"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="dev-python/pyscard[${PYTHON_USEDEP}]"
diff --git a/dev-python/psutil/Manifest b/dev-python/psutil/Manifest
new file mode 100644
index 00000000000..554c66b5cfd
--- /dev/null
+++ b/dev-python/psutil/Manifest
@@ -0,0 +1,6 @@
+DIST psutil-1.2.1.tar.gz 167397 SHA256 508e4a44c8253a386a0f86d9c9bd4a1b4cbb2f94e88d49a19c1513653ca66c45 SHA512 9faec6c4139f677252b30f4a8793484658d888535428dfb4e316821bb5f246e1832baedd8704279a7e0da7096d539f1a8dcd49f2d61d943f9299e9204ff47d81 WHIRLPOOL e6b13df0c6f70e5d92a88bd540ad2e2f4d670463e1ec815a3eb3b6b009715dd7c0a96b73a03c5819fb3eb3b30f63a1299d6668ffef992a408d8d1b78d33dea43
+DIST psutil-2.1.3.tar.gz 224008 SHA256 b434c75f01715777391f10f456002e33d0ca14633f96fdbd9ff9139b42d9452c SHA512 12a566c2c53897d858bd75455da8f52d9d9279e28dc0df40594275626f75da716d82c8f67d1fc37df4bd3bc05fef401391cb6c52380c819d1e82fb4edd11f843 WHIRLPOOL 75c8475fc55c5a04858ba8acba0e57f9daa06aed6badf68b484d5ff0dc9c6e52066472bb78350113c1ebe755baf4ab205e347cbb5b2bac3eb4857a2fe0dd8f3f
+DIST psutil-2.2.0.tar.gz 223676 SHA256 b15cc9e7cad0991bd1cb806fa90ea85ba3a95d0f1226625ecef993294ad61521 SHA512 5ea2f0eb2c952314b5683f92582deb2fd7da01a285f984870c64b78dba5c33b6b2f97d5c0e3a05d16fbeb921e22a1e2d165145767205ef4fa76fc424a382c50d WHIRLPOOL e938eec8e2863a52e85eebf2574ea16d984fa06fce31add930c5708c4e2c7d50e9a0f3cb2b2e36201a10a76aa1c10ae2851e2423c69efa668003d171769514cd
+DIST psutil-2.2.1.tar.gz 223688 SHA256 a0e9b96f1946975064724e242ac159f3260db24ffa591c3da0a355361a3a337f SHA512 aa49dfdab8497ce3064465a35d8a99115e269f8b01af61379c35b68fbc31cca31f2a639c44f6cdf5dcf12f161355285e0e6ce2663ef46d43852dc6b3fda389aa WHIRLPOOL fa8f27af83661f22121fc6cfa9306e31d2dd2c32c800393d7f0b3d70342f6d741a3a38d6d904bf817437fd9ba80107940ea0cc193612980177c0c3bc7c1bb068
+DIST psutil-3.0.1.tar.gz 241539 SHA256 3f213b9ceed3c3068a973e04d7a8b2a29d1076abcb5ef45382517bfc6b808801 SHA512 38ea65bd91ab2cb6caa88362840d84ad5042fff037ad7b2ff1505e6a014135bd219caea9b48cdb9b5d952eeccc145ee84029f446fbc709c39dc3cc6bd8974846 WHIRLPOOL a536f08c173b606f1e78c27dd8786d469d4dae1ca5e43f997b2c1e74fa129b391d2d2e345f43da0f1a80f1bbd474eb515b62adc60aa78eea9e1b69bfe2ec2edf
+DIST psutil-3.1.1.tar.gz 247284 SHA256 d3290bd4a027fa0b3a2e2ee87728056fe49d4112640e2b8c2ea4dd94ba0cf057 SHA512 13393ae083f6881a3e9ac84c0778c622d9a484aeab39705200f9a36386adc2f5a4236db72e1de68aadd90204982ef43ee00c0f3ac61d23fc532d92ab6914d830 WHIRLPOOL f035e7d7de5712e39349806e758afa9d45b7c683b4e3bd9390279900749e3da452df02118ff9a6a047a7c16333d68c6d081dafae0782092b329bc832dd646c97
diff --git a/dev-python/psutil/metadata.xml b/dev-python/psutil/metadata.xml
new file mode 100644
index 00000000000..38e5b2d54f7
--- /dev/null
+++ b/dev-python/psutil/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">psutil</remote-id>
+ <remote-id type="github">giampaolo/psutil</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/psutil/psutil-1.2.1.ebuild b/dev-python/psutil/psutil-1.2.1.ebuild
new file mode 100644
index 00000000000..39d7f30da80
--- /dev/null
+++ b/dev-python/psutil/psutil-1.2.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Retrieve information on running processes and system utilization"
+HOMEPAGE="http://code.google.com/p/psutil/ https://pypi.python.org/pypi/psutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/psutil/psutil-2.1.3.ebuild b/dev-python/psutil/psutil-2.1.3.ebuild
new file mode 100644
index 00000000000..ed971a5d4ac
--- /dev/null
+++ b/dev-python/psutil/psutil-2.1.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Retrieve information on running processes and system utilization"
+HOMEPAGE="https://github.com/giampaolo/psutil https://pypi.python.org/pypi/psutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+RESTRICT="test"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/psutil/psutil-2.2.0.ebuild b/dev-python/psutil/psutil-2.2.0.ebuild
new file mode 100644
index 00000000000..40150df09cc
--- /dev/null
+++ b/dev-python/psutil/psutil-2.2.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Retrieve information on running processes and system utilization"
+HOMEPAGE="https://github.com/giampaolo/psutil https://pypi.python.org/pypi/psutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+RESTRICT="test"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/psutil/psutil-2.2.1.ebuild b/dev-python/psutil/psutil-2.2.1.ebuild
new file mode 100644
index 00000000000..40150df09cc
--- /dev/null
+++ b/dev-python/psutil/psutil-2.2.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Retrieve information on running processes and system utilization"
+HOMEPAGE="https://github.com/giampaolo/psutil https://pypi.python.org/pypi/psutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+RESTRICT="test"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/psutil/psutil-3.0.1.ebuild b/dev-python/psutil/psutil-3.0.1.ebuild
new file mode 100644
index 00000000000..396fa6ec7d3
--- /dev/null
+++ b/dev-python/psutil/psutil-3.0.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Retrieve information on running processes and system utilization"
+HOMEPAGE="https://github.com/giampaolo/psutil https://pypi.python.org/pypi/psutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+RESTRICT="test"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/psutil/psutil-3.1.1.ebuild b/dev-python/psutil/psutil-3.1.1.ebuild
new file mode 100644
index 00000000000..396fa6ec7d3
--- /dev/null
+++ b/dev-python/psutil/psutil-3.1.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Retrieve information on running processes and system utilization"
+HOMEPAGE="https://github.com/giampaolo/psutil https://pypi.python.org/pypi/psutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+RESTRICT="test"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
new file mode 100644
index 00000000000..c4df0ec4f2e
--- /dev/null
+++ b/dev-python/psycopg/Manifest
@@ -0,0 +1,5 @@
+DIST psycopg-1.1.21.tar.gz 213753 SHA256 f487d02e8e8837ec7e62e4e0f50bcb974e73b7765333b032ac50c07bf12ce240 SHA512 2681e8b3c4873f69a1a07aa4d3908a42f8e8be9392adbed189fe72c1a601699ac08643d24454622baf4b26153ef3a687f27a941308368e2227cb98ff948322eb WHIRLPOOL 022a4e1a01ac30338f2be14e549a9f35028c7bef7bb8f8a6e4602425ddff07d89e049d362a9b49f760e89afb52f153f3f0a197b828b79f75245f26fcf48a9c4b
+DIST psycopg2-2.5.3.tar.gz 690689 SHA256 3a2df3bb113187227aa97d0dd3d06e0f26be3d50dcdeeaef67fac59ed51a030a SHA512 88590c37be839e8cf5025b7ac40411c4682269700795c5f8f1b762966d906faf3f1ee85de35fc734a2d10c6a68d7fef569891bd96919bab809b9500625e2a41a WHIRLPOOL dccd694dfb2192992731e982b085ba4feb3b2b89d56c9e69ec88e0efbd14ec7367841849958aa1e9f190179b300ce511532d6b23e51b4f96babc302f37efcf4f
+DIST psycopg2-2.5.4.tar.gz 682578 SHA256 24ba3f328aba08d8d505bc2a8f68a94ebe24a85e8483640b667221bc0efd3b1e SHA512 24e7f7940cb55ad686d93c5baa3286be56a5c21376868403248fff919e54cfa57c039623c1b8c10947fa206aabb9eb865e051520a5a0445be133962eed016854 WHIRLPOOL bce35d47eb2025cf01ea9b7597318d56fcdf84b0cd29e251068f3f20c1f2c5b6ee5050fef6360c690c27d84f334b73a29553389f5e8a28b416151eb32c4b37f9
+DIST psycopg2-2.6.1.tar.gz 371373 SHA256 6acf9abbbe757ef75dc2ecd9d91ba749547941abaffbe69ff2086a9e37d4904c SHA512 00705f6b417acc89e2e66b7bdc25c31d92de7610173fe41b2b35728ebb6b55ef8c7df67032c2a2e3d908d8599a1d378578ade77bd19f5f186fbf2596290eda69 WHIRLPOOL 87ea72ed7ee762e7071a58a37a8b433d1ead28ab494100e790e01a602af41b4e5f04b3f27fd21bd3db3c74e5c35dc0d28ed42fa1e60925861a05bdfbada444d1
+DIST psycopg2-2.6.tar.gz 367972 SHA256 c00afecb302a99a4f83dec9b055c4d1cc196926d62c8db015d68432df8118ca8 SHA512 50618bef6372d9cf165bc9ee2f1c3d77727f359fdded825cdf9b6dfd513a9455fd5d935dfda203b2affa43c45cf86bb25b742db6f6b8228cc2fb293aa42bc4f1 WHIRLPOOL fee5180674ec60a6ade287a6f30efddaa8e4a830e8719a892c1aff22aa66ce4c5dd8fa5acf75f6cc17d8f65c104c79da129b664619f137f21618230d08308933
diff --git a/dev-python/psycopg/files/psycopg-2.0.9-round-solaris.patch b/dev-python/psycopg/files/psycopg-2.0.9-round-solaris.patch
new file mode 100644
index 00000000000..49d230c3b84
--- /dev/null
+++ b/dev-python/psycopg/files/psycopg-2.0.9-round-solaris.patch
@@ -0,0 +1,13 @@
+round() is available on Solaris
+
+--- psycopg/config.h
++++ psycopg/config.h
+@@ -102,7 +102,7 @@
+ #define inline
+ #endif
+
+-#if (defined(__FreeBSD__) && __FreeBSD_version < 503000) || (defined(_WIN32) && !defined(__GNUC__)) || defined(__sun__) || defined(sun)
++#if (defined(__FreeBSD__) && __FreeBSD_version < 503000) || (defined(_WIN32) && !defined(__GNUC__))
+ /* what's this, we have no round function either? */
+ static double round(double num)
+ {
diff --git a/dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch b/dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch
new file mode 100644
index 00000000000..cbf2278d0bf
--- /dev/null
+++ b/dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch
@@ -0,0 +1,34 @@
+X-Git-Url: https://dndg.it/cgi-bin/gitweb.cgi?p=public%2Fpsycopg2.git;a=blobdiff_plain;f=psycopg%2Fpqpath.c;h=1f0d5da95bd88aa4d5468874047e4b0139ffadd3;hp=cee5ce4c9c053981710959ca28b7e68702c44a97;hb=de6f2ac387231fcd57c05031c82471ea57255e2b;hpb=d9fce1f837151e6eadfd8ca761ef328a721198bd
+
+diff --git a/psycopg/pqpath.c b/psycopg/pqpath.c
+index cee5ce4..1f0d5da 100644
+--- a/psycopg/pqpath.c
++++ b/psycopg/pqpath.c
+@@ -344,11 +344,13 @@ pq_execute_command_locked(connectionObject *conn, const char *query,
+ }
+ if (*pgres == NULL) {
+ Dprintf("pq_execute_command_locked: PQexec returned NULL");
++ PyEval_RestoreThread(*tstate);
+ if (!PyErr_Occurred()) {
+ const char *msg;
+ msg = PQerrorMessage(conn->pgconn);
+ if (msg && *msg) { *error = strdup(msg); }
+ }
++ *tstate = PyEval_SaveThread();
+ goto cleanup;
+ }
+
+@@ -635,11 +637,13 @@ pq_get_guc_locked(
+
+ if (*pgres == NULL) {
+ Dprintf("pq_get_guc_locked: PQexec returned NULL");
++ PyEval_RestoreThread(*tstate);
+ if (!PyErr_Occurred()) {
+ const char *msg;
+ msg = PQerrorMessage(conn->pgconn);
+ if (msg && *msg) { *error = strdup(msg); }
+ }
++ *tstate = PyEval_SaveThread();
+ goto cleanup;
+ }
+ if (PQresultStatus(*pgres) != PGRES_TUPLES_OK) { \ No newline at end of file
diff --git a/dev-python/psycopg/files/psycopg-2.4.2-setup.py.patch b/dev-python/psycopg/files/psycopg-2.4.2-setup.py.patch
new file mode 100644
index 00000000000..a35502270e1
--- /dev/null
+++ b/dev-python/psycopg/files/psycopg-2.4.2-setup.py.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index e03876a..f5ec2ac 100644
+--- a/setup.py
++++ b/setup.py
+@@ -461,7 +461,7 @@ if parser.has_option('build_ext', 'mx_include_dir'):
+ mxincludedir = parser.get('build_ext', 'mx_include_dir')
+ else:
+ mxincludedir = os.path.join(get_python_inc(plat_specific=1), "mx")
+-if os.path.exists(mxincludedir):
++if not use_pydatetime and os.path.exists(mxincludedir):
+ # Build the support for mx: we will check at runtime if it can be imported
+ include_dirs.append(mxincludedir)
+ define_macros.append(('HAVE_MXDATETIME', '1')) \ No newline at end of file
diff --git a/dev-python/psycopg/metadata.xml b/dev-python/psycopg/metadata.xml
new file mode 100644
index 00000000000..ff3e2390552
--- /dev/null
+++ b/dev-python/psycopg/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">psycopg2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/psycopg/psycopg-1.1.21-r1.ebuild b/dev-python/psycopg/psycopg-1.1.21-r1.ebuild
new file mode 100644
index 00000000000..423a63ae0f2
--- /dev/null
+++ b/dev-python/psycopg/psycopg-1.1.21-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools-utils python-r1
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="http://www.initd.org/software/psycopg"
+SRC_URI="http://initd.org/pub/software/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86"
+IUSE="examples"
+
+RDEPEND=">=dev-python/egenix-mx-base-2.0.3[${PYTHON_USEDEP}]
+ dev-db/postgresql
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ # fix for bug #134873
+ sed -e '1245s/static //' -i cursor.c || die
+ sed -e 's:$(PY_MOD_DIR):$(D)&/$$mod:' \
+ -e '/^CFLAGS/s:-I:-I. &:' \
+ -i Makefile.pre.in || die
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ python_configure() {
+ local myeconfargs=(
+ --with-mxdatetime-includes="$(python_get_includedir)/mx"
+ --with-postgres-includes="/usr/include/postgresql/server"
+ )
+
+ autotools-utils_src_configure
+
+ sed -e 's:$(BLDSHARED):& $(LDFLAGS):' \
+ -i "${BUILD_DIR}"/Makefile || die
+ }
+ python_foreach_impl python_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile \
+ OPT="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+src_test() {
+ :
+}
+
+src_install () {
+ python_install() {
+ dodir "$(python_get_sitedir)"
+ autotools-utils_src_install
+ }
+
+ python_foreach_impl python_install
+
+ dodoc RELEASE-1.0 SUCCESS doc/python-taylor.txt
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r doc/examples/.
+ docompress -x "${INSDESTTREE}"
+ fi
+}
diff --git a/dev-python/psycopg/psycopg-2.5.3.ebuild b/dev-python/psycopg/psycopg-2.5.3.ebuild
new file mode 100644
index 00000000000..b37aec71b60
--- /dev/null
+++ b/dev-python/psycopg/psycopg-2.5.3.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="http://initd.org/psycopg/ http://pypi.python.org/pypi/psycopg2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="2"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc examples"
+
+RDEPEND=">=dev-db/postgresql-8.1"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+
+ [[ ${EPYTHON} != python3* ]] && append-flags -fno-strict-aliasing
+
+ distutils-r1_python_compile
+}
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-2.4.2-setup.py.patch"
+ )
+
+ if use debug; then
+ sed -i 's/^\(define=\)/\1PSYCOPG_DEBUG,/' setup.cfg || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc -j1 html text
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc doc/{HACKING,SUCCESS}
+
+ if use doc; then
+ dodoc doc/psycopg2.txt
+ dohtml -r doc/html/.
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples/.
+ fi
+}
diff --git a/dev-python/psycopg/psycopg-2.5.4.ebuild b/dev-python/psycopg/psycopg-2.5.4.ebuild
new file mode 100644
index 00000000000..a640e0da5fe
--- /dev/null
+++ b/dev-python/psycopg/psycopg-2.5.4.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="http://initd.org/psycopg/ http://pypi.python.org/pypi/psycopg2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc examples"
+
+RDEPEND=">=dev-db/postgresql-8.1"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7 )"
+
+RESTRICT="test"
+# Remove py3.2 entry from intersphinx setting
+PATCHES=( "${FILESDIR}/"${PN}-2.4.2-setup.py.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+
+ ! python_is_python3 && append-flags -fno-strict-aliasing
+
+ distutils-r1_python_compile
+}
+
+python_prepare_all() {
+ if use debug; then
+ sed -i 's/^\(define=\)/\1PSYCOPG_DEBUG,/' setup.cfg || die
+ fi
+
+ # Source local copy of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -e "s|'http://docs.python.org/', None|'${PYTHON_DOC}', '${PYTHON_DOC_INVENTORY}'|" \
+ -e "/^ 'py3':/d" -i doc/src/conf.py || die
+ einfo "conf.py patched"
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc -j1 html text
+}
+
+python_install_all() {
+ if use doc; then
+ dodoc doc/psycopg2.txt
+ dohtml -r doc/html/.
+ fi
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/psycopg/psycopg-2.6.1.ebuild b/dev-python/psycopg/psycopg-2.6.1.ebuild
new file mode 100644
index 00000000000..c3dd0d3202d
--- /dev/null
+++ b/dev-python/psycopg/psycopg-2.6.1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="http://initd.org/psycopg/ http://pypi.python.org/pypi/psycopg2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc examples"
+
+RDEPEND=">=dev-db/postgresql-8.1"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7 )"
+
+RESTRICT="test"
+# Remove py3.2 entry from intersphinx setting
+PATCHES=( "${FILESDIR}/"${PN}-2.4.2-setup.py.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+
+ ! python_is_python3 && append-flags -fno-strict-aliasing
+
+ distutils-r1_python_compile
+}
+
+python_prepare_all() {
+ if use debug; then
+ sed -i 's/^\(define=\)/\1PSYCOPG_DEBUG,/' setup.cfg || die
+ fi
+
+ # Source local copy of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -e "s|'http://docs.python.org/', None|'${PYTHON_DOC}', '${PYTHON_DOC_INVENTORY}'|" \
+ -e "/^ 'py3':/d" -i doc/src/conf.py || die
+ einfo "conf.py patched"
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc/src -j1 html text
+}
+
+python_install_all() {
+ if use doc; then
+ dohtml -r doc/src/_build/html/.
+ fi
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/psycopg/psycopg-2.6.ebuild b/dev-python/psycopg/psycopg-2.6.ebuild
new file mode 100644
index 00000000000..c3dd0d3202d
--- /dev/null
+++ b/dev-python/psycopg/psycopg-2.6.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="http://initd.org/psycopg/ http://pypi.python.org/pypi/psycopg2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc examples"
+
+RDEPEND=">=dev-db/postgresql-8.1"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/python-docs-2.7.6-r1:2.7 )"
+
+RESTRICT="test"
+# Remove py3.2 entry from intersphinx setting
+PATCHES=( "${FILESDIR}/"${PN}-2.4.2-setup.py.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+
+ ! python_is_python3 && append-flags -fno-strict-aliasing
+
+ distutils-r1_python_compile
+}
+
+python_prepare_all() {
+ if use debug; then
+ sed -i 's/^\(define=\)/\1PSYCOPG_DEBUG,/' setup.cfg || die
+ fi
+
+ # Source local copy of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -e "s|'http://docs.python.org/', None|'${PYTHON_DOC}', '${PYTHON_DOC_INVENTORY}'|" \
+ -e "/^ 'py3':/d" -i doc/src/conf.py || die
+ einfo "conf.py patched"
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc/src -j1 html text
+}
+
+python_install_all() {
+ if use doc; then
+ dohtml -r doc/src/_build/html/.
+ fi
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ptpython/Manifest b/dev-python/ptpython/Manifest
new file mode 100644
index 00000000000..a5e2b7b6d75
--- /dev/null
+++ b/dev-python/ptpython/Manifest
@@ -0,0 +1,7 @@
+DIST ptpython-0.10.tar.gz 20693 SHA256 d4229b8c48e8e0dcb596a3e4983fb00443aa565a7a9c0fdb2d8457424e7309e1 SHA512 7576b541de1ca69e247f15343bbc06a83683ed47fc4a955da95b3afed73b4dcb512988df802750d6620236b46f6bb24eab1d9ff5288606bfa52c05c577091bb6 WHIRLPOOL 486bca6fa38a4352a3071af095adc4d002cd4d8ef6c80d5092789885535514b6d13659cd1792cfd0167b651316d8340e2ce59db167e0182e35cb128872a7482e
+DIST ptpython-0.11.tar.gz 21759 SHA256 50b66e6544f50b156cbad8afa299df11e39c288dabd618f5b22ebee7776ccab2 SHA512 4762235eedba1e149cb7e2b8bf84c8d4de1281bb2b571484bdc82951da691d84faa0ad90fa82104e2adfc4074f4c21aaffb06edab148be5341086e4dfb2fbd72 WHIRLPOOL 41eab5ff26562596bd2d71bc3608d07b9d6b290914878d0b1c743782e64cd071fa7945211dbf77b117f906220f74b2a3ecc999e97bcdd06f5b68b5a5f843f630
+DIST ptpython-0.12.tar.gz 21761 SHA256 a6e1f0499c428f37bb5227408dc5534bda2bb6d154cd5964ab94cf398f62c71e SHA512 9a418b80257cf9c2828b9484f415c597e0f81acfa583292f0b63199d8f6d0a4191739ec4f9ff34b7258909d849aa81af4fac026372262999c48b3e0cfb014682 WHIRLPOOL 402c4bb24364ff26aa6b9de05f847dc319e17014c4822bbcbc5d99241844556e382875e498a66f75d1ffd23ccd353a431419fa6589877c2c46bb07304c809a13
+DIST ptpython-0.15.tar.gz 26567 SHA256 6aa11f0393ce34b6e5376263b6a07c910032267b0c3d12e0c913a510882d4a40 SHA512 b77824c20fde7046ddd9c10cf818aa7454ad9c4b116b1c48da7a214dbeb2634193eaaba6a6aa757b82e6003f01fa31bef739fb8a063856caaf647942bea36a78 WHIRLPOOL 535ff8e4679ff2ceae24f8278aae8e31cb1feebc478ca6c13f82b367a425948d7b44afde52b560925e9cdca87d016772bbfc3dffe170ec9c25c35c8768ff7c40
+DIST ptpython-0.16.tar.gz 28264 SHA256 50737e5d3c16e0c447c2865dd5b5f66e9de0956a86be07dcce14335ef1e7c1d5 SHA512 f15e8624deac55852f610bfb771b9899da7898b3e6d3eb40a70a276b3076304d4f55be07967a351899af499346f01a8d0b047415fd5126bfaa811a8fec230989 WHIRLPOOL a7ddab2842e218a7e7e97777e3d4fa0afef33534e3cb1468b5f6d38e2594f124b2ece8a362d7891e5aa1433bdec4f136cf49cd45326194012e8cef1b44a9465d
+DIST ptpython-0.18.tar.gz 29450 SHA256 be231639bd0dba13c1dc34af1728111bd8a2bf2b25bb18b3b58ad7a28432668d SHA512 3831177c1c93259dd974a30b4ee2722da8d0ac3e8f9d53ff5430fc1d9bbe8d5b7cfec4e54b101272ee98b81bee392b81af7a0ce06b94ca421cf4904ef6311753 WHIRLPOOL 127c4ddd2037b775600f6fcfc7ee1441f64361934661468648e3f6e29f065b4f6ae8d30c686c293405e47d8e04ecc78fcb968bd1576bda6156c6e22a0fd9cbe6
+DIST ptpython-0.20.tar.gz 29618 SHA256 a6ebe6f6e496693c69f460e46296492832b47997a0feea069b386cf9bee5bc4f SHA512 2ff701d65f449676bd51cad6287723497a6ff8dd2dda5daf992125892c9d1131bfce7c648e8d53260e9d9a33d648ed1b97bb32f60253c106e6f96a58dcece848 WHIRLPOOL c5ab855f747f785c5c29f54346eac6285779dfea054073caea4769e6a92593e48fc84fc2ed69cfcc6f44b17e1323f646c8a6070c892bcf1caf66f128ea748ff6
diff --git a/dev-python/ptpython/metadata.xml b/dev-python/ptpython/metadata.xml
new file mode 100644
index 00000000000..ee6c1ab57b1
--- /dev/null
+++ b/dev-python/ptpython/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ptpython</remote-id>
+ <remote-id type="github">jonathanslenders/ptpython</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ptpython/ptpython-0.10.ebuild b/dev-python/ptpython/ptpython-0.10.ebuild
new file mode 100644
index 00000000000..920561d83a5
--- /dev/null
+++ b/dev-python/ptpython/ptpython-0.10.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python REPL build on top of prompt_toolkit"
+HOMEPAGE="https://pypi.python.org/pypi/ptpython/ https://github.com/jonathanslenders/ptpython"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/prompt_toolkit-0.37[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.8.1-r1[${PYTHON_USEDEP}]
+ dev-python/docopt[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+pkg_postinst() {
+ optfeature "ipython enhanced version" dev-python/ipython
+}
diff --git a/dev-python/ptpython/ptpython-0.11.ebuild b/dev-python/ptpython/ptpython-0.11.ebuild
new file mode 100644
index 00000000000..3a9080843cc
--- /dev/null
+++ b/dev-python/ptpython/ptpython-0.11.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python REPL build on top of prompt_toolkit"
+HOMEPAGE="https://pypi.python.org/pypi/ptpython/ https://github.com/jonathanslenders/ptpython"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/prompt_toolkit-0.38[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.9.0[${PYTHON_USEDEP}]
+ dev-python/docopt[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+pkg_postinst() {
+ optfeature "ipython enhanced version" dev-python/ipython
+}
diff --git a/dev-python/ptpython/ptpython-0.12.ebuild b/dev-python/ptpython/ptpython-0.12.ebuild
new file mode 100644
index 00000000000..e735ff081d2
--- /dev/null
+++ b/dev-python/ptpython/ptpython-0.12.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python REPL build on top of prompt_toolkit"
+HOMEPAGE="https://pypi.python.org/pypi/ptpython/ https://github.com/jonathanslenders/ptpython"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/prompt_toolkit-0.39[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.9.0[${PYTHON_USEDEP}]
+ dev-python/docopt[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+pkg_postinst() {
+ optfeature "ipython enhanced version" dev-python/ipython
+}
diff --git a/dev-python/ptpython/ptpython-0.15.ebuild b/dev-python/ptpython/ptpython-0.15.ebuild
new file mode 100644
index 00000000000..059c822fd38
--- /dev/null
+++ b/dev-python/ptpython/ptpython-0.15.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python REPL build on top of prompt_toolkit"
+HOMEPAGE="https://pypi.python.org/pypi/ptpython/ https://github.com/jonathanslenders/ptpython"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/prompt_toolkit-0.41[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.9.0[${PYTHON_USEDEP}]
+ dev-python/docopt[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+pkg_postinst() {
+ optfeature "ipython enhanced version" dev-python/ipython
+}
diff --git a/dev-python/ptpython/ptpython-0.16.ebuild b/dev-python/ptpython/ptpython-0.16.ebuild
new file mode 100644
index 00000000000..dc538ba6283
--- /dev/null
+++ b/dev-python/ptpython/ptpython-0.16.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python REPL build on top of prompt_toolkit"
+HOMEPAGE="https://pypi.python.org/pypi/ptpython/ https://github.com/jonathanslenders/ptpython"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/prompt_toolkit-0.42[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.9.0[${PYTHON_USEDEP}]
+ dev-python/docopt[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+pkg_postinst() {
+ optfeature "ipython enhanced version" dev-python/ipython
+}
diff --git a/dev-python/ptpython/ptpython-0.18.ebuild b/dev-python/ptpython/ptpython-0.18.ebuild
new file mode 100644
index 00000000000..f5219a78413
--- /dev/null
+++ b/dev-python/ptpython/ptpython-0.18.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python REPL build on top of prompt_toolkit"
+HOMEPAGE="https://pypi.python.org/pypi/ptpython/ https://github.com/jonathanslenders/ptpython"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/prompt_toolkit-0.43[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.9.0[${PYTHON_USEDEP}]
+ dev-python/docopt[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+pkg_postinst() {
+ optfeature "ipython enhanced version" dev-python/ipython
+}
diff --git a/dev-python/ptpython/ptpython-0.20.ebuild b/dev-python/ptpython/ptpython-0.20.ebuild
new file mode 100644
index 00000000000..2fe19bf86a4
--- /dev/null
+++ b/dev-python/ptpython/ptpython-0.20.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python REPL build on top of prompt_toolkit"
+HOMEPAGE="https://pypi.python.org/pypi/ptpython/ https://github.com/jonathanslenders/ptpython"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/prompt_toolkit-0.45[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.9.0[${PYTHON_USEDEP}]
+ dev-python/docopt[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+pkg_postinst() {
+ optfeature "ipython enhanced version" dev-python/ipython
+}
diff --git a/dev-python/ptyprocess/Manifest b/dev-python/ptyprocess/Manifest
new file mode 100644
index 00000000000..d18d3bd5f6f
--- /dev/null
+++ b/dev-python/ptyprocess/Manifest
@@ -0,0 +1 @@
+DIST ptyprocess-0.5.tar.gz 14923 SHA256 dcb78fb2197b49ca1b7b2f37b047bc89c0da7a90f90bd5bc17c3ce388bb6ef59 SHA512 6619bfc1dfc7c980ffc72dba62697692eb749f19500616e8783cfdc3c35980276eb39070f4cd7932775abb5e798c921b9320c5f51b9052f526585f01cd56259e WHIRLPOOL b1bd0da485ea106a3d366ab21dc714418b8d392a32fc3386ef734362da8ee455a38f9330cedfe35687be09bea3ff622c54440119fca72d7787d9a29518717b77
diff --git a/dev-python/ptyprocess/metadata.xml b/dev-python/ptyprocess/metadata.xml
new file mode 100644
index 00000000000..4247009662e
--- /dev/null
+++ b/dev-python/ptyprocess/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ptyprocess</remote-id>
+ <remote-id type="github">pexpect/ptyprocess</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ptyprocess/ptyprocess-0.5.ebuild b/dev-python/ptyprocess/ptyprocess-0.5.ebuild
new file mode 100644
index 00000000000..fbce9037ce2
--- /dev/null
+++ b/dev-python/ptyprocess/ptyprocess-0.5.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Run a subprocess in a pseudo terminal"
+HOMEPAGE="https://github.com/pexpect/ptyprocess"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test --verbose --verbose || die
+}
diff --git a/dev-python/pudb/Manifest b/dev-python/pudb/Manifest
new file mode 100644
index 00000000000..388a4611eb8
--- /dev/null
+++ b/dev-python/pudb/Manifest
@@ -0,0 +1,6 @@
+DIST pudb-2013.3.6.tar.gz 41493 SHA256 81b20a995803c4be513e6d36c8ec9a531d3ccb24670b2416abc20f3933ddb8be SHA512 fe9caf2e1d05c8162712a828cbbc9bb9366a397cc3b934dc64ff9ff9d8493dc77bb4be09635a564784c037c6a57c04eeadb01c6e98caf7f975da7f2ba5b6e897 WHIRLPOOL 640026b5e788f781235211b484443ccc3ecb0545d9e41d221ffda15c4c2f7a999fc0628d77f314f600ee0510c0541d52368a78b2a079f82cd3a132c36243de13
+DIST pudb-2013.5.1.tar.gz 45109 SHA256 7606ef0502bbdd18d7468cf969f1364a11a0b2f1b7d94cda9e4ef14978a74ccd SHA512 b6e271bdf523f5975281c13bf79d6945c32064a3da2e70b2dfbf39fb938f30d927bbbe0b943e1b59b3c12ecd166dc5aa5bea5a102ed9d546c916e59cfb7f8710 WHIRLPOOL 81f1aefb2abb3c3a0a5a4c9b24e79dcd38b03c041de34a45000e7e57eae0889ec2d39804f8ecd1e67abd642e59e6b43b8d6b06ce175b92793ebdfbe732c0cfc0
+DIST pudb-2014.1.tar.gz 46489 SHA256 75453feb20a29c6b40132af658dd58a9eb6e22e27c11babd5b5828bbaf1f2137 SHA512 90858729faa087a3d824a735153efbb63728d082cccdd08ee7505341910e3f155613885ff95f405c05272b7d32a6eb1c8c4b143495c352223b04b0ec401196fb WHIRLPOOL 4bbd7564387152350a7ced0e50a7411c8270486732382bcf0c05cde129b49692f63453f79d65e92b4101ba4cfc627b84ab96a2f180bf1d8ae67de68443003487
+DIST pudb-2015.1.tar.gz 45079 SHA256 b01e2bb0e74d733ae3c6dca8f5d0fa86b5ebd54243892e890f1b352787e4d024 SHA512 e1378574a0cb6a790466cd0050f78f0bf14743cfabebe6a39e22efe6422859f7c5388b31f0df2136a84048a3f95444bd8cc6885fa93bc60de1e9dd7ffd9f495e WHIRLPOOL be2e98371c776f76bcd539da0bee488f91dd414e01f0078e1bde6133502bbdf5a20eb23e7a7ca1e25c951cb46b4fe7b34a7c6355a465a5afdca0f509f112c582
+DIST pudb-2015.2.tar.gz 45297 SHA256 68499d1c3df2b14a0679ba103e858393fc4f83145614cb41edfa7ce8a9c3c2db SHA512 5338985b8f6a54fb1a19067af57edc5da8e43d7e19299b8f06742311af60ac62fea884fd7fb4fa6ea5c891473cecaddc17e6728943a4abb282359892f128227d WHIRLPOOL 180ba9e8e4f3a492788ccb7135dd4e1912daaa3d83c4e43e7d44d2d98bfb40cad786133e4a0229e65c7813d0d2aab13d5b2f0399e4d51c6539f713b4dc4f5c0f
+DIST pudb-2015.3.tar.gz 46921 SHA256 1e875137a6254e30bbff62d3d0aedcaea74778fdef583035abd9898b3a8a040c SHA512 b702667c5a91656483020bf4332f49082421c69ef8b464e0a4da8ef042a9220fb7cb524dd0bcc43a8b66bb212c4ca44de906e21f8be713f2f6b5d343627541da WHIRLPOOL 2e753caa4b62e04a824293b821c6857bfc15540cdf7035bce8cedc817d52bbf8e146ffca0c3db9e8a5fea243a2b78a8bc5b3ac28e597f808c8a019f2b75984d4
diff --git a/dev-python/pudb/metadata.xml b/dev-python/pudb/metadata.xml
new file mode 100644
index 00000000000..9031f0b5e0c
--- /dev/null
+++ b/dev-python/pudb/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>A full-screen, console-based Python debugger</longdescription>
+ <upstream>
+ <remote-id type="pypi">pudb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pudb/pudb-2013.3.6.ebuild b/dev-python/pudb/pudb-2013.3.6.ebuild
new file mode 100644
index 00000000000..8482aac8573
--- /dev/null
+++ b/dev-python/pudb/pudb-2013.3.6.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A full-screen, console-based Python debugger"
+HOMEPAGE="http://pypi.python.org/pypi/pudb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-interix ~x86-linux"
+
+RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pudb/pudb-2013.5.1.ebuild b/dev-python/pudb/pudb-2013.5.1.ebuild
new file mode 100644
index 00000000000..8482aac8573
--- /dev/null
+++ b/dev-python/pudb/pudb-2013.5.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A full-screen, console-based Python debugger"
+HOMEPAGE="http://pypi.python.org/pypi/pudb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-interix ~x86-linux"
+
+RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pudb/pudb-2014.1.ebuild b/dev-python/pudb/pudb-2014.1.ebuild
new file mode 100644
index 00000000000..b99f4672265
--- /dev/null
+++ b/dev-python/pudb/pudb-2014.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A full-screen, console-based Python debugger"
+HOMEPAGE="http://pypi.python.org/pypi/pudb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-interix ~x86-linux"
+
+RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pudb/pudb-2015.1.ebuild b/dev-python/pudb/pudb-2015.1.ebuild
new file mode 100644
index 00000000000..b99f4672265
--- /dev/null
+++ b/dev-python/pudb/pudb-2015.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A full-screen, console-based Python debugger"
+HOMEPAGE="http://pypi.python.org/pypi/pudb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-interix ~x86-linux"
+
+RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pudb/pudb-2015.2.ebuild b/dev-python/pudb/pudb-2015.2.ebuild
new file mode 100644
index 00000000000..b99f4672265
--- /dev/null
+++ b/dev-python/pudb/pudb-2015.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A full-screen, console-based Python debugger"
+HOMEPAGE="http://pypi.python.org/pypi/pudb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-interix ~x86-linux"
+
+RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pudb/pudb-2015.3.ebuild b/dev-python/pudb/pudb-2015.3.ebuild
new file mode 100644
index 00000000000..b99f4672265
--- /dev/null
+++ b/dev-python/pudb/pudb-2015.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A full-screen, console-based Python debugger"
+HOMEPAGE="http://pypi.python.org/pypi/pudb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-interix ~x86-linux"
+
+RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pudge/Manifest b/dev-python/pudge/Manifest
new file mode 100644
index 00000000000..8c2eef6654c
--- /dev/null
+++ b/dev-python/pudge/Manifest
@@ -0,0 +1 @@
+DIST pudge-0.1.3.tar.gz 62396 SHA256 d01c32923be4ded09eb6ca936b01f7d60ad50112ea4515f9e70f1d1f8135adf6 SHA512 149efd60d04a75de23b65b5c10df9b0c347b659d1c998812bd3dc438f2a398aff28352858d17ba3f456c2cba0006707102376bcdead380156338d2a379e6b06f WHIRLPOOL 85d08f8aefdc4e2e0c3464ef85219ddf430114ee60c9af25ba9a05d83dac4cfa267afc229240c261b84f8a21c49981ad5a61ffbb7267c052086f334f64821376
diff --git a/dev-python/pudge/metadata.xml b/dev-python/pudge/metadata.xml
new file mode 100644
index 00000000000..cd1625bb6e8
--- /dev/null
+++ b/dev-python/pudge/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pudge</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pudge/pudge-0.1.3-r1.ebuild b/dev-python/pudge/pudge-0.1.3-r1.ebuild
new file mode 100644
index 00000000000..7437798fbea
--- /dev/null
+++ b/dev-python/pudge/pudge-0.1.3-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A documentation generator for Python projects, using Restructured Text"
+HOMEPAGE="http://pudge.lesscode.org http://pypi.python.org/pypi/pudge"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+RDEPEND="dev-python/docutils[${PYTHON_USEDEP}]
+ >=dev-python/kid-0.9.5[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( ${RDEPEND} )"
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ "${PYTHON}" bin/pudge --modules=pudge --documents=doc/index.rst --dest=doc/html \
+ || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pupynere/Manifest b/dev-python/pupynere/Manifest
new file mode 100644
index 00000000000..bc8dd53d788
--- /dev/null
+++ b/dev-python/pupynere/Manifest
@@ -0,0 +1 @@
+DIST pupynere-1.0.15.tar.gz 8566 SHA256 b759b501406c950b576de1880f1dc080e05536ae42299267093e2379dac9086d SHA512 55b25ca4fb511d80b5eb11b8aa63949c80e9dda336ed1ad406314bbda669ee4ef836a3e01b71065eec0cf0b8556ef36c815a299a5620d50983074a2ff55ca5ba WHIRLPOOL 1dd1e7675c6d147035613e2b549ddf5cae4d6645c75f274691b350afa99e961f5cfaba75bba81b1a80b9057a798df7a531c122af086ac5263d76f95f736db2a3
diff --git a/dev-python/pupynere/metadata.xml b/dev-python/pupynere/metadata.xml
new file mode 100644
index 00000000000..4b41f58210e
--- /dev/null
+++ b/dev-python/pupynere/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">Pupynere is a Python module for reading and writing NetCDF files,
+ using the same API as Scientific.IO.NetCDF and pynetcdf.</longdescription>
+ <upstream>
+ <remote-id type="pypi">pupynere</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pupynere/pupynere-1.0.15-r1.ebuild b/dev-python/pupynere/pupynere-1.0.15-r1.ebuild
new file mode 100644
index 00000000000..6e4bedbdfdb
--- /dev/null
+++ b/dev-python/pupynere/pupynere-1.0.15-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pupynere is a PUre PYthon NEtcdf REader"
+HOMEPAGE="http://pypi.python.org/pypi/pupynere/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ "${PYTHON}" -m doctest -v "${BUILD_DIR}"/lib/pupynere.py \
+ || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pxml/Manifest b/dev-python/pxml/Manifest
new file mode 100644
index 00000000000..fa434adf8cf
--- /dev/null
+++ b/dev-python/pxml/Manifest
@@ -0,0 +1 @@
+DIST pxml-0.2.11.tar.gz 21088 SHA256 19edfd55a081fb46066b66fd726691be3416d6f93e80f3d0bb2f2a8d7bacb6c8 SHA512 1b71ca2b5e0e59158f52fbe70ef65f5fc14dec4aec1c7fa79f7fabd8dc33f63f63e70b61ba835d2c21f88c879fa6dd5c4aa7dad97ee49755e4a6844aeceea5e1 WHIRLPOOL 4d170075db8076c0ca94dd1f5ee52f6148c59b1e7cfd07557fe045a31bdf7d9b2f8e1e453ec9643cb4a0b466a7cb1622f02ecf0a8b831d9813a4af27d9f05070
diff --git a/dev-python/pxml/metadata.xml b/dev-python/pxml/metadata.xml
new file mode 100644
index 00000000000..44bc0e602ea
--- /dev/null
+++ b/dev-python/pxml/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pxml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pxml/pxml-0.2.11-r1.ebuild b/dev-python/pxml/pxml-0.2.11-r1.ebuild
new file mode 100644
index 00000000000..d459e741c7d
--- /dev/null
+++ b/dev-python/pxml/pxml-0.2.11-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A python library and command-line tool to "prettify" and colorize XML"
+HOMEPAGE="https://pypi.python.org/pypi/pxml http://github.com/metagriffin/pxml"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-3+"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/blessings-1.5[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ sed \
+ -e '/distribute/d' \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests --verbose || die
+}
diff --git a/dev-python/py-amqp/Manifest b/dev-python/py-amqp/Manifest
new file mode 100644
index 00000000000..2ac37c79940
--- /dev/null
+++ b/dev-python/py-amqp/Manifest
@@ -0,0 +1,2 @@
+DIST amqp-1.4.5.tar.gz 77748 SHA256 534c807c0081ce9c2d517615e724cb6e9df17f79cd6cd4929653ea1ea60edb60 SHA512 33cc0df95786afbd7861585a5fad4c9ec3d28709aaafdba6a7b2b8e2b36b79a129e320ce945ef59f87ccb4e83bdf68ca9bf54b4759dc2e6ba2f131777398d702 WHIRLPOOL 471731462bfa2104f0abbffbe870f47420813e8f1a20ec901414313f34105d1a5e2e9e2ef990b1e7ce09a3442af6fd6b4a4e25f293ae3d834f9953e63caab630
+DIST amqp-1.4.6.tar.gz 77902 SHA256 ebcfc867de5a68f9f5ba14d11dbad88e6aff8435a8d39339d5ceb0e5b06de640 SHA512 fe5cd7cafd9d6a4b8c1ab88a2757db440cd7b415b29c608f51052662d4c7d9e3fae81895ea09ec88f74e83ae9615c5f60b5857417b5d645086f88fc93527758c WHIRLPOOL 599dac45d24ac56407f9fbc1e00cc49884fa3717c3cbf8f7a9b59cfb78a5d9506341169f174cb7a1278e8e6745ae04aa14b6448a5250e5c40843a50f82d01d95
diff --git a/dev-python/py-amqp/files/py-amqp-1.0.6_disable_socket_tests.patch b/dev-python/py-amqp/files/py-amqp-1.0.6_disable_socket_tests.patch
new file mode 100644
index 00000000000..424b8bbe403
--- /dev/null
+++ b/dev-python/py-amqp/files/py-amqp-1.0.6_disable_socket_tests.patch
@@ -0,0 +1,23 @@
+ funtests/run_all.py | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/funtests/run_all.py b/funtests/run_all.py
+index b5b7cb6..febe6ad 100755
+--- a/funtests/run_all.py
++++ b/funtests/run_all.py
+@@ -27,11 +27,7 @@ import settings
+ TEST_NAMES = [
+ 'test_exceptions',
+ 'test_serialization',
+- 'test_basic_message',
+- 'test_connection',
+- 'test_channel',
+- 'test_with',
+- ]
++ 'test_basic_message']
+
+ def main():
+ suite = unittest.TestLoader().loadTestsFromNames(TEST_NAMES)
+--
+1.7.10.4
+
diff --git a/dev-python/py-amqp/files/py-amqp-1.3.3-disable_socket_tests.patch b/dev-python/py-amqp/files/py-amqp-1.3.3-disable_socket_tests.patch
new file mode 100644
index 00000000000..67353e3b8ae
--- /dev/null
+++ b/dev-python/py-amqp/files/py-amqp-1.3.3-disable_socket_tests.patch
@@ -0,0 +1,15 @@
+diff -ur amqp-1.3.3.orig/funtests/run_all.py amqp-1.3.3/funtests/run_all.py
+--- funtests/run_all.py 2013-11-10 08:53:13.000000000 +0800
++++ funtests/run_all.py 2013-12-18 21:10:54.050283404 +0800
+@@ -23,10 +23,7 @@
+ TEST_NAMES = [
+ 'test_exceptions',
+ 'test_serialization',
+- 'test_basic_message',
+- 'test_connection',
+- 'test_channel',
+- 'test_with',
++ 'test_basic_message'
+ ]
+
+
diff --git a/dev-python/py-amqp/metadata.xml b/dev-python/py-amqp/metadata.xml
new file mode 100644
index 00000000000..46b58f8ceb3
--- /dev/null
+++ b/dev-python/py-amqp/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="extras">Install extra tools to generate initial Python mod
+ from an AMQP XML file</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">amqp</remote-id>
+ <remote-id type="github">celery/py-amqp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/py-amqp/py-amqp-1.4.5.ebuild b/dev-python/py-amqp/py-amqp-1.4.5.ebuild
new file mode 100644
index 00000000000..16159fd4f49
--- /dev/null
+++ b/dev-python/py-amqp/py-amqp-1.4.5.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="amqp"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Low-level AMQP client for Python (fork of amqplib)"
+HOMEPAGE="https://github.com/celery/py-amqp http://pypi.python.org/pypi/amqp/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples extras test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.9[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.0[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+# Same tests from before require a socket connection
+PATCHES=( "${FILESDIR}"/${PN}-1.3.3-disable_socket_tests.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cp -r -l funtests "${BUILD_DIR}"/lib/ || die
+ cd "${BUILD_DIR}"/lib || die
+ if [[ ${EPYTHON:6:1} == 3 ]]; then
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w funtests || die
+ fi
+ "${PYTHON}" funtests/run_all.py || die "Tests failed under ${EPYTHON}"
+ rm -rf funtests/ || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( demo/. )
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ if use extras; then
+ insinto /usr/share/${PF}/extras
+ doins -r extra
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py-amqp/py-amqp-1.4.6.ebuild b/dev-python/py-amqp/py-amqp-1.4.6.ebuild
new file mode 100644
index 00000000000..fbc97f2b27e
--- /dev/null
+++ b/dev-python/py-amqp/py-amqp-1.4.6.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="amqp"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Low-level AMQP client for Python (fork of amqplib)"
+HOMEPAGE="https://github.com/celery/py-amqp http://pypi.python.org/pypi/amqp/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples extras test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-issuetracker-0.9[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.0[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+# Same tests from before require a socket connection
+PATCHES=( "${FILESDIR}"/${PN}-1.3.3-disable_socket_tests.patch )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cp -r -l funtests "${BUILD_DIR}"/lib/ || die
+ cd "${BUILD_DIR}"/lib || die
+ if [[ ${EPYTHON:6:1} == 3 ]]; then
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w funtests || die
+ fi
+ "${PYTHON}" funtests/run_all.py || die "Tests failed under ${EPYTHON}"
+ rm -rf funtests/ || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( demo/. )
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+ if use extras; then
+ insinto /usr/share/${PF}/extras
+ doins -r extra
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py-bcrypt/Manifest b/dev-python/py-bcrypt/Manifest
new file mode 100644
index 00000000000..1142d2779c6
--- /dev/null
+++ b/dev-python/py-bcrypt/Manifest
@@ -0,0 +1 @@
+DIST py-bcrypt-0.4.tar.gz 27399 SHA256 5fa13bce551468350d66c4883694850570f3da28d6866bb638ba44fe5eabda78 SHA512 0e43212c9928dc842f93b18a19805d7e0a12dad1032ee6949efba4afee95922bb4046d052c817c09c09fcdc6bcc3b92512fad8d6571bb8983a4ae94e287bb49e WHIRLPOOL 72d584bbab08c802ef37898d2258efba6f7fedaa4774c29cf71410812382c6bf43413dc20c0fd34b6dad18c88616906d947529781126364946a8703192071475
diff --git a/dev-python/py-bcrypt/metadata.xml b/dev-python/py-bcrypt/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/py-bcrypt/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/py-bcrypt/py-bcrypt-0.4.ebuild b/dev-python/py-bcrypt/py-bcrypt-0.4.ebuild
new file mode 100644
index 00000000000..148f9bb9122
--- /dev/null
+++ b/dev-python/py-bcrypt/py-bcrypt-0.4.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="py-bcrypt is an implementation of the OpenBSD Blowfish password hashing algorithm"
+HOMEPAGE="https://code.google.com/p/py-bcrypt/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD-4"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc64 x86"
+IUSE=""
+
+RDEPEND="!dev-python/bcrypt"
+
+DOCS=( LICENSE README TODO )
+
+python_test() {
+ distutils_install_for_testing
+ "${PYTHON}" test/test.py || die "tests failed"
+}
diff --git a/dev-python/py-notify/Manifest b/dev-python/py-notify/Manifest
new file mode 100644
index 00000000000..40ec394daf5
--- /dev/null
+++ b/dev-python/py-notify/Manifest
@@ -0,0 +1 @@
+DIST py-notify-0.3.1.tar.gz 144954 SHA256 91f4fd2822403b96037608c0a05e814890edd17601570ae3e96359877320193c SHA512 16d874e6e265edabffe2200484566823251a0a395e979657829a7facc419ec6e21589f97f1675556b48c67ab6b93ded7325d57c8de29a4216211a8c37a3d9075 WHIRLPOOL aedc39f7d71fd08ad83bd90b73a6b28b9253e3f383bc1d146c8d2b5562899a5cd08037c00df8164645acf078ad241c55c89e9753690948c6602dad7d26835b87
diff --git a/dev-python/py-notify/metadata.xml b/dev-python/py-notify/metadata.xml
new file mode 100644
index 00000000000..73e82009ebe
--- /dev/null
+++ b/dev-python/py-notify/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
+
diff --git a/dev-python/py-notify/py-notify-0.3.1-r1.ebuild b/dev-python/py-notify/py-notify-0.3.1-r1.ebuild
new file mode 100644
index 00000000000..6f1e5de989c
--- /dev/null
+++ b/dev-python/py-notify/py-notify-0.3.1-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Tools for implementing the Observer programming pattern in Python"
+HOMEPAGE="http://home.gna.org/py-notify"
+SRC_URI="http://download.gna.org/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples test"
+
+python_test() {
+ "${PYTHON}" run-tests.py || die "Tests failed"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py-smbpasswd/Manifest b/dev-python/py-smbpasswd/Manifest
new file mode 100644
index 00000000000..6972c466bb8
--- /dev/null
+++ b/dev-python/py-smbpasswd/Manifest
@@ -0,0 +1 @@
+DIST py-smbpasswd-1.0.1.tar.gz 13153 SHA256 ea2eaca082c98a40f99ad1866b85a9e14e56af10bc9c90c69a7fb3a63cb8be4c SHA512 31a71d49108503867969709d7aad13f7c6e900bd3ee45b8f67cd254d63a9347e0bd4f5a2eebcf90e2c73efd86c63c02d79cd7af518db3e7dad5402d4c53d7683 WHIRLPOOL cfbbd14456a99880c7402f47320344f8a0dd9107bf815160e1376b954c813d64b0a692c13191c052314504014529be4eb7cac21ad2328aae604a4e72bcc2df38
diff --git a/dev-python/py-smbpasswd/metadata.xml b/dev-python/py-smbpasswd/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/py-smbpasswd/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/py-smbpasswd/py-smbpasswd-1.0.1-r1.ebuild b/dev-python/py-smbpasswd/py-smbpasswd-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..9c945a71d88
--- /dev/null
+++ b/dev-python/py-smbpasswd/py-smbpasswd-1.0.1-r1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils
+
+DESCRIPTION="This module can generate both LANMAN and NT password hashes, suitable for use with Samba"
+HOMEPAGE="http://barryp.org/software/py-smbpasswd/"
+SRC_URI="http://barryp.org/software/${PN}/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/py-smbpasswd/py-smbpasswd-1.0.1.ebuild b/dev-python/py-smbpasswd/py-smbpasswd-1.0.1.ebuild
new file mode 100644
index 00000000000..51004b5c87e
--- /dev/null
+++ b/dev-python/py-smbpasswd/py-smbpasswd-1.0.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="This module can generate both LANMAN and NT password hashes, suitable for use with Samba"
+HOMEPAGE="http://barryp.org/software/py-smbpasswd/"
+SRC_URI="http://barryp.org/software/${PN}/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ia64 ppc sparc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/py-xmlrpc/Manifest b/dev-python/py-xmlrpc/Manifest
new file mode 100644
index 00000000000..7b80d0c4e75
--- /dev/null
+++ b/dev-python/py-xmlrpc/Manifest
@@ -0,0 +1,2 @@
+DIST py-xmlrpc-0.8.8.3.tar.gz 62260 SHA256 12527f130dd695184c44c6197deb619c26c9b5b31ce7699a5dd97e0ad2dd7bd1 SHA512 cae7c8a0aa7aceedee5e38d056a66c02a7c6e30f9de24bba961aa65d3dbc32d01cc9d2bd9cc104e4d34d9ebf711c18934b31f9b25edbc854ff79d4b30a024aa0 WHIRLPOOL f2e97a4568f7092ab9e704189c83602e4564ae72ac1233dd7daf6ff36ca2bdbf760c773252c67f900ae0b9fba8eaa4ef1d6924b23d8cd996e95873277526c0dc
+DIST py-xmlrpc-0.9.tar.gz 51200 SHA256 a2f0d1e01f5b8c8b713b204cdf363273b41c10637ad1acbed2a96f29505d3717 SHA512 5a5c0382975ef25183c9b40cf9795e9c87369efc3b11e31845c2a818e3ff88ea753fa923af7d6c493c02008dce4f3bf92c2f719871b4c7d5a24a20a5f2de32c9 WHIRLPOOL 93b3cd0f2acd4fa6f326cf14a7583880abea4c13576eb4c6e9bfebcea21860f301af30d676b08b2b9cc6df1ad8e05746c717dae7174720da377974ec94909de1
diff --git a/dev-python/py-xmlrpc/files/py-xmlrpc_patch-extra.patch b/dev-python/py-xmlrpc/files/py-xmlrpc_patch-extra.patch
new file mode 100644
index 00000000000..7f711eb7067
--- /dev/null
+++ b/dev-python/py-xmlrpc/files/py-xmlrpc_patch-extra.patch
@@ -0,0 +1,338 @@
+Patch added by neurogeek@gentoo.org
+Patch added 03/01/2010
+Taken from: http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+Thanks to sobomax @ FreeBSD
+
+Due to unresponsiveness of the development team of the py-xmlrpc, I'm sending
+this change request here in hope it can help the developers that use this
+port.
+
+The py-xmlrpc module has a problem with boolean type - it implements boolean
+type internally thus creating difficulties on encode/decode path of the
+boolean variables. I've changed the source code to use internal Python's
+boolean type and this made things straight to the user of this module.
+
+Another change I've made to the module is support for the <nil/> element.
+Despite the fact this element isn't mentioned in the XML-RPC specification,
+many of implementations support it, as this is the very convenient way to
+pass null values from the environments with dynamic typing such as
+Python, Perl, etc.
+
+
+--- src/rpcBoolean.c.orig 2002-02-21 09:08:11.000000000 +0200
++++ src/rpcBoolean.c 2008-10-15 10:41:34.000000000 +0300
+@@ -2,142 +2,3 @@
+ * Copyright (C) 2001, Shilad Sen, Sourcelight Technologies, Inc.
+ * See xmlrpc.h or the README for more copyright information.
+ */
+-
+-
+-#include "xmlrpc.h"
+-#include "rpcInternal.h"
+-
+-
+-static void rpcBoolDealloc(rpcBool *bp);
+-static int rpcBoolLength(rpcBool *bp);
+-static int rpcBoolCompare(rpcBool *b1, rpcBool *b2);
+-static PyObject *rpcBoolRepr(rpcBool *bp);
+-
+-
+-/*
+- * create a new edb boolean object
+- */
+-PyObject *
+-rpcBoolNew(bool value)
+-{
+- rpcBool *bp;
+-
+- bp = PyObject_NEW(rpcBool, &rpcBoolType);
+- if (bp == NULL)
+- return NULL;
+- bp->value = value;
+- return (PyObject *)bp;
+-}
+-
+-
+-/*
+- * get the value (true or false) of a boolean rpc object
+- */
+-bool
+-rpcBoolValue(PyObject *obj)
+-{
+- return ((rpcBool *)obj)->value;
+-}
+-
+-
+-/*
+- * free resources associated with a boolean object
+- */
+-static void
+-rpcBoolDealloc(rpcBool *bp)
+-{
+- PyMem_DEL(bp);
+-}
+-
+-
+-/*
+- * tell whether a boolean object is true or false
+- */
+-static int
+-rpcBoolLength(rpcBool *bp)
+-{
+- if (bp->value)
+- return 1;
+- else
+- return 0;
+-}
+-
+-
+-/*
+- * bool object to dictionary conversion
+- */
+-static PyMappingMethods rpcBoolAsMapping = {
+- (inquiry)rpcBoolLength, /* mapping length */
+- (binaryfunc)NULL, /* mapping subscript */
+- (objobjargproc)NULL, /* mapping associate subscript */
+-};
+-
+-
+-/*
+- * boolean comparison
+- */
+-static int
+-rpcBoolCompare(rpcBool *b1, rpcBool *b2)
+-{
+- if (not b1->value and not b2->value)
+- return 0;
+- else if (b1->value and b2->value)
+- return 0;
+- else
+- return 1;
+-}
+-
+-
+-/*
+- * represent a boolean xml object
+- */
+-static PyObject *
+-rpcBoolStr(rpcBool *bp)
+-{
+- if (bp->value)
+- return PyString_FromString("<xmlrpc boolean true>");
+- else
+- return PyString_FromString("<xmlrpc boolean false>");
+-}
+-
+-
+-/*
+- * represent a boolean xml object
+- */
+-static PyObject *
+-rpcBoolRepr(rpcBool *bp)
+-{
+- if (bp->value)
+- return PyString_FromString("boolean(1)");
+- else
+- return PyString_FromString("boolean(0)");
+-}
+-
+-
+-/*
+- * map characterstics of a boolean
+- */
+-PyTypeObject rpcBoolType = {
+- PyObject_HEAD_INIT(0)
+- 0,
+- "rpcBoolean",
+- sizeof(rpcBool),
+- 0,
+- (destructor)rpcBoolDealloc, /* tp_dealloc */
+- 0, /* tp_print */
+- 0, /* tp_getattr */
+- 0, /* tp_setattr */
+- (cmpfunc)rpcBoolCompare, /* tp_compare */
+- (reprfunc)rpcBoolRepr, /* tp_repr */
+- 0, /* tp_as_number */
+- 0, /* tp_as_sequence */
+- &rpcBoolAsMapping, /* tp_as_mapping */
+- 0, /* tp_hash */
+- 0, /* tp_call */
+- (reprfunc)rpcBoolStr, /* tp_str */
+- 0, /* tp_getattro */
+- 0, /* tp_setattro */
+- 0, /* tp_as_buffer */
+- 0, /* tp_xxx4 */
+- 0, /* tp_doc */
+-};
+--- src/rpcBoolean.h.orig 2008-10-15 10:46:52.000000000 +0300
++++ src/rpcBoolean.h 2008-10-15 10:46:59.000000000 +0300
+@@ -6,26 +6,3 @@
+ *
+ */
+
+-
+-#ifndef _RPCBOOL_H_
+-#define _RPCBOOL_H_
+-
+-
+-#include "rpcInclude.h"
+-PyTypeObject rpcBoolType;
+-
+-
+-/*
+- * boolean object
+- */
+-typedef struct {
+- PyObject_HEAD /* python standard */
+- bool value; /* true/false value */
+-} rpcBool;
+-
+-
+-PyObject *rpcBoolNew(bool value);
+-bool rpcBoolValue(PyObject *obj);
+-
+-
+-#endif /* _RPCBOOL_H_ */
+--- src/rpcUtils.c.orig 2003-04-21 18:39:15.000000000 +0300
++++ src/rpcUtils.c 2008-10-15 10:45:01.000000000 +0300
+@@ -47,6 +47,7 @@
+
+ static strBuff *encodeValue(strBuff *sp, PyObject *value, uint tabs);
+ static strBuff *encodeBool(strBuff *sp, PyObject *value);
++static strBuff *encodeNone(strBuff *sp);
+ static strBuff *encodeInt(strBuff *sp, PyObject *value);
+ static strBuff *encodeDouble(strBuff *sp, PyObject *value);
+ static strBuff *encodeString(strBuff *sp, PyObject *value);
+@@ -63,6 +64,7 @@
+ static PyObject *decodeString(char **cp, char *ep, ulong *lines);
+ static PyObject *decodeTaglessString(char **cp, char *ep, ulong *lines);
+ static PyObject *decodeBool(char **cp, char *ep, ulong *lines);
++static PyObject *decodeNone(char **cp, char *ep, ulong *lines);
+ static PyObject *decodeBase64(char **cp, char *ep, ulong *lines);
+ static PyObject *decodeArray(char **cp, char *ep, ulong *lines);
+ static PyObject *decodeStruct(char **cp, char *ep, ulong *lines);
+@@ -205,11 +207,13 @@
+ {
+ if (buffConstant(sp, "<value>") == NULL)
+ return NULL;
+- if (PyInt_Check(value) or PyLong_Check(value))
++ if (PyInt_CheckExact(value) or PyLong_Check(value))
+ sp = encodeInt(sp, value);
++ else if (value == Py_None)
++ sp = encodeNone(sp);
+ else if (PyFloat_Check(value))
+ sp = encodeDouble(sp, value);
+- else if (value->ob_type == &rpcBoolType)
++ else if (PyBool_Check(value))
+ sp = encodeBool(sp, value);
+ else if (value->ob_type == &rpcDateType)
+ sp = encodeDate(sp, value);
+@@ -286,12 +290,25 @@
+ }
+
+ /*
++ * encode the None as: "<nil/>"
++ */
++static strBuff *
++encodeNone(strBuff *sp)
++{
++ if (buffConstant(sp, "<nil/>") == NULL)
++ return NULL;
++
++ return sp;
++}
++
++/*
++/*
+ * encode the boolean true (for example) as: "<boolean>1</boolean>"
+ */
+ static strBuff *
+ encodeBool(strBuff *sp, PyObject *value)
+ {
+- if (((rpcBool *)value)->value)
++ if (value == Py_True)
+ return buffConstant(sp, "<boolean>1</boolean>");
+ else
+ return buffConstant(sp, "<boolean>0</boolean>");
+@@ -569,6 +586,8 @@
+ res = decodeDate(cp, ep, lines);
+ else if (strncmp(*cp, "<base64>", 8) == 0)
+ res = decodeBase64(cp, ep, lines);
++ else if (strncmp(*cp, "<nil/>", 6) == 0)
++ res = decodeNone(cp, ep, lines);
+ else { /* it must be a string */
+ *cp = tp;
+ res = decodeTaglessString(cp, ep, lines);
+@@ -619,6 +638,20 @@
+
+
+ static PyObject *
++decodeNone(char **cp, char *ep, ulong *lines)
++{
++ if (*cp + 6 >= ep)
++ return eosErr();
++ *cp += 6;
++ if (chompStr(cp, ep, lines) >= ep)
++ return eosErr();
++
++ Py_INCREF(Py_None);
++ return Py_None;
++}
++
++
++static PyObject *
+ decodeBool(char **cp, char *ep, ulong *lines)
+ {
+ PyObject *res;
+@@ -638,7 +671,12 @@
+ if (chompStr(cp, ep, lines) >= ep)
+ return eosErr();
+
+- return rpcBoolNew(value);
++ if (value) {
++ Py_INCREF(Py_True);
++ return Py_True;
++ }
++ Py_INCREF(Py_False);
++ return Py_False;
+ }
+
+
+--- src/xmlrpc.c.orig 2003-04-21 18:39:15.000000000 +0300
++++ src/xmlrpc.c 2008-10-15 10:47:23.000000000 +0300
+@@ -45,7 +45,6 @@
+ rpcLogLevel = 3;
+ rpcLogger = stderr;
+ rpcDateFormat = XMLRPC_DATE_FORMAT_US;
+- rpcBoolType.ob_type = &PyType_Type;
+ rpcDateType.ob_type = &PyType_Type;
+ rpcBase64Type.ob_type = &PyType_Type;
+ rpcClientType.ob_type = &PyType_Type;
+--- src/xmlrpc.h.orig 2003-04-21 18:39:15.000000000 +0300
++++ src/xmlrpc.h 2008-10-15 10:40:35.000000000 +0300
+@@ -45,7 +45,6 @@
+ #define XMLRPC_DATE_FORMAT_EUROPE 2
+
+ #include "rpcBase64.h"
+-#include "rpcBoolean.h"
+ #include "rpcClient.h"
+ #include "rpcDate.h"
+ #include "rpcDispatch.h"
+--- src/xmlrpcmodule.c.orig 2003-04-21 19:22:54.000000000 +0300
++++ src/xmlrpcmodule.c 2008-10-15 10:48:42.000000000 +0300
+@@ -197,7 +197,12 @@
+ unless (PyArg_ParseTuple(args, "i", &value))
+ return NULL;
+
+- return rpcBoolNew(value);
++ if (value) {
++ Py_INCREF(Py_True);
++ return Py_True;
++ }
++ Py_INCREF(Py_False);
++ return Py_False;
+ }
+
+
+
+
diff --git a/dev-python/py-xmlrpc/files/py-xmlrpc_rpcBase64.patch b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcBase64.patch
new file mode 100644
index 00000000000..d22aa75b9a5
--- /dev/null
+++ b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcBase64.patch
@@ -0,0 +1,16 @@
+Patch added by neurogeek@gentoo.org
+Patch added 03/01/2010
+Taken from: http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+Thanks to sobomax @ FreeBSD
+
+--- src/rpcBase64.c
++++ src/rpcBase64.c
+@@ -239,7 +239,7 @@
+ if (bp->value) {
+ Py_DECREF(bp->value);
+ }
+- PyMem_DEL(bp);
++ PyObject_DEL(bp);
+ }
+
+
diff --git a/dev-python/py-xmlrpc/files/py-xmlrpc_rpcClient.patch b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcClient.patch
new file mode 100644
index 00000000000..37ad5293cda
--- /dev/null
+++ b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcClient.patch
@@ -0,0 +1,15 @@
+Patch added by neurogeek@gentoo.org
+Patch added 03/01/2010
+Taken from: http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+Thanks to sobomax @ FreeBSD
+
+--- src/rpcClient.c
++++ src/rpcClient.c
+@@ -179,7 +179,7 @@
+ cp->url = NULL;
+ Py_DECREF(cp->src);
+ Py_DECREF(cp->disp);
+- PyMem_DEL(cp);
++ PyObject_DEL(cp);
+ }
+
diff --git a/dev-python/py-xmlrpc/files/py-xmlrpc_rpcDate.patch b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcDate.patch
new file mode 100644
index 00000000000..3135173e96f
--- /dev/null
+++ b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcDate.patch
@@ -0,0 +1,16 @@
+Patch added by neurogeek@gentoo.org
+Patch added 03/01/2010
+Taken from: http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+Thanks to sobomax @ FreeBSD
+
+--- src/rpcDate.c
++++ src/rpcDate.c
+@@ -75,7 +75,7 @@
+ if (dp->value) {
+ Py_DECREF(dp->value);
+ }
+- PyMem_DEL(dp);
++ PyObject_DEL(dp);
+ }
+
+
diff --git a/dev-python/py-xmlrpc/files/py-xmlrpc_rpcDispatch.patch b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcDispatch.patch
new file mode 100644
index 00000000000..f13c23c2b12
--- /dev/null
+++ b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcDispatch.patch
@@ -0,0 +1,16 @@
+Patch added by neurogeek@gentoo.org
+Patch added 03/01/2010
+Taken from: http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+Thanks to sobomax @ FreeBSD
+
+--- src/rpcDispatch.c
++++ src/rpcDispatch.c
+@@ -68,7 +68,7 @@
+ rpcDispClear(dp);
+ free(dp->srcs);
+ }
+- PyMem_DEL(dp);
++ PyObject_DEL(dp);
+ }
+
+
diff --git a/dev-python/py-xmlrpc/files/py-xmlrpc_rpcSource.patch b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcSource.patch
new file mode 100644
index 00000000000..9cbfc7f89a0
--- /dev/null
+++ b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcSource.patch
@@ -0,0 +1,16 @@
+Patch added by neurogeek@gentoo.org
+Patch added 03/01/2010
+Taken from: http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+Thanks to sobomax @ FreeBSD
+
+--- src/rpcSource.c
++++ src/rpcSource.c
+@@ -61,7 +61,7 @@
+ if (srcp->onErr and srcp->onErrType == ONERR_TYPE_PY) {
+ Py_DECREF((PyObject *)srcp->onErr);
+ }
+- PyMem_DEL(srcp);
++ PyObject_DEL(srcp);
+ }
+
+
diff --git a/dev-python/py-xmlrpc/files/py-xmlrpc_rpcUtils.patch b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcUtils.patch
new file mode 100644
index 00000000000..649b2faa5b3
--- /dev/null
+++ b/dev-python/py-xmlrpc/files/py-xmlrpc_rpcUtils.patch
@@ -0,0 +1,16 @@
+Patch added by neurogeek@gentoo.org
+Patch added 03/01/2010
+Taken from: http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+Thanks to sobomax @ FreeBSD
+
+--- src/rpcUtils.c.orig
++++ src/rpcUtils.c
+@@ -276,7 +280,7 @@
+ double d;
+
+ d = PyFloat_AS_DOUBLE(value);
+- snprintf(buff, 255, "%f", d);
++ snprintf(buff, 255, "%.17f", d);
+ if ((buffConstant(sp, "<double>") == NULL)
+ or (buffConcat(sp, buff) == NULL)
+ or (buffConstant(sp, "</double>") == NULL))
diff --git a/dev-python/py-xmlrpc/metadata.xml b/dev-python/py-xmlrpc/metadata.xml
new file mode 100644
index 00000000000..c36840f9176
--- /dev/null
+++ b/dev-python/py-xmlrpc/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">py-xmlrpc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/py-xmlrpc/py-xmlrpc-0.8.8.3-r1.ebuild b/dev-python/py-xmlrpc/py-xmlrpc-0.8.8.3-r1.ebuild
new file mode 100644
index 00000000000..0b63f84bbcc
--- /dev/null
+++ b/dev-python/py-xmlrpc/py-xmlrpc-0.8.8.3-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
+
+inherit distutils eutils
+
+DESCRIPTION="Fast XML-RPC implementation for Python"
+HOMEPAGE="http://sourceforge.net/projects/py-xmlrpc/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha ~amd64 ia64 ppc sparc x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND=""
+
+PYTHON_MODNAME="pyxmlrpclib.py xmlrpc.py"
+
+src_prepare() {
+ #http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/net/py-xmlrpc/files/
+ epatch "${FILESDIR}/${PN}_patch-extra.patch"
+ epatch "${FILESDIR}/${PN}_rpcBase64.patch"
+ epatch "${FILESDIR}/${PN}_rpcClient.patch"
+ epatch "${FILESDIR}/${PN}_rpcDate.patch"
+ epatch "${FILESDIR}/${PN}_rpcDispatch.patch"
+ epatch "${FILESDIR}/${PN}_rpcUtils.patch"
+ epatch "${FILESDIR}/${PN}_rpcSource.patch"
+
+ distutils_src_prepare
+}
+
+src_install () {
+ distutils_src_install
+
+ if use examples; then
+ insinto "/usr/share/doc/${PF}/examples"
+ doins examples/*
+ insinto "/usr/share/doc/${PF}/examples/crj"
+ doins examples/crj/*
+ fi
+}
diff --git a/dev-python/py-xmlrpc/py-xmlrpc-0.9.ebuild b/dev-python/py-xmlrpc/py-xmlrpc-0.9.ebuild
new file mode 100644
index 00000000000..221bfa699a4
--- /dev/null
+++ b/dev-python/py-xmlrpc/py-xmlrpc-0.9.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast XML-RPC implementation for Python"
+HOMEPAGE="http://sourceforge.net/projects/py-xmlrpc/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}"/${PN/py-/}
+
+python_install_all() {
+ use examples && local EXAMPLES=( doc/examples.py )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py/Manifest b/dev-python/py/Manifest
new file mode 100644
index 00000000000..8d8e59c8aac
--- /dev/null
+++ b/dev-python/py/Manifest
@@ -0,0 +1,6 @@
+DIST py-1.4.25.tar.gz 190298 SHA256 da6ea727748e00f79fef987adb6970e8b081f829de8ea39f5405718fa9e50c85 SHA512 7e24a9d57298cf98fc246fbda7db81f6cd9d16b78425266c24d00ab1db77146ffab38820630b2dddb49bca7d864c2366d45fdb3e81bb284e509a309d4c1b5b98 WHIRLPOOL 2eab3004febb8e0e0bb42c0fd6d6dd33e46c7a1fe9cdbe2864e55fc075393cf043c0697a508696d0f5bdee8322cef30f03765f676349d02353f3448a339a9432
+DIST py-1.4.26.tar.gz 190617 SHA256 28dd0b90d29b386afb552efc4e355c889f4639ce93658a7872a2150ece28bb89 SHA512 5772893d754e4f3fee5de9fdb0eca2c654ac5288eba5c89dac88fd4d9acb2c0795bae61e0c43b37a14471536a1649c9138ac1c4374cd5697307e74062e9813f3 WHIRLPOOL 9f845477bec75c083c7148d8008df9992a5309a89ee0ec68a9de5d99c236dd7f1e8cedf39a220c53a6b46570d1cba715623ac5eb6563874f7901694bdd0fb594
+DIST py-1.4.27.tar.gz 191447 SHA256 55c648870ba47375c52001d05a1adeedaa930937749ad66eb3327e8dea28ac79 SHA512 29d4c003f9382d5ae19ced0d1d759841b08ed8eb0e9d07e6105e974f4181c3cbb6b59908434eaf4f1164deac438258ccb25b89c0fec0f5a11e1d6487127af4a1 WHIRLPOOL bd3067bf8bbae2ab8ff51720132864701dbb347ecfca023c7dc0f85f6a94d73f77538e17bc8113cbf4946340be8e3f3faad04f92c2d8cee10a7ac3a497d48636
+DIST py-1.4.28.tar.gz 191592 SHA256 664dbb9fd86c26d26e90aa93d15b8a19c859128bb66b3905bef954eba737eeb5 SHA512 0f65ec7114d5d634cf8b0be0c91dee9c7ce7b4795143d1394f1e625586d852c3c0941b7e9490a1eb6a1d3ad5db7c64ab72b6532793f22fdda705a347d4945814 WHIRLPOOL 077f14d7e8a3e1ed1dbc3dd1a51ce55d0263f74b726ec66847c069ff91e81b9aab5581e031a5acbfdbbaaff22ced89efa7a362c2220db1964622342e6a02cd9f
+DIST py-1.4.29.tar.gz 192088 SHA256 279e117233f205de1e46ec36eb7ffa5999f1bc53ae6bcf06889477ff28e45d83 SHA512 c172b598c3b7c8d7e0cc9b3123e80443355a0422e5e19b052f02d4261610fd832431cb50df35a3ee4913a29f87e53da2b12c17234189a3faabfab0c9899c1469 WHIRLPOOL 5924f8d0a9ef6428edc5fecc7d59de277b3cf30f93ff437a9067b7d16150a9b5ac9b4389343ed53f4a504ab083a220d2c0eee0936ea3e5ae5909d4944c89e545
+DIST py-1.4.30.tar.gz 191796 SHA256 b703e57685ed7c280b1a51c496a4984d83d89def2a930b5e9e5da5a6ca151514 SHA512 dd9d92f8eaf8e5fc61bfb7feb4b07df5ae1745ebf88bcbe9d62589caa9e1f7d8beae5b2d20b407520919e47391cd50cf2d5323556fa5bd90a37e120b1d394d7a WHIRLPOOL 890cd2dbb957c291e80c73a69fad89846e761f745500ab2a99bfb4f725a7e567104fa4a2a957b8c674ebc9498fdbb25373ff0d15ab8da7f8c45138844235c79f
diff --git a/dev-python/py/metadata.xml b/dev-python/py/metadata.xml
new file mode 100644
index 00000000000..a5dad3defd7
--- /dev/null
+++ b/dev-python/py/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/py/py-1.4.25.ebuild b/dev-python/py/py-1.4.25.ebuild
new file mode 100644
index 00000000000..4316ad32db0
--- /dev/null
+++ b/dev-python/py/py-1.4.25.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="library with cross-python path, ini-parsing, io, code, log facilities"
+HOMEPAGE="http://pylib.readthedocs.org/ http://pypi.python.org/pypi/py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test || die "testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py/py-1.4.26.ebuild b/dev-python/py/py-1.4.26.ebuild
new file mode 100644
index 00000000000..1bb19929296
--- /dev/null
+++ b/dev-python/py/py-1.4.26.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="library with cross-python path, ini-parsing, io, code, log facilities"
+HOMEPAGE="http://pylib.readthedocs.org/ http://pypi.python.org/pypi/py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:#&:' -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test || die "testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py/py-1.4.27.ebuild b/dev-python/py/py-1.4.27.ebuild
new file mode 100644
index 00000000000..fc2a631a126
--- /dev/null
+++ b/dev-python/py/py-1.4.27.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="library with cross-python path, ini-parsing, io, code, log facilities"
+HOMEPAGE="http://pylib.readthedocs.org/ http://pypi.python.org/pypi/py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:#&:' -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # 1 failure, test_comments, under both pypy only.
+ # Also appears the home repo has no issue tracker.
+ py.test || die "testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py/py-1.4.28.ebuild b/dev-python/py/py-1.4.28.ebuild
new file mode 100644
index 00000000000..fc2a631a126
--- /dev/null
+++ b/dev-python/py/py-1.4.28.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="library with cross-python path, ini-parsing, io, code, log facilities"
+HOMEPAGE="http://pylib.readthedocs.org/ http://pypi.python.org/pypi/py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:#&:' -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # 1 failure, test_comments, under both pypy only.
+ # Also appears the home repo has no issue tracker.
+ py.test || die "testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py/py-1.4.29.ebuild b/dev-python/py/py-1.4.29.ebuild
new file mode 100644
index 00000000000..fc2a631a126
--- /dev/null
+++ b/dev-python/py/py-1.4.29.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="library with cross-python path, ini-parsing, io, code, log facilities"
+HOMEPAGE="http://pylib.readthedocs.org/ http://pypi.python.org/pypi/py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:#&:' -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # 1 failure, test_comments, under both pypy only.
+ # Also appears the home repo has no issue tracker.
+ py.test || die "testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py/py-1.4.30.ebuild b/dev-python/py/py-1.4.30.ebuild
new file mode 100644
index 00000000000..fc2a631a126
--- /dev/null
+++ b/dev-python/py/py-1.4.30.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="library with cross-python path, ini-parsing, io, code, log facilities"
+HOMEPAGE="http://pylib.readthedocs.org/ http://pypi.python.org/pypi/py"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:#&:' -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ # 1 failure, test_comments, under both pypy only.
+ # Also appears the home repo has no issue tracker.
+ py.test || die "testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/py2neo/Manifest b/dev-python/py2neo/Manifest
new file mode 100644
index 00000000000..604e6fe44b2
--- /dev/null
+++ b/dev-python/py2neo/Manifest
@@ -0,0 +1,2 @@
+DIST py2neo-2.0.6.tar.gz 251448 SHA256 6bb828d6d3e48b4d095b3f7d79dbb690a47633f0a9812eb62f141b042bab3186 SHA512 93f94ff678ce34e7a9754330939379e9e4211ddf932484d748215c49548a48997a90bcf384a7bd3713ea341db68f0400eeaac40afc686336a144ee20fa09c8cf WHIRLPOOL c7cbba6f9b3f5a8c039817286bb1027c984cc3c1d48c7f17ea6c3770f0fc5d02811885955b854cac174bc2cbf579610642362c7e1955fcb958ffa905c6a2affa
+DIST py2neo-2.0.7.tar.gz 251601 SHA256 9b154053eb93c7f5fb3ebd48b6a5b99df450d3f2e9c6682153c6f8d59369378c SHA512 02506433b50074ed098fbaee76eb072db386584ca818f322e370847058139e625318453fbcd9e099653f0d9a1041dd55be520e042d62f4e117f45a690e69bc08 WHIRLPOOL 53210f434d6a372f33c5b2e08df935bf6dd878dc42fee72760baa72b3a4f865f16d782a1d6c08424861cd1778c7a25029b7f2672cf9a3b4371bef51513b8a490
diff --git a/dev-python/py2neo/metadata.xml b/dev-python/py2neo/metadata.xml
new file mode 100644
index 00000000000..2e7e33c4346
--- /dev/null
+++ b/dev-python/py2neo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">py2neo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/py2neo/py2neo-2.0.6.ebuild b/dev-python/py2neo/py2neo-2.0.6.ebuild
new file mode 100644
index 00000000000..54603236bea
--- /dev/null
+++ b/dev-python/py2neo/py2neo-2.0.6.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple and pragmatic library which accesses the Neo4j graph database"
+HOMEPAGE="http://py2neo.org"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+python_compile() {
+ # https://github.com/nigelsmall/py2neo/issues/380
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/py2neo/py2neo-2.0.7.ebuild b/dev-python/py2neo/py2neo-2.0.7.ebuild
new file mode 100644
index 00000000000..54603236bea
--- /dev/null
+++ b/dev-python/py2neo/py2neo-2.0.7.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple and pragmatic library which accesses the Neo4j graph database"
+HOMEPAGE="http://py2neo.org"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+python_compile() {
+ # https://github.com/nigelsmall/py2neo/issues/380
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/py2play/Manifest b/dev-python/py2play/Manifest
new file mode 100644
index 00000000000..b8f1b9f3555
--- /dev/null
+++ b/dev-python/py2play/Manifest
@@ -0,0 +1 @@
+DIST Py2Play-0.1.10.tar.gz 21436 SHA256 70b391e7909e60566df32bfcc5edea75741325a0e488fe83dbde9e3229af698b SHA512 d600c62d20274e71678fc41c3f77fc89d71514032f5b4e98d0bda0119b4c9190c82b84a33240f498a926a6947f8bcd928493f6cbe061004eeddbd7eaef5bebee WHIRLPOOL 52e990bb0cf158c43e8bb9765f0914b81649f335ae4b6ed09e336ec80c3db9726917c0768d9caaabcfe5c5ccc9144e64b93ae9c8025bbbd4b74c1ea83ffb850a
diff --git a/dev-python/py2play/metadata.xml b/dev-python/py2play/metadata.xml
new file mode 100644
index 00000000000..9b2fd781c1d
--- /dev/null
+++ b/dev-python/py2play/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/dev-python/py2play/py2play-0.1.10-r1.ebuild b/dev-python/py2play/py2play-0.1.10-r1.ebuild
new file mode 100644
index 00000000000..77f157741fe
--- /dev/null
+++ b/dev-python/py2play/py2play-0.1.10-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="${P/py2play/Py2Play}"
+
+DESCRIPTION="A Peer To Peer network game engine"
+HOMEPAGE="http://home.gna.org/oomadness/en/slune"
+SRC_URI="http://download.gna.org/slune/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pyClamd/Manifest b/dev-python/pyClamd/Manifest
new file mode 100644
index 00000000000..3cf9e391fbf
--- /dev/null
+++ b/dev-python/pyClamd/Manifest
@@ -0,0 +1 @@
+DIST pyClamd-0.3.10.tar.gz 8929 SHA256 ed77743c32298b151c881cc52a211e188bd24203ae402f2640def858c6a2bca7 SHA512 2c895fbc5897646ad5c23445062fb2e34a2db070471afd8356796f5f458d90b0da824af58b8ba762ce49572acaee6981881169eb33231085dac82ff0169fa2c8 WHIRLPOOL fa9ba64ab721169373572e552450fcee96db0499a9eeb336763ed2ea9e6f24328aece3b46a2c04ba2a6706f8d6a047ea0ef96f1fe53a6ae4663be0980d9e9c43
diff --git a/dev-python/pyClamd/metadata.xml b/dev-python/pyClamd/metadata.xml
new file mode 100644
index 00000000000..59353d2ff6c
--- /dev/null
+++ b/dev-python/pyClamd/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyClamd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyClamd/pyClamd-0.3.10.ebuild b/dev-python/pyClamd/pyClamd-0.3.10.ebuild
new file mode 100644
index 00000000000..2f8fd3a2da6
--- /dev/null
+++ b/dev-python/pyClamd/pyClamd-0.3.10.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="python interface to Clamd (Clamav daemon)"
+HOMEPAGE="http://xael.org/norman/python/pyclamd/"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ sed -e 's:/etc/clamav/clamd.conf:/etc/clamd.conf:' \
+ -i pyclamd/pyclamd.py || die
+}
diff --git a/dev-python/pyGPG/Manifest b/dev-python/pyGPG/Manifest
new file mode 100644
index 00000000000..9a891064f46
--- /dev/null
+++ b/dev-python/pyGPG/Manifest
@@ -0,0 +1 @@
+DIST pyGPG-0.1.tar.gz 15441 SHA256 c699192606652ebe1a369770d00110baa490c74c3d858ad0513ec55f315e7735 SHA512 58a89fbee4311b89c5515ad1bc1d901057e8acdfdbcf36813f50a766374100a62efe456d52263711e5c2f46957791def9343d94f019e413506cfdbd353602060 WHIRLPOOL 24862897737516945cdc8e41ced589f4ef4b64cdd4a92ddae22c07e9252c0cf8779b685b6cd35fac5b3244d0000d9bade98d661c67ac904639ebc142281551c1
diff --git a/dev-python/pyGPG/metadata.xml b/dev-python/pyGPG/metadata.xml
new file mode 100644
index 00000000000..084a922fc0b
--- /dev/null
+++ b/dev-python/pyGPG/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <maintainer>
+ <email>dolsen@gentoo.org</email>
+ <name>Brian Dolbec</name>
+ </maintainer>
+ <longdescription>A python interface library for wrapping gnupg's gpg command.
+ It also connects to gpg's status-fd output and makes all the status data
+ available as subclassed namedtuple instances.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">dol-sen/pyGPG</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyGPG/pyGPG-0.1.ebuild b/dev-python/pyGPG/pyGPG-0.1.ebuild
new file mode 100644
index 00000000000..34eadfa645a
--- /dev/null
+++ b/dev-python/pyGPG/pyGPG-0.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+EGIT_REPO_URI="git://github.com/dol-sen/pyGPG.git"
+
+DESCRIPTION="A python interface wrapper for gnupg's gpg command"
+HOMEPAGE="https://github.com/dol-sen/pyGPG"
+SRC_URI="http://dev.gentoo.org/~dolsen/releases/pyGPG/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~x86"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ app-crypt/gnupg
+ "
+
+pkg_postinst() {
+ einfo
+ einfo "This is experimental software."
+ einfo "The API's it installs should be considered unstable"
+ einfo "and are subject to change."
+ einfo
+ einfo "Please file any enhancement requests, or bugs"
+ einfo "at https://github.com/dol-sen/pyGPG/issues"
+ einfo "I am also on IRC @ #gentoo-keys of the freenode network"
+ einfo
+ ewarn "There may be some python 3 compatibility issues still."
+ ewarn "Please help debug/fix/report them in github or bugzilla."
+}
diff --git a/dev-python/pyGPG/pyGPG-9999.ebuild b/dev-python/pyGPG/pyGPG-9999.ebuild
new file mode 100644
index 00000000000..1554e4d2eb0
--- /dev/null
+++ b/dev-python/pyGPG/pyGPG-9999.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+EGIT_BRANCH="master"
+
+inherit distutils-r1 python-r1 git-2
+
+EGIT_REPO_URI="git://github.com/dol-sen/pyGPG.git"
+
+DESCRIPTION="A python interface wrapper for gnupg's gpg command"
+HOMEPAGE="https://github.com/dol-sen/pyGPG"
+SRC_URI=""
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+KEYWORDS=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ app-crypt/gnupg
+ "
+
+python_install_all() {
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ einfo
+ einfo "This is experimental software."
+ einfo "The API's it installs should be considered unstable"
+ einfo "and are subject to change."
+ einfo
+ einfo "Please file any enhancement requests, or bugs"
+ einfo "at https://github.com/dol-sen/pyGPG/issues"
+ einfo "I am also on IRC @ #gentoo-keys of the freenode network"
+ einfo
+ ewarn "There may be some python 3 compatibility issues still."
+ ewarn "Please help debug/fix/report them in github or bugzilla."
+}
diff --git a/dev-python/pyPdf/Manifest b/dev-python/pyPdf/Manifest
new file mode 100644
index 00000000000..d18a6b7ba6d
--- /dev/null
+++ b/dev-python/pyPdf/Manifest
@@ -0,0 +1 @@
+DIST pyPdf-1.13.tar.gz 35699 SHA256 3aede4c3c9c6ad07c98f059f90db0b09ed383f7c791c46100f649e1cabda0e3b SHA512 1c00a5a6658054671a396e7b334cbeb9e26dc1e3ad9668e212d05a9483f164931d8bd14fb9ab4d083d7ca3999fee7a2e9eea55b604a06c7d5d0632f0791b7598 WHIRLPOOL d00b28f6d3e4268b94f76f8573c1d11cb6ecde47d33c5068cfe86326e1ee20f674c09248a1117d31819a1992b334bf7084f662234a991de022c335a543d1b966
diff --git a/dev-python/pyPdf/metadata.xml b/dev-python/pyPdf/metadata.xml
new file mode 100644
index 00000000000..498c8a4babf
--- /dev/null
+++ b/dev-python/pyPdf/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription lang="en">
+ A Pure-Python library built as a PDF toolkit. It is capable of:
+ * extracting document information (title, author, ...),
+ * splitting documents page by page,
+ * merging documents page by page,
+ * cropping pages,
+ * merging multiple pages into a single page,
+ * encrypting and decrypting PDF files.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/pyPdf/pyPdf-1.13-r1.ebuild b/dev-python/pyPdf/pyPdf-1.13-r1.ebuild
new file mode 100644
index 00000000000..c3684f3a56c
--- /dev/null
+++ b/dev-python/pyPdf/pyPdf-1.13-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to work with pdf files"
+HOMEPAGE="http://pybrary.net/pyPdf/ http://pypi.python.org/pypi/pyPdf/"
+SRC_URI="http://pybrary.net/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
diff --git a/dev-python/pyacoustid/Manifest b/dev-python/pyacoustid/Manifest
new file mode 100644
index 00000000000..b91c2838eb3
--- /dev/null
+++ b/dev-python/pyacoustid/Manifest
@@ -0,0 +1 @@
+DIST pyacoustid-1.0.0.tar.gz 10476 SHA256 31900428e7b344dca0c2da594b387e88620c319298e3a6400a968078194407d4 SHA512 4eabf32e7d958bf7330e852184f5ddf3105007179ca2c45b75c1a5b0f0898649e703aa333cffccac85eb7b18b54255f2e5d588897adfb9f0ef2596e9c0b2fe5a WHIRLPOOL 084bc175021db2b344484fa5f03bf8b63b78ba21f92e050da93d36dcded494ff62f6344f59f8f0027b8b42a4bb6a1d21d22408a4f5679023c10eb37907ab1b79
diff --git a/dev-python/pyacoustid/metadata.xml b/dev-python/pyacoustid/metadata.xml
new file mode 100644
index 00000000000..dabddb71401
--- /dev/null
+++ b/dev-python/pyacoustid/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+Chromaprint and its associated Acoustid Web service make up a high-quality, open-source acoustic fingerprinting system. This package provides Python bindings for both the fingerprinting algorithm library, which is written in C but portable, and the Web service, which provides fingerprint lookups.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pyacoustid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyacoustid/pyacoustid-1.0.0-r1.ebuild b/dev-python/pyacoustid/pyacoustid-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..8c88432bbe6
--- /dev/null
+++ b/dev-python/pyacoustid/pyacoustid-1.0.0-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for Chromaprint acoustic fingerprinting and the Acoustid API"
+HOMEPAGE="http://pypi.python.org/pypi/pyacoustid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="media-libs/chromaprint
+ dev-python/audioread[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ use examples && local EXAMPLES=( ./aidmatch.py)
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyalsa/Manifest b/dev-python/pyalsa/Manifest
new file mode 100644
index 00000000000..19097350353
--- /dev/null
+++ b/dev-python/pyalsa/Manifest
@@ -0,0 +1,2 @@
+DIST pyalsa-1.0.26.tar.bz2 39389 SHA256 a6c72868272f9ac7c81fa29be311e17afd47c61e4823d4dc9e16593afd237cad SHA512 3ec3949dc6b2c49fb6f948e6e87485a0fc66d6b2602392e88c15966cf4e0067e91d0eec2c74e5b394ea7498508933177c687ab20cad471bb76d12f090a628231 WHIRLPOOL 82e9f4b56c5431cb47a96334f566c4a740b0f1a95b813745adc7682bc49682d10184a0c127233f3bc3d7d1abf394b066060d14f58c31df4c8d0a0f5ab3f9f7a5
+DIST pyalsa-1.0.29.tar.bz2 39481 SHA256 87ea6d8a2b7a9d7b015cdd84c898dc5e524f770ae6795e0d32ac2234311c953a SHA512 cc885094b020ea6e1735391cfc73a11e29f7d59b1e24a766908d57bec0fae4f490616c59f04eb74648f8ee610e76295a9501ab31a2513e921bcd8b4fdb104683 WHIRLPOOL 492a924d4ce2c22f368df06ea4f213b22c2fef7ac215f0a1c401524e7c510e3d5c5949ea7e8fdb1cbbe5104c6ef51051a7574032e0cb743f20399ef17e79239d
diff --git a/dev-python/pyalsa/files/pyalsa-1.0.25-no-build-symlinks.patch b/dev-python/pyalsa/files/pyalsa-1.0.25-no-build-symlinks.patch
new file mode 100644
index 00000000000..2b02c8afe77
--- /dev/null
+++ b/dev-python/pyalsa/files/pyalsa-1.0.25-no-build-symlinks.patch
@@ -0,0 +1,25 @@
+The build system creates some symlinks that are useful when developing
+but get in the way when we install for more than one python. Remove
+these.
+
+Not a patch for upstream, as it makes development slightly more
+complicated.
+
+Patch by Arfrever.
+
+--- setup.py
++++ setup.py
+@@ -57,12 +57,3 @@
+ packages=['pyalsa'],
+ scripts=[]
+ )
+-
+-uname = os.uname()
+-a = 'build/lib.%s-%s-%s' % (uname[0].lower(), uname[4], sys.version[:3])
+-for f in ['alsacard.so', 'alsacontrol.so', 'alsahcontrol.so', 'alsamixer.so', 'alsaseq.so']:
+- if not os.path.exists('pyalsa/%s' % f):
+- a = '../build/lib.%s-%s-%s/pyalsa/%s' % (uname[0].lower(),
+- uname[4], sys.version[:3], f)
+- print a, f
+- os.symlink(a, 'pyalsa/%s' % f)
+
diff --git a/dev-python/pyalsa/files/pyalsa-1.0.29-no-build-symlinks.patch b/dev-python/pyalsa/files/pyalsa-1.0.29-no-build-symlinks.patch
new file mode 100644
index 00000000000..72bf0bcb49c
--- /dev/null
+++ b/dev-python/pyalsa/files/pyalsa-1.0.29-no-build-symlinks.patch
@@ -0,0 +1,24 @@
+diff -ur pyalsa-1.0.29.orig/setup.py pyalsa-1.0.29/setup.py
+--- setup.py 2015-02-26 20:36:18.000000000 +0800
++++ setup.py 2015-03-22 12:53:26.941401236 +0800
+@@ -58,20 +58,3 @@
+ packages=['pyalsa'],
+ scripts=[]
+ )
+-
+-uname = os.uname()
+-a = 'build/lib.%s-%s-%s' % (uname[0].lower(), uname[4], sys.version[:3])
+-for f in ['alsacard.so', 'alsacontrol.so', 'alsahcontrol.so',
+- 'alsamixer.so', 'alsaseq.so']:
+- if not os.path.exists('pyalsa/%s' % f):
+- a = '../build/lib.%s-%s-%s/pyalsa/%s' % \
+- (uname[0].lower(), uname[4], sys.version[:3], f)
+- print a, f
+- p = 'pyalsa/' + f
+- try:
+- st = os.lstat(p)
+- if stat.S_ISLNK(st.st_mode):
+- os.remove(p)
+- except:
+- pass
+- os.symlink(a, 'pyalsa/%s' % f)
diff --git a/dev-python/pyalsa/metadata.xml b/dev-python/pyalsa/metadata.xml
new file mode 100644
index 00000000000..c4c2070030e
--- /dev/null
+++ b/dev-python/pyalsa/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>alsa</herd>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyalsa/pyalsa-1.0.26-r1.ebuild b/dev-python/pyalsa/pyalsa-1.0.26-r1.ebuild
new file mode 100644
index 00000000000..3d8f850d0eb
--- /dev/null
+++ b/dev-python/pyalsa/pyalsa-1.0.26-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Python bindings for ALSA library"
+HOMEPAGE="http://alsa-project.org/"
+SRC_URI="mirror://alsaproject/pyalsa/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE=""
+
+RDEPEND="media-libs/alsa-lib"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-1.0.25-no-build-symlinks.patch"
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # note: this needs changing when py3 becomes supported
+ append-flags -fno-strict-aliasing
+}
diff --git a/dev-python/pyalsa/pyalsa-1.0.29.ebuild b/dev-python/pyalsa/pyalsa-1.0.29.ebuild
new file mode 100644
index 00000000000..ea6ab753938
--- /dev/null
+++ b/dev-python/pyalsa/pyalsa-1.0.29.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy ) # Still py2 only it appears
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Python bindings for ALSA library"
+HOMEPAGE="http://alsa-project.org/"
+SRC_URI="mirror://alsaproject/pyalsa/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="media-libs/alsa-lib"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+PATCHES=( "${FILESDIR}/${P}-no-build-symlinks.patch" )
+
+python_configure_all() {
+ # note: this needs changing when py3 becomes supported
+ append-flags -fno-strict-aliasing
+}
+# Testsuite appears to require installed state
diff --git a/dev-python/pyalsaaudio/Manifest b/dev-python/pyalsaaudio/Manifest
new file mode 100644
index 00000000000..c84ac6d9de8
--- /dev/null
+++ b/dev-python/pyalsaaudio/Manifest
@@ -0,0 +1,2 @@
+DIST pyalsaaudio-0.7.tar.gz 124577 SHA256 bbd5a9eb351def673800707f48e64680685f397e29da72ea4c9355e1a2b2a0fd SHA512 aea46ebc4a59c791e318e58fa7c307b73ea7e1eafdd6b2055df312e26e8d4868ca582b76dd2f203cb7c632a25e1bfd066f6f9522484aa5db51f404e5f99a38cc WHIRLPOOL 80dd871e66e21ebe34581a0c7ec846dea8b5c5ada93c0b0811334dcf2e90ab97e63852cc47a5355d03e546f335751e949d725f86bc3d26d76ea7aa8e4db9a718
+DIST pyalsaaudio-0.8.2.tar.gz 212747 SHA256 b6df486f1c4035041a5f3800496b86c64e48e4a7d47f94dcbca11b0187aa3a15 SHA512 cba4acaf18b74f990547a590da5bbb824398518444cd09cf80d2e4dcb1176fd5469b107c96b3696ca98ef8ef4d1026feb22b01f730b2558c9dd60ee58500d4b5 WHIRLPOOL 4526ffa3eae6834aa97e8bf55dc90e25c6de5bf6f8345f853a5006a9c7bb1bcb8bd42bbe677d246443213de314400e8e17ef84ef4653d7e7c207151d5a03be33
diff --git a/dev-python/pyalsaaudio/metadata.xml b/dev-python/pyalsaaudio/metadata.xml
new file mode 100644
index 00000000000..3715bb37fcc
--- /dev/null
+++ b/dev-python/pyalsaaudio/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyalsaaudio</remote-id>
+ <remote-id type="sourceforge">pyalsaaudio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyalsaaudio/pyalsaaudio-0.7-r2.ebuild b/dev-python/pyalsaaudio/pyalsaaudio-0.7-r2.ebuild
new file mode 100644
index 00000000000..8550d3ac39a
--- /dev/null
+++ b/dev-python/pyalsaaudio/pyalsaaudio-0.7-r2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python wrapper for the ALSA API"
+HOMEPAGE="http://www.sourceforge.net/projects/pyalsaaudio http://pypi.python.org/pypi/pyalsaaudio"
+SRC_URI="mirror://sourceforge/pyalsaaudio/${P}.tar.gz mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~sparc x86"
+IUSE="doc"
+
+RDEPEND="media-libs/alsa-lib"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )"
+
+RESTRICT="test" # Direct access to ALSA, shouln't be used
+
+DOCS=( CHANGES README )
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ local EXAMPLES=( *test.py )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyalsaaudio/pyalsaaudio-0.8.2.ebuild b/dev-python/pyalsaaudio/pyalsaaudio-0.8.2.ebuild
new file mode 100644
index 00000000000..c5d7ce61bbb
--- /dev/null
+++ b/dev-python/pyalsaaudio/pyalsaaudio-0.8.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="A Python wrapper for the ALSA API"
+HOMEPAGE="http://www.sourceforge.net/projects/pyalsaaudio http://pypi.python.org/pypi/pyalsaaudio"
+SRC_URI="mirror://sourceforge/pyalsaaudio/${P}.tar.gz mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86"
+IUSE="doc"
+
+RDEPEND="media-libs/alsa-lib"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )"
+
+RESTRICT="test" # Direct access to ALSA, shouln't be used
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ local EXAMPLES=( *test.py )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyamazon/Manifest b/dev-python/pyamazon/Manifest
new file mode 100644
index 00000000000..0c6fd378445
--- /dev/null
+++ b/dev-python/pyamazon/Manifest
@@ -0,0 +1 @@
+DIST pyamazon-0.65.zip 4715 SHA256 af185612ddb6a845a88991937f7df36cb2f161135ad2e8ba0369c5b012e066fb SHA512 91da5c766f3c8b24429f92c46d27509e6e7ea4f3fe945920774aad88ab7ccfa9418067d9919f14f7800c767a2c59da52452d9949e7cda46c2626c33db7bd9997 WHIRLPOOL 5a62eb667d08ca0535c6be1f88029ce482ffb91f0be707afb8e74df37e05c6d88ca37fba9760b133d9354a0e8354987bccfc724bc2067a2a3ee7e2c19fd120c3
diff --git a/dev-python/pyamazon/metadata.xml b/dev-python/pyamazon/metadata.xml
new file mode 100644
index 00000000000..414a5eeccf5
--- /dev/null
+++ b/dev-python/pyamazon/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sound</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyamazon/pyamazon-0.65.ebuild b/dev-python/pyamazon/pyamazon-0.65.ebuild
new file mode 100644
index 00000000000..65fd0da243a
--- /dev/null
+++ b/dev-python/pyamazon/pyamazon-0.65.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit eutils python
+
+DESCRIPTION="A Python wrapper for the Amazon web API"
+HOMEPAGE="http://www.josephson.org/projects/pyamazon"
+SRC_URI="http://www.josephson.org/projects/${PN}/files/${P}.zip"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+RESTRICT_PYTHON_ABIS="3.*"
+
+src_prepare() {
+ edos2unix ${PN}/amazon.py
+}
+
+src_install() {
+ installation() {
+ insinto $(python_get_sitedir)
+ doins ${PN}/amazon.py
+ }
+ python_execute_function installation
+}
+
+pkg_postinst() {
+ python_mod_optimize amazon.py
+}
+
+pkg_postrm() {
+ python_mod_cleanup amazon.py
+}
diff --git a/dev-python/pyamf/Manifest b/dev-python/pyamf/Manifest
new file mode 100644
index 00000000000..ab69ca07eff
--- /dev/null
+++ b/dev-python/pyamf/Manifest
@@ -0,0 +1 @@
+DIST PyAMF-0.7.0.tar.gz 1647988 SHA256 5e9c68a2acc00ee99d1ca1f578c4fc0cbc16e33339a6d5a0d8d313a4c0f42663 SHA512 dcaf808a11c73f9e9b548c9e81100eb28ee1e3c1e2d44b0fb08f58ab3693a49c69b95040e25e612e3864d268436829c4ab7389e1ed9c0704f37a9d350dd9c82d WHIRLPOOL 535fdedea37a866045a34f89b5f255f13d4d3ebc1a1a1fbdba2c233fdd5fedfb1436e4993d69940cbdd5f26898c3d6264afa9bdac21217f38d3d2e955058c369
diff --git a/dev-python/pyamf/metadata.xml b/dev-python/pyamf/metadata.xml
new file mode 100644
index 00000000000..ee77acb0dc1
--- /dev/null
+++ b/dev-python/pyamf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">hydralabs/pyamf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyamf/pyamf-0.7.0.ebuild b/dev-python/pyamf/pyamf-0.7.0.ebuild
new file mode 100644
index 00000000000..cfccd8feb04
--- /dev/null
+++ b/dev-python/pyamf/pyamf-0.7.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN=PyAMF
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Action Message Format (AMF) support for Python"
+HOMEPAGE="https://github.com/hydralabs/pyamf"
+SRC_URI="https://github.com/hydralabs/pyamf/releases/download/v${PV}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ esetup.py test
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "PyAMF optionally integrates with several third-party libraries"
+ elog "and web frameworks. See the README or the Optional Extras section at"
+ elog "https://github.com/hydralabs/pyamf/blob/master/doc/install.rst"
+ fi
+}
diff --git a/dev-python/pyamg/Manifest b/dev-python/pyamg/Manifest
new file mode 100644
index 00000000000..6bf901647e5
--- /dev/null
+++ b/dev-python/pyamg/Manifest
@@ -0,0 +1 @@
+DIST pyamg-2.1.0.tar.gz 752632 SHA256 060a32ea8805b8e49e6d7304ab771efccd34d5e363a65f4f2cb33d85981225de SHA512 d2574ccb093e6c5bd214c4366ec70bfeae73449f98932a9a4435afb2d606b12a4d479411a88bcac4df500e33dbf635ae981620c584e688abc3f2cca6c6188d4d WHIRLPOOL ccf0817561eae43bb859aaedc9c7b4c94e338a2fc6817467bb5f162df3e63720030d3e36d55e72e9f7e613aab89cf4211f9c20fc97d566e3d7cdec988c9d9f6f
diff --git a/dev-python/pyamg/files/2.0.0-stencil.patch b/dev-python/pyamg/files/2.0.0-stencil.patch
new file mode 100644
index 00000000000..f000b93709a
--- /dev/null
+++ b/dev-python/pyamg/files/2.0.0-stencil.patch
@@ -0,0 +1,11 @@
+--- pyamg/gallery/stencil.py.orig 2011-08-06 20:26:36.000000000 +0100
++++ pyamg/gallery/stencil.py 2011-08-06 20:27:12.000000000 +0100
+@@ -85,7 +85,7 @@
+
+ # compute index offset of each dof within the stencil
+ strides = numpy.cumprod( [1] + list(reversed(grid)) )[:-1]
+- indices = S.nonzero()
++ indices = tuple(i.copy() for i in S.nonzero())
+ for i,s in zip(indices,S.shape):
+ i -= s // 2
+ for stride,coords in zip(strides, reversed(indices)):
diff --git a/dev-python/pyamg/files/pyamg-2.0.4-gcc-4.7.patch b/dev-python/pyamg/files/pyamg-2.0.4-gcc-4.7.patch
new file mode 100644
index 00000000000..0ed5402b7e4
--- /dev/null
+++ b/dev-python/pyamg/files/pyamg-2.0.4-gcc-4.7.patch
@@ -0,0 +1,16 @@
+ pyamg/amg_core/ruge_stuben.h | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/pyamg/amg_core/ruge_stuben.h b/pyamg/amg_core/ruge_stuben.h
+index 51cec80..d0ff9a9 100644
+--- a/pyamg/amg_core/ruge_stuben.h
++++ b/pyamg/amg_core/ruge_stuben.h
+@@ -7,6 +7,8 @@
+ #include <cassert>
+ #include <limits>
+ #include <algorithm>
++#include "graph.h"
++#include "linalg.h"
+
+ /*
+ * Compute a strength of connection matrix using the classical strength
diff --git a/dev-python/pyamg/metadata.xml b/dev-python/pyamg/metadata.xml
new file mode 100644
index 00000000000..106c66bc219
--- /dev/null
+++ b/dev-python/pyamg/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+ PyAMG is a library of Algebraic Multigrid (AMG) solvers with a
+ Python interface.
+ The predominant portion of PyAMG is written in Python with a smaller
+ amount of supporting C++ code for performance critical operations.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">pyamg</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/pyamg/pyamg-2.1.0.ebuild b/dev-python/pyamg/pyamg-2.1.0.ebuild
new file mode 100644
index 00000000000..6a4d7d4a0fe
--- /dev/null
+++ b/dev-python/pyamg/pyamg-2.1.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Algebraic multigrid solvers in Python"
+HOMEPAGE="http://pyamg.github.io/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sci-libs/scipy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+python_test() {
+ distutils_install_for_testing
+ cd "${T}" || die # need to be away source directory
+ ${EPYTHON} -c "
+import pyamg, sys
+r = pyamg.test(verbose=3)
+sys.exit(0 if r.wasSuccessful() else 1)" || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyao/Manifest b/dev-python/pyao/Manifest
new file mode 100644
index 00000000000..27b9d6cfc9f
--- /dev/null
+++ b/dev-python/pyao/Manifest
@@ -0,0 +1 @@
+DIST pyao-0.82.tar.gz 15399 SHA256 9a444518252f6d747e76a219e5efbc05b4e1742260a7419da9ddf93a519b30c5 SHA512 9c2349a2cfd55f64b8edaa6aaf9cecd4589dab3c6fd8a5cc8ad8c9512bf3595c85e0efaa56d6bb2f89410fbfa82081c8c2ea5ea68071e64afdbd8809f70b36cf WHIRLPOOL 16918ba2a683af4d1df860ff31c6f2a6a86d0fe1ef297ef09269219e3af860e22a8945ca5682f9063e9d4ff7a2a4ab3ed794eb355eb459c73b0290f145ebda8a
diff --git a/dev-python/pyao/files/pyao-0.82-new_api.patch b/dev-python/pyao/files/pyao-0.82-new_api.patch
new file mode 100644
index 00000000000..7a77d0ab8a2
--- /dev/null
+++ b/dev-python/pyao/files/pyao-0.82-new_api.patch
@@ -0,0 +1,71 @@
+http://bugs.gentoo.org/314627
+http://bugs.gentoo.org/257550
+
+--- src/aomodule.c
++++ src/aomodule.c
+@@ -4,7 +4,7 @@
+ static ao_option *
+ dict_to_options(PyObject *dict)
+ {
+- int pos = 0;
++ Py_ssize_t pos = 0;
+ PyObject *key, *val;
+ ao_option *head = NULL;
+ int ret;
+@@ -71,7 +71,7 @@
+
+ *overwrite = 0;
+
+- if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|llllO!sl",
++ if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|iiiiO!si",
+ (char **) driver_name_kwlist,
+ &driver_name,
+ &format->bits,
+@@ -84,7 +84,7 @@
+ *driver_id = ao_driver_id(driver_name);
+ } else {
+ PyErr_Clear();
+- if(!(PyArg_ParseTupleAndKeywords(args, kwargs, "i|llllO!sl",
++ if(!(PyArg_ParseTupleAndKeywords(args, kwargs, "i|iiiiO!si",
+ (char **) driver_id_kwlist,
+ driver_id,
+ &format->bits,
+@@ -141,8 +141,9 @@
+ return NULL;
+ }
+
+- retobj = (ao_Object *) PyObject_NEW(ao_Object, &ao_Type);
++ retobj = (ao_Object *) PyObject_New(ao_Object, &ao_Type);
+ retobj->dev = dev;
++ retobj->driver_id = driver_id;
+ return (PyObject *) retobj;
+ }
+
+@@ -150,7 +151,7 @@
+ py_ao_dealloc(ao_Object *self)
+ {
+ ao_close(self->dev);
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ static PyObject *
+@@ -184,7 +185,7 @@
+
+ /* It's a method */
+ ao_Object *ao_self = (ao_Object *) self;
+- info = ao_driver_info(ao_self->dev->driver_id);
++ info = ao_driver_info(ao_self->driver_id);
+
+ } else {
+
+--- src/aomodule.h
++++ src/aomodule.h
+@@ -9,6 +9,7 @@
+ typedef struct {
+ PyObject_HEAD
+ ao_device *dev;
++ uint32_t driver_id;
+ } ao_Object;
+
+ static PyObject *Py_aoError;
diff --git a/dev-python/pyao/metadata.xml b/dev-python/pyao/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyao/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyao/pyao-0.82-r2.ebuild b/dev-python/pyao/pyao-0.82-r2.ebuild
new file mode 100644
index 00000000000..1c18747d7b3
--- /dev/null
+++ b/dev-python/pyao/pyao-0.82-r2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils eutils
+
+DESCRIPTION="Python bindings for the libao library"
+HOMEPAGE="http://www.andrewchatham.com/pyogg/"
+SRC_URI="http://www.andrewchatham.com/pyogg/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ~ppc -sparc x86"
+IUSE=""
+
+DEPEND=">=media-libs/libao-1.0.0"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-new_api.patch
+ distutils_src_prepare
+}
+
+src_configure() {
+ "$(PYTHON -f)" ./config_unix.py || die
+}
+
+src_install() {
+ distutils_src_install
+ insinto /usr/share/doc/${PF}/examples
+ doins test.py || die
+}
diff --git a/dev-python/pyao/pyao-0.82-r3.ebuild b/dev-python/pyao/pyao-0.82-r3.ebuild
new file mode 100644
index 00000000000..12be8cb0e19
--- /dev/null
+++ b/dev-python/pyao/pyao-0.82-r3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the libao library"
+HOMEPAGE="http://www.andrewchatham.com/pyogg/"
+SRC_URI="http://www.andrewchatham.com/pyogg/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc -sparc ~x86"
+IUSE=""
+
+DEPEND=">=media-libs/libao-1.0.0"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-new_api.patch )
+
+python_compile() {
+ "${PYTHON}" config_unix.py || die
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pyasn1-modules/Manifest b/dev-python/pyasn1-modules/Manifest
new file mode 100644
index 00000000000..ef5833c902e
--- /dev/null
+++ b/dev-python/pyasn1-modules/Manifest
@@ -0,0 +1,3 @@
+DIST pyasn1-modules-0.0.5.tar.gz 38710 SHA256 be65f00ed28e30756f1ef39377cb382480a2368699179d646a84d79fe9349941 SHA512 b8fa41ed28087097502e8362022d819fe6914511c09f60f64f173c5674684fa8c45de23ce718700001d9f2d9b11adc17657d7cfd4cb24ea740b8d14eba8d8161 WHIRLPOOL c0df005909ffa4320f0ff7c580410ff2468cdd4002dfa5383e561c9c65721c0a72169e10c72fdc225b308d8fd1d5691dc519b6ee811c167ddc466ba1657e92c8
+DIST pyasn1-modules-0.0.6.tar.gz 38940 SHA256 1f41d3f3da43e9a769e23649724368aa0b88afcfd1fe6e9f210d31d13322fc15 SHA512 1ae7d641647d239737daa20f8519f92b0727381bf44de2b65130a7626233b1b430cd8fad04fdc856387d7ba9ad226960a87f6f58d64d4ba09c3e6316130c5855 WHIRLPOOL 4bc2776ca2bd81ba3b2f5337f7736084ee17c5fa13532a4be2dbee0cf6fe3f501a1d63fb1b3ac397a0c507e862795bb8819b15621c38ee0575cf3de5ee257afe
+DIST pyasn1-modules-0.0.7.tar.gz 38605 SHA256 794dbcef4b7124b8271f12eb7eea0d37b466012f11ce023f91e2e2082df11c7e SHA512 15e3f456b1fbb74a08cffc6d5f9910617b7fa67fbcb5028ac8da8c1592c4cd192d4f726b13d6f0b82f01a55511fbc7a9478d446e57241307517d9213a65f393a WHIRLPOOL 6bc2389c9e734cc310c28276e56309c82f4def9cb2582d5222a3d6004b2f38a9279adf35f5200137dd2f844631123963c907fcf0279286a9f99c541277bb9ecb
diff --git a/dev-python/pyasn1-modules/metadata.xml b/dev-python/pyasn1-modules/metadata.xml
new file mode 100644
index 00000000000..cf67f89b3af
--- /dev/null
+++ b/dev-python/pyasn1-modules/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyasn1-modules</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyasn1-modules/pyasn1-modules-0.0.5-r1.ebuild b/dev-python/pyasn1-modules/pyasn1-modules-0.0.5-r1.ebuild
new file mode 100644
index 00000000000..128f3f8e09a
--- /dev/null
+++ b/dev-python/pyasn1-modules/pyasn1-modules-0.0.5-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="pyasn1 modules"
+HOMEPAGE="http://pyasn1.sourceforge.net/ http://pypi.python.org/pypi/pyasn1-modules"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ppc ppc64 s390 sh sparc x86"
+IUSE=""
+
+RDEPEND="dev-python/pyasn1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ echoit() { echo "$@"; "$@"; }
+ local exit_status=0 test
+ for test in test/*.sh; do
+ PATH="${S}/tools:${PATH}" \
+ echoit sh "${test}" || exit_status=1
+ done
+ return ${exit_status}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ insinto /usr/share/doc/${PF}/tools
+ doins tools/* || die "doins failed"
+}
diff --git a/dev-python/pyasn1-modules/pyasn1-modules-0.0.6.ebuild b/dev-python/pyasn1-modules/pyasn1-modules-0.0.6.ebuild
new file mode 100644
index 00000000000..4deece1de64
--- /dev/null
+++ b/dev-python/pyasn1-modules/pyasn1-modules-0.0.6.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="pyasn1 modules"
+HOMEPAGE="http://pyasn1.sourceforge.net/ http://pypi.python.org/pypi/pyasn1-modules"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-python/pyasn1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ echoit() { echo "$@"; "$@"; }
+ local exit_status=0 test
+ for test in test/*.sh; do
+ PATH="${S}/tools:${PATH}" \
+ echoit sh "${test}" || exit_status=1
+ done
+ return ${exit_status}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ insinto /usr/share/doc/${PF}/tools
+ doins tools/* || die "doins failed"
+}
diff --git a/dev-python/pyasn1-modules/pyasn1-modules-0.0.7.ebuild b/dev-python/pyasn1-modules/pyasn1-modules-0.0.7.ebuild
new file mode 100644
index 00000000000..4deece1de64
--- /dev/null
+++ b/dev-python/pyasn1-modules/pyasn1-modules-0.0.7.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="pyasn1 modules"
+HOMEPAGE="http://pyasn1.sourceforge.net/ http://pypi.python.org/pypi/pyasn1-modules"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-python/pyasn1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ echoit() { echo "$@"; "$@"; }
+ local exit_status=0 test
+ for test in test/*.sh; do
+ PATH="${S}/tools:${PATH}" \
+ echoit sh "${test}" || exit_status=1
+ done
+ return ${exit_status}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ insinto /usr/share/doc/${PF}/tools
+ doins tools/* || die "doins failed"
+}
diff --git a/dev-python/pyasn1/Manifest b/dev-python/pyasn1/Manifest
new file mode 100644
index 00000000000..34c72dce1b8
--- /dev/null
+++ b/dev-python/pyasn1/Manifest
@@ -0,0 +1,2 @@
+DIST pyasn1-0.1.7.tar.gz 68120 SHA256 e4f81d53c533f6bd9526b047f047f7b101c24ab17339c1a7ad8f98b25c101eab SHA512 af2ac05fb7e18b25bd125f92bd7c8389a00c18018c1ff48d94c196f5ab41b09c8991d2e326d492cfaed755b06cd4c75d88719b4a390bdab6d84fe3c8791620af WHIRLPOOL 902b80616cecbf3549417c95ec09c060c6a038f95bd71ce2f9a5c0cd1e4cfd4e9157252abedec3002588eaba5a3cecd7100138c952a5e8f8b7e245b4f82d5c7c
+DIST pyasn1-0.1.8.tar.gz 75676 SHA256 5d33be7ca0ec5997d76d29ea4c33b65c00c0231407fff975199d7f40530b8347 SHA512 0a0b9b8018ae80a0e0d84ea3a4f217951bf42dce909a354c97890d4b4fc4f49b19d9d0757103ac9002c17c6c622c8e8d66e1f8242b8545a7da455ef3583acdfa WHIRLPOOL db46e06ef9a6b5858c07f1c154657f998b509c457395b4f2e6286ea90e1b16346e24d92a8d666b5db4216e35129f2d6be13c2fc11aae2d9936163bff3b1400eb
diff --git a/dev-python/pyasn1/metadata.xml b/dev-python/pyasn1/metadata.xml
new file mode 100644
index 00000000000..fcab60fb450
--- /dev/null
+++ b/dev-python/pyasn1/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyasn1</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyasn1/pyasn1-0.1.7.ebuild b/dev-python/pyasn1/pyasn1-0.1.7.ebuild
new file mode 100644
index 00000000000..68a91358d0e
--- /dev/null
+++ b/dev-python/pyasn1/pyasn1-0.1.7.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="ASN.1 library for Python"
+HOMEPAGE="http://pyasn1.sourceforge.net/ http://pypi.python.org/pypi/pyasn1"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test/suite.py || die "Tests fail with ${EPYTHON}"
+}
+
+src_install() {
+ local HTML_DOCS=( doc/pyasn1-tutorial.html )
+ use doc && HTML_DOCS=( doc/. )
+
+ distutils-r1_src_install
+}
diff --git a/dev-python/pyasn1/pyasn1-0.1.8.ebuild b/dev-python/pyasn1/pyasn1-0.1.8.ebuild
new file mode 100644
index 00000000000..eaf95f140a9
--- /dev/null
+++ b/dev-python/pyasn1/pyasn1-0.1.8.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="ASN.1 library for Python"
+HOMEPAGE="http://pyasn1.sourceforge.net/ http://pypi.python.org/pypi/pyasn1"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test/suite.py || die "Tests fail with ${EPYTHON}"
+}
+
+src_install() {
+ local HTML_DOCS=( doc/pyasn1-tutorial.html )
+ use doc && HTML_DOCS=( doc/. )
+
+ distutils-r1_src_install
+}
diff --git a/dev-python/pyatspi/Manifest b/dev-python/pyatspi/Manifest
new file mode 100644
index 00000000000..089b82ebe83
--- /dev/null
+++ b/dev-python/pyatspi/Manifest
@@ -0,0 +1,3 @@
+DIST pyatspi-2.12.0.tar.xz 300092 SHA256 4e6cd801412a090dcc7ec2a27298dee5e84dc0af11479d5d5c061254b8ea6ac4 SHA512 2ac9f4e40d35594ca9327b431c28ae2d02380e7c4f4fff4f65282dbdfe4cec76ee09c306eafcd175bcaeb2e6bcfb911e8d4c8ed8366ccb88e7fadf0aac2b3cb7 WHIRLPOOL c3dfb65082ce1f444fdddbef9aaaa5119def1cd7b48b4d965d7b9e4306be8a71cbab6268f6d42793f4c89470833418c45c24991d90cadaa4a4f47ce6b589979f
+DIST pyatspi-2.14.0.tar.xz 300100 SHA256 b615dd81abccb929b0e120f64573b1f8c2a8f6d0651185d32d4fb7e75613bb48 SHA512 016c55cb10c52a8e3382531bda655a936c40a915aadb1400d0d28786c8a6d95c790830b63662c29000ce26b43bda46cdf604d334696fb94e7d8d964e52d1226c WHIRLPOOL dab1e37880b7439b889961982c918c2254540454a89733a0aaec9bc851297d78cd40ed524e792a55ee2a2cf982379fac883850fa71a0ee9c3e540054ec65f61b
+DIST pyatspi-2.16.0.tar.xz 301204 SHA256 a67a857ca5eaf16fc059d9be47d0850edd93bffdd777c1b7612ecc95f6e3b4a0 SHA512 aeb3f288a40bbc9a92dc5e8155f632af5545e72452aeef4ae27d878a8b517f04ea2d39dbc88a98ecfe3404adc0d7badf77a2f2df13354d9fceedb594e4a70468 WHIRLPOOL c9afdd8f239b59121cf87f3c40412133172960edfd26bbc5c6a47183a11454301aa3a90815a03036065fa4ae1437487e53c8374fa412dc72ae5f600b15f9165e
diff --git a/dev-python/pyatspi/files/pyatspi-2.6.0-examples-python3.patch b/dev-python/pyatspi/files/pyatspi-2.6.0-examples-python3.patch
new file mode 100644
index 00000000000..423cd644073
--- /dev/null
+++ b/dev-python/pyatspi/files/pyatspi-2.6.0-examples-python3.patch
@@ -0,0 +1,26 @@
+From 4f10a696002179082e41568b5109400ac8478a96 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Mon, 10 Dec 2012 04:52:03 -0500
+Subject: [PATCH] examples: support python2 and python3 syntax
+
+https://bugzilla.gnome.org/show_bug.cgi?id=689957
+---
+ examples/magFocusTracker.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/examples/magFocusTracker.py b/examples/magFocusTracker.py
+index 47efe00..7ca3b67 100755
+--- a/examples/magFocusTracker.py
++++ b/examples/magFocusTracker.py
+@@ -282,7 +282,7 @@ def main():
+ startTracking()
+ pyatspi.Registry.start()
+ else:
+- print 'Magnification service not available. Exiting.'
++ print('Magnification service not available. Exiting.')
+
+ return 0
+
+--
+1.8.0
+
diff --git a/dev-python/pyatspi/metadata.xml b/dev-python/pyatspi/metadata.xml
new file mode 100644
index 00000000000..6949624e59d
--- /dev/null
+++ b/dev-python/pyatspi/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome-accessibility</herd>
+</pkgmetadata>
diff --git a/dev-python/pyatspi/pyatspi-2.12.0.ebuild b/dev-python/pyatspi/pyatspi-2.12.0.ebuild
new file mode 100644
index 00000000000..c39ef82669b
--- /dev/null
+++ b/dev-python/pyatspi/pyatspi-2.12.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils gnome2 python-r1
+
+DESCRIPTION="Python binding to at-spi library"
+HOMEPAGE="http://live.gnome.org/Accessibility"
+
+# Note: only some of the tests are GPL-licensed, everything else is LGPL
+LICENSE="LGPL-2 GPL-2+"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86"
+IUSE="" # test
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEPEND="
+ >=dev-libs/atk-2.11.2
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-2.90.1:3[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}
+"
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/dbus-1
+ >=app-accessibility/at-spi2-core-${PV}[introspection]
+ !<gnome-extra/at-spi-1.32.0-r1
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ # https://bugzilla.gnome.org/show_bug.cgi?id=689957
+ epatch "${FILESDIR}/${PN}-2.6.0-examples-python3.patch"
+
+ gnome2_src_prepare
+
+ python_copy_sources
+}
+
+src_configure() {
+ python_foreach_impl run_in_build_dir gnome2_src_configure --disable-tests
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ docinto examples
+ dodoc examples/*.py
+}
diff --git a/dev-python/pyatspi/pyatspi-2.14.0.ebuild b/dev-python/pyatspi/pyatspi-2.14.0.ebuild
new file mode 100644
index 00000000000..c39ef82669b
--- /dev/null
+++ b/dev-python/pyatspi/pyatspi-2.14.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils gnome2 python-r1
+
+DESCRIPTION="Python binding to at-spi library"
+HOMEPAGE="http://live.gnome.org/Accessibility"
+
+# Note: only some of the tests are GPL-licensed, everything else is LGPL
+LICENSE="LGPL-2 GPL-2+"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86"
+IUSE="" # test
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEPEND="
+ >=dev-libs/atk-2.11.2
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-2.90.1:3[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}
+"
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/dbus-1
+ >=app-accessibility/at-spi2-core-${PV}[introspection]
+ !<gnome-extra/at-spi-1.32.0-r1
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ # https://bugzilla.gnome.org/show_bug.cgi?id=689957
+ epatch "${FILESDIR}/${PN}-2.6.0-examples-python3.patch"
+
+ gnome2_src_prepare
+
+ python_copy_sources
+}
+
+src_configure() {
+ python_foreach_impl run_in_build_dir gnome2_src_configure --disable-tests
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ docinto examples
+ dodoc examples/*.py
+}
diff --git a/dev-python/pyatspi/pyatspi-2.16.0.ebuild b/dev-python/pyatspi/pyatspi-2.16.0.ebuild
new file mode 100644
index 00000000000..7af8e2dffe8
--- /dev/null
+++ b/dev-python/pyatspi/pyatspi-2.16.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils gnome2 python-r1
+
+DESCRIPTION="Python binding to at-spi library"
+HOMEPAGE="http://live.gnome.org/Accessibility"
+
+# Note: only some of the tests are GPL-licensed, everything else is LGPL
+LICENSE="LGPL-2 GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="" # test
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEPEND="
+ >=dev-libs/atk-2.11.2
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-2.90.1:3[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}
+"
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/dbus-1
+ >=app-accessibility/at-spi2-core-${PV}[introspection]
+ !<gnome-extra/at-spi-1.32.0-r1
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ # https://bugzilla.gnome.org/show_bug.cgi?id=689957
+ epatch "${FILESDIR}/${PN}-2.6.0-examples-python3.patch"
+
+ gnome2_src_prepare
+
+ python_copy_sources
+}
+
+src_configure() {
+ python_foreach_impl run_in_build_dir gnome2_src_configure --disable-tests
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ docinto examples
+ dodoc examples/*.py
+}
diff --git a/dev-python/pyaudio/Manifest b/dev-python/pyaudio/Manifest
new file mode 100644
index 00000000000..fc4defbfda6
--- /dev/null
+++ b/dev-python/pyaudio/Manifest
@@ -0,0 +1 @@
+DIST pyaudio-0.2.8.tar.gz 235900 SHA256 4f85367cf79657616684487037957ac38582ecc5389b89420fe61d901b719551 SHA512 af85291932809ceb966d1ace3c866cb6ac7e039b936ca35be668d4a3dc78c53e516070902d35fa6c829b37db376b8b512dc926ff1079e039809cae067be93069 WHIRLPOOL dae98752b6b885ce6f5247b9914fc9fcfd6264030c5f57c7276c6468de79ffdf30ea6196325ab0ff34b6997157ab97f6068ffa6ee27e137bab96c1589723550d
diff --git a/dev-python/pyaudio/metadata.xml b/dev-python/pyaudio/metadata.xml
new file mode 100644
index 00000000000..c1096494e79
--- /dev/null
+++ b/dev-python/pyaudio/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ PyAudio provides Python bindings for PortAudio (media-libs/portaudio),
+ the cross-platform audio I/O library.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/pyaudio/pyaudio-0.2.8.ebuild b/dev-python/pyaudio/pyaudio-0.2.8.ebuild
new file mode 100644
index 00000000000..c1ccc7c7a5c
--- /dev/null
+++ b/dev-python/pyaudio/pyaudio-0.2.8.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for PortAudio"
+HOMEPAGE="http://people.csail.mit.edu/hubert/pyaudio/"
+SRC_URI="http://people.csail.mit.edu/hubert/pyaudio/packages/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="media-libs/portaudio"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/PyAudio-${PV}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyavm/Manifest b/dev-python/pyavm/Manifest
new file mode 100644
index 00000000000..792d0259ef8
--- /dev/null
+++ b/dev-python/pyavm/Manifest
@@ -0,0 +1 @@
+DIST PyAVM-0.9.1.tar.gz 99461 SHA256 5b44dc29ee595849aed94af2db4fe670851a793713b1a3063bca2dee85aa415a SHA512 e3433a44d39cd54e20abd377c5722e7157e948cfde9176cabbe5f2a63999927ef2d9e94f1eb33da6276d6fac462fad8caa5991299483ae484aa15d9b96d9dc08 WHIRLPOOL 3b47b28685f2ffa48944bd87552a3f74282daa91444eb6a0eafb245df6292ec0f51365d76da7cde33b0d304e24ff52bd2439b1a2c150925ca6715c5f4b4af2d2
diff --git a/dev-python/pyavm/metadata.xml b/dev-python/pyavm/metadata.xml
new file mode 100644
index 00000000000..b0e9feda205
--- /dev/null
+++ b/dev-python/pyavm/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ PyAVM is a module to represent, read, and write metadata following
+ the Astronomy Visualization Metadata (AVM) standard.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">PyAVM</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/pyavm/pyavm-0.9.1.ebuild b/dev-python/pyavm/pyavm-0.9.1.ebuild
new file mode 100644
index 00000000000..ca03fad5252
--- /dev/null
+++ b/dev-python/pyavm/pyavm-0.9.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MYPN=PyAVM
+MYP=${MYPN}-${PV}
+
+DESCRIPTION="Python module for Astronomy Visualization Metadata i/o"
+HOMEPAGE="http://astrofrog.github.io/pyavm/"
+SRC_URI="mirror://pypi/${MYPN:0:1}/${MYPN}/${MYP}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/astropy-0.2[${PYTHON_USEDEP}]"
+
+DEPEND="
+ test? (
+ >=dev-python/astropy-0.2[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MYP}"
+
+python_test() {
+ py.test || die "tests for ${EPYTHON} failed"
+}
diff --git a/dev-python/pybloomfiltermmap/Manifest b/dev-python/pybloomfiltermmap/Manifest
new file mode 100644
index 00000000000..c4085390920
--- /dev/null
+++ b/dev-python/pybloomfiltermmap/Manifest
@@ -0,0 +1,2 @@
+DIST pybloomfiltermmap-0.3.11.tar.gz 435754 SHA256 0b8e64a9865362a6f4a7a33018c41155322b4485705ad087ed144ff33f6a9f89 SHA512 cce4218ee23382a8633ba9f846e11344a65bc3e04b1e2e6770c017ac3b078a87288e63020f9455eaa34b8920d71ccfdad169261d428a43b32a7ca76664fd3bd8 WHIRLPOOL 8c44b98431b072027dc9e29bb0499d79d78961e8511374084731cf633a8fb5eae169fe1d16c55995f8b2330da8d43f6dc156fcbd4c1115c6104a291abdea1fdf
+DIST pybloomfiltermmap-0.3.14.tar.gz 446760 SHA256 eb21b180ff77b7afd2d586ed9d188cbf9563103e26e7ee72ed11dd492cc37875 SHA512 c2b7414464ffd7feb31b74ad576716554b79ebe59675cb61cd241c270628ce821d97ddef1be7fea9f0b5f2019a7fa009d21e9f14e7f7e514aa6446ca23702cb3 WHIRLPOOL 4cd4b0a09d5077d414b4467e298eddb56713b8f697f1129928635ef9ca1fcc3792b648a07701fd08e43556d40f505df8752dcaf525236a970339bf2d2f73c861
diff --git a/dev-python/pybloomfiltermmap/metadata.xml b/dev-python/pybloomfiltermmap/metadata.xml
new file mode 100644
index 00000000000..74c0e96c61b
--- /dev/null
+++ b/dev-python/pybloomfiltermmap/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>clabbe.montjoie@gmail.com</email>
+ <name>LABBE Corentin (Montjoie)</name>
+ <description>Maintainer. Assign bugs to him</description>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pybloomfiltermmap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.11-r1.ebuild b/dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.11-r1.ebuild
new file mode 100644
index 00000000000..0261a910ee2
--- /dev/null
+++ b/dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.11-r1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Bloom filter (bloomfilter) for Python built on mmap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/pybloomfiltermmap"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
diff --git a/dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.14.ebuild b/dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.14.ebuild
new file mode 100644
index 00000000000..c90edbf6a5d
--- /dev/null
+++ b/dev-python/pybloomfiltermmap/pybloomfiltermmap-0.3.14.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Bloom filter (bloomfilter) for Python built on mmap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://pypi.python.org/pypi/pybloomfiltermmap"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ # Failures X 2 by pypy are harmless; written for py2, reflect only how pypy handles exceptions
+ "${PYTHON}" -m unittest tests.test_all || die "Tests failed"
+}
diff --git a/dev-python/pybluez/Manifest b/dev-python/pybluez/Manifest
new file mode 100644
index 00000000000..2bd50d554f0
--- /dev/null
+++ b/dev-python/pybluez/Manifest
@@ -0,0 +1 @@
+DIST PyBluez-0.18.tar.gz 74501 SHA256 66b2184e0eaad5e1ecc89eb4c81cba0696b3028b85d1301186b45b0bbd761065 SHA512 ddd185ad90f7c6235e25182afccfb586efa0d361f38140f33718dc2d29ca62f3aa68867d075820afffd5ee2fbd306b907b565fbdfdf32f906657f6a3a8c779da WHIRLPOOL 7cc0aaa8f5d33626689c10c4c171d0b5f115cbefda1c561b3146ae0f2b397739bf67a05f7f0ae330620194a54b595d408da81f11e07fcf51f4b176f60e11a7ba
diff --git a/dev-python/pybluez/metadata.xml b/dev-python/pybluez/metadata.xml
new file mode 100644
index 00000000000..619a2baffac
--- /dev/null
+++ b/dev-python/pybluez/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>PyBluez is an effort to create Python wrappers around bluez to allow Python
+developers to use system bluetooth resources. It works on machines running the
+GNU/Linux operating system and the bluez bluetooth stack.</longdescription>
+ <upstream>
+ <remote-id type="google-code">pybluez</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pybluez/pybluez-0.18-r1.ebuild b/dev-python/pybluez/pybluez-0.18-r1.ebuild
new file mode 100644
index 00000000000..825378ae28d
--- /dev/null
+++ b/dev-python/pybluez/pybluez-0.18-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P="PyBluez-${PV}"
+
+DESCRIPTION="Python bindings for Bluez Bluetooth Stack"
+HOMEPAGE="http://code.google.com/p/pybluez/"
+SRC_URI="http://pybluez.googlecode.com/files/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="examples"
+
+DEPEND="net-wireless/bluez"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycadf/Manifest b/dev-python/pycadf/Manifest
new file mode 100644
index 00000000000..d2b6570c50a
--- /dev/null
+++ b/dev-python/pycadf/Manifest
@@ -0,0 +1,3 @@
+DIST pycadf-0.6.0.tar.gz 277434 SHA256 9ba1e9ac52ee2a2d6d9cc89847323559cc2ffe7b4d80b703944a0a1f75c7093f SHA512 97e223296e5cf77bbc2f7f8b2caba70f76d418ccd476bbc07462dac2c01399f920ae7801f1e30ef91ac6dbfe340b8b45dff2426bf457c1239f54293dbadeef61 WHIRLPOOL 96644ae4b82352cd0a296f3a9adf161b8500d043d8d2bce239c23473a53e1a2feb43f60d92c67bf1543b3b101bbf722bf9104b2c6b16fa7240b94e86cc6a2aa1
+DIST pycadf-0.8.0.tar.gz 255774 SHA256 240d7775682a0f49fb580310dd6459e8a8b5f5619dfdc687f043c3fe21b48ba1 SHA512 3b8446c33f0bf740b0f2384bb9e4c5ab5d960690e50bd52cf2217eb184f9f8061dfe39da9b21ef275a7c66ba4e35b912bfd9476469b28c3c2cd6f33d912ac6f7 WHIRLPOOL bf28052eee894a1a986c1903f44f2f800f096979188a6b0ff502b7316d38ce7c43197405e635da097de038e24c1d870140a4ddd1c0eaa543841b3073055f1c19
+DIST pycadf-1.0.0.tar.gz 247178 SHA256 8278865dba0c6d7d2c83f51629c0f215393e8cbc36719c845b591f40dd80609f SHA512 7f7a4bb1d89ee3a63c9c74980995864b6e80a4e7df2111b4bafb42ba977ab2b86aac5e288d930068789cae9cabee13300ede7ae3c520440cc5fdfdac057085c0 WHIRLPOOL 68eab74a8e7a727d178dfdaa7cef27d0a41538540c450446a768775de61854eb82ca070792e694bad422ccacfae894b73226ab9224d82f742fdcd037ebd2c725
diff --git a/dev-python/pycadf/files/CVE-2014-4615.patch b/dev-python/pycadf/files/CVE-2014-4615.patch
new file mode 100644
index 00000000000..54596a5c2cb
--- /dev/null
+++ b/dev-python/pycadf/files/CVE-2014-4615.patch
@@ -0,0 +1,29 @@
+https://review.openstack.org/#/c/94878/
+Owner gordon chung
+Project openstack/pycadf
+Branch master
+Topic bug1321080
+Uploaded May 22, 2014 10:12 PM
+Updated May 23, 2014 3:34 AM
+Status Merged
+
+Commit Message: remove token from notifier middleware
+
+notifier middleware is capturing token and sending it to MQ. this
+is not advisable so we should filter it out.
+
+Change-Id: I11d9f2f23fc3b60c945c33d4d02bd7640d88a083
+Closes-Bug: #1321080
+diff --git a/pycadf/middleware/notifier.py b/pycadf/middleware/notifier.py
+index fc921f8..621c8b4 100644
+--- a/pycadf/middleware/notifier.py
++++ b/pycadf/middleware/notifier.py
+@@ -88,7 +88,7 @@
+ include them.
+ """
+ return dict((k, v) for k, v in six.iteritems(environ)
+- if k.isupper())
++ if k.isupper() and k != 'HTTP_X_AUTH_TOKEN')
+
+ @log_and_ignore_error
+ def process_request(self, request):
diff --git a/dev-python/pycadf/metadata.xml b/dev-python/pycadf/metadata.xml
new file mode 100644
index 00000000000..ce24edf446a
--- /dev/null
+++ b/dev-python/pycadf/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ python implementation of DMTF Cloud Audit (CADF) data model
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pycadf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycadf/pycadf-0.6.0.ebuild b/dev-python/pycadf/pycadf-0.6.0.ebuild
new file mode 100644
index 00000000000..88289d3745f
--- /dev/null
+++ b/dev-python/pycadf/pycadf-0.6.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="python implementation of DMTF Cloud Audit (CADF) data model"
+HOMEPAGE="https://pypi.python.org/pypi/pycadf"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ ~dev-python/docutils-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox-0.5.3[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )
+ doc? (
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND=">=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-messaging-1.4.0[${PYTHON_USEDEP}]
+ dev-python/posix_ipc[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2010h[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]"
+
+PATCHES=()
+
+python_prepare_all() {
+ # ? typo error in conf.py
+ sed -e s':oslosphinx:oslo.sphinx:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ nosetests ${PN}/tests || die "test failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycadf/pycadf-0.8.0.ebuild b/dev-python/pycadf/pycadf-0.8.0.ebuild
new file mode 100644
index 00000000000..55962001d84
--- /dev/null
+++ b/dev-python/pycadf/pycadf-0.8.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="python implementation of DMTF Cloud Audit (CADF) data model"
+HOMEPAGE="https://pypi.python.org/pypi/pycadf"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-messaging-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+ doc? (
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-httpdomain[${PYTHON_USEDEP}]
+ )"
+# !=1.2.0 of sphinx deleted since it is not in portage anyway
+RDEPEND=">=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013d[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ nosetests ${PN}/tests || die "test failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycadf/pycadf-1.0.0.ebuild b/dev-python/pycadf/pycadf-1.0.0.ebuild
new file mode 100644
index 00000000000..50dfd63d0cd
--- /dev/null
+++ b/dev-python/pycadf/pycadf-1.0.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="python implementation of DMTF Cloud Audit (CADF) data model"
+HOMEPAGE="https://pypi.python.org/pypi/pycadf"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-messaging-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ doc? (
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-httpdomain[${PYTHON_USEDEP}]
+ )"
+# !=1.2.0 of sphinx deleted since it is not in portage anyway
+RDEPEND=">=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && "${PYTHON}" setup.py build_sphinx
+}
+
+python_test() {
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycairo/Manifest b/dev-python/pycairo/Manifest
new file mode 100644
index 00000000000..d081c0c7b8c
--- /dev/null
+++ b/dev-python/pycairo/Manifest
@@ -0,0 +1,2 @@
+DIST py2cairo-1.10.0.tar.bz2 402070 SHA256 d30439f06c2ec1a39e27464c6c828b6eface3b22ee17b2de05dc409e429a7431 SHA512 cb3d54de9af4134460ce731da8166a3127a642c8a2e6184109437ddec115cd55b8dd2413a5c81700277bfe2f22fcfe268db4f3ba0f7649751e85bb34295f79fc WHIRLPOOL 60b57d55b27f06acd62714ac6ad7973ab973d42995fb536ae800263a2e8c7451a24ccafd96fe30f5bfa26e1ae218934d4fafaafec3e9666a39b33c78672407e2
+DIST pycairo-1.10.0.tar.bz2 246556 SHA256 9aa4078e7eb5be583aeabbe8d87172797717f95e8c4338f0d4a17b683a7253be SHA512 a03db6f04cea504985f390b0734042390f491f32ae2bee1299dabbafd369fde36bb506ebb941d22bbc11b0d008c4f758baeacf309a7336880529455092db829f WHIRLPOOL e779d56d67ef18bbd052d81acb38d8b610ca4bbf787f4b0e3982633de55ff54d6dfa3e5ce1957321fba09f0ec2d12ce12057335de9d5ff3f84c2bc0530415e76
diff --git a/dev-python/pycairo/files/py2cairo-1.10.0-ppc-darwin.patch b/dev-python/pycairo/files/py2cairo-1.10.0-ppc-darwin.patch
new file mode 100644
index 00000000000..e921ac34acd
--- /dev/null
+++ b/dev-python/pycairo/files/py2cairo-1.10.0-ppc-darwin.patch
@@ -0,0 +1,18 @@
+inspired by:
+http://groups.google.com/group/waf-users/browse_thread/thread/2bd6774056c850bc/
+27bfdcac2fb9ec05?lnk=gst#27bfdcac2fb9ec05
+
+we cannot "fix" the buildsystem, since it's bzip2-tarred *sigh*
+
+
+--- waf
++++ waf
+@@ -154,6 +154,8 @@
+
+ wafdir = find_lib()
+ sys.path.insert(0, wafdir)
++from waflib.Tools.c_config import MACRO_TO_DESTOS
++MACRO_TO_DESTOS['__POWERPC__'] = 'darwin'
+
+ if __name__ == '__main__':
+ import waflib.extras.compat15
diff --git a/dev-python/pycairo/files/py2cairo-1.10.0-svg_check.patch b/dev-python/pycairo/files/py2cairo-1.10.0-svg_check.patch
new file mode 100644
index 00000000000..4cd755c8d57
--- /dev/null
+++ b/dev-python/pycairo/files/py2cairo-1.10.0-svg_check.patch
@@ -0,0 +1,126 @@
+--- src/cairomodule.c
++++ src/cairomodule.c
+@@ -127,7 +127,7 @@
+ #else
+ 0,
+ #endif
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ &PycairoSVGSurface_Type,
+ #else
+ 0,
+@@ -223,7 +223,7 @@
+ if (PyType_Ready(&PycairoPSSurface_Type) < 0)
+ return;
+ #endif
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ if (PyType_Ready(&PycairoSVGSurface_Type) < 0)
+ return;
+ #endif
+@@ -305,7 +305,7 @@
+ PyModule_AddObject(m, "PSSurface", (PyObject *)&PycairoPSSurface_Type);
+ #endif
+
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ Py_INCREF(&PycairoSVGSurface_Type);
+ PyModule_AddObject(m, "SVGSurface", (PyObject *)&PycairoSVGSurface_Type);
+ #endif
+@@ -379,7 +379,7 @@
+ #else
+ PyModule_AddIntConstant(m, "HAS_PS_SURFACE", 0);
+ #endif
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ PyModule_AddIntConstant(m, "HAS_SVG_SURFACE", 1);
+ #else
+ PyModule_AddIntConstant(m, "HAS_SVG_SURFACE", 0);
+--- src/private.h
++++ src/private.h
+@@ -86,7 +86,7 @@
+ extern PyTypeObject PycairoPSSurface_Type;
+ #endif
+
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ extern PyTypeObject PycairoSVGSurface_Type;
+ #endif
+
+--- src/pycairo.h
++++ src/pycairo.h
+@@ -182,7 +182,7 @@
+ #define PycairoPSSurface_Type *(Pycairo_CAPI->PSSurface_Type)
+ #endif
+
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ #define PycairoSVGSurface_Type *(Pycairo_CAPI->SVGSurface_Type)
+ #endif
+
+--- src/surface.c
++++ src/surface.c
+@@ -83,7 +83,7 @@
+ type = &PycairoPSSurface_Type;
+ break;
+ #endif
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ case CAIRO_SURFACE_TYPE_SVG:
+ type = &PycairoSVGSurface_Type;
+ break;
+@@ -1015,7 +1015,7 @@
+
+
+ /* Class SVGSurface(Surface) ----------------------------------------------- */
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ #include <cairo-svg.h>
+
+ static PyObject *
+@@ -1125,7 +1125,7 @@
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ };
+-#endif /* CAIRO_HAS_SVG_SURFACE */
++#endif /* PYCAIRO_ENABLE_SVG */
+
+
+ #if CAIRO_HAS_WIN32_SURFACE
+--- wscript
++++ wscript
+@@ -1,6 +1,7 @@
+ # -*- python -*-
+
+ import os
++import subprocess
+
+ top = '.'
+ out = 'build_directory'
+@@ -11,6 +12,17 @@
+ cairo_version_required = '1.10.0'
+
+
++def check_svg():
++ if os.environ.get('PYCAIRO_DISABLE_SVG', None) is None:
++ return_code = subprocess.call(['pkg-config', '--exists', 'cairo-svg'])
++ if return_code == 0:
++ return True
++ else:
++ return False
++ else:
++ return False
++
++
+ def options(ctx):
+ print(' %s/options()' %d)
+ ctx.tool_options('gnu_dirs')
+@@ -39,6 +51,8 @@
+ ctx.define('PYCAIRO_VERSION_MAJOR', version[0])
+ ctx.define('PYCAIRO_VERSION_MINOR', version[1])
+ ctx.define('PYCAIRO_VERSION_MICRO', version[2])
++ if check_svg():
++ ctx.define('PYCAIRO_ENABLE_SVG', 1)
+
+ ctx.write_config_header('src/config.h')
+
diff --git a/dev-python/pycairo/files/py2cairo-1.10.0-xpyb.patch b/dev-python/pycairo/files/py2cairo-1.10.0-xpyb.patch
new file mode 100644
index 00000000000..c136cb0c39a
--- /dev/null
+++ b/dev-python/pycairo/files/py2cairo-1.10.0-xpyb.patch
@@ -0,0 +1,38 @@
+--- py2cairo-1.10.0/wscript
++++ py2cairo-1.10.0/wscript
+@@ -10,6 +10,7 @@
+ APPNAME='py2cairo'
+ VERSION='1.10.0'
+ cairo_version_required = '1.10.0'
++xpyb_version_required = '1.3'
+
+
+ def check_svg():
+@@ -23,6 +24,17 @@
+ return False
+
+
++def check_xpyb():
++ if os.environ.get('PYCAIRO_DISABLE_XPYB', None) is None:
++ return_code = subprocess.call(['pkg-config', '--exists', 'xpyb'])
++ if return_code == 0:
++ return True
++ else:
++ return False
++ else:
++ return False
++
++
+ def options(ctx):
+ print(' %s/options()' %d)
+ ctx.tool_options('gnu_dirs')
+@@ -41,6 +53,9 @@
+ ctx.check_python_headers()
+ ctx.check_cfg(package='cairo', atleast_version=cairo_version_required,
+ args='--cflags --libs')
++ if check_xpyb():
++ ctx.check_cfg(package='xpyb', atleast_version=xpyb_version_required,
++ args='--cflags --libs', mandatory=False)
+
+ # add gcc options
+ if env['CC_NAME'] == 'gcc':
diff --git a/dev-python/pycairo/files/pycairo-1.10.0-svg_check.patch b/dev-python/pycairo/files/pycairo-1.10.0-svg_check.patch
new file mode 100644
index 00000000000..572a5f6cc71
--- /dev/null
+++ b/dev-python/pycairo/files/pycairo-1.10.0-svg_check.patch
@@ -0,0 +1,126 @@
+--- src/cairomodule.c
++++ src/cairomodule.c
+@@ -116,7 +116,7 @@
+ #else
+ 0,
+ #endif
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ &PycairoSVGSurface_Type,
+ #else
+ 0,
+@@ -247,7 +247,7 @@
+ if (PyType_Ready(&PycairoPSSurface_Type) < 0)
+ return NULL;
+ #endif
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ if (PyType_Ready(&PycairoSVGSurface_Type) < 0)
+ return NULL;
+ #endif
+@@ -337,7 +337,7 @@
+ PyModule_AddObject(m, "PSSurface", (PyObject *)&PycairoPSSurface_Type);
+ #endif
+
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ Py_INCREF(&PycairoSVGSurface_Type);
+ PyModule_AddObject(m, "SVGSurface", (PyObject *)&PycairoSVGSurface_Type);
+ #endif
+@@ -399,7 +399,7 @@
+ #else
+ PyModule_AddIntConstant(m, "HAS_PS_SURFACE", 0);
+ #endif
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ PyModule_AddIntConstant(m, "HAS_SVG_SURFACE", 1);
+ #else
+ PyModule_AddIntConstant(m, "HAS_SVG_SURFACE", 0);
+--- src/private.h
++++ src/private.h
+@@ -75,7 +75,7 @@
+ extern PyTypeObject PycairoPSSurface_Type;
+ #endif
+
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ extern PyTypeObject PycairoSVGSurface_Type;
+ #endif
+
+--- src/py3cairo.h
++++ src/py3cairo.h
+@@ -171,7 +171,7 @@
+ #define PycairoPSSurface_Type *(Pycairo_CAPI->PSSurface_Type)
+ #endif
+
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ #define PycairoSVGSurface_Type *(Pycairo_CAPI->SVGSurface_Type)
+ #endif
+
+--- src/surface.c
++++ src/surface.c
+@@ -72,7 +72,7 @@
+ type = &PycairoPSSurface_Type;
+ break;
+ #endif
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ case CAIRO_SURFACE_TYPE_SVG:
+ type = &PycairoSVGSurface_Type;
+ break;
+@@ -1022,7 +1022,7 @@
+
+
+ /* Class SVGSurface(Surface) ----------------------------------------------- */
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ #include <cairo-svg.h>
+
+ static PyObject *
+@@ -1133,7 +1133,7 @@
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ };
+-#endif /* CAIRO_HAS_SVG_SURFACE */
++#endif /* PYCAIRO_ENABLE_SVG */
+
+
+ #if CAIRO_HAS_WIN32_SURFACE
+--- wscript
++++ wscript
+@@ -1,6 +1,7 @@
+ # -*- python -*-
+
+ import os
++import subprocess
+
+ top = '.'
+ out = 'build_directory'
+@@ -11,6 +12,17 @@
+ cairo_version_required = '1.10.0'
+
+
++def check_svg():
++ if os.environ.get('PYCAIRO_DISABLE_SVG', None) is None:
++ return_code = subprocess.call(['pkg-config', '--exists', 'cairo-svg'])
++ if return_code == 0:
++ return True
++ else:
++ return False
++ else:
++ return False
++
++
+ def options(ctx):
+ print(' %s/options()' %d)
+ ctx.tool_options('gnu_dirs')
+@@ -39,6 +51,8 @@
+ ctx.define('PYCAIRO_VERSION_MAJOR', version[0])
+ ctx.define('PYCAIRO_VERSION_MINOR', version[1])
+ ctx.define('PYCAIRO_VERSION_MICRO', version[2])
++ if check_svg():
++ ctx.define('PYCAIRO_ENABLE_SVG', 1)
+
+ ctx.write_config_header('src/config.h')
+
diff --git a/dev-python/pycairo/files/pycairo-1.10.0-waf-py3_4.patch b/dev-python/pycairo/files/pycairo-1.10.0-waf-py3_4.patch
new file mode 100644
index 00000000000..6e79db9ba27
--- /dev/null
+++ b/dev-python/pycairo/files/pycairo-1.10.0-waf-py3_4.patch
@@ -0,0 +1,11 @@
+--- a/waflib/Tools/python.py
++++ b/waflib/Tools/python.py
+@@ -169,7 +169,7 @@
+ conf.find_program('python-config-%s'%num,var='PYTHON_CONFIG',mandatory=False)
+ includes=[]
+ if conf.env.PYTHON_CONFIG:
+- for incstr in conf.cmd_and_log(conf.env.PYTHON+[conf.env.PYTHON_CONFIG,'--includes']).strip().split():
++ for incstr in conf.cmd_and_log([conf.env.PYTHON_CONFIG,'--includes']).strip().split():
+ if(incstr.startswith('-I')or incstr.startswith('/I')):
+ incstr=incstr[2:]
+ if incstr not in includes:
diff --git a/dev-python/pycairo/files/pycairo-1.10.0-waf-unpack.patch b/dev-python/pycairo/files/pycairo-1.10.0-waf-unpack.patch
new file mode 100644
index 00000000000..7d54ba160d6
--- /dev/null
+++ b/dev-python/pycairo/files/pycairo-1.10.0-waf-unpack.patch
@@ -0,0 +1,12 @@
+--- a/waf
++++ b/waf
+@@ -153,6 +153,9 @@
+ return dir
+
+ wafdir = find_lib()
++if sys.argv[1:] == ['unpack']:
++ print(wafdir)
++ exit()
+ sys.path.insert(0, wafdir)
+ from waflib.Tools.c_config import MACRO_TO_DESTOS
+ MACRO_TO_DESTOS['__POWERPC__'] = 'darwin'
diff --git a/dev-python/pycairo/files/pycairo-1.10.0-xpyb.patch b/dev-python/pycairo/files/pycairo-1.10.0-xpyb.patch
new file mode 100644
index 00000000000..33de2692f83
--- /dev/null
+++ b/dev-python/pycairo/files/pycairo-1.10.0-xpyb.patch
@@ -0,0 +1,41 @@
+--- pycairo-1.10.0/wscript
++++ pycairo-1.10.0/wscript
+@@ -10,6 +10,7 @@
+ APPNAME='pycairo'
+ VERSION='1.10.0'
+ cairo_version_required = '1.10.0'
++xpyb_version_required = '1.3' # optional
+
+
+ def check_svg():
+@@ -23,6 +24,17 @@
+ return False
+
+
++def check_xpyb():
++ if os.environ.get('PYCAIRO_DISABLE_XPYB', None) is None:
++ return_code = subprocess.call(['pkg-config', '--exists', 'xpyb'])
++ if return_code == 0:
++ return True
++ else:
++ return False
++ else:
++ return False
++
++
+ def options(ctx):
+ print(' %s/options()' %d)
+ ctx.tool_options('gnu_dirs')
+@@ -42,6 +54,12 @@
+ ctx.check_cfg(package='cairo', atleast_version=cairo_version_required,
+ args='--cflags --libs')
+
++# xpyb for Python 3 is not available yet.
++# the Python 3 version should probably have a different name than 'xpyb'
++# if check_xpyb():
++# ctx.check_cfg(package='xpyb', atleast_version=xpyb_version_required,
++# args='--cflags --libs', mandatory=False)
++
+ # add gcc options
+ if env['CC_NAME'] == 'gcc':
+ env.append_unique('CCFLAGS', ['-std=c99', '-Wall'])
diff --git a/dev-python/pycairo/files/pycairo-1.8.10-pkgconfig_dir.patch b/dev-python/pycairo/files/pycairo-1.8.10-pkgconfig_dir.patch
new file mode 100644
index 00000000000..13015af9c33
--- /dev/null
+++ b/dev-python/pycairo/files/pycairo-1.8.10-pkgconfig_dir.patch
@@ -0,0 +1,11 @@
+--- setup.py
++++ setup.py
+@@ -109,7 +109,7 @@
+ ext_modules = [cairo],
+ data_files = [
+ ('include/pycairo', ['src/pycairo.h']),
+- ('lib/pkgconfig', [pkgconfig_file]),
++ (os.environ.get('PKGCONFIG_DIR', 'lib/pkgconfig'), [pkgconfig_file]),
+ (os.path.join(dsy.get_python_lib(), 'cairo'),
+ ['src/__init__.py']),
+ ],
diff --git a/dev-python/pycairo/files/pycairo-1.8.8-svg_check.patch b/dev-python/pycairo/files/pycairo-1.8.8-svg_check.patch
new file mode 100644
index 00000000000..78dc13bd174
--- /dev/null
+++ b/dev-python/pycairo/files/pycairo-1.8.8-svg_check.patch
@@ -0,0 +1,116 @@
+--- setup.py
++++ setup.py
+@@ -29,6 +30,16 @@
+ print pipe.stderr.read()
+ raise SystemExit('Error: %s >= %s not found' % (pkg, version))
+
++def pkg_config_svg_check():
++ if os.environ.get('PYCAIRO_DISABLE_SVG', None) is None:
++ pipe = call('pkg-config --exists cairo-svg')
++ if pipe.returncode == 0:
++ return [('PYCAIRO_ENABLE_SVG', None)]
++ else:
++ return []
++ else:
++ return []
++
+ def pkg_config_parse(opt, pkg):
+ pipe = call("pkg-config %s %s" % (opt, pkg))
+ output = pipe.stdout.read()
+@@ -94,6 +105,7 @@
+ 'src/pattern.c',
+ 'src/surface.c',
+ ],
++ define_macros = pkg_config_svg_check(),
+ include_dirs = pkg_config_parse('--cflags-only-I', 'cairo'),
+ library_dirs = pkg_config_parse('--libs-only-L', 'cairo'),
+ libraries = pkg_config_parse('--libs-only-l', 'cairo'),
+--- src/cairomodule.c
++++ src/cairomodule.c
+@@ -122,7 +122,7 @@
+ #else
+ 0,
+ #endif
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ &PycairoSVGSurface_Type,
+ #else
+ 0,
+@@ -209,7 +209,7 @@
+ if (PyType_Ready(&PycairoPSSurface_Type) < 0)
+ return;
+ #endif
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ if (PyType_Ready(&PycairoSVGSurface_Type) < 0)
+ return;
+ #endif
+@@ -285,7 +285,7 @@
+ PyModule_AddObject(m, "PSSurface", (PyObject *)&PycairoPSSurface_Type);
+ #endif
+
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ Py_INCREF(&PycairoSVGSurface_Type);
+ PyModule_AddObject(m, "SVGSurface", (PyObject *)&PycairoSVGSurface_Type);
+ #endif
+@@ -350,7 +350,7 @@
+ #else
+ PyModule_AddIntConstant(m, "HAS_PS_SURFACE", 0);
+ #endif
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ PyModule_AddIntConstant(m, "HAS_SVG_SURFACE", 1);
+ #else
+ PyModule_AddIntConstant(m, "HAS_SVG_SURFACE", 0);
+--- src/private.h
++++ src/private.h
+@@ -86,7 +86,7 @@
+ extern PyTypeObject PycairoPSSurface_Type;
+ #endif
+
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ extern PyTypeObject PycairoSVGSurface_Type;
+ #endif
+
+--- src/pycairo.h
++++ src/pycairo.h
+@@ -178,7 +178,7 @@
+ #define PycairoPSSurface_Type *(Pycairo_CAPI->PSSurface_Type)
+ #endif
+
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ #define PycairoSVGSurface_Type *(Pycairo_CAPI->SVGSurface_Type)
+ #endif
+
+--- src/surface.c
++++ src/surface.c
+@@ -80,7 +80,7 @@
+ type = &PycairoPSSurface_Type;
+ break;
+ #endif
+-#if CAIRO_HAS_SVG_SURFACE
++#if PYCAIRO_ENABLE_SVG
+ case CAIRO_SURFACE_TYPE_SVG:
+ type = &PycairoSVGSurface_Type;
+ break;
+@@ -965,7 +965,7 @@
+
+
+ /* Class SVGSurface(Surface) ----------------------------------------------- */
+-#ifdef CAIRO_HAS_SVG_SURFACE
++#ifdef PYCAIRO_ENABLE_SVG
+ #include <cairo-svg.h>
+
+ static PyObject *
+@@ -1067,7 +1067,7 @@
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ };
+-#endif /* CAIRO_HAS_SVG_SURFACE */
++#endif /* PYCAIRO_ENABLE_SVG */
+
+
+ /* Class Win32Surface(Surface) -------------------------------------------- */
diff --git a/dev-python/pycairo/metadata.xml b/dev-python/pycairo/metadata.xml
new file mode 100644
index 00000000000..ee7e8b2450a
--- /dev/null
+++ b/dev-python/pycairo/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pycairo/pycairo-1.10.0-r4.ebuild b/dev-python/pycairo/pycairo-1.10.0-r4.ebuild
new file mode 100644
index 00000000000..03aba82b1fb
--- /dev/null
+++ b/dev-python/pycairo/pycairo-1.10.0-r4.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE='threads(+)'
+
+inherit eutils python-r1 waf-utils toolchain-funcs
+
+PYCAIRO_PYTHON2_VERSION="${PV}"
+PYCAIRO_PYTHON3_VERSION="${PV}"
+
+DESCRIPTION="Python bindings for the cairo library"
+HOMEPAGE="http://cairographics.org/pycairo/ http://pypi.python.org/pypi/pycairo"
+SRC_URI="http://cairographics.org/releases/py2cairo-${PYCAIRO_PYTHON2_VERSION}.tar.bz2
+ http://cairographics.org/releases/pycairo-${PYCAIRO_PYTHON3_VERSION}.tar.bz2"
+
+# LGPL-3 for pycairo 1.10.0.
+# || ( LGPL-2.1 MPL-1.1 ) for pycairo 1.8.10.
+LICENSE="LGPL-3 || ( LGPL-2.1 MPL-1.1 )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples +svg test xcb"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# Note: xpyb is used as the C header, not Python modules
+RDEPEND="${PYTHON_DEPS}
+ >=x11-libs/cairo-1.10.0[svg?,xcb?]
+ xcb? ( x11-libs/xpyb )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+src_prepare() {
+
+ pushd "${WORKDIR}/pycairo-${PYCAIRO_PYTHON3_VERSION}" > /dev/null
+ rm -f src/config.h || die
+ epatch "${FILESDIR}/${PN}-1.10.0-svg_check.patch"
+ epatch "${FILESDIR}/${PN}-1.10.0-xpyb.patch"
+ epatch "${FILESDIR}/${PN}-1.10.0-waf-unpack.patch"
+ epatch "${FILESDIR}"/py2cairo-1.10.0-ppc-darwin.patch
+ popd > /dev/null
+
+ pushd "${WORKDIR}/py2cairo-${PYCAIRO_PYTHON2_VERSION}" > /dev/null
+ rm -f src/config.h || die
+ epatch "${FILESDIR}/py2cairo-1.10.0-svg_check.patch"
+ epatch "${FILESDIR}/py2cairo-1.10.0-xpyb.patch"
+ epatch "${FILESDIR}"/py2cairo-1.10.0-ppc-darwin.patch
+ popd > /dev/null
+
+ preparation() {
+ if python_is_python3; then
+ cp -r -l "${WORKDIR}/pycairo-${PYCAIRO_PYTHON3_VERSION}" "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null
+ wafdir="$(./waf unpack)"
+ pushd "${wafdir}" > /dev/null
+ epatch "${FILESDIR}/${PN}-1.10.0-waf-py3_4.patch"
+ popd > /dev/null
+ popd > /dev/null
+ else
+ cp -r -l "${WORKDIR}/py2cairo-${PYCAIRO_PYTHON2_VERSION}" "${BUILD_DIR}" || die
+ fi
+ }
+ python_foreach_impl preparation
+}
+
+src_configure() {
+ if ! use svg; then
+ export PYCAIRO_DISABLE_SVG=1
+ fi
+
+ if ! use xcb; then
+ export PYCAIRO_DISABLE_XPYB=1
+ fi
+
+ tc-export PKG_CONFIG
+ # Also export the var with the slightly diff name that waf uses for no good reason.
+ export PKGCONFIG=${PKG_CONFIG}
+
+ # Added by grobian:
+ # If WAF_BINARY is an absolute path, the configure is different and fails to
+ # find Python.h due to a compiler misconfiguration. If WAF_BINARY is just
+ # ./waf or python waf, it works fine. Hooray for reinvented buildsystems
+
+ # floppym:
+ # pycairo and py2cairo bundle different versions of waf (bug 447856)
+ WAF_BINARY="./waf"
+ python_foreach_impl run_in_build_dir waf-utils_src_configure --nopyc --nopyo
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir waf-utils_src_compile
+}
+
+src_test() {
+ test_installation() {
+ ./waf install --destdir="${T}/tests/${BUILD_DIR}"
+ PYTHONPATH="${T}/tests/${BUILD_DIR}$(python_get_sitedir)" py.test -v
+ }
+ python_foreach_impl run_in_build_dir test_installation
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir waf-utils_src_install
+
+ dodoc AUTHORS NEWS README
+
+ if use doc; then
+ pushd doc/_build/html > /dev/null || die
+ dohtml -r [a-z]* _static
+ popd > /dev/null || die
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples/*
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_names; next to waf producing dylibs (not bundles) and
+ # calling them .bundle, it also has no idea what it should do to create
+ # proper ones (dylibs)
+ fix_darwin_install_names() {
+ local x="$(python_get_sitedir)/cairo/_cairo.bundle"
+ install_name_tool -id "${x}" "${ED}${x}"
+ }
+ python_foreach_impl fix_darwin_install_names
+ fi
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+ "$@"
+ popd > /dev/null || die
+}
diff --git a/dev-python/pycallgraph/Manifest b/dev-python/pycallgraph/Manifest
new file mode 100644
index 00000000000..0b6a8cd2ffa
--- /dev/null
+++ b/dev-python/pycallgraph/Manifest
@@ -0,0 +1 @@
+DIST pycallgraph-1.0.1.tar.gz 458254 SHA256 1ee59de9c9bfbaa51613546103ef7923c644bbc92bce2b7df563522a7c9bd3a8 SHA512 75a20cd8c50f070c961466f89b70384c914129c8ffcbca3ffde8c4729cd5f8a3dc94c4a33d54990e5cb9e502ccd1038c64e878da84cf832065fe4ece74356e2e WHIRLPOOL a6ce038bc6529dca3e6d3b11f95d7ee521785c3ae32356bb95dfad1a3bf8830a240b51f53ca9c801534750dae16b5f14eeda625c045b2db516c8bc88aa760405
diff --git a/dev-python/pycallgraph/files/python3.3-tests.patch b/dev-python/pycallgraph/files/python3.3-tests.patch
new file mode 100644
index 00000000000..90f31a09ce4
--- /dev/null
+++ b/dev-python/pycallgraph/files/python3.3-tests.patch
@@ -0,0 +1,87 @@
+diff --git a/pycallgraph/config.py b/pycallgraph/config.py
+index 5911fef..e3492c1 100755
+--- a/pycallgraph/config.py
++++ b/pycallgraph/config.py
+@@ -34,7 +34,7 @@ class Config(object):
+ self.did_init = True
+
+ # Update the defaults with anything from kwargs
+- [setattr(self, k, v) for k, v in kwargs.iteritems()]
++ [setattr(self, k, v) for k, v in kwargs.items()]
+
+ self.create_parser()
+
+diff --git a/pycallgraph/output/graphviz.py b/pycallgraph/output/graphviz.py
+index 6f10049..d130d65 100644
+--- a/pycallgraph/output/graphviz.py
++++ b/pycallgraph/output/graphviz.py
+@@ -148,7 +148,7 @@ class GraphvizOutput(Output):
+
+ def attrs_from_dict(self, d):
+ output = []
+- for attr, val in d.iteritems():
++ for attr, val in d.items():
+ output.append('%s = "%s"' % (attr, val))
+ return ', '.join(output)
+
+@@ -164,7 +164,7 @@ class GraphvizOutput(Output):
+
+ def generate_attributes(self):
+ output = []
+- for section, attrs in self.graph_attributes.iteritems():
++ for section, attrs in self.graph_attributes.items():
+ output.append('{} [ {} ];'.format(
+ section, self.attrs_from_dict(attrs),
+ ))
+diff --git a/pycallgraph/output/output.py b/pycallgraph/output/output.py
+index 9660d58..48eef49 100644
+--- a/pycallgraph/output/output.py
++++ b/pycallgraph/output/output.py
+@@ -16,14 +16,14 @@ class Output(object):
+ self.edge_label_func = self.edge_label
+
+ # Update the defaults with anything from kwargs
+- [setattr(self, k, v) for k, v in kwargs.iteritems()]
++ [setattr(self, k, v) for k, v in kwargs.items()]
+
+ def set_config(self, config):
+ '''
+ This is a quick hack to move the config variables set in Config into
+ the output module config variables.
+ '''
+- for k, v in config.__dict__.iteritems():
++ for k, v in config.__dict__.items():
+ if hasattr(self, k) and callable(getattr(self, k)):
+ continue
+ setattr(self, k, v)
+diff --git a/pycallgraph/tracer.py b/pycallgraph/tracer.py
+index 17e9286..74a1477 100644
+--- a/pycallgraph/tracer.py
++++ b/pycallgraph/tracer.py
+@@ -297,7 +297,7 @@ class TraceProcessor(Thread):
+ grp = defaultdict(list)
+ for node in self.nodes():
+ grp[self.group(node.name)].append(node)
+- for g in grp.iteritems():
++ for g in grp.items():
+ yield g
+
+ def stat_group_from_func(self, func, calls):
+@@ -315,14 +315,14 @@ class TraceProcessor(Thread):
+ return stat_group
+
+ def nodes(self):
+- for func, calls in self.func_count.iteritems():
++ for func, calls in self.func_count.items():
+ yield self.stat_group_from_func(func, calls)
+
+ def edges(self):
+- for src_func, dests in self.call_dict.iteritems():
++ for src_func, dests in self.call_dict.items():
+ if not src_func:
+ continue
+- for dst_func, calls in dests.iteritems():
++ for dst_func, calls in dests.items():
+ edge = self.stat_group_from_func(dst_func, calls)
+ edge.src_func = src_func
+ edge.dst_func = dst_func
diff --git a/dev-python/pycallgraph/metadata.xml b/dev-python/pycallgraph/metadata.xml
new file mode 100644
index 00000000000..1783018a272
--- /dev/null
+++ b/dev-python/pycallgraph/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">gak/pycallgraph</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycallgraph/pycallgraph-1.0.1.ebuild b/dev-python/pycallgraph/pycallgraph-1.0.1.ebuild
new file mode 100644
index 00000000000..79af1931945
--- /dev/null
+++ b/dev-python/pycallgraph/pycallgraph-1.0.1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="library and command line tool to visualise the flow of Python applications"
+HOMEPAGE="http://pycallgraph.slowchop.com/"
+SRC_URI="https://github.com/gak/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples test"
+
+CDEPEND="media-gfx/graphviz"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ doc? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+ examples? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+ test? (
+ ${CDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/python3.3-tests.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use examples; then
+ cd docs/examples || die "Couldn't change to docs/examples"
+ "${PYTHON}" generate.py || die "Couldn't generate examples"
+ cd - || die "Couldn't return to previous directory"
+
+ cd docs/guide/filtering || die "Couldn't change to docs/guide/filtering"
+ "${PYTHON}" generate.py || die "Couldn't generate filtering examples"
+ cd - || die "Couldn't return to previous directory"
+ fi
+
+ use doc && emake -C docs html
+
+ emake -C docs man
+}
+
+python_test() {
+ # gephi is not in portage; thus, skip the gephi tests
+ rm -f test/test_gephi.py || die "Couldn't remove gephi tests"
+
+ py.test --ignore=pycallgraph/memory_profiler.py test pycallgraph examples || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+
+ doman docs/_build/man/pycallgraph.1
+}
diff --git a/dev-python/pycanberra/Manifest b/dev-python/pycanberra/Manifest
new file mode 100644
index 00000000000..8ffa7262a47
--- /dev/null
+++ b/dev-python/pycanberra/Manifest
@@ -0,0 +1 @@
+DIST pycanberra-0_pre20130515.zip 14945 SHA256 5d80b30c774bedec1ba37bda6e68d57f8f9f7977590ffe5f5d630a79f348b80f SHA512 9836ed3d5aea9a80a3ffd64ef85b327c7dcdf24793c65010f43139c548d7c77522ab32f407930efed89493509efd117c64ec0fbf4d1d6d567d4d34d12d1936aa WHIRLPOOL d1d81f7cfdbf7097b6fb0e33f127f93524d2921a86bd11d690e4b72ecb0924af9e79686413a68b73dccbc2043ebd6f0b101ea89a715865f2bbd8c25f5a33d8f8
diff --git a/dev-python/pycanberra/metadata.xml b/dev-python/pycanberra/metadata.xml
new file mode 100644
index 00000000000..76493836e91
--- /dev/null
+++ b/dev-python/pycanberra/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome</herd>
+ <herd>python</herd>
+ <herd>sound</herd>
+ <upstream>
+ <remote-id type="github">psykoyiko/pycanberra</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycanberra/pycanberra-0_pre20130515.ebuild b/dev-python/pycanberra/pycanberra-0_pre20130515.ebuild
new file mode 100644
index 00000000000..b68acf1c925
--- /dev/null
+++ b/dev-python/pycanberra/pycanberra-0_pre20130515.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1
+
+DESCRIPTION="Basic Python wrapper for libcanberra"
+HOMEPAGE="https://github.com/psykoyiko/pycanberra/"
+PCOMMIT="88c53cd44a626ede3b07dab0b548f8bcfda42867"
+SRC_URI="https://github.com/psykoyiko/pycanberra/archive/${PCOMMIT}.zip -> ${P}.zip"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="${PYTHON_DEPS}
+ media-libs/libcanberra"
+DEPEND="${PYTHON_DEPS}"
+
+S="${WORKDIR}/${PN}-${PCOMMIT}"
+
+src_prepare() { :; }
+src_compile() { :; }
+src_install() {
+ python_foreach_impl python_domodule pycanberra.py
+ default
+}
diff --git a/dev-python/pycdf/Manifest b/dev-python/pycdf/Manifest
new file mode 100644
index 00000000000..d7188b40e9d
--- /dev/null
+++ b/dev-python/pycdf/Manifest
@@ -0,0 +1 @@
+DIST pycdf-0.6-3.tar.gz 167762 SHA256 d81d8079bd5821dfa955fbb44f2b799d21451c596fcdb0e9dd849627e583b31b SHA512 c18ecb46fa3888ab2fdd3449fcc599a22e371996faa273aa67f137a960ad74f8eb40472174a9034ccecc86ddaea14d1955b4cfdd16c8b64d2fd54cc42a75ad86 WHIRLPOOL 2f53c26d31c1ecffae4b8079978a1ca07a2044ddb002483c6579915a84a9b90e6d18ed901a43f03c09758afa104fb8f19f85d5a8b5b670c73ab1c7aa839b022b
diff --git a/dev-python/pycdf/metadata.xml b/dev-python/pycdf/metadata.xml
new file mode 100644
index 00000000000..ed85ab12b1b
--- /dev/null
+++ b/dev-python/pycdf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pysclint</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycdf/pycdf-0.6.3-r1.ebuild b/dev-python/pycdf/pycdf-0.6.3-r1.ebuild
new file mode 100644
index 00000000000..b911462589b
--- /dev/null
+++ b/dev-python/pycdf/pycdf-0.6.3-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="${PN}-${PV:0:3}-${PV:4:1}"
+
+DESCRIPTION="Python interface to scientific netCDF library"
+HOMEPAGE="http://pysclint.sourceforge.net/pycdf/"
+SRC_URI="mirror://sourceforge/pysclint/${MY_P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/numpy[${PYTHON_USEDEP}]
+ >=sci-libs/netcdf-3.6.1"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_install_all() {
+ use doc && dohtml doc/pycdf.html
+ dodoc CHANGES doc/pycdf.txt
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycdio/Manifest b/dev-python/pycdio/Manifest
new file mode 100644
index 00000000000..948ea6e7afd
--- /dev/null
+++ b/dev-python/pycdio/Manifest
@@ -0,0 +1 @@
+DIST pycdio-0.20.tar.gz 197736 SHA256 24b4985b699fc4d12c2d49f7cb25a1ceb65d69278d18458f7b041579c71030d7 SHA512 b53a535440008dc637b31fd2cda22845c91b98e78c30f90c866af3b9bf7cb3faad39f0784b5063a39bd97bb18fc58c75ad0833d53421182d408c2889c491846b WHIRLPOOL 7722efc2398cdcf971ac7c62dc360514f64eb636a6c2c10ab86255e27802e99c4008613541bacf55e7fe20aa1431e1f44b60243722686d69fbc9df9fda6ff619
diff --git a/dev-python/pycdio/metadata.xml b/dev-python/pycdio/metadata.xml
new file mode 100644
index 00000000000..23ae40d3951
--- /dev/null
+++ b/dev-python/pycdio/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">The pycdio (and libcdio) libraries encapsulate CD-ROM reading and
+ control. Python programs wishing to be oblivious of the OS- and
+ device-dependent properties of a CD-ROM can use this library.</longdescription>
+ <upstream>
+ <remote-id type="pypi">pycdio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycdio/pycdio-0.20-r1.ebuild b/dev-python/pycdio/pycdio-0.20-r1.ebuild
new file mode 100644
index 00000000000..ed43e11220b
--- /dev/null
+++ b/dev-python/pycdio/pycdio-0.20-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python OO interface to libcdio (CD Input and Control library)"
+HOMEPAGE="http://savannah.gnu.org/projects/libcdio/ http://pypi.python.org/pypi/pycdio"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+RDEPEND=">=dev-libs/libcdio-0.90"
+DEPEND="${RDEPEND}
+ dev-lang/swig
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+RESTRICT="test" # currently tests fail
+
+python_prepare_all() {
+ # Remove obsolete sys.path and adjust 'data' paths in examples.
+ sed -i \
+ -e "s:^sys.path.insert.*::" \
+ -e "s:\.\./data:./data:g" \
+ example/*.py || die
+
+ # Disable failing tests.
+ sed -i -e "s/test_get_set/_&/" test/test-cdtext.py || die
+ sed -i -e "s/test_fs/_&/" test/test-isocopy.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all(){
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pychart/Manifest b/dev-python/pychart/Manifest
new file mode 100644
index 00000000000..cf085689073
--- /dev/null
+++ b/dev-python/pychart/Manifest
@@ -0,0 +1,2 @@
+DIST PyChart-1.39.tar.gz 115908 SHA256 882650928776a7ca72e67054a9e0ac98f78645f279c0cfb5910db28f03f07c2e SHA512 b6af817906610f3907508b72e2e95a68893f65f132c7964c803dcb88ca2e999b57f89ead1c6a66e28796f1ed2df512d16513d093fc8de1505f678edda3e41532 WHIRLPOOL c69006c7ee888acfaf8aacd950daa9559af2d0bee0c3c55c7250d2a0376c6d5b633134b86c5ac150e4e535e4a35af19d0b0964a00a6ede2d41fa0f66fb19ceb7
+DIST pychart-doc.tar.gz 302416 SHA256 0188f1c3c0eb6e35b8518d4360f0356e516e81305a040caf2f2c4744b7850d6f SHA512 9a81fea73b37fb8decc1279cc0e52abbdc9f98c7d73c98c9c7d7d2d27e0bf33fa4eb199dc4a09488d5f109a202b23fe950d58e1140f29a720cd14190dff10530 WHIRLPOOL 26af512d7fc0f6ed3f7c1d8bc1d62bdeabd9a7e9975bc4bcafa4082fe3230bab6a03813263e637e35863c8bedcdc9c7b9c20a5a46d8607966df66b6f2edf5567
diff --git a/dev-python/pychart/metadata.xml b/dev-python/pychart/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pychart/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pychart/pychart-1.39-r1.ebuild b/dev-python/pychart/pychart-1.39-r1.ebuild
new file mode 100644
index 00000000000..728380ab913
--- /dev/null
+++ b/dev-python/pychart/pychart-1.39-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P=PyChart-${PV}
+
+DESCRIPTION="Python library for creating charts"
+HOMEPAGE="http://home.gna.org/pychart/"
+SRC_URI="http://download.gna.org/pychart/${MY_P}.tar.gz
+ doc? ( http://download.gna.org/pychart/${PN}-doc.tar.gz )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc x86"
+IUSE="doc examples"
+
+DEPEND="app-text/ghostscript-gpl"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${WORKDIR}"/${PN}/. )
+ use examples && local EXAMPLES=( demos/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pychecker/Manifest b/dev-python/pychecker/Manifest
new file mode 100644
index 00000000000..e5f47a04f54
--- /dev/null
+++ b/dev-python/pychecker/Manifest
@@ -0,0 +1 @@
+DIST pychecker-0.8.19.tar.gz 99783 SHA256 44fb26668f74aca3738f02d072813762a37ce1242f50dbff573720fa2e953279 SHA512 50f3d87a0ea80235761eb0ff078dc7e815848c356cea2bdf12bb699edc6d3301252acebaf6ab6aa961849d740dc38bc9b6deb7cfe956e7fff83a104750adfa18 WHIRLPOOL 1bf382babfed78a4dbe2805ce3d2c1c0acf38a3f5dc1638c2788d77a3825a1c34714b1a7c256221fec2a1d21cf16d12ecb95f6c3875fcadddcae8044bdb4b292
diff --git a/dev-python/pychecker/files/pychecker-0.8.17-no-data-files.patch b/dev-python/pychecker/files/pychecker-0.8.17-no-data-files.patch
new file mode 100644
index 00000000000..aeaaa1a9844
--- /dev/null
+++ b/dev-python/pychecker/files/pychecker-0.8.17-no-data-files.patch
@@ -0,0 +1,15 @@
+=== modified file 'setup.py'
+--- setup.py 2008-09-01 16:31:56 +0000
++++ setup.py 2008-09-01 16:33:28 +0000
+@@ -255,7 +255,9 @@
+ 'url' : "http://pychecker.sourceforge.net/",
+ 'packages' : [ 'pychecker', ],
+ 'scripts' : [ "pychecker" ], # note: will be replaced by customized action
+- 'data_files' : [ ( "pychecker", DATA_FILES, ) ],
++ # Gentoo Modification: Do not install data files into site-packages
++ # use DOCS variable in ebuild instead
++ #'data_files' : [ ( "pychecker", DATA_FILES, ) ],
+ 'long_description' : LONG_DESCRIPTION,
+ 'cmdclass' : CUSTOMIZED_ACTIONS,
+ }
+
diff --git a/dev-python/pychecker/files/pychecker-0.8.18-pychecker2.patch b/dev-python/pychecker/files/pychecker-0.8.18-pychecker2.patch
new file mode 100644
index 00000000000..e225d1a06b1
--- /dev/null
+++ b/dev-python/pychecker/files/pychecker-0.8.18-pychecker2.patch
@@ -0,0 +1,11 @@
+--- setup.py 2008-11-09 17:43:10.928105449 +0100
++++ setup.py 2008-11-09 17:38:52.000000000 +0100
+@@ -258,7 +258,7 @@
+ 'author' : "Neal Norwitz",
+ 'author_email' : "nnorwitz@gmail.com",
+ 'url' : "http://pychecker.sourceforge.net/",
+- 'packages' : [ 'pychecker', ],
++ 'packages' : [ 'pychecker', 'pychecker2' ],
+ 'scripts' : [ "pychecker" ], # note: will be replaced by customized action
+ # Gentoo Modification: Do not install data files into site-packages
+ # use DOCS variable in ebuild instead
diff --git a/dev-python/pychecker/files/pychecker-0.8.19-create_script.patch b/dev-python/pychecker/files/pychecker-0.8.19-create_script.patch
new file mode 100644
index 00000000000..ca436759117
--- /dev/null
+++ b/dev-python/pychecker/files/pychecker-0.8.19-create_script.patch
@@ -0,0 +1,13 @@
+--- setup.py
++++ setup.py
+@@ -221,7 +221,9 @@
+ script_str = "%s %s %%*\n" % (sys.executable, checker_path)
+ else:
+ script_str = '#! /bin/sh\n\n%s %s "$@"\n' % (sys.executable, checker_path)
+- open(script_path, "w").write(script_str)
++ script = open(script_path, "w")
++ script.write(script_str)
++ script.close()
+ except Exception, e:
+ print "ERROR: Unable to create %s: %s" % (script_path, e)
+ raise e
diff --git a/dev-python/pychecker/files/pychecker-0.8.19-version.patch b/dev-python/pychecker/files/pychecker-0.8.19-version.patch
new file mode 100644
index 00000000000..9fe8490175a
--- /dev/null
+++ b/dev-python/pychecker/files/pychecker-0.8.19-version.patch
@@ -0,0 +1,12 @@
+diff -ur pychecker-0.8.19.orig/pychecker/Config.py pychecker-0.8.19/pychecker/Config.py
+--- pychecker/Config.py 2013-02-01 12:06:10.669695876 +0800
++++ pychecker/Config.py 2013-02-01 12:06:26.238695001 +0800
+@@ -33,7 +33,7 @@
+
+ _RC_FILE = ".pycheckrc"
+ CHECKER_VAR = '__pychecker__'
+-_VERSION = '0.8.18'
++_VERSION = '0.8.19'
+
+ _DEFAULT_BLACK_LIST = [ "Tkinter", "wxPython", "gtk", "GTK", "GDK", ]
+ _DEFAULT_VARIABLE_IGNORE_LIST = [ '__version__', '__warningregistry__',
diff --git a/dev-python/pychecker/metadata.xml b/dev-python/pychecker/metadata.xml
new file mode 100644
index 00000000000..1ed01a6dd62
--- /dev/null
+++ b/dev-python/pychecker/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pychecker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pychecker/pychecker-0.8.19-r1.ebuild b/dev-python/pychecker/pychecker-0.8.19-r1.ebuild
new file mode 100644
index 00000000000..e54b49fc587
--- /dev/null
+++ b/dev-python/pychecker/pychecker-0.8.19-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python source code checking tool"
+HOMEPAGE="http://pychecker.sourceforge.net/ http://pypi.python.org/pypi/PyChecker"
+SRC_URI="mirror://sourceforge/pychecker/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DOCS=( pycheckrc ChangeLog KNOWN_BUGS MAINTAINERS NEWS README TODO )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-version.patch
+ "${FILESDIR}"/${P}-create_script.patch
+ )
+
+python_prepare_all() {
+ sed \
+ -e '1d' \
+ -i pychecker/checker.py \
+ || die
+
+ # Disable installation of unneeded files.
+ sed \
+ -e "/'data_files' :/d" \
+ -i setup.py || die "sed failed"
+
+ # Strip final "/" from root.
+ sed \
+ -e 's:root = self\.distribution\.get_command_obj("install")\.root:&\.rstrip("/"):' \
+ -i setup.py || die "sed failed"
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pychef/Manifest b/dev-python/pychef/Manifest
new file mode 100644
index 00000000000..ba534764354
--- /dev/null
+++ b/dev-python/pychef/Manifest
@@ -0,0 +1,2 @@
+DIST PyChef-0.2.1.tar.gz 29251 SHA256 a74e922eb275a1ea26fc1e65eeb503a610f026f144d6537160f3f380d2108489 SHA512 8d591087c649b5b0d09d4f7b7b26cec56631742833ac7b53eaaa744bd3b42d290ec37df96bdb0ea17a9c824d091d4527458d83abcdf4b2c029f921dbda425220 WHIRLPOOL d271b8991061155b8195e6b90877423ac5363064e9257a1a238b2b3a4f2a389c6b7fa8923ae85ac3f4946fa78e493556ce3fd61945d8bc8f02daa8e0325e994c
+DIST PyChef-0.2.3.tar.gz 21082 SHA256 212df9a0887f7f0dfb420ecc33b554104db7222c1a1ef26e1362b3207a9260cd SHA512 e8e0f3045f23032d8fe3169e9ff66cb3ce78ac1a9910d35c7399eeb252b474668c11dde4205689608c073b95f380738bf34b47d32ee5d24edb61fe3fd1674790 WHIRLPOOL d3ea4dca96e111310ab2a8f1761d10e68b9bf8f6e7d1dc6e9787e1c4aec7e0d14fca56561fd9f5ec164f7544fad6ba896aed0830073dadb0d8ac169a085c2350
diff --git a/dev-python/pychef/metadata.xml b/dev-python/pychef/metadata.xml
new file mode 100644
index 00000000000..6e72a706ec1
--- /dev/null
+++ b/dev-python/pychef/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A Python API for interacting with a Chef server.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">PyChef</remote-id>
+ <remote-id type="github">coderanger/pychef</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pychef/pychef-0.2.1.ebuild b/dev-python/pychef/pychef-0.2.1.ebuild
new file mode 100644
index 00000000000..088d0410773
--- /dev/null
+++ b/dev-python/pychef/pychef-0.2.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/coderanger/pychef"
+SRC_URI="mirror://pypi/P/PyChef/PyChef-${PV}.tar.gz"
+S="${WORKDIR}/PyChef-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/versiontools[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pychef/pychef-0.2.3.ebuild b/dev-python/pychef/pychef-0.2.3.ebuild
new file mode 100644
index 00000000000..addbd074f9c
--- /dev/null
+++ b/dev-python/pychef/pychef-0.2.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python API for interacting with a Chef server"
+HOMEPAGE="https://github.com/coderanger/pychef"
+SRC_URI="mirror://pypi/P/PyChef/PyChef-${PV}.tar.gz"
+S="${WORKDIR}/PyChef-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/versiontools[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pychm/Manifest b/dev-python/pychm/Manifest
new file mode 100644
index 00000000000..b7cb97c1a9a
--- /dev/null
+++ b/dev-python/pychm/Manifest
@@ -0,0 +1 @@
+DIST pychm-0.8.4.tar.gz 28803 SHA256 84c99d7b28fb6862ee60a5d1d52fad0da4c95f1934e9c101d3293ee7e8b5357d SHA512 0c0c107e59ea9f5fef97a0c2869349b5e90fc9eb7a37c35e8a929eaf764c7abe5a06a389340a912b9ba2f71172f3c94a78da016707bb201bbd07bdc3feddfe0d WHIRLPOOL dd183874f116a946961cfefb9150bf8bca69570f0bd271b21023b8c1d1b25abc14ff4f1f9deaa84619344c8236034c51d77b4422277e35f8df320391a24d510c
diff --git a/dev-python/pychm/metadata.xml b/dev-python/pychm/metadata.xml
new file mode 100644
index 00000000000..9ddd1c3a5b1
--- /dev/null
+++ b/dev-python/pychm/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+The chm package provides three modules, chm, chmlib and extra, which
+provide access to the API implemented by the C library chmlib and some
+additional classes and functions. They are used to access MS-ITSS
+encoded files - Compressed Html Help files (.chm).
+</longdescription>
+ <longdescription lang="ja">
+Chmパッケージは、C言語ライブラリChmのAPI実装とそれに幾つか拡張されたクラスと関数
+にアクセスする手段のchm, chmlib, extraの3つのモジュールを提供します。MS-ITSSエン
+コード・ファイルに使われています。-- Compressed Html Help ファイル (.chm)。
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">gnochm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pychm/pychm-0.8.4-r1.ebuild b/dev-python/pychm/pychm-0.8.4-r1.ebuild
new file mode 100644
index 00000000000..6386e02ecac
--- /dev/null
+++ b/dev-python/pychm/pychm-0.8.4-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the chmlib library"
+HOMEPAGE="http://gnochm.sourceforge.net/pychm.html"
+SRC_URI="mirror://sourceforge/gnochm/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="dev-libs/chmlib"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/pychm/pychm-0.8.4.ebuild b/dev-python/pychm/pychm-0.8.4.ebuild
new file mode 100644
index 00000000000..56f6ab3414b
--- /dev/null
+++ b/dev-python/pychm/pychm-0.8.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Python bindings for the chmlib library"
+HOMEPAGE="http://gnochm.sourceforge.net/pychm.html"
+SRC_URI="mirror://sourceforge/gnochm/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="dev-libs/chmlib"
+RDEPEND="${DEPEND}"
+
+PYTHON_MODNAME="chm"
diff --git a/dev-python/pychroot/Manifest b/dev-python/pychroot/Manifest
new file mode 100644
index 00000000000..c76993ea2b7
--- /dev/null
+++ b/dev-python/pychroot/Manifest
@@ -0,0 +1,2 @@
+DIST pychroot-0.9.11.tar.gz 17904 SHA256 986a49997bb90e78e68cc99363659e01482adc0158c895d621f754b7d1a1870e SHA512 0cc169b79dd29e4c712b6764a6cf83f91d71383664276faca676a848b00b34203fc6f4430bc0c6f4a099959e76fc06f08d4f3679fceaaf8126dc1c1c78283ea7 WHIRLPOOL 9ce13e27390c46cfe43ca597e55bd786ad338b513a60864d4bb040cf84a97c1e4d9e3c044d4c7c6f2d10ed0b7b815a7b4239a3aee40486df834a722e8803c914
+DIST pychroot-0.9.9.tar.gz 11936 SHA256 49558bdc85dbdd25dbd2b3417eb857bd770bfb026db76c7e2bcedc8c605fe76b SHA512 437e8fa1a7d13a884c6fccb0e0cc81de8ccd6ff63ca0b3d2f55dcaa0c9cbef0c81cd033d64e08c1d35805f1d7e568fe941128c569827d7ae641d2d3b2ca4c1c2 WHIRLPOOL 40b3deb33d865efa37ce0b78a4471a531c6c6d542750ef87bb54071084a3bbdb115ffec92fef9086c3cc0ca63f9a71c65e3a4daa88f30cede7e4a5cbbd3f4851
diff --git a/dev-python/pychroot/metadata.xml b/dev-python/pychroot/metadata.xml
new file mode 100644
index 00000000000..ed0ecc48391
--- /dev/null
+++ b/dev-python/pychroot/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">pkgcore/pychroot</remote-id>
+ <remote-id type="pypi">pychroot</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pychroot/pychroot-0.9.11.ebuild b/dev-python/pychroot/pychroot-0.9.11.ebuild
new file mode 100644
index 00000000000..2930d41c290
--- /dev/null
+++ b/dev-python/pychroot/pychroot-0.9.11.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/pkgcore/pychroot.git"
+ inherit git-r3
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+fi
+
+DESCRIPTION="a python library that simplifies chroot handling"
+HOMEPAGE="https://github.com/pkgcore/pychroot"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="test"
+
+RDEPEND=">=dev-python/snakeoil-0.6.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7)
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pychroot/pychroot-0.9.9.ebuild b/dev-python/pychroot/pychroot-0.9.9.ebuild
new file mode 100644
index 00000000000..2930d41c290
--- /dev/null
+++ b/dev-python/pychroot/pychroot-0.9.9.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/pkgcore/pychroot.git"
+ inherit git-r3
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+fi
+
+DESCRIPTION="a python library that simplifies chroot handling"
+HOMEPAGE="https://github.com/pkgcore/pychroot"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="test"
+
+RDEPEND=">=dev-python/snakeoil-0.6.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7)
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pychroot/pychroot-9999.ebuild b/dev-python/pychroot/pychroot-9999.ebuild
new file mode 100644
index 00000000000..3099351eaca
--- /dev/null
+++ b/dev-python/pychroot/pychroot-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/pkgcore/pychroot.git"
+ inherit git-r3
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+fi
+
+DESCRIPTION="a python library and cli tool that simplify chroot handling"
+HOMEPAGE="https://github.com/pkgcore/pychroot"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="test"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ =dev-python/snakeoil-9999[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ $(python_gen_cond_dep 'dev-python/3to2[${PYTHON_USEDEP}]' python2_7)
+ test? (
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7)
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+[[ ${PV} == *9999 ]] && DEPEND+=" dev-python/sphinx[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ [[ ${PV} == *9999 ]] && emake -C doc man
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ emake -C doc PREFIX=/usr DESTDIR="${D}" install_man
+}
diff --git a/dev-python/pycipher/Manifest b/dev-python/pycipher/Manifest
new file mode 100644
index 00000000000..d8a0253e3b8
--- /dev/null
+++ b/dev-python/pycipher/Manifest
@@ -0,0 +1 @@
+DIST pycipher-0.2.py 9174 SHA256 c9acccea93d8f469b0b577f0dcbf4bbaf8a95c869a1c6b75d9e39c55e60e47e1 SHA512 ce3890184affc761fcac7a19284437ca5bd7fd5be6594dc6112eccc27971ca2a62cdff106bffea29c94f3dbc8bbee5f67af3bcd3a53838a1c7bfb19dad45dcda WHIRLPOOL cc61b0b012e52e3363af163f4e79f4bb2780c30dc0a684aeaa8e4959238f74ae73ec1e2d2abf4f6a4450610854ee89e725642c4c40a4971e42aad9aeaa585b7c
diff --git a/dev-python/pycipher/metadata.xml b/dev-python/pycipher/metadata.xml
new file mode 100644
index 00000000000..2ac3f1d437f
--- /dev/null
+++ b/dev-python/pycipher/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pycipher</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycipher/pycipher-0.2.ebuild b/dev-python/pycipher/pycipher-0.2.ebuild
new file mode 100644
index 00000000000..d298359305c
--- /dev/null
+++ b/dev-python/pycipher/pycipher-0.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="*"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit python
+
+DESCRIPTION="A Python module that implements several well-known classical cipher algorithms"
+HOMEPAGE="http://pycipher.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.py"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+src_install() {
+ installation() {
+ insinto $(python_get_sitedir)
+ newins "${DISTDIR}/${P}.py" ${PN}.py
+ }
+ python_execute_function installation
+}
+
+pkg_postinst() {
+ python_mod_optimize ${PN}.py
+}
+
+pkg_postrm() {
+ python_mod_cleanup ${PN}.py
+}
diff --git a/dev-python/pyclamav/Manifest b/dev-python/pyclamav/Manifest
new file mode 100644
index 00000000000..4e907a14c8c
--- /dev/null
+++ b/dev-python/pyclamav/Manifest
@@ -0,0 +1 @@
+DIST pyclamav-0.4.1.tar.gz 12789 SHA256 27f0ea9771a9c5d8f974761df829a85344a19cf47a4b23a3f69836de2717b81c SHA512 ea06ba4706d2a1a98f265f308a72461224d09c44498f2809d31d7576958ecb53038cc3b98ba65e7841bf5082ecf094c2eea6cf7156074461378e98260d42b54f WHIRLPOOL fa9ef9e930e3c886acf2e5e8bc6586bede1e786320d1db03f92e8d4e94f72604adf3879e186b117f324034d9b5011e71168a6bdbff59565c3b3cf163f765ef86
diff --git a/dev-python/pyclamav/files/pyclamav-0.4.1-clamav-0.95.patch b/dev-python/pyclamav/files/pyclamav-0.4.1-clamav-0.95.patch
new file mode 100644
index 00000000000..1cf77e1925e
--- /dev/null
+++ b/dev-python/pyclamav/files/pyclamav-0.4.1-clamav-0.95.patch
@@ -0,0 +1,126 @@
+
+--- python-clamav-0.4.1.orig/pyclamav.c
++++ python-clamav-0.4.1/pyclamav.c
+@@ -33,25 +33,6 @@
+
+ /* ********************************************************* */
+
+-/* To be able to compile with
+- releases 0.75 of libclamav
+-
+- Where cl_free was cl_freetrie
+- and cl_build was cl_buildtrie
+- CL_SCAN_STDOPT did not exist
+-*/
+-#ifndef CL_SCAN_STDOPT
+-#define CL_SCAN_STDOPT CL_RAW | CL_ARCHIVE | CL_MAIL | CL_DISABLERAR | CL_OLE2 | CL_ENCRYPTED
+-void cl_free(struct cl_node *rootnode) {
+- cl_freetrie(rootnode);
+- return;
+-}
+-
+-int cl_build(struct cl_node *rootnode) {
+- return cl_buildtrie(rootnode);
+-}
+-#endif
+-
+ /* For python prior to 2.3 */
+ #ifndef PyMODINIT_FUNC
+ #define PyMODINIT_FUNC void
+@@ -68,11 +49,9 @@
+ unsigned int signumber = 0;
+
+ /* Structures for clamav */
+-struct cl_node *root = NULL;
+-struct cl_limits limits;
++struct cl_engine *engine = NULL;
+ struct cl_stat dbstat;
+
+-
+ /*
+ * If the virus database has been changed, then
+ * free the current tree and reload the new one
+@@ -85,22 +64,22 @@
+ /* If yes : reload DB */
+ if (cl_statchkdir(&dbstat) == 1)
+ {
+- /* free the tree */
+- cl_free(root);
++ /* free the engine */
++ cl_engine_free(engine);
+ signumber=0;
+- root=NULL;
++ engine=NULL;
+
+ /* Load DB */
+- if((ret = cl_load(cl_retdbdir(), &root, &signumber, CL_DB_STDOPT))) {
++ if((ret = cl_load(cl_retdbdir(), engine, &signumber, CL_DB_STDOPT)) != CL_SUCCESS) {
+ /* Raise exception with error message */
+ PyErr_SetString(PyclamavError, cl_strerror(ret));
+ return -2;
+ }
+
+- /* build the final tree */
+- if((ret = cl_build(root))) {
+- /* free the partial tree */
+- cl_free(root);
++ /* prepare the engine */
++ if((ret = cl_engine_compile(engine))) {
++ /* free the engine */
++ cl_engine_free(engine);
+ /* Raise exception with error message */
+ PyErr_SetString(PyclamavError, cl_strerror(ret));
+ return -2;
+@@ -231,7 +210,7 @@
+ return NULL;
+ }
+
+- ret = cl_scanfile(file_to_scan, &virname, &size, root, &limits, CL_SCAN_STDOPT);
++ ret = cl_scanfile(file_to_scan, &virname, &size, engine, CL_SCAN_STDOPT);
+
+ /* Test return code */
+ switch (ret) {
+@@ -278,17 +257,21 @@
+ /* Set documentation string for the module */
+ PyDict_SetItemString(dict, "__doc__", PyString_FromString("pyclamav :\n\n This is a python binding to the C libclamav library\n (from the Clamav project - http://www.clamav.net).\n It can be used to easily allow a Python script to scan\n a file or a buffer against known viruses.\n\nAuthor : Alexandre Norman [norman@xael.org]\n\nFunctions :\n - scanfile(string filename) : Scan a file for virus.\n - get_numsig() : Return the number of known signatures.\n - get_version() : Return the version of Clamav.\n - version() : Return the version of pyclamav.\n"));
+
++ /* initialize libclamav */
++ cl_init(CL_INIT_DEFAULT);
++ engine = cl_engine_new();
+
+- if((ret = cl_load(cl_retdbdir(), &root, &signumber, CL_DB_STDOPT))) {
++ if((ret = cl_load(cl_retdbdir(), engine, &signumber, CL_DB_STDOPT))) {
+ /* Raise exception with error message */
+ PyErr_SetString(PyclamavError, cl_strerror(ret));
++ cl_engine_free(engine);
+ return;
+ }
+
+- /* build the final tree */
+- if((ret = cl_build(root))) {
+- /* free the partial tree */
+- cl_free(root);
++ /* prepare the engine */
++ if((ret = cl_engine_compile(engine)) != CL_SUCCESS) {
++ /* free up the engine resources */
++ cl_engine_free(engine);
+ /* Raise exception with error message */
+ PyErr_SetString(PyclamavError, cl_strerror(ret));
+ return;
+@@ -299,15 +282,6 @@
+ memset(&dbstat, 0, sizeof(struct cl_stat));
+ cl_statinidir(cl_retdbdir(), &dbstat);
+
+-
+-
+- /* set up archive limits */
+- memset(&limits, 0, sizeof(struct cl_limits));
+- limits.maxfiles = 1000; /* max files */
+- limits.maxfilesize = 10 * 1048576; /* maximal archived file size == 10 Mb */
+- limits.maxreclevel = 5; /* maximal recursion level */
+- limits.archivememlim = 0; /* disable memory limit for bzip2 scanner */
+-
+ return ;
+ }
+
+
diff --git a/dev-python/pyclamav/metadata.xml b/dev-python/pyclamav/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyclamav/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyclamav/pyclamav-0.4.1-r1.ebuild b/dev-python/pyclamav/pyclamav-0.4.1-r1.ebuild
new file mode 100644
index 00000000000..f0588827f32
--- /dev/null
+++ b/dev-python/pyclamav/pyclamav-0.4.1-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython *-pypy-*"
+
+inherit distutils eutils
+
+DESCRIPTION="Python binding for libclamav"
+HOMEPAGE="http://xael.org/norman/python/pyclamav/ http://pypi.python.org/pypi/pyclamav"
+SRC_URI="http://xael.org/norman/python/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc x86"
+IUSE=""
+
+DEPEND=">=app-antivirus/clamav-0.90"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ distutils_src_prepare
+
+ # Patch from Debian to build w/ >=clamav-0.95
+ epatch "${FILESDIR}/${P}-clamav-0.95.patch"
+}
+
+src_install() {
+ distutils_src_install
+
+ insinto /usr/share/doc/${PF}
+ doins example.py
+}
diff --git a/dev-python/pyclamav/pyclamav-0.4.1-r2.ebuild b/dev-python/pyclamav/pyclamav-0.4.1-r2.ebuild
new file mode 100644
index 00000000000..0dfa19e7893
--- /dev/null
+++ b/dev-python/pyclamav/pyclamav-0.4.1-r2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python binding for libclamav"
+HOMEPAGE="http://xael.org/norman/python/pyclamav/ http://pypi.python.org/pypi/pyclamav"
+SRC_URI="http://xael.org/norman/python/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=app-antivirus/clamav-0.90"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-clamav-0.95.patch )
+DOCS=( README.txt example.py )
+
+src_install() {
+ distutils-r1_src_install
+
+ insinto /usr/share/doc/${PF}
+ doins example.py
+}
+
+pkg_postinst() {
+ elog "an example called example.py has been installed into /usr/share/doc/${PF}"
+}
diff --git a/dev-python/pyclimate/Manifest b/dev-python/pyclimate/Manifest
new file mode 100644
index 00000000000..f30ce01a473
--- /dev/null
+++ b/dev-python/pyclimate/Manifest
@@ -0,0 +1 @@
+DIST PyClimate-1.2.2.tar.gz 1417758 SHA256 3ee4aadf3d072270aa179c8b2345f5e2136df91c7237a30540be146d7fda8c94 SHA512 b217991873e99ad147e0f4e05bfa900a60486852a803ed6c224321f6fc1f1b6700ad2ad1d6c7c7f8ed8ec94340220c5277456c98ccb408f0bef6888c0adf018f WHIRLPOOL aae764d8d1c53e18d7d190ff78b3619d979501bc14b4c0ef5d3d94aeb274fa56a271f76d3e51e18c6efe20255b52cb43233f67c6664dcaeab03e2365444bf956
diff --git a/dev-python/pyclimate/metadata.xml b/dev-python/pyclimate/metadata.xml
new file mode 100644
index 00000000000..056e23c1e4f
--- /dev/null
+++ b/dev-python/pyclimate/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <herd>python</herd>
+<longdescription>
+ A package designed to accomplish some usual tasks during the analysis of
+ climate variability using Python. It provides functions to perform some
+ simple IO operations, operations with COARDS-compliant netCDF files, EOF
+ analysis, SVD and CCA analysis of coupled data sets, some linear digital
+ filters, kernel based probability density function estimation and access
+ to DCDFLIB.C library.
+</longdescription>
+<longdescription lang="ja">
+このパッケージはPython言語を使った気候の変化を分析する必要なタスクを終えるために
+デザインされました。幾つかの単純なI/O操作、COARDS-compliant netCDFファイルの操作
+、EOF解析、カップル・データのSVDとCCA解析、幾つかのリニア・デジタル・フィルター>、カーネル・ベースのプロバビリティ・デンシティ・ファンクション・エスティメーショ
+ンとDCDFLIB.Cライブラリへのアクセス等の機能を提供します。
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pyclimate/pyclimate-1.2.2-r1.ebuild b/dev-python/pyclimate/pyclimate-1.2.2-r1.ebuild
new file mode 100644
index 00000000000..d2efe9cfda9
--- /dev/null
+++ b/dev-python/pyclimate/pyclimate-1.2.2-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
+
+inherit eutils distutils
+
+MY_P="${P/pyclimate/PyClimate}"
+
+DESCRIPTION="Climate Data Analysis Module for Python"
+HOMEPAGE="http://www.pyclimate.org/"
+SRC_URI="http://fisica.ehu.es/jsaenz/pyclimate_files/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND="
+ dev-python/numpy
+ >=dev-python/scientificpython-2.8
+ >=sci-libs/netcdf-3.0"
+
+S="${WORKDIR}/${MY_P}"
+
+src_install() {
+ distutils_src_install
+
+ dodoc doc/manual.ps doc/dcdflib_doc/dcdflib* || die
+
+ if use examples; then
+ insinto /usr/share/${PF}
+ doins -r examples test || die
+ fi
+}
diff --git a/dev-python/pyclimate/pyclimate-1.2.2-r2.ebuild b/dev-python/pyclimate/pyclimate-1.2.2-r2.ebuild
new file mode 100644
index 00000000000..1936aec9a18
--- /dev/null
+++ b/dev-python/pyclimate/pyclimate-1.2.2-r2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+MY_P="${P/pyclimate/PyClimate}"
+
+DESCRIPTION="Climate Data Analysis Module for Python"
+HOMEPAGE="http://www.pyclimate.org/"
+SRC_URI="http://fisica.ehu.es/jsaenz/pyclimate_files/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/scientificpython-2.8[${PYTHON_USEDEP}]
+ >=sci-libs/netcdf-3.0"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+ dodoc doc/manual.ps doc/dcdflib_doc/dcdflib*
+}
diff --git a/dev-python/pycmd/Manifest b/dev-python/pycmd/Manifest
new file mode 100644
index 00000000000..c0c7f3f9226
--- /dev/null
+++ b/dev-python/pycmd/Manifest
@@ -0,0 +1,2 @@
+DIST pycmd-1.1.tar.gz 12407 SHA256 5c2879ef827a6e2605157eb74642e858bfb8873aa18335aea30524ecf20f150b SHA512 55572fb69ab9c8c614e28b2c25e9de536ac65b80c81cb713d6a48331e5952d369ce84440465ff1f67af3cad804187c7f4e103e5d28b6e2cfd9036bdc1c8bb2dd WHIRLPOOL 8ae828ce6664d1686aadc801e223d942deab51b33d141e0a3ca0983bc6e235fd97927fcc36e7e571d57b61318c3847fc35c12c70b74a7d8afedcde3c258a051c
+DIST pycmd-1.2.tar.gz 12896 SHA256 adc1976c0106919e9338db20102b91009256dcfec924a66928d7297026f72477 SHA512 a9506e59889d112a40e1ef115a919644cce31320603904b350cc0a459775dc3d7454dc3f06953b1534cebbf429942bf1577302470bc54665c8dec5eb64b97957 WHIRLPOOL 9c7e185cd96a37f5794bdb5116a6a15327e660e0291c2a4a030d157c2956384d10275907997aa6eb0f569d7b30e406df952d17f5b03a7719af35fe86443b3d7c
diff --git a/dev-python/pycmd/metadata.xml b/dev-python/pycmd/metadata.xml
new file mode 100644
index 00000000000..78a66191b6b
--- /dev/null
+++ b/dev-python/pycmd/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pycmd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycmd/pycmd-1.1.ebuild b/dev-python/pycmd/pycmd-1.1.ebuild
new file mode 100644
index 00000000000..a492d230a43
--- /dev/null
+++ b/dev-python/pycmd/pycmd-1.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="pycmd: tools for managing/searching Python related files"
+HOMEPAGE="http://pypi.python.org/pypi/pycmd"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-python/py-1.4.9"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pycmd/pycmd-1.2.ebuild b/dev-python/pycmd/pycmd-1.2.ebuild
new file mode 100644
index 00000000000..7ecd2ff0450
--- /dev/null
+++ b/dev-python/pycmd/pycmd-1.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="pycmd: tools for managing/searching Python related files"
+HOMEPAGE="http://pypi.python.org/pypi/pycmd"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-python/py-1.4.9[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+# Test files present however are not ready to run as they are supplied in the source
+# The source repo is not listed at all in the page @pypi.
diff --git a/dev-python/pycollada/Manifest b/dev-python/pycollada/Manifest
new file mode 100644
index 00000000000..f0de7041cf8
--- /dev/null
+++ b/dev-python/pycollada/Manifest
@@ -0,0 +1 @@
+DIST pycollada-0.4.tar.gz 519732 SHA256 62a69cce29759900cce0400dac8796d7210de1910dad4c60d4094248c7738121 SHA512 6e9569b858f2014aa08764d0bf328c8317b94edc91e99c2a7c97bf2355983555ea103012d6e6f197862cb3df113ca9263de18fc47edb3c60e74fa8e58b5ca8b0 WHIRLPOOL ce54dcb29cab7e1d97ac8c2eaa3718182373dfa79c7647c7c46f5a2afde88bf7832f98db4a89bdfb58964ccbab041787ac17a25dabc148e963e0739bac27780e
diff --git a/dev-python/pycollada/metadata.xml b/dev-python/pycollada/metadata.xml
new file mode 100644
index 00000000000..5b80fb94c39
--- /dev/null
+++ b/dev-python/pycollada/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>xmw@gentoo.org</email>
+<name>Michael Weber</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-python/pycollada/pycollada-0.4.ebuild b/dev-python/pycollada/pycollada-0.4.ebuild
new file mode 100644
index 00000000000..14aa43748cf
--- /dev/null
+++ b/dev-python/pycollada/pycollada-0.4.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_MULTIPLE_ABI=1
+
+inherit distutils-r1
+
+DESCRIPTION="python library for reading and writing collada documents"
+HOMEPAGE="http://pycollada.github.com/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+DEPEND="doc? ( dev-python/sphinx )
+ test? ( dev-python/python-dateutil )"
+RDEPEND="dev-python/numpy
+ dev-python/lxml
+ >=dev-python/python-dateutil-2.0"
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc ; then
+ pushd docs
+ emake html
+ popd
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ if use doc ; then
+ pushd docs/_build/html
+ dohtml -r *
+ popd
+ fi
+
+ if use examples ; then
+ insinto /usr/share/${P}/
+ doins -r examples
+ fi
+
+ install_test_data() {
+ insinto $(python_get_sitedir)/collada/tests/
+ doins -r collada/tests/data
+ }
+ python_foreach_impl install_test_data
+}
+
+src_test() {
+ test_collada() {
+ for script in "${S}"/collada/tests/*.py ; do
+ PYTHONPATH="${S}" $EPYTHON "${script}"
+ done
+ }
+ python_foreach_impl test_collada
+}
diff --git a/dev-python/pycollada/pycollada-9999.ebuild b/dev-python/pycollada/pycollada-9999.ebuild
new file mode 100644
index 00000000000..94fcbe883a5
--- /dev/null
+++ b/dev-python/pycollada/pycollada-9999.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_MULTIPLE_ABI=1
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="python library for reading and writing collada documents"
+HOMEPAGE="http://pycollada.github.com/"
+EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+IUSE="doc examples test"
+
+DEPEND="doc? ( dev-python/sphinx )
+ test? ( dev-python/python-dateutil )"
+RDEPEND="dev-python/numpy
+ dev-python/lxml
+ >=dev-python/python-dateutil-2.0"
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc ; then
+ pushd docs
+ emake html
+ popd
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ if use doc ; then
+ pushd docs/_build/html
+ dohtml -r *
+ popd
+ fi
+
+ if use examples ; then
+ insinto /usr/share/${P}/
+ doins -r examples
+ fi
+
+ install_test_data() {
+ insinto $(python_get_sitedir)/collada/tests/
+ doins -r collada/tests/data
+ }
+ python_foreach_impl install_test_data
+}
+
+src_test() {
+ test_collada() {
+ for script in "${S}"/collada/tests/*.py ; do
+ PYTHONPATH="${S}" $EPYTHON "${script}"
+ done
+ }
+ python_foreach_impl test_collada
+}
diff --git a/dev-python/pyconstruct/Manifest b/dev-python/pyconstruct/Manifest
new file mode 100644
index 00000000000..f360b2df75e
--- /dev/null
+++ b/dev-python/pyconstruct/Manifest
@@ -0,0 +1 @@
+DIST construct-2.5.2.tar.gz 58373 SHA256 665b6271eeadf15219c726b180c8d7a641d026784d72ca3dad90a20aae009020 SHA512 dbfa28f58821811fa28ef170818d74212e76389a017c4073acd24025ace292285828506cb44387ff07c1c05ae70766a3a0679baea25deb3b0dcc31c85b24340b WHIRLPOOL ebe5ac0a09e317a2d8c123f24c110b3ea303c179710da6112c8f376bbf1d526c4c29ebf7f60c12f8873f74ec4ebabf010b4e537173fe28f166da6f49b79635cc
diff --git a/dev-python/pyconstruct/metadata.xml b/dev-python/pyconstruct/metadata.xml
new file mode 100644
index 00000000000..1900fbbcd35
--- /dev/null
+++ b/dev-python/pyconstruct/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">construct</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyconstruct/pyconstruct-2.5.2.ebuild b/dev-python/pyconstruct/pyconstruct-2.5.2.ebuild
new file mode 100644
index 00000000000..4c0e08d8625
--- /dev/null
+++ b/dev-python/pyconstruct/pyconstruct-2.5.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="construct"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A powerful declarative parser for binary data"
+HOMEPAGE="http://construct.wikispaces.com/ http://pypi.python.org/pypi/construct"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pycountry/Manifest b/dev-python/pycountry/Manifest
new file mode 100644
index 00000000000..29974bf23ce
--- /dev/null
+++ b/dev-python/pycountry/Manifest
@@ -0,0 +1,2 @@
+DIST pycountry-1.10.zip 8140587 SHA256 29bd07e5f0d0471c260cea14e2ca4b7d705228ebb024b4de139dc87795576e67 SHA512 076de329c5b9d7626fbf0aace654504a2cd2d1d7bdf2ec89ba4763b38b756a6e75c7f3032c4b8785693d291ace7a206673cac1a457c4dd59e8c3ce1cd70d7d60 WHIRLPOOL 6c282d419da375e00171345477a5867b1e61a345d56c8f4739ff34fabebf98a78a2d4880b3b2ef616e00468124e1accd2efdbfac2c98bdf4c2db57d1d3e28fc5
+DIST pycountry-1.12.tar.gz 18606424 SHA256 dce2893ceac5d5264e7d0b6bf9f0421fb9ff87b7459d1c65a518fbcd826245e9 SHA512 6a9bfb47ce56098bc8f536afc5e671cd65304213df1e3c9754bcaac8e3cdb8293c75ec59649be5df8b974f36be333ed35fe4cd4d274baa183cfd6455d9241702 WHIRLPOOL 531fcfa4caeec4eda11c657e7a374d2668808ee9b94cb5192603049824fbd12a6999682a321d4c577f836acd9106f667f85312ec29e9d78fca74b7b93c297356
diff --git a/dev-python/pycountry/metadata.xml b/dev-python/pycountry/metadata.xml
new file mode 100644
index 00000000000..b170fed1253
--- /dev/null
+++ b/dev-python/pycountry/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">ISO country, subdivision, language, currency and script definitions and
+ their translations</longdescription>
+ <upstream>
+ <remote-id type="pypi">pycountry</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycountry/pycountry-1.10.ebuild b/dev-python/pycountry/pycountry-1.10.ebuild
new file mode 100644
index 00000000000..5194cd61149
--- /dev/null
+++ b/dev-python/pycountry/pycountry-1.10.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="ISO country, subdivision, language, currency and script definitions and their translations"
+HOMEPAGE="http://pypi.python.org/pypi/pycountry"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~sparc ~ppc ~x86"
+IUSE="test"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ # https://bitbucket.org/techtonik/pycountry/issue/8/test_locales-pycountry-015-pypy
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ if [[ "${EPYTHON}" == pypy || "${EPYTHON}" == pypy3 ]]; then
+ sed -e 's:test_locales:_&:' -i pycountry/tests/test_general.py || die
+ fi
+ py.test ${PN}/tests/test_general.py || die
+ popd > /dev/null
+}
diff --git a/dev-python/pycountry/pycountry-1.12.ebuild b/dev-python/pycountry/pycountry-1.12.ebuild
new file mode 100644
index 00000000000..3a9ccc8f47b
--- /dev/null
+++ b/dev-python/pycountry/pycountry-1.12.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="ISO country, subdivision, language, currency and script definitions and their translations"
+HOMEPAGE="http://pypi.python.org/pypi/pycountry"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~sparc ~ppc ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ # https://bitbucket.org/techtonik/pycountry/issue/8/test_locales-pycountry-015-pypy
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ if [[ "${EPYTHON}" == pypy || "${EPYTHON}" == pypy3 ]]; then
+ sed -e 's:test_locales:_&:' -i pycountry/tests/test_general.py || die
+ fi
+ py.test ${PN}/tests/test_general.py || die
+ popd > /dev/null
+}
diff --git a/dev-python/pycparser/Manifest b/dev-python/pycparser/Manifest
new file mode 100644
index 00000000000..aef377f4f73
--- /dev/null
+++ b/dev-python/pycparser/Manifest
@@ -0,0 +1,4 @@
+DIST pycparser-2.10.tar.gz 206166 SHA256 957d98b661c0b64b580ab6f94b125e09b6714154ee51de40bca16d3f0076b86c SHA512 afe5079d6b0a39ea7f0df1ce74b1981c78d8687dbef50fb7a692395ca4a7e7a8119ec6abc0dfeb7a0535865ed2fac9dafca189bdbf6ff9205612205560e2d371 WHIRLPOOL 1b373997863001ba3b06376db1d175797c665ade273e75698edc3044713e411228f9f1c4daf0c61ffe01840d3d5e54a232fae729e42a8559e85b8db465e99b90
+DIST pycparser-2.12.tar.gz 297648 SHA256 da24c80aeb3c794ac64fe5503a01f65f13fece3e02513fd2e0761f93c96597b0 SHA512 7f46b3dbdf86115d58f0e467d3d4c80a32e56ebc6a6753417841e9e69ff537e1e0b86ab52816044048bf67522c5f32b53a5b9d6cd388da2fad48c6d2c897f945 WHIRLPOOL 8cebb9435f47cbe6cc63692789d5d7c6a6c8ce5bcff53f4c4647f55daa3816e6e3d1b9096dbaaf3ebab5a4bb4c81c9c1385b40cc85cb941c6ca541b8dc2d035e
+DIST pycparser-2.13.tar.gz 299363 SHA256 b399599a8a0e386bfcbc5e01a38d79dd6e926781f9e358cd5512f41ab7d20eb7 SHA512 273abaea4998c61fcc9a01cccf3d6a20dd0446ccbdd4caeaef2d11af0492c8b11f67ff412bacd2a6d6057b612e9b8fd78111f69a07728f8cbf53725810eab8d2 WHIRLPOOL 5f9f9d3f5ccf45aa73f479968a998edf773ff75d49ac6449cfaaafc9d5bd6692497af79bf15d0f2c766ae49af58f84eb4f1144a7be00ee2c73a1b990676ae2d6
+DIST pycparser-2.14.tar.gz 223295 SHA256 7959b4a74abdc27b312fed1c21e6caf9309ce0b29ea86b591fd2e99ecdf27f73 SHA512 d5b9ab434a8944898ac23a4f51189db77b02b993bf3e3ca018852b117fc0eb43e460b156beaa5c1d631ad71c81e1649113e9fff7e33506b1e7d4de24d8b464c6 WHIRLPOOL 4a541ce696298a355d4e3325a10dffd47bd26756b0164da82b70090310edfacf0428ed9e26de7be7e3d4c2c952ee664262a212562852fe29f909ab0631bfd79f
diff --git a/dev-python/pycparser/metadata.xml b/dev-python/pycparser/metadata.xml
new file mode 100644
index 00000000000..3e51ef09166
--- /dev/null
+++ b/dev-python/pycparser/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pycparser</remote-id>
+ <remote-id type="github">eliben/pycparser</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycparser/pycparser-2.10.ebuild b/dev-python/pycparser/pycparser-2.10.ebuild
new file mode 100644
index 00000000000..98b76d9aee6
--- /dev/null
+++ b/dev-python/pycparser/pycparser-2.10.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="C parser and AST generator written in Python"
+HOMEPAGE="https://github.com/eliben/pycparser"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="dev-python/ply[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile() {
+ distutils-r1_python_compile
+ pushd "${BUILD_DIR}/lib/pycparser" > /dev/null || die
+ "${PYTHON}" _build_tables.py || die
+ popd > /dev/null || die
+}
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pycparser/pycparser-2.12.ebuild b/dev-python/pycparser/pycparser-2.12.ebuild
new file mode 100644
index 00000000000..0d9b377ef3a
--- /dev/null
+++ b/dev-python/pycparser/pycparser-2.12.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="C parser and AST generator written in Python"
+HOMEPAGE="https://github.com/eliben/pycparser"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="dev-python/ply[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile() {
+ distutils-r1_python_compile
+ pushd "${BUILD_DIR}/lib/pycparser" > /dev/null || die
+ "${PYTHON}" _build_tables.py || die
+ popd > /dev/null || die
+}
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pycparser/pycparser-2.13.ebuild b/dev-python/pycparser/pycparser-2.13.ebuild
new file mode 100644
index 00000000000..0d9b377ef3a
--- /dev/null
+++ b/dev-python/pycparser/pycparser-2.13.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="C parser and AST generator written in Python"
+HOMEPAGE="https://github.com/eliben/pycparser"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="dev-python/ply[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile() {
+ distutils-r1_python_compile
+ pushd "${BUILD_DIR}/lib/pycparser" > /dev/null || die
+ "${PYTHON}" _build_tables.py || die
+ popd > /dev/null || die
+}
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pycparser/pycparser-2.14.ebuild b/dev-python/pycparser/pycparser-2.14.ebuild
new file mode 100644
index 00000000000..ea182625dec
--- /dev/null
+++ b/dev-python/pycparser/pycparser-2.14.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="C parser and AST generator written in Python"
+HOMEPAGE="https://github.com/eliben/pycparser"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="test"
+
+RDEPEND="dev-python/ply[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile() {
+ distutils-r1_python_compile
+ pushd "${BUILD_DIR}/lib/pycparser" > /dev/null || die
+ "${PYTHON}" _build_tables.py || die
+ popd > /dev/null || die
+}
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pycrypto/Manifest b/dev-python/pycrypto/Manifest
new file mode 100644
index 00000000000..9239372fd28
--- /dev/null
+++ b/dev-python/pycrypto/Manifest
@@ -0,0 +1 @@
+DIST pycrypto-2.6.1.tar.gz 446240 SHA256 f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c SHA512 20a4aed4dac4e9e61d773ebc1d48ea577e9870c33f396be53d075a9bf8487d93e75e200179882d81e452efd0f6751789bac434f6f431b3e7c1c8ef9dba392847 WHIRLPOOL b63734145729f75838357002956297d1ea9e51288939e6f481eaaa12c7da256ab95e4d80d19e618445224fb46a8e2cb1ef5ee0b4b817767d472e3a7c4707371b
diff --git a/dev-python/pycrypto/files/pycrypto-2.6.1-cross-compile.patch b/dev-python/pycrypto/files/pycrypto-2.6.1-cross-compile.patch
new file mode 100644
index 00000000000..2ce24a49cc7
--- /dev/null
+++ b/dev-python/pycrypto/files/pycrypto-2.6.1-cross-compile.patch
@@ -0,0 +1,13 @@
+do not hardcode -I/usr/include as it's useless and breaks cross-compiles
+
+--- a/setup.py
++++ b/setup.py
+@@ -370,7 +370,7 @@ kw = {'name':"pycrypto",
+ 'ext_modules': plat_ext + [
+ # _fastmath (uses GNU mp library)
+ Extension("Crypto.PublicKey._fastmath",
+- include_dirs=['src/','/usr/include/'],
++ include_dirs=['src/'],
+ libraries=['gmp'],
+ sources=["src/_fastmath.c"]),
+
diff --git a/dev-python/pycrypto/metadata.xml b/dev-python/pycrypto/metadata.xml
new file mode 100644
index 00000000000..15b44a0ae34
--- /dev/null
+++ b/dev-python/pycrypto/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+The Python Cryptography Toolkit is a collection of cryptographic
+algorithms and protocols, implemented for use from Python. Among
+the contents of the package:
+
+ * Hash functions: MD2, MD4, RIPEMD, SHA256.
+ * Block encryption algorithms: AES, ARC2, Blowfish, CAST, DES,
+ Triple-DES, IDEA, RC5.
+ * Stream encryption algorithms: ARC4, simple XOR.
+ * Public-key algorithms: RSA, DSA, ElGamal, qNEW.
+ * Protocols: All-or-nothing transforms, chaffing/winnowing.
+ * Miscellaneous: RFC1751 module for converting 128-key keys into
+ a set of English words, primality testing.
+ * Some demo programs (currently all quite old and outdated).
+
+</longdescription>
+ <longdescription lang="ja">
+このPython言語のクリプトグラフィー・ツールキットは、暗号手法のアルゴリズムとプロ
+トコルの集合で、Python言語から利用されるための実装です。このパッケージ内容は以下
+です。
+
+
+ * Hash ファンクション: MD2, MD4, RIPEMD, SHA256.
+ * ブロック・エンクリプション・アルゴリズム: AES, ARC2, Blowfish, CAST, DES,
+ Triple-DES, IDEA, RC5.
+ * ストリーム・エンクリプション・アルゴリズム: ARC4, simple XOR.
+ * 公開鍵アルゴリズム: RSA, DSA, ElGamal, qNEW.
+ * プロトコル: All-or-nothing transforms, chaffing/winnowing.
+ * その他: RFC1751 module for converting 128-key keys into
+ a set of English words, primality testing.
+ * デモ・プログラム(現在では完全に古く時代遅れなもの)
+
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pycrypto/pycrypto-2.6.1-r1.ebuild b/dev-python/pycrypto/pycrypto-2.6.1-r1.ebuild
new file mode 100644
index 00000000000..608c0e50f16
--- /dev/null
+++ b/dev-python/pycrypto/pycrypto-2.6.1-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Cryptography Toolkit"
+HOMEPAGE="http://www.dlitz.net/software/pycrypto/ http://pypi.python.org/pypi/pycrypto"
+SRC_URI="http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${P}.tar.gz"
+
+LICENSE="PSF-2 public-domain"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x86-solaris"
+IUSE="doc +gmp test"
+
+RDEPEND="gmp? ( dev-libs/gmp )"
+DEPEND="${RDEPEND}
+ doc? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/epydoc-3[${PYTHON_USEDEP}]' python2_7)
+ )"
+
+REQUIRED_USE="test? ( gmp )"
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/${P}-cross-compile.patch
+ # Fix Crypto.PublicKey.RSA._RSAobj.exportKey(format="OpenSSH") with Python 3
+ # https://github.com/dlitz/pycrypto/commit/ab25c6fe95ee92fac3187dcd90e0560ccacb084a
+ sed \
+ -e "/keyparts =/s/'ssh-rsa'/b('ssh-rsa')/" \
+ -e "s/keystring = ''.join/keystring = b('').join/" \
+ -e "s/return 'ssh-rsa '/return b('ssh-rsa ')/" \
+ -i lib/Crypto/PublicKey/RSA.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # the configure does not interact with python in any way,
+ # it just sets up the C header file.
+ econf \
+ $(use_with gmp) \
+ --without-mpir
+}
+
+python_compile_all() {
+ if use doc; then
+ rst2html.py Doc/pycrypt.rst > Doc/index.html
+ epydoc --config=Doc/epydoc-config --exclude-introspect="^Crypto\.(Random\.OSRNG\.nt|Util\.winrandom)$" || die
+ fi
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ local DOCS=( ACKS ChangeLog README TODO )
+ use doc && local HTML_DOCS=( Doc/apidoc/. Doc/index.html )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycrypto/pycrypto-2.6.1.ebuild b/dev-python/pycrypto/pycrypto-2.6.1.ebuild
new file mode 100644
index 00000000000..f3a4efd80a2
--- /dev/null
+++ b/dev-python/pycrypto/pycrypto-2.6.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Cryptography Toolkit"
+HOMEPAGE="http://www.dlitz.net/software/pycrypto/ http://pypi.python.org/pypi/pycrypto"
+SRC_URI="http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${P}.tar.gz"
+
+LICENSE="PSF-2 public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x86-solaris"
+IUSE="doc +gmp"
+
+RDEPEND="gmp? ( dev-libs/gmp )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/docutils
+ >=dev-python/epydoc-3 )"
+
+python_configure_all() {
+ # the configure does not interact with python in any way,
+ # it just sets up the C header file.
+ econf \
+ $(use_with gmp) \
+ --without-mpir
+}
+
+python_compile_all() {
+ if use doc; then
+ rst2html.py Doc/pycrypt.rst > Doc/index.html
+ epydoc --config=Doc/epydoc-config --exclude-introspect="^Crypto\.(Random\.OSRNG\.nt|Util\.winrandom)$" || die
+ fi
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ local DOCS=( ACKS ChangeLog README TODO )
+ use doc && local HTML_DOCS=( Doc/apidoc/. Doc/index.html )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycryptopp/Manifest b/dev-python/pycryptopp/Manifest
new file mode 100644
index 00000000000..5c83b322b0b
--- /dev/null
+++ b/dev-python/pycryptopp/Manifest
@@ -0,0 +1 @@
+DIST pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958.tar.gz 2009822 SHA256 116158917bd243da2701cfeba9a6374854bc9a599d1466e1a2dbadf37c802059 SHA512 bdd7d983bc0f8ef50c140a8da0c532883f0f1461d4a91d2761c872403133e9474d4fdbd78e275adbaacd2066cab4121034002a4730258162a618b3af913fdf7a WHIRLPOOL 809aecb84ff38232351b0700225564672d082528d0a98ec071ce40b97e02df59ac41647ae6356ecafca916655555cf533787db5182cd9536177affedbd7b89c3
diff --git a/dev-python/pycryptopp/metadata.xml b/dev-python/pycryptopp/metadata.xml
new file mode 100644
index 00000000000..de28f2cd2c7
--- /dev/null
+++ b/dev-python/pycryptopp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pycryptopp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycryptopp/pycryptopp-0.6.0.ebuild b/dev-python/pycryptopp/pycryptopp-0.6.0.ebuild
new file mode 100644
index 00000000000..c54538101cc
--- /dev/null
+++ b/dev-python/pycryptopp/pycryptopp-0.6.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 vcs-snapshot
+
+NUM="1206569328141510525648634803928199668821045408958"
+MY_P="${P}.${NUM}"
+
+DESCRIPTION="Python wrappers for a few algorithms from the Crypto++ library"
+HOMEPAGE="http://tahoe-lafs.org/trac/pycryptopp http://pypi.python.org/pypi/pycryptopp"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-libs/crypto++"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS="NEWS.rst"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Don't install license files
+ sed -i -e "/data_files=data_files,/d" setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ # use system crypto++ library
+ distutils-r1_python_compile --disable-embedded-cryptopp
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pycuda/Manifest b/dev-python/pycuda/Manifest
new file mode 100644
index 00000000000..75899c760b5
--- /dev/null
+++ b/dev-python/pycuda/Manifest
@@ -0,0 +1,3 @@
+DIST pycuda-2012.1.tar.gz 1473695 SHA256 d5b90467b926c73ceaf2dd2662fef2e21e106f00a0aa0d11f09a891aac3925dc SHA512 bb8889fa46de3d4ae57fb47883232953eba0e12a53431fffdefb12af3134540aec2671f0f2fbbe1d836dab354d407e078e773e84f8ee9a5345400a4a59da7937 WHIRLPOOL b35484ddc8d2c1808a0d706dcdcc9ebe49af153b0aaaf8fc2596f4068c5c2dbdb9fb4f84ac46512b314ef9383f70dfcefa4895191d7a9f6d78eee8ae8a56fe71
+DIST pycuda-2013.1.1.tar.gz 1586425 SHA256 4b541ff7ab4a867e9389b3b9b9456c6957000f39a20a46e872dd25dd3bece2da SHA512 7a7e95fcd4f76d10234558021064cc299e6d93ab9a428c9560e5a8a73b13304ba9ccc3c103674a25effdc01a14aac21981a62de881a9c990ad16d7689b75e502 WHIRLPOOL c1e958defbe4998c0af5a256df51daa3901f0bf2a45e5c5faed9abf5ba60ebd0dddab6fbb4caff41eac588fe7fc3cca1517c032d95d316492f99c307b6a260f3
+DIST pycuda-2014.1.tar.gz 1588986 SHA256 28e8f7425d0bac03a6c80346a4e150024ef0e4740ce11cb54e6aef351127d7af SHA512 57e333941c472feea6974e583f9d27f7f5083011bd8a7cc0bc31d27032885a130f1f57a16b0730696c607b9dca32ad84b96c984cd82351800ec854acdfa8fe9f WHIRLPOOL c71876c6f203a0a8a996a90976ad3f012ce1497ee84534c7fb8876e19293766d4641fbac00a538b1ddb074b29f8d8347f39caae613839b38cf5ee9eb15a86c09
diff --git a/dev-python/pycuda/metadata.xml b/dev-python/pycuda/metadata.xml
new file mode 100644
index 00000000000..858a4b6936d
--- /dev/null
+++ b/dev-python/pycuda/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <upstream>
+ <remote-id type="pypi">pycuda</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycuda/pycuda-2012.1.ebuild b/dev-python/pycuda/pycuda-2012.1.ebuild
new file mode 100644
index 00000000000..e458d8bda51
--- /dev/null
+++ b/dev-python/pycuda/pycuda-2012.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit cuda distutils-r1 multilib
+
+DESCRIPTION="Python wrapper for NVIDIA CUDA"
+HOMEPAGE="http://mathema.tician.de/software/pycuda/ http://pypi.python.org/pypi/pycuda"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples opengl test"
+
+RDEPEND="
+ dev-libs/boost[python,${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pytools-2011.2[${PYTHON_USEDEP}]
+ dev-util/nvidia-cuda-toolkit
+ x11-drivers/nvidia-drivers
+ opengl? ( virtual/opengl )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# We need write acccess /dev/nvidia0 and /dev/nvidiactl and the portage
+# user is (usually) not in the video group
+RESTRICT="userpriv"
+
+python_prepare_all() {
+ cuda_sanitize
+ sed \
+ -e "s:'--preprocess':\'--preprocess\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:\"--cubin\":\'--cubin\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:/usr/include/pycuda:${S}/src/cuda:g" \
+ -i pycuda/compiler.py || die
+
+ touch siteconf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ local myopts=()
+ use opengl && myopts+=( --cuda-enable-gl )
+
+ mkdir "${BUILD_DIR}" || die
+ cd "${BUILD_DIR}" || die
+ [[ -e ./siteconf.py ]] && rm -f ./siteconf.py
+ "${EPYTHON}" "${S}"/configure.py \
+ --boost-inc-dir="${EPREFIX}/usr/include" \
+ --boost-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --boost-python-libname=boost_python-$(echo ${EPYTHON} | sed 's/python//')-mt \
+ --boost-thread-libname=boost_thread-mt \
+ --cuda-root="${EPREFIX}/opt/cuda" \
+ --cudadrv-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --cudart-lib-dir="${EPREFIX}/opt/cuda/$(get_libdir)" \
+ --cuda-inc-dir="${EPREFIX}/opt/cuda/include" \
+ --no-use-shipped-boost \
+ "${myopts[@]}"
+}
+
+src_test() {
+ # we need write access to this to run the tests
+ addwrite /dev/nvidia0
+ addwrite /dev/nvidiactl
+ python_test() {
+ py.test --debug -v -v -v || die "Tests fail with ${EPYTHON}"
+ }
+ distutils-r1_src_test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pycuda/pycuda-2013.1.1.ebuild b/dev-python/pycuda/pycuda-2013.1.1.ebuild
new file mode 100644
index 00000000000..93bdfea70fd
--- /dev/null
+++ b/dev-python/pycuda/pycuda-2013.1.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit cuda distutils-r1 multilib
+
+DESCRIPTION="Python wrapper for NVIDIA CUDA"
+HOMEPAGE="http://mathema.tician.de/software/pycuda/ http://pypi.python.org/pypi/pycuda"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples opengl test"
+
+RDEPEND="
+ dev-libs/boost[python,${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pytools-2013[${PYTHON_USEDEP}]
+ dev-util/nvidia-cuda-toolkit
+ x11-drivers/nvidia-drivers
+ opengl? ( virtual/opengl )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# We need write acccess /dev/nvidia0 and /dev/nvidiactl and the portage
+# user is (usually) not in the video group
+RESTRICT="userpriv"
+
+python_prepare_all() {
+ cuda_sanitize
+ sed \
+ -e "s:'--preprocess':\'--preprocess\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:\"--cubin\":\'--cubin\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:/usr/include/pycuda:${S}/src/cuda:g" \
+ -i pycuda/compiler.py || die
+
+ touch siteconf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ local myopts=()
+ use opengl && myopts+=( --cuda-enable-gl )
+
+ mkdir "${BUILD_DIR}" || die
+ cd "${BUILD_DIR}" || die
+ [[ -e ./siteconf.py ]] && rm -f ./siteconf.py
+ "${EPYTHON}" "${S}"/configure.py \
+ --boost-inc-dir="${EPREFIX}/usr/include" \
+ --boost-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --boost-python-libname=boost_python-$(echo ${EPYTHON} | sed 's/python//')-mt \
+ --boost-thread-libname=boost_thread-mt \
+ --cuda-root="${EPREFIX}/opt/cuda" \
+ --cudadrv-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --cudart-lib-dir="${EPREFIX}/opt/cuda/$(get_libdir)" \
+ --cuda-inc-dir="${EPREFIX}/opt/cuda/include" \
+ --no-use-shipped-boost \
+ "${myopts[@]}"
+}
+
+src_test() {
+ # we need write access to this to run the tests
+ addwrite /dev/nvidia0
+ addwrite /dev/nvidiactl
+ python_test() {
+ py.test --debug -v -v -v || die "Tests fail with ${EPYTHON}"
+ }
+ distutils-r1_src_test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pycuda/pycuda-2014.1.ebuild b/dev-python/pycuda/pycuda-2014.1.ebuild
new file mode 100644
index 00000000000..7b9b0220705
--- /dev/null
+++ b/dev-python/pycuda/pycuda-2014.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit cuda distutils-r1 multilib
+
+DESCRIPTION="Python wrapper for NVIDIA CUDA"
+HOMEPAGE="http://mathema.tician.de/software/pycuda/ http://pypi.python.org/pypi/pycuda"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples opengl test"
+
+RDEPEND="
+ dev-libs/boost[python,${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pytools-2013[${PYTHON_USEDEP}]
+ dev-util/nvidia-cuda-toolkit
+ x11-drivers/nvidia-drivers
+ opengl? ( virtual/opengl )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# We need write acccess /dev/nvidia0 and /dev/nvidiactl and the portage
+# user is (usually) not in the video group
+RESTRICT="userpriv"
+
+python_prepare_all() {
+ cuda_sanitize
+ sed \
+ -e "s:'--preprocess':\'--preprocess\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:\"--cubin\":\'--cubin\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:/usr/include/pycuda:${S}/src/cuda:g" \
+ -i pycuda/compiler.py || die
+
+ touch siteconf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ local myopts=()
+ use opengl && myopts+=( --cuda-enable-gl )
+
+ mkdir "${BUILD_DIR}" || die
+ cd "${BUILD_DIR}" || die
+ [[ -e ./siteconf.py ]] && rm -f ./siteconf.py
+ "${EPYTHON}" "${S}"/configure.py \
+ --boost-inc-dir="${EPREFIX}/usr/include" \
+ --boost-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --boost-python-libname=boost_python-$(echo ${EPYTHON} | sed 's/python//')-mt \
+ --boost-thread-libname=boost_thread-mt \
+ --cuda-root="${EPREFIX}/opt/cuda" \
+ --cudadrv-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --cudart-lib-dir="${EPREFIX}/opt/cuda/$(get_libdir)" \
+ --cuda-inc-dir="${EPREFIX}/opt/cuda/include" \
+ --no-use-shipped-boost \
+ "${myopts[@]}"
+}
+
+src_test() {
+ # we need write access to this to run the tests
+ addwrite /dev/nvidia0
+ addwrite /dev/nvidiactl
+ python_test() {
+ py.test --debug -v -v -v || die "Tests fail with ${EPYTHON}"
+ }
+ distutils-r1_src_test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pycuda/pycuda-9999.ebuild b/dev-python/pycuda/pycuda-9999.ebuild
new file mode 100644
index 00000000000..5cff6fa775d
--- /dev/null
+++ b/dev-python/pycuda/pycuda-9999.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit cuda distutils-r1 git-r3 multilib
+
+DESCRIPTION="Python wrapper for NVIDIA CUDA"
+HOMEPAGE="http://mathema.tician.de/software/pycuda/ http://pypi.python.org/pypi/pycuda"
+SRC_URI=""
+EGIT_REPO_URI="http://git.tiker.net/trees/pycuda.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="examples opengl test"
+
+RDEPEND="
+ dev-libs/boost[python,${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pytools-2013[${PYTHON_USEDEP}]
+ dev-util/nvidia-cuda-toolkit
+ x11-drivers/nvidia-drivers
+ opengl? ( virtual/opengl )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# We need write acccess /dev/nvidia0 and /dev/nvidiactl and the portage
+# user is (usually) not in the video group
+RESTRICT="userpriv"
+
+python_prepare_all() {
+ cuda_sanitize
+ sed \
+ -e "s:'--preprocess':\'--preprocess\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:\"--cubin\":\'--cubin\', \'--compiler-bindir=$(cuda_gccdir)\':g" \
+ -e "s:/usr/include/pycuda:${S}/src/cuda:g" \
+ -i pycuda/compiler.py || die
+
+ touch siteconf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ local myopts=()
+ use opengl && myopts+=( --cuda-enable-gl )
+
+ mkdir "${BUILD_DIR}" || die
+ cd "${BUILD_DIR}" || die
+ [[ -e ./siteconf.py ]] && rm -f ./siteconf.py
+ "${EPYTHON}" "${S}"/configure.py \
+ --boost-inc-dir="${EPREFIX}/usr/include" \
+ --boost-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --boost-python-libname=boost_python-$(echo ${EPYTHON} | sed 's/python//')-mt \
+ --boost-thread-libname=boost_thread-mt \
+ --cuda-root="${EPREFIX}/opt/cuda" \
+ --cudadrv-lib-dir="${EPREFIX}/usr/$(get_libdir)" \
+ --cudart-lib-dir="${EPREFIX}/opt/cuda/$(get_libdir)" \
+ --cuda-inc-dir="${EPREFIX}/opt/cuda/include" \
+ --no-use-shipped-boost \
+ "${myopts[@]}"
+}
+
+src_test() {
+ # we need write access to this to run the tests
+ addwrite /dev/nvidia0
+ addwrite /dev/nvidiactl
+ python_test() {
+ py.test --debug -v -v -v || die "Tests fail with ${EPYTHON}"
+ }
+ distutils-r1_src_test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pycups/Manifest b/dev-python/pycups/Manifest
new file mode 100644
index 00000000000..a91d923e11d
--- /dev/null
+++ b/dev-python/pycups/Manifest
@@ -0,0 +1,2 @@
+DIST pycups-1.9.72.tar.bz2 52687 SHA256 7f635cb95149e2fab6693ee0261a4491f3f9521549652a9fdcc9654978037ca7 SHA512 db8b06378bf398073e34c89d62aa64cc8e56e93553346484c2e5dd67d046a3aa2f44020b68a7d479203fb2eeba005f8860ad4cebf72f8d7aa9aa15952a36d816 WHIRLPOOL 03b2f6d12e366961745234e9105337d18e543c31b5f80eb77641dbf01e9d1ca60e988a4ad793dccbee39daca725afe32ff9c1a265eec0773a5275add8a47b104
+DIST pycups-1.9.73.tar.bz2 52732 SHA256 c381be011889ca6f728598578c89c8ac9f7ab1e95b614474df9f2fa831ae5335 SHA512 ee893d64f1645b71805ac358c4a3cc594f6285f04272ff0558aa60cbc90fafdbac30b623ffcc3a6b739218d9fd7a6a6e1d8cb186a5582f2cc30a518ed4dde810 WHIRLPOOL e19ccc7ab6a2e8f9364b5428eeddf365e9e6d34c2b94ae767543f5f3f81de3f6ac539ea6ba58c13cf34f639e7ba9a0ba04c53c7e030647c63085090ae185b3ca
diff --git a/dev-python/pycups/metadata.xml b/dev-python/pycups/metadata.xml
new file mode 100644
index 00000000000..18260a405bb
--- /dev/null
+++ b/dev-python/pycups/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>kde</herd>
+ <herd>printing</herd>
+ <maintainer>
+ <email>reavertm@gentoo.org</email>
+ <name>Maciej Mrozowski</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pycups</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycups/pycups-1.9.72.ebuild b/dev-python/pycups/pycups-1.9.72.ebuild
new file mode 100644
index 00000000000..f7e8a0c36ea
--- /dev/null
+++ b/dev-python/pycups/pycups-1.9.72.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the CUPS API"
+HOMEPAGE="http://cyberelk.net/tim/data/pycups/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86"
+SLOT="0"
+IUSE="doc examples"
+
+RDEPEND="
+ net-print/cups
+"
+DEPEND="${RDEPEND}"
+
+# epydoc kinda sucks and supports python2 only (it's dead too),
+# and since we're dealing with a binary module we need exact version
+# match. therefore, docbuilding *requires* any python2 being enabled.
+
+DEPEND="${RDEPEND}
+ doc? ( dev-python/epydoc[$(python_gen_usedep 'python2*')] )
+"
+
+REQUIRED_USE="doc? ( || ( $(python_gen_useflags 'python2*') ) )"
+
+python_compile_all() {
+ if use doc; then
+ # we can't use Makefile since it relies on hardcoded paths
+ epydoc -o html --html cups || die "doc build failed"
+ fi
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/ )
+ use examples && local EXAMPLES=( examples/ )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycups/pycups-1.9.73.ebuild b/dev-python/pycups/pycups-1.9.73.ebuild
new file mode 100644
index 00000000000..188c6f747d2
--- /dev/null
+++ b/dev-python/pycups/pycups-1.9.73.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the CUPS API"
+HOMEPAGE="http://cyberelk.net/tim/data/pycups/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86"
+SLOT="0"
+IUSE="doc examples"
+
+RDEPEND="
+ net-print/cups
+"
+DEPEND="${RDEPEND}"
+
+# epydoc kinda sucks and supports python2 only (it's dead too),
+# and since we're dealing with a binary module we need exact version
+# match. therefore, docbuilding *requires* any python2 being enabled.
+
+DEPEND="${RDEPEND}
+ doc? ( dev-python/epydoc[$(python_gen_usedep 'python2*')] )
+"
+
+REQUIRED_USE="doc? ( || ( $(python_gen_useflags 'python2*') ) )"
+
+python_compile_all() {
+ if use doc; then
+ # we can't use Makefile since it relies on hardcoded paths
+ epydoc -o html --html cups || die "doc build failed"
+ fi
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/ )
+ use examples && local EXAMPLES=( examples/ )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycurl/Manifest b/dev-python/pycurl/Manifest
new file mode 100644
index 00000000000..28e772b26e4
--- /dev/null
+++ b/dev-python/pycurl/Manifest
@@ -0,0 +1,2 @@
+DIST pycurl-7.19.3.1.tar.gz 116687 SHA256 c0d673fe99a9de07239eabe77c798f1b043f60c02afaec1430ceaf59d7501a4f SHA512 65ccb07638c663bc2a723664f1ade50f08eafa70bbcdc492cc99362a91873f453b63336a6b393d9f6591308f1450dadc64ce729b29990f37b170dda0eae0b23f WHIRLPOOL bf25bbb959e30140a261b9bede2e1a3675ec99c8f6c36f8afc8ca73288aa7f7cea6fa1d28385ca808872b251a676aebf8d77d203aed60619dab8852cac17b296
+DIST pycurl-7.19.5.1.tar.gz 142140 SHA256 6e9770f80459757f73bd71af82fbb29cd398b38388cdf1beab31ea91a331bc6c SHA512 89a474d7285cb040099dc6107a238f326dcb22cdb2c2325139f0d7ebea56f0860869d20b6e8e3bb43882048a261a8ff5734c7fc3e790fde8a96de3fffd04894f WHIRLPOOL 87eac50707acb4d764941e334a490d1c72c28433e8ff72caa7811f23d3f8ab2c6949a25ba8edd0cdacb27e498e60e728745c787a05853f1428ede8d91294a5cc
diff --git a/dev-python/pycurl/files/pycurl-7.19.3.1-ssl-test.patch b/dev-python/pycurl/files/pycurl-7.19.3.1-ssl-test.patch
new file mode 100644
index 00000000000..c7e1580f54f
--- /dev/null
+++ b/dev-python/pycurl/files/pycurl-7.19.3.1-ssl-test.patch
@@ -0,0 +1,64 @@
+https://github.com/p-push/pycurl/commit/8644393bec56cd05c19d5dbe420ff741ba899d10
+diff --git a/tests/runwsgi.py b/tests/runwsgi.py
+index f419d7c..242ef1d 100644
+--- a/tests/runwsgi.py
++++ b/tests/runwsgi.py
+@@ -11,6 +11,10 @@
+
+ class Server(bottle.WSGIRefServer):
+ def run(self, handler): # pragma: no cover
++ self.srv = self.make_server(handler)
++ self.serve()
++
++ def make_server(self, handler):
+ from wsgiref.simple_server import make_server, WSGIRequestHandler
+ if self.quiet:
+ base = self.options.get('handler_class', WSGIRequestHandler)
+@@ -18,7 +22,10 @@ class QuietHandler(base):
+ def log_request(*args, **kw):
+ pass
+ self.options['handler_class'] = QuietHandler
+- self.srv = make_server(self.host, self.port, handler, **self.options)
++ srv = make_server(self.host, self.port, handler, **self.options)
++ return srv
++
++ def serve(self):
+ if sys.version_info[0] == 2 and sys.version_info[1] < 6:
+ # python 2.5 has no poll_interval
+ # and thus no way to stop the server
+@@ -27,20 +34,21 @@ def log_request(*args, **kw):
+ else:
+ self.srv.serve_forever(poll_interval=0.1)
+
+-class SslServer(bottle.CherryPyServer):
+- def run(self, handler):
+- import cherrypy.wsgiserver, cherrypy.wsgiserver.ssl_builtin
+- server = cherrypy.wsgiserver.CherryPyWSGIServer((self.host, self.port), handler)
++# http://www.socouldanyone.com/2014/01/bottle-with-ssl.html
++# https://github.com/mfm24/miscpython/blob/master/bottle_ssl.py
++class SslServer(Server):
++ def run(self, handler): # pragma: no cover
++ self.srv = self.make_server(handler)
++
++ import ssl
+ cert_dir = os.path.join(os.path.dirname(__file__), 'certs')
+- ssl_adapter = cherrypy.wsgiserver.ssl_builtin.BuiltinSSLAdapter(
+- os.path.join(cert_dir, 'server.crt'),
+- os.path.join(cert_dir, 'server.key'),
+- )
+- server.ssl_adapter = ssl_adapter
+- try:
+- server.start()
+- finally:
+- server.stop()
++ self.srv.socket = ssl.wrap_socket(
++ self.srv.socket,
++ keyfile=os.path.join(cert_dir, 'server.key'),
++ certfile=os.path.join(cert_dir, 'server.crt'),
++ server_side=True)
++
++ self.serve()
+
+ def start_bottle_server(app, port, server, **kwargs):
+ server_thread = ServerThread(app, port, server, kwargs)
+
diff --git a/dev-python/pycurl/metadata.xml b/dev-python/pycurl/metadata.xml
new file mode 100644
index 00000000000..b7630d2fb52
--- /dev/null
+++ b/dev-python/pycurl/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+PycURL is a Python interface to libcurl. PycURL can be used to fetch
+objects identified by a URL from a Python program, similar to the urllib
+Python module. All the functionality provided by libcurl can used through
+the pycurl interface.
+</longdescription>
+ <longdescription lang="ja">
+PycURLはLibcurlへのパイソン・インターフェイスです。PycURLはPython言語モジュール&gt;の様に、Python言語プログラムからURLで指定されたオブジェクトをダウンロードするに&gt;も使えます。Libcurlで利用できる機能全てはPycURLインターフェイスを通して利用でき&gt;ます。
+</longdescription>
+ <upstream>
+ <remote-id type="github">pycurl/pycurl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycurl/pycurl-7.19.3.1-r2.ebuild b/dev-python/pycurl/pycurl-7.19.3.1-r2.ebuild
new file mode 100644
index 00000000000..32c92ab5739
--- /dev/null
+++ b/dev-python/pycurl/pycurl-7.19.3.1-r2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+EAPI=5
+
+# The selftests fail with pypy, and urlgrabber segfaults for me.
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="python binding for curl/libcurl"
+HOMEPAGE="https://github.com/pycurl/pycurl http://pypi.python.org/pypi/pycurl"
+SRC_URI="http://pycurl.sourceforge.net/download/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="curl_ssl_gnutls curl_ssl_nss +curl_ssl_openssl examples ssl test"
+
+# Depend on a curl with curl_ssl_* USE flags.
+# libcurl must not be using an ssl backend we do not support.
+# If the libcurl ssl backend changes pycurl should be recompiled.
+# If curl uses gnutls, depend on at least gnutls 2.11.0 so that pycurl
+# does not need to initialize gcrypt threading and we do not need to
+# explicitly link to libgcrypt.
+RDEPEND=">=net-misc/curl-7.25.0-r1[ssl=]
+ ssl? (
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_nss(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),-curl_ssl_polarssl(-)]
+ curl_ssl_gnutls? ( >=net-libs/gnutls-2.11.0 ) )"
+
+# bottle-0.12.7: https://github.com/pycurl/pycurl/issues/180
+# bottle-0.12.7: https://github.com/defnull/bottle/commit/f35197e2a18de1672831a70a163fcfd38327a802
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/bottle-0.12.7[${PYTHON_USEDEP}] )"
+# Needed for individual runs of testsuite by python impls.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${P}-ssl-test.patch )
+
+python_prepare_all() {
+ sed -e "/setup_args\['data_files'\] = /d" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ # Override faulty detection in setup.py, bug 510974.
+ export PYCURL_SSL_LIBRARY=${CURL_SSL}
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # suite shatters without this
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ emake test
+}
+
+python_install_all() {
+ local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycurl/pycurl-7.19.5.1.ebuild b/dev-python/pycurl/pycurl-7.19.5.1.ebuild
new file mode 100644
index 00000000000..343e6a4ebca
--- /dev/null
+++ b/dev-python/pycurl/pycurl-7.19.5.1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+EAPI=5
+
+# The selftests fail with pypy, and urlgrabber segfaults for me.
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="python binding for curl/libcurl"
+HOMEPAGE="https://github.com/pycurl/pycurl http://pypi.python.org/pypi/pycurl"
+SRC_URI="http://pycurl.sourceforge.net/download/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="curl_ssl_gnutls curl_ssl_nss +curl_ssl_openssl examples ssl test"
+
+# Depend on a curl with curl_ssl_* USE flags.
+# libcurl must not be using an ssl backend we do not support.
+# If the libcurl ssl backend changes pycurl should be recompiled.
+# If curl uses gnutls, depend on at least gnutls 2.11.0 so that pycurl
+# does not need to initialize gcrypt threading and we do not need to
+# explicitly link to libgcrypt.
+RDEPEND=">=net-misc/curl-7.25.0-r1[ssl=]
+ ssl? (
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_nss(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),-curl_ssl_polarssl(-)]
+ curl_ssl_gnutls? ( >=net-libs/gnutls-2.11.0 ) )"
+
+# bottle-0.12.7: https://github.com/pycurl/pycurl/issues/180
+# bottle-0.12.7: https://github.com/defnull/bottle/commit/f35197e2a18de1672831a70a163fcfd38327a802
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/bottle-0.12.7[${PYTHON_USEDEP}]
+ )"
+# Needed for individual runs of testsuite by python impls.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -e "/setup_args\['data_files'\] = /d" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # Override faulty detection in setup.py, bug 510974.
+ export PYCURL_SSL_LIBRARY=${CURL_SSL}
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ emake -j1 do-test
+}
+
+python_install_all() {
+ local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycxx/Manifest b/dev-python/pycxx/Manifest
new file mode 100644
index 00000000000..f90b016296b
--- /dev/null
+++ b/dev-python/pycxx/Manifest
@@ -0,0 +1,2 @@
+DIST pycxx-6.2.5.tar.gz 141302 SHA256 f125c1b569d32dcfc5bdca565be0311306a2d759196460a5cac665cb515b014c SHA512 c7a5eeacdcb3f68e0a2336a33e6a84d6a7b240e4d232ce0f2676c4a467bf2c8b109eebd63ee42b655efa1f1993fe66a590459a9fbe7315b6c0a57501c73ff3b4 WHIRLPOOL 0792cf9050a21a3774d13124838300663f3b0fe458a243d9aadff2177772e5be0516e0c8a806c572401c28d59c98a252162267c65fc9010a6ea0af0bbdb6c254
+DIST pycxx-6.2.6.tar.gz 141547 SHA256 3e960db53dea640473410ea20063afe7fcfcb61c107334d7ff6af96d384c11fe SHA512 9a6c30acb99c112497c02fb0826dc0197bbf4b813d25eab3f7d6537dfd83db8150c94f617f79810bbcca64496b8d6e67b1a41446523d66031c54c21e0425ea0c WHIRLPOOL 570cc1ccd12748481c74aefe863a2cef2d2d048ddbeceeeea01477a6d1765f38582f3c9112c8d5fddf6f534b91c74aea11b38aab8da04ced18280047a0821090
diff --git a/dev-python/pycxx/files/pycxx-6.2.3-installation.patch b/dev-python/pycxx/files/pycxx-6.2.3-installation.patch
new file mode 100644
index 00000000000..5f6bfa74f4b
--- /dev/null
+++ b/dev-python/pycxx/files/pycxx-6.2.3-installation.patch
@@ -0,0 +1,25 @@
+--- setup.py
++++ setup.py
+@@ -3,10 +3,18 @@
+ from distutils.command.install import install
+ from distutils.core import setup
+
+-headers = (glob( os.path.join( "CXX","*.hxx" ) )
+- +glob( os.path.join( "CXX","*.h" ) ))
+-sources = (glob( os.path.join( "Src", "*.cxx" ) )
+- +glob( os.path.join( "Src", "*.c" ) ))
++headers = (glob( os.path.join( "CXX", "Python%s" % sys.version_info[0], "*.hxx" ) )
++ +glob( os.path.join( "CXX", "Python%s" % sys.version_info[0], "*.h" ) ))
++headers += [header for header in
++ glob( os.path.join( "CXX", "*.hxx" ) ) +
++ glob( os.path.join( "CXX", "*.h" ) )
++ if os.path.sep.join((os.path.split(header)[0], "Python%s" % sys.version_info[0], os.path.split(header)[1])) not in headers]
++sources = (glob( os.path.join( "Src", "Python%s" % sys.version_info[0], "*.cxx" ) )
++ +glob( os.path.join( "Src", "Python%s" % sys.version_info[0], "*.c" ) ))
++sources += [source for source in
++ glob( os.path.join( "Src", "*.cxx" ) ) +
++ glob( os.path.join( "Src", "*.c" ) )
++ if os.path.sep.join((os.path.split(source)[0], "Python%s" % sys.version_info[0], os.path.split(source)[1])) not in sources]
+
+
+ class my_install (install):
diff --git a/dev-python/pycxx/metadata.xml b/dev-python/pycxx/metadata.xml
new file mode 100644
index 00000000000..6ed1f5edceb
--- /dev/null
+++ b/dev-python/pycxx/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ PyCXX is a set of C++ facilities to make it easier to write Python
+ extensions. The chief way in which PyCXX makes it easier to write
+ Python extensions is that it increases the probability that
+ your program will not make a reference-counting error and will not
+ have to continually check error returns from the Python C API.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">cxx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pycxx/pycxx-6.2.5.ebuild b/dev-python/pycxx/pycxx-6.2.5.ebuild
new file mode 100644
index 00000000000..2954372432c
--- /dev/null
+++ b/dev-python/pycxx/pycxx-6.2.5.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Set of facilities to extend Python with C++"
+HOMEPAGE="http://cxx.sourceforge.net"
+SRC_URI="mirror://sourceforge/cxx/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="doc examples"
+
+python_prepare_all() {
+ # Without this, pysvn fails.
+ # CXX/Python2/Config.hxx: No such file or directory
+ sed -e "/^#include/s:/Python[23]/:/:" -i CXX/*/*.hxx || die "sed failed"
+
+ # Remove python2 print statement
+ echo > Lib/__init__.py || die
+
+ local PATCHES=(
+ "${FILESDIR}/${PN}-6.2.3-installation.patch"
+ )
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Doc/ )
+ use examples && local EXAMPLES=( Demo/Python{2,3}/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycxx/pycxx-6.2.6.ebuild b/dev-python/pycxx/pycxx-6.2.6.ebuild
new file mode 100644
index 00000000000..a5c539c5998
--- /dev/null
+++ b/dev-python/pycxx/pycxx-6.2.6.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Set of facilities to extend Python with C++"
+HOMEPAGE="http://cxx.sourceforge.net"
+SRC_URI="mirror://sourceforge/cxx/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="doc examples"
+
+python_prepare_all() {
+ # Without this, pysvn fails.
+ # CXX/Python2/Config.hxx: No such file or directory
+ sed -e "/^#include/s:/Python[23]/:/:" -i CXX/*/*.hxx || die "sed failed"
+
+ # Remove python2 print statement
+ echo > Lib/__init__.py || die
+
+ local PATCHES=(
+ "${FILESDIR}/${PN}-6.2.3-installation.patch"
+ )
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Doc/. )
+ use examples && local EXAMPLES=( Demo/Python{2,3}/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pydb/Manifest b/dev-python/pydb/Manifest
new file mode 100644
index 00000000000..d9fad97a4fb
--- /dev/null
+++ b/dev-python/pydb/Manifest
@@ -0,0 +1 @@
+DIST pydb-1.26.tar.bz2 572184 SHA256 01131848a58fce6a529766488884848c06068aa9ec4f39e19f8fb4d260f893f2 SHA512 39365ddcd863404079e4a7159bbbedbfa6a99b3d46e95c07fe14be61a2805b9237df5e51a8a68db159fca2df4b0bd46bddaebbe610d1597064f2df4e64393355 WHIRLPOOL 26a887e19dc157c612d4c4fa07fa1d4e0be0e051e23f680ed1b3368c4b12ad353d631893b81bfa8bbd48358d5ff4383de18876deffa467af2762d49f39cb833e
diff --git a/dev-python/pydb/metadata.xml b/dev-python/pydb/metadata.xml
new file mode 100644
index 00000000000..bfa2bf74f9b
--- /dev/null
+++ b/dev-python/pydb/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>Extended python debugger</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">bashdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pydb/pydb-1.26-r1.ebuild b/dev-python/pydb/pydb-1.26-r1.ebuild
new file mode 100644
index 00000000000..c17011eda1b
--- /dev/null
+++ b/dev-python/pydb/pydb-1.26-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+PYTHON_EXPORT_PHASE_FUNCTIONS="1"
+
+inherit elisp-common python
+
+DESCRIPTION="Extended python debugger"
+HOMEPAGE="http://bashdb.sourceforge.net/pydb/"
+SRC_URI="mirror://sourceforge/bashdb/${P}.tar.bz2"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="emacs"
+
+DEPEND="
+ emacs? ( virtual/emacs )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ echo "#!/bin/sh" > py-compile
+
+ # Fix pydb symlinks.
+ sed -e '/$(LN_S) "$(DESTDIR)$(pkgpythondir)\/$(python_debugger_script)" "$(DESTDIR)$(bindir)\/$(bin_SCRIPTS)"/s/$(DESTDIR)$(pkgpythondir)/$(pkgpythondir)/' -i Makefile.in
+
+ python_src_prepare
+}
+
+src_configure() {
+ configuration() {
+ econf --with-lispdir="${SITELISP}/${PN}" \
+ EMACS="$(use emacs && echo "${EMACS}" || echo no)" \
+ --with-site-packages=$(python_get_sitedir) \
+ --with-python=$(PYTHON -a)
+ }
+ python_execute_function -s configuration
+}
+
+src_install() {
+ python_src_install
+ dodoc AUTHORS ChangeLog NEWS README THANKS TODO
+}
+
+pkg_postinst() {
+ python_mod_optimize pydb
+}
+
+pkg_postrm() {
+ python_mod_cleanup pydb
+}
diff --git a/dev-python/pydiff/Manifest b/dev-python/pydiff/Manifest
new file mode 100644
index 00000000000..e4c9a13960b
--- /dev/null
+++ b/dev-python/pydiff/Manifest
@@ -0,0 +1 @@
+DIST pydiff-0.2.tar.gz 4108 SHA256 847c7121625de8d5aa9eb2b079edad18a451e134cafa1b8958ea019ee0409aaa SHA512 0f55edf17138c4a1894a1ca03db21e6d6d21fb3961a2738c00d59e05d32a006413aee04005962f1ba6628c012bb018d43fcbbef50665ea10d3397539e5d3def1 WHIRLPOOL d90e257d7449bc5eb5495a45138d74c32ee935cd833718174f4fb0fe9c0edfca13131589732319a3e1610682becaf2a643cf24110a65c533d48cd64663b42c00
diff --git a/dev-python/pydiff/metadata.xml b/dev-python/pydiff/metadata.xml
new file mode 100644
index 00000000000..eae4cd3cc84
--- /dev/null
+++ b/dev-python/pydiff/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pydiff</remote-id>
+ <remote-id type="github">myint/pydiff</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pydiff/pydiff-0.2.ebuild b/dev-python/pydiff/pydiff-0.2.ebuild
new file mode 100644
index 00000000000..74586d73b75
--- /dev/null
+++ b/dev-python/pydiff/pydiff-0.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Diffs two Python files at the bytecode level"
+HOMEPAGE="https://github.com/myint/pydiff"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+python_test() {
+ "${PYTHON}" test_pydiff.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/pydispatcher/Manifest b/dev-python/pydispatcher/Manifest
new file mode 100644
index 00000000000..826b50200eb
--- /dev/null
+++ b/dev-python/pydispatcher/Manifest
@@ -0,0 +1,2 @@
+DIST PyDispatcher-2.0.3.tar.gz 33454 SHA256 735b1f7cba2123fbb60530c178c54b43f774b88cefa2689a8b6dcc476f2ba03f SHA512 2d1ac07ec5ac500f24e41a38b3d41cc54d761c896fb6d580bab02da51d8e881014a8e1b9d5977be2e542f8a4758bc73589319191529a70c573c6bda49342afb1 WHIRLPOOL 71ae88c3a9fff3f359636eec1608458b4d5ee9d198985a16dcb17440ce082277d836053b9210c68b5ee45c88f09f1a1568a88cf692e9975e00f19bba83148cf3
+DIST PyDispatcher-2.0.5.tar.gz 34437 SHA256 5570069e1b1769af1fe481de6dd1d3a388492acddd2cdad7a3bde145615d5caf SHA512 b361463f006a775e1f22cfe07520951649f76c26be35a80ca016620c8ef466129c4abeafe42f0ffdc605e7523287b1e804967f19d951089d24e052fe10d88e6f WHIRLPOOL 482c19525d61c73c4b290491a277ec8ecfd4a8ad247a87a3dab7bf95d9a2923d7b21b9dd06db05cf1b5c0d9efedb13552895a97f9726dc7c666b848b1d7e560f
diff --git a/dev-python/pydispatcher/metadata.xml b/dev-python/pydispatcher/metadata.xml
new file mode 100644
index 00000000000..70f420a2ed2
--- /dev/null
+++ b/dev-python/pydispatcher/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">PyDispatcher</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pydispatcher/pydispatcher-2.0.3-r1.ebuild b/dev-python/pydispatcher/pydispatcher-2.0.3-r1.ebuild
new file mode 100644
index 00000000000..9e1598a0dac
--- /dev/null
+++ b/dev-python/pydispatcher/pydispatcher-2.0.3-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="PyDispatcher"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Multi-producer-multi-consumer signal dispatching mechanism"
+HOMEPAGE="http://pydispatcher.sourceforge.net/ http://pypi.python.org/pypi/PyDispatcher"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ pushd docs/pydoc/ > /dev/null
+ "${PYTHON}" builddocs.py || die "Generation of documentation failed"
+ popd > /dev/null
+ fi
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/pydoc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pydispatcher/pydispatcher-2.0.5.ebuild b/dev-python/pydispatcher/pydispatcher-2.0.5.ebuild
new file mode 100644
index 00000000000..9e1598a0dac
--- /dev/null
+++ b/dev-python/pydispatcher/pydispatcher-2.0.5.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="PyDispatcher"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Multi-producer-multi-consumer signal dispatching mechanism"
+HOMEPAGE="http://pydispatcher.sourceforge.net/ http://pypi.python.org/pypi/PyDispatcher"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ pushd docs/pydoc/ > /dev/null
+ "${PYTHON}" builddocs.py || die "Generation of documentation failed"
+ popd > /dev/null
+ fi
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/pydoc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pydns/Manifest b/dev-python/pydns/Manifest
new file mode 100644
index 00000000000..0736ee64c8a
--- /dev/null
+++ b/dev-python/pydns/Manifest
@@ -0,0 +1,2 @@
+DIST py3dns-3.1.0.tar.gz 29501 SHA256 124d7833fd0a6fbaebe17d093b028cfa77b155b5feab8e1c6265959a4b9e7fb7 SHA512 ba2cb397351b587539072b608f6be878066bfb317f4cca472c2d3102638432de48a25d8a6efc41a88b9f77d939fa71ffb396d1a2dfab46e8d2b431d0eb89f7a4 WHIRLPOOL 8fdd8e9c75293c86120770da8e09f093cf6b8783b87e8cd7dccbf1fe8e3dfb3aad89fd371cd1a512b83db626a4a627f21ff1a497211cfaa027d08ebc650ed53b
+DIST pydns-2.3.6.tar.gz 28220 SHA256 d3cf6fc4ec088e934cf2dd4d71080efdb5c09ae79cbb2512427eb0fc393f2417 SHA512 261598c085c7d9f7adf5ce881814e444cdcf48a946dc17db467268ab6164f6045c204507cc58eff8e6f826b9786715ad2a9e766a72193ac8666969913180954b WHIRLPOOL 76d5f6caaddbaf027e4e7677d767263c270c5fc0db6e35bfb3bc99a8c229fbb2704dbbb2a2bd5207dc9c3a2f571a8b0351a492a16dc3a3fbe0c7f5cf88a91389
diff --git a/dev-python/pydns/metadata.xml b/dev-python/pydns/metadata.xml
new file mode 100644
index 00000000000..0d0515b525a
--- /dev/null
+++ b/dev-python/pydns/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">PyDNS provides a module for performing DNS queries from python
+ applications. This was originally based on Guido van Rossum's DNS
+ library code, but has drifted further and further away from it over
+ time.</longdescription>
+ <upstream>
+ <remote-id type="pypi">pydns</remote-id>
+ <remote-id type="launchpad">py3dns</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pydns/pydns-2.3.6-r1.ebuild b/dev-python/pydns/pydns-2.3.6-r1.ebuild
new file mode 100644
index 00000000000..827fa94b204
--- /dev/null
+++ b/dev-python/pydns/pydns-2.3.6-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for DNS (Domain Name Service)"
+HOMEPAGE="http://pydns.sourceforge.net/ http://pypi.python.org/pypi/pydns"
+SRC_URI="http://downloads.sourceforge.net/project/pydns/pydns/${P}/${P}.tar.gz"
+
+LICENSE="CNRI"
+SLOT="2"
+KEYWORDS="amd64 hppa ~ia64 ~ppc ~sparc x86"
+IUSE="examples"
+
+DEPEND="!dev-python/pydns:0
+ virtual/libiconv"
+RDEPEND=""
+
+# Funny a dns package attempts to use the network on tests
+# Await the day that gentoo chills out on such a blanket law.
+RESTRICT=test
+
+python_prepare_all() {
+ # Fix encodings (should be utf-8 but is latin1).
+ local i
+ for i in DNS/{Lib,Type}.py; do
+ iconv -f ISO-8859-1 -t UTF-8 "${i}" > "${i}.utf8" || die
+ mv -f "${i}.utf8" "${i}" || die
+ done
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local test
+ for test in tests/{test.py,test[2-5].py,testsrv.py}
+ do
+ "${PYTHON}" $test || die
+ done
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( ./{tests,tools}/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pydns/pydns-3.1.0.ebuild b/dev-python/pydns/pydns-3.1.0.ebuild
new file mode 100644
index 00000000000..d6960bfebcc
--- /dev/null
+++ b/dev-python/pydns/pydns-3.1.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="${PN/py/py3}"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Python DNS (Domain Name System) library"
+HOMEPAGE="https://launchpad.net/py3dns"
+SRC_URI="https://launchpad.net/${MY_PN}/trunk/${PV}/+download/${MY_P}.tar.gz"
+
+LICENSE="CNRI"
+SLOT="3"
+KEYWORDS="amd64 hppa ~ia64 ~ppc ~sparc x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND=""
+
+# Most if not all of the tests require network access.
+RESTRICT=test
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ # Some of the tests are broken.
+ for test in tests/{test{,2,4}.py,testsrv.py}
+ do
+ "${PYTHON}" ${test} || die
+ done
+
+ "${PYTHON}" tests/test5.py example.org || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( ./{tests,tools}/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyds/Manifest b/dev-python/pyds/Manifest
new file mode 100644
index 00000000000..304ae359a07
--- /dev/null
+++ b/dev-python/pyds/Manifest
@@ -0,0 +1 @@
+DIST PyDS-0.7.3.tar.gz 660766 SHA256 9489a1e65e7df4d172223f863c601f7c09bc9101020cb8c0bbd8b884fbf055b7 SHA512 1ac395e9c93c04710c3ffc335c6ead8a4c35401959da3bf882906cf993e2dc316e52d567e218aca07beebc1b32b71abbeb3f92c7f673d2b613ea0bd62b654e6f WHIRLPOOL d5747f9e3dfa21331ce5bce48494c6031dfefb7acd233e8823ec8810c4e10ee490c3608ef9891ef56e77e038d16c34ffa944696bb290fd6dfbfdaaae81efa8ec
diff --git a/dev-python/pyds/files/pyds-0.6.5-py2.3.patch b/dev-python/pyds/files/pyds-0.6.5-py2.3.patch
new file mode 100644
index 00000000000..e32f7473a3e
--- /dev/null
+++ b/dev-python/pyds/files/pyds-0.6.5-py2.3.patch
@@ -0,0 +1,19 @@
+--- PyDS/DownstreamTool.py
++++ PyDS/DownstreamTool.py
+@@ -36,6 +36,7 @@
+ import urllib
+ import gzip
+ import mimetypes
++import urlparse
+
+ import PyDS.Tool
+
+@@ -74,6 +75,8 @@
+ for h in self.cache._getUrlHeaders(theurl):
+ apply(self.addheader, h)
+ self.message += _('<br>adding Header "%s: %s"') % h
++ urlpieces = urlparse.urlparse(url[1])
++ url = (urlpieces[1], url[1])
+ res = urllib.URLopener.open_http(self, url, data)
+ self.message = self.message.replace('%', '%%')
+ if self.verbose:
diff --git a/dev-python/pyds/files/pyds-pillow.patch b/dev-python/pyds/files/pyds-pillow.patch
new file mode 100644
index 00000000000..505a86675e2
--- /dev/null
+++ b/dev-python/pyds/files/pyds-pillow.patch
@@ -0,0 +1,14 @@
+https://bugs.gentoo.org/show_bug.cgi?id=471508
+--- a/PyDS/PictureTool.py
++++ a/PyDS/PictureTool.py
+@@ -35,8 +35,8 @@
+ import string
+ import mimetypes
+
+-import Image
+-import ImageDraw
++from PIL import Image
++from PIL import ImageDraw
+
+ import PyDS.Tool
+ import PyDS.EXIF
diff --git a/dev-python/pyds/metadata.xml b/dev-python/pyds/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyds/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyds/pyds-0.7.3-r1.ebuild b/dev-python/pyds/pyds-0.7.3-r1.ebuild
new file mode 100644
index 00000000000..dbca1ca205c
--- /dev/null
+++ b/dev-python/pyds/pyds-0.7.3-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="PyDS-${PV}"
+
+DESCRIPTION="Python Desktop Server"
+HOMEPAGE="http://pyds.muensterland.org/"
+SRC_URI="http://simon.bofh.ms/~gb/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND="app-text/silvercity
+ >=dev-db/metakit-2.4.9.2[python,${PYTHON_USEDEP}]
+ >=dev-python/cheetah-0.9.15[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.3[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ >=dev-python/medusa-0.5.4[${PYTHON_USEDEP}]
+ >=dev-python/pyrex-0.5[${PYTHON_USEDEP}]
+ >=dev-python/soappy-0.11.1[${PYTHON_USEDEP}]
+ virtual/jpeg
+ sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( OVERVIEW )
+PATCHES=(
+ "${FILESDIR}/${PN}-0.6.5-py2.3.patch"
+ "${FILESDIR}/${PN}-pillow.patch"
+)
diff --git a/dev-python/pyds9/Manifest b/dev-python/pyds9/Manifest
new file mode 100644
index 00000000000..5e55965a090
--- /dev/null
+++ b/dev-python/pyds9/Manifest
@@ -0,0 +1 @@
+DIST pyds9-1.7.tar.gz 879882 SHA256 026a86827fa93f074e2a90b9d831ba79253f312fa331f6a6a508cfa91fa81aac SHA512 8622cf40db65228553abc2f3dea346d9c948706a2681217a9383589d4df0143c42ef859dff12689f699b0fb40806945232c336539f37eb2c78754f9779043bcb WHIRLPOOL abc2d11817519e844f61319b0ba30276a9bb48b6a3beb5e6b7c097717cc86aeeb1960f58d62a21a9ce5d4bc37c05b8cee181abc1cc12e2821a5e878d64f1f175
diff --git a/dev-python/pyds9/metadata.xml b/dev-python/pyds9/metadata.xml
new file mode 100644
index 00000000000..b1d6caffdd8
--- /dev/null
+++ b/dev-python/pyds9/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ The XPA messaging system provides seamless communication between
+ many kinds of Unix programs, including Tcl/Tk programs such as
+ ds9. The pyds9 module uses a Python interface to XPA to communicate
+ with ds9. It supports communication with all of ds9’s XPA access
+ points.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pyds9/pyds9-1.7.ebuild b/dev-python/pyds9/pyds9-1.7.ebuild
new file mode 100644
index 00000000000..38a742fd881
--- /dev/null
+++ b/dev-python/pyds9/pyds9-1.7.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1 multilib
+
+XPAPV=2.1.15
+
+DESCRIPTION="Python interface to XPA to communicate with DS9"
+HOMEPAGE="http://hea-www.harvard.edu/RD/ds9/pyds9/"
+SRC_URI="http://hea-www.harvard.edu/RD/download/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=">=x11-libs/xpa-${XPAPV}"
+RDEPEND="${DEPEND}
+ dev-python/numpy[${PYTHON_USEDEP}]
+ || ( dev-python/astropy[${PYTHON_USEDEP}]
+ dev-python/pyfits[${PYTHON_USEDEP}] )"
+
+DOCS=(changelog README)
+
+src_prepare() {
+ rm -r xpa-${XPAPV} || die
+ sed -i \
+ -e "/py_modules/s|\],|\])|" \
+ -e '/data_files/,$ d' \
+ setup.py || die
+ sed -i \
+ -e "s|./xpa-${XPAPV}|${EROOT%/}/usr/$(get_libdir)|" \
+ xpa.py || die
+ sed -i \
+ -e "s|sys.path|['${EROOT%/}/usr/bin']|" \
+ ds9.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pydvdread/Manifest b/dev-python/pydvdread/Manifest
new file mode 100644
index 00000000000..b5d4bb9e85c
--- /dev/null
+++ b/dev-python/pydvdread/Manifest
@@ -0,0 +1 @@
+DIST pydvdread-1.0.tar.bz2 62072 SHA256 aae9a0ad1ab4d218a52cc7cffcbbeb9c3e59f4f4286acc36d02d46f3e0b31cb2 SHA512 1d403e1b9538113bb5ab1a808147691b806ee57db3fa30f704a0fcb1dbb8e9155e470dc2fbb895788af59c2952d637a2853d613f0619deb5daf07d2e7b675eee WHIRLPOOL 5c65a36b90f68b2e72f3900954a90b99fc51ea3e70f70e06ecba9a2ee172f51f3972f4c96b240954360e85b5a8d338f1039c7e3ed279d4f20b8edc5ecff4ba3e
diff --git a/dev-python/pydvdread/files/pydvdread-1.0-api-update.patch b/dev-python/pydvdread/files/pydvdread-1.0-api-update.patch
new file mode 100644
index 00000000000..71c08158e66
--- /dev/null
+++ b/dev-python/pydvdread/files/pydvdread-1.0-api-update.patch
@@ -0,0 +1,287 @@
+update the module to libdvdread-4.2.0 (at least so tests pass)
+
+--- a/src/dvdread/__init__.py
++++ b/src/dvdread/__init__.py
+@@ -1,6 +1,6 @@
+ """Main package of pydvdread."""
+
+-__all__ = ['cmd_print',
++__all__ = [
+ 'dvd_reader',
+ 'ifo_print',
+ 'ifo_read',
+--- a/src/dvdread/all.i
++++ b/src/dvdread/all.i
+@@ -403,7 +403,6 @@
+ %{
+ #include <stdint.h>
+ %}
+-%include "cmd_print.i"
+ %include "dvd_reader.i"
+ %include "ifo_print.i"
+ %include "ifo_read.i"
+--- a/src/dvdread/ifo_types.i
++++ b/src/dvdread/ifo_types.i
+@@ -374,7 +374,7 @@ typedef struct {
+ uint16_t nr_of_pre;
+ uint16_t nr_of_post;
+ uint16_t nr_of_cell;
+- uint16_t last_byte;
++ uint16_t zero_1;
+ vm_cmd_t *pre_cmds;
+ vm_cmd_t *post_cmds;
+ vm_cmd_t *cell_cmds;
+--- a/src/dvdread/ifo_print.i
++++ b/src/dvdread/ifo_print.i
+@@ -31,6 +31,7 @@ file to stdout."
+
+ %{
+ #include <dvdread/ifo_print.h>
++#include <dvdread/ifo_read.h>
+ %}
+
+ /**
+@@ -40,21 +41,6 @@ file to stdout."
+ %feature("autodoc", "0");
+
+ /* ifoPrint(dvd, title); */
+-void ifoPrint(dvd_reader_t *dvd, int title);
++void ifo_print(dvd_reader_t *dvd, int title);
+
+ %feature("autodoc", "1");
+-
+-void ifoPrint_VMGI_MAT(vmgi_mat_t *obj);
+-void ifoPrint_VTSI_MAT(vtsi_mat_t *obj);
+-
+-void ifoPrint_PTL_MAIT(ptl_mait_t *obj);
+-void ifoPrint_VTS_ATRT(vts_atrt_t *obj);
+-void ifoPrint_TT_SRPT(tt_srpt_t *obj);
+-void ifoPrint_VTS_PTT_SRPT(vts_ptt_srpt_t *obj);
+-void ifoPrint_PGC(pgc_t *obj);
+-void ifoPrint_PGCIT(pgcit_t *obj);
+-void ifoPrint_PGCI_UT(pgci_ut_t *obj);
+-void ifoPrint_VTS_TMAPT(vts_tmapt_t *obj);
+-void ifoPrint_C_ADT(c_adt_t *obj);
+-void ifoPrint_VOBU_ADMAP(vobu_admap_t *obj);
+-
+--- a/src/dvdread/ifo_print.py
++++ b/src/dvdread/ifo_print.py
+@@ -16,11 +16,4 @@
+ ## along with this program; if not, write to the Free Software
+ ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-from all import ifoPrint
+-from all import ifoPrint_VMGI_MAT, ifoPrint_VTSI_MAT
+-from all import ifoPrint_PTL_MAIT, ifoPrint_VTS_ATRT
+-from all import ifoPrint_TT_SRPT, ifoPrint_VTS_PTT_SRPT
+-from all import ifoPrint_PGC, ifoPrint_PGCIT
+-from all import ifoPrint_PGCI_UT, ifoPrint_VTS_TMAPT
+-from all import ifoPrint_C_ADT, ifoPrint_VOBU_ADMAP
+-
++from all import ifo_print
+--- a/src/dvdread/dvd_reader.i
++++ b/src/dvdread/dvd_reader.i
+@@ -59,14 +59,6 @@ reading files located on a DVD."
+
+
+ /**
+- * DVDVersion
+- */
+-%feature("autodoc", "DVDVersion() -> int\n\n\
+-Returns the version of libdvdread.") DVDVersion;
+-int DVDVersion(void);
+-
+-
+-/**
+ * DVDOpen
+ */
+ %feature("autodoc", "DVDOpen(path) -> dvd\n\n\
+@@ -106,25 +98,6 @@ void DVDClose( dvd_reader_t * );
+
+
+ /**
+- * DVDInit
+- */
+-%feature("autodoc", "DVDInit()\n\n\
+-Initializes support for multiple threads.\n\n\
+-NOTE: You must call DVDInit before using any of the other functions\n\
+-if you are going to use them in a multithreading app.") DVDInit;
+-void DVDInit(void);
+-
+-
+-/**
+- * DVDFinish
+- */
+-%feature("autodoc", "DVDFinish()\n\n\
+-Frees any dlopened objects.\n\n\
+-NOTE: You must DVDClose all handles opened with DVDOpen before calling this.") DVDFinish;
+-void DVDFinish(void);
+-
+-
+-/**
+ * File Domains
+ */
+ typedef enum {
+--- a/src/dvdread/dvd_reader.py
++++ b/src/dvdread/dvd_reader.py
+@@ -22,9 +22,7 @@ from all import DVD_READ_MENU_VOBS, DVD_READ_TITLE_VOBS
+
+ from all import dvd_stat_t
+
+-from all import DVDVersion, DVDOpen
+-from all import DVDClose, DVDInit
+-from all import DVDFinish, DVDFileStat
++from all import DVDOpen, DVDClose, DVDFileStat
+ from all import DVDOpenFile, DVDCloseFile
+ from all import DVDReadBlocks, DVDFileSeek
+ from all import DVDReadBytes, DVDFileSize
+--- a/tests/TestAll.py
++++ b/tests/TestAll.py
+@@ -33,7 +33,6 @@ devpath()
+
+ import unittest
+
+-import Test_cmd_print
+ import Test_dvd_reader
+ import Test_ifo_print
+ import Test_ifo_read
+@@ -49,7 +48,6 @@ import TestStruct_nav_types
+ # Run all tests
+ if __name__ == '__main__':
+ if len(sys.argv) > 1:
+- Test_cmd_print.DVDPATH = sys.argv[1]
+ Test_dvd_reader.DVDPATH = sys.argv[1]
+ Test_ifo_print.DVDPATH = sys.argv[1]
+ Test_ifo_read.DVDPATH = sys.argv[1]
+@@ -57,8 +55,7 @@ if __name__ == '__main__':
+ Test_nav_print.DVDPATH = sys.argv[1]
+ Test_nav_read.DVDPATH = sys.argv[1]
+ Test_nav_types.DVDPATH = sys.argv[1]
+- suite = unittest.TestLoader().loadTestsFromModule(Test_cmd_print)
+- suite.addTest(unittest.TestLoader().loadTestsFromModule(Test_dvd_reader))
++ suite = unittest.TestLoader().loadTestsFromModule(Test_dvd_reader)
+ suite.addTest(unittest.TestLoader().loadTestsFromModule(Test_ifo_print))
+ suite.addTest(unittest.TestLoader().loadTestsFromModule(Test_ifo_read))
+ suite.addTest(unittest.TestLoader().loadTestsFromModule(Test_ifo_types))
+--- a/tests/Test_dvd_reader.py
++++ b/tests/Test_dvd_reader.py
+@@ -49,9 +49,6 @@ class Test1(unittest.TestCase):
+ self.assert_(isinstance(dvd_reader.DVD_READ_MENU_VOBS, int))
+ self.assert_(isinstance(dvd_reader.DVD_READ_TITLE_VOBS, int))
+
+- def test_DVDVersion(self):
+- self.assert_(isinstance(dvd_reader.DVDVersion(), int))
+-
+ class Test2(unittest.TestCase):
+
+ def tearDown(self):
+@@ -70,22 +67,6 @@ class Test3(unittest.TestCase):
+ def test_DVDClose(self):
+ dvd_reader.DVDClose(self.dvd)
+
+-class Test4(unittest.TestCase):
+-
+- def tearDown(self):
+- dvd_reader.DVDFinish()
+-
+- def test_DVDInit(self):
+- dvd_reader.DVDInit()
+-
+-class Test5(unittest.TestCase):
+-
+- def setUp(self):
+- dvd_reader.DVDInit()
+-
+- def test_DVDFinish(self):
+- dvd_reader.DVDFinish()
+-
+ class Test6(unittest.TestCase):
+
+ def setUp(self):
+--- a/tests/Test_ifo_print.py
++++ b/tests/Test_ifo_print.py
+@@ -50,45 +50,8 @@ class Test1(unittest.TestCase):
+ ifo_read.ifoClose(self.ifo)
+ dvd_reader.DVDClose(self.dvd)
+
+- def test_ifoPrint(self):
+- ifo_print.ifoPrint(self.dvd, 1)
+-
+- def test_ifoPrint_VMGI_MAT(self):
+- ifo_print.ifoPrint_VMGI_MAT(self.ifo0.vmgi_mat)
+-
+- def test_ifoPrint_VTSI_MAT(self):
+- ifo_print.ifoPrint_VTSI_MAT(self.ifo.vtsi_mat)
+-
+- def test_ifoPrint_PTL_MAIT(self):
+- if self.ifo0.ptl_mait:
+- ifo_print.ifoPrint_PTL_MAIT(self.ifo0.ptl_mait)
+-
+- def test_ifoPrint_VTS_ATRT(self):
+- ifo_print.ifoPrint_VTS_ATRT(self.ifo0.vts_atrt)
+-
+- def test_ifoPrint_TT_SRPT(self):
+- ifo_print.ifoPrint_TT_SRPT(self.ifo0.tt_srpt)
+-
+- def test_ifoPrint_VTS_PTT_SRPT(self):
+- ifo_print.ifoPrint_VTS_PTT_SRPT(self.ifo.vts_ptt_srpt)
+-
+- def test_ifoPrint_PGC(self):
+- ifo_print.ifoPrint_PGC(self.ifo0.first_play_pgc)
+-
+- def test_ifoPrint_PGCIT(self):
+- ifo_print.ifoPrint_PGCIT(self.ifo.vts_pgcit)
+-
+- def test_ifoPrint_PGCI_UT(self):
+- ifo_print.ifoPrint_PGCI_UT(self.ifo.pgci_ut)
+-
+- def test_ifoPrint_VTS_TMAPT(self):
+- ifo_print.ifoPrint_VTS_TMAPT(self.ifo.vts_tmapt)
+-
+- def test_ifoPrint_C_ADT(self):
+- ifo_print.ifoPrint_C_ADT(self.ifo.menu_c_adt)
+-
+- def test_ifoPrint_VOBU_ADMAP(self):
+- ifo_print.ifoPrint_VOBU_ADMAP(self.ifo.menu_vobu_admap)
++ def test_ifo_print(self):
++ ifo_print.ifo_print(self.dvd, 1)
+
+
+ # Run the tests
+--- a/tests/Test_ifo_types.py
++++ b/tests/Test_ifo_types.py
+@@ -189,7 +189,7 @@ def pgc_command_tbl_t(obj, tester):
+ tester.assert_(isinstance(obj.nr_of_pre, int))
+ tester.assert_(isinstance(obj.nr_of_post, int))
+ tester.assert_(isinstance(obj.nr_of_cell, int))
+- tester.assert_(isinstance(obj.last_byte, int))
++ tester.assert_(isinstance(obj.zero_1, int))
+ tester.assert_(callable(obj.pre_cmds))
+ for i in range(obj.nr_of_pre):
+ tester.assert_(isinstance(obj.pre_cmds(i), ifo_types.vm_cmd_t))
+@@ -457,18 +457,18 @@ def ptl_mait_country_t(obj, tester):
+ tester.assert_(isinstance(obj.zero_1, int))
+ tester.assert_(isinstance(obj.pf_ptl_mai_start_byte, int))
+ tester.assert_(isinstance(obj.zero_2, int))
+- tester.assert_(isinstance(obj.pf_ptl_mai, ifo_types.pf_level_t))
+- pf_level_t(obj.pf_ptl_mai, tester)
++ # No idea what's going on here.
++ #tester.assert_(isinstance(obj.pf_ptl_mai, ifo_types.pf_level_t))
++ #pf_level_t(obj.pf_ptl_mai, tester)
+
+ def ptl_mait_t(obj, tester):
+ tester.assert_(isinstance(obj.nr_of_countries, int))
+ tester.assert_(isinstance(obj.nr_of_vtss, int))
+ tester.assert_(isinstance(obj.last_byte, int))
+- tester.assert_(isinstance(obj.countries, list))
+- tester.assertEqual(len(obj.countries), obj.nr_of_countries)
+- for elem in obj.countries:
+- tester.assert_(isinstance(elem, ifo_types.ptl_mait_country_t))
+- ptl_mait_country_t(elem, tester)
++ tester.assert_(callable(obj.countries))
++ for i in range(obj.nr_of_countries):
++ tester.assert_(isinstance(obj.countries(i), ifo_types.ptl_mait_country_t))
++ ptl_mait_country_t(obj.countries(i), tester)
+
+ def vts_attributes_t(obj, tester):
+ tester.assert_(isinstance(obj.last_byte, int))
diff --git a/dev-python/pydvdread/files/pydvdread-1.0-py3k.patch b/dev-python/pydvdread/files/pydvdread-1.0-py3k.patch
new file mode 100644
index 00000000000..338ad6c0ef0
--- /dev/null
+++ b/dev-python/pydvdread/files/pydvdread-1.0-py3k.patch
@@ -0,0 +1,19 @@
+get it building w/python3
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,11 +18,11 @@ def fixso(filepath):
+ class my_build_ext(build_ext):
+ def build_extension(self, ext):
+ sources = ext.sources
+- if sources is None or type(sources) not in (ListType, TupleType):
+- raise DistutilsSetupError, \
++ if sources is None or not isinstance(sources, (list, tuple)):
++ raise DistutilsSetupError(
+ ("in 'ext_modules' option (extension '%s'), " +
+ "'sources' must be present and must be " +
+- "a list of source filenames") % ext.name
++ "a list of source filenames") % ext.name)
+ sources = list(sources)
+ fullname = self.get_ext_fullname(ext.name)
+ if self.inplace:
diff --git a/dev-python/pydvdread/metadata.xml b/dev-python/pydvdread/metadata.xml
new file mode 100644
index 00000000000..af0bf6021f1
--- /dev/null
+++ b/dev-python/pydvdread/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pydvdread</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pydvdread/pydvdread-1.0-r1.ebuild b/dev-python/pydvdread/pydvdread-1.0-r1.ebuild
new file mode 100644
index 00000000000..f210509f7ca
--- /dev/null
+++ b/dev-python/pydvdread/pydvdread-1.0-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A set of Python bindings for the libdvdread library"
+HOMEPAGE="http://pydvdread.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE=""
+RESTRICT="test" # Requires an actual DVD to test.
+
+DEPEND="media-libs/libdvdread
+ dev-lang/swig"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${P}-py3k.patch \
+ "${FILESDIR}"/${P}-api-update.patch )
+
+python_test() {
+ "${PYTHON}" tests/TestAll.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyechonest/Manifest b/dev-python/pyechonest/Manifest
new file mode 100644
index 00000000000..92fb7a5941b
--- /dev/null
+++ b/dev-python/pyechonest/Manifest
@@ -0,0 +1,2 @@
+DIST pyechonest-7.2.1.tar.gz 66314 SHA256 5f2279386daf6f9080a633a0ab508fc92c281d2279e29ff4d16a75fea4111b66 SHA512 f77f12355d9243f61ebf8612c94d99222b7ab010d7ef0ff911ceab5581084ac75c450bd538860c213233ac45483ba173f2d21fa0bba8d01480d02f339560b8d0 WHIRLPOOL b633143a23f8d2daa2371a5b2767a72a267cf96f79a73f98279026aa4bf45f84aa55249473efea9eeacbc34b20497607446300c73af448646a61439794d82f34
+DIST pyechonest-9.0.0.tar.gz 63654 SHA256 87d7782d60cb16d84cbd34406154e3e221c9ca0bf977bda1ef73b315d0065372 SHA512 6eaadc08a4e23d8de86ff7b254d271349bd0a766ae1aa7dfa28dc59ae591d5b31aa109e6075fd7db98e3d03b990ab118cd8d5f2e67247988c3de0c5c3a222d66 WHIRLPOOL 1f96e8b447756cd298ad779070ff23b6639b5c61389d3c134a80ea5821b4d4e366dc9e49be5698eb66166415591623bf17b6d6c03c0a3a36836040c2fdc22b0b
diff --git a/dev-python/pyechonest/metadata.xml b/dev-python/pyechonest/metadata.xml
new file mode 100644
index 00000000000..77ada575eb7
--- /dev/null
+++ b/dev-python/pyechonest/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ Tap into The Echo Nest's Musical Brain for the best music search,
+ information, recommendations and remix tools on the web.
+
+ Pyechonest is an open source Python library for the Echo Nest API. With
+ Pyechonest you have Python access to the entire set of API methods
+ including:
+ artist - search for artists by name, description, or attribute, and
+ get back detailed information about any artist including
+ audio, similar artists, blogs, familiarity, hotttnesss,
+ news, reviews, urls and video.
+ song - search songs by artist, title, description, or attribute
+ (tempo, duration, etc) and get detailed information back
+ about each song, such as hotttnesss, audio_summary, or
+ tracks.
+ track - upload a track to the Echo Nest and receive summary
+ information about the track including key, duration, mode,
+ tempo, time signature along with detailed track info
+ including timbre, pitch, rhythm and loudness information.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">echonest/pyechonest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyechonest/pyechonest-7.2.1.ebuild b/dev-python/pyechonest/pyechonest-7.2.1.ebuild
new file mode 100644
index 00000000000..ca93c148a5b
--- /dev/null
+++ b/dev-python/pyechonest/pyechonest-7.2.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to The Echo Nest APIs"
+HOMEPAGE="http://echonest.github.com/pyechonest/"
+SRC_URI="https://github.com/echonest/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyechonest/pyechonest-9.0.0.ebuild b/dev-python/pyechonest/pyechonest-9.0.0.ebuild
new file mode 100644
index 00000000000..2789ead3a04
--- /dev/null
+++ b/dev-python/pyechonest/pyechonest-9.0.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to The Echo Nest APIs"
+HOMEPAGE="http://echonest.github.com/pyechonest/"
+SRC_URI="https://github.com/echonest/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyelemental/Manifest b/dev-python/pyelemental/Manifest
new file mode 100644
index 00000000000..49c663e8c18
--- /dev/null
+++ b/dev-python/pyelemental/Manifest
@@ -0,0 +1 @@
+DIST pyelemental-1.2.0.tar.bz2 34610 SHA256 83420f754b6700eb585b08a05510e616058a8b0c62ffd1f9dab3eae1df463bc7 SHA512 2053042ed19e73d9fefd1d86d29d6d3f9fbed1b0733273197bf62f908154d96ac4c6f3ca0c314e66fa291ab253e8afcdf514e4fbf3e4ea66741349f45a27b23e WHIRLPOOL cb44b87411c75cb1a1ec09932b1a5c15336063bfac6e430bf6be0415ff820636847b39bfdfffad7c3a1d1017a035895237f556b07ea99b18f0ae228a9ba254e2
diff --git a/dev-python/pyelemental/files/pyelemental-1.2.0-gcc-4.7.patch b/dev-python/pyelemental/files/pyelemental-1.2.0-gcc-4.7.patch
new file mode 100644
index 00000000000..a0a53a67be2
--- /dev/null
+++ b/dev-python/pyelemental/files/pyelemental-1.2.0-gcc-4.7.patch
@@ -0,0 +1,25 @@
+ value-types.tcc | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/value-types.tcc b/value-types.tcc
+index 5afc8d0..a95ccbf 100644
+--- a/value-types.tcc
++++ b/value-types.tcc
+@@ -44,7 +44,7 @@ ValueType_t (bool)::ready (PyObject* module)
+
+ ValueType_t (PyObject*)::wrap (const cxxtype& source)
+ {
+- return wrap_copy (&type, source);
++ return ValueType::wrap_copy (&type, source);
+ }
+
+
+@@ -160,7 +160,7 @@ ValueListType_t (bool)::ready (PyObject* module)
+
+ ValueListType_t (PyObject*)::wrap (const cxxtype& source)
+ {
+- return wrap_copy (&type, source);
++ return ValueListType::wrap_copy (&type, source);
+ }
+
+
diff --git a/dev-python/pyelemental/metadata.xml b/dev-python/pyelemental/metadata.xml
new file mode 100644
index 00000000000..b6b1bfeaddf
--- /dev/null
+++ b/dev-python/pyelemental/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-chemistry</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="freecode">gelemental</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyelemental/pyelemental-1.2.0-r1.ebuild b/dev-python/pyelemental/pyelemental-1.2.0-r1.ebuild
new file mode 100644
index 00000000000..a815361614a
--- /dev/null
+++ b/dev-python/pyelemental/pyelemental-1.2.0-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for libelemental (sci-chemistry/gelemental)"
+HOMEPAGE="http://freecode.com/projects/gelemental/"
+SRC_URI="http://www.kdau.com/files/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=">=sci-chemistry/gelemental-1.2.0"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}"/${P}-gcc-4.7.patch )
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyelftools/Manifest b/dev-python/pyelftools/Manifest
new file mode 100644
index 00000000000..60d5166383b
--- /dev/null
+++ b/dev-python/pyelftools/Manifest
@@ -0,0 +1,3 @@
+DIST pyelftools-0.21.tar.gz 283250 SHA256 a9a10d894c698ab3a2d909c3df1c3d88d0ab03811351c278b3f520204f33d834 SHA512 adddfe10756a26d694bb4a048104b04958337dc7a1ab023e4bb50b7fbf5d66fc5b6c4a077699757adb26bd6ffd8885a1908f3daae3d0acd65a704a11499308d3 WHIRLPOOL 1607c311e7b3ec463afe53b239f84f7b47878a613365c2f8809a15df4e5096d7d702a8dcbc91c357b3d5f28297106abaa16540842ad09a4dc2bdd1a648589389
+DIST pyelftools-0.22.tar.gz 395525 SHA256 9f7dd617b8a577a3834e7dd7f34f49df21c0670e67a48b21add19abe1adffb60 SHA512 10a84d9d0e28cb609f252990fbc05747e0840c5efeeb6890e13076aa2d59780c7d1a5bd6036dee6f8b252a984796a3834183ccab1c1988473bc69646fe56867b WHIRLPOOL eac57cef3f4159deac907394995655e227aa1d034a3b4ec54728531d08ef1b4f8edee33d971a3423b32d08efba621496bb5e778ba090bc264db6d006da4f8842
+DIST pyelftools-0.23.tar.gz 401363 SHA256 fc57aadd096e8f9b9b03f1a9578f673ee645e1513a5ff0192ef439e77eab21de SHA512 47102b2b0c69f357ba1c6af8e45157cd5395a74aaaf10fcccbf5b2d584a494aa16b1f6d08599459ae036f45888cb0fe422cb3241458e6ee0f1e8e1f32b3ae5d0 WHIRLPOOL 1492b08020bb7a106b939c8691f9910949a9d36241a8379f5358832b7b79a6ac1fdac4aaa928d65cd25fe466cb96bb38ef383bd9e79ae5fe0417aad53a1387a4
diff --git a/dev-python/pyelftools/files/pyelftools-0.21-dyntable.patch b/dev-python/pyelftools/files/pyelftools-0.21-dyntable.patch
new file mode 100644
index 00000000000..e43e6cb0a4d
--- /dev/null
+++ b/dev-python/pyelftools/files/pyelftools-0.21-dyntable.patch
@@ -0,0 +1,143 @@
+changeset: 207:92736c403d53
+tag: tip
+user: Mike Frysinger <vapier@gentoo.org>
+date: Mon Apr 22 19:02:21 2013 -0400
+summary: support parsing of dynamic ELFs w/out section headers
+
+At runtime, ELFs do not use the section headers at all. Instead, only
+the program segments and dynamic tags get used. This means you can
+strip the section table completely from an ELF and have it still work.
+
+In practice, people rarely do this, but it's not unheard of. Make the
+Dynamic tags work even in these cases by loading the strings table the
+same way the runtime loader does:
+- parse the symtab address from DT_STRTAB
+- locate the file offset via the program segments
+
+In order to avoid circular deps (parsing a dyntag requires walking parsed
+dyntags), add a set of internal funcs for returning the raw values.
+
+diff --git a/elftools/elf/dynamic.py b/elftools/elf/dynamic.py
+--- a/elftools/elf/dynamic.py
++++ b/elftools/elf/dynamic.py
+@@ -10,11 +10,26 @@
+
+ from .sections import Section
+ from .segments import Segment
+-from ..common.utils import struct_parse
++from ..common.utils import struct_parse, parse_cstring_from_stream
+
+ from .enums import ENUM_D_TAG
+
+
++class _DynamicStringTable(object):
++ """ Bare string table based on values found via ELF dynamic tags and
++ loadable segments only. Good enough for get_string() only.
++ """
++ def __init__(self, stream, table_offset):
++ self._stream = stream
++ self._table_offset = table_offset
++
++ def get_string(self, offset):
++ """ Get the string stored at the given offset in this string table.
++ """
++ return parse_cstring_from_stream(self._stream,
++ self._table_offset + offset)
++
++
+ class DynamicTag(object):
+ """ Dynamic Tag object - representing a single dynamic tag entry from a
+ dynamic section.
+@@ -27,10 +42,9 @@
+ _HANDLED_TAGS = frozenset(
+ ['DT_NEEDED', 'DT_RPATH', 'DT_RUNPATH', 'DT_SONAME'])
+
+- def __init__(self, entry, elffile):
++ def __init__(self, entry, dynstr):
+ self.entry = entry
+- if entry.d_tag in self._HANDLED_TAGS:
+- dynstr = elffile.get_section_by_name(b'.dynstr')
++ if entry.d_tag in self._HANDLED_TAGS and dynstr:
+ setattr(self, entry.d_tag[3:].lower(),
+ dynstr.get_string(self.entry.d_val))
+
+@@ -60,26 +74,66 @@
+ self._num_tags = -1
+ self._offset = position
+ self._tagsize = self._elfstructs.Elf_Dyn.sizeof()
++ self.__string_table = None
++
++ @property
++ def _string_table(self):
++ if self.__string_table:
++ return self.__string_table
++
++ # If the ELF has stripped its section table (which is unusual, but
++ # perfectly valid), we need to use the dynamic tags to locate the
++ # dynamic string table.
++ strtab = None
++ for tag in self._iter_tags(type='DT_STRTAB'):
++ strtab = tag['d_val']
++ break
++ # If we found a dynamic string table, locate the offset in the file
++ # by using the program headers.
++ if strtab:
++ for segment in self._elffile.iter_segments():
++ if (strtab >= segment['p_vaddr'] and
++ strtab < segment['p_vaddr'] + segment['p_filesz']):
++ self.__string_table = _DynamicStringTable(
++ self._stream,
++ segment['p_offset'] + (strtab - segment['p_vaddr']))
++ return self.__string_table
++
++ # That didn't work for some reason. Let's use the section header
++ # even though this ELF is super weird.
++ self.__string_table = self._elffile.get_section_by_name(b'.dynstr')
++
++ return self.__string_table
++
++ def _iter_tags(self, type=None):
++ """ Yield all raw tags (limit to |type| if specified)
++ """
++ for n in itertools.count():
++ tag = self._get_tag(n)
++ if type is None or tag['d_tag'] == type:
++ yield tag
++ if tag['d_tag'] == 'DT_NULL':
++ break
+
+ def iter_tags(self, type=None):
+ """ Yield all tags (limit to |type| if specified)
+ """
+- for n in itertools.count():
+- tag = self.get_tag(n)
+- if type is None or tag.entry.d_tag == type:
+- yield tag
+- if tag.entry.d_tag == 'DT_NULL':
+- break
++ for tag in self._iter_tags(type=type):
++ yield DynamicTag(tag, self._string_table)
++
++ def _get_tag(self, n):
++ """ Get the raw tag at index #n from the file
++ """
++ offset = self._offset + n * self._tagsize
++ return struct_parse(
++ self._elfstructs.Elf_Dyn,
++ self._stream,
++ stream_pos=offset)
+
+ def get_tag(self, n):
+ """ Get the tag at index #n from the file (DynamicTag object)
+ """
+- offset = self._offset + n * self._tagsize
+- entry = struct_parse(
+- self._elfstructs.Elf_Dyn,
+- self._stream,
+- stream_pos=offset)
+- return DynamicTag(entry, self._elffile)
++ return DynamicTag(self._get_tag(n), self._string_table)
+
+ def num_tags(self):
+ """ Number of dynamic tags in the file
+
diff --git a/dev-python/pyelftools/files/pyelftools-0.22-dyntable.patch b/dev-python/pyelftools/files/pyelftools-0.22-dyntable.patch
new file mode 100644
index 00000000000..7f773049982
--- /dev/null
+++ b/dev-python/pyelftools/files/pyelftools-0.22-dyntable.patch
@@ -0,0 +1,153 @@
+From b3157177bde20a2b0d0ada7b2ba44144ee5aea6f Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 9 Jun 2013 18:42:40 -0400
+Subject: [PATCH] support parsing of dynamic ELFs w/out section headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+At runtime, ELFs do not use the section headers at all. Instead, only
+the program segments and dynamic tags get used. This means you can
+strip the section table completely from an ELF and have it still work.
+
+In practice, people rarely do this, but it's not unheard of. Make the
+Dynamic tags work even in these cases by loading the strings table the
+same way the runtime loader does:
+ * parse the symtab address from DT_STRTAB
+ * locate the file offset via the program segments
+
+In order to avoid circular deps (parsing a dyntag requires walking parsed
+dyntags), add a set of internal funcs for returning the raw values.
+
+You can see this in action:
+$ eu-strip -g --strip-sections a.out
+$ readelf -S a.out
+<nothing>
+$ lddtree.py ./a.out
+a.out (interpreter => /lib64/ld-linux-x86-64.so.2)
+ libïäöëß.so => None
+ libc.so.6 => /lib64/libc.so.6
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ elftools/elf/dynamic.py | 81 ++++++++++++++++++---
+ test/test_dynamic.py | 28 ++++++-
+ .../aarch64_super_stripped.elf | Bin 0 -> 4136 bytes
+ 3 files changed, 97 insertions(+), 12 deletions(-)
+ create mode 100755 test/testfiles_for_unittests/aarch64_super_stripped.elf
+
+diff --git a/elftools/elf/dynamic.py b/elftools/elf/dynamic.py
+index d9db870..ad5111f 100644
+--- a/elftools/elf/dynamic.py
++++ b/elftools/elf/dynamic.py
+@@ -11,9 +11,22 @@ import itertools
+ from .sections import Section
+ from .segments import Segment
+ from ..common.exceptions import ELFError
+-from ..common.utils import struct_parse
+-
+-from .enums import ENUM_D_TAG
++from ..common.utils import struct_parse, parse_cstring_from_stream
++
++
++class _DynamicStringTable(object):
++ """ Bare string table based on values found via ELF dynamic tags and
++ loadable segments only. Good enough for get_string() only.
++ """
++ def __init__(self, stream, table_offset):
++ self._stream = stream
++ self._table_offset = table_offset
++
++ def get_string(self, offset):
++ """ Get the string stored at the given offset in this string table.
++ """
++ return parse_cstring_from_stream(self._stream,
++ self._table_offset + offset)
+
+
+ class DynamicTag(object):
+@@ -61,27 +76,71 @@ class Dynamic(object):
+ self._num_tags = -1
+ self._offset = position
+ self._tagsize = self._elfstructs.Elf_Dyn.sizeof()
+- self._stringtable = stringtable
++ self.__stringtable = stringtable
+
+- def iter_tags(self, type=None):
+- """ Yield all tags (limit to |type| if specified)
++ @property
++ def _stringtable(self):
++ """ Return a string table for looking up dynamic tag related strings.
++
++ This won't be a "full" string table object, but will at least support
++ the get_string() function.
++ """
++ if self.__stringtable:
++ return self.__stringtable
++
++ # If the ELF has stripped its section table (which is unusual, but
++ # perfectly valid), we need to use the dynamic tags to locate the
++ # dynamic string table.
++ strtab = None
++ for tag in self._iter_tags(type='DT_STRTAB'):
++ strtab = tag['d_val']
++ break
++ # If we found a dynamic string table, locate the offset in the file
++ # by using the program headers.
++ if strtab:
++ for segment in self._elffile.iter_segments():
++ if (strtab >= segment['p_vaddr'] and
++ strtab < segment['p_vaddr'] + segment['p_filesz']):
++ self.__stringtable = _DynamicStringTable(
++ self._stream,
++ segment['p_offset'] + (strtab - segment['p_vaddr']))
++ return self.__stringtable
++
++ # That didn't work for some reason. Let's use the section header
++ # even though this ELF is super weird.
++ self.__stringtable = self._elffile.get_section_by_name(b'.dynstr')
++
++ return self.__stringtable
++
++ def _iter_tags(self, type=None):
++ """ Yield all raw tags (limit to |type| if specified)
+ """
+ for n in itertools.count():
+- tag = self.get_tag(n)
+- if type is None or tag.entry.d_tag == type:
++ tag = self._get_tag(n)
++ if type is None or tag['d_tag'] == type:
+ yield tag
+- if tag.entry.d_tag == 'DT_NULL':
++ if tag['d_tag'] == 'DT_NULL':
+ break
+
+- def get_tag(self, n):
+- """ Get the tag at index #n from the file (DynamicTag object)
++ def iter_tags(self, type=None):
++ """ Yield all tags (limit to |type| if specified)
++ """
++ for tag in self._iter_tags(type=type):
++ yield DynamicTag(tag, self._stringtable)
++
++ def _get_tag(self, n):
++ """ Get the raw tag at index #n from the file
+ """
+ offset = self._offset + n * self._tagsize
+- entry = struct_parse(
++ return struct_parse(
+ self._elfstructs.Elf_Dyn,
+ self._stream,
+ stream_pos=offset)
+- return DynamicTag(entry, self._stringtable)
++
++ def get_tag(self, n):
++ """ Get the tag at index #n from the file (DynamicTag object)
++ """
++ return DynamicTag(self._get_tag(n), self._stringtable)
+
+ def num_tags(self):
+ """ Number of dynamic tags in the file
+--
+2.0.0
+
diff --git a/dev-python/pyelftools/files/pyelftools-0.22-grace-string-dyn.patch b/dev-python/pyelftools/files/pyelftools-0.22-grace-string-dyn.patch
new file mode 100644
index 00000000000..1c9552d0272
--- /dev/null
+++ b/dev-python/pyelftools/files/pyelftools-0.22-grace-string-dyn.patch
@@ -0,0 +1,75 @@
+From 80305ad20ebd481dde19fa7ff2d90249269aa588 Mon Sep 17 00:00:00 2001
+From: Eli Bendersky <eliben@gmail.com>
+Date: Wed, 23 Apr 2014 16:44:11 -0700
+Subject: [PATCH] Issue #29: Fail more gracefully when no string table is found
+ for dynamic.
+
+---
+ elftools/elf/dynamic.py | 4 ++++
+ test/test_dynamic.py | 25 +++++++++++++++++++++++++
+ 2 files changed, 29 insertions(+)
+ create mode 100644 test/test_dynamic.py
+
+diff --git a/elftools/elf/dynamic.py b/elftools/elf/dynamic.py
+index e36598e..6f88bf9 100644
+--- a/elftools/elf/dynamic.py
++++ b/elftools/elf/dynamic.py
+@@ -10,6 +10,7 @@ import itertools
+
+ from .sections import Section
+ from .segments import Segment
++from ..common.exceptions import ELFError
+ from ..common.utils import struct_parse
+
+ from .enums import ENUM_D_TAG
+@@ -29,6 +30,8 @@ class DynamicTag(object):
+ 'DT_SUNW_FILTER'])
+
+ def __init__(self, entry, stringtable):
++ if stringtable is None:
++ raise ELFError('Creating DynamicTag without string table')
+ self.entry = entry
+ if entry.d_tag in self._HANDLED_TAGS:
+ setattr(self, entry.d_tag[3:].lower(),
+@@ -114,6 +117,7 @@ class DynamicSegment(Segment, Dynamic):
+ # So we must look for the dynamic section contained in the dynamic
+ # segment, we do so by searching for the dynamic section whose content
+ # is located at the same offset as the dynamic segment
++ stringtable = None
+ for section in elffile.iter_sections():
+ if (isinstance(section, DynamicSection) and
+ section['sh_offset'] == header['p_offset']):
+diff --git a/test/test_dynamic.py b/test/test_dynamic.py
+new file mode 100644
+index 0000000..0ee9b35
+--- /dev/null
++++ b/test/test_dynamic.py
+@@ -0,0 +1,25 @@
++#-------------------------------------------------------------------------------
++# elftools tests
++#
++# Eli Bendersky (eliben@gmail.com)
++# This code is in the public domain
++#-------------------------------------------------------------------------------
++try:
++ import unittest2 as unittest
++except ImportError:
++ import unittest
++import os
++
++from utils import setup_syspath; setup_syspath()
++from elftools.common.exceptions import ELFError
++from elftools.elf.dynamic import DynamicTag
++
++
++class TestDynamicTag(unittest.TestCase):
++ def test_requires_stringtable(self):
++ with self.assertRaises(ELFError):
++ dt = DynamicTag('', None)
++
++
++if __name__ == '__main__':
++ unittest.main()
+--
+2.0.0
+
diff --git a/dev-python/pyelftools/metadata.xml b/dev-python/pyelftools/metadata.xml
new file mode 100644
index 00000000000..ec397e2251e
--- /dev/null
+++ b/dev-python/pyelftools/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyelftools</remote-id>
+ <remote-id type="github">eliben/pyelftools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyelftools/pyelftools-0.21-r4.ebuild b/dev-python/pyelftools/pyelftools-0.21-r4.ebuild
new file mode 100644
index 00000000000..778f664f9c8
--- /dev/null
+++ b/dev-python/pyelftools/pyelftools-0.21-r4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+inherit distutils-r1
+
+DESCRIPTION="pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+HOMEPAGE="http://pypi.python.org/pypi/pyelftools https://github.com/eliben/pyelftools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~amd64-linux ~sparc-fbsd ~x86-fbsd ~x86-linux"
+IUSE=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-dyntable.patch
+}
+
+python_test() {
+ # readelf_tests often fails due to host `readelf` changing output format
+ local t
+ for t in all_unittests examples_test ; do
+ "${PYTHON}" ./test/run_${t}.py || die "Tests fail with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/pyelftools/pyelftools-0.22.ebuild b/dev-python/pyelftools/pyelftools-0.22.ebuild
new file mode 100644
index 00000000000..7e97efcb9b2
--- /dev/null
+++ b/dev-python/pyelftools/pyelftools-0.22.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+HOMEPAGE="http://pypi.python.org/pypi/pyelftools https://github.com/eliben/pyelftools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-grace-string-dyn.patch
+ "${FILESDIR}"/${P}-dyntable.patch
+)
+
+python_test() {
+ # readelf_tests often fails due to host `readelf` changing output format
+ local t
+ for t in all_unittests examples_test ; do
+ "${PYTHON}" ./test/run_${t}.py || die "Tests fail with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyelftools/pyelftools-0.23-r1.ebuild b/dev-python/pyelftools/pyelftools-0.23-r1.ebuild
new file mode 100644
index 00000000000..6ce449e729f
--- /dev/null
+++ b/dev-python/pyelftools/pyelftools-0.23-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+HOMEPAGE="http://pypi.python.org/pypi/pyelftools https://github.com/eliben/pyelftools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+python_test() {
+ # readelf_tests often fails due to host `readelf` changing output format
+ local t
+ for t in all_unittests examples_test ; do
+ "${PYTHON}" ./test/run_${t}.py || die "Tests fail with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyelftools/pyelftools-0.23.ebuild b/dev-python/pyelftools/pyelftools-0.23.ebuild
new file mode 100644
index 00000000000..afaebf9bd7d
--- /dev/null
+++ b/dev-python/pyelftools/pyelftools-0.23.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+HOMEPAGE="http://pypi.python.org/pypi/pyelftools https://github.com/eliben/pyelftools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+python_test() {
+ # readelf_tests often fails due to host `readelf` changing output format
+ local t
+ for t in all_unittests examples_test ; do
+ "${PYTHON}" ./test/run_${t}.py || die "Tests fail with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyemf/Manifest b/dev-python/pyemf/Manifest
new file mode 100644
index 00000000000..89675fe6b73
--- /dev/null
+++ b/dev-python/pyemf/Manifest
@@ -0,0 +1 @@
+DIST pyemf-2.0.0.tar.gz 194995 SHA256 6960341434b9683926fba01f1fd81738234848c3f25883fa44c84b9833cf2354 SHA512 013f96356d48db95f9f6f89167d99573e40d8c594b3f6e3183b50d784b653b508662e3b652f8a76dccabeb3933009a06d5786e156284520683d6b3747f2dec66 WHIRLPOOL efdedb5e7707ff95cd628a837ee8e2a397f1b78444083feeeb22d9d621281cd4be934a3b2d85f08a6b7427b3c3463cbc5c2b0a2ee801b72bad0dfaaf50bb5404
diff --git a/dev-python/pyemf/metadata.xml b/dev-python/pyemf/metadata.xml
new file mode 100644
index 00000000000..6de9012edfe
--- /dev/null
+++ b/dev-python/pyemf/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ pyemf is a pure python module that provides a cross-platform ability
+ to generate enhanced metafiles (.emf files), a vector graphics
+ format defined by the ECMA-234 standard. Enhanced metafiles are a
+ natively supported image and scalable clip-art format in the
+ OpenOffice suite of tools and in Windows applications.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pyemf</remote-id>
+ <remote-id type="sourceforge">pyemf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyemf/pyemf-2.0.0.ebuild b/dev-python/pyemf/pyemf-2.0.0.ebuild
new file mode 100644
index 00000000000..c04d472a98c
--- /dev/null
+++ b/dev-python/pyemf/pyemf-2.0.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="Pure Python Enhanced Metafile Library"
+HOMEPAGE="http://pyemf.sf.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pyenchant/Manifest b/dev-python/pyenchant/Manifest
new file mode 100644
index 00000000000..5a20ccddc44
--- /dev/null
+++ b/dev-python/pyenchant/Manifest
@@ -0,0 +1 @@
+DIST pyenchant-1.6.6.tar.gz 64010 SHA256 25c9d2667d512f8fc4410465fdd2e868377ca07eb3d56e2b6e534a86281d64d3 SHA512 af6aa1ac77b5718ec4b4aad3d0b88d26e697b472ec8261b23b37fdbf6b399a120ccc3e4ee6579b884c44b0eeb3f95bcdbceea189105c05088a48400a0c8cdb90 WHIRLPOOL 72f6be0f5012fe467395aa9e55378d1aafcdab45e75d2ea2fb8b9bff9ab6aaccbe36806074381ed7c4703dcc93bcc24caf29830302b8986e89ffc29eb0b5042e
diff --git a/dev-python/pyenchant/files/pyenchant-setup.patch b/dev-python/pyenchant/files/pyenchant-setup.patch
new file mode 100644
index 00000000000..757b759b714
--- /dev/null
+++ b/dev-python/pyenchant/files/pyenchant-setup.patch
@@ -0,0 +1,11 @@
+--- a/setup.py
++++ b/setup.py
+@@ -6,8 +6,6 @@
+ #
+
+
+-import distribute_setup
+-distribute_setup.use_setuptools()
+ from setuptools import setup, find_packages, Extension
+ from distutils.archive_util import make_archive
+
diff --git a/dev-python/pyenchant/metadata.xml b/dev-python/pyenchant/metadata.xml
new file mode 100644
index 00000000000..9ce38b641ca
--- /dev/null
+++ b/dev-python/pyenchant/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">PyEnchant is a set of language bindings and some wrapper classes to
+ make the excellent Enchant spellchecker available as a Python
+ module. The bindings are generated using SWIG. It includes all the
+ functionality of Enchant with the flexibility of Python and a nice
+ 'Pythonic' object-oriented interface. It also aims to provide some
+ higher-level functionality than is available in the C API.</longdescription>
+ <upstream>
+ <remote-id type="pypi">pyenchant</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyenchant/pyenchant-1.6.6.ebuild b/dev-python/pyenchant/pyenchant-1.6.6.ebuild
new file mode 100644
index 00000000000..948f2d38430
--- /dev/null
+++ b/dev-python/pyenchant/pyenchant-1.6.6.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the Enchant spellchecking system"
+HOMEPAGE="http://pyenchant.sourceforge.net http://pypi.python.org/pypi/pyenchant"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 hppa ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="
+ >=app-text/enchant-${PV%.*}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ if [[ -n "$(LC_ALL="en_US.UTF-8" bash -c "" 2>&1)" ]]; then
+ ewarn "Disabling tests due to missing en_US.UTF-8 locale"
+ else
+ esetup.py test
+ fi
+}
diff --git a/dev-python/pyev/Manifest b/dev-python/pyev/Manifest
new file mode 100644
index 00000000000..5f9d1f5dd18
--- /dev/null
+++ b/dev-python/pyev/Manifest
@@ -0,0 +1,2 @@
+DIST pyev-0.8.1-4.04.tar.gz 623423 SHA256 5e634953c08d27141f7e64c0c85fb64ea9756545309073ea8cd5b0a7050950e5 SHA512 59fd8564445822c12032889c826ad148b15544462aa72d4658cc5887b5af3542e399d2d47767f935f8638836f9ba954e4c8ceef6f5f630e3ee035ba96d339e1d WHIRLPOOL a66bca355e6ff05730fd9ba51c66d6dd7bd343fa5ddfe83fb5f6a3cd1bf1216d8916249cc9f0310f2db37ad44a3bbc66547fa59fc5aca88e401f9f10f64be443
+DIST pyev-0.9.0.tar.gz 223943 SHA256 5d030a993cb0e9a74034e57b2e1e3f6378f25083bb886583badf68c0e800c665 SHA512 05eafd70b843be8ee84a9a384fea9f222445930de00c5a6ac38c6e798f22165914fab3825be8e98e84fa68fdfe9e477718190a6939737667868b4badeb1eafa8 WHIRLPOOL d89da560e0ab96996ec05b629ec5eb9f8c9efcbb147411658fad89e9a77aaa3e70a6c8b20bd0b2ad99619a363e0335a154de2fe1a519184cdc4e02343a077687
diff --git a/dev-python/pyev/metadata.xml b/dev-python/pyev/metadata.xml
new file mode 100644
index 00000000000..8f4c7f40ad1
--- /dev/null
+++ b/dev-python/pyev/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>dlan@gentoo.org</email>
+ <name>Yixun Lan</name>
+ </maintainer>
+ <longdescription lang="en">
+ Pyev is the python interface of <pkg>dev-libs/libev</pkg>
+ which provides event loop, support select, poll, the
+ Linux-specific epoll, and so on.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pyev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyev/pyev-0.8.1.ebuild b/dev-python/pyev/pyev-0.8.1.ebuild
new file mode 100644
index 00000000000..2544879d442
--- /dev/null
+++ b/dev-python/pyev/pyev-0.8.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_P=${P}-4.04
+
+DESCRIPTION="Python libev interface, an event loop"
+HOMEPAGE="http://code.google.com/p/pyev/
+ http://pythonhosted.org/pyev/"
+SRC_URI="mirror://pypi/p/pyev/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+RDEPEND="dev-libs/libev
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}"
+
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+HTML_DOCS=( doc/. )
+
+python_prepare() {
+ distutils-r1_python_prepare
+}
diff --git a/dev-python/pyev/pyev-0.9.0.ebuild b/dev-python/pyev/pyev-0.9.0.ebuild
new file mode 100644
index 00000000000..76f012323c8
--- /dev/null
+++ b/dev-python/pyev/pyev-0.9.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python libev interface, an event loop"
+HOMEPAGE="http://code.google.com/p/pyev/
+ http://pythonhosted.org/pyev/"
+SRC_URI="mirror://pypi/p/pyev/${P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/libev"
+
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+HTML_DOCS=( doc/. )
diff --git a/dev-python/pyface/Manifest b/dev-python/pyface/Manifest
new file mode 100644
index 00000000000..66375a48864
--- /dev/null
+++ b/dev-python/pyface/Manifest
@@ -0,0 +1,2 @@
+DIST pyface-4.3.0.tar.gz 5062628 SHA256 e95e1991231a269324e59ecb0950a3d3ce4aa0cd1ab40d0b301cc8324e502d75 SHA512 14ef540408b5258bdb2efd97873f5c9cbc7ab0110c5a5c71ed5ebcf9b8cd8abbc011666fbacb99ce5bb2ac0ae55dbef731a32ec32cb9bb94107203e6a43862fc WHIRLPOOL 0fa3e35966cf941ca34bafdc2fed551b2b9a1d105f9c3daa2ea2ee8040cf9b491921d67cb007083a063f1c97695855cf4785511353df199bf26250d2242ac202
+DIST pyface-4.4.0.tar.gz 486490 SHA256 270bc35a5364681b78569619917e1b5890150c882b455b52578f0c0752f3d3fc SHA512 62c93cbd5e956d56c03580876d5f9191210beb3d81cf8fcd0dfc6b2919263e4bf01219f1372e292fcac4462eaffb45cf9cde62dbe16265134b357dabc47d719d WHIRLPOOL 0596a09dad5a026c5726ef18b2c507a8adba1c2783d91f81cae0d5238b0d206f8486120c11824e6494153314749cfb812434e5e7c5ccd29cd231b2b2c9460aab
diff --git a/dev-python/pyface/metadata.xml b/dev-python/pyface/metadata.xml
new file mode 100644
index 00000000000..9acace48f16
--- /dev/null
+++ b/dev-python/pyface/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The pyface project contains a toolkit-independent GUI abstraction
+ layer, which is used to support the "visualization" features of the
+ Traits package. Thus, you can write code in terms of the Traits API
+ (views, items, editors, etc.), and let pyface and your selected
+ toolkit and back-end take care of the details of displaying them.
+ The following GUI backends are supported:
+ * wxPython
+ * PyQt
+ * PySide
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pyface</remote-id>
+ <remote-id type="github">enthought/pyface</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyface/pyface-4.3.0-r1.ebuild b/dev-python/pyface/pyface-4.3.0-r1.ebuild
new file mode 100644
index 00000000000..7dab97ae079
--- /dev/null
+++ b/dev-python/pyface/pyface-4.3.0-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# https://github.com/enthought/pyface/issues/40 confirms only py2.7
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Traits-capable windowing framework"
+HOMEPAGE="https://github.com/enthought/pyface http://pypi.python.org/pypi/pyface"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=dev-python/traits-4.1[${PYTHON_USEDEP}]
+ || (
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP}]
+ )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ dev-python/traitsui[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ )"
+
+DOCS=( docs/*.txt )
+
+python_compile_all() {
+ use doc && virtualmake -C docs html
+}
+
+python_test() {
+ export ETS_TOOLKIT=qt4
+ export QT_API=pyqt
+ # set nosetests to ignore tests unpassable by these vars.
+ VIRTUALX_COMMAND="nosetests" virtualmake -v -I 'composite_grid_model_test_case*' \
+ -I 'simple_grid_model_test_case*' \
+ -I 'test_split_editor_area_pane*'
+}
+
+python_install_all() {
+ find -name "*LICENSE*.txt" -delete
+ use doc && dohtml -r docs/build/html/*
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pyface/pyface-4.4.0.ebuild b/dev-python/pyface/pyface-4.4.0.ebuild
new file mode 100644
index 00000000000..72fc2ef1f69
--- /dev/null
+++ b/dev-python/pyface/pyface-4.4.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# https://github.com/enthought/pyface/issues/40 confirms only py2.7
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Traits-capable windowing framework"
+HOMEPAGE="https://github.com/enthought/pyface"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/traits-4.1[${PYTHON_USEDEP}]
+ || (
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP}]
+ )"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ dev-python/traitsui[${PYTHON_USEDEP}]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ )"
+
+python_test() {
+ export ETS_TOOLKIT=qt4
+ export QT_API=pyqt
+ # set nosetests to ignore tests unpassable by these vars.
+ VIRTUALX_COMMAND="nosetests" virtualmake -v -I 'composite_grid_model_test_case*' \
+ -I 'simple_grid_model_test_case*' \
+ -I 'test_split_editor_area_pane*'
+}
diff --git a/dev-python/pyfeyn/Manifest b/dev-python/pyfeyn/Manifest
new file mode 100644
index 00000000000..7f4aad713d4
--- /dev/null
+++ b/dev-python/pyfeyn/Manifest
@@ -0,0 +1 @@
+DIST pyfeyn-0.3.4.tar.gz 27074 SHA256 6b1d86606b9b61cfc6285aec4a15202f60a819368b3e74fc13a586835f22da6e SHA512 b0ce1939d893df3af060cc64d11c2bb09f22c99b074aefe0e79d820ee4c6b5c64f4e8de8f4c31020b33735627b2dead9a70ea9d3504773417a058ac7a1915db8 WHIRLPOOL 6d303b0c941f7d698d4f8ca4d0286be74291392700eec6d63dbec9d9d0db22f77d790022d49176b0dbbb25bc6b44e4360dcf1a4821cb9806de0baf24dfcbebbf
diff --git a/dev-python/pyfeyn/files/pyfeyn-0.3.4.patch b/dev-python/pyfeyn/files/pyfeyn-0.3.4.patch
new file mode 100644
index 00000000000..0017bdd8166
--- /dev/null
+++ b/dev-python/pyfeyn/files/pyfeyn-0.3.4.patch
@@ -0,0 +1,16 @@
+diff -r -U2 pyfeyn-0.3.4.orig/pyfeyn/lines.py pyfeyn-0.3.4/pyfeyn/lines.py
+--- pyfeyn-0.3.4.orig/pyfeyn/lines.py 2014-03-06 23:12:24.000000000 +0700
++++ pyfeyn-0.3.4/pyfeyn/lines.py 2014-05-14 21:45:49.356935407 +0700
+@@ -117,8 +117,12 @@
+ """Make this line a straight line between start and end."""
+ self.arcthrupoint = None
++ return self
+
+
+ def bend(self, amount):
+ """Bend the line to the right by a given distance."""
++ if amount==0:
++ self.arcthrupoint = None
++ return self
+ middle = self.p1.midpoint(self.p2)
+ nx = (middle.y() - self.p1.y()) / abs(self.p1.distance(middle))
diff --git a/dev-python/pyfeyn/metadata.xml b/dev-python/pyfeyn/metadata.xml
new file mode 100644
index 00000000000..ce523852f6d
--- /dev/null
+++ b/dev-python/pyfeyn/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>Python package for drawing Feynman diagrams
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pyfeyn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyfeyn/pyfeyn-0.3.4-r1.ebuild b/dev-python/pyfeyn/pyfeyn-0.3.4-r1.ebuild
new file mode 100644
index 00000000000..7b4bbab094e
--- /dev/null
+++ b/dev-python/pyfeyn/pyfeyn-0.3.4-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package for drawing Feynman diagrams"
+HOMEPAGE="http://pyfeyn.hepforge.org/ https://pypi.python.org/pypi/pyfeyn/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="latex"
+
+DEPEND=""
+RDEPEND="dev-python/pyx[${PYTHON_USEDEP}]
+ latex? ( dev-texlive/texlive-science )"
+
+PATCHES=( "${FILESDIR}"/${P}.patch )
diff --git a/dev-python/pyfire/Manifest b/dev-python/pyfire/Manifest
new file mode 100644
index 00000000000..da9c98adf38
--- /dev/null
+++ b/dev-python/pyfire/Manifest
@@ -0,0 +1 @@
+DIST pyfire-0.3.4.tar.gz 15432 SHA256 cd7518f9277080423960205bc7b673648c939f250ad8f3e8d743b582a73ca963 SHA512 91dac47595b74cd1275f3c4e6e9717447605eb7576a94f2478b33de42e8d9e12f147a3759aec6801bb590cb8fe366cd23dfa0544adffea6dccd93ffe4ff399a8 WHIRLPOOL 9c395685e1d87e921e348ca8c59c9145928928b7678d61a5081be3d02e407b558a9292a1fae0334eb53bd0ff8ef8741621f18159d83015f2225758590bce393e
diff --git a/dev-python/pyfire/metadata.xml b/dev-python/pyfire/metadata.xml
new file mode 100644
index 00000000000..ac05301984f
--- /dev/null
+++ b/dev-python/pyfire/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyfire</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyfire/pyfire-0.3.4-r1.ebuild b/dev-python/pyfire/pyfire-0.3.4-r1.ebuild
new file mode 100644
index 00000000000..f067827a227
--- /dev/null
+++ b/dev-python/pyfire/pyfire-0.3.4-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="A python implementation of the Campfire API"
+HOMEPAGE="http://www.pyfire.org/"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pyfits/Manifest b/dev-python/pyfits/Manifest
new file mode 100644
index 00000000000..6346f5982dc
--- /dev/null
+++ b/dev-python/pyfits/Manifest
@@ -0,0 +1,2 @@
+DIST pyfits-2.4.0.tar.gz 284236 SHA256 40c21106b86ad01264780409ecb2c8102e80c3eaf2085224f370fc7b3b07ea22 SHA512 cdbcf8b4e178cde8723eb9386a52e59c9d66462479491d0b0ae1d436c91cc476748c00e837477acf9a46791cd4a7517ff649434c33c225ba8a396148e4485fa1 WHIRLPOOL 2c22a63bd180ad68bf3001d539c403147eecc01dc5537f9c1b0be582c79dd87297f91f33809dec6c9f5906396d409af5b4495ef0b68fe6cc03d816a51a286e50
+DIST pyfits-3.3.tar.gz 1646403 SHA256 becb6dcc7e443138b9d239db7a0e8ad939e6e047c2c9ca86e84d0672da425fa1 SHA512 561fe61050e61745054e0e4712c4413e129293b062d2020219b61d648d7093ce6952e1f26da955a1bf570f76ba7eddeb1805c99f679300b072ef6bacc2e4c90a WHIRLPOOL 9b4b5dd236713359a9441e4179486e4b56ec11b7fc25c3abb59d30a6267fe87496601778731ba7ff92c55243621aa58ca493821b83224fde41a79f18c21e485b
diff --git a/dev-python/pyfits/files/pyfits-3.2-unbundle-cfitsio.patch b/dev-python/pyfits/files/pyfits-3.2-unbundle-cfitsio.patch
new file mode 100644
index 00000000000..28d14982490
--- /dev/null
+++ b/dev-python/pyfits/files/pyfits-3.2-unbundle-cfitsio.patch
@@ -0,0 +1,97 @@
+--- pyfits-3.2.orig/setup.cfg 2014-02-05 14:11:01.244895447 -0800
++++ pyfits-3.2/setup.cfg 2014-02-05 14:28:44.175030178 -0800
+@@ -36,91 +36,12 @@
+
+ [extension=pyfits.compression]
+ sources =
+- cextern/cfitsio/adler32.c
+- cextern/cfitsio/buffers.c
+- cextern/cfitsio/cfileio.c
+- cextern/cfitsio/checksum.c
+- cextern/cfitsio/crc32.c
+- cextern/cfitsio/deflate.c
+- cextern/cfitsio/drvrfile.c
+- cextern/cfitsio/drvrgsiftp.c
+- cextern/cfitsio/drvrmem.c
+- cextern/cfitsio/drvrnet.c
+- cextern/cfitsio/drvrsmem.c
+- cextern/cfitsio/editcol.c
+- cextern/cfitsio/edithdu.c
+- cextern/cfitsio/eval_f.c
+- cextern/cfitsio/eval_l.c
+- cextern/cfitsio/eval_y.c
+- cextern/cfitsio/fitscore.c
+- cextern/cfitsio/fits_hcompress.c
+- cextern/cfitsio/fits_hdecompress.c
+- cextern/cfitsio/getcolb.c
+- cextern/cfitsio/getcol.c
+- cextern/cfitsio/getcold.c
+- cextern/cfitsio/getcole.c
+- cextern/cfitsio/getcoli.c
+- cextern/cfitsio/getcolj.c
+- cextern/cfitsio/getcolk.c
+- cextern/cfitsio/getcoll.c
+- cextern/cfitsio/getcolsb.c
+- cextern/cfitsio/getcols.c
+- cextern/cfitsio/getcolui.c
+- cextern/cfitsio/getcoluj.c
+- cextern/cfitsio/getcoluk.c
+- cextern/cfitsio/getkey.c
+- cextern/cfitsio/group.c
+- cextern/cfitsio/grparser.c
+- cextern/cfitsio/histo.c
+- cextern/cfitsio/imcompress.c
+- cextern/cfitsio/infback.c
+- cextern/cfitsio/inffast.c
+- cextern/cfitsio/inflate.c
+- cextern/cfitsio/inftrees.c
+- cextern/cfitsio/iraffits.c
+- cextern/cfitsio/modkey.c
+- cextern/cfitsio/pliocomp.c
+- cextern/cfitsio/putcolb.c
+- cextern/cfitsio/putcol.c
+- cextern/cfitsio/putcold.c
+- cextern/cfitsio/putcole.c
+- cextern/cfitsio/putcoli.c
+- cextern/cfitsio/putcolj.c
+- cextern/cfitsio/putcolk.c
+- cextern/cfitsio/putcoll.c
+- cextern/cfitsio/putcolsb.c
+- cextern/cfitsio/putcols.c
+- cextern/cfitsio/putcolu.c
+- cextern/cfitsio/putcolui.c
+- cextern/cfitsio/putcoluj.c
+- cextern/cfitsio/putcoluk.c
+- cextern/cfitsio/putkey.c
+- cextern/cfitsio/quantize.c
+- cextern/cfitsio/region.c
+- cextern/cfitsio/ricecomp.c
+- cextern/cfitsio/scalnull.c
+- cextern/cfitsio/swapproc.c
+- cextern/cfitsio/trees.c
+- cextern/cfitsio/uncompr.c
+- cextern/cfitsio/wcssub.c
+- cextern/cfitsio/wcsutil.c
+- cextern/cfitsio/zcompress.c
+- cextern/cfitsio/zuncompress.c
+- cextern/cfitsio/zutil.c
+ src/compressionmodule.c
+ include_dirs =
+ numpy
+- cextern/cfitsio
+-extra_compile_args =
+- -Wno-unused-variable
+- -Wno-parentheses
+- -Wno-uninitialized
+- -Wno-format
+- -Wno-strict-prototypes
+- -Wno-unused
+- -Wno-comments
+- -Wno-switch
+-optional = True
++libraries =
++ cfitsio
++optional = False
+ fail_message =
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Failed to build PyFITS tile compression support. PyFITS will still
diff --git a/dev-python/pyfits/files/pyfits-3.2.1-unbundle-cfitsio.patch b/dev-python/pyfits/files/pyfits-3.2.1-unbundle-cfitsio.patch
new file mode 100644
index 00000000000..a5d7e621748
--- /dev/null
+++ b/dev-python/pyfits/files/pyfits-3.2.1-unbundle-cfitsio.patch
@@ -0,0 +1,98 @@
+--- setup.cfg.orig 2014-03-10 10:50:38.200531959 -0700
++++ setup.cfg 2014-03-10 10:52:19.288232002 -0700
+@@ -36,92 +36,12 @@
+
+ [extension=pyfits.compression]
+ sources =
+- cextern/cfitsio/adler32.c
+- cextern/cfitsio/buffers.c
+- cextern/cfitsio/cfileio.c
+- cextern/cfitsio/checksum.c
+- cextern/cfitsio/crc32.c
+- cextern/cfitsio/deflate.c
+- cextern/cfitsio/drvrfile.c
+- cextern/cfitsio/drvrgsiftp.c
+- cextern/cfitsio/drvrmem.c
+- cextern/cfitsio/drvrnet.c
+- cextern/cfitsio/drvrsmem.c
+- cextern/cfitsio/editcol.c
+- cextern/cfitsio/edithdu.c
+- cextern/cfitsio/eval_f.c
+- cextern/cfitsio/eval_l.c
+- cextern/cfitsio/eval_y.c
+- cextern/cfitsio/fitscore.c
+- cextern/cfitsio/fits_hcompress.c
+- cextern/cfitsio/fits_hdecompress.c
+- cextern/cfitsio/getcolb.c
+- cextern/cfitsio/getcol.c
+- cextern/cfitsio/getcold.c
+- cextern/cfitsio/getcole.c
+- cextern/cfitsio/getcoli.c
+- cextern/cfitsio/getcolj.c
+- cextern/cfitsio/getcolk.c
+- cextern/cfitsio/getcoll.c
+- cextern/cfitsio/getcolsb.c
+- cextern/cfitsio/getcols.c
+- cextern/cfitsio/getcolui.c
+- cextern/cfitsio/getcoluj.c
+- cextern/cfitsio/getcoluk.c
+- cextern/cfitsio/getkey.c
+- cextern/cfitsio/group.c
+- cextern/cfitsio/grparser.c
+- cextern/cfitsio/histo.c
+- cextern/cfitsio/imcompress.c
+- cextern/cfitsio/infback.c
+- cextern/cfitsio/inffast.c
+- cextern/cfitsio/inflate.c
+- cextern/cfitsio/inftrees.c
+- cextern/cfitsio/iraffits.c
+- cextern/cfitsio/modkey.c
+- cextern/cfitsio/pliocomp.c
+- cextern/cfitsio/putcolb.c
+- cextern/cfitsio/putcol.c
+- cextern/cfitsio/putcold.c
+- cextern/cfitsio/putcole.c
+- cextern/cfitsio/putcoli.c
+- cextern/cfitsio/putcolj.c
+- cextern/cfitsio/putcolk.c
+- cextern/cfitsio/putcoll.c
+- cextern/cfitsio/putcolsb.c
+- cextern/cfitsio/putcols.c
+- cextern/cfitsio/putcolu.c
+- cextern/cfitsio/putcolui.c
+- cextern/cfitsio/putcoluj.c
+- cextern/cfitsio/putcoluk.c
+- cextern/cfitsio/putkey.c
+- cextern/cfitsio/quantize.c
+- cextern/cfitsio/region.c
+- cextern/cfitsio/ricecomp.c
+- cextern/cfitsio/scalnull.c
+- cextern/cfitsio/swapproc.c
+- cextern/cfitsio/trees.c
+- cextern/cfitsio/uncompr.c
+- cextern/cfitsio/wcssub.c
+- cextern/cfitsio/wcsutil.c
+- cextern/cfitsio/zcompress.c
+- cextern/cfitsio/zuncompress.c
+- cextern/cfitsio/zutil.c
+ src/compressionmodule.c
+ include_dirs =
+ numpy
+- cextern/cfitsio
+-extra_compile_args =
+- -Wno-declaration-after-statement
+- -Wno-unused-variable
+- -Wno-parentheses
+- -Wno-uninitialized
+- -Wno-format
+- -Wno-strict-prototypes
+- -Wno-unused
+- -Wno-comments
+- -Wno-switch
+-optional = True
++libraries =
++ cfitsio
++optional = False
+ fail_message =
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Failed to build PyFITS tile compression support. PyFITS will still
diff --git a/dev-python/pyfits/metadata.xml b/dev-python/pyfits/metadata.xml
new file mode 100644
index 00000000000..f413ce9b6b0
--- /dev/null
+++ b/dev-python/pyfits/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<herd>python</herd>
+<longdescription lang="en">
+ PyFITS provides an interface to FITS formatted files under the
+ Python scripting language and PyRAF, the Python-based interface to
+ IRAF.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">pyfits</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/pyfits/pyfits-2.4.0.ebuild b/dev-python/pyfits/pyfits-2.4.0.ebuild
new file mode 100644
index 00000000000..93014a9d736
--- /dev/null
+++ b/dev-python/pyfits/pyfits-2.4.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-*"
+
+inherit distutils
+
+DESCRIPTION="Provides an interface to FITS formatted files under python"
+SRC_URI="http://www.stsci.edu/resources/software_hardware/${PN}/${P}.tar.gz"
+HOMEPAGE="http://www.stsci.edu/resources/software_hardware/pyfits"
+
+IUSE=""
+SLOT="0"
+KEYWORDS="amd64 x86 ~x86-fbsd"
+LICENSE="BSD"
+
+RDEPEND="dev-python/numpy
+ !<dev-python/astropy-0.3"
+DEPEND="${RDEPEND}"
+
+# current tests need data which are not in tar ball
+RESTRICT="test"
+
+src_test() {
+ testing() {
+ local t
+ for t in lib/tests/testPyfits*.py; do
+ PYTHONPATH="$(ls -d build-${PYTHON_ABI}/lib*)" "$(PYTHON)" "${t}" || die "${t} failed with Python ${PYTHON_ABI}"
+ done
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+ local binary
+ for binary in "${ED}"/usr/bin/*; do
+ mv ${binary}{,-pyfits} || die
+ done
+}
diff --git a/dev-python/pyfits/pyfits-3.3.ebuild b/dev-python/pyfits/pyfits-3.3.ebuild
new file mode 100644
index 00000000000..5d014f3a894
--- /dev/null
+++ b/dev-python/pyfits/pyfits-3.3.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1 eutils multilib
+
+DESCRIPTION="Provides an interface to FITS formatted files under python"
+HOMEPAGE="http://www.stsci.edu/resources/software_hardware/pyfits"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ !<dev-python/astropy-0.3
+ sci-libs/cfitsio:0="
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/d2to1-0.2.5[${PYTHON_USEDEP}]
+ >=dev-python/stsci-distutils-0.3[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/numpydoc[${PYTHON_USEDEP}]' python2_7 'python{3_3,3_4}')
+ dev-python/sphinxcontrib-programoutput[${PYTHON_USEDEP}]
+ dev-python/stsci-sphinxext[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/${PN}-3.2.1-unbundle-cfitsio.patch )
+
+python_prepare_all() {
+ sed -i \
+ -e "s/\(hook_package_dir = \)lib/\1$(get_libdir)/g" \
+ "${S}"/setup.cfg || die
+
+ # https://github.com/spacetelescope/PyFITS/issues/95
+ sed -e "s/except UserWarning, w/except UserWarning as w/" -i lib/pyfits/scripts/fitscheck.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ nosetests || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html )
+ distutils-r1_python_install_all
+ dodoc FAQ.txt CHANGES.txt
+ rename_binary() {
+ local binary
+ for binary in "${ED}"/usr/bin/* "${D}$(python_get_scriptdir)"/*
+ do
+ mv ${binary}{,-${PN}} || die "failed renaming"
+ done
+ }
+ python_foreach_impl rename_binary
+}
diff --git a/dev-python/pyflakes/Manifest b/dev-python/pyflakes/Manifest
new file mode 100644
index 00000000000..66508b072d7
--- /dev/null
+++ b/dev-python/pyflakes/Manifest
@@ -0,0 +1,4 @@
+DIST pyflakes-0.7.2.tar.gz 30107 SHA256 e971804569e26a120ded70ca94882cbbf360390538fc3b5861f8ccecaf291178 SHA512 9f50c78ae47f55e30ed264b351325321f6c5d889ca6b2c7509d6c5cb029e27c230849cecc729bb18664cc2eb3d003a38a2e7a20f48563b6fa72c621a783bea64 WHIRLPOOL b23d09999a550784769444fdb1f3592dd54b1938b73e1ec40951eab5d3fad3dc80c0c79fbaa31e1544d74b5c8bcd96ca2f01ee83e0e79d8bfb6228308c20ae4c
+DIST pyflakes-0.7.3.tar.gz 30551 SHA256 dbd2c940a1030a4f811afc1a04017a44011c0cb54f8f384b66aa624097d9b5e3 SHA512 a77fc6a1ca1bdb8aaf31e3653389c7c9357433b8b64dbd3104068a4ce900a019d3dbba5bd23c313fc70398f6f2767a3639cf7b915d3edbc1e1d1e1a03932729d WHIRLPOOL 3ff8aa922f14676a530d51c9114cf7751c23cf92e6d3f88da263b1747343b9fba02f0f2a72123046206a4d22c734cc3f4296f70016d6a51b5ac599bc4bd29345
+DIST pyflakes-0.8.1.tar.gz 32981 SHA256 3fa80a10b36d51686bf7744f5dc99622cd5c98ce8ed64022e629868aafc17769 SHA512 b9843637891f3e82a8430121395ceb4ec5df48b5ba73b96a307ebcb4a393e8cebee1681e094ee1f71a85b58bd2f32562b78fbd61d3fa85634f3ac448b1244637 WHIRLPOOL 0939b6ded3659e53316e6707ca5bf57a6702073c376df611a6a473c43ada36ee8822c9bbf2e106cc1836b46f04ce90612f4ebc73c6cb2d557aa6edb89d0eb949
+DIST pyflakes-0.9.2.tar.gz 34785 SHA256 02691c23ce699f252874b7c27f14cf26e3d4e82b58e5d584f000b7ab5be36a5f SHA512 f412ab8dfabce8378edc7632f448071fc396bd4d76dc0a091df357ed0283151040be9aa51b59dbf28451b6043388f83d82004f1df1cf761df487df40da0f9294 WHIRLPOOL ba473958555ba513b18bd8947f9bc4d361bc51be3984fb39d11be823bf232e748964406b90eca1d01f01b10f3d0ba99f906f0618531e2c75579994afe10c08cb
diff --git a/dev-python/pyflakes/metadata.xml b/dev-python/pyflakes/metadata.xml
new file mode 100644
index 00000000000..8336e033220
--- /dev/null
+++ b/dev-python/pyflakes/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>PyFlakes is a Lint-like tool for Python, like PyChecker. It is
+ focused on identifying common errors quickly without executing
+ Python code.
+ Its primary advantage over PyChecker is that it is fast. You don't
+ have to sit around for minutes waiting for the checker to run; it
+ runs on most large projects in only a few seconds.</longdescription>
+ <upstream>
+ <remote-id type="pypi">pyflakes</remote-id>
+ <remote-id type="launchpad">pyflakes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyflakes/pyflakes-0.7.2.ebuild b/dev-python/pyflakes/pyflakes-0.7.2.ebuild
new file mode 100644
index 00000000000..1f9537f27c1
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-0.7.2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes http://pypi.python.org/pypi/pyflakes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux ~arm-linux ~x86-linux ~x86-macos"
+IUSE="test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/unittest2[${PYTHON_USEDEP}] )"
+
+python_test() {
+ # a known failure of 1 test in py3.2.4
+ # https://bugs.launchpad.net/pyflakes/+bug/1172463
+ esetup.py test --quiet
+}
diff --git a/dev-python/pyflakes/pyflakes-0.7.3.ebuild b/dev-python/pyflakes/pyflakes-0.7.3.ebuild
new file mode 100644
index 00000000000..4631dd3dcc6
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-0.7.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3} ) # not 3.4 yet
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes http://pypi.python.org/pypi/pyflakes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux ~arm-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=(AUTHORS NEWS.txt README.rst)
+
+python_test() {
+ esetup.py test --quiet
+}
diff --git a/dev-python/pyflakes/pyflakes-0.8.1.ebuild b/dev-python/pyflakes/pyflakes-0.8.1.ebuild
new file mode 100644
index 00000000000..48adb861757
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-0.8.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes http://pypi.python.org/pypi/pyflakes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86 ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=(AUTHORS NEWS.txt README.rst)
+
+python_test() {
+ esetup.py test --quiet
+}
diff --git a/dev-python/pyflakes/pyflakes-0.9.2.ebuild b/dev-python/pyflakes/pyflakes-0.9.2.ebuild
new file mode 100644
index 00000000000..b6df5a8ae9d
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-0.9.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes http://pypi.python.org/pypi/pyflakes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ esetup.py test --quiet
+}
diff --git a/dev-python/pyflann/Manifest b/dev-python/pyflann/Manifest
new file mode 100644
index 00000000000..39203fd023c
--- /dev/null
+++ b/dev-python/pyflann/Manifest
@@ -0,0 +1,2 @@
+DIST flann-1.8.4-src.zip 561057 SHA256 dfbb9321b0d687626a644c70872a2c540b16200e7f4c7bd72f91ae032f445c08 SHA512 47ac6be66e3ec7303d28febc5a4cea2f8d1b3d81c3b7081f27cf17936074e06e91e30123569b41269a2b97c9960274dc485a575d77c1a386e8f539a76a8d3a0a WHIRLPOOL f7722d8c0a8482809920927353421ebb578464fe6746a4dba20a6c7b6f941715529d5be33aebd1726db36eae3b5d4080c6ae86b0f807e6e384af32b87735b83b
+DIST flann-1.8.4-testdata.tar.xz 26744244 SHA256 4eaecf3a221ea6611e841fa2f459a17b6a5fdd633338bb5bc46c434e37667141 SHA512 f2bee5e2dfe2fbb42953df563f178b67639b62e26fc31be14e07c196ba3e84db21804e594af44991f7cf45ca5e10ff753093cf160abf33e90d19735a9a0b51cb WHIRLPOOL e49e5a594464955241ebc9bdfa908bac8b93b2fb465fc08ab73ec4d57194a8b71361ecb67985cdc641013fb8c3fb51ea2033769f41e558ab86e8f71e477b97da
diff --git a/dev-python/pyflann/metadata.xml b/dev-python/pyflann/metadata.xml
new file mode 100644
index 00000000000..c792cc21647
--- /dev/null
+++ b/dev-python/pyflann/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+ FLANN is a library for performing fast approximate nearest neighbor
+ searches in high dimensional spaces. It contains a collection of
+ algorithms we found to work best for nearest neighbor search and a
+ system for automatically choosing the best algorithm and optimum
+ parameters depending on the dataset.
+ This is the python binding package split from the main package.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pyflann/pyflann-1.8.4.ebuild b/dev-python/pyflann/pyflann-1.8.4.ebuild
new file mode 100644
index 00000000000..e57444fb7ba
--- /dev/null
+++ b/dev-python/pyflann/pyflann-1.8.4.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for FLANN artificial neural network library"
+HOMEPAGE="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN/"
+SRC_URI="http://people.cs.ubc.ca/~mariusm/uploads/FLANN/flann-${PV}-src.zip
+ test? ( http://dev.gentoo.org/~bicatali/distfiles/flann-${PV}-testdata.tar.xz )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ~sci-libs/flann-${PV}"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/flann-${PV}-src/src/python"
+
+python_prepare_all() {
+ sed -e "s/@FLANN_VERSION@/${PV}/" \
+ -e '/package_d/d' \
+ -e "s/,.*'pyflann.lib'//" \
+ setup.py.tpl >> setup.py
+
+ use test && ln -s "${WORKDIR}"/testdata/* "${WORKDIR}"/flann-${PV}-src/test/
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${WORKDIR}"/flann-${PV}-src/test/
+ local t
+ #for t in test*.py; do
+ # test_autotune buggy
+ for t in test_{nn,nn_index,index_save,clustering}.py; do
+ einfo "Running ${t}"
+ PYTHONPATH="${BUILD_DIR}/lib" ${EPYTHON} ${t} || die
+ done
+}
diff --git a/dev-python/pyfltk/Manifest b/dev-python/pyfltk/Manifest
new file mode 100644
index 00000000000..6f52b4468f5
--- /dev/null
+++ b/dev-python/pyfltk/Manifest
@@ -0,0 +1,2 @@
+DIST pyFltk-1.3.0.tar.gz 915600 SHA256 c52852d21ee17d495185259b46ac9603d683edde7d7e6d4b6f9268da4ee3de57 SHA512 908a6d9581741454440da92fe921f0a2a01be86a5ec01cbbf2d953eb5f0437efd8e635d7bff6c18015afc877a984872a6592df834709f93a1287307e17fbcc61 WHIRLPOOL 62281ef5c798986f1af82da53887fe40a6cd4f4bcfe7fab8d60fc7f3c4ad9cc2d481ced6b2e2bad7638ef843b9dcf396aa246838f173d2afaeaac530e0236d3b
+DIST pyFltk-1.3.3.tar.gz 946763 SHA256 246b92c99b8d5610532456a4c956b355f6140514324916cf35efbe6468c4a188 SHA512 dd4bbef8e82d455237dd085622e78e046ac522449fe63610ee5405c24d759482a89aeab07435fefb5223db78cc1f810f1eca8355afb1d0ff3e4b5e10b73bef8f WHIRLPOOL 8d94349db36cd78eeee722e75c9e1cef088e0f2743bd522eb0496f76faf70a159d6987902f308478a992bd7f2cb62a5bb770a80eee25c3e9feaf08b513956ce1
diff --git a/dev-python/pyfltk/files/fltk_wrap.patch b/dev-python/pyfltk/files/fltk_wrap.patch
new file mode 100644
index 00000000000..5a3904e697a
--- /dev/null
+++ b/dev-python/pyfltk/files/fltk_wrap.patch
@@ -0,0 +1,15 @@
+diff -ur pyFltk-1.3.3.orig/python/fltk_wrap.cpp pyFltk-1.3.3/python/fltk_wrap.cpp
+--- python/fltk_wrap.cpp 2015-01-03 18:31:21.000000000 +0800
++++ python/fltk_wrap.cpp 2015-06-23 22:26:23.453212512 +0800
+@@ -144,7 +144,9 @@
+ # define _SCL_SECURE_NO_DEPRECATE
+ #endif
+
+-
++int _fl_filename_isdir_quick(const char *n) {
++ return 0;
++}
+
+ /* Python.h has to appear first */
+ #include <Python.h>
+
diff --git a/dev-python/pyfltk/files/ignore-func.patch b/dev-python/pyfltk/files/ignore-func.patch
new file mode 100644
index 00000000000..e4e9f3b4ff2
--- /dev/null
+++ b/dev-python/pyfltk/files/ignore-func.patch
@@ -0,0 +1,11 @@
+http://sourceforge.net/p/pyfltk/code/506/
+--- a/swig/filename.i
++++ b/swig/filename.i
+@@ -14,6 +14,7 @@
+ %ignore fl_alphasort;
+ %ignore fl_casealphasort;
+ %ignore fl_casenumericsort;
++%ignore _fl_filename_isdir_quick;
+
+ %include "FL/filename.H"
+
diff --git a/dev-python/pyfltk/files/pyfltk-1.3.0-format-security.patch b/dev-python/pyfltk/files/pyfltk-1.3.0-format-security.patch
new file mode 100644
index 00000000000..f29b7b3c922
--- /dev/null
+++ b/dev-python/pyfltk/files/pyfltk-1.3.0-format-security.patch
@@ -0,0 +1,74 @@
+ python/fltk_wrap.cpp | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/python/fltk_wrap.cpp b/python/fltk_wrap.cpp
+index 9c16f59..ad42e89 100644
+--- a/python/fltk_wrap.cpp
++++ b/python/fltk_wrap.cpp
+@@ -5238,13 +5238,13 @@ PyObject *Fl_get_font_sizes_tmp(PyObject *self, PyObject *args)
+
+ const char *fl_vararg_input(const char *label, const char *deflt = 0) {
+ const char* result = 0;
+- result = fl_input(label, deflt);
++ result = fl_input("%s", deflt, label);
+ return result;
+ };
+
+ const char *fl_vararg_password(const char *label, const char *deflt = 0) {
+ const char* result = 0;
+- result = fl_password(label, deflt);
++ result = fl_password("%s", deflt, label);
+ return result;
+ };
+
+@@ -5282,20 +5282,20 @@ PyObject *Fl_get_font_sizes_tmp(PyObject *self, PyObject *args)
+
+ void fl_mt_message(const char* text) {
+ Py_BEGIN_ALLOW_THREADS;
+- fl_message(text);
++ fl_message("%s", text);
+ Py_END_ALLOW_THREADS;
+ };
+
+ void fl_mt_alert(const char* text) {
+ Py_BEGIN_ALLOW_THREADS;
+- fl_alert(text);
++ fl_alert("%s", text);
+ Py_END_ALLOW_THREADS;
+ };
+
+ int fl_mt_ask(const char* text) {
+ int status = 0;
+ Py_BEGIN_ALLOW_THREADS;
+- status = fl_ask(text);
++ status = fl_ask("%s", text);
+ Py_END_ALLOW_THREADS;
+ return status;
+ };
+@@ -5303,7 +5303,7 @@ PyObject *Fl_get_font_sizes_tmp(PyObject *self, PyObject *args)
+ int fl_mt_choice(const char *q,const char *b0,const char *b1,const char *b2) {
+ int status = 0;
+ Py_BEGIN_ALLOW_THREADS;
+- status = fl_choice(q, b0, b1, b2);
++ status = fl_choice("%s", b0, b1, b2, q);
+ Py_END_ALLOW_THREADS;
+ return status;
+ };
+@@ -5311,7 +5311,7 @@ PyObject *Fl_get_font_sizes_tmp(PyObject *self, PyObject *args)
+ const char *fl_mt_input(const char *label, const char *deflt = 0) {
+ const char* result = 0;
+ Py_BEGIN_ALLOW_THREADS;
+- result = fl_input(label, deflt);
++ result = fl_input("%s", deflt, label);
+ Py_END_ALLOW_THREADS;
+ return result;
+ };
+@@ -5319,7 +5319,7 @@ PyObject *Fl_get_font_sizes_tmp(PyObject *self, PyObject *args)
+ const char *fl_mt_password(const char *label, const char *deflt = 0) {
+ const char* result = 0;
+ Py_BEGIN_ALLOW_THREADS;
+- result = fl_password(label, deflt);
++ result = fl_password("%s", deflt, label);
+ Py_END_ALLOW_THREADS;
+ return result;
+ };
diff --git a/dev-python/pyfltk/files/pyfltk-1.3.0-linux-3.x-detection.patch b/dev-python/pyfltk/files/pyfltk-1.3.0-linux-3.x-detection.patch
new file mode 100644
index 00000000000..9b084616c87
--- /dev/null
+++ b/dev-python/pyfltk/files/pyfltk-1.3.0-linux-3.x-detection.patch
@@ -0,0 +1,15 @@
+http://bugs.gentoo.org/show_bug.cgi?id=375253
+
+http://lipyrary.blogspot.com/2011/09/python-and-linux-kernel-30-sysplatform.html
+
+--- setup.py
++++ setup.py
+@@ -76,7 +76,7 @@
+ lib_dir_list = [fltk_lib_dir]
+ lib_list = ["fltk", "kernel32", "user32", "gdi32", "winspool", "comdlg32", "Comctl32", "advapi32", "shell32", "oleaut32", "odbc32", "odbccp32", "stdc++", "msvcr71"]
+ #link_arg_list=["-Wl,--enable-runtime-pseudo-reloc", "-Wl,--enable-auto-import"]
+-elif sys.platform == 'linux2':
++elif sys.platform.startswith('linux'):
+ print "Building for Linux"
+ # ugly hack to force distutils to use g++ instead of gcc for linking
+ from distutils import sysconfig
diff --git a/dev-python/pyfltk/metadata.xml b/dev-python/pyfltk/metadata.xml
new file mode 100644
index 00000000000..cba14006000
--- /dev/null
+++ b/dev-python/pyfltk/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Python wrapper for the Fast Light Tool Kit cross-platform graphical
+ user-interface library, using SWIG.
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">pyfltk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyfltk/pyfltk-1.3.0-r1.ebuild b/dev-python/pyfltk/pyfltk-1.3.0-r1.ebuild
new file mode 100644
index 00000000000..6cbe1a8f379
--- /dev/null
+++ b/dev-python/pyfltk/pyfltk-1.3.0-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# FIXME: MakeSwig.py execution should be made work from pyfltk-1.1.5.ebuild
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+MY_P=pyFltk-${PV}
+
+DESCRIPTION="Python interface to Fltk library"
+HOMEPAGE="http://pyfltk.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86"
+IUSE="doc"
+
+DEPEND=">=x11-libs/fltk-1.3.0:1[opengl]"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/${P}-linux-3.x-detection.patch
+ )
+
+ # Disable installation of documentation and tests.
+ sed -i -e '/package_data=/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( fltk/docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyfltk/pyfltk-1.3.0-r2.ebuild b/dev-python/pyfltk/pyfltk-1.3.0-r2.ebuild
new file mode 100644
index 00000000000..34bb043e4fd
--- /dev/null
+++ b/dev-python/pyfltk/pyfltk-1.3.0-r2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# FIXME: MakeSwig.py execution should be made work from pyfltk-1.1.5.ebuild
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+MY_P=pyFltk-${PV}
+
+DESCRIPTION="Python interface to Fltk library"
+HOMEPAGE="http://pyfltk.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~ppc64 x86"
+IUSE="doc"
+
+DEPEND=">=x11-libs/fltk-1.3.0:1[opengl]"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+ "${FILESDIR}"/${P}-linux-3.x-detection.patch
+ "${FILESDIR}"/${P}-format-security.patch
+ "${FILESDIR}"/ignore-func.patch
+ "${FILESDIR}"/fltk_wrap.patch
+ )
+
+python_prepare_all() {
+ # Disable installation of documentation and tests.
+ sed -i -e '/package_data=/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( fltk/docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyfltk/pyfltk-1.3.3.ebuild b/dev-python/pyfltk/pyfltk-1.3.3.ebuild
new file mode 100644
index 00000000000..2ea7dd27425
--- /dev/null
+++ b/dev-python/pyfltk/pyfltk-1.3.3.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# FIXME: MakeSwig.py execution should be made work from pyfltk-1.1.5.ebuild
+
+EAPI=5
+
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="pyFltk-${PV}"
+MY_P="pyFltk-${PV}_py3"
+
+DESCRIPTION="Python interface to Fltk library"
+HOMEPAGE="http://pyfltk.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz -> ${MY_PN}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="1"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="doc"
+
+DEPEND=">=x11-libs/fltk-1.3.0:1[opengl]"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_PN}
+
+PATCHES=(
+ "${FILESDIR}"/ignore-func.patch
+ "${FILESDIR}"/fltk_wrap.patch
+ )
+
+python_prepare_all() {
+ # Disable installation of documentation and tests.
+ sed -i -e '/package_data=/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( fltk/docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyformance/Manifest b/dev-python/pyformance/Manifest
new file mode 100644
index 00000000000..2ea0b611449
--- /dev/null
+++ b/dev-python/pyformance/Manifest
@@ -0,0 +1 @@
+DIST pyformance-0.3.2.tar.gz 10726 SHA256 7004f8e6eee1bcf8e28fb2ec74c8d67894158ccc01397faae70f6ee9729f9b8a SHA512 a838bb6cac144c309d2ff7050617b300fa2308f2bbab1d8b072ce87548d2dbd9ecb2dd552f9ddd53ded2ca4020bd42c7a3f4a245bc2c68ded5f01ebaf04edd71 WHIRLPOOL 6fb45017f8ea85ce3d61346f6a489861c30bf64bd8879e5dad4cb0cab4245346348b94183447e7ca86eb674a5ea4a874c42dec768dc02a0562b009d63e287bc5
diff --git a/dev-python/pyformance/metadata.xml b/dev-python/pyformance/metadata.xml
new file mode 100644
index 00000000000..1b848eb383a
--- /dev/null
+++ b/dev-python/pyformance/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyformance</remote-id>
+ <remote-id type="github">omergertel/pyformance</remote-id>
+ </upstream>
+ <maintainer>
+ <email>zmedico@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/pyformance/pyformance-0.3.2.ebuild b/dev-python/pyformance/pyformance-0.3.2.ebuild
new file mode 100644
index 00000000000..1da5985dbf7
--- /dev/null
+++ b/dev-python/pyformance/pyformance-0.3.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Performance metrics, based on Coda Hale's Yammer metrics"
+HOMEPAGE="https://pyformance.readthedocs.org/ https://github.com/omergertel/pyformance/ https://pypi.python.org/pypi/pyformance/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# https://github.com/omergertel/pyformance/issues/18
+# https://github.com/omergertel/pyformance/pull/17
+RESTRICT="test"
+
+python_test() {
+ PYTHONPATH="${PWD}" python -m unittest \
+ $(find tests -name 'test_*.py' | LC_ALL=C sort | sed -e 's:/:.:' -e 's:.py$::') || die
+}
diff --git a/dev-python/pyftpdlib/Manifest b/dev-python/pyftpdlib/Manifest
new file mode 100644
index 00000000000..0e400e2416e
--- /dev/null
+++ b/dev-python/pyftpdlib/Manifest
@@ -0,0 +1,3 @@
+DIST pyftpdlib-1.0.1.tar.gz 116428 SHA256 bec5c2af5942c3970d53b1a9fa27286eba40c2089e3e0ef653ff6f5ed0c4865b SHA512 478f04cb156a6178f03aee40190f17b65e42f04c60311936bf068d11f9ffbd8ae9a118fea456386ccf5184e3fed6270b40b4dfec6523902e310f78ec73785be8 WHIRLPOOL 71b34ef1031b402b2be0d7aac64f796820a20e022fc71fb451777cc4dc50b28ba48dca20608958cd670d90a9baf839c8e4933ddb63b0484fff425faaa5e5e3b1
+DIST pyftpdlib-1.3.0.tar.gz 120206 SHA256 5dec22e691bd75ee0097f2e623df6c7b81a7cc373118f1550a16079dbddc701f SHA512 eacd617aa136c2a9a8836d25c632f30fbc9ad14650d34e0a8f6562c1a5af8e2e3ae0592d7f5456b88818142d63a08c140e75ce2e0a73811c29a7dd5e08700b87 WHIRLPOOL e4ee34587e60f9a41b5332a62a5e4d4914822ffa1bd4cc700ebb03a31fdca50ffa15a55d6d5afb73177d20bbbb30123ca6756629eef936d6bbb8a5d959535d74
+DIST pyftpdlib-1.4.0.tar.gz 116280 SHA256 5fdd1492efe478f4c354f7d65d9308359751c8fb1d0376466b74a76721c5fcf3 SHA512 61cf28d72a3a99bdc9bddcf434275e4edaeff60bf6481c1e854d81a4ea23ae97b73c8da9d0629a705a003ae8a941c529f9b9ed7cfa25759bd5cd6517f9958ff9 WHIRLPOOL 676f58061e07aa8a9dcce9c7076962875866cebca8eacdd624053cab32de3a7bdb0b17337105839b6c997bf2b4263e759c962362930afddaedc1e9a151b855fa
diff --git a/dev-python/pyftpdlib/files/pyftpdlib-1-pypy-test.patch b/dev-python/pyftpdlib/files/pyftpdlib-1-pypy-test.patch
new file mode 100644
index 00000000000..e1b30553fcb
--- /dev/null
+++ b/dev-python/pyftpdlib/files/pyftpdlib-1-pypy-test.patch
@@ -0,0 +1,20 @@
+diff -ur pyftpdlib-1.0.1.orig/test/test_ftpd.py pyftpdlib-1.0.1/test/test_ftpd.py
+--- test/test_ftpd.py 2013-02-23 03:07:13.000000000 +0800
++++ test/test_ftpd.py 2013-03-13 23:05:48.392965468 +0800
+@@ -33,7 +33,7 @@
+ import threading
+ import unittest
+ import socket
+-import os
++import os, sys
+ import shutil
+ import time
+ import re
+@@ -1358,6 +1358,7 @@
+ self.assertEqual(getmode(), '0555')
+
+
++@unittest.skipIf(hasattr(sys, 'pypy_version_info'), "temp. disabling of pypy")
+ class TestFtpStoreData(TestCase):
+ """Test STOR, STOU, APPE, REST, TYPE."""
+ server_class = FTPd
diff --git a/dev-python/pyftpdlib/metadata.xml b/dev-python/pyftpdlib/metadata.xml
new file mode 100644
index 00000000000..12b46e22860
--- /dev/null
+++ b/dev-python/pyftpdlib/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>phajdan.jr@gentoo.org</email>
+ <name>Pawel Hajdan jr</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">pyftpdlib</remote-id>
+ <remote-id type="pypi">pyftpdlib</remote-id>
+ <remote-id type="github">giampaolo/pyftpdlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyftpdlib/pyftpdlib-1.0.1-r1.ebuild b/dev-python/pyftpdlib/pyftpdlib-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..8f9e367916d
--- /dev/null
+++ b/dev-python/pyftpdlib/pyftpdlib-1.0.1-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="ssl(+)"
+# pypy has no spwd.so
+
+inherit distutils-r1
+
+DESCRIPTION="Python FTP server library"
+HOMEPAGE="http://code.google.com/p/pyftpdlib/ http://pypi.python.org/pypi/pyftpdlib"
+SRC_URI="http://pyftpdlib.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="examples ssl"
+
+DEPEND="ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+DOCS="CREDITS HISTORY"
+
+#PATCHES=( "${FILESDIR}"/${PN}-1-pypy-test.patch )
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ for test in "${S}"/test/test_*.py; do
+ "${PYTHON}" "${test}" || die "Testing failed with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r demo test
+ fi
+}
diff --git a/dev-python/pyftpdlib/pyftpdlib-1.3.0.ebuild b/dev-python/pyftpdlib/pyftpdlib-1.3.0.ebuild
new file mode 100644
index 00000000000..9f5e30fb487
--- /dev/null
+++ b/dev-python/pyftpdlib/pyftpdlib-1.3.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Python FTP server library"
+HOMEPAGE="http://code.google.com/p/pyftpdlib/ http://pypi.python.org/pypi/pyftpdlib"
+SRC_URI="http://pyftpdlib.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="examples ssl"
+
+DEPEND="ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+# Usual; requ'd for a sane testsuite run
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+python_prepare_all() {
+ # http://code.google.com/p/pyftpdlib/issues/detail?id=292&thanks=292&ts=1400308829
+ # Disable failing test
+ sed -e 's:test_on_incomplete_file_received:_&:' -i test/test_ftpd.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test/test_ftpd.py || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyftpdlib/pyftpdlib-1.4.0.ebuild b/dev-python/pyftpdlib/pyftpdlib-1.4.0.ebuild
new file mode 100644
index 00000000000..ae58459eb06
--- /dev/null
+++ b/dev-python/pyftpdlib/pyftpdlib-1.4.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Python FTP server library"
+HOMEPAGE="https://github.com/giampaolo/pyftpdlib http://pypi.python.org/pypi/pyftpdlib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ~ppc64 ~s390 ~sh sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="examples ssl"
+
+DEPEND="ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ "${PYTHON}" test/test_ftpd.py || die
+ "${PYTHON}" test/test_contrib.py || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygal/Manifest b/dev-python/pygal/Manifest
new file mode 100644
index 00000000000..c9b89d095af
--- /dev/null
+++ b/dev-python/pygal/Manifest
@@ -0,0 +1,4 @@
+DIST pygal-1.5.1.tar.gz 735659 SHA256 680e422f5c5dfd52520a1fa7cc89f9de50a04463a4fa5910b14aebcaa8507191 SHA512 f8cd3727e82ecafebe41983f5b013f7dd32bca35dd2db2f2d46fdfdb06e6461993ce0699d747a7f50fd724b02ab8014c68f5b107a178d2562f3ce8c0f3b5d009 WHIRLPOOL b520e8ec3a688d49a4244d3e7298070b850122c016fc78cf659ed8a96ac7ba8c9fb65782f6b50354820f873a70531a250023a3e4acc586feb1b50b002bc92acd
+DIST pygal-1.6.1.tar.gz 736601 SHA256 ca5be161a1770ce9fc72b246a0da86e98bc8caa9a38922ec96936b56b3dd55ce SHA512 44752613fdb2e0028e1bd734aae18399e7671e84fb66eab4a0f1f6bffdc1d208341cb04dc20316984c0e64bdb6963a1c9bd5d7ecc19659237f703347c5544d2a WHIRLPOOL 83bc393fc9ec9970ea3dfc89752ffd8775f5c4bc16b09f443d311aaae9b4eba5a925eeff0903335196954d969930a45d7d6431b1bf6f71079a11a21787380c10
+DIST pygal-1.7.0.tar.gz 737013 SHA256 e0cf38aec260b0eceb4b7a30f8dcb988ed129915b9561856dd8cb131ae34bcf4 SHA512 b32ec050e0d62224b81bc19d7421a405fca0827ba5bf86f748c3166783527638c29f6c0d010170a682d4ee8f602fc2822738c818638ee39cc5a9a5c4708f61b9 WHIRLPOOL 3278d41dd3107dfad7c2065e5c115c89e005e3887fc3e4bc949796fdee4039912b14439e7af035a3a68151589cc1ac1b7f2e4ec66ef1611edf78e8b0c9c9423d
+DIST pygal-2.0.0.tar.gz 66678 SHA256 54846f1a74f24b54ad4554f1b0d4e05f0ea51e5f66e680bff486e4664572e5f4 SHA512 95beb43687d80043109567021d4b912b5385b934e7348321c9b0a1b048764df7f89a83d3c58653672ae2b8e69c0a2cacdd62a9c43c244443bb99e401ad019e1a WHIRLPOOL dd679983ed862d8dd71b84863d403f3aa01a5ba78f0c95d005e546c982291eb12f932705d70a1a3a0beeb34487bdf75df38354160239fba9e852aa744e3886e8
diff --git a/dev-python/pygal/metadata.xml b/dev-python/pygal/metadata.xml
new file mode 100644
index 00000000000..7fd8d91b483
--- /dev/null
+++ b/dev-python/pygal/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>yngwin@gentoo.org</email>
+ <name>Ben de Groot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pygal</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygal/pygal-1.5.1.ebuild b/dev-python/pygal/pygal-1.5.1.ebuild
new file mode 100644
index 00000000000..5d1caf0fe7a
--- /dev/null
+++ b/dev-python/pygal/pygal-1.5.1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A python SVG charts generator"
+HOMEPAGE="http://pygal.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="dev-python/lxml"
diff --git a/dev-python/pygal/pygal-1.6.1.ebuild b/dev-python/pygal/pygal-1.6.1.ebuild
new file mode 100644
index 00000000000..6da7800dad6
--- /dev/null
+++ b/dev-python/pygal/pygal-1.6.1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A python SVG charts generator"
+HOMEPAGE="http://pygal.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/lxml"
diff --git a/dev-python/pygal/pygal-1.7.0.ebuild b/dev-python/pygal/pygal-1.7.0.ebuild
new file mode 100644
index 00000000000..f73d4278384
--- /dev/null
+++ b/dev-python/pygal/pygal-1.7.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A python SVG charts generator"
+HOMEPAGE="http://pygal.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/lxml[${PYTHON_USEDEP}]
+ media-gfx/cairosvg[${PYTHON_USEDEP}]"
diff --git a/dev-python/pygal/pygal-2.0.0.ebuild b/dev-python/pygal/pygal-2.0.0.ebuild
new file mode 100644
index 00000000000..19b2a924f48
--- /dev/null
+++ b/dev-python/pygal/pygal-2.0.0.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="A python SVG charts generator"
+HOMEPAGE="http://pygal.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/lxml[${PYTHON_USEDEP}]
+ media-gfx/cairosvg[${PYTHON_USEDEP}]"
diff --git a/dev-python/pygame/Manifest b/dev-python/pygame/Manifest
new file mode 100644
index 00000000000..25f8d9bab0b
--- /dev/null
+++ b/dev-python/pygame/Manifest
@@ -0,0 +1 @@
+DIST pygame-1.9.2_pre20120101.tar.xz 2263028 SHA256 86d386a84a29387e98f6650edbd7fffe5b800115b69e6b15b2588c13eae56335 SHA512 1e82cf720da28d4e4213f6b7a029ab4c9dd592c3155f3d11da8272a7d81d28c54f93402383fa5fa4a4e8863dfc039062838d0317cfedde30a4455e52ce680576 WHIRLPOOL 437555ba4816e42bb745ad5ce13b7f164d5a1ff467cd7193327856b98047eeb56c1d1043c2cc75c6a0ca71ea96240df75b1dc544122034c7e4628c544f8d9486
diff --git a/dev-python/pygame/files/pygame-1.9.2_pre20120101-import-bdist.patch b/dev-python/pygame/files/pygame-1.9.2_pre20120101-import-bdist.patch
new file mode 100644
index 00000000000..f587401ab25
--- /dev/null
+++ b/dev-python/pygame/files/pygame-1.9.2_pre20120101-import-bdist.patch
@@ -0,0 +1,49 @@
+From f5ee3952769d698d7d03ae61a9c70f2ec4d85874 Mon Sep 17 00:00:00 2001
+From: "Markus (root)" <mo@wurzel.org>
+Date: Sun, 19 Oct 2014 16:56:41 +0200
+Subject: [PATCH] This fails with a TypeError, but offers no functionality.
+
+---
+ pygame-1.9.2_pre20120101-python3_3/setup.py | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/pygame-1.9.2_pre20120101-python3_3/setup.py b/pygame-1.9.2_pre20120101-python3_3/setup.py
+index ecee5d1..b913f18 100644
+--- a/pygame-1.9.2_pre20120101-python3_3/setup.py
++++ b/pygame-1.9.2_pre20120101-python3_3/setup.py
+@@ -99,19 +99,19 @@ if "-setuptools" in sys.argv:
+ sys.argv.remove ("-setuptools")
+
+
+-# NOTE: the bdist_mpkg_support is for darwin.
+-try:
+- import bdist_mpkg_support
+- from setuptools import setup, Extension
+-except ImportError:
+- pass
+-else:
+- EXTRAS.update({
+- 'options': bdist_mpkg_support.options,
+- 'setup_requires': ['bdist_mpkg>=0.4.2'],
+- #'install_requires': ['pyobjc'],
+- #'dependency_links': ['http://rene.f0o.com/~rene/stuff/macosx/']
+- })
++# # NOTE: the bdist_mpkg_support is for darwin.
++# try:
++# import bdist_mpkg_support
++# from setuptools import setup, Extension
++# except ImportError:
++# pass
++# else:
++# EXTRAS.update({
++# 'options': bdist_mpkg_support.options,
++# 'setup_requires': ['bdist_mpkg>=0.4.2'],
++# #'install_requires': ['pyobjc'],
++# #'dependency_links': ['http://rene.f0o.com/~rene/stuff/macosx/']
++# })
+
+ #headers to install
+ headers = glob.glob(os.path.join('src', '*.h'))
+--
+2.1.2
+
diff --git a/dev-python/pygame/metadata.xml b/dev-python/pygame/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pygame/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pygame/pygame-1.9.2_pre20120101-r2.ebuild b/dev-python/pygame/pygame-1.9.2_pre20120101-r2.ebuild
new file mode 100644
index 00000000000..242c6d35fbc
--- /dev/null
+++ b/dev-python/pygame/pygame-1.9.2_pre20120101-r2.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+DISTUTILS_IN_SOURCE_BUILD=1
+inherit flag-o-matic distutils-r1 virtualx
+
+DESCRIPTION="Python bindings for SDL multimedia library"
+HOMEPAGE="http://www.pygame.org/"
+if [[ "${PV}" == *_pre* ]]; then
+ SRC_URI="http://people.apache.org/~Arfrever/gentoo/${P}.tar.xz"
+else
+ SRC_URI="http://www.pygame.org/ftp/pygame-${PV}release.tar.gz"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm hppa ~ia64 ppc ~sparc x86 ~x86-fbsd"
+IUSE="doc examples X"
+
+DEPEND="dev-python/numpy[${PYTHON_USEDEP}]
+ >=media-libs/sdl-image-1.2.2[png,jpeg]
+ >=media-libs/sdl-mixer-1.2.4
+ >=media-libs/sdl-ttf-2.0.6
+ >=media-libs/smpeg-0.4.4-r1
+ X? ( >=media-libs/libsdl-1.2.5[X,video] )
+ !X? ( >=media-libs/libsdl-1.2.5 )"
+RDEPEND="${DEPEND}"
+
+if [[ "${PV}" != *_pre* ]]; then
+ S="${WORKDIR}/${P}release"
+fi
+
+PATCHES=(
+ # Workaround bug #516434
+ "${FILESDIR}"/${P}-import-bdist.patch
+)
+
+DOCS=( WHATSNEW )
+
+python_configure() {
+ "${EPYTHON}" config.py -auto
+
+ if ! use X; then
+ sed -e "s:^scrap :#&:" -i Setup || die "sed failed"
+ fi
+
+ # Disable automagic dependency on PortMidi.
+ sed -e "s:^pypm :#&:" -i Setup || die "sed failed"
+
+ sed -i -e "s/import _camera/from pygame &/g" lib/camera.py || die #415593
+}
+
+python_compile() {
+ if [[ ${EPYTHON} == python2* ]]; then
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ VIRTUALX_COMMAND="${PYTHON}" virtualmake run_tests.py
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # Bug #497720
+ rm -fr "${D}"$(python_get_sitedir)/pygame/{docs,examples,tests}/ || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r docs/*
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples/*
+ fi
+}
diff --git a/dev-python/pygccxml/Manifest b/dev-python/pygccxml/Manifest
new file mode 100644
index 00000000000..20dc92a021a
--- /dev/null
+++ b/dev-python/pygccxml/Manifest
@@ -0,0 +1 @@
+DIST pygccxml-1.0.0.zip 21639068 SHA256 743a83ef67838db45e5d810e647e884272a65fe6cbbbda0f3ed1fdb3aeedb529 SHA512 d2a96b5bb27c3620527839051e43fa1eee8884692707a347c76863ff44a04502dcff35fe18b95a35c32fb8a4935ed8d5d91bf41eb98aee74f6df08c48ddc0b67 WHIRLPOOL 260075fe402c9eb40ee7ba93d0263fccd409020d261842983a9f2b39c00d51f3d3777a85fa0d94a258f52f57c5c2e30c499c258364c1c58cb8ba455b6fe148f0
diff --git a/dev-python/pygccxml/metadata.xml b/dev-python/pygccxml/metadata.xml
new file mode 100644
index 00000000000..f94e35f1162
--- /dev/null
+++ b/dev-python/pygccxml/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>heroxbd@gentoo.org</email>
+ <name>Benda Xu</name>
+ </maintainer>
+ <longdescription>pygccxml is an object oriented framework for reading C++ declarations.</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">pygccxml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygccxml/pygccxml-1.0.0.ebuild b/dev-python/pygccxml/pygccxml-1.0.0.ebuild
new file mode 100644
index 00000000000..2e4cae479cf
--- /dev/null
+++ b/dev-python/pygccxml/pygccxml-1.0.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Generate an XML description of a C++ program from GCC's internal representation"
+HOMEPAGE="http://www.language-binding.net/"
+SRC_URI="mirror://sourceforge/pygccxml/${P}.zip"
+
+LICENSE="freedist Boost-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="doc? ( >=dev-python/epydoc-3[${PYTHON_USEDEP}] )
+ app-arch/unzip"
+RDEPEND=">=dev-cpp/gccxml-0.6"
+
+python_compile_all() {
+ if use doc; then
+ esetup.py doc || die
+ fi
+}
+
+python_test() {
+ "${PYTHON}" unittests/test_all.py
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/apidocs/. )
+ use examples && local EXAMPLES=( docs/example/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygene/Manifest b/dev-python/pygene/Manifest
new file mode 100644
index 00000000000..47308134646
--- /dev/null
+++ b/dev-python/pygene/Manifest
@@ -0,0 +1 @@
+DIST pygene-0.2.1.tar.gz 147178 SHA256 8d24bb4f3fa0fd31f86a1f3478d8699d01e5c3803ff276d876e3c9e9c13c154a SHA512 4f6b32c4e17e85d80530f8f3d94f9726bb5adb80933aa39948ae3824effa780d333ef01ac4a304e63345314a298edd31aa687c6e6947486e74efafa6678951c7 WHIRLPOOL 99e2d2464e9e3cba75d6165f21680ac84589c2666c441701fb585526df9c2aea32f515a012b8d43fa5106d6f988b0f57a595022fe22d972966d712b6aad55beb
diff --git a/dev-python/pygene/metadata.xml b/dev-python/pygene/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/pygene/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pygene/pygene-0.2.1-r1.ebuild b/dev-python/pygene/pygene-0.2.1-r1.ebuild
new file mode 100644
index 00000000000..ff6101ff701
--- /dev/null
+++ b/dev-python/pygene/pygene-0.2.1-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple python genetic algorithms programming library"
+HOMEPAGE="http://www.freenet.org.nz/python/pygene/"
+SRC_URI="http://www.freenet.org.nz/python/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="doc? ( >=dev-python/epydoc-2.1-r2 )"
+RDEPEND="examples? ( >=dev-python/pyfltk-1.1.2 )"
+
+python_prepare_all() {
+ if use examples; then
+ mkdir examples || die
+ mv demo*.py salesman.gif examples || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ epydoc -n "pygene - Python genetic algorithms" -o doc pygene \
+ || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygeocoder/Manifest b/dev-python/pygeocoder/Manifest
new file mode 100644
index 00000000000..a40118a0bd5
--- /dev/null
+++ b/dev-python/pygeocoder/Manifest
@@ -0,0 +1 @@
+DIST pygeocoder-1.2.5.tar.gz 8105 SHA256 c1b8353ec8877cedd070d58cb597c4a94b70df00dc0c482d43aa9a21c90bbba0 SHA512 eb395d2f334f5a1de9ed8abb6298d16b49ab7c29cc421daecc816737e89fd7c6f205024a553f2b0d559401df8f26729c042604fbb0ed49f5a763fe833db3745f WHIRLPOOL 8b2cf90af2c035afca455d661fdc330f180c89fc23a865dc6aa0df71d6eb7c7265a21cd97bed0420f457ab77e705ad40c680e1297ab0af4a5349030170e2004f
diff --git a/dev-python/pygeocoder/metadata.xml b/dev-python/pygeocoder/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/pygeocoder/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pygeocoder/pygeocoder-1.2.5.ebuild b/dev-python/pygeocoder/pygeocoder-1.2.5.ebuild
new file mode 100644
index 00000000000..d4c887581bf
--- /dev/null
+++ b/dev-python/pygeocoder/pygeocoder-1.2.5.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for Google Geocoding API V3"
+HOMEPAGE="http://code.xster.net/pygeocoder/overview"
+SRC_URI="http://code.xster.net/${PN}/downloads/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/requests-1.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/pygit2/Manifest b/dev-python/pygit2/Manifest
new file mode 100644
index 00000000000..a765ba5ad33
--- /dev/null
+++ b/dev-python/pygit2/Manifest
@@ -0,0 +1,3 @@
+DIST pygit2-0.20.3.tar.gz 141887 SHA256 2957db7d9616db910e9274051fbfe66a496b910113548fbf2a7acdeef01e9ef9 SHA512 13355f2eccb591c7e1e18f66724aa0b68b94e65580aa20464e8669a8f54844557902f029127a9c5e50c3d4dafdc504f1d3aca65c0d26d9f147ff08eab2b002dc WHIRLPOOL a4496cb3dd2799c77240e1eae9c06f167727cb5948081da6f8864feb5ab38a046f8382e994dd3cdf28f4ac8b9e7675b3671b4369a8268f7f09b3c11d3e8bee3d
+DIST pygit2-0.21.4.tar.gz 417750 SHA256 1952332b48e87e918bc807305220075bfb611c96fbc529a43c78d73fdce25593 SHA512 835369ec9302d27ed361ccf3317fece4192e765c5e6e014ed6dd87cba38fe833eff3ba36558aa2951f42542408e3dba07777937aedaf539583db4454198d3112 WHIRLPOOL 90204b7dd28216ddfa82667e246bdaf154b19753b6382b7467a3cae85140a4672342045ba2713ba0eba8e0add5b6facd2ae4f72a0214d3eca0b49acccf14744f
+DIST pygit2-0.22.1.tar.gz 451351 SHA256 54b6e229ca2bf87efe4b5b8279d8f355b8c49613f0b8cbe7e0c1c98c001c39e0 SHA512 8ffcea4a94ca4667112b79e4adda43a75a9b677e609af528f79d4e6f8e84873a4c8478b89743d1de35d28ae00b1254e2287cd912776d96e3bf6a0030477e86a3 WHIRLPOOL 8eeec7ae2bc29264022f59067f93cb5375ead2285a30c27bd9f0c48c1be2b308c5413a3b3b8ede4a9be152727978971b0a6d2f23aeafc7f985ee0eeaf29aa72b
diff --git a/dev-python/pygit2/metadata.xml b/dev-python/pygit2/metadata.xml
new file mode 100644
index 00000000000..42dac9c9129
--- /dev/null
+++ b/dev-python/pygit2/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">libgit2/pygit2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygit2/pygit2-0.20.3.ebuild b/dev-python/pygit2/pygit2-0.20.3.ebuild
new file mode 100644
index 00000000000..7725f47e135
--- /dev/null
+++ b/dev-python/pygit2/pygit2-0.20.3.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 versionator
+
+DESCRIPTION="Python bindings for libgit2"
+HOMEPAGE="https://github.com/libgit2/pygit2"
+SRC_URI="https://github.com/libgit2/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2-with-linking-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="=dev-libs/libgit2-$(get_version_component_range 1-2)*"
+DEPEND="${RDEPEND}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pygit2/pygit2-0.21.4-r1.ebuild b/dev-python/pygit2/pygit2-0.21.4-r1.ebuild
new file mode 100644
index 00000000000..3fe1fee0bd1
--- /dev/null
+++ b/dev-python/pygit2/pygit2-0.21.4-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 versionator
+
+DESCRIPTION="Python bindings for libgit2"
+HOMEPAGE="https://github.com/libgit2/pygit2"
+SRC_URI="https://github.com/libgit2/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2-with-linking-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ =dev-libs/libgit2-$(get_version_component_range 1-2)*
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pygit2/pygit2-0.22.1.ebuild b/dev-python/pygit2/pygit2-0.22.1.ebuild
new file mode 100644
index 00000000000..2f6c247de2a
--- /dev/null
+++ b/dev-python/pygit2/pygit2-0.22.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 versionator
+
+# infinite hang
+RESTRICT="test"
+
+DESCRIPTION="Python bindings for libgit2"
+HOMEPAGE="https://github.com/libgit2/pygit2"
+SRC_URI="https://github.com/libgit2/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2-with-linking-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ =dev-libs/libgit2-$(get_version_component_range 1-2)*
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pyglet/Manifest b/dev-python/pyglet/Manifest
new file mode 100644
index 00000000000..53188a3257b
--- /dev/null
+++ b/dev-python/pyglet/Manifest
@@ -0,0 +1,3 @@
+DIST pyglet-1.1.4.tar.gz 2946601 SHA256 1d9b2a5e3a37a9068aee70100d19bfa83a6bbf6d4a2af8adb4231a601a101611 SHA512 26e1b652bd0e2666014bd29c4456570eee5fdbcce694f49f424fdab3583d0fb67d835e9f0e09f0459dc65cf3c042fffbfbeb321b286890be03260c9ee30bf187 WHIRLPOOL 89424736a0da9abd62813159ff6367b2c536b9cbfe63aaaf1733c712161453a77b3086ca0f4a840a1f682f2bd5334e0decb28d71b7dc187135a799c711ce6afc
+DIST pyglet-1.2.2.tar.gz 2120758 SHA256 6b54c3881a5eb086f2733c24aada1b65625b45b36172cd7f63fbde2cf43138df SHA512 012dcf6f62a823a391f7ac81b4a6dc89cf2bfd1f3f895dfa115011efdcbd1327821a11c47d455ed4e2a3edbd041f8a5e5b3c5f27b336a6c4d17c028a8999dc69 WHIRLPOOL ab2f402076b2aed110cde901e49b003e336eb634ad8b3f084dd1a980a1079959639ec1773b3106185f443a50ed6db39c833133442b002a64d9254285372bcdb5
+DIST pyglet-1.2.3.tar.gz 2121343 SHA256 06c857039420bd21baad35fac99dca7f97951350c2df5a79bdcf89eb708907cb SHA512 dbc766b382b1fa79205d9777e8dcc0ecfa00d312671f10d4e9580ae648997d4a41db8bffc072893109df6772fa8d72c8fdf128e0421d992d14332fac11d4d4c4 WHIRLPOOL 38d23907825312d1140a294d6ec3152e373ae466a73766a067f8362937d48bc7be14b9f847cc3386a41adb927196fda4cdc62fb8d9f7d0c9ea9ec548f6213afc
diff --git a/dev-python/pyglet/metadata.xml b/dev-python/pyglet/metadata.xml
new file mode 100644
index 00000000000..c8e1ba69c4f
--- /dev/null
+++ b/dev-python/pyglet/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>sci@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">This library provides an object-oriented programming interface
+ for developing games and other visually-rich applications with Python.
+ pyglet has virtually no external dependencies. For most applications
+ and game requirements, pyglet needs nothing else besides Python,
+ simplifying distribution and installation. It also handles
+ multiple windows and fully aware of multi-monitor setups.
+ pyglet might be seen as an alternative to PyGame.</longdescription>
+ <upstream>
+ <remote-id type="google-code">pyglet</remote-id>
+ <remote-id type="pypi">pyglet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyglet/pyglet-1.1.4-r2.ebuild b/dev-python/pyglet/pyglet-1.1.4-r2.ebuild
new file mode 100644
index 00000000000..131ecd34148
--- /dev/null
+++ b/dev-python/pyglet/pyglet-1.1.4-r2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Cross-platform windowing and multimedia library for Python"
+HOMEPAGE="http://www.pyglet.org/"
+SRC_URI="http://pyglet.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="alsa doc examples gtk +openal"
+
+RDEPEND="
+ virtual/opengl
+ alsa? ( media-libs/alsa-lib[alisp] )
+ gtk? ( x11-libs/gtk+:2 )
+ openal? ( media-libs/openal )"
+DEPEND="${RDEPEND}"
+# ffmpeg? ( media-libs/avbin-bin )
+
+DOCS="NOTICE"
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/html/. )
+ use examples && EXAMPLES=( examples )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyglet/pyglet-1.2.2.ebuild b/dev-python/pyglet/pyglet-1.2.2.ebuild
new file mode 100644
index 00000000000..acbc3a45138
--- /dev/null
+++ b/dev-python/pyglet/pyglet-1.2.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Cross-platform windowing and multimedia library for Python"
+HOMEPAGE="http://www.pyglet.org/"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ http://pyglet.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="alsa examples gtk +openal"
+
+RDEPEND="
+ virtual/opengl
+ alsa? ( media-libs/alsa-lib[alisp] )
+ gtk? ( x11-libs/gtk+:2 )
+ openal? ( media-libs/openal )"
+DEPEND="${RDEPEND}"
+# ffmpeg? ( media-libs/avbin-bin )
+
+# pyglet.gl.glx_info.GLXInfoException: pyglet requires an X server with GLX
+RESTRICT=test
+
+python_test() {
+ python_is_python3 && return
+ VIRTUALX_COMMAND="${PYTHON}"
+ virtualmake tests/test.py
+}
+
+python_install_all() {
+ DOCS=( NOTICE )
+ use examples && EXAMPLES=( examples )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyglet/pyglet-1.2.3.ebuild b/dev-python/pyglet/pyglet-1.2.3.ebuild
new file mode 100644
index 00000000000..acbc3a45138
--- /dev/null
+++ b/dev-python/pyglet/pyglet-1.2.3.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Cross-platform windowing and multimedia library for Python"
+HOMEPAGE="http://www.pyglet.org/"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ http://pyglet.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="alsa examples gtk +openal"
+
+RDEPEND="
+ virtual/opengl
+ alsa? ( media-libs/alsa-lib[alisp] )
+ gtk? ( x11-libs/gtk+:2 )
+ openal? ( media-libs/openal )"
+DEPEND="${RDEPEND}"
+# ffmpeg? ( media-libs/avbin-bin )
+
+# pyglet.gl.glx_info.GLXInfoException: pyglet requires an X server with GLX
+RESTRICT=test
+
+python_test() {
+ python_is_python3 && return
+ VIRTUALX_COMMAND="${PYTHON}"
+ virtualmake tests/test.py
+}
+
+python_install_all() {
+ DOCS=( NOTICE )
+ use examples && EXAMPLES=( examples )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygments/Manifest b/dev-python/pygments/Manifest
new file mode 100644
index 00000000000..53ea331bf5c
--- /dev/null
+++ b/dev-python/pygments/Manifest
@@ -0,0 +1,5 @@
+DIST Pygments-1.6.tar.gz 1423161 SHA256 799ed4caf77516e54440806d8d9cd82a7607dfdf4e4fb643815171a4b5c921c0 SHA512 552d0c2a1296773a5482122bd5cbec0ce91a497cd86ee105e1c5ddf2bfa9c206fcc7de504c6da480344c6e1bee30d7b26012fd061dcb2091d8b2b21bcd163bf0 WHIRLPOOL babf6e638529a902fab37c17fb1215aca3c04c3e2a00d00bdff7e8049ca6a46c238282c088e79816f7c6879fc9b13e3de9824ae93d3f184f4d9aae58af0c9c8d
+DIST Pygments-2.0.1.tar.gz 2739480 SHA256 5e039e1d40d232981ed58914b6d1ac2e453a7e83ddea22ef9f3eeadd01de45cb SHA512 7c11c7dc09f6a5d964a512eb4c31f34fc0422b29e3124bd4ed0f4ab594c750d39f990e86f65287f499ea1051a27c1087e445332f6b23ad021d6e2d41c6092f3e WHIRLPOOL 7f5d31f86183b230f54d1f08b5e4cb942d38f28d8868ed94b4d129601aa845864cd0f45d5edb2102f655c2800b2e54335d6f4f61975b2f3a8ceeb0b7e5e13217
+DIST Pygments-2.0.2.tar.gz 3462280 SHA256 7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51 SHA512 b58e2cc535ba3f1fda7cb147e12af128bc2755de56cf465f8f1d642730eaef50c06551cc4cc44f25f726b00f3f1c9c2078977233b11c0b6a7e1add6a4069c27e WHIRLPOOL 4c98134f27dd29c89e4d6157284bdeecaa81c53d823e089292be21a6c418ba4ccfd458ced50326d5a356a7b6cb761a1990440096f5f3d820f776bb19fc0da09d
+DIST pygments-1.6_p20140324.tar.gz 1641814 SHA256 f762d1104ab38a4e870824113e3be3fedc918900622f1e73b9c34386ee7be14a SHA512 de84977f346b41a60a849e681581b36787712d39010e0e23624cc2d9741cb5afbbb0a4e860b5120e3cb77eb5fc68ddf11d0f6c1d15e0bb4d7c56d800017b19bf WHIRLPOOL 7531e7a2483f3c043967d32848694324007c5a1a7e206472a17f5515eb6960dc1bec774851d75bc4ccc4615594db0c5218713da22da6c2d1cbfdf995827746be
+DIST pygments-2.0.1.tar.gz 1641814 SHA256 f762d1104ab38a4e870824113e3be3fedc918900622f1e73b9c34386ee7be14a SHA512 de84977f346b41a60a849e681581b36787712d39010e0e23624cc2d9741cb5afbbb0a4e860b5120e3cb77eb5fc68ddf11d0f6c1d15e0bb4d7c56d800017b19bf WHIRLPOOL 7531e7a2483f3c043967d32848694324007c5a1a7e206472a17f5515eb6960dc1bec774851d75bc4ccc4615594db0c5218713da22da6c2d1cbfdf995827746be
diff --git a/dev-python/pygments/metadata.xml b/dev-python/pygments/metadata.xml
new file mode 100644
index 00000000000..91a6942a83d
--- /dev/null
+++ b/dev-python/pygments/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>Pygments is a syntax highlighting package written in Python. Pygments can output to html, bbcode, latex, rtf and other formats.</longdescription>
+ <upstream>
+ <remote-id type="pypi">Pygments</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygments/pygments-1.6.ebuild b/dev-python/pygments/pygments-1.6.ebuild
new file mode 100644
index 00000000000..43a7beec82e
--- /dev/null
+++ b/dev-python/pygments/pygments-1.6.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+MY_PN="Pygments"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pygments is a syntax highlighting package written in Python"
+HOMEPAGE="http://pygments.org/ http://pypi.python.org/pypi/Pygments"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ virtual/ttf-fonts
+ dev-texlive/texlive-latexrecommended
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if [[ ${EPYTHON} == python3.* ]]; then
+ # Notes:
+ # -W is not supported by python3.1
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w "${BUILD_DIR}"/tests/*.py || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygments/pygments-1.6_p20140324-r1.ebuild b/dev-python/pygments/pygments-1.6_p20140324-r1.ebuild
new file mode 100644
index 00000000000..245bd3f6348
--- /dev/null
+++ b/dev-python/pygments/pygments-1.6_p20140324-r1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 bash-completion-r1 vcs-snapshot
+
+MY_PN="Pygments"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pygments is a syntax highlighting package written in Python"
+HOMEPAGE="http://pygments.org/ http://pypi.python.org/pypi/Pygments"
+#SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+SRC_URI="https://bitbucket.org/birkenfeld/pygments-main/get/b839f47dbb3a10830db7dc3114f0ad4f470bcfa5.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm hppa ia64 ~mips ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ virtual/ttf-fonts
+ dev-texlive/texlive-latexrecommended
+ )"
+
+#S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ distutils-r1_python_compile
+ if [[ ${EPYTHON} == python3.2 ]]; then
+ # python3.2 does not like u"" literals
+ 2to3 --no-diffs -n -w -f unicode "${BUILD_DIR}/lib" || die
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if python_is_python3; then
+ # Notes:
+ # -W is not supported by python3.1
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w "${BUILD_DIR}"/tests/*.py || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+ newbashcomp external/pygments.bashcomp pygmentize
+}
diff --git a/dev-python/pygments/pygments-2.0.1-r1.ebuild b/dev-python/pygments/pygments-2.0.1-r1.ebuild
new file mode 100644
index 00000000000..d196c2558eb
--- /dev/null
+++ b/dev-python/pygments/pygments-2.0.1-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 bash-completion-r1 vcs-snapshot
+
+MY_PN="Pygments"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pygments is a syntax highlighting package written in Python"
+HOMEPAGE="http://pygments.org/ http://pypi.python.org/pypi/Pygments"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ virtual/ttf-fonts )"
+# dev-texlive/texlive-latexrecommended
+# Removing / commenting out this dep. I can find no mention of it in tests other than
+# importing pygment's own tex module. If it's there and I missed it just uncomment and re-add
+# Tests pass without it
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+ # With pypy3 there is 1 error out of 1556 tests when run as is and
+ # (SKIP=8, errors=1, failures=1) when run with 2to3; meh
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+ newbashcomp external/pygments.bashcomp pygmentize
+}
diff --git a/dev-python/pygments/pygments-2.0.1.ebuild b/dev-python/pygments/pygments-2.0.1.ebuild
new file mode 100644
index 00000000000..593e0f20b29
--- /dev/null
+++ b/dev-python/pygments/pygments-2.0.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 bash-completion-r1 vcs-snapshot
+
+MY_PN="Pygments"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pygments is a syntax highlighting package written in Python"
+HOMEPAGE="http://pygments.org/ http://pypi.python.org/pypi/Pygments"
+#SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+SRC_URI="https://bitbucket.org/birkenfeld/pygments-main/get/b839f47dbb3a10830db7dc3114f0ad4f470bcfa5.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ virtual/ttf-fonts
+ dev-texlive/texlive-latexrecommended
+ )"
+
+python_compile() {
+ distutils-r1_python_compile
+ if [[ ${EPYTHON} == python3.2 ]]; then
+ # python3.2 does not like u"" literals
+ 2to3 --no-diffs -n -w -f unicode "${BUILD_DIR}/lib" || die
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if python_is_python3; then
+ # Notes:
+ # -W is not supported by python3.1
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w "${BUILD_DIR}"/tests/*.py || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+ newbashcomp external/pygments.bashcomp pygmentize
+}
diff --git a/dev-python/pygments/pygments-2.0.2.ebuild b/dev-python/pygments/pygments-2.0.2.ebuild
new file mode 100644
index 00000000000..a6bd99e1a4a
--- /dev/null
+++ b/dev-python/pygments/pygments-2.0.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 bash-completion-r1 vcs-snapshot
+
+MY_PN="Pygments"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pygments is a syntax highlighting package written in Python"
+HOMEPAGE="http://pygments.org/ http://pypi.python.org/pypi/Pygments"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ virtual/ttf-fonts )"
+# dev-texlive/texlive-latexrecommended
+# Removing / commenting out this dep. I can find no mention of it in tests other than
+# importing pygment's own tex module. If it's there and I missed it just uncomment and re-add
+# Tests pass without it
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+ # With pypy3 there is 1 error out of 1556 tests when run as is and
+ # (SKIP=8, errors=1, failures=1) when run with 2to3; meh
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+ newbashcomp external/pygments.bashcomp pygmentize
+}
diff --git a/dev-python/pygobject/Manifest b/dev-python/pygobject/Manifest
new file mode 100644
index 00000000000..f1d90b15cef
--- /dev/null
+++ b/dev-python/pygobject/Manifest
@@ -0,0 +1,5 @@
+DIST pygobject-2.28.6.tar.xz 747248 SHA256 fb8a1d4f665130a125011659bd347c7339c944232163dbb9a34fd0686577adb8 SHA512 37544ea2377258758169b25a2969d5ee1c9ffb9b6e63e05bc7a0471a49ac9169c51ec587d4489172c7d256f53df878a81c1992a08059aa7e43dbbb69f799545c WHIRLPOOL 402f764d6ca73f238784738a1e09832858fd95af5a633e825412e9e6a21e89ab6b2090d3995902ed404fc4fde445cf970c76fcd93f8f64cf9def742452776c00
+DIST pygobject-3.12.2.tar.xz 702176 SHA256 7e7a3d349acf5bb4b68f8539a42e67958840a67cd4f0341ee9aa49189af2a522 SHA512 81ea6904b6a6b405593394e3a4915cd8ccbacafa4820a3f38cce1ebd0a2de3cd4cad2feadec9ae8910ac3fa2b63fd66a8cb264f74d04631f5d4c3f45c29b5b47 WHIRLPOOL ca2f3cd2018b9923d1f758750e489cad6e658a4a621db5c8fd056d2f721d59630d4a4c6f01f932997b336b391b7e54dcd2b7068dd863bc0c01ad93737abbc386
+DIST pygobject-3.14.0.tar.xz 720128 SHA256 779effa93f4b59cdb72f4ab0128fb3fd82900bf686193b570fd3a8ce63392d54 SHA512 f6e1e5826a6afe81eb0a37bb554b433769622f8a0d17ac9836498425d70c4583cf8157027a555c21fd7a0d6686863c7803a350550665a375a906fccdabca2090 WHIRLPOOL 0a665504b792691238b89d2704ce1cc024f89ddf96fd6b626f1f5b05dbccfd633e61f9b45b0ca09873029c576b9804edcfa77e1bceae9e995be44a3fd60852ca
+DIST pygobject-3.16.1.tar.xz 725220 SHA256 7d96dad050f15ec1688617b749bb485811842de46a22d31f9396023e8eaa1ec3 SHA512 f32db7620b6714fdc780ec28c282566c0e662648a53f37b2466cbed609d1cbbbf998e30fd42d24ae1e5c0334656b04276dd3a8bf210f9b93f2bfb66f305f7a72 WHIRLPOOL 7f3257f1743510d1c602d797bce4722f6f987676dee4186b7026277f94412663bef0b1e70519030e890ad330eb2cb2cdb7ac7bf8060d9c4a0aca019bd7d4f1a2
+DIST pygobject-3.16.2.tar.xz 725544 SHA256 de620e00fe7ecb788aa2dc0d664e41f71b8e718e728168e8d982cf193a9e7e64 SHA512 9a742db4b05fdf0cf2b7bb9139d5f43b4a4e25b4652e8bd3aa8d6f64b03b745b57c047dfc95335045126d0dd4c797989d95d6a1bdb4752cab8e04146470653bf WHIRLPOOL d39b5f23ca33f4331582fd8229a348db679b1db1b9f5daff2639a03ec70f31bfcf2f7ac7a67cc3d54a2444faa228b878fdd9556110af10c3246087a634ba88e3
diff --git a/dev-python/pygobject/files/pygobject-2.28.3-fix-codegen-location.patch b/dev-python/pygobject/files/pygobject-2.28.3-fix-codegen-location.patch
new file mode 100644
index 00000000000..44440a526b8
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.3-fix-codegen-location.patch
@@ -0,0 +1,64 @@
+From b3e852d29bfd1e90f7e0da409fd0ae36cc01675a Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Fri, 8 Apr 2011 15:36:35 +0200
+Subject: [PATCH 1/3] Move codegen to a non-private directory
+
+---
+ codegen/Makefile.am | 2 +-
+ codegen/pygobject-codegen-2.0.in | 3 ++-
+ pygobject-2.0.pc.in | 3 ++-
+ 3 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/codegen/Makefile.am b/codegen/Makefile.am
+index f9886eb..d714ff2 100644
+--- a/codegen/Makefile.am
++++ b/codegen/Makefile.am
+@@ -2,7 +2,7 @@ PLATFORM_VERSION = 2.0
+
+ bin_SCRIPTS = pygobject-codegen-$(PLATFORM_VERSION)
+
+-codegendir = $(pkgdatadir)/$(PLATFORM_VERSION)/codegen
++codegendir = $(pyexecdir)/gtk-2.0/codegen
+
+ codegen_SCRIPTS = \
+ code-coverage.py \
+diff --git a/codegen/pygobject-codegen-2.0.in b/codegen/pygobject-codegen-2.0.in
+index c5c912e..c04451b 100644
+--- a/codegen/pygobject-codegen-2.0.in
++++ b/codegen/pygobject-codegen-2.0.in
+@@ -1,9 +1,10 @@
+ #!/bin/sh
+
+ prefix=@prefix@
++exec_prefix=@exec_prefix@
+ datarootdir=@datarootdir@
+ datadir=@datadir@
+-codegendir=${datadir}/pygobject/2.0/codegen
++codegendir=@pyexecdir@/gtk-2.0/codegen
+
+ PYTHONPATH=$codegendir
+ export PYTHONPATH
+diff --git a/pygobject-2.0.pc.in b/pygobject-2.0.pc.in
+index a47b685..0d1a811 100644
+--- a/pygobject-2.0.pc.in
++++ b/pygobject-2.0.pc.in
+@@ -4,6 +4,7 @@ includedir=@includedir@
+ datarootdir=@datarootdir@
+ datadir=@datadir@
+ libdir=@libdir@
++pyexecdir=@pyexecdir@
+
+ # you can use the --variable=pygtkincludedir argument to
+ # pkg-config to get this value. You might want to use this to
+@@ -12,7 +13,7 @@ pygtkincludedir=${includedir}/pygtk-2.0
+ fixxref=${datadir}/pygobject/xsl/fixxref.py
+ pygdocs=${datadir}/gtk-doc/html/pygobject
+ defsdir=${datadir}/pygobject/2.0/defs
+-codegendir=${datadir}/pygobject/2.0/codegen
++codegendir=${pyexecdir}/gtk-2.0/codegen
+ overridesdir=@pyexecdir@/gi/overrides
+
+ Name: PyGObject
+--
+1.7.4.1
+
diff --git a/dev-python/pygobject/files/pygobject-2.28.3-make_check.patch b/dev-python/pygobject/files/pygobject-2.28.3-make_check.patch
new file mode 100644
index 00000000000..45c04b96780
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.3-make_check.patch
@@ -0,0 +1,76 @@
+From b5c4b8b97a1ccb9a4c63ab726ea9c84d81ef51ca Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Fri, 5 Nov 2010 23:39:08 +0100
+Subject: [PATCH 2/3] Do not build tests unless needed
+
+---
+ tests/Makefile.am | 12 +++++-------
+ tests/runtests.py | 2 ++
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index bad15f0..5b0859a 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -1,7 +1,7 @@
+ CLEANFILES =
+-noinst_LTLIBRARIES =
++check_LTLIBRARIES =
+ if ENABLE_INTROSPECTION
+-noinst_LTLIBRARIES += libregress.la libgimarshallingtests.la
++check_LTLIBRARIES += libregress.la libgimarshallingtests.la
+
+ nodist_libregress_la_SOURCES = $(GI_DATADIR)/tests/regress.c $(GI_DATADIR)/tests/regress.h
+ libregress_la_CFLAGS = $(GIO_CFLAGS) $(PYCAIRO_CFLAGS)
+@@ -46,7 +46,7 @@ gschemas.compiled: org.gnome.test.gschema.xml
+ CLEANFILES += Regress-1.0.gir Regress-1.0.typelib GIMarshallingTests-1.0.gir GIMarshallingTests-1.0.typelib gschemas.compiled
+ endif
+
+-noinst_LTLIBRARIES += testhelper.la
++check_LTLIBRARIES += testhelper.la
+
+ testhelper_la_CFLAGS = -I$(top_srcdir)/gobject -I$(top_srcdir)/glib $(PYTHON_INCLUDES) $(GLIB_CFLAGS)
+ testhelper_la_LDFLAGS = -module -avoid-version
+@@ -66,8 +66,6 @@ testhelper.la: $(testhelper_la_OBJECTS) $(testhelper_la_DEPENDENCIES)
+ test -L $@ || $(LN_S) .libs/$@ $@
+
+
+-all: $(LTLIBRARIES:.la=.so)
+-
+ TEST_FILES_STATIC = \
+ test_gobject.py \
+ test_interface.py \
+@@ -109,7 +107,7 @@ EXTRA_DIST = \
+ EXTRA_DIST += $(TEST_FILES_STATIC) $(TEST_FILES_GI) $(TEST_FILES_GIO)
+
+ clean-local:
+- rm -f $(LTLIBRARIES:.la=.so) file.txt~
++ rm -f $(check_LTLIBRARIES:.la=.so) file.txt~
+
+ DBUS_LAUNCH=$(shell which dbus-launch)
+ RUN_TESTS_ENV_VARS= \
+@@ -121,7 +119,7 @@ RUN_TESTS_ENV_VARS= \
+ RUN_TESTS_LAUNCH=$(RUN_TESTS_ENV_VARS) $(DBUS_LAUNCH) $(EXEC_NAME) $(PYTHON) $(srcdir)/runtests.py
+
+ # run tests in separately to avoid loading static and introspection bindings in the same process
+-check-local: $(LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled
++check-local: $(check_LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled
+ TEST_FILES="$(TEST_FILES_STATIC)" $(RUN_TESTS_LAUNCH)
+ TEST_FILES="$(TEST_FILES_GI)" $(RUN_TESTS_LAUNCH)
+ if BUILD_GIO
+diff --git a/tests/runtests.py b/tests/runtests.py
+index 2bb8637..4107bcf 100644
+--- a/tests/runtests.py
++++ b/tests/runtests.py
+@@ -6,6 +6,8 @@ import sys
+
+ import unittest
+
++# Some tests fail with translated messages.
++os.environ["LC_ALL"] = "C"
+
+ # force untranslated messages, as we check for them in some tests
+ os.environ['LC_MESSAGES'] = 'C'
+--
+1.7.4.1
+
diff --git a/dev-python/pygobject/files/pygobject-2.28.3-support_multiple_python_versions.patch b/dev-python/pygobject/files/pygobject-2.28.3-support_multiple_python_versions.patch
new file mode 100644
index 00000000000..65d881a43d2
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.3-support_multiple_python_versions.patch
@@ -0,0 +1,103 @@
+From 2f75378f3c56f245cabdcd2c52b561dbb878db2d Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Fri, 8 Apr 2011 15:43:39 +0200
+Subject: [PATCH 3/3] Enable support to build against multiple version of python
+
+---
+ codegen/pygobject-codegen-2.0.in | 2 +-
+ gi/Makefile.am | 2 +-
+ gio/Makefile.am | 2 +-
+ glib/Makefile.am | 10 +++++-----
+ gobject/Makefile.am | 2 +-
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/codegen/pygobject-codegen-2.0.in b/codegen/pygobject-codegen-2.0.in
+index c04451b..194e5ba 100644
+--- a/codegen/pygobject-codegen-2.0.in
++++ b/codegen/pygobject-codegen-2.0.in
+@@ -4,7 +4,7 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ datarootdir=@datarootdir@
+ datadir=@datadir@
+-codegendir=@pyexecdir@/gtk-2.0/codegen
++codegendir=$(@PYTHON@ -c "from distutils import sysconfig; print sysconfig.get_python_lib(1, 0, prefix='@exec_prefix@')")/gtk-2.0/codegen
+
+ PYTHONPATH=$codegendir
+ export PYTHONPATH
+diff --git a/gi/Makefile.am b/gi/Makefile.am
+index 31f6c79..8690522 100644
+--- a/gi/Makefile.am
++++ b/gi/Makefile.am
+@@ -25,7 +25,7 @@ _gi_la_LDFLAGS = \
+ -export-symbols-regex "init_gi|PyInit__gi"
+ _gi_la_LIBADD = \
+ $(GI_LIBS) \
+- $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@.la
++ $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
+ _gi_la_SOURCES = \
+ pygi-repository.c \
+ pygi-repository.h \
+diff --git a/gio/Makefile.am b/gio/Makefile.am
+index 6b3eb57..00e1c54 100644
+--- a/gio/Makefile.am
++++ b/gio/Makefile.am
+@@ -67,7 +67,7 @@ EXTRA_DIST += $(GIO_DEFS) $(GIO_OVERRIDES)
+ gio.c: $(GIO_DEFS) $(GIO_OVERRIDES)
+ _gio_la_CFLAGS = $(GIO_CFLAGS)
+ _gio_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gio
+-_gio_la_LIBADD = $(GIO_LIBS) $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@.la
++_gio_la_LIBADD = $(GIO_LIBS) $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
+ _gio_la_SOURCES = \
+ giomodule.c \
+ pygio-utils.c \
+diff --git a/glib/Makefile.am b/glib/Makefile.am
+index e210318..df39687 100644
+--- a/glib/Makefile.am
++++ b/glib/Makefile.am
+@@ -4,7 +4,7 @@ INCLUDES = $(PYTHON_INCLUDES) $(GLIB_CFLAGS) -DPY_SSIZE_T_CLEAN
+ pkgincludedir = $(includedir)/pygtk-2.0
+ pkginclude_HEADERS = pyglib.h
+
+-lib_LTLIBRARIES = libpyglib-2.0-@PYTHON_BASENAME@.la
++lib_LTLIBRARIES = libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
+
+ pkgpyexecdir = $(pyexecdir)
+
+@@ -19,9 +19,9 @@ if PLATFORM_WIN32
+ common_ldflags += -no-undefined
+ endif
+
+-libpyglib_2_0_@PYTHON_BASENAME@_la_CFLAGS = $(GLIB_CFLAGS)
+-libpyglib_2_0_@PYTHON_BASENAME@_la_LIBADD = $(GLIB_LIBS) $(FFI_LIBS)
+-libpyglib_2_0_@PYTHON_BASENAME@_la_SOURCES = \
++libpyglib_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_CFLAGS = $(GLIB_CFLAGS)
++libpyglib_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_LIBADD = $(GLIB_LIBS) $(FFI_LIBS)
++libpyglib_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_SOURCES = \
+ pyglib.c \
+ pyglib.h \
+ pyglib-private.h \
+@@ -29,7 +29,7 @@ libpyglib_2_0_@PYTHON_BASENAME@_la_SOURCES = \
+
+ _glib_la_CFLAGS = $(GLIB_CFLAGS)
+ _glib_la_LDFLAGS = $(common_ldflags) -export-symbols-regex "_glib|PyInit__glib"
+-_glib_la_LIBADD = $(GLIB_LIBS) libpyglib-2.0-@PYTHON_BASENAME@.la
++_glib_la_LIBADD = $(GLIB_LIBS) libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
+ _glib_la_SOURCES = \
+ glibmodule.c \
+ pygiochannel.c \
+diff --git a/gobject/Makefile.am b/gobject/Makefile.am
+index 7208329..3f9ad8e 100644
+--- a/gobject/Makefile.am
++++ b/gobject/Makefile.am
+@@ -35,7 +35,7 @@ _gobject_la_LDFLAGS = $(common_ldflags) -export-symbols-regex "_gobject|PyInit__
+ _gobject_la_LIBADD = \
+ $(GLIB_LIBS) \
+ $(FFI_LIBS) \
+- $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@.la
++ $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
+ _gobject_la_SOURCES = \
+ gobjectmodule.c \
+ pygboxed.c \
+--
+1.7.4.1
+
diff --git a/dev-python/pygobject/files/pygobject-2.28.6-disable-failing-tests.patch b/dev-python/pygobject/files/pygobject-2.28.6-disable-failing-tests.patch
new file mode 100644
index 00000000000..f9d396dc4b5
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.6-disable-failing-tests.patch
@@ -0,0 +1,98 @@
+From 9d8867a7c67a14d055a0dd8db5f6a9aae5762a04 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sun, 13 Jan 2013 19:50:14 -0500
+Subject: [PATCH] Disable failing tests
+
+---
+ tests/test_gio.py | 13 ++++++++-----
+ tests/test_overrides.py | 4 ++--
+ 2 files changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/tests/test_gio.py b/tests/test_gio.py
+index e14eddf..a4d1bc7 100644
+--- a/tests/test_gio.py
++++ b/tests/test_gio.py
+@@ -650,10 +650,11 @@ class TestInputStream(unittest.TestCase):
+ else:
+ return read_data
+
++ """
+ def testReadAsync(self):
+ def callback(stream, result):
+- self.assertEquals(result.get_op_res_gssize(), 7)
+ try:
++ self.assertEquals(result.get_op_res_gssize(), 7)
+ data = stream.read_finish(result)
+ self.assertEquals(data, "testing")
+ stream.close()
+@@ -694,7 +695,7 @@ class TestInputStream(unittest.TestCase):
+ self.assertRaises(TypeError, self.stream.read_async, 1024,
+ priority=1, cancellable="bar")
+ self.assertRaises(TypeError, self.stream.read_async, 1024, 1, "bar")
+-
++ """
+
+ # FIXME: this makes 'make check' freeze
+ def _testCloseAsync(self):
+@@ -822,10 +823,11 @@ class TestOutputStream(unittest.TestCase):
+
+ self.assertEquals(stream.get_contents(), some_data)
+
++ """
+ def testWriteAsync(self):
+ def callback(stream, result):
+- self.assertEquals(result.get_op_res_gssize(), 7)
+ try:
++ self.assertEquals(result.get_op_res_gssize(), 7)
+ self.assertEquals(stream.write_finish(result), 7)
+ self.failUnless(os.path.exists("outputstream.txt"))
+ self.assertEquals(open("outputstream.txt").read(), "testing")
+@@ -861,6 +863,7 @@ class TestOutputStream(unittest.TestCase):
+ self.assertRaises(TypeError, self.stream.write_async, "foo",
+ priority=1, cancellable="bar")
+ self.assertRaises(TypeError, self.stream.write_async, "foo", 1, "bar")
++ """
+
+ # FIXME: this makes 'make check' freeze
+ def _testCloseAsync(self):
+@@ -1007,7 +1010,7 @@ class TestVfs(unittest.TestCase):
+ class TestVolume(unittest.TestCase):
+ def setUp(self):
+ self.monitor = gio.volume_monitor_get()
+-
++"""
+ def testVolumeEnumerate(self):
+ volumes = self.monitor.get_volumes()
+ self.failUnless(isinstance(volumes, list))
+@@ -1018,7 +1021,7 @@ class TestVolume(unittest.TestCase):
+ for id in ids:
+ if id is not None:
+ self.failUnless(isinstance(id, str))
+-
++"""
+ class TestFileInputStream(unittest.TestCase):
+ def setUp(self):
+ self._f = open("file.txt", "w+")
+diff --git a/tests/test_overrides.py b/tests/test_overrides.py
+index 47f38a3..063792d 100644
+--- a/tests/test_overrides.py
++++ b/tests/test_overrides.py
+@@ -337,13 +337,13 @@ class TestPango(unittest.TestCase):
+ desc = Pango.FontDescription('monospace')
+ self.assertEquals(desc.get_family(), 'monospace')
+ self.assertEquals(desc.get_variant(), Pango.Variant.NORMAL)
+-
++"""
+ def test_layout(self):
+ self.assertRaises(TypeError, Pango.Layout)
+ context = Pango.Context()
+ layout = Pango.Layout(context)
+ self.assertEquals(layout.get_context(), context)
+-
++"""
+ class TestGdk(unittest.TestCase):
+
+ def test_constructor(self):
+--
+1.8.1
+
diff --git a/dev-python/pygobject/files/pygobject-2.28.6-gio-types-2.32.patch b/dev-python/pygobject/files/pygobject-2.28.6-gio-types-2.32.patch
new file mode 100644
index 00000000000..fa0adf54ad0
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.6-gio-types-2.32.patch
@@ -0,0 +1,50 @@
+From 42d01f060c5d764baa881d13c103d68897163a49 Mon Sep 17 00:00:00 2001
+From: Ryan Lortie <desrt@desrt.ca>
+Date: Mon, 12 Mar 2012 16:44:14 -0400
+Subject: [PATCH] gio-types.defs: change some enums to flags
+
+These flags types were originally incorrectly handled in glib as being
+enums. That bug was fixed, but they're still enums here, leading to
+warnings about the mismatch.
+
+Change them to flags.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=668522
+---
+ gio/gio-types.defs | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/gio/gio-types.defs b/gio/gio-types.defs
+index 331e0bc..7eee5c8 100644
+--- a/gio/gio-types.defs
++++ b/gio/gio-types.defs
+@@ -526,7 +526,7 @@
+ )
+ )
+
+-(define-enum MountMountFlags
++(define-flags MountMountFlags
+ (in-module "gio")
+ (c-name "GMountMountFlags")
+ (gtype-id "G_TYPE_MOUNT_MOUNT_FLAGS")
+@@ -545,7 +545,7 @@
+ )
+ )
+
+-(define-enum DriveStartFlags
++(define-flags DriveStartFlags
+ (in-module "gio")
+ (c-name "GDriveStartFlags")
+ (gtype-id "G_TYPE_DRIVE_START_FLAGS")
+@@ -770,7 +770,7 @@
+ )
+ )
+
+-(define-enum SocketMsgFlags
++(define-flags SocketMsgFlags
+ (in-module "gio")
+ (c-name "GSocketMsgFlags")
+ (gtype-id "G_TYPE_SOCKET_MSG_FLAGS")
+--
+1.7.8.5
+
diff --git a/dev-python/pygobject/files/pygobject-2.28.6-glib-2.36-class_init.patch b/dev-python/pygobject/files/pygobject-2.28.6-glib-2.36-class_init.patch
new file mode 100644
index 00000000000..b2f9b147f84
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.6-glib-2.36-class_init.patch
@@ -0,0 +1,315 @@
+From 9456ba70fdb98b3a4eb7ee2f630182387a54ca00 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martinpitt@gnome.org>
+Date: Tue, 19 Feb 2013 15:39:56 +0100
+Subject: [PATCH] Move property and signal creation into _class_init()
+
+We must not add class interfaces after g_type_class_ref() has been called the
+first time. Move signal and property creation from pyg_type_register() into
+pyg_object_class_init(), and drop the hack of registering interfaces twice.
+
+This is a backport of commit efcb0f9fd for 2.28.x. This allows old pygtk
+applications to work with pygobject 2.28.x and glib 2.35.x.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=694108
+---
+ gobject/gobjectmodule.c | 177 +++++++++++++++++++-----------------------------
+ 1 file changed, 70 insertions(+), 107 deletions(-)
+
+diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
+index 2a84606..91f7315 100644
+--- a/gobject/gobjectmodule.c
++++ b/gobject/gobjectmodule.c
+@@ -312,13 +312,6 @@ pyg_object_get_property (GObject *object, guint property_id,
+ pyglib_gil_state_release(state);
+ }
+
+-static void
+-pyg_object_class_init(GObjectClass *class, PyObject *py_class)
+-{
+- class->set_property = pyg_object_set_property;
+- class->get_property = pyg_object_get_property;
+-}
+-
+ typedef struct _PyGSignalAccumulatorData {
+ PyObject *callable;
+ PyObject *user_data;
+@@ -484,15 +477,14 @@ override_signal(GType instance_type, const gchar *signal_name)
+ }
+
+ static PyObject *
+-add_signals (GType instance_type, PyObject *signals)
++add_signals (GObjectClass *klass, PyObject *signals)
+ {
+ gboolean ret = TRUE;
+- GObjectClass *oclass;
+ Py_ssize_t pos = 0;
+ PyObject *key, *value, *overridden_signals = NULL;
++ GType instance_type = G_OBJECT_CLASS_TYPE (klass);
+
+ overridden_signals = PyDict_New();
+- oclass = g_type_class_ref(instance_type);
+ while (PyDict_Next(signals, &pos, &key, &value)) {
+ const gchar *signal_name;
+ gchar *signal_name_canon, *c;
+@@ -530,7 +522,6 @@ add_signals (GType instance_type, PyObject *signals)
+ if (!ret)
+ break;
+ }
+- g_type_class_unref(oclass);
+ if (ret)
+ return overridden_signals;
+ else {
+@@ -800,14 +791,12 @@ pyg_param_spec_from_object (PyObject *tuple)
+ }
+
+ static gboolean
+-add_properties (GType instance_type, PyObject *properties)
++add_properties (GObjectClass *klass, PyObject *properties)
+ {
+ gboolean ret = TRUE;
+- GObjectClass *oclass;
+ Py_ssize_t pos = 0;
+ PyObject *key, *value;
+
+- oclass = g_type_class_ref(instance_type);
+ while (PyDict_Next(properties, &pos, &key, &value)) {
+ const gchar *prop_name;
+ GType prop_type;
+@@ -873,7 +862,7 @@ add_properties (GType instance_type, PyObject *properties)
+ Py_DECREF(slice);
+
+ if (pspec) {
+- g_object_class_install_property(oclass, 1, pspec);
++ g_object_class_install_property(klass, 1, pspec);
+ } else {
+ PyObject *type, *value, *traceback;
+ ret = FALSE;
+@@ -883,7 +872,7 @@ add_properties (GType instance_type, PyObject *properties)
+ g_snprintf(msg, 256,
+ "%s (while registering property '%s' for GType '%s')",
+ PYGLIB_PyUnicode_AsString(value),
+- prop_name, g_type_name(instance_type));
++ prop_name, G_OBJECT_CLASS_NAME(klass));
+ Py_DECREF(value);
+ value = PYGLIB_PyUnicode_FromString(msg);
+ }
+@@ -892,11 +881,63 @@ add_properties (GType instance_type, PyObject *properties)
+ }
+ }
+
+- g_type_class_unref(oclass);
+ return ret;
+ }
+
+ static void
++pyg_object_class_init(GObjectClass *class, PyObject *py_class)
++{
++ PyObject *gproperties, *gsignals, *overridden_signals;
++ PyObject *class_dict = ((PyTypeObject*) py_class)->tp_dict;
++
++ class->set_property = pyg_object_set_property;
++ class->get_property = pyg_object_get_property;
++
++ /* install signals */
++ /* we look this up in the instance dictionary, so we don't
++ * accidentally get a parent type's __gsignals__ attribute. */
++ gsignals = PyDict_GetItemString(class_dict, "__gsignals__");
++ if (gsignals) {
++ if (!PyDict_Check(gsignals)) {
++ PyErr_SetString(PyExc_TypeError,
++ "__gsignals__ attribute not a dict!");
++ return;
++ }
++ if (!(overridden_signals = add_signals(class, gsignals))) {
++ return;
++ }
++ if (PyDict_SetItemString(class_dict, "__gsignals__",
++ overridden_signals)) {
++ return;
++ }
++ Py_DECREF(overridden_signals);
++
++ PyDict_DelItemString(class_dict, "__gsignals__");
++ } else {
++ PyErr_Clear();
++ }
++
++ /* install properties */
++ /* we look this up in the instance dictionary, so we don't
++ * accidentally get a parent type's __gproperties__ attribute. */
++ gproperties = PyDict_GetItemString(class_dict, "__gproperties__");
++ if (gproperties) {
++ if (!PyDict_Check(gproperties)) {
++ PyErr_SetString(PyExc_TypeError,
++ "__gproperties__ attribute not a dict!");
++ return;
++ }
++ if (!add_properties(class, gproperties)) {
++ return;
++ }
++ PyDict_DelItemString(class_dict, "__gproperties__");
++ /* Borrowed reference. Py_DECREF(gproperties); */
++ } else {
++ PyErr_Clear();
++ }
++}
++
++static void
+ pyg_register_class_init(GType gtype, PyGClassInitFunc class_init)
+ {
+ GSList *list;
+@@ -1068,7 +1109,7 @@ pygobject__g_instance_init(GTypeInstance *instance,
+ */
+ static void
+ pyg_type_add_interfaces(PyTypeObject *class, GType instance_type,
+- PyObject *bases, gboolean new_interfaces,
++ PyObject *bases,
+ GType *parent_interfaces, guint n_parent_interfaces)
+ {
+ int i;
+@@ -1082,7 +1123,6 @@ pyg_type_add_interfaces(PyTypeObject *class, GType instance_type,
+ guint k;
+ PyObject *base = PyTuple_GET_ITEM(bases, i);
+ GType itype;
+- gboolean is_new = TRUE;
+ const GInterfaceInfo *iinfo;
+ GInterfaceInfo iinfo_copy;
+
+@@ -1099,16 +1139,6 @@ pyg_type_add_interfaces(PyTypeObject *class, GType instance_type,
+ if (!G_TYPE_IS_INTERFACE(itype))
+ continue;
+
+- for (k = 0; k < n_parent_interfaces; ++k) {
+- if (parent_interfaces[k] == itype) {
+- is_new = FALSE;
+- break;
+- }
+- }
+-
+- if ((new_interfaces && !is_new) || (!new_interfaces && is_new))
+- continue;
+-
+ iinfo = pyg_lookup_interface_info(itype);
+ if (!iinfo) {
+ gchar *error;
+@@ -1129,7 +1159,7 @@ pyg_type_add_interfaces(PyTypeObject *class, GType instance_type,
+ int
+ pyg_type_register(PyTypeObject *class, const char *type_name)
+ {
+- PyObject *gtype, *gsignals, *gproperties, *overridden_signals;
++ PyObject *gtype;
+ GType parent_type, instance_type;
+ GType *parent_interfaces;
+ guint n_parent_interfaces;
+@@ -1216,88 +1246,22 @@ pyg_type_register(PyTypeObject *class, const char *type_name)
+ }
+
+ /*
+- * Note: Interfaces to be implemented are searched twice. First
+- * we register interfaces that are already implemented by a parent
+- * type. The second time, the remaining interfaces are
+- * registered, i.e. the ones that are not implemented by a parent
+- * type. In between these two loops, properties and signals are
+- * registered. It has to be done this way, in two steps,
+- * otherwise glib will complain. If registering all interfaces
+- * always before properties, you get an error like:
+- *
+- * ../gobject:121: Warning: Object class
+- * test_interface+MyObject doesn't implement property
+- * 'some-property' from interface 'TestInterface'
+- *
+- * If, on the other hand, you register interfaces after
+- * registering the properties, you get something like:
+- *
+- * ../gobject:121: Warning: cannot add interface type
+- * `TestInterface' to type `test_interface+MyUnknown', since
+- * type `test_interface+MyUnknown' already conforms to
+- * interface
+- *
+- * This looks like a GLib quirk, but no bug has been filed
+- * upstream. However we have a unit test for this particular
+- * problem, which can be found in test_interfaces.py, class
+- * TestInterfaceImpl.
++ * Note, all interfaces need to be registered before the first
++ * g_type_class_ref(), see bug #686149.
+ *
+ * See also comment above pyg_type_add_interfaces().
+ */
+- pyg_type_add_interfaces(class, instance_type, class->tp_bases, FALSE,
++ pyg_type_add_interfaces(class, instance_type, class->tp_bases,
+ parent_interfaces, n_parent_interfaces);
+
+- /* we look this up in the instance dictionary, so we don't
+- * accidentally get a parent type's __gsignals__ attribute. */
+- gsignals = PyDict_GetItemString(class->tp_dict, "__gsignals__");
+- if (gsignals) {
+- if (!PyDict_Check(gsignals)) {
+- PyErr_SetString(PyExc_TypeError,
+- "__gsignals__ attribute not a dict!");
+- g_free(parent_interfaces);
+- return -1;
+- }
+- if (!(overridden_signals = add_signals(instance_type, gsignals))) {
+- g_free(parent_interfaces);
+- return -1;
+- }
+- if (PyDict_SetItemString(class->tp_dict, "__gsignals__",
+- overridden_signals)) {
+- g_free(parent_interfaces);
+- return -1;
+- }
+- Py_DECREF(overridden_signals);
+- } else {
+- PyErr_Clear();
+- }
+
+- /* we look this up in the instance dictionary, so we don't
+- * accidentally get a parent type's __gsignals__ attribute. */
+- gproperties = PyDict_GetItemString(class->tp_dict, "__gproperties__");
+- if (gproperties) {
+- if (!PyDict_Check(gproperties)) {
+- PyErr_SetString(PyExc_TypeError,
+- "__gproperties__ attribute not a dict!");
+- g_free(parent_interfaces);
+- return -1;
+- }
+- if (!add_properties(instance_type, gproperties)) {
+- g_free(parent_interfaces);
+- return -1;
+- }
+- PyDict_DelItemString(class->tp_dict, "__gproperties__");
+- /* Borrowed reference. Py_DECREF(gproperties); */
+- } else {
+- PyErr_Clear();
++ gclass = g_type_class_ref(instance_type);
++ if (PyErr_Occurred() != NULL) {
++ g_type_class_unref(gclass);
++ g_free(parent_interfaces);
++ return -1;
+ }
+
+- /* Register new interfaces, that are _not_ already defined by
+- * the parent type. FIXME: See above.
+- */
+- pyg_type_add_interfaces(class, instance_type, class->tp_bases, TRUE,
+- parent_interfaces, n_parent_interfaces);
+-
+- gclass = g_type_class_ref(instance_type);
+ if (pyg_run_class_init(instance_type, gclass, class)) {
+ g_type_class_unref(gclass);
+ g_free(parent_interfaces);
+@@ -1306,9 +1270,8 @@ pyg_type_register(PyTypeObject *class, const char *type_name)
+ g_type_class_unref(gclass);
+ g_free(parent_interfaces);
+
+- if (gsignals)
+- PyDict_DelItemString(class->tp_dict, "__gsignals__");
+-
++ if (PyErr_Occurred() != NULL)
++ return -1;
+ return 0;
+ }
+
+--
+1.8.3.2
+
diff --git a/dev-python/pygobject/files/pygobject-2.28.6-set_qdata.patch b/dev-python/pygobject/files/pygobject-2.28.6-set_qdata.patch
new file mode 100644
index 00000000000..55376b59d82
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.6-set_qdata.patch
@@ -0,0 +1,28 @@
+From 42d871eb0b08ee6d55e95cc7e4b90844919555b9 Mon Sep 17 00:00:00 2001
+From: Ivan Stankovic <ivan.stankovic@avl.com>
+Date: Tue, 21 Feb 2012 12:24:58 +0100
+Subject: [PATCH] Fix set_qdata warning on accessing NULL gobject property
+
+https://bugzilla.gnome.org/show_bug.cgi?id=661155
+---
+ gobject/pygobject.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/gobject/pygobject.c b/gobject/pygobject.c
+index 6c2f06c..70dc89a 100644
+--- a/gobject/pygobject.c
++++ b/gobject/pygobject.c
+@@ -991,7 +991,9 @@ pygobject_new(GObject *obj)
+ PyObject *
+ pygobject_new_sunk(GObject *obj)
+ {
+- g_object_set_qdata (obj, pygobject_ref_sunk_key, GINT_TO_POINTER (1));
++ if (obj)
++ g_object_set_qdata (obj, pygobject_ref_sunk_key, GINT_TO_POINTER (1));
++
+ return pygobject_new_full(obj, TRUE, NULL);
+ }
+
+--
+1.7.8.5
+
diff --git a/dev-python/pygobject/files/pygobject-2.28.6-tests-no-introspection.patch b/dev-python/pygobject/files/pygobject-2.28.6-tests-no-introspection.patch
new file mode 100644
index 00000000000..d7e0c68e0dc
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-2.28.6-tests-no-introspection.patch
@@ -0,0 +1,33 @@
+From 9c8ec7495e9e73855dc284be293828572f408c92 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Tue, 25 Dec 2012 00:26:05 -0500
+Subject: [PATCH] Do not run introspection tests when building with
+ introspection disabled
+
+---
+ tests/Makefile.am | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index e60bad5..3a0d1b7 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -120,9 +120,14 @@ RUN_TESTS_ENV_VARS= \
+ RUN_TESTS_LAUNCH=$(RUN_TESTS_ENV_VARS) $(DBUS_LAUNCH) $(EXEC_NAME) $(PYTHON) $(srcdir)/runtests.py
+
+ # run tests in separately to avoid loading static and introspection bindings in the same process
+-check-local: $(check_LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled
++if ENABLE_INTROSPECTION
++CHECK_LOCAL_INTROSPECTION_REQ = Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled
++endif
++check-local: $(check_LTLIBRARIES:.la=.so) $(CHECK_LOCAL_INTROSPECTION_REQ)
+ TEST_FILES="$(TEST_FILES_STATIC)" $(RUN_TESTS_LAUNCH)
++if ENABLE_INTROSPECTION
+ TEST_FILES="$(TEST_FILES_GI)" $(RUN_TESTS_LAUNCH)
++endif
+ if BUILD_GIO
+ TEST_FILES="$(TEST_FILES_GIO)" $(RUN_TESTS_LAUNCH)
+ endif
+--
+1.8.0.2
+
diff --git a/dev-python/pygobject/files/pygobject-3.16.1-unittest.patch b/dev-python/pygobject/files/pygobject-3.16.1-unittest.patch
new file mode 100644
index 00000000000..5ee15b1dd1b
--- /dev/null
+++ b/dev-python/pygobject/files/pygobject-3.16.1-unittest.patch
@@ -0,0 +1,15 @@
+Comment out unittest that ought to work but for some reason does not want to.
+
+--- a/tests/test_glib.py 2015-05-10 14:01:45.873164005 +0200
++++ b/tests/test_glib.py 2015-03-05 09:32:55.000000000 +0100
+@@ -38,8 +38,8 @@
+ def test_xdg_dirs(self):
+ d = GLib.get_user_data_dir()
+ self.assertTrue('/' in d, d)
+- d = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_MUSIC)
+- self.assertTrue('/' in d, d)
++ #d = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_MUSIC)
++ #self.assertTrue('/' in d, d)
+ with warnings.catch_warnings():
+ warnings.simplefilter('ignore', PyGIDeprecationWarning)
+
diff --git a/dev-python/pygobject/metadata.xml b/dev-python/pygobject/metadata.xml
new file mode 100644
index 00000000000..9b1bc26a9df
--- /dev/null
+++ b/dev-python/pygobject/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pygobject/pygobject-2.28.6-r55.ebuild b/dev-python/pygobject/pygobject-2.28.6-r55.ebuild
new file mode 100644
index 00000000000..01c5f60590e
--- /dev/null
+++ b/dev-python/pygobject/pygobject-2.28.6-r55.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils gnome2 python-r1 virtualx
+
+DESCRIPTION="GLib's GObject library bindings for Python"
+HOMEPAGE="http://www.pygtk.org/"
+
+LICENSE="LGPL-2.1+"
+SLOT="2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="examples libffi test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEPEND=">=dev-libs/glib-2.24.0:2
+ dev-lang/python-exec:2
+ libffi? ( virtual/libffi:= )
+ ${PYTHON_DEPS}
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gtk-doc-am
+ virtual/pkgconfig
+ test? (
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc )
+"
+RDEPEND="${COMMON_DEPEND}
+ !<dev-python/pygtk-2.23"
+
+src_prepare() {
+ # Fix FHS compliance, see upstream bug #535524
+ epatch "${FILESDIR}/${PN}-2.28.3-fix-codegen-location.patch"
+
+ # Do not build tests if unneeded, bug #226345
+ epatch "${FILESDIR}/${PN}-2.28.3-make_check.patch"
+
+ # Support installation for multiple Python versions, upstream bug #648292
+ epatch "${FILESDIR}/${PN}-2.28.3-support_multiple_python_versions.patch"
+
+ # Disable tests that fail
+ epatch "${FILESDIR}/${P}-disable-failing-tests.patch"
+
+ # Disable introspection tests when we build with --disable-introspection
+ epatch "${FILESDIR}/${P}-tests-no-introspection.patch"
+
+ # Fix warning spam
+ epatch "${FILESDIR}/${P}-set_qdata.patch"
+ epatch "${FILESDIR}/${P}-gio-types-2.32.patch"
+
+ # Fix glib-2.36 compatibility, bug #486602
+ epatch "${FILESDIR}/${P}-glib-2.36-class_init.patch"
+
+ sed -i \
+ -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' \
+ -e 's:AM_PROG_CC_STDC:AC_PROG_CC:' \
+ configure.ac || die
+
+ eautoreconf
+ gnome2_src_prepare
+
+ python_copy_sources
+
+ prepare_shebangs() {
+ # Make a backup with unconverted shebangs to keep python_doscript happy
+ cp codegen/codegen.py pygobject-codegen-2.0
+ sed -e "s%#! \?/usr/bin/env python%#!${PYTHON}%" \
+ -i codegen/*.py || die "shebang convertion failed"
+ }
+ python_foreach_impl run_in_build_dir prepare_shebangs
+}
+
+src_configure() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+ # --disable-introspection and --disable-cairo because we use pygobject:3
+ # for introspection support
+ G2CONF="${G2CONF}
+ --disable-introspection
+ --disable-cairo
+ $(use_with libffi ffi)"
+
+ python_foreach_impl run_in_build_dir gnome2_src_configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+# FIXME: With python multiple ABI support, tests return 1 even when they pass
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
+
+ testing() {
+ export XDG_CACHE_HOME="${T}/${EPYTHON}"
+ run_in_build_dir Xemake -j1 check
+ unset XDG_CACHE_HOME
+ }
+ python_foreach_impl testing
+ unset GIO_USE_VFS
+}
+
+src_install() {
+ installing() {
+ local f prefixed_sitedir
+
+ gnome2_src_install
+
+ python_doscript pygobject-codegen-2.0
+
+ # Don't keep multiple copies of pygobject-codegen-2.0 script
+ prefixed_sitedir=$(python_get_sitedir)
+ dosym "${prefixed_sitedir#${EPREFIX}}/gtk-2.0/codegen/codegen.py" "/usr/lib/python-exec/${EPYTHON}/pygobject-codegen-2.0"
+ }
+ python_foreach_impl run_in_build_dir installing
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/pygobject/pygobject-3.12.2.ebuild b/dev-python/pygobject/pygobject-3.12.2.ebuild
new file mode 100644
index 00000000000..67f2b1b8954
--- /dev/null
+++ b/dev-python/pygobject/pygobject-3.12.2.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit gnome2 python-r1 virtualx
+
+DESCRIPTION="GLib's GObject library bindings for Python"
+HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject"
+
+LICENSE="LGPL-2.1+"
+SLOT="3"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="+cairo examples test +threads"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ test? ( cairo )
+"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-1.38
+ virtual/libffi:=
+ cairo? (
+ >=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}]
+ x11-libs/cairo )
+ ${PYTHON_DEPS}
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ cairo? ( x11-libs/cairo[glib] )
+ test? (
+ dev-libs/atk[introspection]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ x11-libs/cairo[glib]
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection] )
+"
+# gnome-base/gnome-common required by eautoreconf
+
+# We now disable introspection support in slot 2 per upstream recommendation
+# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however,
+# older versions of slot 2 installed their own site-packages/gi, and
+# slot 3 will collide with them.
+RDEPEND="${COMMON_DEPEND}
+ !<dev-python/pygtk-2.13
+ !<dev-python/pygobject-2.28.6-r50:2[introspection]
+"
+
+src_prepare() {
+ gnome2_src_prepare
+ python_copy_sources
+}
+
+src_configure() {
+ # Hard-enable libffi support since both gobject-introspection and
+ # glib-2.29.x rdepend on it anyway
+ # docs disabled by upstream default since they are very out of date
+ python_foreach_impl run_in_build_dir \
+ gnome2_src_configure \
+ $(use_enable cairo) \
+ $(use_enable threads thread)
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
+ export GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
+
+ testing() {
+ export XDG_CACHE_HOME="${T}/${EPYTHON}"
+ run_in_build_dir Xemake check
+ unset XDG_CACHE_HOME
+ }
+ python_foreach_impl testing
+ unset GIO_USE_VFS
+}
+
+src_install() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pygobject/pygobject-3.14.0.ebuild b/dev-python/pygobject/pygobject-3.14.0.ebuild
new file mode 100644
index 00000000000..2cc8d706890
--- /dev/null
+++ b/dev-python/pygobject/pygobject-3.14.0.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit gnome2 python-r1 virtualx
+
+DESCRIPTION="GLib's GObject library bindings for Python"
+HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject"
+
+LICENSE="LGPL-2.1+"
+SLOT="3"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="+cairo examples test +threads"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ test? ( cairo )
+"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-1.39
+ virtual/libffi:=
+ cairo? (
+ >=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}]
+ x11-libs/cairo )
+ ${PYTHON_DEPS}
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ cairo? ( x11-libs/cairo[glib] )
+ test? (
+ dev-libs/atk[introspection]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ x11-libs/cairo[glib]
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection] )
+"
+# gnome-base/gnome-common required by eautoreconf
+
+# We now disable introspection support in slot 2 per upstream recommendation
+# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however,
+# older versions of slot 2 installed their own site-packages/gi, and
+# slot 3 will collide with them.
+RDEPEND="${COMMON_DEPEND}
+ !<dev-python/pygtk-2.13
+ !<dev-python/pygobject-2.28.6-r50:2[introspection]
+"
+
+src_prepare() {
+ gnome2_src_prepare
+ python_copy_sources
+}
+
+src_configure() {
+ # Hard-enable libffi support since both gobject-introspection and
+ # glib-2.29.x rdepend on it anyway
+ # docs disabled by upstream default since they are very out of date
+ python_foreach_impl run_in_build_dir \
+ gnome2_src_configure \
+ $(use_enable cairo) \
+ $(use_enable threads thread)
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
+ export GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
+
+ testing() {
+ export XDG_CACHE_HOME="${T}/${EPYTHON}"
+ run_in_build_dir Xemake check
+ unset XDG_CACHE_HOME
+ }
+ python_foreach_impl testing
+ unset GIO_USE_VFS
+}
+
+src_install() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pygobject/pygobject-3.16.1.ebuild b/dev-python/pygobject/pygobject-3.16.1.ebuild
new file mode 100644
index 00000000000..9d8907c58d3
--- /dev/null
+++ b/dev-python/pygobject/pygobject-3.16.1.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils gnome2 python-r1 virtualx
+
+DESCRIPTION="GLib's GObject library bindings for Python"
+HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject"
+
+LICENSE="LGPL-2.1+"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="+cairo examples test +threads"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ test? ( cairo )
+"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-1.39
+ virtual/libffi:=
+ cairo? (
+ >=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}]
+ x11-libs/cairo )
+ ${PYTHON_DEPS}
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ cairo? ( x11-libs/cairo[glib] )
+ test? (
+ dev-libs/atk[introspection]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ x11-libs/cairo[glib]
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection] )
+"
+# gnome-base/gnome-common required by eautoreconf
+
+# We now disable introspection support in slot 2 per upstream recommendation
+# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however,
+# older versions of slot 2 installed their own site-packages/gi, and
+# slot 3 will collide with them.
+RDEPEND="${COMMON_DEPEND}
+ !<dev-python/pygtk-2.13
+ !<dev-python/pygobject-2.28.6-r50:2[introspection]
+"
+
+src_prepare() {
+ # Comment out broken unittest
+ epatch "${FILESDIR}"/${PN}-3.16.1-unittest.patch
+
+ gnome2_src_prepare
+ python_copy_sources
+}
+
+src_configure() {
+ # Hard-enable libffi support since both gobject-introspection and
+ # glib-2.29.x rdepend on it anyway
+ # docs disabled by upstream default since they are very out of date
+ python_foreach_impl run_in_build_dir \
+ gnome2_src_configure \
+ $(use_enable cairo) \
+ $(use_enable threads thread)
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
+ export GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
+ export SKIP_PEP8="yes"
+
+ testing() {
+ export XDG_CACHE_HOME="${T}/${EPYTHON}"
+ run_in_build_dir Xemake check
+ unset XDG_CACHE_HOME
+ }
+ python_foreach_impl testing
+ unset GIO_USE_VFS
+}
+
+src_install() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pygobject/pygobject-3.16.2.ebuild b/dev-python/pygobject/pygobject-3.16.2.ebuild
new file mode 100644
index 00000000000..e5610c23cd4
--- /dev/null
+++ b/dev-python/pygobject/pygobject-3.16.2.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils gnome2 python-r1 virtualx
+
+DESCRIPTION="GLib's GObject library bindings for Python"
+HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject"
+
+LICENSE="LGPL-2.1+"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="+cairo examples test +threads"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ test? ( cairo )
+"
+
+COMMON_DEPEND="${PYTHON_DEPS}
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-1.39:=
+ virtual/libffi:=
+ cairo? (
+ >=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}]
+ x11-libs/cairo )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ cairo? ( x11-libs/cairo[glib] )
+ test? (
+ dev-libs/atk[introspection]
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ x11-libs/cairo[glib]
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection]
+ !sparc? ( python_targets_python2_7? ( dev-python/pyflakes[$(python_gen_usedep python2_7)] ) ) )
+"
+# FIXME: remove "!sparc?" automagic nonsense above when pyflakes is
+# keyworded on sparc, bug #553380
+
+# gnome-base/gnome-common required by eautoreconf
+
+# We now disable introspection support in slot 2 per upstream recommendation
+# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however,
+# older versions of slot 2 installed their own site-packages/gi, and
+# slot 3 will collide with them.
+RDEPEND="${COMMON_DEPEND}
+ !<dev-python/pygtk-2.13
+ !<dev-python/pygobject-2.28.6-r50:2[introspection]
+"
+
+src_prepare() {
+ # Comment out broken unittest
+ epatch "${FILESDIR}"/${PN}-3.16.1-unittest.patch
+
+ gnome2_src_prepare
+ python_copy_sources
+}
+
+src_configure() {
+ # Hard-enable libffi support since both gobject-introspection and
+ # glib-2.29.x rdepend on it anyway
+ # docs disabled by upstream default since they are very out of date
+ configuring() {
+ gnome2_src_configure \
+ $(use_enable cairo) \
+ $(use_enable threads thread)
+
+ # Pyflakes tests work only in python2, bug #516744
+ if use test && [[ ${EPYTHON} != python2.7 ]]; then
+ sed -e 's/if type pyflakes/if false/' \
+ -i Makefile || die "sed failed"
+ fi
+ }
+
+ python_foreach_impl run_in_build_dir configuring
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
+ export GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
+ export SKIP_PEP8="yes"
+
+ testing() {
+ export XDG_CACHE_HOME="${T}/${EPYTHON}"
+ run_in_build_dir Xemake check
+ unset XDG_CACHE_HOME
+ }
+ python_foreach_impl testing
+ unset GIO_USE_VFS
+}
+
+src_install() {
+ DOCS="AUTHORS ChangeLog* NEWS README"
+
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pygoocanvas/Manifest b/dev-python/pygoocanvas/Manifest
new file mode 100644
index 00000000000..4f8d6b42be8
--- /dev/null
+++ b/dev-python/pygoocanvas/Manifest
@@ -0,0 +1 @@
+DIST pygoocanvas-0.14.1.tar.bz2 331136 SHA256 640f54dc62eb2bd4be8ef9687c89baadd7d277895841dd24909ad9029effb3f5 SHA512 cd8175eb51358236b6488d01706d719abfdd0f3d00568e7563b2a1d7edc01f3d77b1ef23b7c062ab4a78d46d5f542c483fc883a81d2f31ce9be2b6a7385c2d22 WHIRLPOOL 3fb234d4271efc0d15fa26fc995411ba7d6ef4a3da2ef150cc3d1bd599e6e1283718d3500ec833cd176716a19765248e74d2299770feb73bfe481eecafd58ce8
diff --git a/dev-python/pygoocanvas/metadata.xml b/dev-python/pygoocanvas/metadata.xml
new file mode 100644
index 00000000000..7c374a2962f
--- /dev/null
+++ b/dev-python/pygoocanvas/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pygoocanvas/pygoocanvas-0.14.1-r1.ebuild b/dev-python/pygoocanvas/pygoocanvas-0.14.1-r1.ebuild
new file mode 100644
index 00000000000..08f49af5c87
--- /dev/null
+++ b/dev-python/pygoocanvas/pygoocanvas-0.14.1-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+GNOME_TARBALL_SUFFIX="bz2"
+PYTHON_COMPAT=(python2_7 )
+
+inherit gnome2 python-r1
+
+DESCRIPTION="GooCanvas python bindings"
+HOMEPAGE="http://live.gnome.org/PyGoocanvas"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/pygobject-2.11.3:2[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.10.4:2[${PYTHON_USEDEP}]
+ >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}]
+ >=x11-libs/goocanvas-0.14:0
+"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-util/gtk-doc-1.4 )
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ prepare_binding() {
+ mkdir -p "${BUILD_DIR}" || die
+ }
+ python_foreach_impl prepare_binding
+}
+
+src_configure() {
+ # docs installs gtk-doc and xsltproc is not actually used
+ configure_binding() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(use_enable doc docs) \
+ XSLTPROC=$(type -P true)
+ }
+ python_foreach_impl run_in_build_dir configure_binding
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir gnome2_src_install
+
+ dodoc AUTHORS ChangeLog* NEWS
+
+ if use examples; then
+ rm demo/Makefile* || die
+ cp -R demo "${D}"/usr/share/doc/${PF} || die
+ fi
+}
+
+run_in_build_dir() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+ "$@"
+ popd > /dev/null
+}
diff --git a/dev-python/pygooglevoice/Manifest b/dev-python/pygooglevoice/Manifest
new file mode 100644
index 00000000000..c2e28742cc3
--- /dev/null
+++ b/dev-python/pygooglevoice/Manifest
@@ -0,0 +1,2 @@
+DIST pygooglevoice-0.5-extras.zip 65730 SHA256 a5fd22653a9c6550bb9eccfd3df0e8797ec73b00795babf6a5c385d0eea19d66 SHA512 849b3f66747674127d4396cb88ba5a6331033aaa4a4aa056cd714d3796bd8ea7eed8e22089b07c62e36e2ff95ac18ccfd681d5f9d446d3c3ea68a3bd608cace0 WHIRLPOOL bf3681f0dd89a5ed4c1f9f8eb44f0d750eb83def3b3dfd94db4b2a1c63deab09d0cef2e8e33e9eaeaa76fc8e1ca98d8e325ebf3c2d9762d0ef92ed4bcf02f950
+DIST pygooglevoice-0.5.tar.gz 10478 SHA256 228cb8a0a0fb0a75c1bf60cc3c8e19e66dcceb0bafe1bf98a11278c66182ab8b SHA512 789a8d8cbe2351a009ea1badddc1e2f3e61e3b8d230cdc4391441294af78a369248cf50baea54d9ccd40706c5358882d3745ba47657ae848a782177dea53852b WHIRLPOOL f2b40cf4b8fc777c87f6edc0fd8b71007443da6ddab2b29bb0defc3353a84bbba31f5cd6838a445981e1e4c796d68a4f49d091ff3b875034306e43c8ae472f01
diff --git a/dev-python/pygooglevoice/files/pygooglevoice-0.5-auth.patch b/dev-python/pygooglevoice/files/pygooglevoice-0.5-auth.patch
new file mode 100644
index 00000000000..fbbadbac7a5
--- /dev/null
+++ b/dev-python/pygooglevoice/files/pygooglevoice-0.5-auth.patch
@@ -0,0 +1,121 @@
+--- pygooglevoice-0.5.orig/bin/asterisk-gvoice-setup
++++ pygooglevoice-0.5/bin/asterisk-gvoice-setup
+@@ -66,6 +66,7 @@
+ exten => _X.,n,System(gvoice -b -e \${ACCTNAME} -p \${ACCTPASS} call \${EXTEN} \${RINGBACK})
+ exten => _X.,n,Set(PARKINGEXTEN=\${CALLPARK})
+ exten => _X.,n,Park()
++exten => _X.,n,ParkAndAnnounce(pbx-transfer:PARKED|45|Console/dsp)
+
+ [custom-park]
+ exten => s,1,Wait(4)
+--- pygooglevoice-0.5.orig/googlevoice/settings.py
++++ pygooglevoice-0.5/googlevoice/settings.py
+@@ -19,7 +19,8 @@
+ """
+
+ DEBUG = False
+-LOGIN = 'https://www.google.com/accounts/ServiceLoginAuth?service=grandcentral'
++LOGIN = 'https://www.google.com/accounts/ClientLogin'
++SERVICE = 'grandcentral'
+ FEEDS = ('inbox', 'starred', 'all', 'spam', 'trash', 'voicemail', 'sms',
+ 'recorded', 'placed', 'received', 'missed')
+
+@@ -50,4 +51,4 @@
+ XML_RECORDED = XML_RECENT + 'recorded/'
+ XML_PLACED = XML_RECENT + 'placed/'
+ XML_RECEIVED = XML_RECENT + 'received/'
+-XML_MISSED = XML_RECENT + 'missed/'
+\ No newline at end of file
++XML_MISSED = XML_RECENT + 'missed/'
+--- pygooglevoice-0.5.orig/googlevoice/util.py
++++ pygooglevoice-0.5/googlevoice/util.py
+@@ -6,11 +6,11 @@
+ from pprint import pprint
+ try:
+ from urllib2 import build_opener,install_opener, \
+- HTTPCookieProcessor,Request,urlopen
++ HTTPCookieProcessor,Request,urlopen,HTTPError
+ from urllib import urlencode,quote
+ except ImportError:
+ from urllib.request import build_opener,install_opener, \
+- HTTPCookieProcessor,Request,urlopen
++ HTTPCookieProcessor,Request,urlopen,HTTPError
+ from urllib.parse import urlencode,quote
+ try:
+ from http.cookiejar import LWPCookieJar as CookieJar
+--- pygooglevoice-0.5.orig/googlevoice/voice.py
++++ pygooglevoice-0.5/googlevoice/voice.py
+@@ -39,7 +39,8 @@
+ except NameError:
+ regex = r"('_rnr_se':) '(.+)'"
+ try:
+- sp = re.search(regex, urlopen(settings.INBOX).read()).group(2)
++ response = self.__do_page('inbox', data=None, headers = {'Authorization': 'GoogleLogin auth=%s' % self._auth })
++ sp = re.search(regex, response.read()).group(2)
+ except AttributeError:
+ sp = None
+ self._special = sp
+@@ -65,12 +66,19 @@
+ from getpass import getpass
+ passwd = getpass()
+
+- content = self.__do_page('login').read()
+- # holy hackjob
+- galx = re.search(r"name=\"GALX\"\s+value=\"(.+)\"", content).group(1)
+- self.__do_page('login', {'Email': email, 'Passwd': passwd, 'GALX': galx})
+-
+- del email, passwd
++ response = self.__do_page('login', {'accountType': 'HOSTED_OR_GOOGLE' ,'Email': email, 'Passwd': passwd, 'service': 'grandcentral' })
++
++ respMap = dict( line.strip().split('=', 1) for line in response.readlines() )
++ response.close()
++
++ if respMap.has_key('Auth'):
++ self._auth = respMap['Auth']
++ elif respMap.has_key('Error'):
++ if respMap['Error'] == 'CaptchaRequired':
++ raise LoginError('Clear the captcha at: %s' % respMap['Url'])
++ raise LoginError(respMap['Error'])
++
++ del email, passwd, respMap
+
+ try:
+ assert self.special
+@@ -84,7 +92,7 @@
+ Logs out an instance and makes sure it does not still have a session
+ """
+ self.__do_page('logout')
+- del self._special
++ del self._special, self._auth
+ assert self.special == None
+ return self
+
+@@ -200,7 +208,11 @@
+ return urlopen(Request(getattr(settings, page) + data, None, headers))
+ if data:
+ headers.update({'Content-type': 'application/x-www-form-urlencoded;charset=utf-8'})
+- return urlopen(Request(getattr(settings, page), data, headers))
++ headers.update({'Content-length': '%d' % len(data)})
++ try:
++ return urlopen(Request(getattr(settings, page), data, headers))
++ except (HTTPError), e:
++ return e
+
+ def __validate_special_page(self, page, data={}, **kwargs):
+ """
+@@ -215,11 +227,14 @@
+ """
+ Add self.special to request data
+ """
+- assert self.special, 'You must login before using this page'
++ assert self.special and self._auth, 'You must login before using this page'
+ if isinstance(data, tuple):
+ data += ('_rnr_se', self.special)
+ elif isinstance(data, dict):
+ data.update({'_rnr_se': self.special})
++
++ headers.update({'Authorization': 'GoogleLogin auth=%s' % self._auth})
++
+ return self.__do_page(page, data, headers)
+
+ _Phone__do_special_page = __do_special_page
diff --git a/dev-python/pygooglevoice/metadata.xml b/dev-python/pygooglevoice/metadata.xml
new file mode 100644
index 00000000000..159cbbbf663
--- /dev/null
+++ b/dev-python/pygooglevoice/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">pygooglevoice</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygooglevoice/pygooglevoice-0.5-r2.ebuild b/dev-python/pygooglevoice/pygooglevoice-0.5-r2.ebuild
new file mode 100644
index 00000000000..b81e3a4a21c
--- /dev/null
+++ b/dev-python/pygooglevoice/pygooglevoice-0.5-r2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Bindings for the Google Voice API"
+HOMEPAGE="http://code.google.com/p/pygooglevoice/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz
+ http://${PN}.googlecode.com/files/${P}-extras.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="app-arch/unzip"
+
+# Requires interactive login
+RESTRICT="test"
+
+PATCH=( "${FILESDIR}"/${P}-auth.patch )
+
+python_test() {
+ "${PYTHON}" googlevoice/tests.py
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${WORKDIR}"/doc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygpgme/Manifest b/dev-python/pygpgme/Manifest
new file mode 100644
index 00000000000..51674038fad
--- /dev/null
+++ b/dev-python/pygpgme/Manifest
@@ -0,0 +1 @@
+DIST pygpgme-0.3.tar.gz 50100 SHA256 5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1 SHA512 25fc199a7958adfa3bbb294108792974ba96ee7b15dff98f7933e9b089a6044d83bb7c7b77ca84ea0cab5b182f6d401cee42ecab57ab9ba34aa0b14eb6ce7736 WHIRLPOOL 58657f106702a402f466415301530e56cd7287592da012b8869b5bb0a985b0560be4fb12699c22b1949d6ea2f18a6eed943b5e8af59f80855eace82ef4d21017
diff --git a/dev-python/pygpgme/metadata.xml b/dev-python/pygpgme/metadata.xml
new file mode 100644
index 00000000000..cc608635cc2
--- /dev/null
+++ b/dev-python/pygpgme/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aidecoe@gentoo.org</email>
+ <name>Amadeusz Żołnowski</name>
+ </maintainer>
+ <longdescription lang="en">
+ PyGPGME is a Python module that lets you sign, verify, encrypt and
+ decrypt messages using the OpenPGP format. It is built on top of the
+ GNU Privacy Guard and the GPGME
+ library.
+ </longdescription>
+ <upstream>
+ <remote-id type="launchpad">pygpgme</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygpgme/pygpgme-0.3-r1.ebuild b/dev-python/pygpgme/pygpgme-0.3-r1.ebuild
new file mode 100644
index 00000000000..8510bb2e486
--- /dev/null
+++ b/dev-python/pygpgme/pygpgme-0.3-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python wrapper for the GPGME library"
+HOMEPAGE="https://launchpad.net/pygpgme"
+SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="app-crypt/gpgme"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ sed \
+ -e 's/#include <gpgme\.h>/#include <gpgme\/gpgme\.h>/' \
+ -i "${S}/src/pygpgme.h" || die
+ sed \
+ -e 's/suite.addTest(tests.test_sign_verify.test_suite())/#\0/' \
+ -e 's/suite.addTest(tests.test_encrypt_decrypt.test_suite())/#\0/' \
+ -e 's/suite.addTest(tests.test_passphrase.test_suite())/#\0/' \
+ -i "${S}/tests/__init__.py" || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pygraphviz/Manifest b/dev-python/pygraphviz/Manifest
new file mode 100644
index 00000000000..68e8904f10f
--- /dev/null
+++ b/dev-python/pygraphviz/Manifest
@@ -0,0 +1 @@
+DIST pygraphviz-1.2.tar.gz 90913 SHA256 2e8a82a07dcf006b9558d22c5a6357c012193d4cc681776845e515fffeccc6b3 SHA512 e477af635594c3ba1aa6fa499bc5e60df14e76616a1a777f648e2e96d3953dd3d0b3bae4a92275dac2f7466276cf526ecb8b6a63fd3fbad26ee24b67d76ecfa3 WHIRLPOOL 2757d02b130f326ee2638b78761094de1a841293b6de1d5ea2c89c169cbc8525041e06daef9ded32d7c1ac944ef99293ab67fee6c75a2976283f87725635a4d5
diff --git a/dev-python/pygraphviz/files/pygraphviz-1.0-setup.py.patch b/dev-python/pygraphviz/files/pygraphviz-1.0-setup.py.patch
new file mode 100644
index 00000000000..13eb0f213ce
--- /dev/null
+++ b/dev-python/pygraphviz/files/pygraphviz-1.0-setup.py.patch
@@ -0,0 +1,33 @@
+--- setup_egg.py
++++ setup_egg.py
+@@ -46,7 +46,6 @@
+ download_url = release.download_url,
+ classifiers = release.classifiers,
+ packages = packages,
+- data_files = data,
+ ext_modules = extension,
+ package_data = package_data,
+ install_requires=['setuptools'],
+--- setup.py
++++ setup.py
+@@ -98,12 +98,6 @@
+ sys.path.pop(0)
+
+ packages = ["pygraphviz","pygraphviz.tests"]
+-docdirbase = 'share/doc/pygraphviz-%s' % release.version
+-data = [(docdirbase, glob("*.txt")),
+- (os.path.join(docdirbase, 'examples'),glob("examples/*.py")),
+- (os.path.join(docdirbase, 'examples'),glob("examples/*.dat")),
+- (os.path.join(docdirbase, 'examples'),glob("examples/*.dat.gz")),
+- ]
+ extension = [Extension("pygraphviz._graphviz",
+ ["pygraphviz/graphviz_wrap.c"],
+ include_dirs=include_dirs,
+@@ -130,7 +124,6 @@
+ download_url = release.download_url,
+ classifiers = release.classifiers,
+ packages = packages,
+- data_files = data,
+ ext_modules = extension,
+ package_data = package_data
+ )
diff --git a/dev-python/pygraphviz/files/pygraphviz-1.1-avoid_tests.patch b/dev-python/pygraphviz/files/pygraphviz-1.1-avoid_tests.patch
new file mode 100644
index 00000000000..0d52e968bf0
--- /dev/null
+++ b/dev-python/pygraphviz/files/pygraphviz-1.1-avoid_tests.patch
@@ -0,0 +1,41 @@
+--- pygraphviz/agraph.py
++++ pygraphviz/agraph.py
+@@ -1767,29 +1767,3 @@
+ value.decode(self.encoding))
+ except KeyError: # gv.agxget returned KeyError, skip
+ continue
+-
+-
+-
+-def _test_suite():
+- import doctest
+- suite = doctest.DocFileSuite('tests/graph.txt',
+- 'tests/attributes.txt',
+- 'tests/layout_draw.txt',
+- 'tests/subgraph.txt',
+- package='pygraphviz')
+- doctest.testmod() # test docstrings in module
+- return suite
+-
+-
+-if __name__ == "__main__":
+- import os
+- import sys
+- import unittest
+- if sys.version_info[:2] < (2, 4):
+- print "Python version 2.4 or later required for tests (%d.%d detected)." % sys.version_info[:2]
+- sys.exit(-1)
+- # directory of package (relative to this)
+- nxbase=sys.path[0]+os.sep+os.pardir
+- sys.path.insert(0,nxbase) # prepend to search path
+- unittest.TextTestRunner().run(_test_suite())
+-
+--- pygraphviz/__init__.py
++++ pygraphviz/__init__.py
+@@ -67,6 +67,3 @@
+ print "pygraphviz-"+__version__
+ neato=_get_prog('neato')
+ os.system(neato+' -V')
+-
+-# import tests: run as pygraphviz.test()
+-from tests import run as test
diff --git a/dev-python/pygraphviz/files/pygraphviz-1.2-avoid_tests.patch b/dev-python/pygraphviz/files/pygraphviz-1.2-avoid_tests.patch
new file mode 100644
index 00000000000..d444ee3d2df
--- /dev/null
+++ b/dev-python/pygraphviz/files/pygraphviz-1.2-avoid_tests.patch
@@ -0,0 +1,47 @@
+ pygraphviz/__init__.py | 2 --
+ pygraphviz/agraph.py | 25 -------------------------
+ 2 files changed, 27 deletions(-)
+
+diff --git a/pygraphviz/__init__.py b/pygraphviz/__init__.py
+index a807801..33f727e 100644
+--- a/pygraphviz/__init__.py
++++ b/pygraphviz/__init__.py
+@@ -68,5 +68,3 @@ def version():
+ neato=_get_prog('neato')
+ os.system(neato+' -V')
+
+-# import tests: run as pygraphviz.test()
+-from tests import run as test
+diff --git a/pygraphviz/agraph.py b/pygraphviz/agraph.py
+index c9f735b..90a661e 100644
+--- a/pygraphviz/agraph.py
++++ b/pygraphviz/agraph.py
+@@ -1771,28 +1771,3 @@ class ItemAttribute(Attribute):
+ value.decode(self.encoding))
+ except KeyError: # gv.agxget returned KeyError, skip
+ continue
+-
+-
+-
+-def _test_suite():
+- import doctest
+- suite = doctest.DocFileSuite('tests/graph.txt',
+- 'tests/attributes.txt',
+- 'tests/layout_draw.txt',
+- 'tests/subgraph.txt',
+- package='pygraphviz')
+- doctest.testmod() # test docstrings in module
+- return suite
+-
+-
+-if __name__ == "__main__":
+- import os
+- import sys
+- import unittest
+- if sys.version_info[:2] < (2, 4):
+- print "Python version 2.4 or later required for tests (%d.%d detected)." % sys.version_info[:2]
+- sys.exit(-1)
+- # directory of package (relative to this)
+- nxbase=sys.path[0]+os.sep+os.pardir
+- sys.path.insert(0,nxbase) # prepend to search path
+- unittest.TextTestRunner().run(_test_suite())
diff --git a/dev-python/pygraphviz/metadata.xml b/dev-python/pygraphviz/metadata.xml
new file mode 100644
index 00000000000..d86fec8b72c
--- /dev/null
+++ b/dev-python/pygraphviz/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Pygraphviz is a Python interface to the Graphviz graph layout and
+ visualization package.
+ With Pygraphviz you can create, edit, read, write, and draw graphs using
+ Python to access the Graphviz graph data structure and layout algorithms.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pygraphviz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygraphviz/pygraphviz-1.2.ebuild b/dev-python/pygraphviz/pygraphviz-1.2.ebuild
new file mode 100644
index 00000000000..b2b7c682487
--- /dev/null
+++ b/dev-python/pygraphviz/pygraphviz-1.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for the Graphviz Agraph data structure"
+HOMEPAGE="http://networkx.lanl.gov/pygraphviz/ http://pypi.python.org/pypi/pygraphviz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="examples"
+
+# Note: only C API of graphviz is used, PYTHON_USEDEP unnecessary.
+RDEPEND="media-gfx/graphviz"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.0-setup.py.patch
+ "${FILESDIR}"/${P}-avoid_tests.patch
+)
+
+python_test() {
+ PYTHONPATH=${PYTHONPATH}:${BUILD_DIR}/lib/pygraphviz \
+ "${PYTHON}" \
+ -c "import pygraphviz.tests; pygraphviz.tests.run()" \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygresql/Manifest b/dev-python/pygresql/Manifest
new file mode 100644
index 00000000000..621f42e5e9b
--- /dev/null
+++ b/dev-python/pygresql/Manifest
@@ -0,0 +1 @@
+DIST PyGreSQL-4.1.1.tgz 100883 SHA256 bb14092f97c66ed13b8faf71471b8c156c6b46d915858447f3a63e9abe48eef7 SHA512 4b37c56f2112471aa5f3003a1d867382ce1b7510afa0963f0ceeb2f8175ca601bb5bade9ea2038d44a1041f12233e364f138a635bb7b353d0a82aeb7d9d49b7f WHIRLPOOL 323bfd1b72341be6b14d71fd4f05f5005a0f8a387f9b050ef3c786531ea19e057aa67fb5737b5aa0c4ca0912ad697a39d8957d70bb6bb4056e81f406ade5a6b9
diff --git a/dev-python/pygresql/metadata.xml b/dev-python/pygresql/metadata.xml
new file mode 100644
index 00000000000..fac7207df9f
--- /dev/null
+++ b/dev-python/pygresql/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>postgresql</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">PyGreSQL</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygresql/pygresql-4.1.1-r1.ebuild b/dev-python/pygresql/pygresql-4.1.1-r1.ebuild
new file mode 100644
index 00000000000..1fd9d1bb677
--- /dev/null
+++ b/dev-python/pygresql/pygresql-4.1.1-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+POSTGRES_COMPAT=( 9.{0,1,2,3} )
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="PyGreSQL-${PV}"
+
+DESCRIPTION="A Python interface for the PostgreSQL database"
+HOMEPAGE="http://www.pygresql.org/"
+SRC_URI="mirror://pypi/P/PyGreSQL/${MY_P}.tgz"
+
+LICENSE="POSTGRESQL"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ~ppc sparc x86"
+IUSE="doc"
+
+DEPEND="|| (
+ dev-db/postgresql:9.3
+ dev-db/postgresql:9.2
+ dev-db/postgresql:9.1
+ dev-db/postgresql:9.0
+)"
+
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+# Verify that the currently selected PostgreSQL slot is set to one of
+# the slots defined in POSTGRES_COMPAT.
+postgres_check_slot() {
+ if ! declare -p POSTGRES_COMPAT &>/dev/null; then
+ die 'POSTGRES_COMPAT not declared.'
+ fi
+
+# Don't die because we can't run postgresql-config during pretend.
+[[ "$EBUILD_PHASE" = "pretend" && -z "$(which postgresql-config 2> /dev/null)" ]] \
+ && return 0
+
+ local res=$(echo ${POSTGRES_COMPAT[@]} \
+ | grep -c $(postgresql-config show 2> /dev/null) 2> /dev/null)
+
+ if [[ "$res" -eq "0" ]] ; then
+ eerror "PostgreSQL slot must be set to one of: "
+ eerror " ${POSTGRES_COMPAT[@]}"
+ return 1
+ fi
+
+ return 0
+}
+
+pkg_pretend() {
+ postgres_check_slot
+}
+
+pkg_setup() {
+ postgres_check_slot || die
+}
+
+python_install_all() {
+ local DOCS=( docs/*.txt )
+ distutils-r1_python_install_all
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}/tutorial
+ doins tutorial/*
+ dohtml docs/*.{html,css}
+ fi
+}
diff --git a/dev-python/pygresql/pygresql-4.1.1-r2.ebuild b/dev-python/pygresql/pygresql-4.1.1-r2.ebuild
new file mode 100644
index 00000000000..4d40cdbc22d
--- /dev/null
+++ b/dev-python/pygresql/pygresql-4.1.1-r2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+POSTGRES_COMPAT=( 9.{0,1,2,3,4,5} )
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="PyGreSQL-${PV}"
+
+DESCRIPTION="A Python interface for the PostgreSQL database"
+HOMEPAGE="http://www.pygresql.org/"
+SRC_URI="mirror://pypi/P/PyGreSQL/${MY_P}.tgz"
+
+LICENSE="POSTGRESQL"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc sparc x86"
+IUSE="doc"
+
+DEPEND="|| (
+ dev-db/postgresql:9.5
+ dev-db/postgresql:9.4
+ dev-db/postgresql:9.3
+ dev-db/postgresql:9.2
+ dev-db/postgresql:9.1
+ dev-db/postgresql:9.0
+)"
+
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+# Verify that the currently selected PostgreSQL slot is set to one of
+# the slots defined in POSTGRES_COMPAT.
+postgres_check_slot() {
+ if ! declare -p POSTGRES_COMPAT &>/dev/null; then
+ die 'POSTGRES_COMPAT not declared.'
+ fi
+
+# Don't die because we can't run postgresql-config during pretend.
+[[ "$EBUILD_PHASE" = "pretend" && -z "$(which postgresql-config 2> /dev/null)" ]] \
+ && return 0
+
+ local res=$(echo ${POSTGRES_COMPAT[@]} \
+ | grep -c $(postgresql-config show 2> /dev/null) 2> /dev/null)
+
+ if [[ "$res" -eq "0" ]] ; then
+ eerror "PostgreSQL slot must be set to one of: "
+ eerror " ${POSTGRES_COMPAT[@]}"
+ return 1
+ fi
+
+ return 0
+}
+
+pkg_pretend() {
+ postgres_check_slot
+}
+
+pkg_setup() {
+ postgres_check_slot || die
+}
+
+python_install_all() {
+ local DOCS=( docs/*.txt )
+ distutils-r1_python_install_all
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}/tutorial
+ doins tutorial/*
+ dohtml docs/*.{html,css}
+ fi
+}
diff --git a/dev-python/pygresql/pygresql-4.1.1.ebuild b/dev-python/pygresql/pygresql-4.1.1.ebuild
new file mode 100644
index 00000000000..2653b005e2a
--- /dev/null
+++ b/dev-python/pygresql/pygresql-4.1.1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+POSTGRES_COMPAT=( 8.{3,4} 9.{0,1,2} )
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="PyGreSQL-${PV}"
+
+DESCRIPTION="A Python interface for the PostgreSQL database"
+HOMEPAGE="http://www.pygresql.org/"
+SRC_URI="mirror://pypi/P/PyGreSQL/${MY_P}.tgz"
+
+LICENSE="POSTGRESQL"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc sparc x86"
+IUSE="doc"
+
+DEPEND="|| (
+ dev-db/postgresql:8.3
+ dev-db/postgresql:8.4
+ dev-db/postgresql:9.0
+ dev-db/postgresql:9.1
+ dev-db/postgresql:9.2
+)"
+
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+# Verify that the currently selected PostgreSQL slot is set to one of
+# the slots defined in POSTGRES_COMPAT.
+postgres_check_slot() {
+ if ! declare -p POSTGRES_COMPAT &>/dev/null; then
+ die 'POSTGRES_COMPAT not declared.'
+ fi
+
+# Don't die because we can't run postgresql-config during pretend.
+[[ "$EBUILD_PHASE" = "pretend" && -z "$(which postgresql-config 2> /dev/null)" ]] \
+ && return 0
+
+ local res=$(echo ${POSTGRES_COMPAT[@]} \
+ | grep -c $(postgresql-config show 2> /dev/null) 2> /dev/null)
+
+ if [[ "$res" -eq "0" ]] ; then
+ eerror "PostgreSQL slot must be set to one of: "
+ eerror " ${POSTGRES_COMPAT[@]}"
+ return 1
+ fi
+
+ return 0
+}
+
+pkg_pretend() {
+ postgres_check_slot
+}
+
+pkg_setup() {
+ postgres_check_slot || die
+}
+
+python_install_all() {
+ local DOCS=( docs/*.txt )
+ distutils-r1_python_install_all
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}/tutorial
+ doins tutorial/*
+ dohtml docs/*.{html,css}
+ fi
+}
diff --git a/dev-python/pygsl/Manifest b/dev-python/pygsl/Manifest
new file mode 100644
index 00000000000..d5d95ecb68d
--- /dev/null
+++ b/dev-python/pygsl/Manifest
@@ -0,0 +1 @@
+DIST pygsl-0.9.5.tar.gz 1674504 SHA256 05d11160ff482e1f1f5f6a047aaef2776eedc1e8e1f98533a95299584fd4752d SHA512 7364e67ff2885be2cbe5410a573071209d3917f4807797b3b8525aacd03e6ab96e157e6d12d631c384e3b66602eab7e6cb89f9ab362f520397df900e77fcc875 WHIRLPOOL 404b5f06b1088d047e7afe56311ad9ce0bdcf465ab6961f3cc9d893f575d54c2a103e4c572a60d93e4cf27ee15d4000b7dfbcd6bd33bbc4cf6638749e87f7e24
diff --git a/dev-python/pygsl/metadata.xml b/dev-python/pygsl/metadata.xml
new file mode 100644
index 00000000000..ede9664139e
--- /dev/null
+++ b/dev-python/pygsl/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ PyGSL provides a python interface for the GNU scientific library
+ (gsl).
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">pygsl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygsl/pygsl-0.9.5-r1.ebuild b/dev-python/pygsl/pygsl-0.9.5-r1.ebuild
new file mode 100644
index 00000000000..08a36b8a9f6
--- /dev/null
+++ b/dev-python/pygsl/pygsl-0.9.5-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface for the GNU scientific library (gsl)"
+HOMEPAGE="http://pygsl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+DEPEND="sci-libs/gsl
+ dev-python/numpy[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+# Testsuite written to be run post install
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygsl/pygsl-0.9.5.ebuild b/dev-python/pygsl/pygsl-0.9.5.ebuild
new file mode 100644
index 00000000000..4af265c3ba6
--- /dev/null
+++ b/dev-python/pygsl/pygsl-0.9.5.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Python interface for the GNU scientific library (gsl)"
+HOMEPAGE="http://pygsl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+DEPEND="sci-libs/gsl
+ dev-python/numpy"
+RDEPEND="${DEPEND}"
+
+src_test() {
+ testing() {
+ cd "${S}/tests"
+ PYTHONPATH=$(ls -d ../build-${PYTHON_ABI}/lib*) "$(PYTHON)" run_test.py
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples || die "install examples failed"
+ fi
+}
diff --git a/dev-python/pygtk/Manifest b/dev-python/pygtk/Manifest
new file mode 100644
index 00000000000..35ad89b06e8
--- /dev/null
+++ b/dev-python/pygtk/Manifest
@@ -0,0 +1 @@
+DIST pygtk-2.24.0.tar.bz2 2361097 SHA256 cd1c1ea265bd63ff669e92a2d3c2a88eb26bcd9e5363e0f82c896e649f206912 SHA512 64f4344fcf7636e0b2016ffd5310250b5c02a1bf87e44aef39b5d4cf4a5fc50d27cb4f030d4c6802cff61fffb88dee7752821e3d8a4cd1c34dc3745d9ff2f0da WHIRLPOOL 6a5acd3fdd63ded08882ec2a8a3beaeb6bea55672a52841f2b41af5feeb20cfd68941c9322a27861b23fd0244173036815d5f122f7edcf3be14dffaa77b10575
diff --git a/dev-python/pygtk/files/pygtk-2.13.0-fix-codegen-location.patch b/dev-python/pygtk/files/pygtk-2.13.0-fix-codegen-location.patch
new file mode 100644
index 00000000000..701d828f1f8
--- /dev/null
+++ b/dev-python/pygtk/files/pygtk-2.13.0-fix-codegen-location.patch
@@ -0,0 +1,11 @@
+--- a/pygtk-2.0.pc.in 2007-11-01 12:20:22.000000000 -0400
++++ b/pygtk-2.0.pc.in 2008-05-28 22:21:04.000000000 -0400
+@@ -12,7 +12,7 @@ pygtkincludedir=${includedir}/pygtk-2.0
+ # This is strictly speaking not necessarily so (we refer to another
+ # package), but we want to preserve compatibility with times codegen
+ # was in PyGTK, not PyGObject.
+-codegendir=${datadir}/pygobject/2.0/codegen
++codegendir=${pyexecdir}/gtk-2.0/codegen
+
+ Name: PyGTK
+ Description: Python bindings for GTK+ and related libraries
diff --git a/dev-python/pygtk/files/pygtk-2.14.1-libdir-pc.patch b/dev-python/pygtk/files/pygtk-2.14.1-libdir-pc.patch
new file mode 100644
index 00000000000..d943e952a42
--- /dev/null
+++ b/dev-python/pygtk/files/pygtk-2.14.1-libdir-pc.patch
@@ -0,0 +1,12 @@
+https://bugzilla.gnome.org/show_bug.cgi?id=663421
+
+--- a/pygtk-2.0.pc.in
++++ b/pygtk-2.0.pc.in
+@@ -12,6 +12,7 @@
+ includedir=@includedir@
+ datarootdir=@datarootdir@
+ datadir=@datadir@
++libdir=@libdir@
+ pyexecdir=@pyexecdir@
+
+ # you can use the --variable=pygtkincludedir argument to
diff --git a/dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch b/dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch
new file mode 100644
index 00000000000..9106d43c419
--- /dev/null
+++ b/dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch
@@ -0,0 +1,58 @@
+From eca72baa5616fbe4dbebea43c7e5940847dc5ab8 Mon Sep 17 00:00:00 2001
+From: Owen W. Taylor <otaylor@fishsoup.net>
+Date: Tue, 27 Sep 2011 04:17:52 +0000
+Subject: Fix leaks of Pango objects
+
+Gtk.PrintContext.create_pango_context()
+Gtk.PrintContext.create_pango_layout()
+pangocairo.CairoContext.create_layout()
+
+were leaking the objects they returned.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=660216
+---
+diff --git a/gtk/gtk-2.10.defs b/gtk/gtk-2.10.defs
+index 69c7e0c..faa45e1 100644
+--- a/gtk/gtk-2.10.defs
++++ b/gtk/gtk-2.10.defs
+@@ -1388,12 +1388,14 @@
+ (define-method create_pango_context
+ (of-object "GtkPrintContext")
+ (c-name "gtk_print_context_create_pango_context")
++ (caller-owns-return #t)
+ (return-type "PangoContext*")
+ )
+
+ (define-method create_pango_layout
+ (of-object "GtkPrintContext")
+ (c-name "gtk_print_context_create_pango_layout")
++ (caller-owns-return #t)
+ (return-type "PangoLayout*")
+ )
+
+diff --git a/pangocairo.override b/pangocairo.override
+index bb923e6..5101107 100644
+--- a/pangocairo.override
++++ b/pangocairo.override
+@@ -118,11 +118,16 @@ _wrap_pango_cairo_update_context(PyGObject *self, PyObject *args, PyObject *kwar
+ static PyObject *
+ _wrap_pango_cairo_create_layout(PyGObject *self)
+ {
+- PangoLayout *ret;
++ PangoLayout *layout;
++ PyObject *ret;
+
+- ret = pango_cairo_create_layout(PycairoContext_GET(self));
++ layout = pango_cairo_create_layout(PycairoContext_GET(self));
+ /* pygobject_new handles NULL checking */
+- return pygobject_new((GObject *)ret);
++ ret = pygobject_new((GObject *)layout);
++ if (layout)
++ g_object_unref(layout);
++
++ return ret;
+ }
+
+ static PyObject *
+--
+cgit v0.9.2
diff --git a/dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch b/dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch
new file mode 100644
index 00000000000..5bb1aec13d8
--- /dev/null
+++ b/dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch
@@ -0,0 +1,9 @@
+--- tests/runtests.py
++++ tests/runtests.py
+@@ -41,4 +41,5 @@
+ suite.addTest(loader.loadTestsFromName(name))
+
+ testRunner = unittest.TextTestRunner()
+-testRunner.run(suite)
++result = testRunner.run(suite)
++sys.exit(not result.wasSuccessful())
diff --git a/dev-python/pygtk/files/pygtk-2.24.0-test_dialog.patch b/dev-python/pygtk/files/pygtk-2.24.0-test_dialog.patch
new file mode 100644
index 00000000000..832007af232
--- /dev/null
+++ b/dev-python/pygtk/files/pygtk-2.24.0-test_dialog.patch
@@ -0,0 +1,28 @@
+From eb92ecdfe7e310499743a5686560e18bb48ef0f0 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Wed, 2 Oct 2013 14:51:20 -0400
+Subject: [PATCH] tests: fix MessageDialogTest.testSubclass
+
+Don't check sub.__gtype__ until we set sub
+
+https://bugzilla.gnome.org/show_bug.cgi?id=709304
+---
+ tests/test_dialog.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_dialog.py b/tests/test_dialog.py
+index a6a3ce5..6540be3 100644
+--- a/tests/test_dialog.py
++++ b/tests/test_dialog.py
+@@ -20,7 +20,7 @@ class MessageDialogTest(unittest.TestCase):
+ print sub.__gtype__.name
+ self.assertEqual(sub.__gtype__.name, 'GtkMessageDialog')
+
+- type('Sub', (gtk.MessageDialog,), {'__gtype_name__': 'SubDialog'})
++ sub = type('Sub', (gtk.MessageDialog,), {'__gtype_name__': 'SubDialog'})
+ self.assertEqual(sub.__gtype__.name, 'SubDialog')
+
+ def testDialogLeak(self):
+--
+1.8.3.2
+
diff --git a/dev-python/pygtk/metadata.xml b/dev-python/pygtk/metadata.xml
new file mode 100644
index 00000000000..6d9588ff59c
--- /dev/null
+++ b/dev-python/pygtk/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+<herd>python</herd>
+<longdescription>
+PyGTK provides a convenient wrapper for the GTK+ library for use in
+Python programs, taking care of many of the boring details such as
+managing memory and type casting. When combined with PyORBit and
+gnome-python, it can be used to write full featured Gnome applications.
+</longdescription>
+<longdescription lang="ja">
+PyGTKは、Python言語プログラムでGTK+ライブラリを使うための、マネージング・メモリ>やタイプ・キャスティングの様な詰まらない事柄の世話をしてくれる便利なラッパーを提
+供します。PyORBitとgnome-pythonと組みあわせると、GNOMEのアプリケーションの特性を
+完全に抑えるものにすることができます。
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pygtk/pygtk-2.24.0-r4.ebuild b/dev-python/pygtk/pygtk-2.24.0-r4.ebuild
new file mode 100644
index 00000000000..be7a881c59d
--- /dev/null
+++ b/dev-python/pygtk/pygtk-2.24.0-r4.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils flag-o-matic gnome2 python-r1 virtualx
+
+DESCRIPTION="GTK+2 bindings for Python"
+HOMEPAGE="http://www.pygtk.org/"
+
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=dev-libs/glib-2.8:2
+ >=x11-libs/pango-1.16
+ >=dev-libs/atk-1.12
+ >=x11-libs/gtk+-2.24:2
+ >=dev-python/pycairo-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-2.26.8-r53:2[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=gnome-base/libglade-2.5:2.0
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ dev-libs/libxslt
+ >=app-text/docbook-xsl-stylesheets-1.70.1 )
+"
+
+src_prepare() {
+ # Fix declaration of codegen in .pc
+ epatch "${FILESDIR}/${PN}-2.13.0-fix-codegen-location.patch"
+ epatch "${FILESDIR}/${PN}-2.14.1-libdir-pc.patch"
+
+ # Fix leaks of Pango objects
+ epatch "${FILESDIR}/${PN}-2.24.0-fix-leaks.patch"
+
+ # Fail when tests are failing, bug #391307
+ epatch "${FILESDIR}/${PN}-2.24.0-test-fail.patch"
+
+ # Fix broken tests, https://bugzilla.gnome.org/show_bug.cgi?id=709304
+ epatch "${FILESDIR}/${P}-test_dialog.patch"
+
+ # Examples is handled "manually"
+ sed -e 's/\(SUBDIRS = .* \)examples/\1/' \
+ -i Makefile.am Makefile.in || die
+
+ sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.ac || die #466968
+
+ AT_M4DIR="m4" eautoreconf
+
+ prepare_pygtk() {
+ mkdir -p "${BUILD_DIR}" || die
+ }
+ python_foreach_impl prepare_pygtk
+}
+
+src_configure() {
+ use hppa && append-flags -ffunction-sections
+ configure_pygtk() {
+ ECONF_SOURCE="${S}" gnome2_src_configure \
+ $(use_enable doc docs) \
+ --with-glade \
+ --enable-thread
+ }
+ python_foreach_impl run_in_build_dir configure_pygtk
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ # Let tests pass without permissions problems, bug #245103
+ gnome2_environment_reset
+ unset DBUS_SESSION_BUS_ADDRESS
+
+ testing() {
+ cd tests
+ Xemake check-local
+ }
+ python_foreach_impl run_in_build_dir testing
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog INSTALL MAPPING NEWS README THREADS TODO
+
+ if use examples; then
+ rm examples/Makefile*
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+
+ python_foreach_impl run_in_build_dir gnome2_src_install
+ prune_libtool_files --modules
+}
diff --git a/dev-python/pygtkglext/Manifest b/dev-python/pygtkglext/Manifest
new file mode 100644
index 00000000000..611a65e3315
--- /dev/null
+++ b/dev-python/pygtkglext/Manifest
@@ -0,0 +1 @@
+DIST pygtkglext-1.1.0.tar.bz2 349067 SHA256 7f0104347659a81cd5bd84007b97547d18a8a216f5df2629f379ea7f87a1410a SHA512 1b94725d7f93c3ff01a4c2df7986ec3503493a39e78187ed8b440f9609daaf33d801f24b27acef324ea671ec4d46ca1b8cec508f685aa8f70bbc17cbefb69ebd WHIRLPOOL c4eea46296a21a20d4e357344ded68ce99bbb1ddf8ee1307aed94165d0b286d1453d17a3b07b21777f2989f5c4ac62b76fabf5eb0fd13daa71b01392d62f9c6c
diff --git a/dev-python/pygtkglext/metadata.xml b/dev-python/pygtkglext/metadata.xml
new file mode 100644
index 00000000000..c1bb83f0928
--- /dev/null
+++ b/dev-python/pygtkglext/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">gtkglext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygtkglext/pygtkglext-1.1.0-r1.ebuild b/dev-python/pygtkglext/pygtkglext-1.1.0-r1.ebuild
new file mode 100644
index 00000000000..775d1b1c6d9
--- /dev/null
+++ b/dev-python/pygtkglext/pygtkglext-1.1.0-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+AUTOTOOLS_PRUNE_LIBTOOL_FILES=modules
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools-utils python-r1
+
+DESCRIPTION="Python bindings to GtkGLExt"
+HOMEPAGE="http://gtkglext.sourceforge.net/"
+SRC_URI="mirror://sourceforge/gtkglext/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1 GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND=">=dev-python/pygtk-2.8:2[${PYTHON_USEDEP}]
+ >=dev-libs/glib-2.0:2
+ >=x11-libs/gtk+-2.0:2
+ >=x11-libs/gtkglext-1.0.0
+ dev-python/pyopengl[${PYTHON_USEDEP}]
+ virtual/opengl
+ virtual/glu"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ python_parallel_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_test() {
+ python_foreach_impl autotools-utils_src_test
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ docinto examples
+ dodoc examples/*.{py,png}
+ fi
+}
diff --git a/dev-python/pygtkhelpers/Manifest b/dev-python/pygtkhelpers/Manifest
new file mode 100644
index 00000000000..a5b834f3c98
--- /dev/null
+++ b/dev-python/pygtkhelpers/Manifest
@@ -0,0 +1 @@
+DIST pygtkhelpers-0.4.3.tar.gz 118768 SHA256 65417d091c68f6262ebaf18c1358f55ffe9e3735261d4c1bfb0d6e5bed1905b8 SHA512 6736cb77ad7d5f8a9811d6604ef112ed73b27347fb4633c611d3cc77ac28a9b51e03b32a2ffb76fd94effae485b3d890699bdcc3726fcd6be509809045cb3830 WHIRLPOOL f13c6ddad94b2b8aab8ec0c1661c4ac6adc596fb1f378670ef1c973fab35bd137aa4e5d723a6f83f3073664784ec8594237c80facb9343442102143dc59228ce
diff --git a/dev-python/pygtkhelpers/metadata.xml b/dev-python/pygtkhelpers/metadata.xml
new file mode 100644
index 00000000000..986211d4c09
--- /dev/null
+++ b/dev-python/pygtkhelpers/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pygtkhelpers</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pygtkhelpers/pygtkhelpers-0.4.3-r1.ebuild b/dev-python/pygtkhelpers/pygtkhelpers-0.4.3-r1.ebuild
new file mode 100644
index 00000000000..3be3f9a3075
--- /dev/null
+++ b/dev-python/pygtkhelpers/pygtkhelpers-0.4.3-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="PyGTKHelpers is a library to assist the building of PyGTK applications"
+HOMEPAGE="http://packages.python.org/pygtkhelpers/ http://pypi.python.org/pypi/pygtkhelpers"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~ppc64 ~x86"
+IUSE="doc examples"
+
+RDEPEND="dev-python/pygtk[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx )"
+
+python_prepare_all() {
+ # docs/_static/scope.jpg does not exist.
+ sed -e "s/^\(html_logo =.*\)/#\1/" -i docs/conf.py || die "sed failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ esetup.py build_sphinx
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ cd "${BUILD_DIR}"/sphinx/html || die
+ docinto html
+ dodoc -r [a-z]* _images _static
+ cd - >/dev/null || die
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc -r examples/.
+ fi
+}
diff --git a/dev-python/pygtkhelpers/pygtkhelpers-0.4.3.ebuild b/dev-python/pygtkhelpers/pygtkhelpers-0.4.3.ebuild
new file mode 100644
index 00000000000..94357d47bf6
--- /dev/null
+++ b/dev-python/pygtkhelpers/pygtkhelpers-0.4.3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2:2.6"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.4 2.5 3.*"
+
+inherit distutils
+
+DESCRIPTION="PyGTKHelpers is a library to assist the building of PyGTK applications"
+HOMEPAGE="http://packages.python.org/pygtkhelpers/ http://pypi.python.org/pypi/pygtkhelpers"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 ppc64 x86"
+IUSE="doc examples"
+
+RDEPEND="dev-python/pygtk"
+DEPEND="${RDEPEND}
+ dev-python/setuptools
+ doc? ( dev-python/sphinx )"
+
+src_prepare() {
+ distutils_src_prepare
+
+ # docs/_static/scope.jpg does not exist.
+ sed -e "s/^\(html_logo =.*\)/#\1/" -i docs/conf.py || die "sed failed"
+}
+
+src_compile() {
+ distutils_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ "$(PYTHON -f)" setup.py build_sphinx || die "Generation of documentation failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install
+
+ if use doc; then
+ pushd build/sphinx/html > /dev/null
+ docinto html
+ cp -R [a-z]* _images _static "${ED}usr/share/doc/${PF}/html" || die "Installation of documentation failed"
+ popd > /dev/null
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples/* || die "Installation of examples failed"
+ fi
+}
diff --git a/dev-python/pygtksourceview/Manifest b/dev-python/pygtksourceview/Manifest
new file mode 100644
index 00000000000..009ebf2ff40
--- /dev/null
+++ b/dev-python/pygtksourceview/Manifest
@@ -0,0 +1 @@
+DIST pygtksourceview-2.10.1.tar.bz2 290249 SHA256 b4b47c5aeb67a26141cb03663091dfdf5c15c8a8aae4d69c46a6a943ca4c5974 SHA512 6f8f35ba36cb26f256861ff7f14c3236cf566d6d02f3dea69f63844081caee969ad6288a2aa48d35d4eb542cda73da9d4bfe2cc57548ca15cd372011cab0276e WHIRLPOOL 237ce7a181c4508a17838cae28cf96fda6ebe4f16dbbbfdc83ca5da104a3422031369dbb870c7219f3031feded0833ac1393a6aabcb1fb45b169b198b3b480dc
diff --git a/dev-python/pygtksourceview/metadata.xml b/dev-python/pygtksourceview/metadata.xml
new file mode 100644
index 00000000000..7080c1467b4
--- /dev/null
+++ b/dev-python/pygtksourceview/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+<!-- <herd>python</herd> -->
+<longdescription>
+Python bindings for gtksourceview (text editing widget)
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pygtksourceview/pygtksourceview-2.10.1-r1.ebuild b/dev-python/pygtksourceview/pygtksourceview-2.10.1-r1.ebuild
new file mode 100644
index 00000000000..f6a7d5feecc
--- /dev/null
+++ b/dev-python/pygtksourceview/pygtksourceview-2.10.1-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+GNOME_TARBALL_SUFFIX="bz2"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome2 python-r1
+
+DESCRIPTION="GTK+2 bindings for Python"
+HOMEPAGE="http://www.pygtk.org/"
+
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/pygobject-2.15.2:2[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.8:2[${PYTHON_USEDEP}]
+ >=x11-libs/gtksourceview-2.9.7:2.0
+"
+DEPEND="${RDEPEND}
+ >=dev-util/gtk-doc-am-1.10
+ virtual/pkgconfig
+ doc? (
+ dev-libs/libxslt
+ ~app-text/docbook-xml-dtd-4.1.2
+ >=app-text/docbook-xsl-stylesheets-1.70.1 )
+"
+
+src_prepare() {
+ gnome2_src_prepare
+ python_copy_sources
+}
+
+src_configure() {
+ python_foreach_impl run_in_build_dir gnome2_src_configure $(use_enable doc docs)
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ DOCS="AUTHORS ChangeLog NEWS README"
+ python_foreach_impl run_in_build_dir gnome2_src_install
+}
diff --git a/dev-python/pygui/Manifest b/dev-python/pygui/Manifest
new file mode 100644
index 00000000000..64dcc05766f
--- /dev/null
+++ b/dev-python/pygui/Manifest
@@ -0,0 +1 @@
+DIST PyGUI-2.5.3.tar.gz 594157 SHA256 ef3af16d97dc6f71898d71706ee9e2fe6de44a83ace01d690054804ca16c7315 SHA512 dbbfd95785f37842dab657be7218bf057512fdb43f1c3eda7a9cf1b6d62c83b40b4295572bc6947fe77fc23e25b53c8a69855ddf2272e25410fdb17297483942 WHIRLPOOL 37853cbd2a959c1c9c3e1f69bdd68bfd84094c1db465c490ada16b7081a84b4a6b992ad668f01340295654c15eb0f0137a10f88d38402cee77d50ae196c9acc0
diff --git a/dev-python/pygui/files/pygui-2.2-python-2.6.patch b/dev-python/pygui/files/pygui-2.2-python-2.6.patch
new file mode 100644
index 00000000000..3856cc7787c
--- /dev/null
+++ b/dev-python/pygui/files/pygui-2.2-python-2.6.patch
@@ -0,0 +1,18 @@
+diff -r -U1 PyGUI-2.2.orig/GUI/Gtk/GL.py PyGUI-2.2/GUI/Gtk/GL.py
+--- PyGUI-2.2.orig/GUI/Gtk/GL.py 2009-04-10 11:45:08.000000000 +0200
++++ PyGUI-2.2/GUI/Gtk/GL.py 2010-02-20 00:30:39.000000000 +0100
+@@ -44,3 +44,3 @@
+ cs = self._color_size
+- as = 0
++ as_ = 0
+ ds = 0
+@@ -50,3 +50,3 @@
+ if self._alpha:
+- as = self._alpha_size
++ as_ = self._alpha_size
+ if self._depth_buffer:
+@@ -64,3 +64,3 @@
+ gdkgl.BLUE_SIZE, cs,
+- gdkgl.ALPHA_SIZE, as,
++ gdkgl.ALPHA_SIZE, as_,
+ gdkgl.AUX_BUFFERS, self._aux_buffers,
diff --git a/dev-python/pygui/files/pygui-2.2-resources.patch b/dev-python/pygui/files/pygui-2.2-resources.patch
new file mode 100644
index 00000000000..dbf3f3fdf7f
--- /dev/null
+++ b/dev-python/pygui/files/pygui-2.2-resources.patch
@@ -0,0 +1,8 @@
+diff -r -U1 PyGUI-2.2.orig/setup.py PyGUI-2.2/setup.py
+--- PyGUI-2.2.orig/setup.py 2009-04-12 07:36:14.000000000 +0200
++++ PyGUI-2.2/setup.py 2010-02-21 00:52:21.000000000 +0100
+@@ -15,3 +15,3 @@
+ dst_rsrc_dir = os.path.join(dst_gui_dir, "Resources", "cursors")
+-src_rsrc_files = glob(os.path.join("GUI", "Resources", "Cursors", "*"))
++src_rsrc_files = glob(os.path.join("GUI", "Resources", "cursors", "*"))
+
diff --git a/dev-python/pygui/metadata.xml b/dev-python/pygui/metadata.xml
new file mode 100644
index 00000000000..d9113ab8f50
--- /dev/null
+++ b/dev-python/pygui/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>
+ A cross-platform graphical application framework for Python.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/pygui/pygui-2.5.3-r1.ebuild b/dev-python/pygui/pygui-2.5.3-r1.ebuild
new file mode 100644
index 00000000000..300afd07c31
--- /dev/null
+++ b/dev-python/pygui/pygui-2.5.3-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="PyGUI-${PV}"
+
+DESCRIPTION="A cross-platform pythonic GUI API"
+HOMEPAGE="http://www.cosc.canterbury.ac.nz/greg.ewing/python_gui/"
+SRC_URI="http://www.cosc.canterbury.ac.nz/greg.ewing/python_gui/${MY_P}.tar.gz"
+
+LICENSE="PyGUI"
+SLOT=0
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/pygtk[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"/${MY_P}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Doc/. )
+ use examples && local EXAMPLES=( Demos/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyh2o/metadata.xml b/dev-python/pyh2o/metadata.xml
new file mode 100644
index 00000000000..dd3556565a1
--- /dev/null
+++ b/dev-python/pyh2o/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/pyh2o/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/libh2o</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyh2o/pyh2o-9999.ebuild b/dev-python/pyh2o/pyh2o-9999.ebuild
new file mode 100644
index 00000000000..413c25b826a
--- /dev/null
+++ b/dev-python/pyh2o/pyh2o-9999.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+#if LIVE
+AUTOTOOLS_AUTORECONF=yes
+EGIT_REPO_URI="http://bitbucket.org/mgorny/${PN}.git"
+
+inherit git-r3
+#endif
+
+DESCRIPTION="Library of routines for IF97 water & steam properties"
+HOMEPAGE="https://bitbucket.org/mgorny/libh2o/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=sci-libs/libh2o-0.2.1"
+DEPEND="${RDEPEND}"
+#if LIVE
+
+KEYWORDS=
+SRC_URI=
+#endif
diff --git a/dev-python/pyhamcrest/Manifest b/dev-python/pyhamcrest/Manifest
new file mode 100644
index 00000000000..2413ce8ac5b
--- /dev/null
+++ b/dev-python/pyhamcrest/Manifest
@@ -0,0 +1,3 @@
+DIST PyHamcrest-1.8.2.tar.gz 372308 SHA256 bd14093c561f9af8ce8271a630929f4a45be7a4e79bec53c83b876a0547d303e SHA512 ff90a6bb1e2319d25ba8c29e998796544d5840599e7d9a4a178022e6b5bcabd23d35433073152a2707d555aab3aa96c316b8db54d7ec1c0ca2ef1cdf50e4df40 WHIRLPOOL e207d109420ea3d1eb6cf14c65a3d2eb9e1dcabcc30b7917f4c95cb445a554c2fea8e5766213fd513c9323c33b58a63f0d9b102b52062ed7f61b148aeba3c770
+DIST PyHamcrest-1.8.3.tar.gz 376145 SHA256 118c48351451ec027cceed781841c19b836739e21f71a26649fe97fca0d346d5 SHA512 4e11a3ca93886c58b512b5ad77f95c2df3771476d6ca0e99eb6e20c0292819a5f985b7004b3523c756255e503cfe4e266fdb776b285e430a7bd987164f9df14a WHIRLPOOL 4210a503b5eb1f60e7f6757d21b0887f96cfe8b5f261d490f5589d3bbd0e099b91d1dd0264025e3730c94b78419cc8e762e66ded8e33dba3b37dc3764beba4ea
+DIST PyHamcrest-1.8.5.tar.gz 376456 SHA256 db990f17477bb0e78f726e8b04fe3ac78f697011e5c8ecb0928567db14efca55 SHA512 7841f704fdad8653bad923dc243431b4c3d82a9646d1138528356162bd556bc5d16178fbc6b1f27918e8ac1df6c54afb4d5eb8b3286536df33dd85ace475ea2d WHIRLPOOL 721fd1101a32b44bfd1cc8e8fc5e63a776ce5c5b3e126311f7f185cee092ebe6035151737db1b99edeca0e9d395a4eb1c1811a83aaed015be4dc6ce2499609f3
diff --git a/dev-python/pyhamcrest/files/sphinx-rtd.patch b/dev-python/pyhamcrest/files/sphinx-rtd.patch
new file mode 100644
index 00000000000..2974c98a56a
--- /dev/null
+++ b/dev-python/pyhamcrest/files/sphinx-rtd.patch
@@ -0,0 +1,20 @@
+diff --git a/doc/conf.py b/doc/conf.py
+index fb5d79e..7d3571b 100644
+--- a/doc/conf.py
++++ b/doc/conf.py
+@@ -13,6 +13,7 @@
+
+ import sys, os
+ import six
++import sphinx_rtd_theme
+
+ # If extensions (or modules to document with autodoc) are in another directory,
+ # add these directories to sys.path here. If the directory is relative to the
+@@ -106,6 +107,7 @@ html_theme = 'sphinx_rtd_theme'
+
+ # Add any paths that contain custom themes here, relative to this directory.
+ #html_theme_path = []
++html_theme_path = [ sphinx_rtd_theme.get_html_theme_path() ]
+
+ # The name for this set of Sphinx documents. If None, it defaults to
+ # "<project> v<release> documentation".
diff --git a/dev-python/pyhamcrest/metadata.xml b/dev-python/pyhamcrest/metadata.xml
new file mode 100644
index 00000000000..1c6b30c2b82
--- /dev/null
+++ b/dev-python/pyhamcrest/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <use>
+ <flag name="numpy">Enable optional dependence on dev-python/numpy</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">PyHamcrest</remote-id>
+ <remote-id type="github">hamcrest/PyHamcrest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyhamcrest/pyhamcrest-1.8.2.ebuild b/dev-python/pyhamcrest/pyhamcrest-1.8.2.ebuild
new file mode 100644
index 00000000000..1f185507937
--- /dev/null
+++ b/dev-python/pyhamcrest/pyhamcrest-1.8.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN="PyHamcrest"
+
+DESCRIPTION="Hamcrest framework for matcher objects"
+HOMEPAGE="https://github.com/hamcrest/PyHamcrest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples numpy test"
+
+CDEPEND="
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )' 'python*')
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.2.2[${PYTHON_USEDEP}] )
+ test? (
+ ${CDEPEND}
+ >=dev-python/pytest-2.6[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyhamcrest/pyhamcrest-1.8.3.ebuild b/dev-python/pyhamcrest/pyhamcrest-1.8.3.ebuild
new file mode 100644
index 00000000000..3f57cde2633
--- /dev/null
+++ b/dev-python/pyhamcrest/pyhamcrest-1.8.3.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN="PyHamcrest"
+
+DESCRIPTION="Hamcrest framework for matcher objects"
+HOMEPAGE="https://github.com/hamcrest/PyHamcrest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples numpy test"
+
+CDEPEND="
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )' 'python*')
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.2.2[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ >=dev-python/pytest-2.6[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/sphinx-rtd.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+ #use doc && emake -C doc html
+}
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyhamcrest/pyhamcrest-1.8.5.ebuild b/dev-python/pyhamcrest/pyhamcrest-1.8.5.ebuild
new file mode 100644
index 00000000000..700448138ca
--- /dev/null
+++ b/dev-python/pyhamcrest/pyhamcrest-1.8.5.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+MY_PN="PyHamcrest"
+
+DESCRIPTION="Hamcrest framework for matcher objects"
+HOMEPAGE="https://github.com/hamcrest/PyHamcrest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples test"
+
+CDEPEND=">=dev-python/six-1.4[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.2.2[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ >=dev-python/pytest-2.6[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyid3lib/Manifest b/dev-python/pyid3lib/Manifest
new file mode 100644
index 00000000000..cb87ac6f96a
--- /dev/null
+++ b/dev-python/pyid3lib/Manifest
@@ -0,0 +1 @@
+DIST pyid3lib-0.5.1.tar.bz2 21207 SHA256 2a7bdd52c24ed0e70e4a2d82c697214c4ab5a70f94ea9e7934df15ca202d1169 SHA512 fee073a7bd87540a186122b477e918b2c3d8a234ea5ebd83207115b9d0503cc22645b93f6702b79a1b41104d0cbcaa3c47900bba27ce52d44195a8f8a6331c57 WHIRLPOOL 35bc8cd5645269d0e7d95043188a4dfb789ed868ee0d6975175daf0de3366dd0b7f6a28f0967d3d9ea9b0f3f2de55dd6d871efdcc4a5ac6e19c2d08601af68b6
diff --git a/dev-python/pyid3lib/files/pyid3lib-0.5.1-gcc-4.4.patch b/dev-python/pyid3lib/files/pyid3lib-0.5.1-gcc-4.4.patch
new file mode 100644
index 00000000000..04df9e0a6c9
--- /dev/null
+++ b/dev-python/pyid3lib/files/pyid3lib-0.5.1-gcc-4.4.patch
@@ -0,0 +1,20 @@
+--- pyid3lib.cc
++++ pyid3lib.cc
+@@ -920,7 +920,7 @@ enum frame_type
+
+ typedef struct
+ {
+- char* name;
++ const char* name;
+ ID3_FrameID fid;
+ frame_type type;
+ } magic_attribute;
+@@ -1030,7 +1030,7 @@ static PyObject* id3_getattr( ID3Object* self, char* attrname )
+ {
+ ID3_Frame* frame;
+ const char* str;
+- char* slash;
++ const char* slash;
+ ID3_Field* fld;
+ int i;
+
diff --git a/dev-python/pyid3lib/files/pyid3lib-0.5.1-py25.patch b/dev-python/pyid3lib/files/pyid3lib-0.5.1-py25.patch
new file mode 100644
index 00000000000..c24cfc97d5a
--- /dev/null
+++ b/dev-python/pyid3lib/files/pyid3lib-0.5.1-py25.patch
@@ -0,0 +1,57 @@
+--- pyid3lib-0.5.1/pyid3lib.cc.orig 2007-08-08 23:53:08.000000000 +0300
++++ pyid3lib-0.5.1/pyid3lib.cc 2007-08-08 23:53:12.000000000 +0300
+@@ -10,13 +10,19 @@
+ #include <id3/id3lib_frame.h>
+ #include <id3/tag.h>
+
++#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
++typedef int Py_ssize_t;
++#define PY_SSIZE_T_MAX INT_MAX
++#define PY_SSIZE_T_MIN INT_MIN
++#endif
++
+ typedef struct
+ {
+ PyObject_HEAD
+
+ ID3_Tag* tag;
+ ID3_Frame** frames;
+- int size, alloc;
++ Py_ssize_t size, alloc;
+ } ID3Object;
+
+ typedef struct
+@@ -80,13 +86,24 @@
+
+
+ static PySequenceMethods tag_as_sequence = {
++#if PY_VERSION_HEX >= 0x02050000
++ (lenfunc)id3_length,
++#else
+ (inquiry)id3_length,
++#endif
+ NULL,
+ NULL,
++#if PY_VERSION_HEX >= 0x02050000
++ (ssizeargfunc)id3_item,
++ (ssizessizeargfunc)id3_slice,
++ (ssizeobjargproc)id3_ass_item,
++ (ssizessizeobjargproc)id3_ass_slice,
++#else
+ (intargfunc)id3_item,
+ (intintargfunc)id3_slice,
+ (intobjargproc)id3_ass_item,
+ (intintobjargproc)id3_ass_slice,
++#endif
+ (objobjproc)id3_contains,
+ NULL,
+ NULL,
+@@ -824,7 +841,7 @@
+ static ID3_Frame* frame_from_dict( ID3_FrameID fid, PyObject* dict )
+ {
+ char* data;
+- int size;
++ Py_ssize_t size;
+
+ ID3_Field* field;
+ ID3_FieldID flid;
diff --git a/dev-python/pyid3lib/metadata.xml b/dev-python/pyid3lib/metadata.xml
new file mode 100644
index 00000000000..1f09e0ca6c5
--- /dev/null
+++ b/dev-python/pyid3lib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pyid3lib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyid3lib/pyid3lib-0.5.1-r1.ebuild b/dev-python/pyid3lib/pyid3lib-0.5.1-r1.ebuild
new file mode 100644
index 00000000000..ffcb0dd8d31
--- /dev/null
+++ b/dev-python/pyid3lib/pyid3lib-0.5.1-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils eutils
+
+DESCRIPTION="Module for manipulating ID3 tags in Python"
+HOMEPAGE="http://pyid3lib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="media-libs/id3lib"
+RDEPEND="${DEPEND}"
+
+PYTHON_CXXFLAGS=("2.* + -fno-strict-aliasing")
+
+src_prepare() {
+ distutils_src_prepare
+
+ epatch "${FILESDIR}/${P}-gcc-4.4.patch"
+ epatch "${FILESDIR}/${P}-py25.patch"
+}
+
+src_install() {
+ distutils_src_install
+ dohtml doc.html || die "dohtml failed"
+}
diff --git a/dev-python/pyid3lib/pyid3lib-0.5.1-r2.ebuild b/dev-python/pyid3lib/pyid3lib-0.5.1-r2.ebuild
new file mode 100644
index 00000000000..11f9710a7f4
--- /dev/null
+++ b/dev-python/pyid3lib/pyid3lib-0.5.1-r2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Module for manipulating ID3 tags in Python"
+HOMEPAGE="http://pyid3lib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="media-libs/id3lib"
+RDEPEND="${DEPEND}"
+
+HTML_DOCS=( doc.html )
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${P}-gcc-4.4.patch"
+ "${FILESDIR}/${P}-py25.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ append-flags -fno-strict-aliasing
+}
diff --git a/dev-python/pyifp/Manifest b/dev-python/pyifp/Manifest
new file mode 100644
index 00000000000..05a5cb49bdd
--- /dev/null
+++ b/dev-python/pyifp/Manifest
@@ -0,0 +1 @@
+DIST pyifp-0.2.2.tar.gz 21378 SHA256 df283d037ee206ede1de7e058022a7cd13d55c4d935323c3ae3af923b39f8ff3 SHA512 9d4b2fc41406c784e8fe9bb650760d750fdf9390b2c69baee1032cc33ffc726ec1a688faa043196a0d075f4e10530dac6637e76b4440b92142f69683cd65a281 WHIRLPOOL 666157875f7c2bd4f0b0c479c1ee25ab2aeafd8900f4b25ee31cdfe4153275307e182d6ed068f2cd8c90a7ccc90c5706d0226f8b8be2056f56058f441bf4d2d5
diff --git a/dev-python/pyifp/files/pyifp-0.2.2-setup-fix.patch b/dev-python/pyifp/files/pyifp-0.2.2-setup-fix.patch
new file mode 100644
index 00000000000..2582e0fd884
--- /dev/null
+++ b/dev-python/pyifp/files/pyifp-0.2.2-setup-fix.patch
@@ -0,0 +1,11 @@
+--- pyifp-0.2.2/setup.py 2005-02-21 01:36:05.000000000 -0500
++++ pyifp-0.2.2-fixed/setup.py 2005-10-15 13:29:26.000000000 -0400
+@@ -54,7 +54,7 @@
+ self.swig_inc = 'SWIG'
+ self.swig_shadow = None
+
+- def swig_sources(self, sources):
++ def swig_sources(self, sources, extension=None):
+ """Override the definition of 'swig_sources' in build_ext. This
+ is essentially the same function but with better swig support.
+ I will now quote the original docstring:
diff --git a/dev-python/pyifp/metadata.xml b/dev-python/pyifp/metadata.xml
new file mode 100644
index 00000000000..ef19ed78816
--- /dev/null
+++ b/dev-python/pyifp/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sound</herd>
+ <upstream>
+ <remote-id type="sourceforge">ifp-gnome</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyifp/pyifp-0.2.2-r1.ebuild b/dev-python/pyifp/pyifp-0.2.2-r1.ebuild
new file mode 100644
index 00000000000..77a47b72383
--- /dev/null
+++ b/dev-python/pyifp/pyifp-0.2.2-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for libifp library for accessing iRiver iFP devices"
+HOMEPAGE="http://ifp-gnome.sourceforge.net"
+SRC_URI="mirror://sourceforge/ifp-gnome/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~x86"
+IUSE=""
+
+RDEPEND=">=media-libs/libifp-1.0.0.2"
+DEPEND="${RDEPEND}
+ dev-lang/swig"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+PATCHES=( "${FILESDIR}"/${P}-setup-fix.patch )
diff --git a/dev-python/pyinotify/Manifest b/dev-python/pyinotify/Manifest
new file mode 100644
index 00000000000..d993b08e872
--- /dev/null
+++ b/dev-python/pyinotify/Manifest
@@ -0,0 +1,3 @@
+DIST pyinotify-0.9.4.tar.gz 59604 SHA256 a09767e4e0610e2e1e9f9dc89483b0ee4a53764e700f5866a570bec51d003fec SHA512 cdaf9f239a43e3889cdca0ebe1e3559bf6411e4cd829120cc2199cb91122bfe4af62f61a9bf297de28036716f974abd4d7bbeb210e22e96245781fbad08a2b75 WHIRLPOOL aba8f4e4fba5e684e0bade9c3a02a24747f3af4a441209f138223398860da8fdbc6b52546f6cd55134e72c69e6e15b06e45c50767b13ffab6f12afa4484cbfb6
+DIST pyinotify-0.9.5.tar.gz 61744 SHA256 e7c52a9f36cee27c5d0931ecf92959cd022317b00901bd34ef05ece4a2a5cb1b SHA512 f73e51e71dba9805b55bfa0ad9ec202c4aa6a763ecfb1c37fb46448729789109170b36cd08b884675e5cef3060ba95453d1f330787e7f9f716e8477b1da7474e WHIRLPOOL 4d87968ee4b267f058f96e95cf7923f94bbe678793f32964f76d5e2fec4951c64de4042c5172c006a7891e2b2478967ec7c21131b0f25dff727ffa1fcd0d6745
+DIST pyinotify-0.9.6.tar.gz 60998 SHA256 9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4 SHA512 b52de43293b06b32236e90b7c33fac061f3095cd7d4aecec89a099d56020db1a85440ab9dcc8b521238c001fc49a1f37d1b16d621bc1acab4d7273aebcaadbc5 WHIRLPOOL 19e5c96528e3092d9a0e08e4853afc1765afcb0b286875e9583c703dda066c8372def076416158a740b248ade21b14314464232bdc70f210f306f3d3ca5c4a7f
diff --git a/dev-python/pyinotify/metadata.xml b/dev-python/pyinotify/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyinotify/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyinotify/pyinotify-0.9.4-r1.ebuild b/dev-python/pyinotify/pyinotify-0.9.4-r1.ebuild
new file mode 100644
index 00000000000..f32b311bb4c
--- /dev/null
+++ b/dev-python/pyinotify/pyinotify-0.9.4-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module used for monitoring filesystems events"
+HOMEPAGE="http://trac.dbzteam.org/pyinotify http://pypi.python.org/pypi/pyinotify"
+SRC_URI="http://seb.dbzteam.org/pub/pyinotify/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_install_all() {
+ use examples && local EXAMPLES=( python2/examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyinotify/pyinotify-0.9.5.ebuild b/dev-python/pyinotify/pyinotify-0.9.5.ebuild
new file mode 100644
index 00000000000..a5f85d3a60e
--- /dev/null
+++ b/dev-python/pyinotify/pyinotify-0.9.5.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module used for monitoring filesystems events"
+HOMEPAGE="http://trac.dbzteam.org/pyinotify http://pypi.python.org/pypi/pyinotify"
+SRC_URI="http://seb.dbzteam.org/pub/pyinotify/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_install_all() {
+ use examples && local EXAMPLES=( python2/examples/. )
+ EXAMPLES+=( python3/examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyinotify/pyinotify-0.9.6.ebuild b/dev-python/pyinotify/pyinotify-0.9.6.ebuild
new file mode 100644
index 00000000000..a5f85d3a60e
--- /dev/null
+++ b/dev-python/pyinotify/pyinotify-0.9.6.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module used for monitoring filesystems events"
+HOMEPAGE="http://trac.dbzteam.org/pyinotify http://pypi.python.org/pypi/pyinotify"
+SRC_URI="http://seb.dbzteam.org/pub/pyinotify/releases/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_install_all() {
+ use examples && local EXAMPLES=( python2/examples/. )
+ EXAMPLES+=( python3/examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyinsane/Manifest b/dev-python/pyinsane/Manifest
new file mode 100644
index 00000000000..a961d5e5ae5
--- /dev/null
+++ b/dev-python/pyinsane/Manifest
@@ -0,0 +1 @@
+DIST pyinsane-1.3.8.tar.gz 28819 SHA256 387ecbc8b8f732e6a250adbc9b9d92a71963eb3fab9435d2dbe40b6113991d62 SHA512 6dc90802b8b53211a621cb1baa68f2741b05b7dd68888bb85898e820b77c6e2810a4355f63219044f2e10edd002a08162117b552ac22bae2ba946a90bbaf9a74 WHIRLPOOL 13a9df7d7f3268de99b325d1bddf83e1cdedc134759eb236b3b9f4b5bb5d74ec82adf3e23a23af03a9e92a90769a4fdf6650026a577de55fa9452c8417ee5d04
diff --git a/dev-python/pyinsane/metadata.xml b/dev-python/pyinsane/metadata.xml
new file mode 100644
index 00000000000..1a9167bf1f6
--- /dev/null
+++ b/dev-python/pyinsane/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>voyageur@gentoo.org</email>
+ <name>Bernard Cafarelli</name>
+ </maintainer>
+ <longdescription lang="en">
+Python implementation of the Sane API (using ctypes) and abstration layer.
+
+The code is divided in 3 layers:
+
+ * rawapi : Ctypes binding to the raw Sane API
+ * abstract : An Object-Oriented layer that simplifies the use of the Sane API and try to avoid possible misuse of the Sane API. When scanning, it also takes care of returning a Pillow image.
+ * abstract_th : The Sane API is not thread-safe and cannot be used in a multi-threaded environment easily. This layer solves this problem by using a fully dedicated thread.
+</longdescription>
+ <upstream>
+ <remote-id type="github">jflesch/pyinsane</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyinsane/pyinsane-1.3.8.ebuild b/dev-python/pyinsane/pyinsane-1.3.8.ebuild
new file mode 100644
index 00000000000..c842c5baa1a
--- /dev/null
+++ b/dev-python/pyinsane/pyinsane-1.3.8.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of the Sane API and abstration layer"
+HOMEPAGE="https://github.com/jflesch/pyinsane"
+SRC_URI="https://github.com/jflesch/pyinsane/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="media-gfx/sane-backends
+ virtual/python-imaging"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/pyjwt/Manifest b/dev-python/pyjwt/Manifest
new file mode 100644
index 00000000000..a395d4cddea
--- /dev/null
+++ b/dev-python/pyjwt/Manifest
@@ -0,0 +1,2 @@
+DIST pyjwt-1.3.0.tar.gz 61828 SHA256 fc230244ec4e4014d6eeae894ac852e820a4c843dc209d4f77e76d564f46ee49 SHA512 2b7ab0702bb71041bb7280e0e51958fb6bfb9b8c70ac99e24c4ce92e6d37d0432f3323634dceb371dd47c6b380687b2df92bb6ae9f4df555e4938a9a2f76e0f3 WHIRLPOOL bc4a0d79d37b60aa018607d715e2dc7e275ade326994df9a4ac7e0e70e37c11c7bec4d70d292bedf6f18be8d7aa09f826b80d14a532fd00c650d417223285daf
+DIST pyjwt-1.4.0.tar.gz 34613 SHA256 e1b2386cfad541445b1d43e480b02ca37ec57259fd1a23e79415b57ba5d8a694 SHA512 1664864c0566dbeb1e35c977d30e746c844605e1ce90becda8771c4ff8a8dbad911075f5a41f445d405552b2d61bbb1e86011564027f68c6c4fcd332cf704ff1 WHIRLPOOL 4ebd7291b9a9676559703794acdaf0dd2bd1033dd649ef8068bca85fa7ef6ab444e834910fa78b16c15cf324dd4a470d9b40ecdccdb5fdaca7568ab096dc9a8e
diff --git a/dev-python/pyjwt/metadata.xml b/dev-python/pyjwt/metadata.xml
new file mode 100644
index 00000000000..eddceefa4c0
--- /dev/null
+++ b/dev-python/pyjwt/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">PyJWT</remote-id>
+ <remote-id type="github">progrium/pyjwt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyjwt/pyjwt-1.3.0.ebuild b/dev-python/pyjwt/pyjwt-1.3.0.ebuild
new file mode 100644
index 00000000000..dbfb7f3f7e3
--- /dev/null
+++ b/dev-python/pyjwt/pyjwt-1.3.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit eutils distutils-r1
+
+MY_PN="PyJWT"
+
+DESCRIPTION="JSON Web Token implementation in Python"
+HOMEPAGE="http://github.com/progrium/pyjwt https://pypi.python.org/pypi/PyJWT/"
+#SRC_URI="https://github.com/progrium/${P}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE=" MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pytest-runner[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )"
+S="${WORKDIR}"/${MY_PN}-${PV}
+
+python_prepare_all() {
+ find . -name '__pycache__' -prune -exec rm -rf {} \; || die "Cleaning __pycache__ failed"
+ find . -name '*.pyc' -exec rm -f {} \; || die "Cleaing *.pyc failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
+
+pkg_postinst() {
+ elog "Available optional features:"
+ optfeature "cryptography" dev-python/cryptography
+ optfeature "flake8" dev-python/flake8
+
+ ewarn "flake8 feature requires 'flake8-import-order' and 'pep8-naming', which are not in portage yet"
+}
diff --git a/dev-python/pyjwt/pyjwt-1.4.0.ebuild b/dev-python/pyjwt/pyjwt-1.4.0.ebuild
new file mode 100644
index 00000000000..5611c02641c
--- /dev/null
+++ b/dev-python/pyjwt/pyjwt-1.4.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit eutils distutils-r1
+
+MY_PN="PyJWT"
+
+DESCRIPTION="JSON Web Token implementation in Python"
+HOMEPAGE="http://github.com/progrium/pyjwt https://pypi.python.org/pypi/PyJWT/"
+#SRC_URI="https://github.com/progrium/${P}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE=" MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pytest-runner[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}"/${MY_PN}-${PV}
+
+python_prepare_all() {
+ find . -name '__pycache__' -prune -exec rm -rf {} \; || die "Cleaning __pycache__ failed"
+ find . -name '*.pyc' -exec rm -f {} \; || die "Cleaing *.pyc failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
+
+pkg_postinst() {
+ elog "Available optional features:"
+ optfeature "cryptography" dev-python/cryptography
+ optfeature "flake8" dev-python/flake8
+
+ ewarn "flake8 feature requires 'flake8-import-order' and 'pep8-naming', which are not in portage yet"
+}
diff --git a/dev-python/pykerberos/Manifest b/dev-python/pykerberos/Manifest
new file mode 100644
index 00000000000..e9b2e21e0ac
--- /dev/null
+++ b/dev-python/pykerberos/Manifest
@@ -0,0 +1,2 @@
+DIST pykerberos-1.1.5.tar.gz 17585 SHA256 07a3dad9f370f9b7d8c0c1943eeff640e717201c301dcc3116f88d3366fbd179 SHA512 3c24a293508ee8f7231accdbe4a606a2cdf4650872a56fccf67c4e3b7b8a686df1e2ef431edd72efb7f8015930a330dd885866798abc748bfd722a3b2c0264a1 WHIRLPOOL dd821b5ae4ae2f04b9fea231fb063104cf1d4c4db7da9f84fbbdb20544f1bef0d256127326d168c1881d6a6f877c78eee0966deb9d0ebbce48bb20fa8bcecd46
+DIST pykerberos-1.1.7.tar.gz 35439 SHA256 fc9530c6d1e1cf5c2d6a45e08e4806b50621cab28f981cf428dec67bfb52effd SHA512 ad5882b7e962509af97cc67b118e50fa94fab6848e8121e2b7d40029d27987c8812eed9feb1687ddbb03dc95ef0724f585fc6c7f273c7cb85621e06ecb7ec7bd WHIRLPOOL 0d5b4f693a368b0f0114abfc54f159367074f6f8a54b264858447bf84bb430d5f9d02fe0fd451797ea8e0a4fe744ad129a097cafa864315ed1da1f1feebe8775
diff --git a/dev-python/pykerberos/metadata.xml b/dev-python/pykerberos/metadata.xml
new file mode 100644
index 00000000000..be8bb8b6ece
--- /dev/null
+++ b/dev-python/pykerberos/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>andreis.vinogradovs@gmail.com</email>
+ </maintainer>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pykerberos</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pykerberos/pykerberos-1.1.5.ebuild b/dev-python/pykerberos/pykerberos-1.1.5.ebuild
new file mode 100644
index 00000000000..a0de1142cfc
--- /dev/null
+++ b/dev-python/pykerberos/pykerberos-1.1.5.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A high-level Python wrapper for Kerberos/GSSAPI operations"
+HOMEPAGE="http://trac.calendarserver.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~hppa x86"
+IUSE=""
+
+DEPEND="app-crypt/mit-krb5
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/pykerberos/pykerberos-1.1.7.ebuild b/dev-python/pykerberos/pykerberos-1.1.7.ebuild
new file mode 100644
index 00000000000..e14465fed1c
--- /dev/null
+++ b/dev-python/pykerberos/pykerberos-1.1.7.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A high-level Python wrapper for Kerberos/GSSAPI operations"
+HOMEPAGE="http://trac.calendarserver.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}-1.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~x86"
+IUSE=""
+
+DEPEND="app-crypt/mit-krb5
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/pykit/Manifest b/dev-python/pykit/Manifest
new file mode 100644
index 00000000000..40211a339bd
--- /dev/null
+++ b/dev-python/pykit/Manifest
@@ -0,0 +1,2 @@
+DIST pykit-0.1.0.tar.gz 96379 SHA256 a9acc4210b5852a021c6317ee51de819c291146924122404fc065170b5128b69 SHA512 739f253d463ddf0da5b5fd4f74f73df416787af1ebd6cca46bdc88c9a1d733b9a6663f0abe74e23c7da7967e5b14ca4fd0acbb0bb08fcf1cfa57697f714d6726 WHIRLPOOL d681be515632fd962e6b55818c10477ebf3e350f776e73a32db683425bd809e68f4b062e22cff48d3a0969e48543486d376aa7ec22712a6ac5c3512aeb77a7a2
+DIST pykit-0.2.0.tar.gz 197103 SHA256 862641497d5aa0fa863b37af65af6cc019168a6ad3b3b6d6a47820ea98b872f0 SHA512 8738c11e790d78cd8a2a53d5d52bc66b2e2d6260dde3ceb7ca4a79dbe5a038a2976626b68a281469da0db518fef8ff3a6dd1dbc8ac9b609e381ca3d64add1799 WHIRLPOOL ccc726cabee3e89efee07ddc5ad9145ae2ad0ce34a2921e741ae82b011e73ebc8fac39ef73d06108fe007926f3d8707472c9d70df7726d300a74e4f7ae050cc7
diff --git a/dev-python/pykit/metadata.xml b/dev-python/pykit/metadata.xml
new file mode 100644
index 00000000000..db53dcbe695
--- /dev/null
+++ b/dev-python/pykit/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ Backend compiler for high-level typed code with first-class support
+ for multi-dimensional arrays, list tuples and dicts. High-level
+ operations are optimized and must be lowered to a runtime
+ implementation. Provided runtime implementations are in place for
+ memory management and garbage collection, exceptions and threads.
+</longdescription>
+ <upstream>
+ <remote-id type="github">pykit/pykit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pykit/pykit-0.1.0.ebuild b/dev-python/pykit/pykit-0.1.0.ebuild
new file mode 100644
index 00000000000..e946a49acdc
--- /dev/null
+++ b/dev-python/pykit/pykit-0.1.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Backend compiler for high-level typed code"
+HOMEPAGE="http://pykit.github.io/pykit/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/llvmmath[${PYTHON_USEDEP}]
+ dev-python/llvmpy[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? ( ${RDEPEND} dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import sys, pykit; sys.exit(pykit.test())" || die
+}
diff --git a/dev-python/pykit/pykit-0.2.0.ebuild b/dev-python/pykit/pykit-0.2.0.ebuild
new file mode 100644
index 00000000000..c891754b0c3
--- /dev/null
+++ b/dev-python/pykit/pykit-0.2.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Backend compiler for high-level typed code"
+HOMEPAGE="http://pykit.github.io/pykit/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/llvmmath[${PYTHON_USEDEP}]
+ dev-python/llvmpy[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? ( ${RDEPEND} dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${PYTHON} -c "import sys, pykit; sys.exit(pykit.test())" || die
+}
diff --git a/dev-python/pykka/Manifest b/dev-python/pykka/Manifest
new file mode 100644
index 00000000000..105c3c106d6
--- /dev/null
+++ b/dev-python/pykka/Manifest
@@ -0,0 +1 @@
+DIST Pykka-1.2.1.tar.gz 46252 SHA256 e847ffeadee49b563426ab803e8eee67264d773e38ca14763fdcda56411e3c11 SHA512 22eaa735915e33146d8a3fa3f9dd5ea1dd608e7ad45ab21721a108b01ddf058b4cd00da67b762a95ede650c9ba1a79ee3d6fd22a491bc7ff348a56b7c0139cfd WHIRLPOOL e6efd2c78714cba9ec296917ad42e5b495bed751e1339c407fe42796d99cb7bb39e33bfdce70fff8ed42f9706616676f7cf975750672989f833fe1f464e5cd34
diff --git a/dev-python/pykka/metadata.xml b/dev-python/pykka/metadata.xml
new file mode 100644
index 00000000000..c953f198359
--- /dev/null
+++ b/dev-python/pykka/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Pykka</remote-id>
+ <remote-id type="github">jodal/pykka</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pykka/pykka-1.2.1.ebuild b/dev-python/pykka/pykka-1.2.1.ebuild
new file mode 100644
index 00000000000..9e401071483
--- /dev/null
+++ b/dev-python/pykka/pykka-1.2.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="A Python implementation of the actor model"
+HOMEPAGE="http://pykka.org https://github.com/jodal/pykka"
+SRC_URI="mirror://pypi/P/Pykka/Pykka-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/Pykka-${PV}
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pylast/Manifest b/dev-python/pylast/Manifest
new file mode 100644
index 00000000000..985f630374c
--- /dev/null
+++ b/dev-python/pylast/Manifest
@@ -0,0 +1,2 @@
+DIST pylast-0.5.11.tar.gz 26146 SHA256 bf35820be35447d55564d36072d40b09ac8a7fd41a6f1a7a9d408f4d0eaefac4 SHA512 4b313156aff927f1ec61a848d1ee4c74fde348e1faef6d8dcf9578b164d65621c85bac3de0288d7aae0147157cc2c01a048d7293c191e9c1ede1197527d987e6 WHIRLPOOL 16f4b0c4b4844997575bb382f62c2b65b69dbf3b3a794e016b84046aefd023e44591e12819171eada7c7d0f88791a85c5d549340d85823d46cd1d1c4d36fd0d9
+DIST pylast-1.0.0.tar.gz 29099 SHA256 948bc9efb2e2785db8c303cc6559358b943538cc45f902838db770b84843d605 SHA512 1d6183596ff994f37722be493e22c65a2c441f5890b539fd9e19d515a5a38afc7017524600903879a8c76b938a52dec6ef4753c0e01dd59bae4e1596962755a0 WHIRLPOOL fd81c5143574f7685383719d76db67b24dbf78d387f3f73846ee2fc2433bf1ea65b1d35961b8f9424fb083f42872bb150e505cbfda93134fcb4509a74d8a8980
diff --git a/dev-python/pylast/metadata.xml b/dev-python/pylast/metadata.xml
new file mode 100644
index 00000000000..4bdf9326e9c
--- /dev/null
+++ b/dev-python/pylast/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>idella4gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <longdescription lang="en">
+Python interface to last.fm and other api-compatible websites
+
+Features:
+ * Simple public interface.
+ * Access to all the data exposed by the Last.fm webservices.
+ * Scrobbling support.
+ * Full object-oriented design.
+ * Proxy support.
+ * Internal caching support for some webservices calls (disabled by default).
+ * No extra dependencies but python itself.
+ * Support for other API-compatible networks like Libre.fm
+ * Python3-friendly (Starting from 0.5).
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pylast</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylast/pylast-0.5.11-r1.ebuild b/dev-python/pylast/pylast-0.5.11-r1.ebuild
new file mode 100644
index 00000000000..a3cd6d748ca
--- /dev/null
+++ b/dev-python/pylast/pylast-0.5.11-r1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to last.fm and other api-compatible websites"
+HOMEPAGE="http://code.google.com/p/pylast/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE=""
diff --git a/dev-python/pylast/pylast-1.0.0.ebuild b/dev-python/pylast/pylast-1.0.0.ebuild
new file mode 100644
index 00000000000..81eb2ec6c48
--- /dev/null
+++ b/dev-python/pylast/pylast-1.0.0.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to last.fm and other api-compatible websites"
+HOMEPAGE="http://code.google.com/p/pylast/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
diff --git a/dev-python/pylibacl/Manifest b/dev-python/pylibacl/Manifest
new file mode 100644
index 00000000000..9c6ce607441
--- /dev/null
+++ b/dev-python/pylibacl/Manifest
@@ -0,0 +1 @@
+DIST pylibacl-0.5.0.tar.gz 23886 SHA256 8706291e815547e2e89426508d00fd31d437bdb8e5eb9407777f414b0606e2d6 SHA512 c12390b6a0ca73fd351b84860a9d68d74126dbcd8656916d677a39002a6e4abbac704d450b0b0118bba40987cdd11cc11ad14008de39dac8dc9ca7587ae54c46 WHIRLPOOL e6496a45f81f9bb12bff33f7724768f768a9ad1936ea6efd358fff1ac1ecb8ba1bd662c22b8ce6b9e4cfa879ed32bec5dc4c288fb025960e2e81e5236065c07a
diff --git a/dev-python/pylibacl/metadata.xml b/dev-python/pylibacl/metadata.xml
new file mode 100644
index 00000000000..722d5c6169a
--- /dev/null
+++ b/dev-python/pylibacl/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">pylibacl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylibacl/pylibacl-0.5.0-r1.ebuild b/dev-python/pylibacl/pylibacl-0.5.0-r1.ebuild
new file mode 100644
index 00000000000..2ac597db359
--- /dev/null
+++ b/dev-python/pylibacl/pylibacl-0.5.0-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="POSIX ACLs (Access Control Lists) for Python"
+HOMEPAGE="http://sourceforge.net/projects/pylibacl/ http://pypi.python.org/pypi/pylibacl"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ~mips ppc ppc64 ~sh sparc x86"
+IUSE=""
+
+RDEPEND="sys-apps/acl"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+# Tests are missing in the tarball.
+RESTRICT="test"
+
+python_test() {
+ if ! "${PYTHON}" test/test_acls.py; then
+ eerror
+ eerror "If you got the following errors:"
+ eerror "\"IOError: [Errno 95] Operation not supported\","
+ eerror "then you should remount the filesystem containing"
+ eerror "build directory with \"acl\" option enabled."
+ eerror
+ die "Tests fail with ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/pyliblzma/Manifest b/dev-python/pyliblzma/Manifest
new file mode 100644
index 00000000000..7fb21c85e51
--- /dev/null
+++ b/dev-python/pyliblzma/Manifest
@@ -0,0 +1 @@
+DIST pyliblzma-0.5.3.tar.bz2 43498 SHA256 08d762f36d5e59fb9bb0e22e000c300b21f97e35b713321ee504cfb442667957 SHA512 272983aac426e86d6d636ccba4fe78a07d7282560081df937114162bfd317bd8023814693b8d473d0f7884e38a968ebeaf8f954a5a27c1f7e5da084f3fd05c65 WHIRLPOOL 289fc18a8cf7b90f53f06bd4cc3865b4e02f87710bf0ade15c11d2774f86ff826171483f746765cda67628ae3d78f7914448e652a6b5e69c0c572d357e3cac20
diff --git a/dev-python/pyliblzma/metadata.xml b/dev-python/pyliblzma/metadata.xml
new file mode 100644
index 00000000000..ea2a8b112c9
--- /dev/null
+++ b/dev-python/pyliblzma/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyliblzma</remote-id>
+ <remote-id type="launchpad">pyliblzma</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyliblzma/pyliblzma-0.5.3-r1.ebuild b/dev-python/pyliblzma/pyliblzma-0.5.3-r1.ebuild
new file mode 100644
index 00000000000..c80d52a831a
--- /dev/null
+++ b/dev-python/pyliblzma/pyliblzma-0.5.3-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for liblzma"
+HOMEPAGE="https://launchpad.net/pyliblzma http://pypi.python.org/pypi/pyliblzma"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND="app-arch/xz-utils"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ virtual/pkgconfig"
+
+DOCS="THANKS"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pylibmc/Manifest b/dev-python/pylibmc/Manifest
new file mode 100644
index 00000000000..12045d03ede
--- /dev/null
+++ b/dev-python/pylibmc/Manifest
@@ -0,0 +1,2 @@
+DIST pylibmc-1.4.3.tar.gz 53063 SHA256 44167da299eaec2674eea7f8ebead646e361ad07e242e35b755181f88bab44ff SHA512 562091ecc046e1f4d181071dede056865649704e02d705f5af5845ad003ad775ed006c1431d48b330cf3b9fdeaceec6a6748ea9e120f673f06fdb99ed4953318 WHIRLPOOL 6055d0aee74f7edcc995d4350542cfebadeea97ffb367db8595e63cee6c4e0aae61b56471b619c07a7d289f87a2c1b9f0fa538939d113f1d395ceff3e96a86c4
+DIST pylibmc-1.5.0.tar.gz 53077 SHA256 16255595616a6d78cd786a55cc6431da5b7accf46512df854712a0cdbb3acfaa SHA512 0b89ad56d44205c0a20c5e2b56f70ac5128b46df81b4fcb9c72918b5d32e455dd3d976366872fe1d0acf40b61460d08fa6f30a8fa26977c1d65509e28bbbf80d WHIRLPOOL 3d3b8cd8842a6e0e602b5addfed12db94da4fbfb6d4f215546ca6ba9cfc0b24f5ce333e5f2740ba625a416663097e46dc40749418cc4c1a52f3123a032c4b45f
diff --git a/dev-python/pylibmc/metadata.xml b/dev-python/pylibmc/metadata.xml
new file mode 100644
index 00000000000..b549092efe6
--- /dev/null
+++ b/dev-python/pylibmc/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>bugs@bergstroem.nu</email>
+ <name>Johan Bergström</name>
+ <description>Proxy-Maintainer, assign bugs</description>
+ </maintainer>
+ <maintainer>
+ <email>djc@gentoo.org</email>
+ <name>Dirkjan Ochtman</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pylibmc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylibmc/pylibmc-1.4.3.ebuild b/dev-python/pylibmc/pylibmc-1.4.3.ebuild
new file mode 100644
index 00000000000..952867dc86b
--- /dev/null
+++ b/dev-python/pylibmc/pylibmc-1.4.3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Libmemcached wrapper written as a Python extension"
+HOMEPAGE="http://sendapatch.se/projects/pylibmc/ http://pypi.python.org/pypi/pylibmc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-libs/libmemcached-0.32"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e "/with-info=1/d" -i setup.cfg
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ memcached -d -p 11219 -u nobody -l localhost -P "${T}/m.pid" || die
+ MEMCACHED_PORT=11219 nosetests
+ local ret=${?}
+ kill "$(<"${T}/m.pid")" || die
+ [[ ${ret} == 0 ]] || die "Tests fail with ${EPYTHON}!"
+}
diff --git a/dev-python/pylibmc/pylibmc-1.5.0.ebuild b/dev-python/pylibmc/pylibmc-1.5.0.ebuild
new file mode 100644
index 00000000000..952867dc86b
--- /dev/null
+++ b/dev-python/pylibmc/pylibmc-1.5.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Libmemcached wrapper written as a Python extension"
+HOMEPAGE="http://sendapatch.se/projects/pylibmc/ http://pypi.python.org/pypi/pylibmc"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-libs/libmemcached-0.32"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e "/with-info=1/d" -i setup.cfg
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ memcached -d -p 11219 -u nobody -l localhost -P "${T}/m.pid" || die
+ MEMCACHED_PORT=11219 nosetests
+ local ret=${?}
+ kill "$(<"${T}/m.pid")" || die
+ [[ ${ret} == 0 ]] || die "Tests fail with ${EPYTHON}!"
+}
diff --git a/dev-python/pylibpcap/Manifest b/dev-python/pylibpcap/Manifest
new file mode 100644
index 00000000000..c6518ef6425
--- /dev/null
+++ b/dev-python/pylibpcap/Manifest
@@ -0,0 +1 @@
+DIST pylibpcap-0.6.4.tar.gz 49517 SHA256 cfc365f2707a7986496acacf71789fef932a5ddbeaa36274cc8f9834831ca3b1 SHA512 5db891bc044065ea72fb24f800adcdc1c80280a95a169f241a926b65ecff9b2cddc8cca1f2210bdd3fa01f4bc358a696eab93438d49b2eea10a22b6afc4ca468 WHIRLPOOL a72881dc5634adeabca3f779ab6bc0b106bcb024bb4f899697dd1004eafda547e4cea530a023962a45f8c8947b9d29ca788ade4bffa2600246bbf04063da4ee6
diff --git a/dev-python/pylibpcap/metadata.xml b/dev-python/pylibpcap/metadata.xml
new file mode 100644
index 00000000000..5de669fc106
--- /dev/null
+++ b/dev-python/pylibpcap/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pylibpcap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylibpcap/pylibpcap-0.6.4-r1.ebuild b/dev-python/pylibpcap/pylibpcap-0.6.4-r1.ebuild
new file mode 100644
index 00000000000..9c21a59e32e
--- /dev/null
+++ b/dev-python/pylibpcap/pylibpcap-0.6.4-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to libpcap"
+HOMEPAGE="http://sourceforge.net/projects/pylibpcap/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ia64 ~x86"
+IUSE="examples"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pylibpcap/pylibpcap-0.6.4.ebuild b/dev-python/pylibpcap/pylibpcap-0.6.4.ebuild
new file mode 100644
index 00000000000..1d53233dd33
--- /dev/null
+++ b/dev-python/pylibpcap/pylibpcap-0.6.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Python interface to libpcap"
+HOMEPAGE="http://sourceforge.net/projects/pylibpcap/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ia64 x86"
+IUSE="examples"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+PYTHON_MODNAME="pcap.py"
+
+src_install() {
+ distutils_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pylint/Manifest b/dev-python/pylint/Manifest
new file mode 100644
index 00000000000..5ce8409977d
--- /dev/null
+++ b/dev-python/pylint/Manifest
@@ -0,0 +1,5 @@
+DIST pylint-0.25.2.tar.gz 214769 SHA256 08c2a0ccf2d715cdc9a2a0478200c54aac5b4f6d521e10c5b27db65d5787ff07 SHA512 eea1a783ca52623fa2a026fe82939b8a5920b3b6be21b808388bb9336ba85aeded157198a436fcf3ab8735df6cfcf94c352b695db1131490dda2e26305be68d0 WHIRLPOOL b6a4595e14a350c9156ebb6fce3c9c35ada304f0c33659c55266534c4539f871102dfb6c601bd4e0b4a067a5695da28dcefda7e911d7d11325f4672b38dc7ecd
+DIST pylint-1.4.0.tar.gz 331577 SHA256 816646b9d5fd0c33f9e3b009953c46727d22bec3e880712d69b39b1b630fa3ca SHA512 b221390076c337a9ef14ef848cfa911f4d0217d7a39a0b0ebc2b556974a33d44381e15746c117ef4b7dcd87acca45f07894aa2db4cf3fe2b70228d570b89725c WHIRLPOOL d71264f76c9c49e22b8943705b0169548d9c69413527583ec95613eb9d5419e6175169cc25c791de94588617f6ac567668036192317fdcc5020511fddab99f78
+DIST pylint-1.4.1.tar.gz 338636 SHA256 3e383060edd432cbbd0e8bd686f5facfe918047ffe1bb401ab5897cb6ee0f030 SHA512 019405c16ef731f83c12e2b0a7f4b3fc2e17f35df50a18dbbc084ed14450a070e689850b8d7761e2fba0d2a8f6c70ef06709de5b96e59af7da9cc6cc412bbf25 WHIRLPOOL ae88953c5c43960438abf87e3c730afda220afae697cc6fc985372ddf8b0f94c018850800f6001e93e6748eee25e59e1ded2211935f3e45b55f04833acd40fb0
+DIST pylint-1.4.3.tar.gz 342509 SHA256 1dce8c143a5aa15e0638887c2b395e2e823223c63ebaf8d5f432a99e44b29f60 SHA512 63af8c72496b88db967c61d5be2b974fca053a45425ea8b5898e941be135d26c8c004b91b8b3a98337c0c5af4f5a530afbf091d7c5ecfa36bfa36aef9f843a95 WHIRLPOOL 17b08712a00c01468ca466f2f83386275a304ab7a2c8a1d223eeda8e9fd4cc4753796a354250accad9f9fcbd0aaba3562ebc794af880e49889ee1b5b2d295d0c
+DIST pylint-1.4.4.tar.gz 342461 SHA256 0561af4d6bd4fa9e8e02f3997fe93684f7187c57bcef9db8c2ea9fb0d7d2f022 SHA512 bcbf5439628a071055cea441455f6c0fe0cbfae2617c473bc376b880421f17f78653901d7cf49950653436a0991a3bafbc2df15744ff24a3b059de53e518b331 WHIRLPOOL 9b8f5384691f5e762bfd7313691783e0b1a9148effec0b29f2e538f587dfa03f57413817589f8fc3f152c05330b7f39c8ede27720ff6ad12496f9101d824fedf
diff --git a/dev-python/pylint/files/pylint-0.26.0-gtktest.patch b/dev-python/pylint/files/pylint-0.26.0-gtktest.patch
new file mode 100644
index 00000000000..c7e8ca39e62
--- /dev/null
+++ b/dev-python/pylint/files/pylint-0.26.0-gtktest.patch
@@ -0,0 +1,32 @@
+test_gtk_import can't connect to an X, decided by consensus to skip due to onerous
+overhead required by virtualx eclass to see it pass.
+diff -ur pylint-0.26.0.orig/test/test_regr.py pylint-0.26.0/test/test_regr.py
+--- test/test_regr.py 2012-07-18 14:34:04.000000000 +0800
++++ test/test_regr.py 2013-01-08 06:11:08.846289350 +0800
+@@ -75,16 +75,16 @@
+ sys.path.pop(0)
+ os.chdir(cwd)
+
+- def test_gtk_import(self):
+- try:
+- import gtk
+- except ImportError:
+- self.skipTest('test skipped: gtk is not available')
+- except RuntimeError: # RuntimeError when missing display
+- self.skipTest('no display, can\'t run this test')
+- linter.check(join(REGR_DATA, 'pygtk_import.py'))
+- got = linter.reporter.finalize().strip()
+- self.assertEqual(got, '')
++# def test_gtk_import(self):
++# try:
++# import gtk
++# except ImportError:
++# self.skipTest('test skipped: gtk is not available')
++# except RuntimeError: # RuntimeError when missing display
++# self.skipTest('no display, can\'t run this test')
++# linter.check(join(REGR_DATA, 'pygtk_import.py'))
++# got = linter.reporter.finalize().strip()
++# self.assertEqual(got, '')
+
+ def test_numarray_inference(self):
+ try:
diff --git a/dev-python/pylint/metadata.xml b/dev-python/pylint/metadata.xml
new file mode 100644
index 00000000000..a108538b650
--- /dev/null
+++ b/dev-python/pylint/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Pylint is a Python source code analyzer which looks for programming
+ errors, helps enforcing a coding standard and sniffs for some code
+ smells (as defined in Martin Fowler's Refactoring book).
+ Pylint can be seen as another PyChecker since nearly all tests you can
+ do with PyChecker can also be done with Pylint. However, Pylint offers
+ some more features, like checking length of lines of code, checking if
+ variable names are well-formed according to your coding standard, or
+ checking if declared interfaces are truly implemented, and much more.
+ Additionally, it is possible to write plugins to add your own checks.</longdescription>
+ <upstream>
+ <remote-id type="pypi">pylint</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylint/pylint-0.25.2.ebuild b/dev-python/pylint/pylint-0.25.2.ebuild
new file mode 100644
index 00000000000..132a626e3c7
--- /dev/null
+++ b/dev-python/pylint/pylint-0.25.2.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python code static checker"
+HOMEPAGE="http://www.logilab.org/project/pylint http://pypi.python.org/pypi/pylint"
+SRC_URI="ftp://ftp.logilab.org/pub/${PN}/${P}.tar.gz mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="examples"
+
+# Versions specified in __pkginfo__.py.
+RDEPEND=">=dev-python/logilab-common-0.53.0[${PYTHON_USEDEP}]
+ >=dev-python/astng-0.24.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${PN}-0.26.0-gtktest.patch )
+
+python_test() {
+ # Test suite broken with Python 3
+ local msg="Test suite broken with ${EPYTHON}"
+ if [[ "${EPYTHON}" == python3* ]]; then
+ einfo "${msg}"
+ else
+ # https://bitbucket.org/logilab/pylint/issue/11/apparent-regression-in-testsuite-pylint
+ # This 'issue' became' declared fixed by accident for version 0.27.0 despite being made citing 0.28.0
+ pytest || die "Tests failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman man/{pylint,pyreverse}.1
+
+ if use examples; then
+ docinto examples
+ dodoc examples/*
+ fi
+}
+
+pkg_postinst() {
+ # Optional dependency on "tk" USE flag would break support for Jython.
+ elog "pylint-gui script requires dev-lang/python with \"tk\" USE flag enabled."
+}
diff --git a/dev-python/pylint/pylint-1.4.0.ebuild b/dev-python/pylint/pylint-1.4.0.ebuild
new file mode 100644
index 00000000000..bebe3317fa2
--- /dev/null
+++ b/dev-python/pylint/pylint-1.4.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+RESTRICT="test" # needs pygtk
+
+DESCRIPTION="Python code static checker"
+HOMEPAGE="http://www.logilab.org/project/pylint http://pypi.python.org/pypi/pylint"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=dev-python/logilab-common-0.53.0[${PYTHON_USEDEP}]
+ >=dev-python/astroid-1.3[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( "${RDEPEND}" )"
+
+# Usual. Requ'd for impl specific failures in test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ # selection of straight html triggers a trivial annoying bug, we skirt it
+ use doc && emake -C doc singlehtml
+}
+
+python_test() {
+ # Test suite appears not to work under Python 3.
+ # https://bitbucket.org/logilab/pylint/issue/240/
+ local msg="Test suite broken with ${EPYTHON}"
+ if python_is_python3; then
+ einfo "${msg}"
+ return 0
+ fi
+
+ pytest || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ doman man/{pylint,pyreverse}.1
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( doc/_build/singlehtml/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ # Optional dependency on "tk" USE flag would break support for Jython.
+ elog "pylint-gui script requires dev-lang/python with \"tk\" USE flag enabled."
+}
diff --git a/dev-python/pylint/pylint-1.4.1.ebuild b/dev-python/pylint/pylint-1.4.1.ebuild
new file mode 100644
index 00000000000..258e6ef271f
--- /dev/null
+++ b/dev-python/pylint/pylint-1.4.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+RESTRICT="test" # needs pygtk
+
+DESCRIPTION="Python code static checker"
+HOMEPAGE="http://www.logilab.org/project/pylint http://pypi.python.org/pypi/pylint"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=dev-python/logilab-common-0.53.0[${PYTHON_USEDEP}]
+ >=dev-python/astroid-1.3.3[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND} )"
+
+# Usual. Requ'd for impl specific failures in test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ # selection of straight html triggers a trivial annoying bug, we skirt it
+ use doc && emake -C doc singlehtml
+}
+
+python_test() {
+ # Test suite appears not to work under Python 3.
+ # https://bitbucket.org/logilab/pylint/issue/240/
+ local msg="Test suite broken with ${EPYTHON}"
+ if python_is_python3; then
+ einfo "${msg}"
+ return 0
+ fi
+
+ pytest || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ doman man/{pylint,pyreverse}.1
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( doc/_build/singlehtml/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ # Optional dependency on "tk" USE flag would break support for Jython.
+ elog "pylint-gui script requires dev-lang/python with \"tk\" USE flag enabled."
+}
diff --git a/dev-python/pylint/pylint-1.4.3.ebuild b/dev-python/pylint/pylint-1.4.3.ebuild
new file mode 100644
index 00000000000..cd28321348a
--- /dev/null
+++ b/dev-python/pylint/pylint-1.4.3.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+RESTRICT="test" # needs pygtk
+
+DESCRIPTION="Python code static checker"
+HOMEPAGE="http://www.logilab.org/project/pylint http://pypi.python.org/pypi/pylint"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=dev-python/logilab-common-0.53.0[${PYTHON_USEDEP}]
+ >=dev-python/astroid-1.3.6[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND} )"
+
+# Usual. Requ'd for impl specific failures in test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ # selection of straight html triggers a trivial annoying bug, we skirt it
+ use doc && emake -C doc singlehtml
+}
+
+python_test() {
+ # Test suite appears not to work under Python 3.
+ # https://bitbucket.org/logilab/pylint/issue/240/
+ local msg="Test suite broken with ${EPYTHON}"
+ if python_is_python3; then
+ einfo "${msg}"
+ return 0
+ fi
+
+ pytest || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ doman man/{pylint,pyreverse}.1
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( doc/_build/singlehtml/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ # Optional dependency on "tk" USE flag would break support for Jython.
+ elog "pylint-gui script requires dev-lang/python with \"tk\" USE flag enabled."
+}
diff --git a/dev-python/pylint/pylint-1.4.4.ebuild b/dev-python/pylint/pylint-1.4.4.ebuild
new file mode 100644
index 00000000000..f62ca2c8ccd
--- /dev/null
+++ b/dev-python/pylint/pylint-1.4.4.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+RESTRICT="test" # needs pygtk
+
+DESCRIPTION="Python code static checker"
+HOMEPAGE="http://www.logilab.org/project/pylint http://pypi.python.org/pypi/pylint"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc examples test"
+
+RDEPEND="
+ >=dev-python/logilab-common-0.53.0[${PYTHON_USEDEP}]
+ >=dev-python/astroid-1.3.6[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND} )"
+
+# Usual. Requ'd for impl specific failures in test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_compile_all() {
+ # selection of straight html triggers a trivial annoying bug, we skirt it
+ use doc && PYTHONPATH="${S}" emake -e -C doc singlehtml
+}
+
+python_test() {
+ # Test suite appears not to work under Python 3.
+ # https://bitbucket.org/logilab/pylint/issue/240/
+ local msg="Test suite broken with ${EPYTHON}"
+ if python_is_python3; then
+ einfo "${msg}"
+ return 0
+ fi
+
+ pytest || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ doman man/{pylint,pyreverse}.1
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( doc/_build/singlehtml/. )
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ # Optional dependency on "tk" USE flag would break support for Jython.
+ elog "pylint-gui script requires dev-lang/python with \"tk\" USE flag enabled."
+}
diff --git a/dev-python/pylirc/Manifest b/dev-python/pylirc/Manifest
new file mode 100644
index 00000000000..5c92d676922
--- /dev/null
+++ b/dev-python/pylirc/Manifest
@@ -0,0 +1 @@
+DIST pylirc-0.0.5.tar.gz 3538 SHA256 a78315e1ddf5af61cf91000a4b2f8e2df0841edd97b2596b2e0c5505bf8330a2 SHA512 c697e100e430dbd9f52322b6494b0cdb0fdd539ea94ea95c025801f1e8a80330ad8d23f075f3cea2ad98f57420658f98445f47969e7408f1f36d48063fb6c540 WHIRLPOOL 539cfc89fcfb1852bbf81145fa1ad357b55a632bdc3ec2cca56c78046fbf952ddb110e80d876383cebe70dcd3002b4ddcbeb4f3a39f8cc04a27533273f468888
diff --git a/dev-python/pylirc/metadata.xml b/dev-python/pylirc/metadata.xml
new file mode 100644
index 00000000000..90a49430013
--- /dev/null
+++ b/dev-python/pylirc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>media-tv</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pylirc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylirc/pylirc-0.0.5-r1.ebuild b/dev-python/pylirc/pylirc-0.0.5-r1.ebuild
new file mode 100644
index 00000000000..13dbe6e87a4
--- /dev/null
+++ b/dev-python/pylirc/pylirc-0.0.5-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="lirc module for Python"
+HOMEPAGE="http://sourceforge.net/projects/pylirc/ http://pypi.python.org/pypi/pylirc"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="app-misc/lirc"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/pylons/Manifest b/dev-python/pylons/Manifest
new file mode 100644
index 00000000000..681f5d2b5b2
--- /dev/null
+++ b/dev-python/pylons/Manifest
@@ -0,0 +1 @@
+DIST Pylons-1.0.1.tar.gz 2299257 SHA256 7c22579516d92e6fcab3f9555b33fe7a259cc2e16d2fe414816c0138c91e8c0d SHA512 1b34541c912c914636fc7b0d358439a6705e5161a306a4bfa6a08cbc1ee4741cb3882afc9cae9a22d208f89f9648a4b7559304842339c8d6d75472f058a91ceb WHIRLPOOL 58019b223a0fc52f5cf7582a03ae7f5b25c29b88d3faff42c03ed5602f3fb2bc4bc9a4cce48d761109c2c7a4edc0b05ffcb100bf1bab70cf572f93c6da38d2c8
diff --git a/dev-python/pylons/metadata.xml b/dev-python/pylons/metadata.xml
new file mode 100644
index 00000000000..10c66b0d7fe
--- /dev/null
+++ b/dev-python/pylons/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="genshi">Add optional genshi support</flag>
+ <flag name="jinja">Add optional jinja support</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">Pylons</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylons/pylons-1.0.1-r1.ebuild b/dev-python/pylons/pylons-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..630e9e1c4e0
--- /dev/null
+++ b/dev-python/pylons/pylons-1.0.1-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Pylons"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pylons Web Framework"
+HOMEPAGE="http://pylonshq.com/ http://pypi.python.org/pypi/Pylons"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="genshi jinja test"
+
+RDEPEND=">=dev-python/beaker-1.3[${PYTHON_USEDEP}]
+ >=dev-python/decorator-2.3.2[${PYTHON_USEDEP}]
+ >=dev-python/formencode-1.2.1[${PYTHON_USEDEP}]
+ >=dev-python/mako-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/nose-0.10.4[${PYTHON_USEDEP}]
+ >=dev-python/paste-1.7.2[${PYTHON_USEDEP}]
+ >=dev-python/pastedeploy-1.3.3[${PYTHON_USEDEP}]
+ >=dev-python/pastescript-1.7.3[${PYTHON_USEDEP}]
+ >=dev-python/repoze-lru-0.3[${PYTHON_USEDEP}]
+ >=dev-python/routes-1.12[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.0.8[${PYTHON_USEDEP}]
+ >=dev-python/tempita-0.2[${PYTHON_USEDEP}]
+ >=dev-python/weberror-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/webhelpers-0.6.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-0.9.6.1[${PYTHON_USEDEP}]
+ >=dev-python/webtest-1.1[${PYTHON_USEDEP}]
+ genshi? ( >=dev-python/genshi-0.4.4[${PYTHON_USEDEP}] )
+ jinja? ( >=dev-python/jinja-2[${PYTHON_USEDEP}] )"
+# Dependency on >=dev-python/coverage-2.85 and dev-python/genshi is not with Jython.
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/coverage-2.85[${PYTHON_USEDEP}]
+ dev-python/genshi[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.2.1[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyltxml/Manifest b/dev-python/pyltxml/Manifest
new file mode 100644
index 00000000000..5441a188102
--- /dev/null
+++ b/dev-python/pyltxml/Manifest
@@ -0,0 +1 @@
+DIST PyLTXML-1.3.tar.gz 27550 SHA256 4bd7a726667e48fc604bb471d775c0c42cb62a1aa77b01aa9a761012fab052f2 SHA512 0221557ec2a4311b346031a6059a7776ec30b9c34fe78e59a0e4f236931b3ab2268ed28de93429fe66f38fc855b6368eab990d5d977bca03bb4b0882136c0c1c WHIRLPOOL 6fc5ef5fba42e0b6e0ccea7424fe142c5784a488c4a171571fdc4434b28e74d9261b31a321ad7502d223c91e10f2a5d937e88d25bbd1a2d66812ddbe2a634231
diff --git a/dev-python/pyltxml/metadata.xml b/dev-python/pyltxml/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyltxml/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyltxml/pyltxml-1.3-r1.ebuild b/dev-python/pyltxml/pyltxml-1.3-r1.ebuild
new file mode 100644
index 00000000000..f3bd3bc19b7
--- /dev/null
+++ b/dev-python/pyltxml/pyltxml-1.3-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Bindings for LTXML libraries"
+HOMEPAGE="http://www.ltg.ed.ac.uk/software/xml/"
+SRC_URI="ftp://ftp.cogsci.ed.ac.uk/pub/LTXML/PyLTXML-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="ppc x86"
+IUSE=""
+
+DEPEND="=dev-libs/ltxml-1.2.5"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/PyLTXML-${PV}"
+
+DOCS="00README"
+PYTHON_MODNAME="PyLTXML"
+
+src_prepare() {
+ distutils_src_prepare
+
+ sed \
+ -e s':projects/ltg/projects/lcontrib/include:usr/include:' \
+ -e s':projects/ltg/projects/lcontrib/lib:usr/lib/ltxml12:' \
+ -i setup.py || die "sed failed"
+}
diff --git a/dev-python/pylzma/Manifest b/dev-python/pylzma/Manifest
new file mode 100644
index 00000000000..89754e50006
--- /dev/null
+++ b/dev-python/pylzma/Manifest
@@ -0,0 +1,4 @@
+DIST pylzma-0.4.4.tar.gz 106537 SHA256 ba65fbeee504bd10af275399df10e5603a33226a3e22d393dfa59ae99765cff1 SHA512 50803ca88f86059908920cc3a67abf78d319aa74bcec4fcf65b7f42893f64e3a064c683ae017566900d457a34322945a9ef420f18c6d254318ee2a3d06c4a63a WHIRLPOOL 1da7c51c645ad197686e73562d6b718ace12ce7b433ecaf01e8b0c8601ee8da33df9ac4b1ebcb89ef7d4ca3493758d3a4c1b3a6dac98b4c74626ead4def1dabb
+DIST pylzma-0.4.5.tar.gz 109966 SHA256 02eb860567bf760a7dd48e55e9834f7668f0c3ffbaedefcb82f954438253b3e4 SHA512 024dc144dc2649982aa032f7dd14d64854ac72dc65ae676fcdd7b1440c3eb14583c9e315d8837448e4d98c101cbd00fb7dc7b138b609bfd4eabc0a6d1bc8f330 WHIRLPOOL 53db9f42de8a00fbfe11328b16f8f8974d6e06c591e74e640a783431574138861208abe2855ff6a8310fa4b4c8215c61aa44a296cc881e2929f5cd5ea7c05e07
+DIST pylzma-0.4.6.tar.gz 110092 SHA256 3357c1c74122ee289ce973788f8dc2371a00ec4a145397202001acfb4bc85974 SHA512 9418bebeea811a99ad6874340d36baf28d1310fb6d58eee94dc34f68a37916f18dfca52c32dd43d4d10bfca507d157315a563e6c5a3444a89fd381e9991de150 WHIRLPOOL d1856beb436e8319fbe5547581e0483847451db1d23e506b5bedd7df44c07f42d1d41c82ef02aa20eda479715c1f624d6e4bb02e76f9094f6bd65ec026585c09
+DIST pylzma-0.4.8.tar.gz 115234 SHA256 e6239cc4c134083ef6cfee54b1b9f5116dfc081474e093136b1b0e3226ac2532 SHA512 27f9ba035f326fddbfd72b186bf272986838ff88f603f397a8dd503b99681cdf197848ff0e47e1035bd7c3fd40fd2c09026afec30728fd58f065602b0078fbeb WHIRLPOOL 351877b6c46c609b44e171998c336470fbd9a6252fd2639884d813437ed781c3a5e5566ca248a97398af00d1885909b167c4dd57612380cbaf42b2a1a72803e1
diff --git a/dev-python/pylzma/metadata.xml b/dev-python/pylzma/metadata.xml
new file mode 100644
index 00000000000..151fd0ccea6
--- /dev/null
+++ b/dev-python/pylzma/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pylzma</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pylzma/pylzma-0.4.4-r1.ebuild b/dev-python/pylzma/pylzma-0.4.4-r1.ebuild
new file mode 100644
index 00000000000..b861f22d859
--- /dev/null
+++ b/dev-python/pylzma/pylzma-0.4.4-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+# hashlib module required.
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the LZMA compression library"
+HOMEPAGE="http://www.joachim-bauch.de/projects/python/pylzma/ http://pypi.python.org/pypi/pylzma"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="dev-python/m2crypto[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=(doc/usage.txt readme.txt)
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pylzma/pylzma-0.4.5.ebuild b/dev-python/pylzma/pylzma-0.4.5.ebuild
new file mode 100644
index 00000000000..1e7783d25ac
--- /dev/null
+++ b/dev-python/pylzma/pylzma-0.4.5.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+# hashlib module required.
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the LZMA compression library"
+HOMEPAGE="http://www.joachim-bauch.de/projects/python/pylzma/ http://pypi.python.org/pypi/pylzma"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="dev-python/m2crypto[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=(doc/USAGE.md README.md)
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pylzma/pylzma-0.4.6.ebuild b/dev-python/pylzma/pylzma-0.4.6.ebuild
new file mode 100644
index 00000000000..1e7783d25ac
--- /dev/null
+++ b/dev-python/pylzma/pylzma-0.4.6.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+# hashlib module required.
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the LZMA compression library"
+HOMEPAGE="http://www.joachim-bauch.de/projects/python/pylzma/ http://pypi.python.org/pypi/pylzma"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="dev-python/m2crypto[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=(doc/USAGE.md README.md)
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pylzma/pylzma-0.4.8.ebuild b/dev-python/pylzma/pylzma-0.4.8.ebuild
new file mode 100644
index 00000000000..1e7783d25ac
--- /dev/null
+++ b/dev-python/pylzma/pylzma-0.4.8.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+# hashlib module required.
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the LZMA compression library"
+HOMEPAGE="http://www.joachim-bauch.de/projects/python/pylzma/ http://pypi.python.org/pypi/pylzma"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="dev-python/m2crypto[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=(doc/USAGE.md README.md)
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pymad/Manifest b/dev-python/pymad/Manifest
new file mode 100644
index 00000000000..08512f8ffd8
--- /dev/null
+++ b/dev-python/pymad/Manifest
@@ -0,0 +1 @@
+DIST pymad-0.6.tar.gz 22099 SHA256 1c9fc529b78de7d26e9e47cf182c9f8bf43838d8f62a9c1773540d57f5ebc522 SHA512 1493925cf0fca3ede8314071795736354e2f036f41a9e72cfcf77f960c84bba8e76b43ce7c389c15dc9f2f619ce77b0afae1b78558b1617240bdde3012ad753c WHIRLPOOL 843b888f6bb1ac95240ab9b35177d43c562a26cc1513d2e69a19d1477f64dec142b092b34e409a8c20523ed0afab4b6704ac6567fb28c206be922d16c4b3c22c
diff --git a/dev-python/pymad/metadata.xml b/dev-python/pymad/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pymad/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pymad/pymad-0.6-r1.ebuild b/dev-python/pymad/pymad-0.6-r1.ebuild
new file mode 100644
index 00000000000..c109803b230
--- /dev/null
+++ b/dev-python/pymad/pymad-0.6-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for libmad MP3 decoding in python"
+HOMEPAGE="http://www.spacepants.org/src/pymad/"
+SRC_URI="http://www.spacepants.org/src/pymad/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="media-libs/libmad"
+RDEPEND="${DEPEND}"
+
+python_configure_all() {
+ set -- "${PYTHON}" config_unix.py --prefix "${EPREFIX}/usr"
+ echo "${@}"
+ "${@}" || die "Configuration failed"
+}
diff --git a/dev-python/pymad/pymad-0.6.ebuild b/dev-python/pymad/pymad-0.6.ebuild
new file mode 100644
index 00000000000..dd384de716c
--- /dev/null
+++ b/dev-python/pymad/pymad-0.6.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Python wrapper for libmad MP3 decoding in python"
+HOMEPAGE="http://www.spacepants.org/src/pymad/"
+SRC_URI="http://www.spacepants.org/src/pymad/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="media-libs/libmad"
+RDEPEND="${DEPEND}"
+
+DOCS="AUTHORS THANKS"
+
+src_configure() {
+ echo "$(PYTHON -f)" config_unix.py --prefix "${EPREFIX}/usr"
+ "$(PYTHON -f)" config_unix.py --prefix "${EPREFIX}/usr" || die "Configuration failed"
+}
diff --git a/dev-python/pymetar/Manifest b/dev-python/pymetar/Manifest
new file mode 100644
index 00000000000..aef058ffca8
--- /dev/null
+++ b/dev-python/pymetar/Manifest
@@ -0,0 +1 @@
+DIST pymetar-0.19.tar.gz 22123 SHA256 2666c9bcb171bcc5cd6c174073a280836f049fbbd9c264ea24a2a023edb647c9 SHA512 2d6f93db41743eceee776f17dd57ce626b89e19d538a9e52a5a984c3ff858ae42abc5c6f129bceda6efccfd2ae7f1c9616f5b82d7e3795cc38d5ece430aec2a6 WHIRLPOOL cad04c3d8415ff67ff0a08070b787e61321eb7836aeafc3fe326382d9d81c46ac41045ead7100b9561d51dc268bd70522782c2d7937901843a3cf03605ad9a49
diff --git a/dev-python/pymetar/files/setup.patch b/dev-python/pymetar/files/setup.patch
new file mode 100644
index 00000000000..d953af0be4c
--- /dev/null
+++ b/dev-python/pymetar/files/setup.patch
@@ -0,0 +1,14 @@
+entry for data_files cause unwanted duplicate entry @ install
+diff -u pymetar-0.19.orig/setup.py pymetar-0.19/setup.py
+--- setup.py 2012-01-25 22:01:19.000000000 +0800
++++ setup.py 2015-01-04 10:57:14.698948559 +0800
+@@ -26,7 +26,5 @@
+ packages= [ "" ],
+ py_modules=["pymetar"],
+ scripts = [ "bin/pymetar" ],
+- data_files = [("share/doc/pymetar-%s"%pymetar.__version__,
+- ['README', 'COPYING', 'THANKS', 'librarydoc.txt']),
+- ("share/man/man1", ['pymetar.1'])]
++ data_files = [("share/man/man1", ['pymetar.1'])]
+ )
+
diff --git a/dev-python/pymetar/metadata.xml b/dev-python/pymetar/metadata.xml
new file mode 100644
index 00000000000..110abde3a93
--- /dev/null
+++ b/dev-python/pymetar/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+This library downloads the weather report for a given station
+ID (get yours from http://www.nws.noaa.gov/tg/siteloc.shtml),
+decodes it and provides easy access to all the data found in the
+report. Documentation and a small example app are inside the tarball.
+</longdescription>
+<longdescription lang="ja">
+このライブラリは指定したステーションID( http://www.nws.noaa.gov/tg/siteloc.shtml で入手)から天気予報結果をダウンロードし、解読し、予報データから検索するのに簡単
+なアクセス手段を提供します。ドキュメンテーションと単純なサンプル・アプリケーショ
+ンはtarballファイルの中です。
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pymetar/pymetar-0.19-r1.ebuild b/dev-python/pymetar/pymetar-0.19-r1.ebuild
new file mode 100644
index 00000000000..dc61ff545c5
--- /dev/null
+++ b/dev-python/pymetar/pymetar-0.19-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Downloads, decodes and provides access to the weather report for a given station ID"
+HOMEPAGE="http://www.schwarzvogel.de/software-pymetar.shtml"
+SRC_URI="http://www.schwarzvogel.de/pkgs/${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ~sparc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+DOCS="librarydoc.txt README THANKS"
+
+# Fix to install of data
+PATCHES=( "${FILESDIR}"/setup.patch )
diff --git a/dev-python/pyminuit/Manifest b/dev-python/pyminuit/Manifest
new file mode 100644
index 00000000000..ac6bea7915b
--- /dev/null
+++ b/dev-python/pyminuit/Manifest
@@ -0,0 +1,2 @@
+DIST Minuit-1_7_9-patch1.tar.gz 430753 SHA256 3c223b0d145484bd8bff202f6c18efb974218130fa1ca49389db512d02bd58e4 SHA512 741ded2e6e999e8edf1e067ce9c2583784f6c1a7e34709430074d1f312de3a5815249466fe0a1c5be0a2f77932f34cbdb4bd1eb9de1b3528223711f26cbc65b9 WHIRLPOOL a6103d209cb8b97202346acd7ef0fdb37a0eb3a94658e6130ff8013448c5d56730ee3d8985c59f406cbd18e0fbb4586b443fe93a4b3c95bc0e0c9621cd5a09ee
+DIST pyminuit-1.2.1.tgz 17099 SHA256 d065f7f57a524ec322cb95252a6ed6e8056148f0d34fd90ae2bfc1259ac4d4ea SHA512 b5bd954288d57a6c043e336ddb62a42cd4e6cc340847fbd700573db288c4404ef80a86a76b3c4e458913cd73b08ea97b20a4e411043a6ce826d9d88ee54fbe1f WHIRLPOOL 28e84ddd1125e76365cb204079281f184e89ed8033b8535c399ac422c5f02a4c7dc2ac34c488fa8a86557d3bab44b3d4ca72c00890c89fc91adb2f5275c0e6a7
diff --git a/dev-python/pyminuit/metadata.xml b/dev-python/pyminuit/metadata.xml
new file mode 100644
index 00000000000..7bc6ee8ea83
--- /dev/null
+++ b/dev-python/pyminuit/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/pyminuit/pyminuit-1.2.1.ebuild b/dev-python/pyminuit/pyminuit-1.2.1.ebuild
new file mode 100644
index 00000000000..c8b4920cf29
--- /dev/null
+++ b/dev-python/pyminuit/pyminuit-1.2.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Minuit numerical function minimization in Python"
+HOMEPAGE="https://code.google.com/p/pyminuit"
+SRC_URI="
+ https://pyminuit.googlecode.com/files/${P}.tgz
+ https://pyminuit.googlecode.com/files/Minuit-1_7_9-patch1.tar.gz
+ "
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+S="${WORKDIR}"/${PN}
+
+src_configure() {
+ cd "${WORKDIR}"/Minuit-1_7_9 && econf --disable-static || die
+}
+src_compile() {
+ cd "${WORKDIR}"/Minuit-1_7_9 && emake
+ cd "${S}"
+ distutils-r1_src_compile
+}
+
+python_install_all() {
+ cd "${WORKDIR}"/Minuit-1_7_9 || die
+ default
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyml/Manifest b/dev-python/pyml/Manifest
new file mode 100644
index 00000000000..e681cefad91
--- /dev/null
+++ b/dev-python/pyml/Manifest
@@ -0,0 +1,2 @@
+DIST PyML-0.7.13.2.tar.gz 5880930 SHA256 daec23fb3293d8d00efcbb64464676c196807a81a959e6adac5aceb08b15503b SHA512 8a642cfc8744098e145cf6940c606f53034c3a04aa9665e23bfd30bbd4098bcceaf10508ea9c3b3be40f1b9d964aea793c7e20d4b48eb66656b5fd6b200fca5c WHIRLPOOL 9adbf1b4a75627bf10e93fcea93b9ab60a128a0ec3523fdd3f9ff1a58b8df1a1501617b4684dd56a04c518bbecb13a34b48d41c529057c17477f665f09612879
+DIST PyML-0.7.13.3.tar.gz 5896911 SHA256 607c722d7ca309aa382ba1fc1c8580de11fa3ee4659aee11d4c2d2873fad6f77 SHA512 9933be07122e6fc7ece017b28fbc895cd2ef2778d8d5144c7f084ddd2090e054e37a581341371450fd7c28713ed4c725e229a81daad571150f476945750a51ae WHIRLPOOL f21ce9fe10dffdde92585750f3de4c33f14f5f67638590ffd92df909654c8224aa1d5ca1bbeaf1b529ceab94d595fe188439547a9f7478a94b332f9315a3cdd5
diff --git a/dev-python/pyml/metadata.xml b/dev-python/pyml/metadata.xml
new file mode 100644
index 00000000000..8457b7b53d6
--- /dev/null
+++ b/dev-python/pyml/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ PyML is a flexible Python framework for using various classification
+ methods including Support Vector Machines (SVM).
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">pyml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyml/pyml-0.7.13.2-r1.ebuild b/dev-python/pyml/pyml-0.7.13.2-r1.ebuild
new file mode 100644
index 00000000000..a2208f1ecbf
--- /dev/null
+++ b/dev-python/pyml/pyml-0.7.13.2-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MYP=PyML-${PV}
+
+DESCRIPTION="Python machine learning package"
+HOMEPAGE="http://pyml.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${MYP}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MYP}"
+
+python_test() {
+ pushd data > /dev/null
+ "${PYTHON}" -c "from PyML.demo import pyml_test; pyml_test.test('svm')" || die "tests failed"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && dodoc doc/tutorial.pdf && dohtml -r doc/autodoc/*
+}
diff --git a/dev-python/pyml/pyml-0.7.13.3.ebuild b/dev-python/pyml/pyml-0.7.13.3.ebuild
new file mode 100644
index 00000000000..a2208f1ecbf
--- /dev/null
+++ b/dev-python/pyml/pyml-0.7.13.3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MYP=PyML-${PV}
+
+DESCRIPTION="Python machine learning package"
+HOMEPAGE="http://pyml.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${MYP}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MYP}"
+
+python_test() {
+ pushd data > /dev/null
+ "${PYTHON}" -c "from PyML.demo import pyml_test; pyml_test.test('svm')" || die "tests failed"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && dodoc doc/tutorial.pdf && dohtml -r doc/autodoc/*
+}
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
new file mode 100644
index 00000000000..f2f31dacf6d
--- /dev/null
+++ b/dev-python/pymongo/Manifest
@@ -0,0 +1,4 @@
+DIST pymongo-2.6.3.tar.gz 324241 SHA256 cabe1d785ad5db6ed8ff70dcb9c987958fc75400f066ec78911ca3f37184a4e2 SHA512 6da3cbf035b52379c24df37b76e1eb743b12c1026116e28e4e7b6450e2674d730f9c8c2dd85f352c6ee4c9f604decaffc2dbc57fe64268bd7522d8ce155cca9e WHIRLPOOL ac36dd88c4311237ecda66a6008fa0d89d0670e331df6c49a08a1d3bc4ddcafe72e8e003009c206d3ac12afb1b14afe2d3615834a5a8df5ce30442f7b49fdbf2
+DIST pymongo-2.7.2.tar.gz 381455 SHA256 8fb45e3edec006f4b11580fc579bec7781a8b3201ce0abf31593f086070e51f6 SHA512 0e78495462d670c168e716a7c34e05f6a11a203f0bf9b32c1488608343588a48cbbb76ce715411b310359de19d9cd57c75f80ac7d8195a122a760cec22e8d0c7 WHIRLPOOL 6cb7eedc530908c2fdb17b6e31561d9c860d6fd1edddb4d66288c3fe11bc199ebc58538a70508b2540b827077f62345a86729644fdf8d37c1b9934de03e77543
+DIST pymongo-2.8.1.tar.gz 399521 SHA256 300ea5762d059c07d1bb2578f35bd0e55bc31753951e2de3d6fe2ed54438e374 SHA512 8d02829eb8683572ffe8c1be5ee50a4c778e1a0b938820859be215b583e719d079183b1a26bc074fad7e31e8944756b82b146657ad528123514b59c725f6d7aa WHIRLPOOL b0c8c373771d3a4525ddf30db5903a6b1241aa1e160e688c215bef21395d598faa65f12e57ea8fe0f16d1c0eaa0abad02ebf3e0b9df2acb8e1c8e6ff9c20a214
+DIST pymongo-3.0.3.tar.gz 419692 SHA256 3c6b2317f8031bc1e200fd1ea35f00a96f4569e3f3f220a5e66ab6227d96ccaf SHA512 7a20fdcae5b3f852bded19c95b36ef6a8141bce0179440a2c5966cbb9f18f3985b7b6b4584c5253c34d0f846d809d72ec0ae076c88472a3de6f090466e9132b4 WHIRLPOOL ae610909b610c7d116dd3aa7c04ab9ce357b25208b07c025924c53bb36183a6d344ecff214def6a01b929dc50d698464c8dd33b6eafd2d88d6666d8534858a38
diff --git a/dev-python/pymongo/files/pymongo-2.5.1-greenlet.patch b/dev-python/pymongo/files/pymongo-2.5.1-greenlet.patch
new file mode 100644
index 00000000000..dde6228f342
--- /dev/null
+++ b/dev-python/pymongo/files/pymongo-2.5.1-greenlet.patch
@@ -0,0 +1,17 @@
+https://github.com/mongodb/mongo-python-driver/commit/519733457fb456f64b49ae66ffa6a401e1e72f24
+diff --git a/test/test_pooling_base.py b/test/test_pooling_base.py
+index 2190f38..d396b56 100644
+--- a/test/test_pooling_base.py
++++ b/test/test_pooling_base.py
+@@ -700,6 +700,10 @@ def leak_request():
+ g.start()
+ g.join(1)
+ self.assertTrue(g.ready(), "Greenlet is hung")
++
++ # In Gevent after 0.13.8, join() returns before the Greenlet.link
++ # callback fires. Give it a moment to reclaim the socket.
++ gevent.sleep(0.1)
+ else:
+ lock = thread.allocate_lock()
+ lock.acquire()
+
diff --git a/dev-python/pymongo/metadata.xml b/dev-python/pymongo/metadata.xml
new file mode 100644
index 00000000000..0046698bcec
--- /dev/null
+++ b/dev-python/pymongo/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>bugs@bergstroem.nu</email>
+ <name>Johan Bergström</name>
+ <description>Proxy-Maintainer, assign bugs</description>
+ </maintainer>
+ <maintainer>
+ <email>ultrabug@gentoo.org</email>
+ <name>Alexys Jacob</name>
+ </maintainer>
+ <maintainer>
+ <email>julien@thebault.co</email>
+ <name>Lujeni</name>
+ <description>Proxy-Maintainer, assign bugs</description>
+ </maintainer>
+ <longdescription lang="en">PyMongo is a Python distribution containing tools
+ for working with MongoDB, and is the recommended way to work
+ with MongoDB from Python.</longdescription>
+ <use>
+ <flag name="mod_wsgi">Disable the C extension to work with mod_wsgi.</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">pymongo</remote-id>
+ <remote-id type="github">mongodb/mongo-python-driver</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pymongo/pymongo-2.6.3.ebuild b/dev-python/pymongo/pymongo-2.6.3.ebuild
new file mode 100644
index 00000000000..7dd5af2d453
--- /dev/null
+++ b/dev-python/pymongo/pymongo-2.6.3.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit check-reqs distutils-r1
+
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="http://github.com/mongodb/mongo-python-driver http://pypi.python.org/pypi/pymongo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc kerberos mod_wsgi test"
+
+RDEPEND="dev-db/mongodb"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ kerberos? ( dev-python/pykerberos )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+reqcheck() {
+ if use test; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+python_compile_all() {
+ if use doc; then
+ mkdir html || die
+ sphinx-build doc html || die
+ fi
+}
+
+src_test() {
+ # Yes, we need TCP/IP for that...
+ local DB_IP=127.0.0.1
+ local DB_PORT=27000
+
+ export DB_IP DB_PORT
+
+ # 1.5G of disk space per run.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ # Now, the hard part: we need to find a free port for mongod.
+ # We're just trying to run it random port numbers and check the log
+ # for bind errors. It shall be noted that 'mongod --fork' does not
+ # return failure when it fails to bind.
+
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ LC_ALL=C \
+ mongod --dbpath "${dbpath}" --smallfiles --nojournal \
+ --bind_ip ${DB_IP} --port ${DB_PORT} \
+ --unixSocketPrefix "${TMPDIR}" \
+ --logpath "${logpath}" --fork \
+ && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ local failed
+ #https://jira.mongodb.org/browse/PYTHON-521, py2.[6-7] has intermittent failure with gevent
+ pushd "${BUILD_DIR}"/../ > /dev/null
+ if [[ "${EPYTHON}" == python3* ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ DB_PORT2=$(( DB_PORT + 1 )) DB_PORT3=$(( DB_PORT + 2 )) esetup.py test || failed=1
+
+ mongod --dbpath "${dbpath}" --shutdown
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}"
+}
+
+python_install() {
+ # Maintainer note:
+ # In order to work with mod_wsgi, we need to disable the C extension.
+ # See [1] for more information.
+ # [1] http://api.mongodb.org/python/current/faq.html#does-pymongo-work-with-mod-wsgi
+ distutils-r1_python_install $(use mod_wsgi && echo --no_ext)
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pymongo/pymongo-2.7.2.ebuild b/dev-python/pymongo/pymongo-2.7.2.ebuild
new file mode 100644
index 00000000000..ff289d406bb
--- /dev/null
+++ b/dev-python/pymongo/pymongo-2.7.2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit check-reqs distutils-r1
+
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="http://github.com/mongodb/mongo-python-driver http://pypi.python.org/pypi/pymongo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~hppa x86"
+IUSE="doc kerberos test"
+
+RDEPEND="
+ kerberos? ( dev-python/pykerberos )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-db/mongodb-2.6.0
+ )
+"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+reqcheck() {
+ if use test; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+python_compile_all() {
+ if use doc; then
+ mkdir html || die
+ sphinx-build doc html || die
+ fi
+}
+
+src_test() {
+ # Yes, we need TCP/IP for that...
+ local DB_IP=127.0.0.1
+ local DB_PORT=27000
+
+ export DB_IP DB_PORT
+
+ # 1.5G of disk space per run.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ # Now, the hard part: we need to find a free port for mongod.
+ # We're just trying to run it random port numbers and check the log
+ # for bind errors. It shall be noted that 'mongod --fork' does not
+ # return failure when it fails to bind.
+
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ LC_ALL=C \
+ mongod --dbpath "${dbpath}" --smallfiles --nojournal \
+ --bind_ip ${DB_IP} --port ${DB_PORT} \
+ --unixSocketPrefix "${TMPDIR}" \
+ --logpath "${logpath}" --fork \
+ && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ local failed
+ #https://jira.mongodb.org/browse/PYTHON-521, py2.[6-7] has intermittent failure with gevent
+ pushd "${BUILD_DIR}"/../ > /dev/null
+ if [[ "${EPYTHON}" == python3* ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ DB_PORT2=$(( DB_PORT + 1 )) DB_PORT3=$(( DB_PORT + 2 )) esetup.py test || failed=1
+
+ mongod --dbpath "${dbpath}" --shutdown
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pymongo/pymongo-2.8.1.ebuild b/dev-python/pymongo/pymongo-2.8.1.ebuild
new file mode 100644
index 00000000000..77b2fac6d1c
--- /dev/null
+++ b/dev-python/pymongo/pymongo-2.8.1.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit check-reqs distutils-r1
+
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="http://github.com/mongodb/mongo-python-driver http://pypi.python.org/pypi/pymongo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~x86"
+IUSE="doc kerberos test"
+
+RDEPEND="
+ kerberos? ( dev-python/pykerberos )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-db/mongodb-2.6.0
+ )
+"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+reqcheck() {
+ if use test; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+python_compile_all() {
+ if use doc; then
+ mkdir html || die
+ sphinx-build doc html || die
+ fi
+}
+
+src_test() {
+ # Yes, we need TCP/IP for that...
+ local DB_IP=127.0.0.1
+ local DB_PORT=27000
+
+ export DB_IP DB_PORT
+
+ # 1.5G of disk space per run.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ # Now, the hard part: we need to find a free port for mongod.
+ # We're just trying to run it random port numbers and check the log
+ # for bind errors. It shall be noted that 'mongod --fork' does not
+ # return failure when it fails to bind.
+
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ LC_ALL=C \
+ mongod --dbpath "${dbpath}" --smallfiles --nojournal \
+ --bind_ip ${DB_IP} --port ${DB_PORT} \
+ --unixSocketPrefix "${TMPDIR}" \
+ --logpath "${logpath}" --fork \
+ && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ local failed
+ #https://jira.mongodb.org/browse/PYTHON-521, py2.[6-7] has intermittent failure with gevent
+ pushd "${BUILD_DIR}"/../ > /dev/null
+ if [[ "${EPYTHON}" == python3* ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ DB_PORT2=$(( DB_PORT + 1 )) DB_PORT3=$(( DB_PORT + 2 )) esetup.py test || failed=1
+
+ mongod --dbpath "${dbpath}" --shutdown
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pymongo/pymongo-3.0.3.ebuild b/dev-python/pymongo/pymongo-3.0.3.ebuild
new file mode 100644
index 00000000000..a321bbcd9f5
--- /dev/null
+++ b/dev-python/pymongo/pymongo-3.0.3.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit check-reqs distutils-r1
+
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="http://github.com/mongodb/mongo-python-driver http://pypi.python.org/pypi/pymongo"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~x86"
+IUSE="doc kerberos test"
+
+RDEPEND="
+ kerberos? ( dev-python/pykerberos )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-db/mongodb-2.6.0
+ )
+"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+reqcheck() {
+ if use test; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+python_compile_all() {
+ if use doc; then
+ mkdir html || die
+ sphinx-build doc html || die
+ fi
+}
+
+src_test() {
+ # Yes, we need TCP/IP for that...
+ local DB_IP=127.0.0.1
+ local DB_PORT=27000
+
+ export DB_IP DB_PORT
+
+ # 1.5G of disk space per run.
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ # Now, the hard part: we need to find a free port for mongod.
+ # We're just trying to run it random port numbers and check the log
+ # for bind errors. It shall be noted that 'mongod --fork' does not
+ # return failure when it fails to bind.
+
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ LC_ALL=C \
+ mongod --dbpath "${dbpath}" --smallfiles --nojournal \
+ --bind_ip ${DB_IP} --port ${DB_PORT} \
+ --unixSocketPrefix "${TMPDIR}" \
+ --logpath "${logpath}" --fork \
+ && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ local failed
+ #https://jira.mongodb.org/browse/PYTHON-521, py2.[6-7] has intermittent failure with gevent
+ pushd "${BUILD_DIR}"/../ > /dev/null
+ if [[ "${EPYTHON}" == python3* ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ DB_PORT2=$(( DB_PORT + 1 )) DB_PORT3=$(( DB_PORT + 2 )) esetup.py test || failed=1
+
+ mongod --dbpath "${dbpath}" --shutdown
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pymountboot/Manifest b/dev-python/pymountboot/Manifest
new file mode 100644
index 00000000000..a924642dea0
--- /dev/null
+++ b/dev-python/pymountboot/Manifest
@@ -0,0 +1,2 @@
+DIST pymountboot-0.2.1.tar.bz2 4075 SHA256 0d3b109540380f92ae031b92e195f600165c6d45bf251ac83f82e9610df44406 SHA512 e21f73d832b69bc458a3f220f099bf6a8eabb21c0159b230969f4342e83874bac3983ef6bba19975b17e5185bdeb5cc42c6778f982f4fd4551a077039a2b6a0c WHIRLPOOL 1e644751e04cac4d3a6a1597cb8aaf3fc7e1031b45f269619fcd24f3feb3725364b94f9ee6fa6be26e5fbd5bf91bf94d15b025e6a933a65b014c7cf09b11b380
+DIST pymountboot-0.2.2.tar.bz2 4098 SHA256 d10a94069ee85c4038be7d600cc0ea0f97476a1798e962fb95510a17a018252f SHA512 bb6ec0772300b2edf9864a09ff64f67ad99f0cd29b009793e1b2a590be48146640c927b5772023d27e68fc2fba51652a55ab66d1cf875dd9b4134f043ac353c9 WHIRLPOOL 899180ddb16f65c12df18306fc093ebac694f060c9f183b610c4cb616e6a8c97e41813b07da0ba710aa6ae8923e0f22958af2f8830f3ce44b452172484f66a64
diff --git a/dev-python/pymountboot/metadata.xml b/dev-python/pymountboot/metadata.xml
new file mode 100644
index 00000000000..6d5d6440f94
--- /dev/null
+++ b/dev-python/pymountboot/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/pymountboot/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/pymountboot</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pymountboot/pymountboot-0.2.1.ebuild b/dev-python/pymountboot/pymountboot-0.2.1.ebuild
new file mode 100644
index 00000000000..60a9a161a48
--- /dev/null
+++ b/dev-python/pymountboot/pymountboot-0.2.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python extension module to (re)mount /boot"
+HOMEPAGE="https://bitbucket.org/mgorny/pymountboot/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=sys-apps/util-linux-2.20"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/pymountboot/pymountboot-0.2.2.ebuild b/dev-python/pymountboot/pymountboot-0.2.2.ebuild
new file mode 100644
index 00000000000..2367787847e
--- /dev/null
+++ b/dev-python/pymountboot/pymountboot-0.2.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python extension module to (re)mount /boot"
+HOMEPAGE="https://bitbucket.org/mgorny/pymountboot/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=sys-apps/util-linux-2.20"
+DEPEND="${RDEPEND}"
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pymountboot/pymountboot-9999.ebuild b/dev-python/pymountboot/pymountboot-9999.ebuild
new file mode 100644
index 00000000000..5f8d95378f8
--- /dev/null
+++ b/dev-python/pymountboot/pymountboot-9999.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+#if LIVE
+EGIT_REPO_URI="http://bitbucket.org/mgorny/${PN}.git"
+inherit git-r3
+#endif
+
+DESCRIPTION="Python extension module to (re)mount /boot"
+HOMEPAGE="https://bitbucket.org/mgorny/pymountboot/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=sys-apps/util-linux-2.20"
+DEPEND="${RDEPEND}"
+
+#if LIVE
+KEYWORDS=
+SRC_URI=
+#endif
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pympler/Manifest b/dev-python/pympler/Manifest
new file mode 100644
index 00000000000..9a616b12b1c
--- /dev/null
+++ b/dev-python/pympler/Manifest
@@ -0,0 +1,3 @@
+DIST Pympler-0.3.1.tar.gz 382158 SHA256 8cb170fddfe592342856590e2239e8c20ac61eacf18bc4f65a95ccaf74475e3e SHA512 0863f754edcd80375128f54d443974ef9933c203658d3215b8e98b53c8a1a36db199e309412c5b9f2d886e515ddd4d93c65035feb2c2fcaee4d6dc549e0e0b3c WHIRLPOOL 9e2c6a6c5c28040a4e3b712cf6ec58a8b0040a5092498e4d1958684966ce7d42b3de5a25588a6a0b62a27f24ef8e834bd13189bbb75b5a8b1958802e31f4adbc
+DIST Pympler-0.4.1.tar.gz 395535 SHA256 6a8bfd2972c4ec34ac8750358515950be4a4ca13dfa6a05a9a22419786745f90 SHA512 3f7e2d88ca431ae73cf49d5140c10de4eab10c1627cdacc12e216c89410add16cb5e1faedc484ea765e4b866b905a5379bb21e7d41b9b8d622c4ac7b1b16a8a3 WHIRLPOOL 4b35b554cabda8b9ab633409f1c91728956cad31c1a41d3b66a8d2cbf2e1283edd32017181d5f9c8bd66a1bac7ba398c292dd60fd9cdc268fec86222b4a790c8
+DIST Pympler-0.4.tar.gz 476969 SHA256 b280480502df658b18cb6310d2c744fabf05d4c518f873377884b4d4b5d2992d SHA512 14d5f7b6ecfeb81fb89f0e4e231aedd8effaad079742d75904b4ae6a5840f273bb76b565cb075b1d691b84eb878f0e39f627a51e9982deab9d147b0841baf66c WHIRLPOOL 3a75aaf8ce974aa03d2638ae9c15fd7e3f23bd25d31a6a244bed6fd8f80eb9aebcedf2f3d2a9015bb15fbe4ccd40e8eb8f04d43977b8d901e4e28fdeec06c6ad
diff --git a/dev-python/pympler/metadata.xml b/dev-python/pympler/metadata.xml
new file mode 100644
index 00000000000..50702feb43e
--- /dev/null
+++ b/dev-python/pympler/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+Pympler is a development tool to measure, monitor and analyze the memory
+behavior of Python objects in a running Python application. By pympling a
+Python application, detailed insight in the size and the lifetime of Python
+objects can be obtained. Undesirable or unexpected runtime behavior like
+memory bloat and other "pymples" can easily be identified.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">Pympler</remote-id>
+ <remote-id type="github">pympler/pympler</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pympler/pympler-0.3.1.ebuild b/dev-python/pympler/pympler-0.3.1.ebuild
new file mode 100644
index 00000000000..3e606f1692b
--- /dev/null
+++ b/dev-python/pympler/pympler-0.3.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+MY_PN="Pympler"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Memory profiling for Python applications"
+HOMEPAGE="http://code.google.com/p/pympler/ https://pypi.python.org/pypi/Pympler https://github.com/pympler/pympler"
+SRC_URI="mirror://pypi/P/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/bottle[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND} )"
+
+S="${WORKDIR}"/${MY_P}
+
+python_prepare_all() {
+ rm pympler/util/bottle.py || die
+ sed \
+ -e '/import bottle/s:^.*$:import bottle:g' \
+ -i pympler/web.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py try || die
+}
diff --git a/dev-python/pympler/pympler-0.4.1.ebuild b/dev-python/pympler/pympler-0.4.1.ebuild
new file mode 100644
index 00000000000..d2f582662ca
--- /dev/null
+++ b/dev-python/pympler/pympler-0.4.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="Pympler"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Memory profiling for Python applications"
+HOMEPAGE="http://code.google.com/p/pympler/ https://pypi.python.org/pypi/Pympler https://github.com/pympler/pympler"
+SRC_URI="mirror://pypi/P/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/bottle[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND} )"
+
+S="${WORKDIR}"/${MY_P}
+
+python_prepare_all() {
+ rm pympler/util/bottle.py || die
+ sed \
+ -e '/import bottle/s:^.*$:import bottle:g' \
+ -i pympler/web.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py try
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pympler/pympler-0.4.ebuild b/dev-python/pympler/pympler-0.4.ebuild
new file mode 100644
index 00000000000..d2f582662ca
--- /dev/null
+++ b/dev-python/pympler/pympler-0.4.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="Pympler"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Memory profiling for Python applications"
+HOMEPAGE="http://code.google.com/p/pympler/ https://pypi.python.org/pypi/Pympler https://github.com/pympler/pympler"
+SRC_URI="mirror://pypi/P/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/bottle[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND} )"
+
+S="${WORKDIR}"/${MY_P}
+
+python_prepare_all() {
+ rm pympler/util/bottle.py || die
+ sed \
+ -e '/import bottle/s:^.*$:import bottle:g' \
+ -i pympler/web.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py try
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pymssql/Manifest b/dev-python/pymssql/Manifest
new file mode 100644
index 00000000000..541e3091d6d
--- /dev/null
+++ b/dev-python/pymssql/Manifest
@@ -0,0 +1 @@
+DIST pymssql-1.0.2.tar.gz 175469 SHA256 c8befb3ec227fb3d1141558ddb1590549a493b677fa2fc85ee3e8dc9ad9a4f7b SHA512 6e9a2d26f2cc33bac093f2a2a41771aa41ba336413076c793137558c05e48cea7409f74f35530939b36a708cc47c66ec0dc765a768bd5f857642553568fe859e WHIRLPOOL 7ef0cfe36de73f26df8edb48eacd4bacac8dc847aee55387e6328c4688678969c6f6b0405552af8c7284e65fa3953f9f807357a4bea8bff88cc395a6a9edb5ef
diff --git a/dev-python/pymssql/metadata.xml b/dev-python/pymssql/metadata.xml
new file mode 100644
index 00000000000..6fd34d4822e
--- /dev/null
+++ b/dev-python/pymssql/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>lordvan@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">pymssql</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pymssql/pymssql-1.0.2-r1.ebuild b/dev-python/pymssql/pymssql-1.0.2-r1.ebuild
new file mode 100644
index 00000000000..7c2c58a6ab7
--- /dev/null
+++ b/dev-python/pymssql/pymssql-1.0.2-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Simple MSSQL python extension module"
+HOMEPAGE="http://pymssql.sourceforge.net/ http://code.google.com/p/pymssql/ http://pypi.python.org/pypi/pymssql"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 ~s390 ~sh sparc x86"
+IUSE=""
+
+DEPEND=">=dev-db/freetds-0.63[mssql]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+RDEPEND="${DEPEND}"
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
diff --git a/dev-python/pymtp/Manifest b/dev-python/pymtp/Manifest
new file mode 100644
index 00000000000..e39824cdc80
--- /dev/null
+++ b/dev-python/pymtp/Manifest
@@ -0,0 +1 @@
+DIST pymtp_0.0.6.orig.tar.gz 22431 SHA256 c729beddad8d200afeefd0bf59b01065b9fe276a3845a4a4940eca4ea2e3a47b SHA512 f50249c6b2acfe2c86da5e5f8a24e1392d47e0ddd02d10891763a3150f9985ecdb8a0b7c7ce8bc36f53f2bf62073a26dd3a72b6c3f95d59cd447bb55684811b0 WHIRLPOOL fe34509a7a66d7e554fd84a1339758a57525771bea34db0433f503b334aa888556266e98967060acd07431412bab5ca5f87f6fefef3ca74cd692914923f40a73
diff --git a/dev-python/pymtp/metadata.xml b/dev-python/pymtp/metadata.xml
new file mode 100644
index 00000000000..566450e394e
--- /dev/null
+++ b/dev-python/pymtp/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sound</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pymtp/pymtp-0.0.6.ebuild b/dev-python/pymtp/pymtp-0.0.6.ebuild
new file mode 100644
index 00000000000..795dcede20c
--- /dev/null
+++ b/dev-python/pymtp/pymtp-0.0.6.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="LibMTP bindings for Python"
+HOMEPAGE="http://packages.debian.org/libmtp http://libmtp.sourceforge.net/ http://pypi.python.org/pypi/PyMTP"
+DEB_URI="mirror://debian/pool/main/${PN:0:1}/${PN}"
+SRC_URI="${DEB_URI}/${PN}_${PV}.orig.tar.gz"
+
+LICENSE=GPL-3
+SLOT=0
+KEYWORDS="amd64 ppc x86"
+IUSE="examples"
+
+RDEPEND="media-libs/libmtp"
+DEPEND=${RDEPEND}
+
+S="${WORKDIR}"/PyMTP-${PV}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pymysql/Manifest b/dev-python/pymysql/Manifest
new file mode 100644
index 00000000000..c83643cd9ca
--- /dev/null
+++ b/dev-python/pymysql/Manifest
@@ -0,0 +1,2 @@
+DIST pymysql-0.6.3.tar.gz 52877 SHA256 eeb9772521cd08132885a283ba885dce5929994daf4953eb27a5ebde6f353143 SHA512 5dfe41039e703d2feb53b25db45a0541929bf52a2fe7b8f06b1dd3ff71118b99808b6d299f52073aaab779cddcd9858a51d59f23f1983e4f200d672caee5e624 WHIRLPOOL 0c0c6dd747200f2dbdde35767bb53177cdfbeae1d3623f6f1329c5030cfb89650c627cc73f2bf7039da96d3cb1e3b285ab304b5d12cc8806bcc5ef703ca06bd0
+DIST pymysql-0.6.6.tar.gz 58118 SHA256 613073e7b0ede054620e5863cb0e461a13abc0f2f00b894a5f4d6de104b8dc2b SHA512 c09fc9801132243708cab18b7e4e1e9ed706579c6a08a51867bec41d27af41b1c19e33290206cf881153d81f42e5a9ba0871ad472abcc90a818a14f9413a5de6 WHIRLPOOL 0d90a574ed194420da938246c1037abfac2e1e344a5886a91444236425e6f05d84f8027b2706b7548e50646cfd95e00ab3ed5aa85464a8a0a1b8c5ec3c1fedc7
diff --git a/dev-python/pymysql/metadata.xml b/dev-python/pymysql/metadata.xml
new file mode 100644
index 00000000000..ef692b37f9f
--- /dev/null
+++ b/dev-python/pymysql/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mysql</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>grknight@gentoo.org</email>
+ <name>Brian Evans</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">PyMySQL/PyMySQL</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pymysql/pymysql-0.6.3.ebuild b/dev-python/pymysql/pymysql-0.6.3.ebuild
new file mode 100644
index 00000000000..12e24a0336c
--- /dev/null
+++ b/dev-python/pymysql/pymysql-0.6.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2014-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="PyMySQL"
+DESCRIPTION="Pure-Python MySQL Driver"
+HOMEPAGE="http://www.pymysql.org/"
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+S=${WORKDIR}/${MY_PN}-${P}
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# While tests exist, they require an unsecure server to run without manual config file
+RESTRICT="test"
+
+python_test() {
+ ${PYTHON} runtests.py || die
+}
diff --git a/dev-python/pymysql/pymysql-0.6.6.ebuild b/dev-python/pymysql/pymysql-0.6.6.ebuild
new file mode 100644
index 00000000000..2854680d6e2
--- /dev/null
+++ b/dev-python/pymysql/pymysql-0.6.6.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2014-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="PyMySQL"
+DESCRIPTION="Pure-Python MySQL Driver"
+HOMEPAGE="http://www.pymysql.org/"
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+S=${WORKDIR}/${MY_PN}-${P}
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# While tests exist, they require an unsecure server to run without manual config file
+RESTRICT="test"
+
+python_test() {
+ ${PYTHON} runtests.py || die
+}
diff --git a/dev-python/pyndex/Manifest b/dev-python/pyndex/Manifest
new file mode 100644
index 00000000000..2bb8065163b
--- /dev/null
+++ b/dev-python/pyndex/Manifest
@@ -0,0 +1 @@
+DIST Pyndex-0.3.2a.tar.gz 34651 SHA256 032564bb4f90da894d2a634b02c65c581db091ce8fee7320b56d487ad27947fe SHA512 f1ddea8cde1f1517ed1c1319cab442ace3e4c9e2a6a2174aca2f348c915c5db2c9fe4c1543f5b16770cc8364cac930a40bef9bce8f7b76c3b0d88c8639acce75 WHIRLPOOL 7c5aa723e222fcffea189f41f29439affbfa66ce2f2326cc87cbd1b2ca72bf00fea19b089e7cb09c1b0b876695ba8702f12cb96f10a59b6f3b7b476f9cee7299
diff --git a/dev-python/pyndex/metadata.xml b/dev-python/pyndex/metadata.xml
new file mode 100644
index 00000000000..307309402a1
--- /dev/null
+++ b/dev-python/pyndex/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>lordvan@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">pyndex</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyndex/pyndex-0.3.2a-r1.ebuild b/dev-python/pyndex/pyndex-0.3.2a-r1.ebuild
new file mode 100644
index 00000000000..2933a1ae48a
--- /dev/null
+++ b/dev-python/pyndex/pyndex-0.3.2a-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+MY_PN="Pyndex"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple and fast Python full-text indexer (aka search engine) using Metakit as its back-end"
+HOMEPAGE="http://www.divmod.org/Pyndex/index.html"
+SRC_URI="mirror://sourceforge/pyndex/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-db/metakit-2.4.9.2[python]"
+DEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/dev-python/pyndex/pyndex-0.3.2a.ebuild b/dev-python/pyndex/pyndex-0.3.2a.ebuild
new file mode 100644
index 00000000000..818eeaf6255
--- /dev/null
+++ b/dev-python/pyndex/pyndex-0.3.2a.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+MY_PN="Pyndex"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Simple and fast Python full-text indexer (aka search engine) using Metakit as its back-end"
+HOMEPAGE="http://www.divmod.org/Pyndex/index.html"
+SRC_URI="mirror://sourceforge/pyndex/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 x86"
+IUSE=""
+
+DEPEND=">=dev-db/metakit-2.4.9.2[python]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pynotifier/Manifest b/dev-python/pynotifier/Manifest
new file mode 100644
index 00000000000..c7fe651f077
--- /dev/null
+++ b/dev-python/pynotifier/Manifest
@@ -0,0 +1 @@
+DIST pynotifier_0.7.0.orig.tar.gz 35358 SHA256 2b27bd034b631226e4bf878183c208909f2653102dfa200af5a075ebf54d2723 SHA512 60be00e5a729c3bb3a6f778025e2422268986645bcb461a81db457cb8e4c94b86d7215d7725f0bc9dd1ea1dfaa16a879760c53dd6824fb398d02b7dc8979c3ef WHIRLPOOL d620d9493129061a02a23310eaeb8c32a6d7f0a963e0cde143019bf3ee27907e29305b52dc833bb8933d69cd9ffc7bcbf2276cd624e060df007f85c14222e42c
diff --git a/dev-python/pynotifier/metadata.xml b/dev-python/pynotifier/metadata.xml
new file mode 100644
index 00000000000..3c0d60c95c6
--- /dev/null
+++ b/dev-python/pynotifier/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ pyNotifier provides an implementation of a notifier/event
+ scheduler and is capable of wrapping other notifier
+ implementations of GTK+, Qt and wxWidgets.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/pynotifier/pynotifier-0.7.0-r2.ebuild b/dev-python/pynotifier/pynotifier-0.7.0-r2.ebuild
new file mode 100644
index 00000000000..38c834a6e49
--- /dev/null
+++ b/dev-python/pynotifier/pynotifier-0.7.0-r2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="pyNotifier provides an implementation of a notifier/event scheduler"
+HOMEPAGE="http://www.bitkipper.net/"
+SRC_URI="http://www.bitkipper.net/bytes/debian/dists/unstable/source/${PN}_${PV}.orig.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="qt4 gtk"
+
+DEPEND=""
+RDEPEND="dev-python/twisted-core
+ gtk? ( dev-python/pygobject:2[${PYTHON_USEDEP}] )
+ qt4? ( dev-python/PyQt4[X,${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ use gtk || rm notifier/nf_gtk.py
+ use qt4 || rm notifier/nf_qt.py
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pynut/Manifest b/dev-python/pynut/Manifest
new file mode 100644
index 00000000000..580692f6ee9
--- /dev/null
+++ b/dev-python/pynut/Manifest
@@ -0,0 +1 @@
+DIST python-pynut-1.2.tar.gz 3610 SHA256 446adbc317f67815d0faefb679c0c7f47c2cba64efaa1b9386f08a442b3fd2ce SHA512 b4fcaff1a23648c7a7bb48bb3b795291a57aabc032c2ed53fc54eb87d6ba46c970fb67472e41e23ce40b021d2b21a027189c2c93369c7503078acc8109368fb7 WHIRLPOOL 03964bc2648b22543dc11da62ce27e3cbd36cfcbf1352fd9d442fe46e3f151500295a5bec745ab8ac50bda6c5607b90ccf17e35d2e44fbd8d17ee07d9fdceec4
diff --git a/dev-python/pynut/metadata.xml b/dev-python/pynut/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/pynut/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pynut/pynut-1.2.ebuild b/dev-python/pynut/pynut-1.2.ebuild
new file mode 100644
index 00000000000..895bc47de0c
--- /dev/null
+++ b/dev-python/pynut/pynut-1.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit python
+
+DESCRIPTION="An abstraction class written in Python to access NUT (Network UPS Tools) server"
+HOMEPAGE="http://www.lestat.st/informatique/projets/pynut-en/"
+SRC_URI="http://www.lestat.st/_media/informatique/projets/pynut/python-${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+S="${WORKDIR}/python-${P}"
+
+src_install() {
+ installation() {
+ insinto $(python_get_sitedir)
+ doins PyNUT.py
+ }
+ python_execute_function -q installation
+
+ dodoc README
+}
+
+pkg_postinst() {
+ python_mod_optimize PyNUT.py
+}
+
+pkg_postrm() {
+ python_mod_cleanup PyNUT.py
+}
diff --git a/dev-python/pynzb/Manifest b/dev-python/pynzb/Manifest
new file mode 100644
index 00000000000..a77df925609
--- /dev/null
+++ b/dev-python/pynzb/Manifest
@@ -0,0 +1 @@
+DIST pynzb-0.1.0.tar.gz 5598 SHA256 0735b3889a1174bbb65418ee503629d3f5e4a63f04b16f46ffba18253ec3ef17 SHA512 c1efb43e56c67652bc12ec555700f134b2bd32546b9dd6c0a28a043db5c8ded5758940121b84541bdb972c7c740357cbc656e233ecfb77787d77727e245b1e72 WHIRLPOOL 0012fd21fd90614f51190ea86f50a0acdbf196555d17de0df8c317a98678d0658e2a3cf4719477cb76981c8a221060c3738230621346a5fda21ebe77ddf94a4e
diff --git a/dev-python/pynzb/metadata.xml b/dev-python/pynzb/metadata.xml
new file mode 100644
index 00000000000..4f6c8e68e7c
--- /dev/null
+++ b/dev-python/pynzb/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pynzb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pynzb/pynzb-0.1.0-r1.ebuild b/dev-python/pynzb/pynzb-0.1.0-r1.ebuild
new file mode 100644
index 00000000000..146ccd76a53
--- /dev/null
+++ b/dev-python/pynzb/pynzb-0.1.0-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Unified API for parsing NZB files"
+HOMEPAGE="http://pypi.python.org/pypi/pynzb/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/pyocr/Manifest b/dev-python/pyocr/Manifest
new file mode 100644
index 00000000000..bff45801fa0
--- /dev/null
+++ b/dev-python/pyocr/Manifest
@@ -0,0 +1,2 @@
+DIST pyocr-0.2.4.tar.gz 309220 SHA256 a8db05190b505691a5c5fd1459072fda7f429940b562209b42f3db93c1292ef6 SHA512 8df6aa267743ae05864a0272764bfefc95c5071399ac90a7c0d52ec9fff65c55380066fad46412f71f6c7b2f8125e1b618fec6ecca4d7ff696c005115cd59d9d WHIRLPOOL 22efb3f668b9adc0e80a71b86d157252c4de8cee0d7628f1835b40d8892501871ba58ad6928dab97a76b66d66319bdbe43fe0a4cfa57d39b6216c673747b9dd3
+DIST pyocr-0.3.0.tar.gz 315750 SHA256 b17279f1961487d635dd43dbbf94c3cee678ab262812cf4d7b0bd919f960f13d SHA512 c5014026072d4a5edad2bf32817c07c09436aed0d2544aba6d1418dd6f0a238ee4794171922d5d473142ff21e5df97b27be6fe12c83124a39dd2c1f67445d6de WHIRLPOOL a6b10f313660b80c47ead6b0e6a426e3ce595dda23954c25675273ef5a7adc8abce626a964fc14eb12baa9b46e346e54c6dd49e91b2a92d4be68db8e07b5edde
diff --git a/dev-python/pyocr/metadata.xml b/dev-python/pyocr/metadata.xml
new file mode 100644
index 00000000000..11b6156c308
--- /dev/null
+++ b/dev-python/pyocr/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>voyageur@gentoo.org</email>
+ <name>Bernard Cafarelli</name>
+ </maintainer>
+ <longdescription lang="en">
+Pyocr is an optical character recognition (OCR) tool wrapper for python. That is, it helps using OCR tools from a Python program.
+
+It has been tested only on GNU/Linux systems. It should also work on similar systems (*BSD, etc). It doesn't work on Windows, MacOSX, etc.
+
+Pyocr can be used as a wrapper for google's Tesseract-OCR or Cuneiform. It can read all image types supported by Pillow, including jpeg, png, gif, bmp, tiff, and others. It also support bounding box data.
+ </longdescription>
+ <use>
+ <flag name="cuneiform">Enable support for the <pkg>app-text/cuneiform</pkg> OCR engine</flag>
+ <flag name="tesseract">Enable support for the <pkg>app-text/tesseract</pkg> OCR engine</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">jflesch/pyocr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyocr/pyocr-0.2.4.ebuild b/dev-python/pyocr/pyocr-0.2.4.ebuild
new file mode 100644
index 00000000000..53f9463043d
--- /dev/null
+++ b/dev-python/pyocr/pyocr-0.2.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="an optical character recognition (OCR) tool wrapper for python"
+HOMEPAGE="https://github.com/jflesch/pyocr"
+SRC_URI="https://github.com/jflesch/pyocr/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+IUSE="cuneiform +tesseract"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="cuneiform? ( app-text/cuneiform )
+ tesseract? ( app-text/tesseract )
+ virtual/python-imaging"
+DEPEND="${RDEPEND}"
+
+REQUIRED_USE="|| ( cuneiform tesseract )"
diff --git a/dev-python/pyocr/pyocr-0.3.0.ebuild b/dev-python/pyocr/pyocr-0.3.0.ebuild
new file mode 100644
index 00000000000..6f9516e3ef5
--- /dev/null
+++ b/dev-python/pyocr/pyocr-0.3.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="an optical character recognition (OCR) tool wrapper for python"
+HOMEPAGE="https://github.com/jflesch/pyocr"
+SRC_URI="https://github.com/jflesch/pyocr/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+IUSE="cuneiform +tesseract"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="cuneiform? ( app-text/cuneiform )
+ tesseract? ( app-text/tesseract )
+ virtual/python-imaging"
+DEPEND="${RDEPEND}"
+
+REQUIRED_USE="|| ( cuneiform tesseract )"
diff --git a/dev-python/pyodbc/Manifest b/dev-python/pyodbc/Manifest
new file mode 100644
index 00000000000..c90f1ac660e
--- /dev/null
+++ b/dev-python/pyodbc/Manifest
@@ -0,0 +1 @@
+DIST pyodbc-3.0.7.zip 85722 SHA256 d8355f2d43b10386070e8564aa973119fdb6e10864e1bbd73f3224cd3baab351 SHA512 35d4b17324c60f15bc8647961fff0fa74afa02e37e1019a399add468cfd96e0403f2f7259f3c0164e4c7cabce67de7c300c9950602d9293b0b94a84d2ed02ffe WHIRLPOOL 3da4ecf3706a7cfbe8f11e7f3b1891160e02f7331abea6b407cc5809faa8604f291163f3d3342d7bcf5daa54b1f95aca0b397a5412b7bcdb198810f4fcd59eff
diff --git a/dev-python/pyodbc/metadata.xml b/dev-python/pyodbc/metadata.xml
new file mode 100644
index 00000000000..cdef949fdd0
--- /dev/null
+++ b/dev-python/pyodbc/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus Rivero</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">pyodbc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyodbc/pyodbc-3.0.7-r1.ebuild b/dev-python/pyodbc/pyodbc-3.0.7-r1.ebuild
new file mode 100644
index 00000000000..ac95691f309
--- /dev/null
+++ b/dev-python/pyodbc/pyodbc-3.0.7-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="python ODBC module to connect to almost any database"
+HOMEPAGE="http://code.google.com/p/pyodbc"
+SRC_URI="http://pyodbc.googlecode.com/files/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="mssql"
+
+RDEPEND=">=dev-db/unixODBC-2.3.0
+ mssql? ( >=dev-db/freetds-0.64[odbc] )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_configure_all() {
+ append-cxxflags -fno-strict-aliasing
+}
diff --git a/dev-python/pyode/Manifest b/dev-python/pyode/Manifest
new file mode 100644
index 00000000000..c737bd0d76a
--- /dev/null
+++ b/dev-python/pyode/Manifest
@@ -0,0 +1 @@
+DIST PyODE-snapshot-2010-03-22.tar.bz2 55651 SHA256 c934fe2fc76e0b8d71d343eb5db63511ab040b226fd0148708214fc775e2998b SHA512 fd9457d9a9c42a5e9834ce45886d6b57c9ecfdc68868353d986fa219eb57246d4dc175ca5d12c876c359c5bdac5bcdaf6dfc2ee65fff52f53337b1d10458e54c WHIRLPOOL 0051aa48e88bce569c86e517e5992ab8b860f724df9a9d3b8a9d0a700223927c677b0598bc9be7430f035a59cae65d76343f30539456000467f8da63e906a9e5
diff --git a/dev-python/pyode/metadata.xml b/dev-python/pyode/metadata.xml
new file mode 100644
index 00000000000..0cbac5cb0e7
--- /dev/null
+++ b/dev-python/pyode/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pyode</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyode/pyode-1.2.0_p20100322-r1.ebuild b/dev-python/pyode/pyode-1.2.0_p20100322-r1.ebuild
new file mode 100644
index 00000000000..ce17f543406
--- /dev/null
+++ b/dev-python/pyode/pyode-1.2.0_p20100322-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+inherit distutils-r1
+
+MY_P="${P/pyode/PyODE}"
+SNAPSHOT_DATE="2010-03-22" # This is a snapshot
+
+DESCRIPTION="Python bindings to the ODE physics engine"
+HOMEPAGE="http://pyode.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/PyODE-snapshot-${SNAPSHOT_DATE}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~x86-fbsd"
+IUSE="examples"
+
+RDEPEND=">=dev-games/ode-0.7
+ >=dev-python/pyrex-0.9.4.1[${PYTHON_USEDEP}]"
+DEPEND=${RDEPEND}
+
+S=${WORKDIR}/PyODE-snapshot-${SNAPSHOT_DATE}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # The build system doesnt error if it fails to build
+ # the ode library so we need our own sanity check
+ [[ -n $(find "${D}" -name ode.so) ]] || die "ode.so is missing"
+
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pyoembed/Manifest b/dev-python/pyoembed/Manifest
new file mode 100644
index 00000000000..37b8a73d14e
--- /dev/null
+++ b/dev-python/pyoembed/Manifest
@@ -0,0 +1 @@
+DIST pyoembed-0.1.1.tar.gz 12941 SHA256 7a50072d8f0e38e9aa586c24fd693f225ccd78936f55fa35c3fed3fadf1b0e13 SHA512 6ce7ec87082179c0f35dffe67f7ce91b71c40c57ed6bf7bd0ecd2ce654fbd1ab0c6f6469cbfb4e0a8dafc970bf496ffbc57f09838cf575e0becf7527553de63e WHIRLPOOL ae3cf3eaf51ea52a1c4349df97fb628b78172bb2bcedcf8d99993c38c5526755a73a921929f5b137a6a2d69a884a540cf69badc8cfcfd872c697e6eb5909f098
diff --git a/dev-python/pyoembed/metadata.xml b/dev-python/pyoembed/metadata.xml
new file mode 100644
index 00000000000..ec27dbbcbb3
--- /dev/null
+++ b/dev-python/pyoembed/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <longdescription lang="en">
+ A Python library for oEmbed that supports auto-discovered and manually included providers.
+ </longdescription>
+ <upstream>
+ <maintainer status="active">
+ <email>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <remote-id type="pypi">pyoembed</remote-id>
+ <remote-id type="github">rafaelmartins/pyoembed</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyoembed/pyoembed-0.1.1.ebuild b/dev-python/pyoembed/pyoembed-0.1.1.ebuild
new file mode 100644
index 00000000000..82bfdebc5ab
--- /dev/null
+++ b/dev-python/pyoembed/pyoembed-0.1.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for oEmbed with auto-discovered and manually added providers"
+HOMEPAGE="https://github.com/rafaelmartins/pyoembed"
+
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="~amd64 ~x86"
+if [[ ${PV} = *9999* ]]; then
+ SRC_URI=
+ KEYWORDS=
+ EGIT_REPO_URI="git://github.com/rafaelmartins/pyoembed.git
+ https://github.com/rafaelmartins/pyoembed.git"
+ inherit git-r3
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="test"
+
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pyoembed/pyoembed-9999.ebuild b/dev-python/pyoembed/pyoembed-9999.ebuild
new file mode 100644
index 00000000000..82bfdebc5ab
--- /dev/null
+++ b/dev-python/pyoembed/pyoembed-9999.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for oEmbed with auto-discovered and manually added providers"
+HOMEPAGE="https://github.com/rafaelmartins/pyoembed"
+
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="~amd64 ~x86"
+if [[ ${PV} = *9999* ]]; then
+ SRC_URI=
+ KEYWORDS=
+ EGIT_REPO_URI="git://github.com/rafaelmartins/pyoembed.git
+ https://github.com/rafaelmartins/pyoembed.git"
+ inherit git-r3
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="test"
+
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pyogg/Manifest b/dev-python/pyogg/Manifest
new file mode 100644
index 00000000000..980fd488b57
--- /dev/null
+++ b/dev-python/pyogg/Manifest
@@ -0,0 +1 @@
+DIST pyogg-1.3-r1.tar.gz 24094 SHA256 10051f2894e901037dfa05b3c604fbdd76d891b9db2213a3c4f24ae79fbcc2a4 SHA512 aac8ac880080b3a0b7008fd52115b0790892a41abc36155fbd7b6b363f0bb0ed14b2c839cafe28233f17fed34f1511d3218db09df728bab6510c7f81e028577f WHIRLPOOL 34035eb0364c84521a035a7648488b94439c819e4205d1ca63a7638a67f47bf3852503d12ad9eb7db7400ca54bdb658d92e614d377ed74886a6e423a9aeb0ea2
diff --git a/dev-python/pyogg/metadata.xml b/dev-python/pyogg/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyogg/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyogg/pyogg-1.3-r2.ebuild b/dev-python/pyogg/pyogg-1.3-r2.ebuild
new file mode 100644
index 00000000000..b91069a9540
--- /dev/null
+++ b/dev-python/pyogg/pyogg-1.3-r2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Python bindings for the ogg library"
+HOMEPAGE="http://www.andrewchatham.com/pyogg/"
+# Grumble. They changed the tarball without changing the name..
+#SRC_URI="http://www.andrewchatham.com/pyogg/download/${P}.tar.gz"
+SRC_URI="mirror://gentoo/${P}-r1.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=">=media-libs/libogg-1.0"
+RDEPEND="${DEPEND}"
+
+DOCS=( COPYING ChangeLog )
+
+python_configure_all() {
+ tc-export CC
+ "${PYTHON}" config_unix.py --prefix /usr || die "Configuration failed"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ insinto /usr/share/doc/${PF}/examples
+ doins test/*
+}
diff --git a/dev-python/pyopenal/Manifest b/dev-python/pyopenal/Manifest
new file mode 100644
index 00000000000..104649ccd67
--- /dev/null
+++ b/dev-python/pyopenal/Manifest
@@ -0,0 +1 @@
+DIST PyOpenAL-0.1.6.tar.gz 27698 SHA256 94b69cc57fe5e5abe2876865a6e2264d180892e82ac2ed684dc8eaf2cbf1ec5e SHA512 b617781d8253e4ec81fb806709fa5cb0ca3815d11c2fe1b9a74043909bbc3fa57eb8cb0375ad5999c1a7105c5468a75cb7893e186f48e2c440d8b56bb6a87f7b WHIRLPOOL 238f4e65c31972a131858fda02a0858e85af187318a09d5bc5b48d6b68943de1c1eeec5de1715d4124aa49dc2c5efb445bbddadb6cc02c3214e00c23e3d76275
diff --git a/dev-python/pyopenal/files/pyopenal-0.1.6-setup.patch b/dev-python/pyopenal/files/pyopenal-0.1.6-setup.patch
new file mode 100644
index 00000000000..f9ef9f3c033
--- /dev/null
+++ b/dev-python/pyopenal/files/pyopenal-0.1.6-setup.patch
@@ -0,0 +1,20 @@
+diff -urN PyOpenAL-0.1.6.orig/setup.py PyOpenAL-0.1.6/setup.py
+--- PyOpenAL-0.1.6.orig/setup.py 2006-04-30 11:23:44.000000000 -0400
++++ PyOpenAL-0.1.6/setup.py 2006-06-13 12:15:46.000000000 -0400
+@@ -4,16 +4,6 @@
+ LIBDIRS = ["/usr/lib", "/usr/local/lib"]
+ LIBS = ["openal", "alut"]
+
+-try:
+- openal_version = os.popen("openal-config --version").read()
+- if openal_version[0] == "0":
+- LIBDIRS = ["/usr/lib", "/usr/local/lib"]
+- LIBS = ["openal"]
+-
+-except:
+- print "Warning: error while running 'openal-config --version', using default values..."
+-
+-
+ setup(
+ name = "PyOpenAL",
+ version = "0.1.6",
diff --git a/dev-python/pyopenal/metadata.xml b/dev-python/pyopenal/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyopenal/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyopenal/pyopenal-0.1.6-r1.ebuild b/dev-python/pyopenal/pyopenal-0.1.6-r1.ebuild
new file mode 100644
index 00000000000..027803fa943
--- /dev/null
+++ b/dev-python/pyopenal/pyopenal-0.1.6-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+MY_P="${P/pyopenal/PyOpenAL}"
+
+DESCRIPTION="OpenAL library port for Python"
+HOMEPAGE="http://home.gna.org/oomadness/en/pyopenal/"
+SRC_URI="http://download.gna.org/pyopenal/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND=">=dev-python/pyogg-1.1[${PYTHON_USEDEP}]
+ >=dev-python/pyvorbis-1.1[${PYTHON_USEDEP}]
+ media-libs/freealut
+ media-libs/openal"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( AUTHORS CHANGES )
+PATCHES=( "${FILESDIR}/${P}-setup.patch" )
+
+python_compile() {
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pyopencl/Manifest b/dev-python/pyopencl/Manifest
new file mode 100644
index 00000000000..3f25ec0d2a0
--- /dev/null
+++ b/dev-python/pyopencl/Manifest
@@ -0,0 +1,2 @@
+DIST pyopencl-2014.1.tar.gz 1642825 SHA256 7c8df4f22ef49516a1444760dc622a037c83079ff60ff81779e60cb9fc5410e7 SHA512 da3e4e8d95605381d87db482f61fe7030fe244611a3c35d84c88210bcfb3472dc197be721f92e46e6828cc5d0245981ae004331a7c19e7fd8011a0aab593072f WHIRLPOOL e9d3c742c6ef217cf1f223990f852ae5b5ef50b7eae3513955da00f41134d9805e2078c16cd31429e327ea64a7ea16c15c014a749a3a532c3a11e4babdb91202
+DIST pyopencl-2015.1.tar.gz 1652046 SHA256 823b8c5ae438a70de87b3675c3896d04d785261cb0cbd45c01c7dd0fe9d9f6ff SHA512 0236237b1f21283aa2fa7edf86d4c7a275df508e2bdd833ad83d333f3a070b00b125310bfbf8e0fd7308b47d94c565642f87645cc91c8d7020f1e377cdd8bec5 WHIRLPOOL 2b581e4a02c8f5f77085c87c5e8b63ada0b86c58d04e62e665144be00447a9cdd69e8befecc3effe8b6253f3cace2920e8158417c940d08f89ff2985c479753b
diff --git a/dev-python/pyopencl/metadata.xml b/dev-python/pyopencl/metadata.xml
new file mode 100644
index 00000000000..17d2b2bc6c6
--- /dev/null
+++ b/dev-python/pyopencl/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyopencl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyopencl/pyopencl-2014.1.ebuild b/dev-python/pyopencl/pyopencl-2014.1.ebuild
new file mode 100644
index 00000000000..b945d0d3181
--- /dev/null
+++ b/dev-python/pyopencl/pyopencl-2014.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for OpenCL"
+HOMEPAGE="http://mathema.tician.de/software/pyopencl http://pypi.python.org/pypi/pyopencl"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples opengl"
+
+RDEPEND=">=dev-libs/boost-1.48[python,${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/pytools[${PYTHON_USEDEP}]
+ >=virtual/opencl-0-r1"
+DEPEND="${RDEPEND}"
+
+src_configure()
+{
+ local myconf=()
+ if use opengl; then
+ myconf+=(--cl-enable-gl)
+ fi
+
+ "${PYTHON}" configure.py \
+ --boost-compiler=gcc \
+ --boost-python-libname=boost_python-${PYTHON_ABI}-mt \
+ --no-use-shipped-boost \
+ "${myconf[@]}"
+}
+
+python_install_all() {
+ if use examples; then
+ local EXAMPLES=( examples/. )
+ einfo "Some of the examples provided by this package require dev-python/matplotlib."
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyopencl/pyopencl-2015.1.ebuild b/dev-python/pyopencl/pyopencl-2015.1.ebuild
new file mode 100644
index 00000000000..8a282ea9a3d
--- /dev/null
+++ b/dev-python/pyopencl/pyopencl-2015.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for OpenCL"
+HOMEPAGE="http://mathema.tician.de/software/pyopencl http://pypi.python.org/pypi/pyopencl"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples opengl"
+
+RDEPEND=">=dev-libs/boost-1.48[python,${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/pytools[${PYTHON_USEDEP}]
+ >=virtual/opencl-0-r1"
+DEPEND="${RDEPEND}"
+
+src_configure()
+{
+ local myconf=()
+ if use opengl; then
+ myconf+=(--cl-enable-gl)
+ fi
+
+ "${PYTHON}" configure.py \
+ --boost-compiler=gcc \
+ --boost-python-libname=boost_python-${PYTHON_ABI}-mt \
+ --no-use-shipped-boost \
+ "${myconf[@]}"
+}
+
+python_install_all() {
+ if use examples; then
+ local EXAMPLES=( examples/. )
+ einfo "Some of the examples provided by this package require dev-python/matplotlib."
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyopencl/pyopencl-9999.ebuild b/dev-python/pyopencl/pyopencl-9999.ebuild
new file mode 100644
index 00000000000..68ac8162716
--- /dev/null
+++ b/dev-python/pyopencl/pyopencl-9999.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 git-2
+
+EGIT_REPO_URI="http://git.tiker.net/trees/pyopencl.git"
+
+DESCRIPTION="Python wrapper for OpenCL"
+HOMEPAGE="http://mathema.tician.de/software/pyopencl http://pypi.python.org/pypi/pyopencl"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="examples opengl"
+
+RDEPEND=">=dev-libs/boost-1.48[python,${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ >=dev-python/pytools-9999[${PYTHON_USEDEP}]
+ >=virtual/opencl-0-r1"
+DEPEND="${RDEPEND}"
+
+src_configure()
+{
+ local myconf=()
+ if use opengl; then
+ myconf+=(--cl-enable-gl)
+ fi
+
+ "${PYTHON}" configure.py \
+ --boost-compiler=gcc \
+ --boost-python-libname=boost_python-${PYTHON_ABI}-mt \
+ --no-use-shipped-boost \
+ "${myconf[@]}"
+}
+
+python_install_all() {
+ if use examples; then
+ local EXAMPLES=( examples/. )
+ einfo "Some of the examples provided by this package require dev-python/matplotlib."
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyopengl/Manifest b/dev-python/pyopengl/Manifest
new file mode 100644
index 00000000000..7269b15ce1b
--- /dev/null
+++ b/dev-python/pyopengl/Manifest
@@ -0,0 +1,2 @@
+DIST PyOpenGL-3.0.2.tar.gz 891943 SHA256 9ef93bbea2c193898341f574e281c3ca0dfe87c53aa25fbec4b03581f6d1ba03 SHA512 e5663682eee5aa7276590ae7547d8345141e2e8e34ddfcbb3867c10a91e9959ebe8ec82606e257826ba6dd21d731ad76f38134849f095a01760d007d752fe9a9 WHIRLPOOL 9638e25ae0c8e99f0adfe99eb99e6d321c0b38f6c1b6a9efb46d675707ceb547aa596878dbc99d114f53e80b80063bcd12fbeb58fb5f6296c3371c06a333f5e6
+DIST PyOpenGL-3.1.0.tar.gz 1172688 SHA256 9b47c5c3a094fa518ca88aeed35ae75834d53e4285512c61879f67a48c94ddaf SHA512 f748017ab3734c7672c3fdbedcea80df297a91a78b111533e260feb0868ebb02935666c041f77db03841ee8f90057d9c53c53b00b097aae4cf67a52c7fc9c2eb WHIRLPOOL 4e7a37a6ac07b4fa7b5a28a280a5b25a2dcb4c83bf27c6e7615c6d8ce60178cbb069eaa502b690897daae79961d47558985fd0e981117c623640e49b72f4a04f
diff --git a/dev-python/pyopengl/metadata.xml b/dev-python/pyopengl/metadata.xml
new file mode 100644
index 00000000000..b584ea32355
--- /dev/null
+++ b/dev-python/pyopengl/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">PyOpenGL</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyopengl/pyopengl-3.0.2-r1.ebuild b/dev-python/pyopengl/pyopengl-3.0.2-r1.ebuild
new file mode 100644
index 00000000000..7d48212a2ae
--- /dev/null
+++ b/dev-python/pyopengl/pyopengl-3.0.2-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_REQ_USE="tk?"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="PyOpenGL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python OpenGL bindings"
+HOMEPAGE="http://pyopengl.sourceforge.net/ http://pypi.python.org/pypi/PyOpenGL"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+# mirror://sourceforge/pyopengl/${MY_P}.tar.gz" # broken mirror for this release
+LICENSE="BSD"
+
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="tk"
+
+RDEPEND="media-libs/freeglut
+ virtual/opengl
+ x11-libs/libXi
+ x11-libs/libXmu
+ tk? ( dev-tcltk/togl )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pyopengl/pyopengl-3.1.0.ebuild b/dev-python/pyopengl/pyopengl-3.1.0.ebuild
new file mode 100644
index 00000000000..0e810b6974e
--- /dev/null
+++ b/dev-python/pyopengl/pyopengl-3.1.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_REQ_USE="tk?"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="PyOpenGL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python OpenGL bindings"
+HOMEPAGE="http://pyopengl.sourceforge.net/ http://pypi.python.org/pypi/PyOpenGL"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+# mirror://sourceforge/pyopengl/${MY_P}.tar.gz" # broken mirror for this release
+LICENSE="BSD"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="tk"
+
+RDEPEND="media-libs/freeglut
+ virtual/opengl
+ x11-libs/libXi
+ x11-libs/libXmu
+ tk? ( dev-tcltk/togl )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pyopenssl/Manifest b/dev-python/pyopenssl/Manifest
new file mode 100644
index 00000000000..01e9362ba55
--- /dev/null
+++ b/dev-python/pyopenssl/Manifest
@@ -0,0 +1,3 @@
+DIST pyOpenSSL-0.13.1.tar.gz 254431 SHA256 ba06ec710414f6dfe5566ec24c81882547c3e6fc48458d64315b73a0d5142fdb SHA512 5be0fddd0517566fa954e13854a428a21962b13f0c31a8ca0a27d90b74b3a9cfc60e3650e5915a28b3e55b97c655d4a6589122408ef61e6dea509745662bbc0e WHIRLPOOL 5d6500a21ab3808765b9a5cf14beac66b5359ba5c184d0de02839f3f0b7c4935fe4f656577866b6c4f1bae2e1461f4fbb41fb6cb4615c3d02efb408010bc3dc5
+DIST pyOpenSSL-0.14.tar.gz 128005 SHA256 a99db8e59c120138ad8a72eecedcc24b4510d2eed3ce48213b7e32f22cc4ee6e SHA512 afd14aad8f7313425b9f0d79d80fbc17feaf128204cbda21db4116c8ce6e08e77e865110971c02bdc99b27a2d43402cc87f04586375167f41c61d0f474109512 WHIRLPOOL 6d73c560fb2f9adcdf12d92c4d1f20ef62a0284bd8cb3598e48f539cc4c4ee557215251d13f97cda3acc468b89c10e206cd1484eee582b46dca9fc0f6c6b110f
+DIST pyOpenSSL-0.15.1.tar.gz 149887 SHA256 f0a26070d6db0881de8bcc7846934b7c3c930d8f9c79d45883ee48984bc0d672 SHA512 bd204f40c9583a8580cff28b061f02ea772fdda3965dab6ac9e3f8c3b98792bea87b6de76494f7ce81e1ddcc76019432a9ffa3bcd55c5adb063bb639efe62e51 WHIRLPOOL 34badbf11b49cb65019cb55da7c6d6a539971392741d14ea1408c56dc0564d52ffeb947d86549fed17762474d863d59a406cde86daa75a329bd5b6411a77702b
diff --git a/dev-python/pyopenssl/metadata.xml b/dev-python/pyopenssl/metadata.xml
new file mode 100644
index 00000000000..545a1761b78
--- /dev/null
+++ b/dev-python/pyopenssl/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyOpenSSL</remote-id>
+ <remote-id type="launchpad">pyopenssl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyopenssl/pyopenssl-0.13.1-r1.ebuild b/dev-python/pyopenssl/pyopenssl-0.13.1-r1.ebuild
new file mode 100644
index 00000000000..1f4f1072091
--- /dev/null
+++ b/dev-python/pyopenssl/pyopenssl-0.13.1-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="pyOpenSSL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python interface to the OpenSSL library"
+HOMEPAGE="http://pyopenssl.sourceforge.net/ https://launchpad.net/pyopenssl http://pypi.python.org/pypi/pyOpenSSL"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND=">=dev-libs/openssl-0.9.6g"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-tex/latex2html-2002.2[gif,png] )"
+
+# pypy* won't fit since CPython 3 is 'better' than it
+REQUIRED_USE="doc? ( || ( $(python_gen_useflags python2*) ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed \
+ -e "s/test_set_tlsext_host_name_wrong_args/_&/" \
+ -i OpenSSL/test/test_ssl.py || die "test_ssl sed failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ [[ ${EPYTHON} != python3* ]] && append-flags -fno-strict-aliasing
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ addwrite /var/cache/fonts
+
+ cd doc || die
+ emake -j1 html ps dvi
+ fi
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib/OpenSSL/test || die
+
+ local t
+ for t in test_*.py; do
+ "${PYTHON}" "${t}" || die "Test ${t} fails with ${EPYTHON}"
+ done
+ # https://bugs.launchpad.net/pyopenssl/+bug/1237953
+ rm -rf tmp* *.key *.pem
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r doc/html/.
+ dodoc doc/pyOpenSSL.*
+ fi
+
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+}
diff --git a/dev-python/pyopenssl/pyopenssl-0.13.1.ebuild b/dev-python/pyopenssl/pyopenssl-0.13.1.ebuild
new file mode 100644
index 00000000000..4a4ff8dc8e7
--- /dev/null
+++ b/dev-python/pyopenssl/pyopenssl-0.13.1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="pyOpenSSL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python interface to the OpenSSL library"
+HOMEPAGE="http://pyopenssl.sourceforge.net/ https://launchpad.net/pyopenssl http://pypi.python.org/pypi/pyOpenSSL"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc"
+
+RDEPEND=">=dev-libs/openssl-0.9.6g"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-tex/latex2html-2002.2[gif,png] )"
+
+# pypy* won't fit since CPython 3 is 'better' than it
+REQUIRED_USE="doc? ( || ( $(python_gen_useflags python2*) ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed \
+ -e "s/test_set_tlsext_host_name_wrong_args/_&/" \
+ -i OpenSSL/test/test_ssl.py || die "test_ssl sed failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+ [[ ${EPYTHON} != python3* ]] && append-flags -fno-strict-aliasing
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ addwrite /var/cache/fonts
+
+ cd doc || die
+ emake -j1 html ps dvi
+ fi
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib/OpenSSL/test || die
+
+ local t
+ for t in test_*.py; do
+ "${PYTHON}" "${t}" || die "Test ${t} fails with ${EPYTHON}"
+ done
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ dohtml -r doc/html/.
+ dodoc doc/pyOpenSSL.*
+ fi
+
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+}
diff --git a/dev-python/pyopenssl/pyopenssl-0.14.ebuild b/dev-python/pyopenssl/pyopenssl-0.14.ebuild
new file mode 100644
index 00000000000..755c3046dbd
--- /dev/null
+++ b/dev-python/pyopenssl/pyopenssl-0.14.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN=pyOpenSSL
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python interface to the OpenSSL library"
+HOMEPAGE="http://pyopenssl.sourceforge.net/ https://launchpad.net/pyopenssl http://pypi.python.org/pypi/pyOpenSSL"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-0.2.1-r2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ sed \
+ -e "s/test_set_tlsext_host_name_wrong_args/_&/" \
+ -i OpenSSL/test/test_ssl.py || die "test_ssl sed failed"
+
+ # https://github.com/pyca/pyopenssl/issues/41
+ sed -e "s/test_digest/_&/" -i OpenSSL/test/test_crypto.py
+ # https://github.com/pyca/pyopenssl/issues/67
+ sed -e "s/test_wantWriteError/_&/" -i OpenSSL/test/test_ssl.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ esetup.py test
+
+ # https://bugs.launchpad.net/pyopenssl/+bug/1237953
+ rm -rf tmp* *.key *.pem
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyopenssl/pyopenssl-0.15.1.ebuild b/dev-python/pyopenssl/pyopenssl-0.15.1.ebuild
new file mode 100644
index 00000000000..dbf10bb0006
--- /dev/null
+++ b/dev-python/pyopenssl/pyopenssl-0.15.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN=pyOpenSSL
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python interface to the OpenSSL library"
+HOMEPAGE="http://pyopenssl.sourceforge.net/ https://launchpad.net/pyopenssl http://pypi.python.org/pypi/pyOpenSSL"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-0.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_prepare_all() {
+ # https://github.com/pyca/pyopenssl/issues/41
+ sed -e "s/test_digest/_&/" -i OpenSSL/test/test_crypto.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ esetup.py test
+
+ # https://bugs.launchpad.net/pyopenssl/+bug/1237953
+ rm -rf tmp* *.key *.pem
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyorbit/Manifest b/dev-python/pyorbit/Manifest
new file mode 100644
index 00000000000..2523373d7ef
--- /dev/null
+++ b/dev-python/pyorbit/Manifest
@@ -0,0 +1 @@
+DIST pyorbit-2.24.0.tar.bz2 293054 SHA256 8754669b8220aa1f151b920360029d5ea28c42bec55769059676725fe28397b8 SHA512 07824722831ac39d853bbcb35f543c6a1f24606a0fea8048881b3b9e370769592b2bc92b2ec6c9c6e88a2a7f84838757a115392fba6e1dbc0d29cff6f8da8141 WHIRLPOOL 50d2fa833d7a38cd7e6481fffdc85d67673ceecb71ec06c7db446aee1895293015f2eac2a95431ce28941f474b16674e0a67ea4e7a9af17db0237ee3bb3a6f09
diff --git a/dev-python/pyorbit/metadata.xml b/dev-python/pyorbit/metadata.xml
new file mode 100644
index 00000000000..9b1bc26a9df
--- /dev/null
+++ b/dev-python/pyorbit/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyorbit/pyorbit-2.24.0-r1.ebuild b/dev-python/pyorbit/pyorbit-2.24.0-r1.ebuild
new file mode 100644
index 00000000000..526d31b9892
--- /dev/null
+++ b/dev-python/pyorbit/pyorbit-2.24.0-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_TARBALL_SUFFIX="bz2"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome2 multilib python-r1
+
+DESCRIPTION="ORBit2 bindings for Python"
+HOMEPAGE="http://www.pygtk.org/"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE=""
+
+RDEPEND="${PYTHON_DEPS}
+ >=gnome-base/orbit-2.12"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DOCS="AUTHORS ChangeLog INSTALL NEWS README TODO"
+
+src_prepare() {
+ gnome2_src_prepare
+ python_copy_sources
+}
+
+src_configure() {
+ python_parallel_foreach_impl run_in_build_dir gnome2_src_configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir gnome2_src_compile
+}
+
+src_test() {
+ python_foreach_impl run_in_build_dir default_src_test
+}
+
+src_install() {
+ python_foreach_impl run_in_build_dir gnome2_src_install
+}
diff --git a/dev-python/pyosd/Manifest b/dev-python/pyosd/Manifest
new file mode 100644
index 00000000000..832569692d2
--- /dev/null
+++ b/dev-python/pyosd/Manifest
@@ -0,0 +1 @@
+DIST pyosd-0.2.14.tar.gz 20845 SHA256 a8a52357845f9c84faeab2983f4042b91bbcbb3355d4e70783de7a97aeb3564c SHA512 5781097ec5b082555c5a77953fd939a41d9eaab76fba32a132feec42d01e581f5dcf547fbed13122c56a5778e4b13441ae3d098a9bf7d6db8fac08361ad325a9 WHIRLPOOL 359440f8161d2da66a9319732577b8368f524d3e1636b79a52bb7b286144d86e826db901b7c82e7fd4e7230662744dff01313782bfa178ac81623c1c272a0040
diff --git a/dev-python/pyosd/metadata.xml b/dev-python/pyosd/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyosd/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyosd/pyosd-0.2.14-r1.ebuild b/dev-python/pyosd/pyosd-0.2.14-r1.ebuild
new file mode 100644
index 00000000000..34d56bb8ad2
--- /dev/null
+++ b/dev-python/pyosd/pyosd-0.2.14-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for displaying text on your X display, like the 'On Screen Displays' used on TVs"
+HOMEPAGE="http://ichi2.net/pyosd/"
+SRC_URI="http://ichi2.net/pyosd/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE="doc examples"
+
+DEPEND=">=x11-libs/xosd-2.2.4"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( pyosd.html )
+ use examples && local EXAMPLES=( modules/. )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "If you want to run the included daemon, you will need to install dev-python/twisted-core."
+ elog "Also note that the volume plugin requires media-sound/aumix."
+}
diff --git a/dev-python/pyosd/pyosd-0.2.14.ebuild b/dev-python/pyosd/pyosd-0.2.14.ebuild
new file mode 100644
index 00000000000..496a8803537
--- /dev/null
+++ b/dev-python/pyosd/pyosd-0.2.14.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Python module for displaying text on your X display, like the 'On Screen Displays' used on TVs"
+HOMEPAGE="http://ichi2.net/pyosd/"
+SRC_URI="http://ichi2.net/pyosd/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc x86"
+IUSE="examples"
+
+DEPEND=">=x11-libs/xosd-2.2.4"
+RDEPEND="${DEPEND}"
+
+DOCS="AUTHORS"
+
+src_install() {
+ distutils_src_install
+
+ dohtml pyosd.html
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r modules || die "doins failed"
+ fi
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+
+ elog "If you want to run the included daemon, you will need to install dev-python/twisted-core."
+ elog "Also note that the volume plugin requires media-sound/aumix."
+}
diff --git a/dev-python/pypam/Manifest b/dev-python/pypam/Manifest
new file mode 100644
index 00000000000..e5f270c416e
--- /dev/null
+++ b/dev-python/pypam/Manifest
@@ -0,0 +1 @@
+DIST PyPAM-0.5.0.tar.gz 105206 SHA256 796ac019b9ee805696d0d277d8fb912fa2391b6ac070dc6f9f1a9a0fadbc3a5a SHA512 9e0e919e34930d2283307cd6665c5287c664a76a5de56367bd975867ac26b376ae03d30cb3bc4a16390c977ca2690cfd2e90ac73dcc7886b8c999444da4a07e0 WHIRLPOOL 03e93e671dd4c74252b5c04ea74d389408934ce03206ec47d3dbbb2c19d4dce7b4271765d0967dbbee2c288bc3c6451b1295bf46ba82ed3665711bdc1aa173c4
diff --git a/dev-python/pypam/files/PyPAM-0.5.0-dealloc.patch b/dev-python/pypam/files/PyPAM-0.5.0-dealloc.patch
new file mode 100644
index 00000000000..b73dd0b08c5
--- /dev/null
+++ b/dev-python/pypam/files/PyPAM-0.5.0-dealloc.patch
@@ -0,0 +1,17 @@
+diff -up PyPAM-0.5.0/PAMmodule.c.dealloc PyPAM-0.5.0/PAMmodule.c
+--- PyPAM-0.5.0/PAMmodule.c.dealloc 2011-01-17 22:48:22.000000000 +0100
++++ PyPAM-0.5.0/PAMmodule.c 2011-01-18 21:24:59.000000000 +0100
+@@ -538,10 +538,11 @@ static void PyPAM_dealloc(PyPAMObject *s
+ free(self->service);
+ free(self->user);
+ free(self->conv);
+- pam_end(self->pamh, PAM_SUCCESS);
++ if (self->pamh)
++ pam_end(self->pamh, PAM_SUCCESS);
+ dlclose(self->dlh2);
+ dlclose(self->dlh1);
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ static PyObject * PyPAM_getattr(PyPAMObject *self, char *name)
diff --git a/dev-python/pypam/files/PyPAM-0.5.0-memory-errors.patch b/dev-python/pypam/files/PyPAM-0.5.0-memory-errors.patch
new file mode 100644
index 00000000000..6e0b4c0dce4
--- /dev/null
+++ b/dev-python/pypam/files/PyPAM-0.5.0-memory-errors.patch
@@ -0,0 +1,128 @@
+diff -up PyPAM-0.5.0/PAMmodule.c.memory PyPAM-0.5.0/PAMmodule.c
+--- PyPAM-0.5.0/PAMmodule.c.memory 2012-05-07 17:22:54.503914026 +0200
++++ PyPAM-0.5.0/PAMmodule.c 2012-05-07 17:23:15.644381942 +0200
+@@ -37,33 +37,48 @@ static void PyPAM_Err(PyPAMObject *self,
+
+ err_msg = pam_strerror(self->pamh, result);
+ error = Py_BuildValue("(si)", err_msg, result);
+- Py_INCREF(PyPAM_Error);
+ PyErr_SetObject(PyPAM_Error, error);
++ Py_XDECREF(error);
+ }
+
+ static int PyPAM_conv(int num_msg, const struct pam_message **msg,
+ struct pam_response **resp, void *appdata_ptr)
+ {
+- PyObject *args;
+-
++ PyObject *args, *msgList, *respList, *item;
++ struct pam_response *response, *spr;
+ PyPAMObject* self = (PyPAMObject *) appdata_ptr;
++
+ if (self->callback == NULL)
+ return PAM_CONV_ERR;
+
+ Py_INCREF(self);
+
+- PyObject* msgList = PyList_New(num_msg);
+-
++ msgList = PyList_New(num_msg);
++ if (msgList == NULL) {
++ Py_DECREF(self);
++ return PAM_CONV_ERR;
++ }
++
+ for (int i = 0; i < num_msg; i++) {
+- PyList_SetItem(msgList, i,
+- Py_BuildValue("(si)", msg[i]->msg, msg[i]->msg_style));
++ item = Py_BuildValue("(si)", msg[i]->msg, msg[i]->msg_style);
++ if (item == NULL) {
++ Py_DECREF(msgList);
++ Py_DECREF(self);
++ return PAM_CONV_ERR;
++ }
++ PyList_SetItem(msgList, i, item);
+ }
+-
++
+ args = Py_BuildValue("(OO)", self, msgList);
+- PyObject* respList = PyEval_CallObject(self->callback, args);
++ if (args == NULL) {
++ Py_DECREF(self);
++ Py_DECREF(msgList);
++ return PAM_CONV_ERR;
++ }
++ respList = PyEval_CallObject(self->callback, args);
+ Py_DECREF(args);
+ Py_DECREF(self);
+-
++
+ if (respList == NULL)
+ return PAM_CONV_ERR;
+
+@@ -71,11 +86,15 @@ static int PyPAM_conv(int num_msg, const
+ Py_DECREF(respList);
+ return PAM_CONV_ERR;
+ }
+-
+- *resp = (struct pam_response *) malloc(
++
++ response = (struct pam_response *) malloc(
+ PyList_Size(respList) * sizeof(struct pam_response));
++ if (response == NULL) {
++ Py_DECREF(respList);
++ return PAM_CONV_ERR;
++ }
++ spr = response;
+
+- struct pam_response* spr = *resp;
+ for (int i = 0; i < PyList_Size(respList); i++, spr++) {
+ PyObject* respTuple = PyList_GetItem(respList, i);
+ char* resp_text;
+@@ -85,7 +104,7 @@ static int PyPAM_conv(int num_msg, const
+ free((--spr)->resp);
+ --i;
+ }
+- free(*resp);
++ free(response);
+ Py_DECREF(respList);
+ return PAM_CONV_ERR;
+ }
+@@ -95,7 +114,8 @@ static int PyPAM_conv(int num_msg, const
+ }
+
+ Py_DECREF(respList);
+-
++ *resp = response;
++
+ return PAM_SUCCESS;
+ }
+
+@@ -122,7 +142,11 @@ static PyObject * PyPAM_pam(PyObject *se
+ PyPAMObject_Type.ob_type = &PyType_Type;
+ p = (PyPAMObject *) PyObject_NEW(PyPAMObject, &PyPAMObject_Type);
+
++ if (p == NULL)
++ return NULL;
++
+ if ((spc = (struct pam_conv *) malloc(sizeof(struct pam_conv))) == NULL) {
++ Py_DECREF((PyObject *)p);
+ PyErr_SetString(PyExc_MemoryError, "out of memory");
+ return NULL;
+ }
+@@ -455,9 +479,15 @@ static PyObject * PyPAM_getenvlist(PyObj
+ }
+
+ retval = PyList_New(0);
++ if (retval == NULL)
++ return NULL;
+
+ while ((cp = *(result++)) != NULL) {
+ entry = Py_BuildValue("s", cp);
++ if (entry == NULL) {
++ Py_DECREF(retval);
++ return NULL;
++ }
+ PyList_Append(retval, entry);
+ Py_DECREF(entry);
+ }
diff --git a/dev-python/pypam/files/PyPAM-0.5.0-nofree.patch b/dev-python/pypam/files/PyPAM-0.5.0-nofree.patch
new file mode 100644
index 00000000000..f27e9d543d0
--- /dev/null
+++ b/dev-python/pypam/files/PyPAM-0.5.0-nofree.patch
@@ -0,0 +1,60 @@
+diff --git a/PAMmodule.c b/PAMmodule.c
+index 03cb799..a7ff8a5 100644
+--- a/PAMmodule.c
++++ b/PAMmodule.c
+@@ -24,8 +24,6 @@ typedef struct {
+ char *service;
+ char *user;
+ PyObject *callback;
+- struct pam_response *response_data;
+- int response_len;
+ PyObject *user_data;
+ void *dlh1, *dlh2;
+ } PyPAMObject;
+@@ -54,15 +52,6 @@ static int PyPAM_conv(int num_msg, const struct pam_message **msg,
+
+ Py_INCREF(self);
+
+- if (NULL != self->response_data) {
+- for (int i = 0; i < self->response_len; i++) {
+- free(self->response_data[0].resp);
+- }
+- free(self->response_data);
+- self->response_data = NULL;
+- self->response_len = 0;
+- }
+-
+ PyObject* msgList = PyList_New(num_msg);
+
+ for (int i = 0; i < num_msg; i++) {
+@@ -92,6 +81,10 @@ static int PyPAM_conv(int num_msg, const struct pam_message **msg,
+ char* resp_text;
+ int resp_retcode = 0;
+ if (!PyArg_ParseTuple(respTuple, "si", &resp_text, &resp_retcode)) {
++ while (i > 0) {
++ free((--spr)->resp);
++ --i;
++ }
+ free(*resp);
+ Py_DECREF(respList);
+ return PAM_CONV_ERR;
+@@ -100,10 +93,6 @@ static int PyPAM_conv(int num_msg, const struct pam_message **msg,
+ spr->resp_retcode = resp_retcode;
+ Py_DECREF(respTuple);
+ }
+-
+- // Save this so we can free it later.
+- self->response_data = *resp;
+- self->response_len = PyList_Size(respList);
+
+ Py_DECREF(respList);
+
+@@ -144,8 +133,6 @@ static PyObject * PyPAM_pam(PyObject *self, PyObject *args)
+ p->user = NULL;
+ Py_INCREF(Py_None);
+ p->callback = Py_None;
+- p->response_data = NULL;
+- p->response_len = 0;
+ Py_INCREF(Py_None);
+ p->user_data = Py_None;
+
diff --git a/dev-python/pypam/files/PyPAM-0.5.0-return-value.patch b/dev-python/pypam/files/PyPAM-0.5.0-return-value.patch
new file mode 100644
index 00000000000..6e771e9949a
--- /dev/null
+++ b/dev-python/pypam/files/PyPAM-0.5.0-return-value.patch
@@ -0,0 +1,57 @@
+diff -up PyPAM-0.5.0/PAMmodule.c.retval PyPAM-0.5.0/PAMmodule.c
+--- PyPAM-0.5.0/PAMmodule.c.retval 2012-05-04 21:47:51.000000000 +0200
++++ PyPAM-0.5.0/PAMmodule.c 2012-05-07 09:42:27.690963206 +0200
+@@ -248,7 +248,7 @@ static PyObject * PyPAM_setcred(PyObject
+ result = pam_setcred(_self->pamh, flags);
+
+ if (result != PAM_SUCCESS) {
+- PyErr_SetString(PyPAM_Error, "Not authenticated");
++ PyPAM_Err(_self, result);
+ return NULL;
+ }
+
+@@ -270,7 +270,7 @@ static PyObject * PyPAM_acct_mgmt(PyObje
+ result = pam_acct_mgmt(_self->pamh, flags);
+
+ if (result != PAM_SUCCESS) {
+- PyErr_SetString(PyPAM_Error, "Not authenticated");
++ PyPAM_Err(_self, result);
+ return NULL;
+ }
+
+@@ -292,7 +292,7 @@ static PyObject * PyPAM_chauthtok(PyObje
+ result = pam_chauthtok(_self->pamh, flags);
+
+ if (result != PAM_SUCCESS) {
+- PyErr_SetString(PyPAM_Error, "Not authenticated");
++ PyPAM_Err(_self, result);
+ return NULL;
+ }
+
+@@ -314,7 +314,7 @@ static PyObject * PyPAM_open_session(PyO
+ result = pam_open_session(_self->pamh, flags);
+
+ if (result != PAM_SUCCESS) {
+- PyErr_SetString(PyPAM_Error, "Not authenticated");
++ PyPAM_Err(_self, result);
+ return NULL;
+ }
+
+@@ -336,7 +336,7 @@ static PyObject * PyPAM_close_session(Py
+ result = pam_close_session(_self->pamh, flags);
+
+ if (result != PAM_SUCCESS) {
+- PyErr_SetString(PyPAM_Error, "Not authenticated");
++ PyPAM_Err(_self, result);
+ return NULL;
+ }
+
+@@ -433,7 +433,7 @@ static PyObject * PyPAM_putenv(PyObject
+ result = pam_putenv(_self->pamh, val);
+
+ if (result != PAM_SUCCESS) {
+- PyErr_SetString(PyPAM_Error, "Not authenticated");
++ PyPAM_Err(_self, result);
+ return NULL;
+ }
+
diff --git a/dev-python/pypam/files/PyPAM-python3-support.patch b/dev-python/pypam/files/PyPAM-python3-support.patch
new file mode 100644
index 00000000000..2aec60eabdf
--- /dev/null
+++ b/dev-python/pypam/files/PyPAM-python3-support.patch
@@ -0,0 +1,198 @@
+--- PAMmodule.c.python3 2014-06-24 11:29:10.958299393 +0200
++++ PAMmodule.c 2014-06-24 15:20:02.728118493 +0200
+@@ -15,6 +15,14 @@
+ #include <stdio.h>
+ #include <dlfcn.h>
+
++#if PY_MAJOR_VERSION >= 3
++#define IS_PY3K
++#else
++// include bytesobject.h to map PyBytes_* to PyString_*
++#include <bytesobject.h>
++#endif
++
++
+ static PyObject *PyPAM_Error;
+
+ typedef struct {
+@@ -28,7 +36,11 @@
+ void *dlh1, *dlh2;
+ } PyPAMObject;
+
++#ifdef IS_PY3K
++static PyTypeObject PyPAMObject_Type;
++#else
+ staticforward PyTypeObject PyPAMObject_Type;
++#endif
+
+ static void PyPAM_Err(PyPAMObject *self, int result)
+ {
+@@ -139,7 +151,6 @@
+ return NULL;
+ }
+
+- PyPAMObject_Type.ob_type = &PyType_Type;
+ p = (PyPAMObject *) PyObject_NEW(PyPAMObject, &PyPAMObject_Type);
+
+ if (p == NULL)
+@@ -562,35 +573,44 @@
+ PyObject_Del(self);
+ }
+
+-static PyObject * PyPAM_getattr(PyPAMObject *self, char *name)
+-{
+- return Py_FindMethod(PyPAMObject_Methods, (PyObject *) self, name);
+-}
+-
+ static PyObject * PyPAM_repr(PyPAMObject *self)
+ {
+ char buf[1024];
+
+ snprintf(buf, 1024, "<pam object, service=\"%s\", user=\"%s\", conv=%p, pamh=%p>",
+ self->service, self->user, self->conv, self->pamh);
+- return PyString_FromString(buf);
++ return PyBytes_FromString(buf);
+ }
+
+ static PyTypeObject PyPAMObject_Type = {
+- PyObject_HEAD_INIT(0) /* Must fill in type value later */
+- 0,
+- "pam",
+- sizeof(PyPAMObject),
+- 0,
+- (destructor)PyPAM_dealloc, /*tp_dealloc*/
+- 0, /*tp_print*/
+- (getattrfunc)PyPAM_getattr, /*tp_getattr*/
+- 0, /*tp_setattr*/
+- 0, /*tp_compare*/
+- (reprfunc)PyPAM_repr, /*tp_repr*/
+- 0, /*tp_as_number*/
+- 0, /*tp_as_sequence*/
+- 0, /*tp_as_mapping*/
++ PyVarObject_HEAD_INIT(NULL, 0) /* Must fill in type value later */
++ "pam", /* tp_name */
++ sizeof(PyPAMObject), /* tp_basicsize */
++ 0, /* tp_itemsize */
++ (destructor)PyPAM_dealloc, /* tp_dealloc */
++ 0, /* tp_print */
++ 0, /* tp_getattr */
++ 0, /* tp_setattr */
++ 0, /* tp_compare */
++ (reprfunc)PyPAM_repr, /* tp_repr */
++ 0, /* tp_as_number */
++ 0, /* tp_as_sequence */
++ 0, /* tp_as_mapping */
++ 0, /* tp_hash */
++ 0, /* tp_call */
++ 0, /* tp_str */
++ PyObject_GenericGetAttr, /* tp_getattro */
++ 0, /* tp_setattro */
++ 0, /* tp_as_buffer */
++ Py_TPFLAGS_DEFAULT, /* tp_flags */
++ "PyPAM", /* tp_doc */
++ 0, /* tp_traverse */
++ 0, /* tp_clear */
++ 0, /* tp_richcompare */
++ 0, /* tp_weaklistoffset */
++ 0, /* tp_iter */
++ 0, /* tp_iternext */
++ PyPAMObject_Methods, /* tp_methods */
+ };
+
+ static PyMethodDef PyPAM_Methods[] = {
+@@ -607,7 +627,12 @@
+ */
+ static void insint(PyObject *d, char *name, int value)
+ {
+- PyObject* v = PyInt_FromLong((long) value);
++ PyObject* v;
++#ifdef IS_PY3K
++ v = PyLong_FromLong((long) value);
++#else
++ v = PyInt_FromLong((long) value);
++#endif
+
+ if (!v || PyDict_SetItemString(d, name, v))
+ PyErr_Clear();
+@@ -615,19 +640,42 @@
+ Py_XDECREF(v);
+ }
+
++#ifdef IS_PY3K
++static struct PyModuleDef pamdef = {
++ PyModuleDef_HEAD_INIT,
++ "PAM",
++ NULL,
++ -1,
++ PyPAM_Methods,
++ NULL,
++ NULL,
++ NULL,
++ NULL
++};
++
++#define INITERROR return NULL
++PyObject *PyInit_PAM(void)
++
++#else
++#define INITERROR return
+ void initPAM(void)
++#endif
+ {
+ PyObject *m, *d;
+
++#ifdef IS_PY3K
++ m = PyModule_Create(&pamdef);
++#else
+ m = Py_InitModule("PAM", PyPAM_Methods);
++#endif
+ d = PyModule_GetDict(m);
+
+ PyPAM_Error = PyErr_NewException("PAM.error", NULL, NULL);
+ if (PyPAM_Error == NULL)
+- return;
++ INITERROR;
+ PyDict_SetItemString(d, "error", PyPAM_Error);
+
+- PyPAMObject_Type.ob_type = &PyType_Type;
++ Py_TYPE(&PyPAMObject_Type) = &PyType_Type;
+ PyPAMObject_Type.tp_doc = PyPAMObject_doc;
+ Py_INCREF(&PyPAMObject_Type);
+
+@@ -692,4 +740,7 @@
+ insint(d, "PAM_BINARY_PROMPT", PAM_BINARY_PROMPT);
+ #endif
+
++#ifdef IS_PY3K
++ return m;
++#endif
+ }
+--- setup.py.python3 2014-06-24 15:58:07.792172439 +0200
++++ setup.py 2014-06-24 15:58:13.714909021 +0200
+@@ -12,7 +12,7 @@
+ license='LGPL',
+ ext_modules=[
+ Extension(
+- 'PAMmodule',
++ 'PAM',
+ ['PAMmodule.c'],
+ libraries=['pam', 'pam_misc'],
+ extra_compile_args = ['-std=c99'],
+--- tests/PamTest.py.python3 2014-06-24 16:54:28.902998249 +0200
++++ tests/PamTest.py 2014-06-24 17:07:11.392094775 +0200
+@@ -41,13 +41,13 @@
+ def test_userdata_default(self):
+ """The default value for userdata is None."""
+
+- self.failUnless(self.pam.get_userdata() is None)
++ self.assertTrue(self.pam.get_userdata() is None)
+
+ def test_userdata(self):
+ """The userdata getter and setter will store and return any data."""
+
+ self.pam.set_userdata(1)
+- self.failUnless(self.pam.get_userdata() == 1)
++ self.assertTrue(self.pam.get_userdata() == 1)
+
+ def test_start(self):
+ """pam.start() works as expected."""
diff --git a/dev-python/pypam/files/pypam-0.5.0-stricter.patch b/dev-python/pypam/files/pypam-0.5.0-stricter.patch
new file mode 100644
index 00000000000..45391034913
--- /dev/null
+++ b/dev-python/pypam/files/pypam-0.5.0-stricter.patch
@@ -0,0 +1,15 @@
+=== modified file 'PAMmodule.c'
+--- PAMmodule.c 2007-05-28 17:50:59 +0000
++++ PAMmodule.c 2007-05-28 18:13:33 +0000
+@@ -9,8 +9,9 @@
+
++#include <Python.h>
+ #include <security/pam_appl.h>
+ #include <security/pam_misc.h>
+-#include <Python.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <dlfcn.h>
+
+ static PyObject *PyPAM_Error;
+
diff --git a/dev-python/pypam/metadata.xml b/dev-python/pypam/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/pypam/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pypam/pypam-0.5.0-r3.ebuild b/dev-python/pypam/pypam-0.5.0-r3.ebuild
new file mode 100644
index 00000000000..abbee94b787
--- /dev/null
+++ b/dev-python/pypam/pypam-0.5.0-r3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="PyPAM"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python Bindings for PAM (Pluggable Authentication Modules)"
+HOMEPAGE="http://www.pangalactic.org/PyPAM"
+SRC_URI="http://www.pangalactic.org/PyPAM/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+IUSE=""
+
+DEPEND=">=sys-libs/pam-0.64"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( AUTHORS examples/pamtest.py )
+
+PATCHES=(
+ # Pull patches from fedora.
+ "${FILESDIR}/PyPAM-${PV}-dealloc.patch"
+ "${FILESDIR}/PyPAM-${PV}-nofree.patch"
+ "${FILESDIR}/PyPAM-${PV}-memory-errors.patch"
+ "${FILESDIR}/PyPAM-${PV}-return-value.patch"
+ "${FILESDIR}/PyPAM-python3-support.patch"
+ # Fix a missing include.
+ "${FILESDIR}/${P}-stricter.patch"
+)
+
+src_compile() {
+ append-cflags -fno-strict-aliasing
+ distutils-r1_src_compile
+}
+
+python_test() {
+ "${PYTHON}" tests/PamTest.py
+}
diff --git a/dev-python/pyparsing/Manifest b/dev-python/pyparsing/Manifest
new file mode 100644
index 00000000000..9cb18a43461
--- /dev/null
+++ b/dev-python/pyparsing/Manifest
@@ -0,0 +1,3 @@
+DIST pyparsing-1.5.6.tar.gz 1418892 SHA256 5c84aa4500e82d5aa2c0842d5628c5da985e68ac1fb33554e0e5547eb3c85a75 SHA512 614c1a016d121b7c4ecf90a164bbe323affd6cf72319c8494e9a583078ffa233c351627fc3e793307e407e043570f8301f112c4d86645dcd130220ed976289c8 WHIRLPOOL 278d37581a950a570ac3cca2a5f8b674c909220fddc47072d9d52c38b8dfc30b335530dffd3c522cd18e58e9bddcc5e48d9184cdaf4b09203bbba308607e24a4
+DIST pyparsing-2.0.1.tar.gz 1129563 SHA256 0007cd3f008eba4a203f1f6b4b133ddc352552c8808b694c88c23db56416e4e4 SHA512 e9c9307c59c7020f4a454458703bd1eb4ef0ac513b2a6a07706b5d676c010f33a72d03d78a61bf3daa96d6598b966a3e4921a88c50f71939a697fa00377ac67a WHIRLPOOL c95815cc6d8471e1ea730daf19ea954fbbddbc67b771700100b04c7103e1ec5e7226e3881a037476f898a3874c072baed7ed159ca32566bd8ed825ab8f4f3cbe
+DIST pyparsing-2.0.3.tar.gz 1462653 SHA256 06e729e1cbf5274703b1f47b6135ed8335999d547f9d8cf048b210fb8ebf844f SHA512 9771851f4b0191c7d3f8d2a2a6d2a9198b173120d3f133d08284b71e792fc59a906d571edea8f44ba04ab00c1d906e1974d1e8a2d6155d492de1358ba99c575a WHIRLPOOL 42b9c7aa0b8d4d91436a01a60cbca64a9c8f7798b7aeb60bd2c4af085f9e13167a5ac5132d55bd890b4890c00428e908dfae32ed78ec153c868ee02ed3cdaa3f
diff --git a/dev-python/pyparsing/metadata.xml b/dev-python/pyparsing/metadata.xml
new file mode 100644
index 00000000000..cbe760bfb74
--- /dev/null
+++ b/dev-python/pyparsing/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The pyparsing module is an alternative approach to creating and
+ executing simple grammars, vs. the traditional lex/yacc approach, or the
+ use of regular expressions. The pyparsing module provides a library of
+ classes that client code uses to construct the grammar directly in
+ Python code.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">pyparsing</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyparsing/pyparsing-1.5.6-r2.ebuild b/dev-python/pyparsing/pyparsing-1.5.6-r2.ebuild
new file mode 100644
index 00000000000..efe8e7f3d23
--- /dev/null
+++ b/dev-python/pyparsing/pyparsing-1.5.6-r2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="pyparsing is an easy-to-use Python module for text parsing"
+HOMEPAGE="http://pyparsing.wikispaces.com/ http://pypi.python.org/pypi/pyparsing"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+# Build system copies the module from py2/py3 version to the regular
+# name before installing.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # resorted to sed, fixed in June upstream, bug ID: 3381439.
+ # See Bug #443836.
+ sed -e "s/26 June 2011 10:53/16 June 2012 03:08/" \
+ -e 's:exc.__traceback__:pe.__traceback__:' \
+ -i pyparsing_py3.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ local HTML_DOCS=( HowToUsePyparsing.html )
+
+ distutils-r1_python_install_all
+
+ insinto /usr/share/doc/${PF}
+
+ if use doc; then
+ dohtml -r htmldoc/*
+ doins docs/*.pdf
+ fi
+
+ if use examples; then
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pyparsing/pyparsing-1.5.6.ebuild b/dev-python/pyparsing/pyparsing-1.5.6.ebuild
new file mode 100644
index 00000000000..604c388b6a0
--- /dev/null
+++ b/dev-python/pyparsing/pyparsing-1.5.6.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit distutils eutils
+
+DESCRIPTION="pyparsing is an easy-to-use Python module for text parsing"
+HOMEPAGE="http://pyparsing.wikispaces.com/ http://pypi.python.org/pypi/pyparsing"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES="1"
+PYTHON_MODNAME="pyparsing.py"
+
+src_install() {
+ distutils_src_install
+
+ dohtml HowToUsePyparsing.html
+ dodoc CHANGES
+
+ if use doc; then
+ dohtml -r htmldoc/*
+ insinto /usr/share/doc/${PF}
+ doins docs/*.pdf
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pyparsing/pyparsing-2.0.1.ebuild b/dev-python/pyparsing/pyparsing-2.0.1.ebuild
new file mode 100644
index 00000000000..7148e7e1b77
--- /dev/null
+++ b/dev-python/pyparsing/pyparsing-2.0.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="pyparsing is an easy-to-use Python module for text parsing"
+HOMEPAGE="http://pyparsing.wikispaces.com/ http://pypi.python.org/pypi/pyparsing"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples"
+
+RDEPEND="!dev-python/pyparsing:py2 !dev-python/pyparsing:py3"
+
+python_install_all() {
+ local HTML_DOCS=( HowToUsePyparsing.html )
+ use doc && HTML_DOCS+=( htmldoc/ )
+
+ distutils-r1_python_install_all
+
+ use doc && dodoc docs/*.pdf
+ use examples && dodoc -r examples
+}
diff --git a/dev-python/pyparsing/pyparsing-2.0.3.ebuild b/dev-python/pyparsing/pyparsing-2.0.3.ebuild
new file mode 100644
index 00000000000..2845373889f
--- /dev/null
+++ b/dev-python/pyparsing/pyparsing-2.0.3.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="pyparsing is an easy-to-use Python module for text parsing"
+HOMEPAGE="http://pyparsing.wikispaces.com/ http://pypi.python.org/pypi/pyparsing"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples"
+
+RDEPEND="!dev-python/pyparsing:py2 !dev-python/pyparsing:py3"
+
+python_install_all() {
+ local HTML_DOCS=( HowToUsePyparsing.html )
+ if use doc; then
+ HTML_DOCS+=( htmldoc/. )
+ dodoc docs/*.pdf
+ fi
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyparted/Manifest b/dev-python/pyparted/Manifest
new file mode 100644
index 00000000000..2fdb9ead7d0
--- /dev/null
+++ b/dev-python/pyparted/Manifest
@@ -0,0 +1,3 @@
+DIST pyparted-3.10.3.tar.gz 96927 SHA256 ba385beff0bd31e64886ac1ed699306c49474dcf5dc33f96f867d208f8d7e992 SHA512 238da222bb76e6838861f4fdff63f52823d0c7ace068fd4f40d5ccf5de5b7c26fadf52add689ec143755d568c52788b79262ba1090639560c3b54daa67e6507f WHIRLPOOL 9fab91096f345507fc3528c960ae8e151975abd36e8e76f5f55b48aabee6c23ac6e16c7b471b1b01a5977c7157f32b3726b1ce0fbb0d221ba0a07a0df9f19c13
+DIST pyparted-3.10.4.tar.gz 99746 SHA256 1121d6457dac0efa64cd1efe326ba2147c25c27e2ade3e1043cdbd188ab828a1 SHA512 8af3381b548f4f08eadfec2607b9b355d503fefc3057fd76c1bbe63d17f885a37604594593a1b2160c46ee608e4dcf217c7b0e2aee33d5ed4eeb9283f5bee030 WHIRLPOOL a8341ad50f5ed00623f291c146fae98069c64bb05928f3c5d37ad186dfe1b3c41a6dd6df543506b23ff3747d754ba4c27d180032d40d454e44527a9f72f05610
+DIST pyparted-3.10.5.tar.gz 99638 SHA256 8cbaf024fbbc73cdceab2eac0937035052da48295970fe9eaa84b19d8e353e19 SHA512 c3cdc370d9a86278d47b97ed0b54d225fc6e92285aabda3ed529c0df67f4f45835016c7eea7bc02981f9273961948d5d7096f8f35c1f8eafde67ad241d9ec9fa WHIRLPOOL d79d8fcbaf04ae3f1a61b27bace5fd101fd70b271d11ff45be9dc3aebad6c7f5ad2e80e1694a68ebb0ad3a9633d3b8161ba7276f7f60a8696e365451989c63f3
diff --git a/dev-python/pyparted/files/pyparted-3.10.3-greater.patch b/dev-python/pyparted/files/pyparted-3.10.3-greater.patch
new file mode 100644
index 00000000000..53af4fe34e5
--- /dev/null
+++ b/dev-python/pyparted/files/pyparted-3.10.3-greater.patch
@@ -0,0 +1,11 @@
+--- a/tests/test__ped_ped.py
++++ b/tests/test__ped_ped.py
+@@ -228,7 +228,7 @@
+
+ self.assertGreater(len(lst), 0)
+ self.assertGreater(
+- len([e for e in lst if e.path.startswith("/tmp/temp-device-")]), 0)
++ len([e for e in lst]), 0)
+
+ class DeviceFreeAllTestCase(RequiresDevice):
+ def runTest(self):
diff --git a/dev-python/pyparted/files/pyparted-3.10.3-sbin-parted.patch b/dev-python/pyparted/files/pyparted-3.10.3-sbin-parted.patch
new file mode 100644
index 00000000000..e12088e248a
--- /dev/null
+++ b/dev-python/pyparted/files/pyparted-3.10.3-sbin-parted.patch
@@ -0,0 +1,11 @@
+--- a/tests/baseclass.py
++++ b/tests/baseclass.py
+@@ -127,7 +127,7 @@
+ class RequiresLabeledDevice(RequiresDevice):
+ def setUp(self):
+ RequiresDevice.setUp(self)
+- os.system("/sbin/parted -s %s mklabel msdos" % (self.path,))
++ os.system("/usr/sbin/parted -s %s mklabel msdos" % (self.path,))
+
+ # Base class for any test case that requires a _ped.Disk or parted.Disk.
+ class RequiresDisk(RequiresDevice):
diff --git a/dev-python/pyparted/metadata.xml b/dev-python/pyparted/metadata.xml
new file mode 100644
index 00000000000..88653ddd717
--- /dev/null
+++ b/dev-python/pyparted/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>livecd</herd>
+</pkgmetadata>
diff --git a/dev-python/pyparted/pyparted-3.10.3-r1.ebuild b/dev-python/pyparted/pyparted-3.10.3-r1.ebuild
new file mode 100644
index 00000000000..d755d150894
--- /dev/null
+++ b/dev-python/pyparted/pyparted-3.10.3-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for sys-block/parted"
+HOMEPAGE="https://github.com/dcantrell/pyparted/"
+SRC_URI="${HOMEPAGE}archive/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86"
+IUSE="test"
+REQUIRED_USE="
+ test? ( python_targets_python2_7 )
+"
+
+RDEPEND="
+ >=sys-block/parted-3.1
+ dev-python/decorator[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-python/pychecker )
+ virtual/pkgconfig
+"
+
+S=${WORKDIR}/${PN}-${P}
+
+PATCHES=(
+ "${FILESDIR}"/${P}-greater.patch
+ "${FILESDIR}"/${P}-sbin-parted.patch
+)
+
+python_test() {
+ if [[ ${EPYTHON} = python2* ]]; then
+ emake test
+ else
+ einfo "Skipping ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/pyparted/pyparted-3.10.4.ebuild b/dev-python/pyparted/pyparted-3.10.4.ebuild
new file mode 100644
index 00000000000..a2078e6421a
--- /dev/null
+++ b/dev-python/pyparted/pyparted-3.10.4.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for sys-block/parted"
+HOMEPAGE="https://github.com/dcantrell/pyparted/"
+SRC_URI="${HOMEPAGE}archive/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="test"
+REQUIRED_USE="
+ test? ( python_targets_python2_7 )
+"
+
+RDEPEND="
+ >=sys-block/parted-3.1
+ dev-python/decorator[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-python/pychecker )
+ virtual/pkgconfig
+"
+
+S=${WORKDIR}/${PN}-${P}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.10.3-greater.patch
+ "${FILESDIR}"/${PN}-3.10.3-sbin-parted.patch
+)
+
+python_test() {
+ if [[ ${EPYTHON} = python2* ]]; then
+ emake test
+ else
+ einfo "Skipping ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/pyparted/pyparted-3.10.5.ebuild b/dev-python/pyparted/pyparted-3.10.5.ebuild
new file mode 100644
index 00000000000..49c937eac55
--- /dev/null
+++ b/dev-python/pyparted/pyparted-3.10.5.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for sys-block/parted"
+HOMEPAGE="https://github.com/rhinstaller/pyparted/"
+SRC_URI="${HOMEPAGE}archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="test"
+REQUIRED_USE="
+ test? ( python_targets_python2_7 )
+"
+
+RDEPEND="
+ >=sys-block/parted-3.1
+ dev-python/decorator[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-python/pychecker )
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.10.3-greater.patch
+ "${FILESDIR}"/${PN}-3.10.3-sbin-parted.patch
+)
+
+python_test() {
+ if [[ ${EPYTHON} = python2* ]]; then
+ emake test
+ else
+ einfo "Skipping ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/pypax/Manifest b/dev-python/pypax/Manifest
new file mode 100644
index 00000000000..71ba474647d
--- /dev/null
+++ b/dev-python/pypax/Manifest
@@ -0,0 +1,2 @@
+DIST elfix-0.8.4.tar.gz 374742 SHA256 374be66da3dddef485bbb5e95bfcab6fd0c2db478255bddd10079730ada5260b SHA512 10aacc3fff33c934e2d4487d174a2b0cec10ffb7a35fc72b160c786f82f0355f3a2dea716bc7fb929d2919cc32a26844f37f9d73064b755098bdaa72e8075bda WHIRLPOOL b04e099f188c0b76d8c07abd76559c1313854aa83a03ad69afb72674d93cde6ce538ae10d0fea3be5495937e72a4b98fdd36efbb2e3aa8ff23c1d9f7f943c1ae
+DIST elfix-0.9.0.tar.gz 372014 SHA256 8b547d987edb2f7dc23ddf30f959d7d051a9ed49810f983b8fe6c489fe731cf0 SHA512 fd9bab90d745f77429c902acd2a14f615132731b3c38929dce764f1e5f7ee8f6478a6fef7ce0cb38e7ebd9181ba57965ff0c97da5e01d0fbf2cfb940ed691ebf WHIRLPOOL c09fa2193b990a506cae17f370ec10fa6302e17d2a165e42eceb88644f8a92e297c839ad788204e213d8205695b65557a7dcef5f6417177c434c8d0a34bd5eb7
diff --git a/dev-python/pypax/metadata.xml b/dev-python/pypax/metadata.xml
new file mode 100644
index 00000000000..a3052a5dba9
--- /dev/null
+++ b/dev-python/pypax/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>hardened</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <use>
+ <flag name='xtpax'>Enable XATTR_PAX_FLAGS support.</flag>
+ <flag name='ptpax'>Enable PT_PAX_FLAGS support.</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pypax/pypax-0.8.4.ebuild b/dev-python/pypax/pypax-0.8.4.ebuild
new file mode 100644
index 00000000000..40c64155a30
--- /dev/null
+++ b/dev-python/pypax/pypax-0.8.4.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to get or set either PT_PAX and/or XATTR_PAX flags"
+HOMEPAGE="http://dev.gentoo.org/~blueness/elfix/
+ http://www.gentoo.org/proj/en/hardened/pax-quickstart.xml"
+SRC_URI="http://dev.gentoo.org/~blueness/elfix/elfix-${PV}.tar.gz"
+
+S="${WORKDIR}/elfix-${PV}/scripts"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86"
+IUSE="+ptpax +xtpax"
+
+REQUIRED_USE="|| ( ptpax xtpax )"
+
+RDEPEND="
+ ptpax? ( dev-libs/elfutils )
+ xtpax? ( sys-apps/attr )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ ${RDEPEND}"
+
+src_compile() {
+ unset PTPAX
+ unset XTPAX
+ use ptpax && export PTPAX="yes"
+ use xtpax && export XTPAX="yes"
+ distutils-r1_src_compile
+}
diff --git a/dev-python/pypax/pypax-0.9.0.ebuild b/dev-python/pypax/pypax-0.9.0.ebuild
new file mode 100644
index 00000000000..22d7ef6b3f7
--- /dev/null
+++ b/dev-python/pypax/pypax-0.9.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to get or set either PT_PAX and/or XATTR_PAX flags"
+HOMEPAGE="http://dev.gentoo.org/~blueness/elfix/
+ http://www.gentoo.org/proj/en/hardened/pax-quickstart.xml"
+SRC_URI="http://dev.gentoo.org/~blueness/elfix/elfix-${PV}.tar.gz"
+
+S="${WORKDIR}/elfix-${PV}/scripts"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86"
+IUSE="+ptpax +xtpax"
+
+REQUIRED_USE="|| ( ptpax xtpax )"
+
+RDEPEND="
+ ptpax? ( dev-libs/elfutils )
+ xtpax? ( sys-apps/attr )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ ${RDEPEND}"
+
+src_compile() {
+ unset PTPAX
+ unset XTPAX
+ use ptpax && export PTPAX="yes"
+ use xtpax && export XTPAX="yes"
+ distutils-r1_src_compile
+}
diff --git a/dev-python/pypcap/Manifest b/dev-python/pypcap/Manifest
new file mode 100644
index 00000000000..edf7d76bcb5
--- /dev/null
+++ b/dev-python/pypcap/Manifest
@@ -0,0 +1,2 @@
+DIST pypcap-1.1.1.tar.gz 44878 SHA256 b310d5af36f5d68ef4217fda68086ffce56345b415eaac15ad618f94057b017b SHA512 339a081cc06edc2f532b7a8eb962b3fd1d1185ed4fb42ef4a3b768bb27d852a7878d4e08ca421b0fdabd6db61b53663fbf20a073fa61f1839e06bdaf13ec1060 WHIRLPOOL 52cabe0b91747657a1f923ee619771d56af1c544ae7635f1e7e7dc0030064b8edcfe8ef9dc604163b85dce89b79b75e5595736863255147af7e34a2d7070821c
+DIST pypcap-1.1.3.tar.gz 44805 SHA256 cc0786efd527f16c5f0d08accf3cbd9ff8971ddc284a445cdabf2e47b458a377 SHA512 c8c3634173246838cd1d716ffd630cc149daa171749ab22901b352ed98f58c1377a754bf8510c33dc338deec4c80e5462eaf8baec502f1edb79cfac3ab8844bc WHIRLPOOL 2354f992aace04acad55e2dd8563543d5b4a408734259c228b6f3e30be587248e6db228b87b76c78e7e78b8a7007e4411684e8822dc9d0c3768df9a6ff07bcbc
diff --git a/dev-python/pypcap/metadata.xml b/dev-python/pypcap/metadata.xml
new file mode 100644
index 00000000000..1b65681c8e3
--- /dev/null
+++ b/dev-python/pypcap/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>netmon</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">pypcap</remote-id>
+ <remote-id type="pypi">pypcap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pypcap/pypcap-1.1.1.ebuild b/dev-python/pypcap/pypcap-1.1.1.ebuild
new file mode 100644
index 00000000000..ffcb66237c1
--- /dev/null
+++ b/dev-python/pypcap/pypcap-1.1.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Simplified object-oriented Python extension module for libpcap"
+HOMEPAGE="http://code.google.com/p/pypcap/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_compile() {
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pypcap/pypcap-1.1.3.ebuild b/dev-python/pypcap/pypcap-1.1.3.ebuild
new file mode 100644
index 00000000000..121ce6ce3bf
--- /dev/null
+++ b/dev-python/pypcap/pypcap-1.1.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Simplified object-oriented Python extension module for libpcap"
+HOMEPAGE="http://code.google.com/p/pypcap/ https://pypi.python.org/pypi/pypcap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+python_compile() {
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pypeg2/Manifest b/dev-python/pypeg2/Manifest
new file mode 100644
index 00000000000..53719f8891a
--- /dev/null
+++ b/dev-python/pypeg2/Manifest
@@ -0,0 +1 @@
+DIST pyPEG2-2.15.1.tar.gz 24103 SHA256 f4814a5f9c84bbb0794bef8d2a5871f4aed25366791c55e2162681873ad8bd21 SHA512 53fc9f40d426384c6107e62fa76dd231d7abe7eba3144f29a6eb9374bd7f6bc2f209fc8a687a6df762a0ba98abdb1071783780acd85cd637f86692baafe52ad1 WHIRLPOOL 61ad75f1570afd4c2a282e3196c909b69af3b1d7f36a3b42b613be3a613785c75a4938948c5dfac50098ccea464a0a03564fe6c4ce8b4a8d7b6ec3cd36f58bb6
diff --git a/dev-python/pypeg2/files/pypeg2-2.15.1-test.patch b/dev-python/pypeg2/files/pypeg2-2.15.1-test.patch
new file mode 100644
index 00000000000..6ca8839d777
--- /dev/null
+++ b/dev-python/pypeg2/files/pypeg2-2.15.1-test.patch
@@ -0,0 +1,12 @@
+Drop seemingly wrong test line that throws an AttributeError.
+
+--- pyPEG2-2.15.1/pypeg2/test/test_pyPEG2.py
++++ pyPEG2-2.15.1/pypeg2/test/test_pyPEG2.py
+@@ -255,7 +255,6 @@
+ def runTest(self):
+ r = pypeg2.parse("!all", type(self).C1)
+ self.assertEqual(str(r), "all")
+- self.assertEqual(r._ignore1, None)
+
+ class ParseOmitTestCase(ParserTestCase):
+ def runTest(self):
diff --git a/dev-python/pypeg2/metadata.xml b/dev-python/pypeg2/metadata.xml
new file mode 100644
index 00000000000..09eafda7457
--- /dev/null
+++ b/dev-python/pypeg2/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyPEG2</remote-id>
+ <remote-id type="bitbucket">fdik/pypeg</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pypeg2/pypeg2-2.15.1.ebuild b/dev-python/pypeg2/pypeg2-2.15.1.ebuild
new file mode 100644
index 00000000000..0dc8266d91d
--- /dev/null
+++ b/dev-python/pypeg2/pypeg2-2.15.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN=pyPEG2
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="An intrinsic PEG Parser-Interpreter for Python"
+HOMEPAGE="http://fdik.org/pyPEG/ https://bitbucket.org/fdik/pypeg/ https://pypi.python.org/pypi/pyPEG2"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/lxml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${P}-test.patch )
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/pypgsql/Manifest b/dev-python/pypgsql/Manifest
new file mode 100644
index 00000000000..4599a025d01
--- /dev/null
+++ b/dev-python/pypgsql/Manifest
@@ -0,0 +1 @@
+DIST pyPgSQL-2.5.1.tar.gz 152840 SHA256 498486f066f11a68f5b02a54ba5a008d01d507038c873bfd901c14d3f5ca18af SHA512 50fc6f9e44f17e116a9122ab010642850d6dcdcbecf8e0ee4c32182eadc593cde2b03aa3cc353cdcc5f79f6e4f7337e6b1250f3b98977b208a98aad282763ab3 WHIRLPOOL 55a21c648d8eeda53def823039f9021982b02ceaa0cac72384c113a1a2ce2a0fdccfa4697dad800d79adc161583cc1a1c281ad602483c7a43cf9952584176124
diff --git a/dev-python/pypgsql/metadata.xml b/dev-python/pypgsql/metadata.xml
new file mode 100644
index 00000000000..55c1d142df8
--- /dev/null
+++ b/dev-python/pypgsql/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pypgsql</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pypgsql/pypgsql-2.5.1-r1.ebuild b/dev-python/pypgsql/pypgsql-2.5.1-r1.ebuild
new file mode 100644
index 00000000000..5e7fd4651c6
--- /dev/null
+++ b/dev-python/pypgsql/pypgsql-2.5.1-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="pyPgSQL-${PV}"
+
+DESCRIPTION="Python Interface to PostgreSQL"
+HOMEPAGE="http://pypgsql.sourceforge.net/ http://pypi.python.org/pypi/pyPgSQL"
+SRC_URI="mirror://sourceforge/pypgsql/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~x86"
+IUSE="examples"
+
+DEPEND="dev-db/postgresql"
+RDEPEND="${DEPEND}
+ dev-python/egenix-mx-base[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pypgsql/pypgsql-2.5.1.ebuild b/dev-python/pypgsql/pypgsql-2.5.1.ebuild
new file mode 100644
index 00000000000..9ee38c06a85
--- /dev/null
+++ b/dev-python/pypgsql/pypgsql-2.5.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
+
+inherit distutils
+
+MY_P="pyPgSQL-${PV}"
+
+DESCRIPTION="Python Interface to PostgreSQL"
+HOMEPAGE="http://pypgsql.sourceforge.net/ http://pypi.python.org/pypi/pyPgSQL"
+SRC_URI="mirror://sourceforge/pypgsql/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 x86"
+IUSE=""
+
+DEPEND="dev-db/postgresql"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
+
+DOCS="Announce"
+PYTHON_MODNAME="pyPgSQL"
+
+src_install() {
+ distutils_src_install
+
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+}
diff --git a/dev-python/pyphen/Manifest b/dev-python/pyphen/Manifest
new file mode 100644
index 00000000000..da7e32c72ea
--- /dev/null
+++ b/dev-python/pyphen/Manifest
@@ -0,0 +1,2 @@
+DIST Pyphen-0.8.tar.gz 962586 SHA256 378169ce89b8d3b6a0b95bbfdedc9da8c428d6b7c98ff6498ff41c390702a21a SHA512 230ae11fa3aabba52c923a562284cbc9051c42aa8bc6336bf7e66a47db8974adb3fe136f605bac4cb8c5dee20e68181e6fb3b0c5726a35ab85d11ac5e30c537a WHIRLPOOL 6a7ce38c2d0ca801d58464de8d2c184b28762ecb7b469494675ae87384bbf76cd333d4e3c7aeb32c75cc37c40d5169bb8dd833e3d979e421475ebd6ec5dc8092
+DIST Pyphen-0.9.1.tar.gz 1020062 SHA256 f518012a3296689b13f80a879ed75d1f876e6d9c09f982b114e78847407aa515 SHA512 b3fd71aab1a85d7a8a482907f5bffec1179a29ec3cbeef02a59d8ec975b57d3d667b47c7014b27ee08edeef5d652fcc2d091062e67e4ff2897cd37bcd93ad174 WHIRLPOOL e68bbf476880fd7c40d7b762e684835b51396a6c005d310faef51da6fe89df3c8fb1d98c5897de102248232ec0152c1a2687ff941c9f3391df646c2439195e1b
diff --git a/dev-python/pyphen/metadata.xml b/dev-python/pyphen/metadata.xml
new file mode 100644
index 00000000000..9b0f6f22e9a
--- /dev/null
+++ b/dev-python/pyphen/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Pyphen</remote-id>
+ <remote-id type="github">Kozea/Pyphen</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyphen/pyphen-0.8.ebuild b/dev-python/pyphen/pyphen-0.8.ebuild
new file mode 100644
index 00000000000..31fe2cc350b
--- /dev/null
+++ b/dev-python/pyphen/pyphen-0.8.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for hyphenation using hunspell dictionaries"
+MY_PN="Pyphen"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/Kozea/Pyphen"
+
+LICENSE="GPL-2+ LGPL-2+ MPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pyphen/pyphen-0.9.1.ebuild b/dev-python/pyphen/pyphen-0.9.1.ebuild
new file mode 100644
index 00000000000..d8d4f9661d1
--- /dev/null
+++ b/dev-python/pyphen/pyphen-0.9.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for hyphenation using hunspell dictionaries"
+MY_PN="Pyphen"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/Kozea/Pyphen"
+
+LICENSE="GPL-2+ LGPL-2+ MPL-1.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pyplusplus/Manifest b/dev-python/pyplusplus/Manifest
new file mode 100644
index 00000000000..040daa34338
--- /dev/null
+++ b/dev-python/pyplusplus/Manifest
@@ -0,0 +1,2 @@
+DIST pyplusplus-1.0.0.zip 7886416 SHA256 dc749514642846d85de148735b44c5f5e03dc0b62feceb0727698f4069d3c963 SHA512 04a9d6f06d8d22da9ac3b4ec1efdf001f0e4a2453ff5d70d6a15b808d7247ace630c4064ab2476a28ed3dede9cdb867c0650810a0c72a0a6474912fc7ef65812 WHIRLPOOL ab12d4c2432155226e66081f72007406c71da11aae5f7e2e4bf80e3e28680cef5ec0370a8fc442f86ed14793bc340f85d203903f348982d355f48f4a52c4f89a
+DIST pyplusplus-1.0.0_p20131206.tar.xz 2984232 SHA256 bcec544fc4520a3f37dc672dfb5c3611ed973ac34912eff5f5c67267680154ba SHA512 5cdf158477d6b93d1b579383657241c48d59ac17fd890016ac68d3b9ca8453726dabb8a7913f6139e24e93c691ead85adb99a6b20aa031603c6471df04fcfea6 WHIRLPOOL ef8d5d193ab334a82a3b364bf525efd3fd588e07993de525cad705aa175041291ffabfd115f8863952a00d9424a802f4c4cb5d09c3837ef67c860d821c212730
diff --git a/dev-python/pyplusplus/files/pyplusplus-1.0.0_p20131206-numpy.patch b/dev-python/pyplusplus/files/pyplusplus-1.0.0_p20131206-numpy.patch
new file mode 100644
index 00000000000..bf33f381094
--- /dev/null
+++ b/dev-python/pyplusplus/files/pyplusplus-1.0.0_p20131206-numpy.patch
@@ -0,0 +1,179 @@
+generate code for Boost.NumPy[1] to accelerate c 1D array handling
+
+Upstream: https://sourceforge.net/p/pygccxml/patches/2/
+
+Index: pyplusplus/code_creators/__init__.py
+===================================================================
+--- pyplusplus/code_creators/__init__.py.orig
++++ pyplusplus/code_creators/__init__.py
+@@ -110,6 +110,8 @@ from member_variable import bit_field_t
+ from member_variable import bit_field_wrapper_t
+ from member_variable import array_mv_t
+ from member_variable import array_mv_wrapper_t
++from member_variable import array_numpy_t
++from member_variable import array_numpy_wrapper_t
+ from member_variable import mem_var_ref_t
+ from member_variable import mem_var_ref_wrapper_t
+ from member_variable import member_variable_addressof_t
+Index: pyplusplus/code_creators/code_creator.py
+===================================================================
+--- pyplusplus/code_creators/code_creator.py.orig
++++ pyplusplus/code_creators/code_creator.py
+@@ -126,6 +126,7 @@ class code_creator_t(object):
+ files = []
+ if self.code_generator == self.CODE_GENERATOR_TYPES.BOOST_PYTHON:
+ files.append( "boost/python.hpp" )
++ files.append( "boost/numpy.hpp" )
+ files.append( code_repository.named_tuple.file_name )
+ else:
+ files.append( code_repository.ctypes_utils.file_name )
+Index: pyplusplus/code_creators/member_variable.py
+===================================================================
+--- pyplusplus/code_creators/member_variable.py.orig
++++ pyplusplus/code_creators/member_variable.py
+@@ -507,7 +507,95 @@ class array_mv_wrapper_t( code_creator.c
+ def _get_system_files_impl( self ):
+ return [code_repository.array_1.file_name]
+
++class array_numpy_t( member_variable_base_t ):
++ """
++ Creates boost.python code that exposes array member variable via boost.numpy.
++ """
++ def __init__(self, variable, wrapper ):
++ member_variable_base_t.__init__( self, variable=variable, wrapper=wrapper )
++ self.works_on_instance = False
++
++ def _create_body( self ):
++ answer = []
++ doc = ''
++ if self.declaration.type_qualifiers.has_static:
++ answer.append( self.parent.class_var_name + '.add_static_property' )
++ else:
++ if self.documentation:
++ doc = self.documentation
++ answer.append( self.parent.class_var_name + '.add_property' )
++ answer.append('( "%s", &%s );' % (self.declaration.name, self.wrapper.wrapper_creator_full_name ))
++ if doc:
++ answer.append( os.linesep )
++ answer.append( self.PARAM_SEPARATOR )
++ answer.append( doc )
++ return ''.join( answer )
++
++ def _create_impl( self ):
++ answer = []
++ answer.append( '{ //%s, type=%s' % ( self.declaration, self.declaration.type ) )
++ answer.append( os.linesep )
++ answer.append( self.indent( self._create_body() ) )
++ answer.append( os.linesep )
++ answer.append( '}' )
++ return ''.join( answer )
++
++ def _get_system_files_impl( self ):
++ return []
+
++class array_numpy_wrapper_t( code_creator.code_creator_t
++ , declaration_based.declaration_based_t ):
++ """registers array class"""
++ def __init__(self, variable ):
++ code_creator.code_creator_t.__init__( self )
++ declaration_based.declaration_based_t.__init__( self, declaration=variable)
++ self.py_class_type = declarations.reference_t(declarations.const_t(declarations.dummy_type_t( "bp::object" )))
++
++ @property
++ def wrapped_class_type( self ):
++ wrapped_cls_type = declarations.declarated_t( self.declaration.parent )
++ if declarations.is_const( self.declaration.type ):
++ wrapped_cls_type = declarations.const_t( wrapped_cls_type )
++ return declarations.reference_t( wrapped_cls_type )
++
++ @property
++ def wrapper_creator_name(self):
++ return '_'.join( ['pyplusplus', self.declaration.name, 'wrapper'] )
++
++ @property
++ def wrapper_creator_full_name(self):
++ return '::'.join( [self.parent.full_name, self.wrapper_creator_name] )
++
++ def _create_impl( self ):
++ if self.declaration.type_qualifiers.has_static:
++ tmpl = [ "static %(wrapper_type)s %(wrapper_creator_name)s( ){" ]
++ tmpl.append( self.indent( "return bn::from_data( %(parent_class_type)s::%(mem_var_ref)s," ) )
++ else:
++ tmpl = [ "static %(wrapper_type)s %(wrapper_creator_name)s( %(py_class_type)s inst ){" ]
++ tmpl.append( self.indent( "return bn::from_data(bp::extract< %(wrapped_class_type)s >(inst)().%(mem_var_ref)s," ) )
++ owner = "bp::object()"
++
++ tmpl.append( self.indent(self.indent("bn::dtype::get_builtin< %(item_type)s >(), bp::make_tuple(%(array_size)s),")) )
++ tmpl.append( self.indent(self.indent("bp::make_tuple(sizeof(%(item_type)s)), %(owner)s);")) )
++ tmpl.append( "}" )
++
++ tmpl = os.linesep.join( tmpl )
++
++ return tmpl % {
++ 'wrapper_type' : "bn::ndarray"
++ , 'parent_class_type' : self.parent.declaration.partial_decl_string
++ , 'wrapper_creator_name' : self.wrapper_creator_name
++ , 'wrapped_class_type' : self.wrapped_class_type.decl_string
++ , 'mem_var_ref' : self.declaration.name
++ , 'py_class_type' : self.py_class_type.decl_string
++ , 'item_type' : declarations.array_item_type( self.declaration.type ).decl_string
++ , 'array_size': declarations.array_size( self.declaration.type )
++ , 'owner': owner
++ }
++
++ def _get_system_files_impl( self ):
++ return []
++
+ class mem_var_ref_t( member_variable_base_t ):
+ """
+ creates get/set accessors for class member variable, that has type reference.
+Index: pyplusplus/code_creators/module_body.py
+===================================================================
+--- pyplusplus/code_creators/module_body.py.orig
++++ pyplusplus/code_creators/module_body.py
+@@ -18,6 +18,7 @@ class module_body_t(compound.compound_t)
+ def _create_impl(self):
+ result = []
+ result.append( "BOOST_PYTHON_MODULE(%s){" % self.name )
++ result.append( "bn::initialize();" )
+ result.append( compound.compound_t.create_internal_code( self.creators ) )
+ result.append( "}" )
+ return os.linesep.join( result )
+Index: pyplusplus/creators_factory/bpcreator.py
+===================================================================
+--- pyplusplus/creators_factory/bpcreator.py.orig
++++ pyplusplus/creators_factory/bpcreator.py
+@@ -76,10 +76,14 @@ class bpcreator_t( declarations.decl_vis
+ global_ns = declarations.get_global_namespace(decls)
+
+ self.__extmodule = code_creators.bpmodule_t( global_ns )
+- if boost_python_ns_name:
+- bp_ns_alias = code_creators.namespace_alias_t( alias=boost_python_ns_name
+- , full_namespace_name='::boost::python' )
+- self.__extmodule.adopt_creator( bp_ns_alias )
++
++ # alias of boost::numpy is hard-coded here, as it will be merged into boost::python.
++ for ns_name, full_ns_name in {boost_python_ns_name: '::boost::python'
++ , 'bn': '::boost::numpy'}.iteritems():
++ if ns_name:
++ ns_alias = code_creators.namespace_alias_t( alias=ns_name
++ , full_namespace_name=full_ns_name )
++ self.__extmodule.adopt_creator( ns_alias )
+
+ self.__module_body = code_creators.module_body_t( name=module_name )
+
+@@ -723,8 +727,12 @@ class bpcreator_t( declarations.decl_vis
+ wrapper = code_creators.bit_field_wrapper_t( variable=self.curr_decl )
+ maker = code_creators.bit_field_t( variable=self.curr_decl, wrapper=wrapper )
+ elif declarations.is_array( self.curr_decl.type ):
+- wrapper = code_creators.array_mv_wrapper_t( variable=self.curr_decl )
+- maker = code_creators.array_mv_t( variable=self.curr_decl, wrapper=wrapper )
++ if declarations.is_arithmetic(declarations.array_item_type( self.curr_decl.type )):
++ wrapper = code_creators.array_numpy_wrapper_t( variable=self.curr_decl )
++ maker = code_creators.array_numpy_t( variable=self.curr_decl, wrapper=wrapper )
++ else:
++ wrapper = code_creators.array_mv_wrapper_t( variable=self.curr_decl )
++ maker = code_creators.array_mv_t( variable=self.curr_decl, wrapper=wrapper )
+ elif declarations.is_pointer( self.curr_decl.type ):
+ wrapper = code_creators.member_variable_wrapper_t( variable=self.curr_decl )
+ maker = code_creators.member_variable_t( variable=self.curr_decl, wrapper=wrapper )
diff --git a/dev-python/pyplusplus/metadata.xml b/dev-python/pyplusplus/metadata.xml
new file mode 100644
index 00000000000..d3722f45aca
--- /dev/null
+++ b/dev-python/pyplusplus/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>heroxbd@gentoo.org</email>
+ <name>Benda Xu</name>
+ </maintainer>
+ <longdescription>pyplusplus is an object-oriented framework for creating a code generator for boost.python library.</longdescription>
+ <use>
+ <flag name="indexing"> Install indexing_suite_v2 to enhance boost python
+ </flag>
+ <flag name="numpy"> Generate code for <pkg>dev-libs/boost-numpy </pkg> to accelerate arrays
+ </flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pyplusplus/pyplusplus-1.0.0-r1.ebuild b/dev-python/pyplusplus/pyplusplus-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..abe35c58e4d
--- /dev/null
+++ b/dev-python/pyplusplus/pyplusplus-1.0.0-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Object-oriented framework for creating a code generator for Boost.Python library"
+HOMEPAGE="http://www.language-binding.net/"
+SRC_URI="mirror://sourceforge/pygccxml/${P}.zip"
+
+LICENSE="freedist Boost-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples +indexing"
+
+DEPEND="app-arch/unzip"
+RDEPEND="=dev-python/pygccxml-1.0.0[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/Py++-${PV}
+
+python_test() {
+ "${PYTHON}" unittests/test_all.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/documentation/apidocs/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ if use indexing; then
+ insinto /usr/include/boost/python/suite/indexing
+ doins indexing_suite_v2/indexing/*.hpp
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyplusplus/pyplusplus-1.0.0_p20131206.ebuild b/dev-python/pyplusplus/pyplusplus-1.0.0_p20131206.ebuild
new file mode 100644
index 00000000000..1091ce0a1b0
--- /dev/null
+++ b/dev-python/pyplusplus/pyplusplus-1.0.0_p20131206.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Object-oriented framework for creating a code generator for Boost.Python library"
+HOMEPAGE="http://www.language-binding.net/"
+
+if [[ ${PV} == 9999 ]]; then
+ ESVN_REPO_URI="http://svn.code.sf.net/p/pygccxml/svn/${PN}_dev"
+ inherit subversion
+ S=${WORKDIR}/${PN}_dev
+else
+ SRC_URI="http://dev.gentoo.org/~heroxbd/${P}.tar.xz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="freedist Boost-1.0"
+SLOT="0"
+IUSE="examples numpy"
+
+DEPEND="app-arch/unzip
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )"
+RDEPEND="dev-python/pygccxml[${PYTHON_USEDEP}]"
+
+src_prepare() {
+ use numpy && epatch --binary "${FILESDIR}"/${PN}-1.0.0_p20131206-numpy.patch
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ "${PYTHON}" unittests/test_all.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyplusplus/pyplusplus-9999.ebuild b/dev-python/pyplusplus/pyplusplus-9999.ebuild
new file mode 100644
index 00000000000..87f2b63d539
--- /dev/null
+++ b/dev-python/pyplusplus/pyplusplus-9999.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Object-oriented framework for creating a code generator for Boost.Python library"
+HOMEPAGE="http://www.language-binding.net/"
+
+if [[ ${PV} == 9999 ]]; then
+ ESVN_REPO_URI="http://svn.code.sf.net/p/pygccxml/svn/${PN}_dev"
+ inherit subversion
+ S=${WORKDIR}/${PN}_dev
+else
+ SRC_URI="http://dev.gentoo.org/~heroxbd/${P}.tar.xz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="freedist Boost-1.0"
+SLOT="0"
+IUSE="examples numpy"
+
+DEPEND="app-arch/unzip
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )"
+RDEPEND="dev-python/pygccxml[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" unittests/test_all.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyprof2calltree/Manifest b/dev-python/pyprof2calltree/Manifest
new file mode 100644
index 00000000000..466a34f65f7
--- /dev/null
+++ b/dev-python/pyprof2calltree/Manifest
@@ -0,0 +1,2 @@
+DIST pyprof2calltree-1.3.1.tar.gz 6565 SHA256 3afdd4e6ba4d5d02fcf4815f9eebb816c0f74ba936ae34a7e264f26739be1f89 SHA512 ba939fe9ab28066067dc0989221acbf8d5c84b5cdb68850fd90b4579f8ab812883561447ae61cc896b5e461591ba5b1e40e666e21f8a824071b9c98d80e583a9 WHIRLPOOL 1120d15deb1409eb70d9af1483fa0392be124f70848b86779dea1ef5753cef03a3c82b83bc692a1d2ea1e848f0045206d85d2af9bb99b5c429946f8f9c1a35ac
+DIST pyprof2calltree-1.3.2.tar.gz 6609 SHA256 28eac89262d0edd86ee2574d24d1840cbca2d4ed6a1de7e1d8fc05f30ea5a22b SHA512 e85c5a21fe52b246ee6080f59e2ff115b43e3ab634e2842aff0d493b8b996105e0c1698e049ae7d11ea53c1f1fd601ef5f12c6fba62dcea28ddff23ec61a2736 WHIRLPOOL b132fe3179bbf7e3dc999fe3f8da1fdb298b515c302e76de4d96cff4392966875df8180aba66b535a122c8521d22755efbc9f46a133f8a758cce0a230d943bc3
diff --git a/dev-python/pyprof2calltree/metadata.xml b/dev-python/pyprof2calltree/metadata.xml
new file mode 100644
index 00000000000..603d5e5f4f9
--- /dev/null
+++ b/dev-python/pyprof2calltree/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyprof2calltree</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyprof2calltree/pyprof2calltree-1.3.1.ebuild b/dev-python/pyprof2calltree/pyprof2calltree-1.3.1.ebuild
new file mode 100644
index 00000000000..429b3d83f4d
--- /dev/null
+++ b/dev-python/pyprof2calltree/pyprof2calltree-1.3.1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="convert python profile data to kcachegrind calltree form"
+HOMEPAGE="http://pypi.python.org/pypi/pyprof2calltree/"
+SRC_URI="mirror://pypi/p/${PN}/${PF}.tar.gz"
+IUSE=
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pyprof2calltree/pyprof2calltree-1.3.2.ebuild b/dev-python/pyprof2calltree/pyprof2calltree-1.3.2.ebuild
new file mode 100644
index 00000000000..429b3d83f4d
--- /dev/null
+++ b/dev-python/pyprof2calltree/pyprof2calltree-1.3.2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="convert python profile data to kcachegrind calltree form"
+HOMEPAGE="http://pypi.python.org/pypi/pyprof2calltree/"
+SRC_URI="mirror://pypi/p/${PN}/${PF}.tar.gz"
+IUSE=
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pyproj/Manifest b/dev-python/pyproj/Manifest
new file mode 100644
index 00000000000..856c3e70c25
--- /dev/null
+++ b/dev-python/pyproj/Manifest
@@ -0,0 +1,2 @@
+DIST pyproj-1.9.3.tar.gz 2687498 SHA256 912ed86c5e407f091d0f3d076594af4fb569e27c68199b7d71651edd522aaa0c SHA512 a365da012bf7b9adc8069896bdeabf88ff3d260b643e49b8a74edccc3b65aab10ec96116353fbb45c73ce1027c9b4e80aae566c6b28e149110b16cd8405cda30 WHIRLPOOL b6008b4879722e6e6ce82fbda22a5d8f57e6484f74d2607c19087130f833188ee76d1bc40ffd205babb25b9e7ea983c80bc1bd7555dd83f2473f2950421e7c62
+DIST pyproj-1.9.4.tar.gz 7838454 SHA256 71b4d8c52d781e2b4afe2d3609e9d700cb631ddbf51060bc702644733cc70869 SHA512 96b118e75ba8360ca56176631c44567c7b6596f98189a99bfbdc2d0f8bff1bba814a86d66ac1c54964951a3534c2a5cfb54a0fc4d8eda52c77069a8b64f8db3a WHIRLPOOL 750f466566aab3d2edb155407f37efc7f514901bd782b5be589f1c788059c81c8e17e519d53410be169cec971aa3524268bd86e08f9f90a1e2b742343f6b0ae2
diff --git a/dev-python/pyproj/metadata.xml b/dev-python/pyproj/metadata.xml
new file mode 100644
index 00000000000..60cafbbd17f
--- /dev/null
+++ b/dev-python/pyproj/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">pyproj</remote-id>
+ <remote-id type="pypi">pyproj</remote-id>
+ <remote-id type="github">jswhit/pyproj</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyproj/pyproj-1.9.3-r1.ebuild b/dev-python/pyproj/pyproj-1.9.3-r1.ebuild
new file mode 100644
index 00000000000..f563b867855
--- /dev/null
+++ b/dev-python/pyproj/pyproj-1.9.3-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to PROJ.4 library"
+HOMEPAGE="http://code.google.com/p/pyproj/ http://pypi.python.org/pypi/pyproj"
+SRC_URI="http://pyproj.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="doc"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyproj/pyproj-1.9.4.ebuild b/dev-python/pyproj/pyproj-1.9.4.ebuild
new file mode 100644
index 00000000000..a1e47073bfd
--- /dev/null
+++ b/dev-python/pyproj/pyproj-1.9.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to PROJ.4 library"
+HOMEPAGE="http://github.com/jswhit/pyproj"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="doc"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+python_test() {
+ einfo "Testruns do not have regular unittest type tests, instead for test.py,"
+ einfo "the output need be compared with a separate file, sample.out."
+ "${PYTHON}" test/test.py || die
+
+ einfo ""; einfo "Now the file test2.py is run to test pickling"; einfo ""
+ "${PYTHON}" test/test2.py || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyprotocols/Manifest b/dev-python/pyprotocols/Manifest
new file mode 100644
index 00000000000..d4320d036cc
--- /dev/null
+++ b/dev-python/pyprotocols/Manifest
@@ -0,0 +1 @@
+DIST PyProtocols-1.0a0dev_r2306.tar.gz 218555 SHA256 55241280fdb5c9a00e69c51e0fca2d76214d741843753f00c73bf78ea09db284 SHA512 1f18be9548ae29b6111dccd158f5706f3a1ed7074152e9ef2e0d17caaad2227d3f613b50b602b3b1d47b5db7f53e583fce4e06b3e23916ac0daf7a92bcd66ccc WHIRLPOOL 150bedb9f3f531104efb30bc7c49f1dbfbb6bdde32bb706273c8f0c2513e951fa80bf992b4f58e151185ebfaf26df70aecd5b84e1ba55cf907ee78e9c5788f65
diff --git a/dev-python/pyprotocols/files/SkipTests.patch b/dev-python/pyprotocols/files/SkipTests.patch
new file mode 100644
index 00000000000..7e362678fe4
--- /dev/null
+++ b/dev-python/pyprotocols/files/SkipTests.patch
@@ -0,0 +1,26 @@
+diff -ur PyProtocols.orig/src/protocols/tests/__init__.py PyProtocols/src/protocols/tests/__init__.py
+--- src/protocols/tests/__init__.py 2007-04-25 12:15:46.000000000 +0800
++++ src/protocols/tests/__init__.py 2013-04-10 19:22:28.720647271 +0800
+@@ -256,22 +256,6 @@
+ makeSuite(GenerationTests,'check'),
+ ]
+
+- try:
+- import zope.interface
+- except ImportError:
+- pass
+- else:
+- from protocols.tests import test_zope
+- tests.append( test_zope.test_suite() )
+-
+- try:
+- from twisted.python.components import Interface
+- except (ImportError, SystemError):
+- pass
+- else:
+- from protocols.tests import test_twisted
+- tests.append( test_twisted.test_suite() )
+-
+ return TestSuite(
+ tests
+ )
diff --git a/dev-python/pyprotocols/metadata.xml b/dev-python/pyprotocols/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyprotocols/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyprotocols/pyprotocols-1.0_pre2306-r1.ebuild b/dev-python/pyprotocols/pyprotocols-1.0_pre2306-r1.ebuild
new file mode 100644
index 00000000000..6868e3adee7
--- /dev/null
+++ b/dev-python/pyprotocols/pyprotocols-1.0_pre2306-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic eutils
+
+MY_PN="PyProtocols"
+MY_P="${MY_PN}-${PV/_pre/a0dev_r}"
+
+DESCRIPTION="Extends the PEP 246 adapt function with a new 'declaration API'"
+HOMEPAGE="http://peak.telecommunity.com/PyProtocols.html http://pypi.python.org/pypi/PyProtocols \
+ http://svn.eby-sarna.com/PyProtocols/"
+SRC_URI="mirror://gentoo/${MY_P}.tar.gz"
+
+LICENSE="|| ( PSF-2 ZPL )"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-python/decoratortools-1.4[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ >=dev-python/pyrex-0.9.9[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_PN}"
+
+DOCS=( CHANGES.txt README.txt UPGRADING.txt )
+
+python_prepare_all() {
+ # Rm peripheral & rogue failing tests
+ rm -f src//protocols/tests/{test_twisted.py,test_zope.py} || die
+ epatch "${FILESDIR}"/SkipTests.patch
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_test() {
+ esetup.py test && einfo "Tests passed under ${EPYTHON}" \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/pyptlib/Manifest b/dev-python/pyptlib/Manifest
new file mode 100644
index 00000000000..68b3a3ddc0c
--- /dev/null
+++ b/dev-python/pyptlib/Manifest
@@ -0,0 +1 @@
+DIST pyptlib-0.0.6.tar.gz 239316 SHA256 b98472e3d9e8f4689d3913ca8f89afa5e6cc5383dcd8686987606166f9dac607 SHA512 f54ee3ae51f2d6884b0157f8cec3e9af267f926e50728478b961551d069fc6c4a2840d59e74d5b0f93b4bb305d9f91f31b91fa4425d1931688ffc5783f6192f9 WHIRLPOOL 1144479085e6f9a762638e6b0adee886b7446362233e246a494523ef53afeb394f6d00db0d5cb425491ae1f2e2db60499c05d03a162079e6357deb224bb938ef
diff --git a/dev-python/pyptlib/metadata.xml b/dev-python/pyptlib/metadata.xml
new file mode 100644
index 00000000000..d59896409bc
--- /dev/null
+++ b/dev-python/pyptlib/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyptlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyptlib/pyptlib-0.0.6.ebuild b/dev-python/pyptlib/pyptlib-0.0.6.ebuild
new file mode 100644
index 00000000000..6f792c38696
--- /dev/null
+++ b/dev-python/pyptlib/pyptlib-0.0.6.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for tor's pluggable transport managed-proxy protocol"
+HOMEPAGE="https://gitweb.torproject.org/pluggable-transports/pyptlib.git"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DOCS=( README.rst TODO )
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "tests failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pypy-bin/Manifest b/dev-python/pypy-bin/Manifest
new file mode 100644
index 00000000000..ea0f28bd8ea
--- /dev/null
+++ b/dev-python/pypy-bin/Manifest
@@ -0,0 +1,33 @@
+DIST pypy-2.3.1-src.tar.bz2 15225332 SHA256 3fd10d97c0177c33ed358a78eb26f5bf1f91b266af853564b1a9d8c310a1e439 SHA512 86aab86c5f413cdd6a56680915605de5c1416255b43a8dce1b4dcf8f1febdb3275076a4a9c7de30002387d59e4171a52da2528436eb205d8d947de7edd049c65 WHIRLPOOL c78d41240f1803d9461f797fd0ef647a40a6990a4e3a504e80a0eaaf460d052bb60fe6240cacdb3ee8737500c9c7f418b1d55c619d01ac7b73aace3d82157aa6
+DIST pypy-2.4.0-src.tar.bz2 15495214 SHA256 38810007aee4885ca0703b566db6594dd7649adaaa287df7a1012f10e067740f SHA512 91b41ed80a6ff0d7b2b134a7802f098de35ffd2068dc3e477d27b0bc821c6d329eb8bcad4db4a5ff9ff429830d4abfbeb435a2a2d2d9bbc2c36f2d21af0b2e0c WHIRLPOOL affb14b805b2dcb8b579dd421bfb8276e80d3b31cea41bf57ad5dd9260e2e27d838b0303e4a3af5ca38b0b4f08ac88b142d6f1db20753bec6f8cbfdfc482099b
+DIST pypy-2.5.1-src.tar.bz2 16740876 SHA256 ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a SHA512 ac4cab47566d7d4e1a293a680e0dffa301c99a8329c2e68f645f186c0266cbe8f045a03e392c0cc2112a16178037cd978b7867ad073bf5dd957dd19f4c818067 WHIRLPOOL 6f16c4090780081dfe1d4642186262c66d4ac1a4b3b8311e573bfa6029eb7aac0483b3e48cad5ce03879391a4e316c0186d33fac5e86d0024ff20cc6d4dc0dd3
+DIST pypy-2.6.0-src.tar.bz2 16858400 SHA256 9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9 SHA512 82a6a44c0c551a1291215394610e5331cf83216b38ac9f1a79a3eab53ba2933b121c3154b58cead814c73a1da1fc95d895324bb0c43e8e0429438b0dea527cc4 WHIRLPOOL e536ff5d3b393c6834fd721f383318b5dcef79046f475b0f1fe737c67c56e8769cabc0a35f553da5dc475a255c5711de01bd6d42e541cabbab3b9e30f20c9a5c
+DIST pypy-bin-2.3.1-r1-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 10724632 SHA256 e897fce8057d6ffd8a8f66ddd3736d82c4edae9e30bf0622b5695c083a5f249d SHA512 b3b9ccb63bf2922c734874d745a40c49d5af1e9d9a3a1188c31040fef20faf4fdc00ac1be90ed35848e09bf86dfe5552a720b7c5c4d845777fc85479b515dac6 WHIRLPOOL 583864f5923dc0e0ee59e2397d1ed0f7ecd027605470bb2462f70b40338167f932a235fc40bf0b7349d9facdb7b1a07d86ff46ccc296acc3bb0f21cf7f8709e9
+DIST pypy-bin-2.3.1-r1-amd64+bzip2+jit+ncurses.tar.xz 12234132 SHA256 2169569b4f85869607d4ba7fa57852f954815a9bbb344da4fa842fbc59e4081a SHA512 7484fa22d79dfb1970c926fa27579184f3a38548d8072c49f239f31a8dc5549786776c27c0aa28583736f144e16ea0edb6fb8be81c0e394af783c6916e775cc1 WHIRLPOOL 3b1124526531cbf86e503933e8294ad7d11cb0993c1d103c59ced46830323e7e7c540194a13880d46b730e7b6498b1b48a1a902766948d28379ccf1020f05f35
+DIST pypy-bin-2.3.1-r1-amd64+bzip2+ncurses.tar.xz 6893836 SHA256 e547e1c5674e53e955373f44ab2ef7ef81f0f3f27240070e634c72b666428456 SHA512 5cb35f6a88aea9e92a8bbbdd873235e8b0b5bcce52d749dd80f68ddb7127eae27122ece74e13c4a2360a0dd65449fa7207a5279f0195732946f7ce8f8aa54142 WHIRLPOOL 4eaa864a456fc29a3731801901f93b62b559eb1bd5867f790840f8f8de1c98fa63bc17bd3dec0f9de82d8f639c2ecf8d3831555503c0089a727ff820c525b24a
+DIST pypy-bin-2.3.1-r1-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 9114380 SHA256 9e30512444e889236d2bf762a2378da4a79e9b7c055e525a786380fa6fe391c4 SHA512 1175552bd4abde9bc71ef212c3f817f12e5c1815afe02b43d2834e2ae1cdc358d90701f8db667feabdd13009a955a12fabbe88fa441c12cc02fba4757c84056d WHIRLPOOL db927c10627fade821891fda8333ebcb3b0ead64df6bb38ec7482a5aaa8eff3a2b3b4ee0734c541431dcc7492f24424f42a54d48dc3bbd2d26d669ada776d626
+DIST pypy-bin-2.3.1-r1-x86+bzip2+jit+ncurses+sse2.tar.xz 10074824 SHA256 1a15019bf2c1bff57833c0061e2074e48222142919d32b5e8349f5fc2d2a7dc9 SHA512 a99e880e08ecb0cb802ad78f4c6b20017710875503a1fb73bc3e8c5a7710bbbe1d2d3f57f129b4e815fb9576a5dd92731eccd485915f9f036a227aeaecc8a270 WHIRLPOOL 193e0b219e7398a4937d092684447d633dfc66dfbff5c174280bed6b0e31d4230c6c9847de6fed0ddebfa96e9e76aa5edffb0899542c0cabfc688ad24b9c24ce
+DIST pypy-bin-2.3.1-r1-x86+bzip2+ncurses+sse2.tar.xz 5996472 SHA256 cefe34845216e5d7f5a51e318c5449aad867987044849e61fda0ce5486e68c5f SHA512 df07645f87d29b75da9f9d2213922562b4059ebad23da43d8d0eecc3e5fb95feef990e76e54c2dd86712a253db41d64a70d464f9ff7d8e1fa72aae648c888b92 WHIRLPOOL d806f691fc0200b9d470e6508c4217203892ccc7f2f34045952ce111b2a8ec2027d14e6030cee22c3681817b8f6d66ada49fdb62b32a583751494fd605b08dc5
+DIST pypy-bin-2.3.1-r1-x86+bzip2+ncurses.tar.xz 6025904 SHA256 e8aa0fa467daca78cb0231339d3267ecc396faf7b7b992b160bb65f76b65ba19 SHA512 291d11f2cf9115601dcec95876975d694cffe6b8d156ef91463d17d0de26b13d9ad0d773fdf4f126a9a24fc5fe41dc254df36a51e0f1dd8c1c5fa81155d128f2 WHIRLPOOL 98a8e68fdfea8be8efdd2445aa449f3d32731eb6ab2727454e4c0474025316ce43dfbd0bb2fab3cff698401994c76444133e95df3590894cc733f97f3f541539
+DIST pypy-bin-2.4.0-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 10238896 SHA256 158ebb6bef9e77c0ea84ade4449717a608f3e2378b18a198a15187f49f240262 SHA512 3baa4387336ee343949ff7a04de236ef6da1446efa9ae565a61abd6d5d3915d54b51d91d4958b8c1ec61d894943804ea1158c0618349fc4c9e52a8956a4afa56 WHIRLPOOL a2803b6f42a35b74761af918be7c33a460bac246fdaba3c1ca34b3dcff6bbe1f68a1a4299123ce167664516b7e29bc8450cdb6be196313657f2178259b3783a6
+DIST pypy-bin-2.4.0-amd64+bzip2+jit+ncurses.tar.xz 11771744 SHA256 4a05b8819486693c83af7cf45092926526f5511615b6d4181f72e11ac240f263 SHA512 d8e5c1c1721935fe73254fc3037176ad3c71d96acd55d8bcd15bc7b317a72261b7e08a6ae28cb62bfb2203f06b13839670b5da3e435cd87c0f65fea259be2732 WHIRLPOOL 496f244487146e1acd34981b3ec4af81590b136b884f0cb698fc35698cadfad1e278ad627563fd643294c49e1ea27f05c180dd05b3f6d2d4079527775ef4ec90
+DIST pypy-bin-2.4.0-amd64+bzip2+ncurses.tar.xz 6596304 SHA256 f2f2fa539ec1f3fd048bd81bb5fa54f260980fe9689c578f134f39ecf00aa027 SHA512 e8603ba08a11c1cbd9d3af824aca1c4ae7b61d46879b398d5d18428bc438c2e0bd0fd9ecd83f100715b635968eee3805db18a42ab62fbc10d8cd0186b6998431 WHIRLPOOL 2758fc778a1f9e5db966aa1e5a47a8da8c1fbb5882aa74ba9709c23e1b3a546c826de8ea4ba83e5baae262a51636d7201445102c97d4c749a98805a46aeac9ba
+DIST pypy-bin-2.4.0-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 8596232 SHA256 3fded027e8e70fc11ec793b99ec18bde7893c54122492e5599fea59049b3a5fb SHA512 bac9647580cbee99e327d436a02c038a621aa6f4b2635b3a392218c76a0690bb9a8f3a3f79520c716cffd30a613874a1104114c287e130e2c0eadb5f3a5b05bd WHIRLPOOL 00f646d55093ea07abfe1f8ac9e354f8bb39a2dd3fe2925436583ad6209e6da0c34476b29832de4274dfe516d70db5ea6345e23532925ed09360464d4405b926
+DIST pypy-bin-2.4.0-x86+bzip2+jit+ncurses+sse2.tar.xz 9511800 SHA256 5178ce53d9da16a0d989797dd909677aaec4a8d4a936a4d27d8be1ea248489d9 SHA512 4910c72ea0b0849245657772eebfc598779f4a3eb077cec7d6e735c8aae3564ab064f9462fb0576f18792df2459d6c8f372578803497a83e4525671ffe0f8054 WHIRLPOOL 1ae421817e5f5f30ae7e9c446b4afe024de7d271a4fd8185002240e942c96dae93d45e80f6fe794dcb4a1c542a5b2ba76ab1ee81702e501de53861901ba7092b
+DIST pypy-bin-2.4.0-x86+bzip2+ncurses+sse2.tar.xz 5655980 SHA256 fcfbd71b903e9c6a26cd6590090d8d0c2f8c507e9f4650f7972f36a8ef86fcc6 SHA512 45d71f2d785a65091c9f25376bcb2f7f7e02cf1f00111fcb4b0a3bf0fc5e56947be7f66f5281744de31424f9e0b7249523a4bcd5fec7bf4f3c829b66598b02af WHIRLPOOL a9fef84296f9e77062b0e0cb17537615a02f3ba7d0ed804cf63cce9baf7c1ab843b326301bde5e5a33744b716ea0efd4619e9ba55c0387acfa1622aa11b875de
+DIST pypy-bin-2.4.0-x86+bzip2+ncurses.tar.xz 5634780 SHA256 2d0494fdab270c26efbe84fa42118b822b3fc021940e2d260a5c39938dcbed8d SHA512 672468e436646ed0334352addeda824ddd76a4cf1ad46231983aec7b697ae6ef2cc2b9072ae5149b4b0987b06caade65ab8bf67ca1dea10219030a9b3fd5b4b4 WHIRLPOOL 003bf4ef085b01c6625f43d34bdcfc2fa035e93373197c67540548856b160db39aed8f0a319ff3f77063dbb8abd2b6a4b412dccbab8c6a70689cf701cf98c4cc
+DIST pypy-bin-2.5.1-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 12366684 SHA256 14e7667b36da045c5eb6758e68d0647ba6eb9804125ad9bb9425891492012b5a SHA512 6b4abd9f8546a7e39670c8d0a00bd1f4eb5ee860eda5e6d16fc64a4b8259e8c784ac4ea567b4dad84d2ff3c72a48b07836720aaee8e608f7e7ecb2b2fcf20f89 WHIRLPOOL f2517cfd7d7d46208c8cfcdb2adcfed7c1782fd014179addc9da6842070d8d90c193bedecb20538a8330c9ae31df73fe1abf9b22727aebd0770fc3caa6e0163c
+DIST pypy-bin-2.5.1-amd64+bzip2+jit+ncurses.tar.xz 14282808 SHA256 be3f365d6250a600e7494b687f41f1632774fa08938dac09cf61da1cdc331079 SHA512 41d81febca05ad6df500e1a8ff712c77ef920ae244ea48523bf637022a0a6ea07663723c284c3b2d9c7893777be4dd2266369b51c583bee9c7e42d53f4bf5c10 WHIRLPOOL 7d3719ba751f5a9b7056aa2be341823a8bacffb851f549d873ad269bc15445a7805105d201b27429247402126c2ba207bad602532372baf7053372219fbda2b2
+DIST pypy-bin-2.5.1-amd64+bzip2+ncurses.tar.xz 7298184 SHA256 4f19b38509644ebf855eabf794f89fcf83fff22d7e8b50d471a7018ce4d98f80 SHA512 45ee8a21d106b035c98bb812664b3687cfeb5eb4dfd429d84b6ee66d035692f94ca6e23ce28e68dc2c243af7008287e1cfa8f76b32b166db0af40cc206ca7168 WHIRLPOOL 7f8f86a861beb297d4081681669ae900b0fd743c76d69b695194708f192d2e00741314cd35010d71c6a7838672e223896058c34d1665777c4e4b195d74bd8474
+DIST pypy-bin-2.5.1-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 9521220 SHA256 90fc72bd6333ef805bb996badc5a954fa1ecc7bb3d43ff655cba86db533ec8e7 SHA512 ece7fd6f126c8923854fdd5c05a343ec77a79a342f17588b66eb475ade9541190144d4beb7d57ab4437581109c4d74648fe941ec392bb939e325ee8f87bfd768 WHIRLPOOL 12b28e947a732bc5403a41638aa4c9167424ae70d4b620b91bfc2968daa449c03ebc8cc06e89992c4916e091987d9801b86dba9cf62a22b3a3965f547dec5602
+DIST pypy-bin-2.5.1-x86+bzip2+jit+ncurses+sse2.tar.xz 11702676 SHA256 ccd17d468a1e5a33e7f45ca542644d4ea4f24f8c070cc85264aea430c31b0f7c SHA512 70da9139476b1c0d05464b54001c276018ab70c41d2032d7b1b82a1ed88d697646f476a4589ec7b2ba1faca5a3ed751c22582939adb6f7bdcab93bc8b201d8ee WHIRLPOOL 4c816821c8c54d3762939a70718bcc0fbbd194e98b1efea25899e1dc1f31b037a798c02bb684c8d86ae1bfcb5a5f93ede3dd67c07fe6b112b1a99ced83b7999b
+DIST pypy-bin-2.5.1-x86+bzip2+ncurses+sse2.tar.xz 5687144 SHA256 bcb27dbd3c6158970c705be18c162442b0b655a09af564ea12e1492559ee4f0a SHA512 524a638373079789ca97d9a5dbbe2a68e5123945d2c730408cc3b693b5182c16223b320581936b644f2e54b1b37e8f8b9f4ab6b6834483ff6462fea2572cf180 WHIRLPOOL ba73cf944180a6925ff9d429f3f6c1404e7ba24c0257ac45b7e0d449bd73c95742cc0a41901d2420ed811e62012b5a7d177c9f724fe6bee010b21ad1b7906079
+DIST pypy-bin-2.5.1-x86+bzip2+ncurses.tar.xz 5725788 SHA256 668339be67618d47aaf7a64cca6900b53b74fc23e411afed9911ef5d12401de4 SHA512 56f0a200386ee97a1d4bacab43a2b0b71a9d8aae519b9b6480a982757852ef9aa8faa53490088704398507a559af05af590e778a0284c9adfbfe151c9da556b3 WHIRLPOOL 180aa2265fb2eb9b3db86e977bcc8c09d076facf17c42de0a6eb4b0a4a753643634fa742cef37aa52e814127d5d9dfee39cc71ee844482d7cb2ee29abc1c2c33
+DIST pypy-bin-2.6.0-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 12713852 SHA256 5a23efc74a73f2073d14975949b29b46f85eb815e40fe617d788bcc8463914c2 SHA512 3dbb73047365ab39f328b1c48f370015577ac68aa8ae331d2f49b89a65f2146fa9f53629c33e424ca3949e03caf1b7616c852bd65f49a635a0a3d600f1f252ae WHIRLPOOL fdb1f43231a2e0b99f9a4db6077cda172160514b8504def1f925a66521033a522710b68f7755363701639069bb8d20edfc627dc4fb8c04015b78214581c0999d
+DIST pypy-bin-2.6.0-amd64+bzip2+jit+ncurses.tar.xz 13707848 SHA256 f989708173de093a9d98f190b249a8ed32642fe96ace548f231457e4c743ce57 SHA512 c45cc995349f30630ae14171125bb2ddf8974a77eb817f01a0d86845050832932ca00f3d2c0fcabb15649d3b19a19cfa55d515a90e750d507828ec598aaf998e WHIRLPOOL 3e07920c7bbc9217dccbad948dd404af808c441a725c804e90b2a427fb37fbaaa08dbe12f1ad970292b301e4dd2c0014442761839290a8c7f39a3a11bf6a4019
+DIST pypy-bin-2.6.0-amd64+bzip2+ncurses.tar.xz 7440860 SHA256 b86d2c6939949c16f745729082ee35ef221a48d745f98d0d9a09897187412ca9 SHA512 de9bfe9ddd342e806c59477e333c22afc672175fa3207519379c71d8d359b004a187ac0ed59211347beb562802daa05ba4e6cbb08dd8ad3587c2c9be41ed1307 WHIRLPOOL d62aec345b8a98b3ab790a2588108745c4e0203e8a76580ee700c2379b22215b141141c31d41ab211c451713aadebf05ae0f9cdd1e2b318b73e43a6f2a5ff76f
+DIST pypy-bin-2.6.0-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 9727668 SHA256 24166748d0aeb7d6943ba0441d5c545c9a7b526e7822ee7f128cfb80321bb379 SHA512 88ebe86b81e85b22213cfda7a2edf3f7deff29c080cef3688d4abaa719117cde168164e08d68cdc9bcfe4a5fd80ee2d19951b42aa4534d37fc79bd7fbb30cf5f WHIRLPOOL 07847adca7fc29165a8d12a3d7eeade9360370a2001fda8af9015b67c451056e15c742aa5d9d143d89dd17b11feaac9b850b6291b691bbd0e2dfa0dde46829b8
+DIST pypy-bin-2.6.0-x86+bzip2+jit+ncurses+sse2.tar.xz 10769552 SHA256 c985a47cf30b272b2b18794f1274af9d7f83037780545c6076b50e5df4ed5161 SHA512 b2a4d62133022b4677c869e345068eb312e71f1bd7f4351131fa9b0874903d6c81f22db47ec8e717b8243997263219d52b67135d7becba7a5c8f6d2ac3f9179c WHIRLPOOL 4e62d8a943faee2fbb2d34e077ab8292cd3a985347ded90fef83740ce26f6e9e1265a77b736f831df0f48da58b047b92363bbb646cfe0322045ebf2521c63e14
+DIST pypy-bin-2.6.0-x86+bzip2+ncurses+sse2.tar.xz 5823376 SHA256 c0e6d23ae866aa7c272891b755b197f37c9be9c59666e74be86a7c68bec2e9b8 SHA512 227da4e84f915c4aa8e176a3535e97968dbbc4eab93ab092ad8c70841a60d00ce15e4579222f777f75a06f1022b3f54b1f4a490fdd25886dc087df581d5ae0df WHIRLPOOL d44c3005f0b6103cfb700390a44b08bbac1118ec9e7930a6e050b36f5d806019a716f7a46aa1b32e39f036453967d16feb6b587950c34cf6b5f9d55b54819577
+DIST pypy-bin-2.6.0-x86+bzip2+ncurses.tar.xz 5801592 SHA256 fd3ad04815cda1f2746a2dfa9c02f5394f73011fd1247016e6a6d760cef30dab SHA512 b23afff4ba9c9dd2246b3305de8274699a00db8d0bc38d59641414fde0680695373cda12fbd4091f6a06df6c4ce548355b7cdadb299a0ba9a0efedd90680df21 WHIRLPOOL 3554ff89fbe434e099d95c528d1b2414decd46b802f357f187fb21835a8b4c8fe5b10001ad311827d01bbbf71dcf1cf89bd9e081dbbe1706f2727bf35ca0337b
+DIST python-gentoo-patches-2.7.10-0.tar.xz 12892 SHA256 c9a838bd62ae50cc385da23a837acfd05f2b74e4f086c9c76eb4d3aa5366ef6d SHA512 5f100944635e360691dc0a2b340a906646c4ae9ee558246ddffc56e8b15d389f25f1fbdc1db4cc08e7d29560d04d66b058b3904902899d58ecae8c408ebdf056 WHIRLPOOL f69e9a518bb7ee50c1b262a21e70e1e2443f859ee6d2f4fa84421120dbd054a06ce8dd6cfea8512cbc64bce806322b879c25c561d5eb05e1ba6cc15035b373a9
diff --git a/dev-python/pypy-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch b/dev-python/pypy-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
new file mode 100644
index 00000000000..b3d5235000d
--- /dev/null
+++ b/dev-python/pypy-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
@@ -0,0 +1,11 @@
+--- lib-python/2.7/distutils/unixccompiler.py
++++ lib-python/2.7/distutils/unixccompiler.py
+@@ -297,7 +297,7 @@
+ # this time, there's no way to determine this information from
+ # the configuration data stored in the Python installation, so
+ # we use this hack.
+- compiler = os.path.basename(sysconfig.get_config_var("CC"))
++ compiler = os.path.basename(self.compiler[0])
+ if sys.platform[:6] == "darwin":
+ # MacOSX's linker doesn't understand the -R flag at all
+ return "-L" + dir
diff --git a/dev-python/pypy-bin/files/1.9-scripts-location.patch b/dev-python/pypy-bin/files/1.9-scripts-location.patch
new file mode 100644
index 00000000000..5f0190d9a20
--- /dev/null
+++ b/dev-python/pypy-bin/files/1.9-scripts-location.patch
@@ -0,0 +1,11 @@
+--- pypy-pypy-release-1.7/lib-python/2.7/distutils/command/install.py
++++ pypy-pypy-release-1.7/lib-python/2.7/distutils/command/install.py
+@@ -87,7 +87,7 @@
+ 'purelib': '$base/site-packages',
+ 'platlib': '$base/site-packages',
+ 'headers': '$base/include',
+- 'scripts': '$base/bin',
++ 'scripts': '/usr/bin',
+ 'data' : '$base',
+ },
+ }
diff --git a/dev-python/pypy-bin/files/2.3-21_all_distutils_c++.patch b/dev-python/pypy-bin/files/2.3-21_all_distutils_c++.patch
new file mode 100644
index 00000000000..2787360c15b
--- /dev/null
+++ b/dev-python/pypy-bin/files/2.3-21_all_distutils_c++.patch
@@ -0,0 +1,321 @@
+http://bugs.python.org/issue1222585
+
+--- Lib/distutils/cygwinccompiler.py
++++ Lib/distutils/cygwinccompiler.py
+@@ -117,8 +117,10 @@
+ # dllwrap 2.10.90 is buggy
+ if self.ld_version >= "2.10.90":
+ self.linker_dll = "gcc"
++ self.linker_dll_cxx = "g++"
+ else:
+ self.linker_dll = "dllwrap"
++ self.linker_dll_cxx = "dllwrap"
+
+ # ld_version >= "2.13" support -shared so use it instead of
+ # -mdll -static
+@@ -132,9 +134,13 @@
+ self.set_executables(compiler='gcc -mcygwin -O -Wall',
+ compiler_so='gcc -mcygwin -mdll -O -Wall',
+ compiler_cxx='g++ -mcygwin -O -Wall',
++ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+ linker_exe='gcc -mcygwin',
+ linker_so=('%s -mcygwin %s' %
+- (self.linker_dll, shared_option)))
++ (self.linker_dll, shared_option)),
++ linker_exe_cxx='g++ -mcygwin',
++ linker_so_cxx=('%s -mcygwin %s' %
++ (self.linker_dll_cxx, shared_option)))
+
+ # cygwin and mingw32 need different sets of libraries
+ if self.gcc_version == "2.91.57":
+@@ -160,8 +166,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -327,9 +337,14 @@
+ self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+ compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+ compiler_cxx='g++%s -O -Wall' % no_cygwin,
++ compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+ linker_exe='gcc%s' % no_cygwin,
+ linker_so='%s%s %s %s'
+ % (self.linker_dll, no_cygwin,
++ shared_option, entry_point),
++ linker_exe_cxx='g++%s' % no_cygwin,
++ linker_so_cxx='%s%s %s %s'
++ % (self.linker_dll_cxx, no_cygwin,
+ shared_option, entry_point))
+ # Maybe we should also append -mthreads, but then the finished
+ # dlls need another dll (mingwm10.dll see Mingw32 docs)
+--- Lib/distutils/emxccompiler.py
++++ Lib/distutils/emxccompiler.py
+@@ -65,8 +65,12 @@
+ # XXX optimization, warnings etc. should be customizable.
+ self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+
+ # want the gcc library statically linked (so that we don't have
+ # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+--- Lib/distutils/sysconfig_cpython.py
++++ Lib/distutils/sysconfig_cpython.py
+@@ -170,10 +170,12 @@
+ _osx_support.customize_compiler(_config_vars)
+ _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+
+- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
+- 'ARFLAGS')
++ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'SO', 'AR', 'ARFLAGS')
++
++ cflags = ''
++ cxxflags = ''
+
+ if 'CC' in os.environ:
+ newcc = os.environ['CC']
+@@ -188,19 +190,27 @@
+ cxx = os.environ['CXX']
+ if 'LDSHARED' in os.environ:
+ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
+ if 'CPP' in os.environ:
+ cpp = os.environ['CPP']
+ else:
+ cpp = cc + " -E" # not always
+ if 'LDFLAGS' in os.environ:
+ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+ if 'CFLAGS' in os.environ:
+- cflags = opt + ' ' + os.environ['CFLAGS']
++ cflags = os.environ['CFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+ if 'CPPFLAGS' in os.environ:
+ cpp = cpp + ' ' + os.environ['CPPFLAGS']
+ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+ if 'AR' in os.environ:
+ ar = os.environ['AR']
+ if 'ARFLAGS' in os.environ:
+@@ -209,13 +219,17 @@
+ archiver = ar + ' ' + ar_flags
+
+ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
+ compiler.set_executables(
+ preprocessor=cpp,
+ compiler=cc_cmd,
+ compiler_so=cc_cmd + ' ' + ccshared,
+- compiler_cxx=cxx,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+ linker_so=ldshared,
+ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx,
+ archiver=archiver)
+
+ compiler.shared_lib_extension = so_ext
+--- Lib/distutils/unixccompiler.py
++++ Lib/distutils/unixccompiler.py
+@@ -55,14 +55,17 @@
+ # are pretty generic; they will probably have to be set by an outsider
+ # (eg. using information discovered by the sysconfig about building
+ # Python extensions).
+- executables = {'preprocessor' : None,
+- 'compiler' : ["cc"],
+- 'compiler_so' : ["cc"],
+- 'compiler_cxx' : ["cc"],
+- 'linker_so' : ["cc", "-shared"],
+- 'linker_exe' : ["cc"],
+- 'archiver' : ["ar", "-cr"],
+- 'ranlib' : None,
++ executables = {'preprocessor' : None,
++ 'compiler' : ["cc"],
++ 'compiler_so' : ["cc"],
++ 'compiler_cxx' : ["c++"],
++ 'compiler_so_cxx' : ["c++"],
++ 'linker_so' : ["cc", "-shared"],
++ 'linker_exe' : ["cc"],
++ 'linker_so_cxx' : ["c++", "-shared"],
++ 'linker_exe_cxx' : ["c++"],
++ 'archiver' : ["ar", "-cr"],
++ 'ranlib' : None,
+ }
+
+ if sys.platform[:6] == "darwin":
+@@ -112,12 +115,19 @@
+
+ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+ compiler_so = self.compiler_so
++ compiler_so_cxx = self.compiler_so_cxx
+ if sys.platform == 'darwin':
+ compiler_so = _osx_support.compiler_fixup(compiler_so,
+ cc_args + extra_postargs)
++ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++ cc_args + extra_postargs)
+ try:
+- self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -174,23 +184,16 @@
+ ld_args.extend(extra_postargs)
+ self.mkpath(os.path.dirname(output_filename))
+ try:
+- if target_desc == CCompiler.EXECUTABLE:
+- linker = self.linker_exe[:]
++ if target_lang == "c++":
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe_cxx[:]
++ else:
++ linker = self.linker_so_cxx[:]
+ else:
+- linker = self.linker_so[:]
+- if target_lang == "c++" and self.compiler_cxx:
+- # skip over environment variable settings if /usr/bin/env
+- # is used to set up the linker's environment.
+- # This is needed on OSX. Note: this assumes that the
+- # normal and C++ compiler have the same environment
+- # settings.
+- i = 0
+- if os.path.basename(linker[0]) == "env":
+- i = 1
+- while '=' in linker[i]:
+- i = i + 1
+-
+- linker[i] = self.compiler_cxx[i]
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe[:]
++ else:
++ linker = self.linker_so[:]
+
+ if sys.platform == 'darwin':
+ linker = _osx_support.compiler_fixup(linker, ld_args)
+--- Lib/_osx_support.py
++++ Lib/_osx_support.py
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+- 'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+--- a/distutils/sysconfig_pypy.py
++++ b/distutils/sysconfig_pypy.py
+@@ -123,7 +123,55 @@
+ optional C speedup components.
+ """
+ if compiler.compiler_type == "unix":
+- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
++ cc = ' '.join(compiler.compiler)
++ cxx = ' '.join(compiler.compiler_cxx)
++ ldshared = ' '.join(compiler.linker_so)
++ ldcxxshared = ' '.join(compiler.linker_so_cxx)
++
++ cflags = ''
++ cxxflags = ''
++ ccshared = '-fPIC'
++
++ if 'CC' in os.environ:
++ cc = os.environ['CC']
++ if 'CXX' in os.environ:
++ cxx = os.environ['CXX']
++ if 'LDSHARED' in os.environ:
++ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
++ if 'CPP' in os.environ:
++ cpp = os.environ['CPP']
++ else:
++ cpp = cc + " -E" # not always
++ if 'LDFLAGS' in os.environ:
++ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
++ if 'CFLAGS' in os.environ:
++ cflags = os.environ['CFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
++ if 'CPPFLAGS' in os.environ:
++ cpp = cpp + ' ' + os.environ['CPPFLAGS']
++ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
++
++ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
++ compiler.set_executables(
++ preprocessor=cpp,
++ compiler=cc_cmd,
++ compiler_so=cc_cmd + ' ' + ccshared,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
++ linker_so=ldshared,
++ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx)
+ compiler.shared_lib_extension = get_config_var('SO')
+ if "CPPFLAGS" in os.environ:
+ cppflags = shlex.split(os.environ["CPPFLAGS"])
diff --git a/dev-python/pypy-bin/files/2.5.0_all_distutils_cxx.patch b/dev-python/pypy-bin/files/2.5.0_all_distutils_cxx.patch
new file mode 100644
index 00000000000..aa298d0df64
--- /dev/null
+++ b/dev-python/pypy-bin/files/2.5.0_all_distutils_cxx.patch
@@ -0,0 +1,324 @@
+http://bugs.python.org/issue1222585
+
+--- _osx_support.py
++++ _osx_support.py
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+- 'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+--- distutils/sysconfig_pypy.py
++++ distutils/sysconfig_pypy.py
+@@ -123,7 +123,55 @@
+ optional C speedup components.
+ """
+ if compiler.compiler_type == "unix":
+- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
++ cc = ' '.join(compiler.compiler)
++ cxx = ' '.join(compiler.compiler_cxx)
++ ldshared = ' '.join(compiler.linker_so)
++ ldcxxshared = ' '.join(compiler.linker_so_cxx)
++
++ cflags = ''
++ cxxflags = ''
++ ccshared = '-fPIC'
++
++ if 'CC' in os.environ:
++ cc = os.environ['CC']
++ if 'CXX' in os.environ:
++ cxx = os.environ['CXX']
++ if 'LDSHARED' in os.environ:
++ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
++ if 'CPP' in os.environ:
++ cpp = os.environ['CPP']
++ else:
++ cpp = cc + " -E" # not always
++ if 'LDFLAGS' in os.environ:
++ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
++ if 'CFLAGS' in os.environ:
++ cflags = os.environ['CFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
++ if 'CPPFLAGS' in os.environ:
++ cpp = cpp + ' ' + os.environ['CPPFLAGS']
++ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
++
++ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
++ compiler.set_executables(
++ preprocessor=cpp,
++ compiler=cc_cmd,
++ compiler_so=cc_cmd + ' ' + ccshared,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
++ linker_so=ldshared,
++ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx)
+ compiler.shared_lib_extension = get_config_var('SO')
+ if "CPPFLAGS" in os.environ:
+ cppflags = shlex.split(os.environ["CPPFLAGS"])
+--- distutils/cygwinccompiler.py
++++ distutils/cygwinccompiler.py
+@@ -117,8 +117,10 @@
+ # dllwrap 2.10.90 is buggy
+ if self.ld_version >= "2.10.90":
+ self.linker_dll = "gcc"
++ self.linker_dll_cxx = "g++"
+ else:
+ self.linker_dll = "dllwrap"
++ self.linker_dll_cxx = "dllwrap"
+
+ # ld_version >= "2.13" support -shared so use it instead of
+ # -mdll -static
+@@ -132,9 +134,13 @@
+ self.set_executables(compiler='gcc -mcygwin -O -Wall',
+ compiler_so='gcc -mcygwin -mdll -O -Wall',
+ compiler_cxx='g++ -mcygwin -O -Wall',
++ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+ linker_exe='gcc -mcygwin',
+ linker_so=('%s -mcygwin %s' %
+- (self.linker_dll, shared_option)))
++ (self.linker_dll, shared_option)),
++ linker_exe_cxx='g++ -mcygwin',
++ linker_so_cxx=('%s -mcygwin %s' %
++ (self.linker_dll_cxx, shared_option)))
+
+ # cygwin and mingw32 need different sets of libraries
+ if self.gcc_version == "2.91.57":
+@@ -160,8 +166,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -327,9 +337,14 @@
+ self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+ compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+ compiler_cxx='g++%s -O -Wall' % no_cygwin,
++ compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+ linker_exe='gcc%s' % no_cygwin,
+ linker_so='%s%s %s %s'
+ % (self.linker_dll, no_cygwin,
++ shared_option, entry_point),
++ linker_exe_cxx='g++%s' % no_cygwin,
++ linker_so_cxx='%s%s %s %s'
++ % (self.linker_dll_cxx, no_cygwin,
+ shared_option, entry_point))
+ # Maybe we should also append -mthreads, but then the finished
+ # dlls need another dll (mingwm10.dll see Mingw32 docs)
+http://bugs.python.org/issue1222585
+
+--- distutils/emxccompiler.py
++++ distutils/emxccompiler.py
+@@ -65,8 +65,12 @@
+ # XXX optimization, warnings etc. should be customizable.
+ self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+
+ # want the gcc library statically linked (so that we don't have
+ # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+--- distutils/sysconfig_cpython.py
++++ distutils/sysconfig_cpython.py
+@@ -170,10 +170,12 @@
+ _osx_support.customize_compiler(_config_vars)
+ _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+
+- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
+- 'ARFLAGS')
++ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'SO', 'AR', 'ARFLAGS')
++
++ cflags = ''
++ cxxflags = ''
+
+ if 'CC' in os.environ:
+ newcc = os.environ['CC']
+@@ -188,19 +190,27 @@
+ cxx = os.environ['CXX']
+ if 'LDSHARED' in os.environ:
+ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
+ if 'CPP' in os.environ:
+ cpp = os.environ['CPP']
+ else:
+ cpp = cc + " -E" # not always
+ if 'LDFLAGS' in os.environ:
+ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+ if 'CFLAGS' in os.environ:
+- cflags = opt + ' ' + os.environ['CFLAGS']
++ cflags = os.environ['CFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+ if 'CPPFLAGS' in os.environ:
+ cpp = cpp + ' ' + os.environ['CPPFLAGS']
+ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+ if 'AR' in os.environ:
+ ar = os.environ['AR']
+ if 'ARFLAGS' in os.environ:
+@@ -209,13 +219,17 @@
+ archiver = ar + ' ' + ar_flags
+
+ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
+ compiler.set_executables(
+ preprocessor=cpp,
+ compiler=cc_cmd,
+ compiler_so=cc_cmd + ' ' + ccshared,
+- compiler_cxx=cxx,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+ linker_so=ldshared,
+ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx,
+ archiver=archiver)
+
+ compiler.shared_lib_extension = so_ext
+--- distutils/unixccompiler.py
++++ distutils/unixccompiler.py
+@@ -55,14 +55,17 @@
+ # are pretty generic; they will probably have to be set by an outsider
+ # (eg. using information discovered by the sysconfig about building
+ # Python extensions).
+- executables = {'preprocessor' : None,
+- 'compiler' : ["cc"],
+- 'compiler_so' : ["cc"],
+- 'compiler_cxx' : ["c++"], # pypy: changed, 'cc' is bogus
+- 'linker_so' : ["cc", "-shared"],
+- 'linker_exe' : ["cc"],
+- 'archiver' : ["ar", "-cr"],
+- 'ranlib' : None,
++ executables = {'preprocessor' : None,
++ 'compiler' : ["cc"],
++ 'compiler_so' : ["cc"],
++ 'compiler_cxx' : ["c++"],
++ 'compiler_so_cxx' : ["c++"],
++ 'linker_so' : ["cc", "-shared"],
++ 'linker_exe' : ["cc"],
++ 'linker_so_cxx' : ["c++", "-shared"],
++ 'linker_exe_cxx' : ["c++"],
++ 'archiver' : ["ar", "-cr"],
++ 'ranlib' : None,
+ }
+
+ if sys.platform[:6] == "darwin":
+@@ -112,12 +115,19 @@
+
+ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+ compiler_so = self.compiler_so
++ compiler_so_cxx = self.compiler_so_cxx
+ if sys.platform == 'darwin':
+ compiler_so = _osx_support.compiler_fixup(compiler_so,
+ cc_args + extra_postargs)
++ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++ cc_args + extra_postargs)
+ try:
+- self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -174,23 +184,16 @@
+ ld_args.extend(extra_postargs)
+ self.mkpath(os.path.dirname(output_filename))
+ try:
+- if target_desc == CCompiler.EXECUTABLE:
+- linker = self.linker_exe[:]
++ if target_lang == "c++":
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe_cxx[:]
++ else:
++ linker = self.linker_so_cxx[:]
+ else:
+- linker = self.linker_so[:]
+- if target_lang == "c++" and self.compiler_cxx:
+- # skip over environment variable settings if /usr/bin/env
+- # is used to set up the linker's environment.
+- # This is needed on OSX. Note: this assumes that the
+- # normal and C++ compiler have the same environment
+- # settings.
+- i = 0
+- if os.path.basename(linker[0]) == "env":
+- i = 1
+- while '=' in linker[i]:
+- i = i + 1
+-
+- linker[i] = self.compiler_cxx[i]
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe[:]
++ else:
++ linker = self.linker_so[:]
+
+ if sys.platform == 'darwin':
+ linker = _osx_support.compiler_fixup(linker, ld_args)
+
diff --git a/dev-python/pypy-bin/metadata.xml b/dev-python/pypy-bin/metadata.xml
new file mode 100644
index 00000000000..feca6569cb8
--- /dev/null
+++ b/dev-python/pypy-bin/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alicef@gentoo.org</email>
+ <name>Alice Ferrazzi</name>
+ </maintainer>
+ <use>
+ <flag name="shadowstack">Use a shadow stack for finding GC roots</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pypy-bin/pypy-bin-2.3.1-r2.ebuild b/dev-python/pypy-bin/pypy-bin-2.3.1-r2.ebuild
new file mode 100644
index 00000000000..8d808c2089a
--- /dev/null
+++ b/dev-python/pypy-bin/pypy-bin-2.3.1-r2.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit eutils multilib pax-utils python-any-r1 vcs-snapshot versionator
+
+BINHOST="http://pypy.aliceinwire.net/pypy-bin/"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language (binary package)"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://www.bitbucket.org/pypy/pypy/downloads/pypy-${PV}-src.tar.bz2
+ amd64? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
+ -> ${P}-r1-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses.tar.xz
+ -> ${P}-r1-amd64+bzip2+jit+ncurses.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+ncurses.tar.xz
+ -> ${P}-r1-amd64+bzip2+ncurses.tar.xz
+ ) )
+ )
+ x86? (
+ cpu_flags_x86_sse2? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
+ -> ${P}-r1-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+sse2.tar.xz
+ -> ${P}-r1-x86+bzip2+jit+ncurses+sse2.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses+sse2.tar.xz
+ -> ${P}-r1-x86+bzip2+ncurses+sse2.tar.xz
+ ) )
+ )
+ !cpu_flags_x86_sse2? (
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses.tar.xz
+ -> ${P}-r1-x86+bzip2+ncurses.tar.xz
+ ) )
+ )
+ )"
+
+# Supported variants
+REQUIRED_USE="!jit? ( !shadowstack )
+ x86? ( !cpu_flags_x86_sse2? ( !jit !shadowstack ) )"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gdbm +jit shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+# yep, world would be easier if people started filling subslots...
+RDEPEND="
+ app-arch/bzip2:0
+ dev-libs/expat:0
+ dev-libs/libffi:0
+ dev-libs/openssl:0[-bindist]
+ sys-libs/glibc:2.2
+ sys-libs/ncurses:5
+ sys-libs/zlib:0
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy:0"
+DEPEND="app-arch/xz-utils
+ doc? ( ${PYTHON_DEPS}
+ dev-python/sphinx )
+ test? ( ${RDEPEND} )"
+PDEPEND="app-admin/python-updater"
+
+S=${WORKDIR}/pypy-${PV}-src
+
+pkg_setup() {
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch"
+ epatch "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}/2.3-21_all_distutils_c++.patch"
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ # Tadaam! PyPy compiled!
+ mv "${WORKDIR}"/${P}*/{libpypy-c.so,pypy-c} . || die
+ mv "${WORKDIR}"/${P}*/include/*.h include/ || die
+ mv pypy/module/cpyext/include/*.h include/ || die
+ mv pypy/module/cpyext/include/numpy include/ || die
+
+ use doc && emake -C pypy/doc/ html
+ #needed even without jit :( also needed in both compile and install phases
+ pax-mark m pypy-c
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dosym ../$(get_libdir)/pypy/libpypy-c.so /usr/$(get_libdir)/libpypy-c.so
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # ctypes config cache
+ "${PYTHON}" -m ctypes_config_cache.rebuild || die "Failed to rebuild ctypes config cache"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy-bin/pypy-bin-2.4.0.ebuild b/dev-python/pypy-bin/pypy-bin-2.4.0.ebuild
new file mode 100644
index 00000000000..94858f577eb
--- /dev/null
+++ b/dev-python/pypy-bin/pypy-bin-2.4.0.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit eutils multilib pax-utils python-any-r1 versionator
+
+BINHOST="http://dev.gentoo.org/~mgorny/dist/pypy-bin/${PV}"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language (binary package)"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/pypy-${PV}-src.tar.bz2
+ amd64? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+ncurses.tar.xz
+ ) )
+ )
+ x86? (
+ cpu_flags_x86_sse2? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+sse2.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses+sse2.tar.xz
+ ) )
+ )
+ !cpu_flags_x86_sse2? (
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses.tar.xz
+ ) )
+ )
+ )"
+
+# Supported variants
+REQUIRED_USE="!jit? ( !shadowstack )
+ x86? ( !cpu_flags_x86_sse2? ( !jit !shadowstack ) )"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gdbm +jit shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+# yep, world would be easier if people started filling subslots...
+RDEPEND="
+ app-arch/bzip2:0
+ dev-libs/expat:0
+ dev-libs/libffi:0
+ dev-libs/openssl:0[-bindist]
+ sys-libs/glibc:2.2
+ sys-libs/ncurses:5
+ sys-libs/zlib:0
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy:0"
+DEPEND="app-arch/xz-utils
+ doc? ( ${PYTHON_DEPS}
+ dev-python/sphinx )
+ test? ( ${RDEPEND} )"
+PDEPEND="app-admin/python-updater"
+
+S=${WORKDIR}/pypy-${PV}-src
+
+pkg_setup() {
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}/2.3-21_all_distutils_c++.patch"
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ # Tadaam! PyPy compiled!
+ mv "${WORKDIR}"/${P}*/{libpypy-c.so,pypy-c} . || die
+ mv "${WORKDIR}"/${P}*/include/*.h include/ || die
+ mv pypy/module/cpyext/include/*.h include/ || die
+ mv pypy/module/cpyext/include/numpy include/ || die
+
+ use doc && emake -C pypy/doc/ html
+ #needed even without jit :( also needed in both compile and install phases
+ pax-mark m pypy-c
+
+ # ctypes config cache
+ # this one we need to do with python2 too...
+ ./pypy-c lib_pypy/ctypes_config_cache/rebuild.py \
+ || die "Failed to rebuild ctypes config cache"
+}
+
+# Doesn't work - pypy missing its own libs
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy-bin/pypy-bin-2.5.1.ebuild b/dev-python/pypy-bin/pypy-bin-2.5.1.ebuild
new file mode 100644
index 00000000000..a01a3499f70
--- /dev/null
+++ b/dev-python/pypy-bin/pypy-bin-2.5.1.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit eutils multilib pax-utils python-any-r1 versionator
+
+BINHOST="http://dev.gentoo.org/~mgorny/dist/pypy-bin/${PV}"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language (binary package)"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/pypy-${PV}-src.tar.bz2
+ amd64? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+ncurses.tar.xz
+ ) )
+ )
+ x86? (
+ cpu_flags_x86_sse2? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+sse2.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses+sse2.tar.xz
+ ) )
+ )
+ !cpu_flags_x86_sse2? (
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses.tar.xz
+ ) )
+ )
+ )"
+
+# Supported variants
+REQUIRED_USE="!jit? ( !shadowstack )
+ x86? ( !cpu_flags_x86_sse2? ( !jit !shadowstack ) )"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gdbm +jit shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+# yep, world would be easier if people started filling subslots...
+RDEPEND="
+ app-arch/bzip2:0
+ dev-libs/expat:0
+ dev-libs/libffi:0
+ dev-libs/openssl:0[-bindist]
+ sys-libs/glibc:2.2
+ sys-libs/ncurses:5
+ sys-libs/zlib:0
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy:0"
+DEPEND="app-arch/xz-utils
+ doc? ( ${PYTHON_DEPS}
+ dev-python/sphinx )
+ test? ( ${RDEPEND} )"
+PDEPEND="app-admin/python-updater"
+
+S=${WORKDIR}/pypy-${PV}-src
+
+pkg_setup() {
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ # Tadaam! PyPy compiled!
+ mv "${WORKDIR}"/${P}*/{libpypy-c.so,pypy-c} . || die
+ mv "${WORKDIR}"/${P}*/include/*.h include/ || die
+ mv pypy/module/cpyext/include/*.h include/ || die
+ mv pypy/module/cpyext/include/numpy include/ || die
+
+ use doc && emake -C pypy/doc/ html
+ #needed even without jit :( also needed in both compile and install phases
+ pax-mark m pypy-c
+
+ # ctypes config cache
+ # this one we need to do with python2 too...
+ ./pypy-c lib_pypy/ctypes_config_cache/rebuild.py \
+ || die "Failed to rebuild ctypes config cache"
+}
+
+# Doesn't work - pypy missing its own libs
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy-bin/pypy-bin-2.6.0.ebuild b/dev-python/pypy-bin/pypy-bin-2.6.0.ebuild
new file mode 100644
index 00000000000..2a0ee5b85d0
--- /dev/null
+++ b/dev-python/pypy-bin/pypy-bin-2.6.0.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit eutils multilib pax-utils python-any-r1 versionator
+
+BINHOST="http://dev.gentoo.org/~mgorny/dist/pypy-bin/${PV}"
+CPY_PATCHSET_VERSION="2.7.10-0"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language (binary package)"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/pypy-${PV}-src.tar.bz2
+ http://dev.gentoo.org/~floppym/python/python-gentoo-patches-${CPY_PATCHSET_VERSION}.tar.xz
+ amd64? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+ncurses.tar.xz
+ ) )
+ )
+ x86? (
+ cpu_flags_x86_sse2? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+sse2.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses+sse2.tar.xz
+ ) )
+ )
+ !cpu_flags_x86_sse2? (
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses.tar.xz
+ ) )
+ )
+ )"
+
+# Supported variants
+REQUIRED_USE="!jit? ( !shadowstack )
+ x86? ( !cpu_flags_x86_sse2? ( !jit !shadowstack ) )"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gdbm +jit shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+# yep, world would be easier if people started filling subslots...
+RDEPEND="
+ app-arch/bzip2:0
+ dev-libs/expat:0
+ dev-libs/libffi:0
+ dev-libs/openssl:0[-bindist]
+ sys-libs/glibc:2.2
+ sys-libs/ncurses:5
+ sys-libs/zlib:0
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy:0"
+DEPEND="app-arch/xz-utils
+ doc? ( ${PYTHON_DEPS}
+ dev-python/sphinx )
+ test? ( ${RDEPEND} )"
+PDEPEND="app-admin/python-updater"
+
+S=${WORKDIR}/pypy-${PV}-src
+
+pkg_setup() {
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+
+ # apply CPython stdlib patches
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch \
+ "${WORKDIR}"/patches/22_all_turkish_locale.patch \
+ "${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ # Tadaam! PyPy compiled!
+ mv "${WORKDIR}"/${P}*/{libpypy-c.so,pypy-c} . || die
+ mv "${WORKDIR}"/${P}*/include/*.h include/ || die
+ mv pypy/module/cpyext/include/*.h include/ || die
+ mv pypy/module/cpyext/include/numpy include/ || die
+
+ use doc && emake -C pypy/doc/ html
+ #needed even without jit :( also needed in both compile and install phases
+ pax-mark m pypy-c
+
+ # ctypes config cache
+ # this one we need to do with python2 too...
+ ./pypy-c lib_pypy/ctypes_config_cache/rebuild.py \
+ || die "Failed to rebuild ctypes config cache"
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi modules
+ # Please keep in sync with pypy/tool/release/package.py!
+#cffi_build_scripts = {
+# "sqlite3": "_sqlite3_build.py",
+# "audioop": "_audioop_build.py",
+# "tk": "_tkinter/tklib_build.py",
+# "curses": "_curses_build.py" if sys.platform != "win32" else None,
+# "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
+# "gdbm": "_gdbm_build.py" if sys.platform != "win32" else None,
+# "pwdgrp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
+ cffi_targets=( audioop curses syslog gdbm pwdgrp )
+ use gdbm && cffi_targets+=( gdbm )
+ use sqlite && cffi_targets+=( sqlite3 )
+ use tk && cffi_targets+=( tkinter/tklib )
+
+ local t
+ # all modules except tkinter output to .
+ # tkinter outputs to the correct dir ...
+ cd "${ED%/}${INSDESTTREE}"/lib_pypy || die
+ for t in "${cffi_targets[@]}"; do
+ # tkinter doesn't work via -m
+ "${PYTHON}" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
+ done
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
new file mode 100644
index 00000000000..d53afe97fb4
--- /dev/null
+++ b/dev-python/pypy/Manifest
@@ -0,0 +1,5 @@
+DIST pypy-2.3.1-src.tar.bz2 15225332 SHA256 3fd10d97c0177c33ed358a78eb26f5bf1f91b266af853564b1a9d8c310a1e439 SHA512 86aab86c5f413cdd6a56680915605de5c1416255b43a8dce1b4dcf8f1febdb3275076a4a9c7de30002387d59e4171a52da2528436eb205d8d947de7edd049c65 WHIRLPOOL c78d41240f1803d9461f797fd0ef647a40a6990a4e3a504e80a0eaaf460d052bb60fe6240cacdb3ee8737500c9c7f418b1d55c619d01ac7b73aace3d82157aa6
+DIST pypy-2.4.0-src.tar.bz2 15495214 SHA256 38810007aee4885ca0703b566db6594dd7649adaaa287df7a1012f10e067740f SHA512 91b41ed80a6ff0d7b2b134a7802f098de35ffd2068dc3e477d27b0bc821c6d329eb8bcad4db4a5ff9ff429830d4abfbeb435a2a2d2d9bbc2c36f2d21af0b2e0c WHIRLPOOL affb14b805b2dcb8b579dd421bfb8276e80d3b31cea41bf57ad5dd9260e2e27d838b0303e4a3af5ca38b0b4f08ac88b142d6f1db20753bec6f8cbfdfc482099b
+DIST pypy-2.5.1-src.tar.bz2 16740876 SHA256 ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a SHA512 ac4cab47566d7d4e1a293a680e0dffa301c99a8329c2e68f645f186c0266cbe8f045a03e392c0cc2112a16178037cd978b7867ad073bf5dd957dd19f4c818067 WHIRLPOOL 6f16c4090780081dfe1d4642186262c66d4ac1a4b3b8311e573bfa6029eb7aac0483b3e48cad5ce03879391a4e316c0186d33fac5e86d0024ff20cc6d4dc0dd3
+DIST pypy-2.6.0-src.tar.bz2 16858400 SHA256 9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9 SHA512 82a6a44c0c551a1291215394610e5331cf83216b38ac9f1a79a3eab53ba2933b121c3154b58cead814c73a1da1fc95d895324bb0c43e8e0429438b0dea527cc4 WHIRLPOOL e536ff5d3b393c6834fd721f383318b5dcef79046f475b0f1fe737c67c56e8769cabc0a35f553da5dc475a255c5711de01bd6d42e541cabbab3b9e30f20c9a5c
+DIST python-gentoo-patches-2.7.10-0.tar.xz 12892 SHA256 c9a838bd62ae50cc385da23a837acfd05f2b74e4f086c9c76eb4d3aa5366ef6d SHA512 5f100944635e360691dc0a2b340a906646c4ae9ee558246ddffc56e8b15d389f25f1fbdc1db4cc08e7d29560d04d66b058b3904902899d58ecae8c408ebdf056 WHIRLPOOL f69e9a518bb7ee50c1b262a21e70e1e2443f859ee6d2f4fa84421120dbd054a06ce8dd6cfea8512cbc64bce806322b879c25c561d5eb05e1ba6cc15035b373a9
diff --git a/dev-python/pypy/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch b/dev-python/pypy/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
new file mode 100644
index 00000000000..65321bb60e6
--- /dev/null
+++ b/dev-python/pypy/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
@@ -0,0 +1,11 @@
+--- a/lib-python/2.7/distutils/unixccompiler.py
++++ b/lib-python/2.7/distutils/unixccompiler.py
+@@ -297,7 +297,7 @@
+ # this time, there's no way to determine this information from
+ # the configuration data stored in the Python installation, so
+ # we use this hack.
+- compiler = os.path.basename(sysconfig.get_config_var("CC"))
++ compiler = os.path.basename(self.compiler[0])
+ if sys.platform[:6] == "darwin":
+ # MacOSX's linker doesn't understand the -R flag at all
+ return "-L" + dir
diff --git a/dev-python/pypy/files/1.9-scripts-location.patch b/dev-python/pypy/files/1.9-scripts-location.patch
new file mode 100644
index 00000000000..74539088297
--- /dev/null
+++ b/dev-python/pypy/files/1.9-scripts-location.patch
@@ -0,0 +1,11 @@
+--- a/lib-python/2.7/distutils/command/install.py
++++ b/lib-python/2.7/distutils/command/install.py
+@@ -87,7 +87,7 @@
+ 'purelib': '$base/site-packages',
+ 'platlib': '$base/site-packages',
+ 'headers': '$base/include',
+- 'scripts': '$base/bin',
++ 'scripts': '/usr/bin',
+ 'data' : '$base',
+ },
+ }
diff --git a/dev-python/pypy/files/2.3-21_all_distutils_c++.patch b/dev-python/pypy/files/2.3-21_all_distutils_c++.patch
new file mode 100644
index 00000000000..2787360c15b
--- /dev/null
+++ b/dev-python/pypy/files/2.3-21_all_distutils_c++.patch
@@ -0,0 +1,321 @@
+http://bugs.python.org/issue1222585
+
+--- Lib/distutils/cygwinccompiler.py
++++ Lib/distutils/cygwinccompiler.py
+@@ -117,8 +117,10 @@
+ # dllwrap 2.10.90 is buggy
+ if self.ld_version >= "2.10.90":
+ self.linker_dll = "gcc"
++ self.linker_dll_cxx = "g++"
+ else:
+ self.linker_dll = "dllwrap"
++ self.linker_dll_cxx = "dllwrap"
+
+ # ld_version >= "2.13" support -shared so use it instead of
+ # -mdll -static
+@@ -132,9 +134,13 @@
+ self.set_executables(compiler='gcc -mcygwin -O -Wall',
+ compiler_so='gcc -mcygwin -mdll -O -Wall',
+ compiler_cxx='g++ -mcygwin -O -Wall',
++ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+ linker_exe='gcc -mcygwin',
+ linker_so=('%s -mcygwin %s' %
+- (self.linker_dll, shared_option)))
++ (self.linker_dll, shared_option)),
++ linker_exe_cxx='g++ -mcygwin',
++ linker_so_cxx=('%s -mcygwin %s' %
++ (self.linker_dll_cxx, shared_option)))
+
+ # cygwin and mingw32 need different sets of libraries
+ if self.gcc_version == "2.91.57":
+@@ -160,8 +166,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -327,9 +337,14 @@
+ self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+ compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+ compiler_cxx='g++%s -O -Wall' % no_cygwin,
++ compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+ linker_exe='gcc%s' % no_cygwin,
+ linker_so='%s%s %s %s'
+ % (self.linker_dll, no_cygwin,
++ shared_option, entry_point),
++ linker_exe_cxx='g++%s' % no_cygwin,
++ linker_so_cxx='%s%s %s %s'
++ % (self.linker_dll_cxx, no_cygwin,
+ shared_option, entry_point))
+ # Maybe we should also append -mthreads, but then the finished
+ # dlls need another dll (mingwm10.dll see Mingw32 docs)
+--- Lib/distutils/emxccompiler.py
++++ Lib/distutils/emxccompiler.py
+@@ -65,8 +65,12 @@
+ # XXX optimization, warnings etc. should be customizable.
+ self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+
+ # want the gcc library statically linked (so that we don't have
+ # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+--- Lib/distutils/sysconfig_cpython.py
++++ Lib/distutils/sysconfig_cpython.py
+@@ -170,10 +170,12 @@
+ _osx_support.customize_compiler(_config_vars)
+ _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+
+- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
+- 'ARFLAGS')
++ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'SO', 'AR', 'ARFLAGS')
++
++ cflags = ''
++ cxxflags = ''
+
+ if 'CC' in os.environ:
+ newcc = os.environ['CC']
+@@ -188,19 +190,27 @@
+ cxx = os.environ['CXX']
+ if 'LDSHARED' in os.environ:
+ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
+ if 'CPP' in os.environ:
+ cpp = os.environ['CPP']
+ else:
+ cpp = cc + " -E" # not always
+ if 'LDFLAGS' in os.environ:
+ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+ if 'CFLAGS' in os.environ:
+- cflags = opt + ' ' + os.environ['CFLAGS']
++ cflags = os.environ['CFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+ if 'CPPFLAGS' in os.environ:
+ cpp = cpp + ' ' + os.environ['CPPFLAGS']
+ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+ if 'AR' in os.environ:
+ ar = os.environ['AR']
+ if 'ARFLAGS' in os.environ:
+@@ -209,13 +219,17 @@
+ archiver = ar + ' ' + ar_flags
+
+ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
+ compiler.set_executables(
+ preprocessor=cpp,
+ compiler=cc_cmd,
+ compiler_so=cc_cmd + ' ' + ccshared,
+- compiler_cxx=cxx,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+ linker_so=ldshared,
+ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx,
+ archiver=archiver)
+
+ compiler.shared_lib_extension = so_ext
+--- Lib/distutils/unixccompiler.py
++++ Lib/distutils/unixccompiler.py
+@@ -55,14 +55,17 @@
+ # are pretty generic; they will probably have to be set by an outsider
+ # (eg. using information discovered by the sysconfig about building
+ # Python extensions).
+- executables = {'preprocessor' : None,
+- 'compiler' : ["cc"],
+- 'compiler_so' : ["cc"],
+- 'compiler_cxx' : ["cc"],
+- 'linker_so' : ["cc", "-shared"],
+- 'linker_exe' : ["cc"],
+- 'archiver' : ["ar", "-cr"],
+- 'ranlib' : None,
++ executables = {'preprocessor' : None,
++ 'compiler' : ["cc"],
++ 'compiler_so' : ["cc"],
++ 'compiler_cxx' : ["c++"],
++ 'compiler_so_cxx' : ["c++"],
++ 'linker_so' : ["cc", "-shared"],
++ 'linker_exe' : ["cc"],
++ 'linker_so_cxx' : ["c++", "-shared"],
++ 'linker_exe_cxx' : ["c++"],
++ 'archiver' : ["ar", "-cr"],
++ 'ranlib' : None,
+ }
+
+ if sys.platform[:6] == "darwin":
+@@ -112,12 +115,19 @@
+
+ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+ compiler_so = self.compiler_so
++ compiler_so_cxx = self.compiler_so_cxx
+ if sys.platform == 'darwin':
+ compiler_so = _osx_support.compiler_fixup(compiler_so,
+ cc_args + extra_postargs)
++ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++ cc_args + extra_postargs)
+ try:
+- self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -174,23 +184,16 @@
+ ld_args.extend(extra_postargs)
+ self.mkpath(os.path.dirname(output_filename))
+ try:
+- if target_desc == CCompiler.EXECUTABLE:
+- linker = self.linker_exe[:]
++ if target_lang == "c++":
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe_cxx[:]
++ else:
++ linker = self.linker_so_cxx[:]
+ else:
+- linker = self.linker_so[:]
+- if target_lang == "c++" and self.compiler_cxx:
+- # skip over environment variable settings if /usr/bin/env
+- # is used to set up the linker's environment.
+- # This is needed on OSX. Note: this assumes that the
+- # normal and C++ compiler have the same environment
+- # settings.
+- i = 0
+- if os.path.basename(linker[0]) == "env":
+- i = 1
+- while '=' in linker[i]:
+- i = i + 1
+-
+- linker[i] = self.compiler_cxx[i]
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe[:]
++ else:
++ linker = self.linker_so[:]
+
+ if sys.platform == 'darwin':
+ linker = _osx_support.compiler_fixup(linker, ld_args)
+--- Lib/_osx_support.py
++++ Lib/_osx_support.py
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+- 'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+--- a/distutils/sysconfig_pypy.py
++++ b/distutils/sysconfig_pypy.py
+@@ -123,7 +123,55 @@
+ optional C speedup components.
+ """
+ if compiler.compiler_type == "unix":
+- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
++ cc = ' '.join(compiler.compiler)
++ cxx = ' '.join(compiler.compiler_cxx)
++ ldshared = ' '.join(compiler.linker_so)
++ ldcxxshared = ' '.join(compiler.linker_so_cxx)
++
++ cflags = ''
++ cxxflags = ''
++ ccshared = '-fPIC'
++
++ if 'CC' in os.environ:
++ cc = os.environ['CC']
++ if 'CXX' in os.environ:
++ cxx = os.environ['CXX']
++ if 'LDSHARED' in os.environ:
++ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
++ if 'CPP' in os.environ:
++ cpp = os.environ['CPP']
++ else:
++ cpp = cc + " -E" # not always
++ if 'LDFLAGS' in os.environ:
++ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
++ if 'CFLAGS' in os.environ:
++ cflags = os.environ['CFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
++ if 'CPPFLAGS' in os.environ:
++ cpp = cpp + ' ' + os.environ['CPPFLAGS']
++ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
++
++ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
++ compiler.set_executables(
++ preprocessor=cpp,
++ compiler=cc_cmd,
++ compiler_so=cc_cmd + ' ' + ccshared,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
++ linker_so=ldshared,
++ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx)
+ compiler.shared_lib_extension = get_config_var('SO')
+ if "CPPFLAGS" in os.environ:
+ cppflags = shlex.split(os.environ["CPPFLAGS"])
diff --git a/dev-python/pypy/files/2.3.1-shared-lib.patch b/dev-python/pypy/files/2.3.1-shared-lib.patch
new file mode 100644
index 00000000000..ae1139f8986
--- /dev/null
+++ b/dev-python/pypy/files/2.3.1-shared-lib.patch
@@ -0,0 +1,11 @@
+--- rpython/translator/platform/posix.py
++++ rpython/translator/platform/posix.py
+@@ -180,7 +180,7 @@
+ 'int main(int argc, char* argv[]) '
+ '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')
+ m.rule('$(DEFAULT_TARGET)', ['$(TARGET)', 'main.o'],
+- '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) -o $@')
++ '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) \'-Wl,-rpath,$$ORIGIN\' -o $@')
+
+ return m
+
diff --git a/dev-python/pypy/files/2.5.0-shared-lib.patch b/dev-python/pypy/files/2.5.0-shared-lib.patch
new file mode 100644
index 00000000000..ddd74730f3d
--- /dev/null
+++ b/dev-python/pypy/files/2.5.0-shared-lib.patch
@@ -0,0 +1,12 @@
+diff -ur pypy-2.5.0-src.orig/rpython/translator/platform/posix.py pypy-2.5.0-src/rpython/translator/platform/posix.py
+--- rpython/translator/platform/posix.py 2015-02-03 05:12:49.000000000 +0800
++++ rpython/translator/platform/posix.py 2015-03-22 07:36:01.420116684 +0800
+@@ -183,7 +183,7 @@
+ 'int main(int argc, char* argv[]) '
+ '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')
+ m.rule('$(DEFAULT_TARGET)', ['$(TARGET)', 'main.o'],
+- '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) -o $@ $(RPATH_FLAGS)')
++ '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) \'-Wl,-rpath,$$ORIGIN\' -o $@')
+
+ return m
+
diff --git a/dev-python/pypy/files/2.5.0_all_distutils_cxx.patch b/dev-python/pypy/files/2.5.0_all_distutils_cxx.patch
new file mode 100644
index 00000000000..aa298d0df64
--- /dev/null
+++ b/dev-python/pypy/files/2.5.0_all_distutils_cxx.patch
@@ -0,0 +1,324 @@
+http://bugs.python.org/issue1222585
+
+--- _osx_support.py
++++ _osx_support.py
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+- 'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+--- distutils/sysconfig_pypy.py
++++ distutils/sysconfig_pypy.py
+@@ -123,7 +123,55 @@
+ optional C speedup components.
+ """
+ if compiler.compiler_type == "unix":
+- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
++ cc = ' '.join(compiler.compiler)
++ cxx = ' '.join(compiler.compiler_cxx)
++ ldshared = ' '.join(compiler.linker_so)
++ ldcxxshared = ' '.join(compiler.linker_so_cxx)
++
++ cflags = ''
++ cxxflags = ''
++ ccshared = '-fPIC'
++
++ if 'CC' in os.environ:
++ cc = os.environ['CC']
++ if 'CXX' in os.environ:
++ cxx = os.environ['CXX']
++ if 'LDSHARED' in os.environ:
++ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
++ if 'CPP' in os.environ:
++ cpp = os.environ['CPP']
++ else:
++ cpp = cc + " -E" # not always
++ if 'LDFLAGS' in os.environ:
++ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
++ if 'CFLAGS' in os.environ:
++ cflags = os.environ['CFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
++ if 'CPPFLAGS' in os.environ:
++ cpp = cpp + ' ' + os.environ['CPPFLAGS']
++ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
++
++ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
++ compiler.set_executables(
++ preprocessor=cpp,
++ compiler=cc_cmd,
++ compiler_so=cc_cmd + ' ' + ccshared,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
++ linker_so=ldshared,
++ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx)
+ compiler.shared_lib_extension = get_config_var('SO')
+ if "CPPFLAGS" in os.environ:
+ cppflags = shlex.split(os.environ["CPPFLAGS"])
+--- distutils/cygwinccompiler.py
++++ distutils/cygwinccompiler.py
+@@ -117,8 +117,10 @@
+ # dllwrap 2.10.90 is buggy
+ if self.ld_version >= "2.10.90":
+ self.linker_dll = "gcc"
++ self.linker_dll_cxx = "g++"
+ else:
+ self.linker_dll = "dllwrap"
++ self.linker_dll_cxx = "dllwrap"
+
+ # ld_version >= "2.13" support -shared so use it instead of
+ # -mdll -static
+@@ -132,9 +134,13 @@
+ self.set_executables(compiler='gcc -mcygwin -O -Wall',
+ compiler_so='gcc -mcygwin -mdll -O -Wall',
+ compiler_cxx='g++ -mcygwin -O -Wall',
++ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+ linker_exe='gcc -mcygwin',
+ linker_so=('%s -mcygwin %s' %
+- (self.linker_dll, shared_option)))
++ (self.linker_dll, shared_option)),
++ linker_exe_cxx='g++ -mcygwin',
++ linker_so_cxx=('%s -mcygwin %s' %
++ (self.linker_dll_cxx, shared_option)))
+
+ # cygwin and mingw32 need different sets of libraries
+ if self.gcc_version == "2.91.57":
+@@ -160,8 +166,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -327,9 +337,14 @@
+ self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+ compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+ compiler_cxx='g++%s -O -Wall' % no_cygwin,
++ compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+ linker_exe='gcc%s' % no_cygwin,
+ linker_so='%s%s %s %s'
+ % (self.linker_dll, no_cygwin,
++ shared_option, entry_point),
++ linker_exe_cxx='g++%s' % no_cygwin,
++ linker_so_cxx='%s%s %s %s'
++ % (self.linker_dll_cxx, no_cygwin,
+ shared_option, entry_point))
+ # Maybe we should also append -mthreads, but then the finished
+ # dlls need another dll (mingwm10.dll see Mingw32 docs)
+http://bugs.python.org/issue1222585
+
+--- distutils/emxccompiler.py
++++ distutils/emxccompiler.py
+@@ -65,8 +65,12 @@
+ # XXX optimization, warnings etc. should be customizable.
+ self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+
+ # want the gcc library statically linked (so that we don't have
+ # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+--- distutils/sysconfig_cpython.py
++++ distutils/sysconfig_cpython.py
+@@ -170,10 +170,12 @@
+ _osx_support.customize_compiler(_config_vars)
+ _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+
+- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
+- 'ARFLAGS')
++ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'SO', 'AR', 'ARFLAGS')
++
++ cflags = ''
++ cxxflags = ''
+
+ if 'CC' in os.environ:
+ newcc = os.environ['CC']
+@@ -188,19 +190,27 @@
+ cxx = os.environ['CXX']
+ if 'LDSHARED' in os.environ:
+ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
+ if 'CPP' in os.environ:
+ cpp = os.environ['CPP']
+ else:
+ cpp = cc + " -E" # not always
+ if 'LDFLAGS' in os.environ:
+ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+ if 'CFLAGS' in os.environ:
+- cflags = opt + ' ' + os.environ['CFLAGS']
++ cflags = os.environ['CFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+ if 'CPPFLAGS' in os.environ:
+ cpp = cpp + ' ' + os.environ['CPPFLAGS']
+ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+ if 'AR' in os.environ:
+ ar = os.environ['AR']
+ if 'ARFLAGS' in os.environ:
+@@ -209,13 +219,17 @@
+ archiver = ar + ' ' + ar_flags
+
+ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
+ compiler.set_executables(
+ preprocessor=cpp,
+ compiler=cc_cmd,
+ compiler_so=cc_cmd + ' ' + ccshared,
+- compiler_cxx=cxx,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+ linker_so=ldshared,
+ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx,
+ archiver=archiver)
+
+ compiler.shared_lib_extension = so_ext
+--- distutils/unixccompiler.py
++++ distutils/unixccompiler.py
+@@ -55,14 +55,17 @@
+ # are pretty generic; they will probably have to be set by an outsider
+ # (eg. using information discovered by the sysconfig about building
+ # Python extensions).
+- executables = {'preprocessor' : None,
+- 'compiler' : ["cc"],
+- 'compiler_so' : ["cc"],
+- 'compiler_cxx' : ["c++"], # pypy: changed, 'cc' is bogus
+- 'linker_so' : ["cc", "-shared"],
+- 'linker_exe' : ["cc"],
+- 'archiver' : ["ar", "-cr"],
+- 'ranlib' : None,
++ executables = {'preprocessor' : None,
++ 'compiler' : ["cc"],
++ 'compiler_so' : ["cc"],
++ 'compiler_cxx' : ["c++"],
++ 'compiler_so_cxx' : ["c++"],
++ 'linker_so' : ["cc", "-shared"],
++ 'linker_exe' : ["cc"],
++ 'linker_so_cxx' : ["c++", "-shared"],
++ 'linker_exe_cxx' : ["c++"],
++ 'archiver' : ["ar", "-cr"],
++ 'ranlib' : None,
+ }
+
+ if sys.platform[:6] == "darwin":
+@@ -112,12 +115,19 @@
+
+ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+ compiler_so = self.compiler_so
++ compiler_so_cxx = self.compiler_so_cxx
+ if sys.platform == 'darwin':
+ compiler_so = _osx_support.compiler_fixup(compiler_so,
+ cc_args + extra_postargs)
++ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++ cc_args + extra_postargs)
+ try:
+- self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -174,23 +184,16 @@
+ ld_args.extend(extra_postargs)
+ self.mkpath(os.path.dirname(output_filename))
+ try:
+- if target_desc == CCompiler.EXECUTABLE:
+- linker = self.linker_exe[:]
++ if target_lang == "c++":
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe_cxx[:]
++ else:
++ linker = self.linker_so_cxx[:]
+ else:
+- linker = self.linker_so[:]
+- if target_lang == "c++" and self.compiler_cxx:
+- # skip over environment variable settings if /usr/bin/env
+- # is used to set up the linker's environment.
+- # This is needed on OSX. Note: this assumes that the
+- # normal and C++ compiler have the same environment
+- # settings.
+- i = 0
+- if os.path.basename(linker[0]) == "env":
+- i = 1
+- while '=' in linker[i]:
+- i = i + 1
+-
+- linker[i] = self.compiler_cxx[i]
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe[:]
++ else:
++ linker = self.linker_so[:]
+
+ if sys.platform == 'darwin':
+ linker = _osx_support.compiler_fixup(linker, ld_args)
+
diff --git a/dev-python/pypy/metadata.xml b/dev-python/pypy/metadata.xml
new file mode 100644
index 00000000000..a90c29e4bb2
--- /dev/null
+++ b/dev-python/pypy/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alicef@gentoo.org</email>
+ <name>Alice Ferrazzi</name>
+ </maintainer>
+ <use>
+ <flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint. \
+ This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86,
+ at the cost of lengthened build time. Please note that you will need an extra ~1G of extra RAM or \
+ swap since the translation memory (unused at the time) is not freed when the C compiler is spawned.</flag>
+ <flag name="sandbox">Enable sandboxing functionality</flag>
+ <flag name="shadowstack">Use a shadow stack for finding GC roots</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pypy/pypy-2.3.1-r2.ebuild b/dev-python/pypy/pypy-2.3.1-r2.ebuild
new file mode 100644
index 00000000000..b469181bb41
--- /dev/null
+++ b/dev-python/pypy/pypy-2.3.1-r2.ebuild
@@ -0,0 +1,235 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit check-reqs eutils multilib multiprocessing pax-utils \
+ python-any-r1 toolchain-funcs vcs-snapshot versionator
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/${PN}/${PN}/get/release-${PV}.tar.bz2 -> ${P}-src.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 doc gdbm +jit low-memory ncurses sandbox shadowstack sqlite cpu_flags_x86_sse2 tk"
+
+RDEPEND=">=sys-libs/zlib-1.1.3:0=
+ virtual/libffi:0=
+ virtual/libintl:0=
+ dev-libs/expat:0=
+ dev-libs/openssl:0=
+ bzip2? ( app-arch/bzip2:0= )
+ gdbm? ( sys-libs/gdbm:0= )
+ ncurses? ( sys-libs/ncurses:5= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy-bin:0"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )
+ ${PYTHON_DEPS}"
+PDEPEND="app-admin/python-updater"
+
+S="${WORKDIR}/${P}-src"
+
+pkg_pretend() {
+ if use low-memory; then
+ if ! has_version dev-python/pypy && ! has_version dev-python/pypy-bin
+ then
+ eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
+ eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
+ eerror
+ eerror " $ emerge -1v dev-python/pypy-bin"
+ eerror
+ eerror "before attempting to build dev-python/pypy[low-memory]."
+ die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
+ fi
+
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ local force_pypy
+
+ pkg_pretend
+
+ if has_version dev-python/pypy || has_version dev-python/pypy-bin
+ then
+ if [[ ! ${EPYTHON} ]] || use low-memory; then
+ einfo "Using already-installed PyPy to perform the translation."
+ force_pypy=1
+ else
+ einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
+ einfo "recommends using PyPy for that. If you wish to do so, please unset"
+ einfo "the EPYTHON variable."
+ fi
+ fi
+
+ if [[ ${force_pypy} ]]; then
+ # set manually since python_setup needs virtual/pypy
+ # and we don't force the dep
+ python_export pypy EPYTHON PYTHON
+ python_wrapper_setup
+ else
+ python-any-r1_pkg_setup
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
+ "${FILESDIR}"/2.3.1-shared-lib.patch # 517002
+
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}/2.3-21_all_distutils_c++.patch"
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --shared
+ $(usex jit -Ojit -O2)
+ $(usex shadowstack --gcrootfinder=shadowstack '')
+ $(usex sandbox --sandbox '')
+
+ ${jit_backend}
+ --make-jobs=$(makeopts_jobs)
+
+ pypy/goal/targetpypystandalone
+ )
+
+ # Avoid linking against libraries disabled by use flags
+ local opts=(
+ bzip2:bz2
+ ncurses:_minimal_curses
+ )
+
+ local opt
+ for opt in "${opts[@]}"; do
+ local flag=${opt%:*}
+ local mod=${opt#*:}
+
+ args+=(
+ $(usex ${flag} --withmod --withoutmod)-${mod}
+ )
+ done
+
+ local interp=( "${PYTHON}" )
+ if use low-memory; then
+ interp=( env PYPY_GC_MAX_DELTA=200MB
+ "${PYTHON}" --jit loop_longevity=300 )
+ fi
+
+ set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "compile error"
+
+ use doc && emake -C pypy/doc/ html
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy/pypy-2.4.0.ebuild b/dev-python/pypy/pypy-2.4.0.ebuild
new file mode 100644
index 00000000000..15faabb3d29
--- /dev/null
+++ b/dev-python/pypy/pypy-2.4.0.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit check-reqs eutils multilib multiprocessing pax-utils \
+ python-any-r1 toolchain-funcs versionator
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${P}-src.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 doc gdbm +jit low-memory ncurses sandbox shadowstack sqlite cpu_flags_x86_sse2 tk"
+
+RDEPEND=">=sys-libs/zlib-1.1.3:0=
+ virtual/libffi:0=
+ virtual/libintl:0=
+ dev-libs/expat:0=
+ dev-libs/openssl:0=
+ bzip2? ( app-arch/bzip2:0= )
+ gdbm? ( sys-libs/gdbm:0= )
+ ncurses? ( sys-libs/ncurses:5= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy-bin:0"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )
+ ${PYTHON_DEPS}"
+PDEPEND="app-admin/python-updater"
+
+S="${WORKDIR}/${P}-src"
+
+pkg_pretend() {
+ if use low-memory; then
+ if ! python_is_installed pypy; then
+ eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
+ eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
+ eerror
+ eerror " $ emerge -1v dev-python/pypy-bin"
+ eerror
+ eerror "before attempting to build dev-python/pypy[low-memory]."
+ die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
+ fi
+
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ pkg_pretend
+
+ if python_is_installed pypy; then
+ if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
+ einfo "Using already-installed PyPy to perform the translation."
+ local EPYTHON=pypy
+ else
+ einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
+ einfo "recommends using PyPy for that. If you wish to do so, please unset"
+ einfo "the EPYTHON variable."
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
+ "${FILESDIR}"/2.3.1-shared-lib.patch # 517002
+
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}/2.3-21_all_distutils_c++.patch"
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --shared
+ $(usex jit -Ojit -O2)
+ $(usex shadowstack --gcrootfinder=shadowstack '')
+ $(usex sandbox --sandbox '')
+
+ ${jit_backend}
+ --make-jobs=$(makeopts_jobs)
+
+ pypy/goal/targetpypystandalone
+ )
+
+ # Avoid linking against libraries disabled by use flags
+ local opts=(
+ bzip2:bz2
+ ncurses:_minimal_curses
+ )
+
+ local opt
+ for opt in "${opts[@]}"; do
+ local flag=${opt%:*}
+ local mod=${opt#*:}
+
+ args+=(
+ $(usex ${flag} --withmod --withoutmod)-${mod}
+ )
+ done
+
+ local interp=( "${PYTHON}" )
+ if use low-memory; then
+ interp=( env PYPY_GC_MAX_DELTA=200MB
+ "${PYTHON}" --jit loop_longevity=300 )
+ fi
+
+ set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "compile error"
+
+ use doc && emake -C pypy/doc/ html
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy/pypy-2.5.1.ebuild b/dev-python/pypy/pypy-2.5.1.ebuild
new file mode 100644
index 00000000000..c07de498ec7
--- /dev/null
+++ b/dev-python/pypy/pypy-2.5.1.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit check-reqs eutils multilib multiprocessing pax-utils python-any-r1 toolchain-funcs versionator
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${P}-src.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 doc gdbm +jit low-memory ncurses sandbox shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+RDEPEND=">=sys-libs/zlib-1.1.3:0=
+ virtual/libffi:0=
+ virtual/libintl:0=
+ dev-libs/expat:0=
+ dev-libs/openssl:0=[-bindist]
+ bzip2? ( app-arch/bzip2:0= )
+ gdbm? ( sys-libs/gdbm:0= )
+ ncurses? ( sys-libs/ncurses:5= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy-bin:0"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )
+ ${PYTHON_DEPS}
+ test? ( dev-python/pytest )"
+PDEPEND="app-admin/python-updater"
+
+S="${WORKDIR}/${P}-src"
+
+pkg_pretend() {
+ if use low-memory; then
+ if ! python_is_installed pypy; then
+ eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
+ eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
+ eerror
+ eerror " $ emerge -1v dev-python/pypy-bin"
+ eerror
+ eerror "before attempting to build dev-python/pypy[low-memory]."
+ die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
+ fi
+
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ pkg_pretend
+
+ if python_is_installed pypy; then
+ if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
+ einfo "Using already-installed PyPy to perform the translation."
+ local EPYTHON=pypy
+ else
+ einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
+ einfo "recommends using PyPy for that. If you wish to do so, please unset"
+ einfo "the EPYTHON variable."
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
+ "${FILESDIR}"/2.5.0-shared-lib.patch # 517002
+
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --shared
+ $(usex jit -Ojit -O2)
+ $(usex shadowstack --gcrootfinder=shadowstack '')
+ $(usex sandbox --sandbox '')
+
+ ${jit_backend}
+ --make-jobs=$(makeopts_jobs)
+
+ pypy/goal/targetpypystandalone
+ )
+
+ # Avoid linking against libraries disabled by use flags
+ local opts=(
+ bzip2:bz2
+ ncurses:_minimal_curses
+ )
+
+ local opt
+ for opt in "${opts[@]}"; do
+ local flag=${opt%:*}
+ local mod=${opt#*:}
+
+ args+=(
+ $(usex ${flag} --withmod --withoutmod)-${mod}
+ )
+ done
+
+ local interp=( "${PYTHON}" )
+ if use low-memory; then
+ interp=( env PYPY_GC_MAX_DELTA=200MB
+ "${PYTHON}" --jit loop_longevity=300 )
+ fi
+
+ set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "compile error"
+
+ use doc && emake -C pypy/doc/ html
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy/pypy-2.6.0.ebuild b/dev-python/pypy/pypy-2.6.0.ebuild
new file mode 100644
index 00000000000..d73cb5e5c1c
--- /dev/null
+++ b/dev-python/pypy/pypy-2.6.0.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit check-reqs eutils multilib multiprocessing pax-utils python-any-r1 toolchain-funcs versionator
+
+CPY_PATCHSET_VERSION="2.7.10-0"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${P}-src.tar.bz2
+ http://dev.gentoo.org/~floppym/python/python-gentoo-patches-${CPY_PATCHSET_VERSION}.tar.xz"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 doc gdbm +jit low-memory ncurses sandbox shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+RDEPEND=">=sys-libs/zlib-1.1.3:0=
+ virtual/libffi:0=
+ virtual/libintl:0=
+ dev-libs/expat:0=
+ dev-libs/openssl:0=[-bindist]
+ bzip2? ( app-arch/bzip2:0= )
+ gdbm? ( sys-libs/gdbm:0= )
+ ncurses? ( sys-libs/ncurses:5= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy-bin:0"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx )
+ ${PYTHON_DEPS}
+ test? ( dev-python/pytest )"
+PDEPEND="app-admin/python-updater"
+
+S="${WORKDIR}/${P}-src"
+
+pkg_pretend() {
+ if use low-memory; then
+ if ! python_is_installed pypy; then
+ eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
+ eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
+ eerror
+ eerror " $ emerge -1v dev-python/pypy-bin"
+ eerror
+ eerror "before attempting to build dev-python/pypy[low-memory]."
+ die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
+ fi
+
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ pkg_pretend
+
+ if python_is_installed pypy; then
+ if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
+ einfo "Using already-installed PyPy to perform the translation."
+ local EPYTHON=pypy
+ else
+ einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
+ einfo "recommends using PyPy for that. If you wish to do so, please unset"
+ einfo "the EPYTHON variable."
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
+ "${FILESDIR}"/2.5.0-shared-lib.patch # 517002
+
+ # apply CPython stdlib patches
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch \
+ "${WORKDIR}"/patches/22_all_turkish_locale.patch \
+ "${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --shared
+ $(usex jit -Ojit -O2)
+ $(usex shadowstack --gcrootfinder=shadowstack '')
+ $(usex sandbox --sandbox '')
+
+ ${jit_backend}
+ --make-jobs=$(makeopts_jobs)
+
+ pypy/goal/targetpypystandalone
+ )
+
+ # Avoid linking against libraries disabled by use flags
+ local opts=(
+ bzip2:bz2
+ ncurses:_minimal_curses
+ )
+
+ local opt
+ for opt in "${opts[@]}"; do
+ local flag=${opt%:*}
+ local mod=${opt#*:}
+
+ args+=(
+ $(usex ${flag} --withmod --withoutmod)-${mod}
+ )
+ done
+
+ local interp=( "${PYTHON}" )
+ if use low-memory; then
+ interp=( env PYPY_GC_MAX_DELTA=200MB
+ "${PYTHON}" --jit loop_longevity=300 )
+ fi
+
+ set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "compile error"
+
+ use doc && emake -C pypy/doc/ html
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi modules
+ # Please keep in sync with pypy/tool/release/package.py!
+#cffi_build_scripts = {
+# "sqlite3": "_sqlite3_build.py",
+# "audioop": "_audioop_build.py",
+# "tk": "_tkinter/tklib_build.py",
+# "curses": "_curses_build.py" if sys.platform != "win32" else None,
+# "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
+# "gdbm": "_gdbm_build.py" if sys.platform != "win32" else None,
+# "pwdgrp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
+ cffi_targets=( audioop curses syslog gdbm pwdgrp )
+ use gdbm && cffi_targets+=( gdbm )
+ use sqlite && cffi_targets+=( sqlite3 )
+ use tk && cffi_targets+=( tkinter/tklib )
+
+ local t
+ # all modules except tkinter output to .
+ # tkinter outputs to the correct dir ...
+ cd "${ED%/}${INSDESTTREE}"/lib_pypy || die
+ for t in "${cffi_targets[@]}"; do
+ # tkinter doesn't work via -m
+ "${PYTHON}" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
+ done
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy3-bin/Manifest b/dev-python/pypy3-bin/Manifest
new file mode 100644
index 00000000000..1d7e85ad79f
--- /dev/null
+++ b/dev-python/pypy3-bin/Manifest
@@ -0,0 +1,8 @@
+DIST pypy3-2.4.0-src.tar.bz2 14693194 SHA256 d9ba207d6eecf8a0dc4414e9f4e92db1abd143e8cc6ec4a6bdcac75b29f104f3 SHA512 7e2b0c21f1833b8cd61251c2d58c6a9f99207e5d582618f0036886ff28dcb313541dce1c36bd1b57b332a36a94b13e416bb7b67110be7c8ece8283749ba712be WHIRLPOOL bd02009c828b7b491b46b260d687d268561e5372766adccbcb58e87a3f1c545f293c54e5cdd6e6b7fb95feb678677137211ee890f106140ce1bc256f8563d2cd
+DIST pypy3-bin-2.4.0-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 9687272 SHA256 8f03fc87ec796877e5a13111f509a5d1c06284bc31133d25c4c9cca6a82f7039 SHA512 ec5e3ef4f2f4b06c31df5ab9fc4a9f7a2a08f744a0128e6ab8215767d4fba7a3e35e319ff9d9a0de4d018ed35eed24809c82928972a860a220ea45f284087770 WHIRLPOOL 15ba1d18ae4fc5d0968fa5c6cadfcb8762b258d683c770530ac35067ca91210f8d825facd775602a9d2b578542a4b760a0a11a9b0a6d59f539d4e7043fcad734
+DIST pypy3-bin-2.4.0-amd64+bzip2+jit+ncurses.tar.xz 11047984 SHA256 558176dacd1e3222fb56b8c3226077288281ee2a131149fdbb2a54561d5bc7d9 SHA512 cde76c37bf9c043a4fde4a2d07a04366f3c906562e6ed640544ac0228b511729b481c6cd6b7b25b80c02a69cdd02707d427edcd8e46e41313b31161313c6c5fb WHIRLPOOL 9eb8dc5d3319bf2c09baae38ecaa23c1f7ee38b4ea20f72a9fde3f68004ac4f3cbe807ff93e6cba5318745a251d09d2f951cb5a86f04c41b2e05d151d1f6cd03
+DIST pypy3-bin-2.4.0-amd64+bzip2+ncurses.tar.xz 6281232 SHA256 326115bcd7ad2d659b69842182dee4fc2adb558f20a3e44ab4b803fa70c43a21 SHA512 f938aa797e352f80a99095a15bf83a758f0c203adc402cf92494f909ad870457a28ae14b5959880e55898c2ce92ce0b08b05e3d691133758bca52f524c8aad73 WHIRLPOOL b0aa4c24d645aa914aa439646b813dfcae14e6731af86d4348d24637bbdb7f88a26d3a63ff5262749ee654715eaf5312beb4879341d222aaedfcd3e81acd2426
+DIST pypy3-bin-2.4.0-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 8159232 SHA256 65bb567693048894d13c7ffecda126a222ebb641dc6c6e0a899197da8f0844d8 SHA512 734e42d6962b4411d9beab55013454dd27bd18c342ed334e07f85e217cd7d992cbaffb36ee3e74469662860f130d1065a381e49a6b8287fa83736ffe75cb8a5a WHIRLPOOL a5b7ed4a177dc5c1322e79551166d3be8e478e969b223db4fe6a2e9fddaf2e4c22633726a667e3deca19763f44edd4e3f4c20c477da5d7e26c88f21d4ce70544
+DIST pypy3-bin-2.4.0-x86+bzip2+jit+ncurses+sse2.tar.xz 9121216 SHA256 5f03284815a313065b99da0154a08831e3ae2c6e43c4ce515de1aff60c4537ad SHA512 f069ece90666385eb8aade97ad81c4c6c2480dee1bf3b1cb520c4fc1d123d17f7ef2cbf7ed25b72b24e56165c08ded671c8bce74ed2ea2f1b6e57ca9fdd214ae WHIRLPOOL 8cf368e0efa416d3cba06ea61bc97ed7ead0e25f5008c948d1bec8d0494fd9908d1e6640414ffe7c6b6260badef41da114370f2a5ef28a63234203a604e1be4e
+DIST pypy3-bin-2.4.0-x86+bzip2+ncurses+sse2.tar.xz 5366816 SHA256 bff57d563dbce1b4858d87161c2338e5ed6ed20008a8dc4fb78cbb9e320d1188 SHA512 afb395257b0259b096a9fdbae405ffb021950dfda39ddc490777662ab77d0573b5b51e6381241c09debbca0a706637dba39c8644c878e541b83d68a94fc9ad1e WHIRLPOOL a1e1079a68b03b65a0680c65080d6c6dc48e4a652dd634bfaa805a6117c67da84bcc65ee2fe6711a61ab86a905bd2a6993e0ac88547a807eca3722f70ca890fb
+DIST pypy3-bin-2.4.0-x86+bzip2+ncurses.tar.xz 5439032 SHA256 3bd4e476ff76da1f3c111a11abe0ef72683ba719934ede1252c32de6200beb25 SHA512 d11805b704baa51097261f0886bd160f9d1a3e220ceeeaa5741c3aaf9ee8437479b2f371889dbe2ad72f16559de86c1e71bfd17f45375071cafc535d7c30b3cc WHIRLPOOL 41ef35df997da9aca90be8442001b6807c1a8dd0a7d4e66c0c925dc74546db35e6d54a2bf292c8bca732427786019e7e5041d19e6169e2573a058f269a0332ce
diff --git a/dev-python/pypy3-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch b/dev-python/pypy3-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
new file mode 100644
index 00000000000..29d99dcfdb7
--- /dev/null
+++ b/dev-python/pypy3-bin/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
@@ -0,0 +1,11 @@
+--- a/lib-python/3/distutils/unixccompiler.py
++++ b/lib-python/3/distutils/unixccompiler.py
+@@ -297,7 +297,7 @@
+ # this time, there's no way to determine this information from
+ # the configuration data stored in the Python installation, so
+ # we use this hack.
+- compiler = os.path.basename(sysconfig.get_config_var("CC"))
++ compiler = os.path.basename(self.compiler[0])
+ if sys.platform[:6] == "darwin":
+ # MacOSX's linker doesn't understand the -R flag at all
+ return "-L" + dir
diff --git a/dev-python/pypy3-bin/files/1.9-scripts-location.patch b/dev-python/pypy3-bin/files/1.9-scripts-location.patch
new file mode 100644
index 00000000000..6ed12856509
--- /dev/null
+++ b/dev-python/pypy3-bin/files/1.9-scripts-location.patch
@@ -0,0 +1,11 @@
+--- a/lib-python/3/distutils/command/install.py
++++ b/lib-python/3/distutils/command/install.py
+@@ -87,7 +87,7 @@
+ 'purelib': '$base/site-packages',
+ 'platlib': '$base/site-packages',
+ 'headers': '$base/include',
+- 'scripts': '$base/bin',
++ 'scripts': '/usr/bin',
+ 'data' : '$base',
+ },
+ }
diff --git a/dev-python/pypy3-bin/files/2.3.1-shared-lib.patch b/dev-python/pypy3-bin/files/2.3.1-shared-lib.patch
new file mode 100644
index 00000000000..ae1139f8986
--- /dev/null
+++ b/dev-python/pypy3-bin/files/2.3.1-shared-lib.patch
@@ -0,0 +1,11 @@
+--- rpython/translator/platform/posix.py
++++ rpython/translator/platform/posix.py
+@@ -180,7 +180,7 @@
+ 'int main(int argc, char* argv[]) '
+ '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')
+ m.rule('$(DEFAULT_TARGET)', ['$(TARGET)', 'main.o'],
+- '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) -o $@')
++ '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) \'-Wl,-rpath,$$ORIGIN\' -o $@')
+
+ return m
+
diff --git a/dev-python/pypy3-bin/metadata.xml b/dev-python/pypy3-bin/metadata.xml
new file mode 100644
index 00000000000..feca6569cb8
--- /dev/null
+++ b/dev-python/pypy3-bin/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alicef@gentoo.org</email>
+ <name>Alice Ferrazzi</name>
+ </maintainer>
+ <use>
+ <flag name="shadowstack">Use a shadow stack for finding GC roots</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pypy3-bin/pypy3-bin-2.4.0.ebuild b/dev-python/pypy3-bin/pypy3-bin-2.4.0.ebuild
new file mode 100644
index 00000000000..40859bc44e3
--- /dev/null
+++ b/dev-python/pypy3-bin/pypy3-bin-2.4.0.ebuild
@@ -0,0 +1,173 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# some random parts need python 2...
+PYTHON_COMPAT=( python2_7 pypy )
+inherit eutils multilib pax-utils python-any-r1 versionator
+
+BINHOST="http://dev.gentoo.org/~mgorny/dist/pypy-bin/${PV}"
+
+DESCRIPTION="A fast, compliant alternative implementation of Python 3 (binary package)"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/pypy3-${PV}-src.tar.bz2
+ amd64? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+ncurses.tar.xz
+ ) )
+ )
+ x86? (
+ cpu_flags_x86_sse2? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+sse2.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses+sse2.tar.xz
+ ) )
+ )
+ !cpu_flags_x86_sse2? (
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses.tar.xz
+ ) )
+ )
+ )"
+
+# Supported variants
+REQUIRED_USE="!jit? ( !shadowstack )
+ x86? ( !cpu_flags_x86_sse2? ( !jit !shadowstack ) )"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86"
+IUSE="gdbm +jit shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+# yep, world would be easier if people started filling subslots...
+RDEPEND="
+ app-arch/bzip2:0
+ dev-libs/expat:0
+ dev-libs/libffi:0
+ dev-libs/openssl:0
+ sys-libs/glibc:2.2
+ sys-libs/ncurses:5
+ sys-libs/zlib:0
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy3:0"
+DEPEND="app-arch/xz-utils
+ test? ( ${RDEPEND}
+ ${PYTHON_DEPS} )"
+# doc? ( ${PYTHON_DEPS}
+# dev-python/sphinx )
+PDEPEND="app-admin/python-updater"
+
+S=${WORKDIR}/pypy3-${PV}-src
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+
+ epatch_user
+}
+
+src_compile() {
+ # Tadaam! PyPy compiled!
+ mv "${WORKDIR}"/${P}*/{libpypy-c.so,pypy-c} . || die
+ mv "${WORKDIR}"/${P}*/include/*.h include/ || die
+ mv pypy/module/cpyext/include/*.h include/ || die
+ mv pypy/module/cpyext/include/numpy include/ || die
+
+ #use doc && emake -C pypy/doc/ html
+ #needed even without jit :( also needed in both compile and install phases
+ pax-mark m pypy-c
+
+ # ctypes config cache
+ # this one we need to do with python2 too...
+ "${PYTHON}" lib_pypy/ctypes_config_cache/rebuild.py \
+ || die "Failed to rebuild ctypes config cache"
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ # Test runner requires Python 2 too. However, it spawns PyPy3
+ # internally so that we end up testing the correct interpreter.
+ "${PYTHON}" ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy3"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy3/pypy-c /usr/bin/pypy3
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*3/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*3/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*3/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*3/{idlelib,tkinter} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*3/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ #use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy3 EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import _gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pypy3/Manifest b/dev-python/pypy3/Manifest
new file mode 100644
index 00000000000..1543f052ee8
--- /dev/null
+++ b/dev-python/pypy3/Manifest
@@ -0,0 +1 @@
+DIST pypy3-2.4.0-src.tar.bz2 14693194 SHA256 d9ba207d6eecf8a0dc4414e9f4e92db1abd143e8cc6ec4a6bdcac75b29f104f3 SHA512 7e2b0c21f1833b8cd61251c2d58c6a9f99207e5d582618f0036886ff28dcb313541dce1c36bd1b57b332a36a94b13e416bb7b67110be7c8ece8283749ba712be WHIRLPOOL bd02009c828b7b491b46b260d687d268561e5372766adccbcb58e87a3f1c545f293c54e5cdd6e6b7fb95feb678677137211ee890f106140ce1bc256f8563d2cd
diff --git a/dev-python/pypy3/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch b/dev-python/pypy3/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
new file mode 100644
index 00000000000..29d99dcfdb7
--- /dev/null
+++ b/dev-python/pypy3/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
@@ -0,0 +1,11 @@
+--- a/lib-python/3/distutils/unixccompiler.py
++++ b/lib-python/3/distutils/unixccompiler.py
+@@ -297,7 +297,7 @@
+ # this time, there's no way to determine this information from
+ # the configuration data stored in the Python installation, so
+ # we use this hack.
+- compiler = os.path.basename(sysconfig.get_config_var("CC"))
++ compiler = os.path.basename(self.compiler[0])
+ if sys.platform[:6] == "darwin":
+ # MacOSX's linker doesn't understand the -R flag at all
+ return "-L" + dir
diff --git a/dev-python/pypy3/files/1.9-scripts-location.patch b/dev-python/pypy3/files/1.9-scripts-location.patch
new file mode 100644
index 00000000000..6ed12856509
--- /dev/null
+++ b/dev-python/pypy3/files/1.9-scripts-location.patch
@@ -0,0 +1,11 @@
+--- a/lib-python/3/distutils/command/install.py
++++ b/lib-python/3/distutils/command/install.py
+@@ -87,7 +87,7 @@
+ 'purelib': '$base/site-packages',
+ 'platlib': '$base/site-packages',
+ 'headers': '$base/include',
+- 'scripts': '$base/bin',
++ 'scripts': '/usr/bin',
+ 'data' : '$base',
+ },
+ }
diff --git a/dev-python/pypy3/files/2.3.1-shared-lib.patch b/dev-python/pypy3/files/2.3.1-shared-lib.patch
new file mode 100644
index 00000000000..ae1139f8986
--- /dev/null
+++ b/dev-python/pypy3/files/2.3.1-shared-lib.patch
@@ -0,0 +1,11 @@
+--- rpython/translator/platform/posix.py
++++ rpython/translator/platform/posix.py
+@@ -180,7 +180,7 @@
+ 'int main(int argc, char* argv[]) '
+ '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')
+ m.rule('$(DEFAULT_TARGET)', ['$(TARGET)', 'main.o'],
+- '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) -o $@')
++ '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) \'-Wl,-rpath,$$ORIGIN\' -o $@')
+
+ return m
+
diff --git a/dev-python/pypy3/metadata.xml b/dev-python/pypy3/metadata.xml
new file mode 100644
index 00000000000..00d869b32b7
--- /dev/null
+++ b/dev-python/pypy3/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alicef@gentoo.org</email>
+ <name>Alice Ferrazzi</name>
+ </maintainer>
+ <use>
+ <flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint. This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86, at the cost of lengthened build time. Please note that you will need an extra ~1G of extra RAM or swap since the translation memory (unused at the time) is not freed when the C compiler is spawned.</flag>
+ <flag name="sandbox">Enable sandboxing functionality</flag>
+ <flag name="shadowstack">Use a shadow stack for finding GC roots</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pypy3/pypy3-2.4.0.ebuild b/dev-python/pypy3/pypy3-2.4.0.ebuild
new file mode 100644
index 00000000000..20b01f34f5f
--- /dev/null
+++ b/dev-python/pypy3/pypy3-2.4.0.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# pypy3 needs to be built using python 2
+PYTHON_COMPAT=( python2_7 pypy )
+inherit check-reqs eutils multilib multiprocessing pax-utils \
+ python-any-r1 toolchain-funcs versionator
+
+DESCRIPTION="A fast, compliant alternative implementation of Python 3"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${P}-src.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 gdbm +jit low-memory ncurses sandbox shadowstack sqlite cpu_flags_x86_sse2 tk"
+
+RDEPEND=">=sys-libs/zlib-1.1.3:0=
+ virtual/libffi:0=
+ virtual/libintl:0=
+ dev-libs/expat:0=
+ dev-libs/openssl:0=
+ bzip2? ( app-arch/bzip2:0= )
+ gdbm? ( sys-libs/gdbm:0= )
+ ncurses? ( sys-libs/ncurses:5= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy3-bin:0"
+DEPEND="${RDEPEND}
+ low-memory? ( virtual/pypy:0 )
+ !low-memory? ( ${PYTHON_DEPS} )"
+# doc? ( dev-python/sphinx )
+PDEPEND="app-admin/python-updater"
+
+S="${WORKDIR}/${P}-src"
+
+pkg_pretend() {
+ if use low-memory; then
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ pkg_pretend
+
+ # unset to allow forcing pypy below :)
+ use low-memory && local EPYTHON=
+ if python_is_installed pypy && [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]]; then
+ einfo "Using PyPy to perform the translation."
+ local EPYTHON=pypy
+ else
+ einfo "Using ${EPYTHON:-python2} to perform the translation. Please note that upstream"
+ einfo "recommends using PyPy for that. If you wish to do so, please install"
+ einfo "virtual/pypy and ensure that EPYTHON variable is unset."
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
+ "${FILESDIR}"/2.3.1-shared-lib.patch # 517002
+
+ epatch_user
+}
+
+src_compile() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --shared
+ $(usex jit -Ojit -O2)
+ $(usex shadowstack --gcrootfinder=shadowstack '')
+ $(usex sandbox --sandbox '')
+
+ ${jit_backend}
+ --make-jobs=$(makeopts_jobs)
+
+ pypy/goal/targetpypystandalone
+ )
+
+ # Avoid linking against libraries disabled by use flags
+ local opts=(
+ bzip2:bz2
+ ncurses:_minimal_curses
+ )
+
+ local opt
+ for opt in "${opts[@]}"; do
+ local flag=${opt%:*}
+ local mod=${opt#*:}
+
+ args+=(
+ $(usex ${flag} --withmod --withoutmod)-${mod}
+ )
+ done
+
+ local interp=( "${PYTHON}" )
+ if use low-memory; then
+ interp=( env PYPY_GC_MAX_DELTA=200MB
+ "${PYTHON}" --jit loop_longevity=300 )
+ fi
+
+ set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "compile error"
+
+ # Exception occurred:
+ # File "/tmp/1/pypy3-2.4.0-src/pypy/config/makerestdoc.py", line 199, in config_role
+ # assert txt.check()
+ # AssertionError
+ #use doc && emake -C pypy/doc/ html
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ # Test runner requires Python 2 too. However, it spawns PyPy3
+ # internally so that we end up testing the correct interpreter.
+ "${PYTHON}" ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy3"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy3/pypy-c /usr/bin/pypy3
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*3/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*3/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*3/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*3/{idlelib,tkinter} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*3/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ #use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy3 EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import _gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}
diff --git a/dev-python/pyqtgraph/Manifest b/dev-python/pyqtgraph/Manifest
new file mode 100644
index 00000000000..9f6dbadd141
--- /dev/null
+++ b/dev-python/pyqtgraph/Manifest
@@ -0,0 +1,2 @@
+DIST pyqtgraph-0.9.10.tar.gz 1086558 SHA256 4c0589774e3c8b0c374931397cf6356b9cc99a790215d1917bb7f015c6f0729a SHA512 c947bf69116b8b0a61a1db6ec70d51741667387f98320ce581733a306bea704754b7bb0abf94d6f01ce74dfc218b3c573db017a5e189cde76d00f85bc6b23a3d WHIRLPOOL 45ce6873298b30f74b374d3e6d7a97b1602a723d6d08847f79560fb29e6d66b70e23705e07ec5481e427fde99f27d4b84da8565ea53d96a377f5727176d35c8f
+DIST pyqtgraph-0.9.9.tar.gz 1086535 SHA256 6f61a7415c9488b334f856f06bc436b61d3742b2257310fe4bc8a1b85f84590b SHA512 f1fdf6aa2d66f4fc222fbcf97709ef9d172a4f7611882f46e6f9738fed9485ada9d81dd4d078c51385743fa344e52c3c1e0477ae5b6fabd04718bba8622e6a3e WHIRLPOOL 4d68d476df65f71eb4d7ea88eb6004ffc09868de6dbcf5192da773af6069cd83f388e3945ced1977e2531c9249bc58cc950f8540aaf71696f55d973a005a0e33
diff --git a/dev-python/pyqtgraph/metadata.xml b/dev-python/pyqtgraph/metadata.xml
new file mode 100644
index 00000000000..8da1249232e
--- /dev/null
+++ b/dev-python/pyqtgraph/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">pyqtgraph/pyqtgraph</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyqtgraph/pyqtgraph-0.9.10.ebuild b/dev-python/pyqtgraph/pyqtgraph-0.9.10.ebuild
new file mode 100644
index 00000000000..98a4de25c2b
--- /dev/null
+++ b/dev-python/pyqtgraph/pyqtgraph-0.9.10.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="a pure-python scientific graphics and GUI library built on PyQt4/PySide and numpy"
+HOMEPAGE="http://www.pyqtgraph.org/ https://github.com/pyqtgraph/pyqtgraph"
+SRC_URI="http://www.pyqtgraph.org/downloads/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples opengl"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ || (
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP}]
+ )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # fix distutils warning
+ sed -i 's/install_requires/requires/' setup.py || die
+
+ if ! use opengl; then
+ rm -r pyqtgraph/opengl || die
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyqtgraph/pyqtgraph-0.9.9.ebuild b/dev-python/pyqtgraph/pyqtgraph-0.9.9.ebuild
new file mode 100644
index 00000000000..ac30be6cd9d
--- /dev/null
+++ b/dev-python/pyqtgraph/pyqtgraph-0.9.9.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="a pure-python scientific graphics and GUI library built on PyQt4/PySide and numpy"
+HOMEPAGE="http://www.pyqtgraph.org/ https://github.com/pyqtgraph/pyqtgraph"
+SRC_URI="http://www.pyqtgraph.org/downloads/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc opengl"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ || (
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP}]
+ )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # fix distutils warning
+ sed -i 's/install_requires/requires/' setup.py || die
+
+ if ! use opengl; then
+ rm -r pyqtgraph/opengl || die
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyquery/Manifest b/dev-python/pyquery/Manifest
new file mode 100644
index 00000000000..739b3fdfae5
--- /dev/null
+++ b/dev-python/pyquery/Manifest
@@ -0,0 +1,3 @@
+DIST pyquery-1.2.4.tar.gz 23999 SHA256 1c39f786c42430279eadf787f1ef06873f15c9acba2698c23dfd925ac7b169d7 SHA512 77ec2efab157f693361e1dcbeabd7cac0709d3a8a25b6c47eb333be49c1485c7fa50b4fd9238bfff69657368130c2886cf6e0705415bdf1b48dc434365539c29 WHIRLPOOL 3fece4f710d69a0b57ab858f759196b269984a38af568003f7280215763c67b1e229feaf80f27b359a5da923248a11335026af4de85806ea6fc969c61c197685
+DIST pyquery-1.2.8.zip 42552 SHA256 59af39301bad397e085e5080987f94ef30672f1cf8e73d19d3307b3b63c3cb4b SHA512 9d344a5c4b0dd565e31c803ceecb217c71f9a70badbc65f9fcfb4a2cccb725a1bf938ed0b1697dcfdf0ec967321dccc1916a884ffdb0af9828a65005f63c47d7 WHIRLPOOL 5c98c3e7584d429a7c9bca564aac04e5dc6f579265aa9b8b768e167cdfcc57758b0d728b3102a56af75fa6ea838a6c1927e733a5171d3266574ba2b34ee85209
+DIST pyquery-1.2.9.zip 45289 SHA256 46c51eb878b787e814ee8f9737b0a62111034aeb4d1c06450ac5a8ea5a70e602 SHA512 f5152b471c896b39032add6a7f0e6ce63f426b4903bc7cf9eef12723c73453b40c310dd1497a7c4189fc6faaf804690fd91fb6d2f97fb6c4d6314682de4b8d05 WHIRLPOOL a57bb04402a3a8af98e7073d2b4e415a3e455bb67b4dc946831832f24339fe29fcd560123651abb3ae38c4ee9da3973638d27e064122702c0d1dd63d971fb67b
diff --git a/dev-python/pyquery/metadata.xml b/dev-python/pyquery/metadata.xml
new file mode 100644
index 00000000000..5609388fe1a
--- /dev/null
+++ b/dev-python/pyquery/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyquery</remote-id>
+ <remote-id type="github">gawel/pyquery</remote-id>
+ </upstream>
+ <use>
+ <flag name="beautifulsoup3">Support BeautifulSoup 3</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pyquery/pyquery-1.2.4.ebuild b/dev-python/pyquery/pyquery-1.2.4.ebuild
new file mode 100644
index 00000000000..ea7818bfab9
--- /dev/null
+++ b/dev-python/pyquery/pyquery-1.2.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A jQuery-like library for python"
+HOMEPAGE="http://pypi.python.org/pypi/pyquery"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ~ppc64 s390 sh sparc x86 ~x86-fbsd"
+IUSE="beautifulsoup3 test"
+
+RDEPEND=">=dev-python/lxml-2.1[beautifulsoup3?,${PYTHON_USEDEP}]
+ dev-python/cssselect[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2_rc1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+REQUIRED_USE="test? ( beautifulsoup3 )"
+
+DOCS=( CHANGES.rst README.rst )
+
+python_prepare_all() {
+ # Disable tests that access the net
+ for file in docs/{ajax.txt,manipulating.txt,scrap.txt,tips.txt}
+ do
+ mv ${file} ${file/.txt/} || die
+ done
+ sed -e 's:>>> d = pq(url:>>> # d = pq(url:' -i README.rst || die
+ sed -e 's:class TestWebScrapping:class _TestWebScrapping:' -i ${PN}/test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyquery/pyquery-1.2.8.ebuild b/dev-python/pyquery/pyquery-1.2.8.ebuild
new file mode 100644
index 00000000000..fa371b17d20
--- /dev/null
+++ b/dev-python/pyquery/pyquery-1.2.8.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A jQuery-like library for python"
+HOMEPAGE="https://github.com/gawel/pyquery"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="beautifulsoup3 test"
+
+RDEPEND=">=dev-python/lxml-2.1[beautifulsoup3?,${PYTHON_USEDEP}]
+ dev-python/cssselect[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="test? ( beautifulsoup3 )"
+
+python_prepare_all() {
+ # rm known failing tests and tests dependent on restkit
+ # https://github.com/gawel/pyquery/pull/63/files
+ sed -e "s/test_proxy/_&/" \
+ -e "s/test_replaceWith/_&/" \
+ -i tests/test_pyquery.py || die
+ rm docs/ajax.rst || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # The suite, it appears, requires this hard setting of PYTHONPATH!
+ PYTHONPATH=. nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyquery/pyquery-1.2.9-r1.ebuild b/dev-python/pyquery/pyquery-1.2.9-r1.ebuild
new file mode 100644
index 00000000000..1344a4c7380
--- /dev/null
+++ b/dev-python/pyquery/pyquery-1.2.9-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A jQuery-like library for python"
+HOMEPAGE="https://github.com/gawel/pyquery"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="beautifulsoup3 test"
+
+RDEPEND=">=dev-python/lxml-2.1[beautifulsoup3?,${PYTHON_USEDEP}]
+ >dev-python/cssselect-0.7.9[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.1.9[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( ${RDEPEND}
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/restkit[${PYTHON_USEDEP}]' 'python2_7') )"
+
+REQUIRED_USE="test? ( beautifulsoup3 )"
+
+python_test() {
+ # The suite, it appears, requires this hard setting of PYTHONPATH!
+ PYTHONPATH=. nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyquery/pyquery-1.2.9.ebuild b/dev-python/pyquery/pyquery-1.2.9.ebuild
new file mode 100644
index 00000000000..c556f77aa4a
--- /dev/null
+++ b/dev-python/pyquery/pyquery-1.2.9.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A jQuery-like library for python"
+HOMEPAGE="https://github.com/gawel/pyquery"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ppc ppc64 sparc x86"
+IUSE="beautifulsoup3 test"
+
+RDEPEND=">=dev-python/lxml-2.1[beautifulsoup3?,${PYTHON_USEDEP}]
+ >dev-python/cssselect-0.7.9[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.1.9[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip
+ test? ( ${RDEPEND}
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="test? ( beautifulsoup3 )"
+
+python_test() {
+ # The suite, it appears, requires this hard setting of PYTHONPATH!
+ PYTHONPATH=. nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyqwt/Manifest b/dev-python/pyqwt/Manifest
new file mode 100644
index 00000000000..ebf99224a9f
--- /dev/null
+++ b/dev-python/pyqwt/Manifest
@@ -0,0 +1 @@
+DIST PyQwt-5.2.0.tar.gz 2670893 SHA256 98a8c7e0c76d07701c11dffb77793b05f071b664a8b520d6e97054a98179e70b SHA512 8c409ee228d91d625bf9bd8a5704c3d41f70613b420bc8f1527312dd1ebb686b8482bd68c4b3d1a72edd80673533a4f5a39378221967bea70f389c9dde14f265 WHIRLPOOL ab5e8d1b094552df592062ad41d786e58621465d318eaa2e199cdf45163e39be24f8c268aec33b428b4daa92c4c85342925df109792475507425f90c76e86c70
diff --git a/dev-python/pyqwt/metadata.xml b/dev-python/pyqwt/metadata.xml
new file mode 100644
index 00000000000..3911f0748f2
--- /dev/null
+++ b/dev-python/pyqwt/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ PyQwt is a set of Python bindings for the Qwt C++ class library which
+ extends the Qt framework with widgets for scientific and engineering
+ applications. It provides a widget to plot 2-dimensional data and
+ various widgets to display and control bounded or unbounded floating
+ point values.
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">pyqwt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyqwt/pyqwt-5.2.0-r1.ebuild b/dev-python/pyqwt/pyqwt-5.2.0-r1.ebuild
new file mode 100644
index 00000000000..08afe31210c
--- /dev/null
+++ b/dev-python/pyqwt/pyqwt-5.2.0-r1.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit flag-o-matic python-r1
+
+MY_P="PyQwt-${PV}"
+DESCRIPTION="Python bindings for the Qwt library"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+HOMEPAGE="http://pyqwt.sourceforge.net/"
+
+SLOT="5"
+LICENSE="GPL-2"
+KEYWORDS="amd64 arm ia64 x86"
+IUSE="debug doc examples svg"
+
+RDEPEND="
+ x11-libs/qwt:5[svg?]
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+DEPEND="${DEPEND}
+ dev-python/sip[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}/configure"
+
+src_prepare() {
+ python_copy_sources
+ append-flags -fPIC
+}
+
+src_configure() {
+ configuration() {
+ local myonf=()
+ use debug && myconf+=( --debug )
+
+ cd "${BUILD_DIR}" || die
+ # '-j' option can be buggy.
+ "${PYTHON}" configure.py \
+ --extra-cflags="${CFLAGS}" \
+ --extra-cxxflags="${CXXFLAGS}" \
+ --extra-lflags="${LDFLAGS}" \
+ --disable-numarray \
+ --disable-numeric \
+ -I/usr/include/qwt5 \
+ -lqwt \
+ ${myconf[@]} \
+ || die "configure.py failed"
+
+ # Avoid stripping of the libraries.
+ sed -i -e "/strip/d" {iqt5qt4,qwt5qt4}/Makefile || die "sed failed"
+ }
+ python_foreach_impl configuration
+}
+
+src_compile() {
+ compilation() {
+ cd "${BUILD_DIR}" || die
+ default
+ }
+ python_foreach_impl compilation
+
+ if use doc; then
+ cd "${S}"/../sphinx || die
+ emake
+ fi
+}
+
+src_install() {
+ installation() {
+ cd "${BUILD_DIR}" || die
+ emake DESTDIR="${D}" install
+ }
+ python_foreach_impl installation
+
+ cd "${S}"/.. || die
+
+ dodoc ANNOUNCEMENT-${PV} README
+
+ use doc && dodoc -r sphinx/build/.
+ if use examples; then
+ docinto examples
+ dodoc -r qt4examples/.
+ fi
+}
diff --git a/dev-python/pyramid/Manifest b/dev-python/pyramid/Manifest
new file mode 100644
index 00000000000..112ec9f84ea
--- /dev/null
+++ b/dev-python/pyramid/Manifest
@@ -0,0 +1,4 @@
+DIST pyramid-1.5.1.tar.gz 2401767 SHA256 2fe0b4012f10444682acc0df3b9cb85c7cfff2508ba5cbe6db83f5f14b510d86 SHA512 70b04111020d0f02ef21c52c44d7b6a5e78d198daee0068921df048bcae8b07567aee05d57f1a9e7329ef418116a0f7682aee30c6f785a4d1ec847e2519e7cc5 WHIRLPOOL 16e17ccba24f6a76c4ef0f2e361580e832c6450f453f88229bf1204cd123719e08e8565bb46d8b0bef5b395af2dfa87cb7ac7a9dc0dc9a0cc2d019490716e151
+DIST pyramid-1.5.2.tar.gz 2422156 SHA256 12057e63c9c99f88bc71af12f00a5e2c934221122baf582c7365361cba45bdcc SHA512 531d68fb480cf1420e069025537968abebc17bed98bf25e9993b8c744a12c5031df4b9b09e6f775bb1176f305f2e2c8ddb176ff43d1b34a10f2181df74fac8b8 WHIRLPOOL 785706946338dee67c7472c8d0b97fea86b8695d2efe7da93c483acf6476e5501269732a24b1cec50e1b9bf723edab44e437785cfd833bd3263c0207bc4f3ad9
+DIST pyramid-1.5.4.tar.gz 2678373 SHA256 39c48570595cfdb38227552a9e2858e62cc45ced4db94cf9b136cd823acda19f SHA512 2c2f9f42c64a4c184bb743005f7ba2f7fce2409e35c7db3e683852f6c93e44dea26d082c88727a44bdde253e6648cfb95169f6f5615d2d17bccd4b4113e0361f WHIRLPOOL bebd849ce1a116f7b04d2b5f3fb71ab5fe964e50a16a576d91c5509f7dd3f5312b4d9d174d0369d2d7db2f2c363e8caa594bb23249f59b11bfd80eed9e2d6245
+DIST pyramid-1.5.7.tar.gz 2678474 SHA256 c1302d5ccb6833e8794ddb649aa9bb64d86c05adb127c93e329f8863907449b4 SHA512 32b0d4b85bf0f471b7c08ac7353f2859284ee7bb2451b68429074fb5f954e0e02d7bc4bdd86f843d6a5304b56a418e698d614806bbfd09dda9a608db88c25949 WHIRLPOOL 2c12aab5e91eede072f0b45b510699f048f9848753cf134e21dcb775b0f2fa96c815d1573cd11b67afa76f401bdab230b67fe1a24a8a861708309d8b26308619
diff --git a/dev-python/pyramid/metadata.xml b/dev-python/pyramid/metadata.xml
new file mode 100644
index 00000000000..98d5d9c09f4
--- /dev/null
+++ b/dev-python/pyramid/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyramid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyramid/pyramid-1.5.1.ebuild b/dev-python/pyramid/pyramid-1.5.1.ebuild
new file mode 100644
index 00000000000..0329247d1e4
--- /dev/null
+++ b/dev-python/pyramid/pyramid-1.5.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+RESTRICT="test" # Can't package dependencies
+
+DESCRIPTION="A small open source Python web framework"
+HOMEPAGE="http://www.pylonsproject.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+#IUSE="test"
+# tests would pull in dev-python/zope-deprecation with its deps - not a good idea
+
+RDEPEND="
+ dev-python/chameleon[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/repoze-lru[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ dev-python/translationstring[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/venusian[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ "
+ #test? ( dev-python/webtest[${PYTHON_USEDEP}]
+ # dev-python/nose[${PYTHON_USEDEP}]
+ # dev-python/coverage[${PYTHON_USEDEP}]
+ # dev-python/virtualenv[${PYTHON_USEDEP}]
+ # )
+ #"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyramid/pyramid-1.5.2.ebuild b/dev-python/pyramid/pyramid-1.5.2.ebuild
new file mode 100644
index 00000000000..5c6c0521941
--- /dev/null
+++ b/dev-python/pyramid/pyramid-1.5.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+RESTRICT="test" # Can't package dependencies
+
+DESCRIPTION="A small open source Python web framework"
+HOMEPAGE="http://www.pylonsproject.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+#IUSE="test"
+# tests would pull in dev-python/zope-deprecation with its deps - not a good idea
+
+RDEPEND="
+ dev-python/chameleon[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/repoze-lru[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ dev-python/translationstring[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/venusian[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ "
+ #test? ( dev-python/webtest[${PYTHON_USEDEP}]
+ # dev-python/nose[${PYTHON_USEDEP}]
+ # dev-python/coverage[${PYTHON_USEDEP}]
+ # dev-python/virtualenv[${PYTHON_USEDEP}]
+ # )
+ #"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyramid/pyramid-1.5.4.ebuild b/dev-python/pyramid/pyramid-1.5.4.ebuild
new file mode 100644
index 00000000000..5c6c0521941
--- /dev/null
+++ b/dev-python/pyramid/pyramid-1.5.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+RESTRICT="test" # Can't package dependencies
+
+DESCRIPTION="A small open source Python web framework"
+HOMEPAGE="http://www.pylonsproject.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+#IUSE="test"
+# tests would pull in dev-python/zope-deprecation with its deps - not a good idea
+
+RDEPEND="
+ dev-python/chameleon[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/repoze-lru[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ dev-python/translationstring[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/venusian[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ "
+ #test? ( dev-python/webtest[${PYTHON_USEDEP}]
+ # dev-python/nose[${PYTHON_USEDEP}]
+ # dev-python/coverage[${PYTHON_USEDEP}]
+ # dev-python/virtualenv[${PYTHON_USEDEP}]
+ # )
+ #"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyramid/pyramid-1.5.7.ebuild b/dev-python/pyramid/pyramid-1.5.7.ebuild
new file mode 100644
index 00000000000..5c6c0521941
--- /dev/null
+++ b/dev-python/pyramid/pyramid-1.5.7.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+RESTRICT="test" # Can't package dependencies
+
+DESCRIPTION="A small open source Python web framework"
+HOMEPAGE="http://www.pylonsproject.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+#IUSE="test"
+# tests would pull in dev-python/zope-deprecation with its deps - not a good idea
+
+RDEPEND="
+ dev-python/chameleon[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/repoze-lru[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ dev-python/translationstring[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/venusian[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ "
+ #test? ( dev-python/webtest[${PYTHON_USEDEP}]
+ # dev-python/nose[${PYTHON_USEDEP}]
+ # dev-python/coverage[${PYTHON_USEDEP}]
+ # dev-python/virtualenv[${PYTHON_USEDEP}]
+ # )
+ #"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyrax/Manifest b/dev-python/pyrax/Manifest
new file mode 100644
index 00000000000..8d0abb6195a
--- /dev/null
+++ b/dev-python/pyrax/Manifest
@@ -0,0 +1,3 @@
+DIST pyrax-1.9.2.tar.gz 311901 SHA256 1971dd941cc750815a0b51d3b0ed6a30cfa9f1dcc562bca808b0708b9ffed8ed SHA512 e095349c42709e5cc382f4d90de2711d6ac53b1d41dd34c3969ed4423f8c5534ff902d78cfae71f6cb7bb4200fd1ab66305ebf43ab03b0c928580b34c06bc1ef WHIRLPOOL eec8a1aa3f99f39f5a461e40e64b23854313ca4ae8a8ef76ab78e103ce4b62a07531f019246a459e65cf6b5a0f67d582f316af3f5ebbec9dbb307a2c589c5182
+DIST pyrax-1.9.3.tar.gz 307959 SHA256 0a3026c67df7bb84720cf562eef0fb15ad67dce79b6fc5e8da46621489be26bb SHA512 8ffb641e46d2f9cda079f619303f92c65fd41cf2ad773c5e8da981257fe9d4aac94e9bc08fab53e3b0a9b63a661381ff7805cbfd34ddef3275cba2d69858aa69 WHIRLPOOL 9060febb5b9d90cea5b248acf73af162df7b4badd66462916fd7e63f875edacde046c83fced1f5f03e500a1ca9d9f74fd746927d1c42942a561d002caa316d3d
+DIST pyrax-1.9.4.tar.gz 312608 SHA256 5cc27688cccd4137a4c53a69b6e0e877054a0bafec899f8170ccc0b58fbf95f3 SHA512 be84e558095a7f76998dd7909cfa5f1ef97a1d65a5a3fe168d70e3978a5974b4eb1592690aac7b0bd52b09faed79fca52006b17e5a22008850088a953d5bef72 WHIRLPOOL ae1c5ae01bbe704404e589a3a1bf1b12abc77817bbdf6e879301dd0716b1f84aa80903ec1d5b4035eacca81221680d8fd44cf0112081a5aff6f4abfbf5973b7d
diff --git a/dev-python/pyrax/metadata.xml b/dev-python/pyrax/metadata.xml
new file mode 100644
index 00000000000..6d382aad8e0
--- /dev/null
+++ b/dev-python/pyrax/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ Python SDK for OpenStack/Rackspace APIs
+ pyrax should work with most OpenStack-based cloud deployments,
+ though it specifically targets the Rackspace public cloud.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pyrax</remote-id>
+ <remote-id type="github">rackspace/pyrax</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyrax/pyrax-1.9.2.ebuild b/dev-python/pyrax/pyrax-1.9.2.ebuild
new file mode 100644
index 00000000000..898bc9d1ef3
--- /dev/null
+++ b/dev-python/pyrax/pyrax-1.9.2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python language bindings for OpenStack Clouds"
+HOMEPAGE="https://github.com/rackspace/pyrax"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+CDEPEND="
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/python-novaclient-2.13.0[${PYTHON_USEDEP}]
+ dev-python/rackspace-novaclient[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/rax-scheduled-images-python-novaclient-ext[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_test() {
+ ebegin 'patching tests/unit/test_utils.py'
+ sed \
+ -e '92,100d' \
+ -i tests/unit/test_utils.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ nosetests tests/unit || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyrax/pyrax-1.9.3.ebuild b/dev-python/pyrax/pyrax-1.9.3.ebuild
new file mode 100644
index 00000000000..c3b6356a93d
--- /dev/null
+++ b/dev-python/pyrax/pyrax-1.9.3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python language bindings for OpenStack Clouds"
+HOMEPAGE="https://github.com/rackspace/pyrax"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+CDEPEND="
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/python-novaclient-2.13.0[${PYTHON_USEDEP}]
+ dev-python/rackspace-novaclient[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/rax-scheduled-images-python-novaclient-ext[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_test() {
+ #ebegin 'patching tests/unit/test_utils.py'
+ #sed \
+ # -e '92,100d' \
+ # -i tests/unit/test_utils.py
+ #STATUS=$?
+ #eend ${STATUS}
+ #[[ ${STATUS} -gt 0 ]] && die
+
+ nosetests tests/unit || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyrax/pyrax-1.9.4.ebuild b/dev-python/pyrax/pyrax-1.9.4.ebuild
new file mode 100644
index 00000000000..4459ff37990
--- /dev/null
+++ b/dev-python/pyrax/pyrax-1.9.4.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python language bindings for OpenStack Clouds"
+HOMEPAGE="https://github.com/rackspace/pyrax"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+CDEPEND="
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/python-novaclient-2.13.0[${PYTHON_USEDEP}]
+ dev-python/rackspace-novaclient[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/rax-scheduled-images-python-novaclient-ext[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_test() {
+ nosetests tests/unit || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( samples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyregion/Manifest b/dev-python/pyregion/Manifest
new file mode 100644
index 00000000000..88ea05506c9
--- /dev/null
+++ b/dev-python/pyregion/Manifest
@@ -0,0 +1,2 @@
+DIST pyregion-1.1.2.tar.gz 98664 SHA256 7a21f461ffd4f9f3eea1fe254b3176a99f32a54c83bc3053bdc80425d0368cda SHA512 fd8573744d884b6711ca0cb398fb9eaa4294ebbae3fccd70ec74fd2b41f8302c9c84ebbcf83b7cdd064192f36e3fe8fa3b03d8d329ecce89e62f0695b31cdce7 WHIRLPOOL 95f32b414f6485fbb5028dfc3307d801d6b5e970292225189710b1d95a1effc9f1537419487dffcb7b34adb537098a902fe735f69956dce112f15fcebc5123a4
+DIST pyregion-1.1.4.tar.gz 99454 SHA256 2d7d5ce46a3b4177978d4901c9c46ce402165113049006b923f5346b014973b9 SHA512 572a10593dc93f64ad6fd1d7a8f19582df04309b88a73fb41e3b4c71036d61c3857114cc01025e581ddd3a63af92fabb5375c1ee8fe487f83da2780569954236 WHIRLPOOL 54791087d514e9c4b0e850c77219ed4d453a2a86c148ce04f2dc8cbcdc9138e075860acc6c2812e9033cfe15cca2b093d792186a2b47f903c747d2486feab8bd
diff --git a/dev-python/pyregion/metadata.xml b/dev-python/pyregion/metadata.xml
new file mode 100644
index 00000000000..b515cba0ba5
--- /dev/null
+++ b/dev-python/pyregion/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ pyregion is a python module to parse ds9 region files. It also
+ support ciao region files, and can draw regions using matplotlib.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">pyregion</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/pyregion/pyregion-1.1.2.ebuild b/dev-python/pyregion/pyregion-1.1.2.ebuild
new file mode 100644
index 00000000000..58ccdaabf30
--- /dev/null
+++ b/dev-python/pyregion/pyregion-1.1.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python module to parse ds9 region file"
+HOMEPAGE="http://leejjoon.github.com/pyregion/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="MIT"
+
+IUSE="examples"
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ || ( dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/pyrex[${PYTHON_USEDEP}] )"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pyregion/pyregion-1.1.4.ebuild b/dev-python/pyregion/pyregion-1.1.4.ebuild
new file mode 100644
index 00000000000..58ccdaabf30
--- /dev/null
+++ b/dev-python/pyregion/pyregion-1.1.4.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python module to parse ds9 region file"
+HOMEPAGE="http://leejjoon.github.com/pyregion/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="MIT"
+
+IUSE="examples"
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ || ( dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/pyrex[${PYTHON_USEDEP}] )"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pyrex/Manifest b/dev-python/pyrex/Manifest
new file mode 100644
index 00000000000..fcfd47093db
--- /dev/null
+++ b/dev-python/pyrex/Manifest
@@ -0,0 +1 @@
+DIST Pyrex-0.9.9.tar.gz 255272 SHA256 5f87df06831d0b3412eb4bc9d3fc2ee7bfae1b913d7da8c23ab2bf5699fb6b50 SHA512 724b14278760fffb751bd9dc24e18dbe85732f069d186ee89bc9f28dd8f912d5f69492d28e705f55de2db56c343f10f21c6a1c39bda1d7c234d09a3d5e192f6b WHIRLPOOL e89ab2369d3f73d85c4219f6f652b4450b22d116b5325fd0a7b544946071cc8cd480ca3320343b99acdaa8c48c313ac96e43316efed29f3e698980d19c5e1479
diff --git a/dev-python/pyrex/metadata.xml b/dev-python/pyrex/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyrex/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyrex/pyrex-0.9.9-r1.ebuild b/dev-python/pyrex/pyrex-0.9.9-r1.ebuild
new file mode 100644
index 00000000000..7099c7e31af
--- /dev/null
+++ b/dev-python/pyrex/pyrex-0.9.9-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P="Pyrex-${PV}"
+
+DESCRIPTION="A language for writing Python extension modules"
+HOMEPAGE="http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/"
+SRC_URI="http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="examples"
+
+S="${WORKDIR}/${MY_P}"
+
+DEPEND=""
+RDEPEND=""
+DOCS=( CHANGES.txt README.txt ToDo.txt USAGE.txt )
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dohtml -A c -r Doc/.
+
+ if use examples; then
+ dodoc -r Demos
+ docompress -x /usr/share/doc/${PF}/Demos
+ fi
+}
diff --git a/dev-python/pyrfc3339/Manifest b/dev-python/pyrfc3339/Manifest
new file mode 100644
index 00000000000..a4eab11f920
--- /dev/null
+++ b/dev-python/pyrfc3339/Manifest
@@ -0,0 +1 @@
+DIST pyRFC3339-0.2.tar.gz 5068 SHA256 a504ff6bcb363fa402d393f65fe5f542475e54fbfc55817b80892ba93b22e6de SHA512 54482528e429c0135823b333d18e6a9361ba99b18a62883e9b09f5533e75f08d12d9c1ee855296cecd98c11824f927984527bb0555a49e4284164b7fe4df8c4f WHIRLPOOL c84d3e1d38b2d57d6525f884a12e8e478aaf6e6e30a00b6267cc5043da9b3b58b1afd585d8350291e32e350df0431be96743b27d95769eecdbc738ded863e68e
diff --git a/dev-python/pyrfc3339/files/pyrfc3339-0.2-fixdoctests.patch b/dev-python/pyrfc3339/files/pyrfc3339-0.2-fixdoctests.patch
new file mode 100644
index 00000000000..1ce4cb02659
--- /dev/null
+++ b/dev-python/pyrfc3339/files/pyrfc3339-0.2-fixdoctests.patch
@@ -0,0 +1,54 @@
+From 085006c9ffc00d3fba3b91eb33111c791a592715 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Manuel=20R=C3=BCger?= <mrueg@rueg.eu>
+Date: Mon, 13 Jul 2015 20:49:51 +0200
+Subject: [PATCH] Fix doctests for python3
+
+---
+ pyrfc3339/generator.py | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/pyrfc3339/generator.py b/pyrfc3339/generator.py
+index 020d47b..62f88e0 100644
+--- a/pyrfc3339/generator.py
++++ b/pyrfc3339/generator.py
+@@ -9,7 +9,7 @@ def generate(dt, utc=True, accept_naive=False, microseconds=False):
+ :class:`datetime.datetime`.
+
+ >>> from datetime import datetime
+- >>> generate(datetime(2009,01,01,12,59,59,0,pytz.utc))
++ >>> generate(datetime(2009,1,1,12,59,59,0,pytz.utc))
+ '2009-01-01T12:59:59Z'
+
+ The timestamp will use UTC unless `utc=False` is specified, in which case
+@@ -17,7 +17,7 @@ def generate(dt, utc=True, accept_naive=False, microseconds=False):
+ :attr:`tzinfo` parameter.
+
+ >>> eastern = pytz.timezone('US/Eastern')
+- >>> dt = eastern.localize(datetime(2009,01,01,12,59,59))
++ >>> dt = eastern.localize(datetime(2009,1,1,12,59,59))
+ >>> generate(dt)
+ '2009-01-01T17:59:59Z'
+ >>> generate(dt, utc=False)
+@@ -25,19 +25,19 @@ def generate(dt, utc=True, accept_naive=False, microseconds=False):
+
+ Unless `accept_naive=True` is specified, the `datetime` must not be naive.
+
+- >>> generate(datetime(2009,01,01,12,59,59,0))
++ >>> generate(datetime(2009,1,1,12,59,59,0))
+ Traceback (most recent call last):
+ ...
+ ValueError: naive datetime and accept_naive is False
+
+- >>> generate(datetime(2009,01,01,12,59,59,0), accept_naive=True)
++ >>> generate(datetime(2009,1,1,12,59,59,0), accept_naive=True)
+ '2009-01-01T12:59:59Z'
+
+ If `accept_naive=True` is specified, the `datetime` is assumed to be UTC.
+ Attempting to generate a local timestamp from a naive datetime will result
+ in an error.
+
+- >>> generate(datetime(2009,01,01,12,59,59,0), accept_naive=True, utc=False)
++ >>> generate(datetime(2009,1,1,12,59,59,0), accept_naive=True, utc=False)
+ Traceback (most recent call last):
+ ...
+ ValueError: cannot generate a local timestamp from a naive datetime
diff --git a/dev-python/pyrfc3339/metadata.xml b/dev-python/pyrfc3339/metadata.xml
new file mode 100644
index 00000000000..3be1e82eb36
--- /dev/null
+++ b/dev-python/pyrfc3339/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/pyrfc3339/pyrfc3339-0.2.ebuild b/dev-python/pyrfc3339/pyrfc3339-0.2.ebuild
new file mode 100644
index 00000000000..275f20b65a2
--- /dev/null
+++ b/dev-python/pyrfc3339/pyrfc3339-0.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+MY_PN=pyRFC3339
+
+MY_P=${MY_PN}-${PV}
+DESCRIPTION="Generates and parses RFC 3339 timestamps"
+HOMEPAGE="https://github.com/kurtraschke/pyRFC3339"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=("${FILESDIR}"/${P}-fixdoctests.patch)
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pyringe/Manifest b/dev-python/pyringe/Manifest
new file mode 100644
index 00000000000..06a9541419e
--- /dev/null
+++ b/dev-python/pyringe/Manifest
@@ -0,0 +1 @@
+DIST pyringe-1.0.2.tar.gz 42804 SHA256 b93f5710c05c8022d04b0145b54825d8748469c04deb7bc6b12fa44174e39324 SHA512 8da1572fda50bd135dc5d49d41a2f5c9cf2f5a7af729aaa9c34cde892a76e5a1b0a6818a6ed67f0f757910eec77f9931daade627141dd9964e9545ccc75a6052 WHIRLPOOL 68b8ed5a93578ed3d688e1d7cbd5d780cdac911b46bc73ea98380dae905e48241d489388ed9caf11d898a5015b8bdf771ab4ef479d7b80013e4d6bec759f30e2
diff --git a/dev-python/pyringe/metadata.xml b/dev-python/pyringe/metadata.xml
new file mode 100644
index 00000000000..fac95e6fd86
--- /dev/null
+++ b/dev-python/pyringe/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dastergon@gentoo.org</email>
+ <name>Pavlos Ratis</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyringe</remote-id>
+ <remote-id type="github">google/pyringe</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyringe/pyringe-1.0.2.ebuild b/dev-python/pyringe/pyringe-1.0.2.ebuild
new file mode 100644
index 00000000000..349e9f14b14
--- /dev/null
+++ b/dev-python/pyringe/pyringe-1.0.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Debugger capable of attaching and injecting code"
+HOMEPAGE="https://github.com/google/pyringe https://pypi.python.org/pypi/pyringe/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+DOCS=( README.md )
diff --git a/dev-python/pyro/Manifest b/dev-python/pyro/Manifest
new file mode 100644
index 00000000000..4ce71be4c39
--- /dev/null
+++ b/dev-python/pyro/Manifest
@@ -0,0 +1,2 @@
+DIST Pyro-3.16.tar.gz 298769 SHA256 1bed508453ef7a7556b51424a58101af2349b662baab7e7331c5cb85dbe7e578 SHA512 d0e4ae93120a6566a2b06fa52b66e20daa972324a9d57d639ca68171e1e6e5c412250f7e6af3fc307631d2270be3731ea5898ad35819dc0369e6a2d8341d5965 WHIRLPOOL 0d7efcead6bc7a31a690c012a4213c835d43ca932e461ab25ddb2e12636970de2c3da6feb4915385bdadaf2261558d2041d5e6dad9899f11e450aa0a065460da
+DIST Pyro4-4.25.tar.gz 295993 SHA256 ac2b0123badcb76c63eb716fcd95e0ee4021d345b5db05fda19253c59e39b384 SHA512 9a112e679a304d250549701d9a1baef0df6d3ea6f1eec559e7c433eab7ab09155c9ae440817f844be073f69dc8bf93836d48930b1d91311eaf6ab7e91c0a4faf WHIRLPOOL aa767569948af1cf222b95fa114d4dee08b601296f8be1ed9bce86502f1c9eeedf05930215da192ab9d237d740283f88a5f7efe1f53291acd1b90b51099a1801
diff --git a/dev-python/pyro/files/4.20-0001-Use-unittest2-for-older-Python-version.patch b/dev-python/pyro/files/4.20-0001-Use-unittest2-for-older-Python-version.patch
new file mode 100644
index 00000000000..554ea01321a
--- /dev/null
+++ b/dev-python/pyro/files/4.20-0001-Use-unittest2-for-older-Python-version.patch
@@ -0,0 +1,354 @@
+From d27de91579bd64397a9554b6c6a2257f098dbaad Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
+Date: Thu, 18 Jul 2013 20:19:03 +0200
+Subject: [PATCH] Use unittest2 for older Python versions.
+
+---
+ tests/PyroTests/test_core.py | 6 +++++-
+ tests/PyroTests/test_daemon.py | 7 ++++++-
+ tests/PyroTests/test_echoserver.py | 7 ++++++-
+ tests/PyroTests/test_flame.py | 7 ++++++-
+ tests/PyroTests/test_ironpython.py | 6 +++++-
+ tests/PyroTests/test_naming.py | 7 ++++++-
+ tests/PyroTests/test_naming2.py | 6 +++++-
+ tests/PyroTests/test_package.py | 7 ++++++-
+ tests/PyroTests/test_serialize.py | 6 +++++-
+ tests/PyroTests/test_server.py | 6 +++++-
+ tests/PyroTests/test_server_timeout.py | 7 ++++++-
+ tests/PyroTests/test_socket.py | 6 +++++-
+ tests/PyroTests/test_tpjobqueue.py | 7 ++++++-
+ tests/PyroTests/test_util.py | 7 +++++--
+ 14 files changed, 77 insertions(+), 15 deletions(-)
+
+diff --git a/tests/PyroTests/test_core.py b/tests/PyroTests/test_core.py
+index cbcbded..a0b801f 100644
+--- a/tests/PyroTests/test_core.py
++++ b/tests/PyroTests/test_core.py
+@@ -5,7 +5,6 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
+-import unittest
+ import copy
+ import logging
+ import os, sys, time
+@@ -17,6 +16,11 @@ import Pyro4.constants
+ import Pyro4.futures
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ if sys.version_info>=(3,0):
+ import imp
+diff --git a/tests/PyroTests/test_daemon.py b/tests/PyroTests/test_daemon.py
+index cf7c06e..05472fd 100644
+--- a/tests/PyroTests/test_daemon.py
++++ b/tests/PyroTests/test_daemon.py
+@@ -5,14 +5,19 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
++import sys
+ import os, time, socket
+-import unittest
+ import Pyro4.core
+ import Pyro4.constants
+ import Pyro4.socketutil
+ from Pyro4.errors import DaemonError,PyroError
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class MyObj(object):
+ def __init__(self, arg):
+diff --git a/tests/PyroTests/test_echoserver.py b/tests/PyroTests/test_echoserver.py
+index abca795..5e58e24 100644
+--- a/tests/PyroTests/test_echoserver.py
++++ b/tests/PyroTests/test_echoserver.py
+@@ -4,13 +4,18 @@ Tests for the built-in test echo server.
+ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+-import unittest
++import sys
+ import time
+ import Pyro4.test.echoserver as echoserver
+ import Pyro4
+ from threading import Thread,Event
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class EchoServerThread(Thread):
+ def __init__(self):
+diff --git a/tests/PyroTests/test_flame.py b/tests/PyroTests/test_flame.py
+index 2406bae..fdc611f 100644
+--- a/tests/PyroTests/test_flame.py
++++ b/tests/PyroTests/test_flame.py
+@@ -5,12 +5,17 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
+-import unittest
+ import Pyro4.utils.flame
+ import Pyro4.utils.flameserver
+ import Pyro4.errors
++import sys
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class FlameDisabledTests(unittest.TestCase):
+ def testFlameDisabled(self):
+diff --git a/tests/PyroTests/test_ironpython.py b/tests/PyroTests/test_ironpython.py
+index 70dff4f..8343729 100644
+--- a/tests/PyroTests/test_ironpython.py
++++ b/tests/PyroTests/test_ironpython.py
+@@ -4,10 +4,14 @@ Tests for some Ironpython peculiarities.
+ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+-import unittest
+ import sys
+ import pickle
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ if sys.platform=="cli":
+
+diff --git a/tests/PyroTests/test_naming.py b/tests/PyroTests/test_naming.py
+index d61fa99..fb5b580 100644
+--- a/tests/PyroTests/test_naming.py
++++ b/tests/PyroTests/test_naming.py
+@@ -5,7 +5,7 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
+-import unittest
++import sys
+ import time
+ import Pyro4.core
+ import Pyro4.naming
+@@ -15,6 +15,11 @@ from Pyro4.errors import NamingError
+ from Pyro4 import threadutil
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class NSLoopThread(threadutil.Thread):
+ def __init__(self, nameserver):
+diff --git a/tests/PyroTests/test_naming2.py b/tests/PyroTests/test_naming2.py
+index afa0b22..ae398ac 100644
+--- a/tests/PyroTests/test_naming2.py
++++ b/tests/PyroTests/test_naming2.py
+@@ -5,7 +5,6 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
+-import unittest
+ import sys, select, os
+ import Pyro4.core
+ import Pyro4.naming
+@@ -15,6 +14,11 @@ import Pyro4.socketutil
+ from Pyro4.errors import NamingError,PyroError
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class OfflineNameServerTests(unittest.TestCase):
+ def setUp(self):
+diff --git a/tests/PyroTests/test_package.py b/tests/PyroTests/test_package.py
+index 9ab3bba..052eebf 100644
+--- a/tests/PyroTests/test_package.py
++++ b/tests/PyroTests/test_package.py
+@@ -4,7 +4,6 @@ Tests for the package structure and import names.
+ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+-import unittest
+ import Pyro4
+ import Pyro4.constants
+ import Pyro4.core
+@@ -14,7 +13,13 @@ import Pyro4.nsc
+ import Pyro4.socketutil
+ import Pyro4.threadutil
+ import Pyro4.util
++import sys
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class TestPackage(unittest.TestCase):
+ def testPyro4(self):
+diff --git a/tests/PyroTests/test_serialize.py b/tests/PyroTests/test_serialize.py
+index 4fea39c..f05c84a 100644
+--- a/tests/PyroTests/test_serialize.py
++++ b/tests/PyroTests/test_serialize.py
+@@ -5,7 +5,6 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
+-import unittest
+ import sys
+ import pprint
+ import Pyro4.util
+@@ -13,6 +12,11 @@ import Pyro4.errors
+ import Pyro4.core
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class SerializeTests_pickle(unittest.TestCase):
+ SERIALIZER="pickle"
+diff --git a/tests/PyroTests/test_server.py b/tests/PyroTests/test_server.py
+index d1ebfcc..b2dd661 100644
+--- a/tests/PyroTests/test_server.py
++++ b/tests/PyroTests/test_server.py
+@@ -5,7 +5,6 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
+-import unittest
+ import Pyro4.core
+ import Pyro4.errors
+ import Pyro4.util
+@@ -13,6 +12,11 @@ import time, os, sys, platform
+ from Pyro4 import threadutil
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class MyThing(object):
+ def __init__(self):
+diff --git a/tests/PyroTests/test_server_timeout.py b/tests/PyroTests/test_server_timeout.py
+index daa5a8d..dd5ee34 100644
+--- a/tests/PyroTests/test_server_timeout.py
++++ b/tests/PyroTests/test_server_timeout.py
+@@ -4,10 +4,15 @@ Tests for a running Pyro server, with timeouts.
+ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+-import unittest
++import sys
+ import os
+ import test_server
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ class ServerTestsThreadTimeout(test_server.ServerTestsThreadNoTimeout):
+ SERVERTYPE="thread"
+diff --git a/tests/PyroTests/test_socket.py b/tests/PyroTests/test_socket.py
+index 4d44139..b487686 100644
+--- a/tests/PyroTests/test_socket.py
++++ b/tests/PyroTests/test_socket.py
+@@ -4,7 +4,6 @@ Tests for the low level socket functions.
+ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+-import unittest
+ import socket, os, sys
+ import Pyro4.socketutil as SU
+ from Pyro4 import threadutil
+@@ -13,6 +12,11 @@ from Pyro4.socketserver.threadpoolserver import SocketServer_Threadpool
+ import Pyro4
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ # determine ipv6 capability
+ has_ipv6 = socket.has_ipv6
+diff --git a/tests/PyroTests/test_tpjobqueue.py b/tests/PyroTests/test_tpjobqueue.py
+index 8ab7f7b..7cdc3bb 100644
+--- a/tests/PyroTests/test_tpjobqueue.py
++++ b/tests/PyroTests/test_tpjobqueue.py
+@@ -5,12 +5,17 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+ from __future__ import with_statement
+-import unittest
++import sys
+ import time
+ import random
+ from Pyro4.tpjobqueue import ThreadPooledJobQueue, JobQueueError
+ import Pyro4.threadutil
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ MIN_POOL_SIZE = 5
+ MAX_POOL_SIZE = 10
+diff --git a/tests/PyroTests/test_util.py b/tests/PyroTests/test_util.py
+index ac1e639..497ec4a 100644
+--- a/tests/PyroTests/test_util.py
++++ b/tests/PyroTests/test_util.py
+@@ -4,12 +4,15 @@ Tests for the utility functions.
+ Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net).
+ """
+
+-import unittest
+-
+ import sys, imp, os, platform
+ import Pyro4.util
+ from testsupport import *
+
++if (sys.version_info >= (2, 7) and sys.version_info < (3, 0)) or \
++ (sys.version_info >= (3, 1)):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ if not hasattr(imp,"reload"):
+ imp.reload=reload # python 2.5 doesn't have imp.reload
+--
+1.8.2.1
+
diff --git a/dev-python/pyro/metadata.xml b/dev-python/pyro/metadata.xml
new file mode 100644
index 00000000000..5699b06419b
--- /dev/null
+++ b/dev-python/pyro/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aidecoe@gentoo.org</email>
+ <name>Amadeusz Żołnowski</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Pyro</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyro/pyro-3.16-r1.ebuild b/dev-python/pyro/pyro-3.16-r1.ebuild
new file mode 100644
index 00000000000..a9fe60240cb
--- /dev/null
+++ b/dev-python/pyro/pyro-3.16-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="Pyro"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Advanced and powerful Distributed Object Technology system written entirely in Python"
+HOMEPAGE="http://www.xs4all.nl/~irmen/pyro3/ http://pypi.python.org/pypi/Pyro"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="3"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+DEPEND="!dev-python/pyro:0"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/${P}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/pyro/pyro-4.25.ebuild b/dev-python/pyro/pyro-4.25.ebuild
new file mode 100644
index 00000000000..c03b2afe2a7
--- /dev/null
+++ b/dev-python/pyro/pyro-4.25.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Pyro4"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Advanced and powerful Distributed Object Technology system written entirely in Python"
+HOMEPAGE="http://www.xs4all.nl/~irmen/pyro/ http://pypi.python.org/pypi/Pyro4"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="4"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="!dev-python/pyro:0
+ >=dev-python/serpent-1.5[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed \
+ -e '/sys.path.insert/a sys.path.insert(1,"PyroTests")' \
+ -i tests/run_suite.py || die
+
+ # Disable tests requiring network connection.
+ sed \
+ -e "s/testBCstart/_&/" \
+ -e "s/testDaemonPyroObj/_&/" \
+ -e "s/testLookupAndRegister/_&/" \
+ -e "s/testMulti/_&/" \
+ -e "s/testRefuseDottedNames/_&/" \
+ -e "s/testResolve/_&/" \
+ -e "s/testBCLookup/_&/" \
+ -i tests/PyroTests/test_naming.py || die
+ sed \
+ -e "s/testOwnloopBasics/_&/" \
+ -e "s/testStartNSfunc/_&/" \
+ -i tests/PyroTests/test_naming2.py || die
+
+ sed \
+ -e "s/testServerConnections/_&/" \
+ -e "s/testServerParallelism/_&/" \
+ -i tests/PyroTests/test_server.py || die
+
+ sed \
+ -e "s/testBroadcast/_&/" \
+ -e "s/testGetIP/_&/" \
+ -e "s/testGetIpVersion[46]/_&/" \
+ -i tests/PyroTests/test_socket.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${S}"/tests || die
+ ${PYTHON} run_suite.py || die
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyroma/Manifest b/dev-python/pyroma/Manifest
new file mode 100644
index 00000000000..a2bae45da2f
--- /dev/null
+++ b/dev-python/pyroma/Manifest
@@ -0,0 +1 @@
+DIST pyroma-1.7.zip 359654 SHA256 5498d46cb690404d70351aacaf04e61a709ca48c24c803ab5aac7fd7a1629518 SHA512 d7c95283273befbed6a747a1f3c0aa0af0db5c8d486128bcf5a3439dfe7204e1025afcf22cbdf5b96b6f4302b8d569c60c1eb9c646c035fd8a324e3d69f7195f WHIRLPOOL e5fc4a47c258db50ab2d5bb033e66cc6d589864c8d63bd448ddf491de849dbc87a1c93ccdde8729ff824e437dc8d2fefb05e536eb772507c0239c91983a22dc9
diff --git a/dev-python/pyroma/metadata.xml b/dev-python/pyroma/metadata.xml
new file mode 100644
index 00000000000..b919f51ed2d
--- /dev/null
+++ b/dev-python/pyroma/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dastergon@gentoo.org</email>
+ <name>Pavlos Ratis</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyroma</remote-id>
+ <remote-id type="bitbucket">regebro/pyroma</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyroma/pyroma-1.7.ebuild b/dev-python/pyroma/pyroma-1.7.ebuild
new file mode 100644
index 00000000000..7dd05388414
--- /dev/null
+++ b/dev-python/pyroma/pyroma-1.7.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Test project's packaging friendliness"
+HOMEPAGE="https://bitbucket.org/regebro/pyroma https://pypi.python.org/pypi/pyroma"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+DOCS=( README.txt HISTORY.txt )
+
+python_test() {
+ "${PYTHON}" setup.py test || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/pyrtf/Manifest b/dev-python/pyrtf/Manifest
new file mode 100644
index 00000000000..e2a0cf42fcc
--- /dev/null
+++ b/dev-python/pyrtf/Manifest
@@ -0,0 +1 @@
+DIST PyRTF-0.45.tar.gz 32837 SHA256 7c0b7c35688041978786e959fd83dbdffee66ded9d40e1ad0441c460164a349e SHA512 d07478ba7db6d3ef3e6c1925a58fb50b18936fecc4562338dd5b05d23672a4509a719b657a5b9e60bab5351f2be77551354fc9b856d7a9d3d4539733b05ab360 WHIRLPOOL 625270c32f033e0ff03b4c0419097a7b61a97d3a869d7bdc1f41e8bbaff54565d26922e5d0b87495bef562387fd84056e997b934bbee1cef8b162775aee069cd
diff --git a/dev-python/pyrtf/metadata.xml b/dev-python/pyrtf/metadata.xml
new file mode 100644
index 00000000000..a7d5dbd587e
--- /dev/null
+++ b/dev-python/pyrtf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pyrtf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyrtf/pyrtf-0.45-r1.ebuild b/dev-python/pyrtf/pyrtf-0.45-r1.ebuild
new file mode 100644
index 00000000000..f53e5ccbc1d
--- /dev/null
+++ b/dev-python/pyrtf/pyrtf-0.45-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+MY_PN="PyRTF"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A set of Python classes that make it possible to produce RTF documents from Python programs"
+HOMEPAGE="http://pyrtf.sourceforge.net http://pypi.python.org/pypi/PyRTF"
+SRC_URI="mirror://sourceforge/$PN/${MY_P}.tar.gz"
+
+LICENSE="|| ( GPL-2 LGPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/dev-python/pysaml2/Manifest b/dev-python/pysaml2/Manifest
new file mode 100644
index 00000000000..36740ed3233
--- /dev/null
+++ b/dev-python/pysaml2/Manifest
@@ -0,0 +1 @@
+DIST pysaml2-2.1.0.tar.gz 12697706 SHA256 0843cbe784fd3b8b798d8b476fe871d48f0f2aab2bd95036a6e50eda99860340 SHA512 ba2076bd81465f3bbaeac11e9a6908f1ab899aa301c909b6bc67a681e94a7260ab214bad949dc937b4673bbed2aa550bf196ee8b055939fce62c628056df18ac WHIRLPOOL beee7908e4bec5512c3a7c11fb94dfdbf2dfe284bffd86ec487100f81129928e1dc1512aed054939eedcb79205e32690b21f3fd50d768cef1ad4decfd00ba75b
diff --git a/dev-python/pysaml2/metadata.xml b/dev-python/pysaml2/metadata.xml
new file mode 100644
index 00000000000..7c2699cd6f4
--- /dev/null
+++ b/dev-python/pysaml2/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Python implementation of SAML Version 2 to be used in a WSGI environment
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pysaml2</remote-id>
+ <remote-id type="github">rohe/pysaml2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysaml2/pysaml2-2.1.0.ebuild b/dev-python/pysaml2/pysaml2-2.1.0.ebuild
new file mode 100644
index 00000000000..90982807ee9
--- /dev/null
+++ b/dev-python/pysaml2/pysaml2-2.1.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of SAML Version 2 to be used in a WSGI environment"
+HOMEPAGE="https://github.com/rohe/pysaml2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/paste[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ dev-python/repoze-who[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pyscard/Manifest b/dev-python/pyscard/Manifest
new file mode 100644
index 00000000000..df379bffb5f
--- /dev/null
+++ b/dev-python/pyscard/Manifest
@@ -0,0 +1 @@
+DIST pyscard-1.6.16.tar.gz 366857 SHA256 d284dd2b0e4a951d8beabead34add0b5539034ba41e0fc40a1e5163103612fd9 SHA512 ef13aee126fc12aa50cc73f9672c2a7734870f31a18ee6fc1c6c5d86cf1f565a3cd8458f9fd253c1649e394570ad6cf59e35e39db2bf714214a0dadee1116321 WHIRLPOOL 79e7b14642e808b09a2864b8d7e8c2efc2334fb9ff91aa6db6dc0563d4edfdc2e5ec9c8e4b0723dde00f0f089455ceada225ed62f0d050aa60ab52141b1f1d77
diff --git a/dev-python/pyscard/metadata.xml b/dev-python/pyscard/metadata.xml
new file mode 100644
index 00000000000..26f85238837
--- /dev/null
+++ b/dev-python/pyscard/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>crypto</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pyscard</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyscard/pyscard-1.6.16.ebuild b/dev-python/pyscard/pyscard-1.6.16.ebuild
new file mode 100644
index 00000000000..56661345d8e
--- /dev/null
+++ b/dev-python/pyscard/pyscard-1.6.16.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="pyscard is a python module adding smart cards support to python"
+HOMEPAGE="http://pyscard.sourceforge.net/ http://pypi.python.org/pypi/pyscard"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="sys-apps/pcsc-lite"
+DEPEND="${RDEPEND}
+ dev-lang/swig"
+
+DOCS=( README smartcard/ACKS smartcard/ChangeLog smartcard/TODO )
diff --git a/dev-python/pysctp/Manifest b/dev-python/pysctp/Manifest
new file mode 100644
index 00000000000..f5c15ec849d
--- /dev/null
+++ b/dev-python/pysctp/Manifest
@@ -0,0 +1 @@
+DIST pysctp-0.6.tar.gz 29611 SHA256 4c2b8863a18695575460e432a7386b90be464a94585f2b7fe36ddbc3c3a380fc SHA512 621ddeecaec9eb0114783e2103405ae3eb0c8950a3c76fafe4505ad5311e2c004dd10219d90216fd5f5e79e033e490695e7428ee7c7a5fba26dea7d253e50215 WHIRLPOOL ecd42f69024832558630e36ba1a2788d10aafe9868610c8840d61bdcb5941fa544a6c8adf410672001dc1c6913e8524768abae33b87623acbd86de6d7671ebe1
diff --git a/dev-python/pysctp/metadata.xml b/dev-python/pysctp/metadata.xml
new file mode 100644
index 00000000000..d121b14c06e
--- /dev/null
+++ b/dev-python/pysctp/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>zx2c4@gentoo.org</email>
+ <name>Jason A. Donenfeld</name>
+ </maintainer>
+ <maintainer>
+ <email>phil@p1sec.com</email>
+ <name>Philippe Langlois</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">philpraxis/pysctp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysctp/pysctp-0.6.ebuild b/dev-python/pysctp/pysctp-0.6.ebuild
new file mode 100644
index 00000000000..d64e6678394
--- /dev/null
+++ b/dev-python/pysctp/pysctp-0.6.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="PySCTP gives access to the SCTP transport protocol from Python"
+HOMEPAGE="https://github.com/philpraxis/pysctp"
+SRC_URI="https://github.com/philpraxis/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="net-misc/lksctp-tools"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ distutils-r1_src_install
+ rm -v "${D}usr/_sctp.h"
+ dodoc test_local_cnx.py test_remote_cnx.py
+}
diff --git a/dev-python/pysendfile/Manifest b/dev-python/pysendfile/Manifest
new file mode 100644
index 00000000000..d44ede48479
--- /dev/null
+++ b/dev-python/pysendfile/Manifest
@@ -0,0 +1 @@
+DIST pysendfile-2.0.1.tar.gz 19315 SHA256 510a414b270986fba3c79cb76d90a4c910c701bfb43ff983a5d4e92846050e17 SHA512 d6ee08eb251fac30c90a9ee829fd992f3620697eef2893ced5a2c6273486c3c5fd35c70962585a8d747d578817391f91c929bfeeba8c4485d52a15748229ca9c WHIRLPOOL a1f9a54ff2f0111d3c62f3ec17490241270d711b8529b701d27b12f7aa607c13c86ae7e2910770b8626b86909c9943e3ab8395676c5c09eff52274165ab64641
diff --git a/dev-python/pysendfile/metadata.xml b/dev-python/pysendfile/metadata.xml
new file mode 100644
index 00000000000..6814dded9e0
--- /dev/null
+++ b/dev-python/pysendfile/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">pysendfile</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysendfile/pysendfile-2.0.1.ebuild b/dev-python/pysendfile/pysendfile-2.0.1.ebuild
new file mode 100644
index 00000000000..de8692748d7
--- /dev/null
+++ b/dev-python/pysendfile/pysendfile-2.0.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A python interface to sendfile(2) system call"
+HOMEPAGE="http://code.google.com/p/pysendfile/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# Testsuite abandonned due to demanding starting a local web type server
diff --git a/dev-python/pyserial/Manifest b/dev-python/pyserial/Manifest
new file mode 100644
index 00000000000..15b3cbaefdf
--- /dev/null
+++ b/dev-python/pyserial/Manifest
@@ -0,0 +1,2 @@
+DIST pyserial-2.6.tar.gz 116289 SHA256 049dbcda0cd475d3be903e721d60889ee2cc4ec3b62892a81ecef144196413ed SHA512 41682f8fafb6c5fa9642d3a0a3d6d0648101c38d157005f9c4e019e55d534953486072caf05647d8828b0e19c8259cc61cac856a570bf09904922ffd175fad2d WHIRLPOOL d632521d4687751f3056eda3ef254d603a7450d09457deed4d12136ee690d8af8d9aea1b8f8aebe9ec877a00bec5fa54933d2bff0cec281de0b676dde3d86e55
+DIST pyserial-2.7.tar.gz 122081 SHA256 3542ec0838793e61d6224e27ff05e8ce4ba5a5c5cc4ec5c6a3e8d49247985477 SHA512 3fc8d9425a47ebcd37db1fcc58182854b48c9abd6642f35fba2d21458d864ae448105d704dc0d880832ba7516fa16f108f24363bd5fa9f083ea79a4ac614339b WHIRLPOOL ae6b4df86220617f7fbc1f1e4085a7e85dca645a6d84339163b40fc7a15f14b879ef7a729d3d23d0300f9ee04b21d6c24d13a791d520aef3f3ad141c6acd9b68
diff --git a/dev-python/pyserial/files/mapping.patch b/dev-python/pyserial/files/mapping.patch
new file mode 100644
index 00000000000..bd315d98f04
--- /dev/null
+++ b/dev-python/pyserial/files/mapping.patch
@@ -0,0 +1,13 @@
+diff -ur pyserial-2.7.orig/documentation/conf.py pyserial-2.7/documentation/conf.py
+--- documentation/conf.py 2013-10-18 00:29:53.000000000 +0800
++++ documentation/conf.py 2014-03-28 12:41:08.848807687 +0800
+@@ -192,9 +192,3 @@
+
+ # If false, no module index is generated.
+ #latex_use_modindex = True
+-
+-# for external links to standard library
+-intersphinx_mapping = {
+- #~ 'python': ('http://docs.python.org', None),
+- 'py': ('http://docs.python.org', None),
+- }
diff --git a/dev-python/pyserial/files/pyserial-2.5-python-3.patch b/dev-python/pyserial/files/pyserial-2.5-python-3.patch
new file mode 100644
index 00000000000..5ad5c6c8052
--- /dev/null
+++ b/dev-python/pyserial/files/pyserial-2.5-python-3.patch
@@ -0,0 +1,43 @@
+http://pyserial.svn.sourceforge.net/viewvc/pyserial?view=revision&revision=381
+
+--- setup.py
++++ setup.py
+@@ -1,7 +1,13 @@
+-# setup.py for pyserial
++# setup.py for pySerial
+ #
+-# windows installer:
+-# python setup.py bdist_wininst
++# Windows installer:
++# "python setup.py bdist_wininst"
++#
++# Direct install (all systems):
++# "python setup.py install"
++#
++# For Python 3.x use the corresponding Python executable,
++# e.g. "python3 setup.py ..."
+
+ import sys
+
+@@ -9,10 +15,12 @@
+
+ try:
+ from distutils.command.build_py import build_py_2to3 as build_py
++ from distutils.command.build_scripts import build_scripts_2to3 as build_scripts
+ except ImportError:
+ if sys.version_info >= (3, 0):
+ raise ImportError("build_py_2to3 not found in distutils - it is required for Python 3.x")
+ from distutils.command.build_py import build_py
++ from distutils.command.build_scripts import build_scripts
+ suffix = ""
+ else:
+ suffix = "-py3k"
+@@ -60,7 +68,7 @@
+ 'Topic :: Terminals :: Serial',
+ ],
+ platforms = 'any',
+- cmdclass = {'build_py': build_py},
++ cmdclass = {'build_py': build_py, 'build_scripts': build_scripts},
+
+ scripts = ['examples/miniterm.py'],
+ )
diff --git a/dev-python/pyserial/files/pyserial-2.6-list_ports.patch b/dev-python/pyserial/files/pyserial-2.6-list_ports.patch
new file mode 100644
index 00000000000..cd3b4ef8e32
--- /dev/null
+++ b/dev-python/pyserial/files/pyserial-2.6-list_ports.patch
@@ -0,0 +1,15 @@
+http://sourceforge.net/p/pyserial/patches/26/
+Index: trunk/pyserial/serial/tools/list_ports_posix.py
+===================================================================
+--- trunk/pyserial/serial/tools/list_ports_posix.py (revision 439)
++++ trunk/pyserial/serial/tools/list_ports_posix.py (working copy)
+@@ -64,7 +64,8 @@
+ )
+
+ def usb_lsusb_string(sysfs_path):
+- bus, dev = os.path.basename(os.path.realpath(sysfs_path)).split('-')
++ base = os.path.basename(os.path.realpath(sysfs_path))
++ bus, dev = base.split('-')
+ try:
+ desc = popen(['lsusb', '-v', '-s', '%s:%s' % (bus, dev)])
+ # descriptions from device
diff --git a/dev-python/pyserial/metadata.xml b/dev-python/pyserial/metadata.xml
new file mode 100644
index 00000000000..b52569ee11b
--- /dev/null
+++ b/dev-python/pyserial/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyserial</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyserial/pyserial-2.6-r1.ebuild b/dev-python/pyserial/pyserial-2.6-r1.ebuild
new file mode 100644
index 00000000000..36fa3936542
--- /dev/null
+++ b/dev-python/pyserial/pyserial-2.6-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Serial Port Extension"
+HOMEPAGE="http://pyserial.sourceforge.net/ http://sourceforge.net/projects/pyserial/ http://pypi.python.org/pypi/pyserial"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+DOCS=( CHANGES.txt README.txt )
+PATCHES=( "${FILESDIR}"/${PN}-${PV}-list_ports.patch )
diff --git a/dev-python/pyserial/pyserial-2.7-r1.ebuild b/dev-python/pyserial/pyserial-2.7-r1.ebuild
new file mode 100644
index 00000000000..ae44b85b8ee
--- /dev/null
+++ b/dev-python/pyserial/pyserial-2.7-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Serial Port Extension"
+HOMEPAGE="http://pyserial.sourceforge.net/ http://sourceforge.net/projects/pyserial/ http://pypi.python.org/pypi/pyserial"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="doc examples"
+
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND=""
+PATCHES=( "${FILESDIR}"/mapping.patch )
+DOCS=( CHANGES.txt README.txt )
+
+python_prepare_all() {
+ # Usual avoid d'loading un-needed objects.inv file
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C documentation html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyserial/pyserial-2.7.ebuild b/dev-python/pyserial/pyserial-2.7.ebuild
new file mode 100644
index 00000000000..fb49cf7bc82
--- /dev/null
+++ b/dev-python/pyserial/pyserial-2.7.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Serial Port Extension"
+HOMEPAGE="http://pyserial.sourceforge.net/ http://sourceforge.net/projects/pyserial/ http://pypi.python.org/pypi/pyserial"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+DOCS=( CHANGES.txt README.txt )
diff --git a/dev-python/pysfml/Manifest b/dev-python/pysfml/Manifest
new file mode 100644
index 00000000000..376926f7918
--- /dev/null
+++ b/dev-python/pysfml/Manifest
@@ -0,0 +1 @@
+DIST SFML-1.6-python-sdk.zip 170889 SHA256 1c6808bffb2e7346f6ca44e778245412427f21d59940dfd37088149e6557cd33 SHA512 e43aecd95cde10578ffc4f2eaf352efcc42983ff4edd7c30aebdb3c15c73cf5a261d61dda544a726fcfc7d6946d73d6b6de99896e4d9b3c3d8e8ff7166ee2a59 WHIRLPOOL feb2e80c274a2af3ec918326adbc20f0a1df926f2c6d471c3fa3c5f8182b83c3bbb4496d2b0585a656021e1210b6180f9720b4e03584a0f9ce35c4861c8de1a1
diff --git a/dev-python/pysfml/metadata.xml b/dev-python/pysfml/metadata.xml
new file mode 100644
index 00000000000..6a4b0682751
--- /dev/null
+++ b/dev-python/pysfml/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">sfml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysfml/pysfml-1.6-r1.ebuild b/dev-python/pysfml/pysfml-1.6-r1.ebuild
new file mode 100644
index 00000000000..a0d2abe206f
--- /dev/null
+++ b/dev-python/pysfml/pysfml-1.6-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for the Simple and Fast Multimedia Library (SFML)"
+HOMEPAGE="http://sfml.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sfml/SFML-${PV}-python-sdk.zip"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="~media-libs/libsfml-${PV}"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/SFML-${PV}/python
+
+python_compile() {
+ if [[ ${EPYTHON} == python2* ]] ; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml doc/*
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r samples/* || die "doins failed"
+ fi
+}
diff --git a/dev-python/pyshark/Manifest b/dev-python/pyshark/Manifest
new file mode 100644
index 00000000000..1475822a47b
--- /dev/null
+++ b/dev-python/pyshark/Manifest
@@ -0,0 +1,3 @@
+DIST pyshark-0.3.4.zip 22495 SHA256 d9f9e4230c4dce9a3ae4fd133a6467c86816751de7b2c6859836eeb0bcd1c480 SHA512 9a9bc78422741ee1c483eb6ceb6717e660d80b0489286da497cd58f68328d6ea60acbb54fb8900f9f2dc1fa3fbfd8d663e7772b934eaf62fdd89b6115273421d WHIRLPOOL 5bece1406ef1978b14a47e2d40169dfa47ac5f929ad425da343077b1c000538507f5390331c2b9800d9ac997fbdce6863c6a61f0cc1e4b963412f3109020fe0a
+DIST pyshark-0.3.5.zip 23561 SHA256 6b6e3d9af2e40e97bedaae6c9cadecf3006be432923f25d25ba9705813ee5753 SHA512 0079e07a9a593de98b44564e860d79fd7b35c50f37ef3d616a56afec5273b864c22c8ed6126f3ad6c533cae90ea60e876b29ea9873656d3c7bfc13c2a2b47612 WHIRLPOOL b5d2a66382036f6f3a5ab4f7025fedc0ed7b1513792469d8e63d322a31ddec9527be3944d863dcdac4115b2e90bf1fa518d17bdbedf745f8b59cabfd98979f69
+DIST pyshark-0.3.6.tar.gz 15237 SHA256 51372c0a36446af45f0101d4fc97b336a096356c28da6626041889bf3b24c6f2 SHA512 e2250af229f072f32fa7900dbafbc29b5964134dd7849b53729afb220a5a20faa3b48515d1b83f0084a6f251187b00c192ce5b16e276faf784404bfe5b9c1fa5 WHIRLPOOL 0e77ac977818e61386ac47a64bb31da138c5a2736768a7806d638745c547bf58b777060cc1958af9af40a28ebf20e89f67b4cf292588ebd5b3aec5f30fe10e26
diff --git a/dev-python/pyshark/metadata.xml b/dev-python/pyshark/metadata.xml
new file mode 100644
index 00000000000..f9b3553b83b
--- /dev/null
+++ b/dev-python/pyshark/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyshark</remote-id>
+ <remote-id type="github">KimiNewt/pyshark</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyshark/pyshark-0.3.4.ebuild b/dev-python/pyshark/pyshark-0.3.4.ebuild
new file mode 100644
index 00000000000..91aa2b83c6e
--- /dev/null
+++ b/dev-python/pyshark/pyshark-0.3.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A Python wrapper for tshark output parsing"
+HOMEPAGE="https://pypi.python.org/pypi/pyshark https://github.com/KimiNewt/pyshark"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/futures[${PYTHON_USEDEP}]
+ dev-python/logbook[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/trollius[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ net-analyzer/wireshark"
+
+DOCS=( README.txt )
diff --git a/dev-python/pyshark/pyshark-0.3.5.ebuild b/dev-python/pyshark/pyshark-0.3.5.ebuild
new file mode 100644
index 00000000000..75d56c41915
--- /dev/null
+++ b/dev-python/pyshark/pyshark-0.3.5.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A Python wrapper for tshark output parsing"
+HOMEPAGE="https://pypi.python.org/pypi/pyshark https://github.com/KimiNewt/pyshark"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# See pyshark.egg-info/requires.txt
+RDEPEND="dev-python/py[${PYTHON_USEDEP}]
+ dev-python/logbook[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/trollius[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ net-analyzer/wireshark"
+# Tests exlcuded in MANIFEST.in
diff --git a/dev-python/pyshark/pyshark-0.3.6.ebuild b/dev-python/pyshark/pyshark-0.3.6.ebuild
new file mode 100644
index 00000000000..752b5295a71
--- /dev/null
+++ b/dev-python/pyshark/pyshark-0.3.6.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A Python wrapper for tshark output parsing"
+HOMEPAGE="https://pypi.python.org/pypi/pyshark https://github.com/KimiNewt/pyshark"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# See pyshark.egg-info/requires.txt
+RDEPEND="dev-python/py[${PYTHON_USEDEP}]
+ dev-python/logbook[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/trollius[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ net-analyzer/wireshark"
+# Tests exlcuded in MANIFEST.in
diff --git a/dev-python/pyside-tools/Manifest b/dev-python/pyside-tools/Manifest
new file mode 100644
index 00000000000..e42c98efcf8
--- /dev/null
+++ b/dev-python/pyside-tools/Manifest
@@ -0,0 +1 @@
+DIST pyside-tools-0.2.15.tar.gz 78989 SHA256 8a7fe786b19c5b2b4380aff0a9590b3129fad4a0f6f3df1f39593d79b01a9f74 SHA512 7cee288b733e5f83a01683d7fc8f1017c044e46dbb02489c5e763e37db4e24f319ffd593e001ee6ca5a21a34cf1a6009ab1d4c9e4102c60693992b6f2f7c8991 WHIRLPOOL 23d7a325f548cd1d95b91c40d5c2ccbdd70a25328948f93b5232bf8d1177674899bfdd51161873c34be5245d20c4d202a3eed29ce7fa10399cabad9e84b2e698
diff --git a/dev-python/pyside-tools/files/0.2.13-fix-pysideuic-test-and-install.patch b/dev-python/pyside-tools/files/0.2.13-fix-pysideuic-test-and-install.patch
new file mode 100644
index 00000000000..768ae22a8bc
--- /dev/null
+++ b/dev-python/pyside-tools/files/0.2.13-fix-pysideuic-test-and-install.patch
@@ -0,0 +1,27 @@
+diff -Naur pyside-tools-0.2.13.orig/CMakeLists.txt pyside-tools-0.2.13/CMakeLists.txt
+--- pyside-tools-0.2.13.orig/CMakeLists.txt 2012-03-09 00:46:56.377462594 +0100
++++ pyside-tools-0.2.13/CMakeLists.txt 2012-03-09 00:48:08.888556082 +0100
+@@ -11,7 +11,7 @@
+ set(pyside_tools_MICRO_VERSION "13")
+ set(pyside_tools_VERSION "${pyside_tools_MAJOR_VERSION}.${pyside_tools_MINOR_VERSION}.${pyside_tools_MICRO_VERSION}")
+
+-configure_file("pysideuic/__init__.py.in" "__init__.py" @ONLY)
++configure_file("pysideuic/__init__.py.in" "pysideuic/__init__.py" @ONLY)
+
+ option(BUILD_TESTS "Build tests." TRUE)
+
+@@ -34,13 +34,10 @@
+ GROUP_EXECUTE GROUP_READ
+ WORLD_EXECUTE WORLD_READ)
+
+-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/__init__.py"
+- DESTINATION "${SITE_PACKAGE}/pysideuic")
+ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/pysideuic
+ DESTINATION ${SITE_PACKAGE}
+ PATTERN "*.in" EXCLUDE
+- PATTERN "*pysideuic/__init__.py" EXCLUDE
+- PATTERN "*pysideuic\\__init__.py" EXCLUDE)
++ PATTERN "*/pysideuic/*.1" EXCLUDE)
+
+ # Man pages for pyside-uic
+ if (NOT win32)
diff --git a/dev-python/pyside-tools/metadata.xml b/dev-python/pyside-tools/metadata.xml
new file mode 100644
index 00000000000..c4e85445121
--- /dev/null
+++ b/dev-python/pyside-tools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+ <upstream>
+ <remote-id type="github">PySide/Tools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyside-tools/pyside-tools-0.2.15-r1.ebuild b/dev-python/pyside-tools/pyside-tools-0.2.15-r1.ebuild
new file mode 100644
index 00000000000..64c5ceb9491
--- /dev/null
+++ b/dev-python/pyside-tools/pyside-tools-0.2.15-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+CMAKE_IN_SOURCE_BUILD="1"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+VIRTUALX_COMMAND="cmake-utils_src_test"
+
+inherit eutils cmake-utils python-r1 vcs-snapshot virtualx
+
+DESCRIPTION="PySide development tools (lupdate, rcc, uic)"
+HOMEPAGE="http://qt-project.org/wiki/PySide"
+SRC_URI="https://github.com/PySide/Tools/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/pyside-1.2.0[X,${PYTHON_USEDEP}]
+ >=dev-python/shiboken-1.2.0[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-4.7.0:4
+ >=dev-qt/qtgui-4.7.0:4
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ test? ( virtual/pkgconfig )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/0.2.13-fix-pysideuic-test-and-install.patch
+
+ python_copy_sources
+
+ preparation() {
+ pushd "${BUILD_DIR}" >/dev/null || die
+ if python_is_python3; then
+ rm -fr pysideuic/port_v2
+ else
+ rm -fr pysideuic/port_v3
+ fi
+
+ sed -i -e "/pkg-config/ s:shiboken:&-${EPYTHON}:" \
+ tests/rcc/run_test.sh || die
+ popd >/dev/null || die
+ }
+ python_foreach_impl preparation
+}
+
+src_configure() {
+ configuration() {
+ local mycmakeargs=(
+ -DPYTHON_BASENAME="-${EPYTHON}"
+ -DPYTHON_SUFFIX="-${EPYTHON}"
+ $(cmake-utils_use_build test TESTS)
+ )
+ CMAKE_USE_DIR="${BUILD_DIR}" cmake-utils_src_configure
+ }
+ python_foreach_impl configuration
+}
+
+src_compile() {
+ compilation() {
+ CMAKE_USE_DIR="${BUILD_DIR}" cmake-utils_src_make
+ }
+ python_foreach_impl compilation
+}
+
+src_test() {
+ testing() {
+ CMAKE_USE_DIR="${BUILD_DIR}" virtualmake
+ }
+ python_foreach_impl testing
+}
+
+src_install() {
+ installation() {
+ CMAKE_USE_DIR="${BUILD_DIR}" cmake-utils_src_install DESTDIR="${D}"
+ }
+ python_foreach_impl installation
+
+ dodoc AUTHORS
+}
diff --git a/dev-python/pyside/Manifest b/dev-python/pyside/Manifest
new file mode 100644
index 00000000000..f6874fbfc8f
--- /dev/null
+++ b/dev-python/pyside/Manifest
@@ -0,0 +1 @@
+DIST pyside-qt4.8+1.2.2.tar.bz2 3765472 SHA256 a1a9df746378efe52211f1a229f77571d1306fb72830bbf73f0d512ed9856ae1 SHA512 3a1d46c48ac71c3b138e1dc398d1d2a87aff558eace275303e233f78d03e32c6d53cf390db5e7112f44da9b17aa88ed16a30f6f83b2073c1f494e61b962e4c46 WHIRLPOOL 5ac5eb5032fbc791e955eb0b2b0f1443e43867408a7b6c41854db1cab466714509c035e8271f5b0b3078309be001d5bcea498601b97f540e7775e87bdbc1c0c8
diff --git a/dev-python/pyside/files/qgtkstyle-1.2.2.patch b/dev-python/pyside/files/qgtkstyle-1.2.2.patch
new file mode 100644
index 00000000000..d782276aba6
--- /dev/null
+++ b/dev-python/pyside/files/qgtkstyle-1.2.2.patch
@@ -0,0 +1,33 @@
+diff --git a/PySide/QtGui/CMakeLists.txt b/PySide/QtGui/CMakeLists.txt
+index 6e14706..bd60775 100644
+--- a/PySide/QtGui/CMakeLists.txt
++++ b/PySide/QtGui/CMakeLists.txt
+@@ -71,7 +71,6 @@ set(QtGui_OPTIONAL_SRC )
+ set(QtGui_DROPPED_ENTRIES )
+ check_qt_class(QtGui QAbstractPageSetupDialog QtGui_OPTIONAL_SRC QtGui_DROPPED_ENTRIES)
+ check_qt_class(QtGui QAbstractPrintDialog QtGui_OPTIONAL_SRC QtGui_DROPPED_ENTRIES)
+-check_qt_class(QtGui QGtkStyle QtGui_OPTIONAL_SRC QtGui_DROPPED_ENTRIES)
+ check_qt_class(QtGui QPageSetupDialog QtGui_OPTIONAL_SRC QtGui_DROPPED_ENTRIES)
+ check_qt_class(QtGui QPrintDialog QtGui_OPTIONAL_SRC QtGui_DROPPED_ENTRIES)
+ check_qt_class(QtGui QPrintEngine QtGui_OPTIONAL_SRC QtGui_DROPPED_ENTRIES)
+diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
+index 711d7cc..954aa54 100644
+--- a/PySide/QtGui/typesystem_gui_common.xml
++++ b/PySide/QtGui/typesystem_gui_common.xml
+@@ -6996,16 +6996,6 @@
+ <modify-function signature="exec()" rename="exec_" allow-thread="yes" />
+ </object-type>
+
+- <object-type name="QGtkStyle">
+- <modify-function signature="standardPixmap(QStyle::StandardPixmap,const QStyleOption*,const QWidget*)const">
+- <modify-argument index="2">
+- <replace-default-expression with="0"/>
+- </modify-argument>
+- <modify-argument index="3">
+- <replace-default-expression with="0"/>
+- </modify-argument>
+- </modify-function>
+- </object-type>
+
+ <object-type name="QPageSetupDialog">
+ <enum-type name="PageSetupDialogOption" flags="PageSetupDialogOptions"/>
diff --git a/dev-python/pyside/files/rpath.cmake b/dev-python/pyside/files/rpath.cmake
new file mode 100644
index 00000000000..b896c878918
--- /dev/null
+++ b/dev-python/pyside/files/rpath.cmake
@@ -0,0 +1,10 @@
+# use, i.e. don't skip the full RPATH for the build tree
+SET(CMAKE_SKIP_BUILD_RPATH FALSE)
+
+# when building, don't use the install RPATH already
+# (but later on when installing)
+SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+
+# add the automatically determined parts of the RPATH
+# which point to directories outside the build tree to the install RPATH
+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
diff --git a/dev-python/pyside/metadata.xml b/dev-python/pyside/metadata.xml
new file mode 100644
index 00000000000..186ae3f8e09
--- /dev/null
+++ b/dev-python/pyside/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+ <use>
+ <flag name="X">Build QtGui and QtTest modules</flag>
+ <flag name="declarative">Build QtDeclarative module</flag>
+ <flag name="designer">Build QtDesigner and QtUiTools modules</flag>
+ <flag name="help">Build QtHelp module</flag>
+ <flag name="multimedia">Build QtMultimedia module</flag>
+ <flag name="opengl">Build QtOpenGL module</flag>
+ <flag name="phonon">Build phonon module</flag>
+ <flag name="script">Build QtScript module</flag>
+ <flag name="scripttools">Build QtScriptTools module</flag>
+ <flag name="sql">Build QtSql module</flag>
+ <flag name="svg">Build QtSvg module</flag>
+ <flag name="webkit">Build QtWebKit module</flag>
+ <flag name="xmlpatterns">Build QtXmlPatterns module</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pyside/pyside-1.2.2-r1.ebuild b/dev-python/pyside/pyside-1.2.2-r1.ebuild
new file mode 100644
index 00000000000..b2f67938ea2
--- /dev/null
+++ b/dev-python/pyside/pyside-1.2.2-r1.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit cmake-utils multilib python-r1 virtualx
+
+MY_P="${PN}-qt4.8+${PV}"
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="http://qt-project.org/wiki/PySide"
+SRC_URI="http://download.qt-project.org/official_releases/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+
+IUSE="X declarative designer help multimedia opengl phonon script scripttools sql svg test webkit xmlpatterns"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ declarative? ( X )
+ designer? ( X )
+ help? ( X )
+ multimedia? ( X )
+ opengl? ( X )
+ phonon? ( X )
+ scripttools? ( X script )
+ sql? ( X )
+ svg? ( X )
+ test? ( X )
+ webkit? ( X )
+"
+
+# Minimal supported version of Qt.
+QT_PV="4.8.5:4"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/shiboken-${PV}[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-${QT_PV}
+ X? (
+ >=dev-qt/qtgui-${QT_PV}[accessibility]
+ >=dev-qt/qttest-${QT_PV}
+ )
+ declarative? ( >=dev-qt/qtdeclarative-${QT_PV} )
+ designer? ( >=dev-qt/designer-${QT_PV} )
+ help? ( >=dev-qt/qthelp-${QT_PV} )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+ phonon? ( || (
+ media-libs/phonon[qt4(+)]
+ >=dev-qt/qtphonon-${QT_PV}
+ ) )
+ script? ( >=dev-qt/qtscript-${QT_PV} )
+ sql? ( >=dev-qt/qtsql-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV}[accessibility] )
+ webkit? ( >=dev-qt/qtwebkit-${QT_PV} )
+ xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+ >=dev-qt/qtgui-${QT_PV}
+"
+
+S=${WORKDIR}/${MY_P}
+
+DOCS=( ChangeLog )
+
+src_prepare() {
+ # Fix generated pkgconfig file to require the shiboken
+ # library suffixed with the correct python version.
+ sed -i -e '/^Requires:/ s/shiboken$/&@SHIBOKEN_PYTHON_SUFFIX@/' \
+ libpyside/pyside.pc.in || die
+
+ if use prefix; then
+ cp "${FILESDIR}"/rpath.cmake . || die
+ sed -i -e '1iinclude(rpath.cmake)' CMakeLists.txt || die
+ fi
+
+ epatch "${FILESDIR}/qgtkstyle-${PV}.patch" # bug 530764
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_build test TESTS)
+ $(cmake-utils_use_disable X QtGui)
+ $(cmake-utils_use_disable X QtTest)
+ $(cmake-utils_use_disable declarative QtDeclarative)
+ $(cmake-utils_use_disable designer QtDesigner)
+ $(cmake-utils_use_disable designer QtUiTools)
+ $(cmake-utils_use_disable help QtHelp)
+ $(cmake-utils_use_disable multimedia QtMultimedia)
+ $(cmake-utils_use_disable opengl QtOpenGL)
+ $(cmake-utils_use_disable phonon)
+ $(cmake-utils_use_disable script QtScript)
+ $(cmake-utils_use_disable scripttools QtScriptTools)
+ $(cmake-utils_use_disable sql QtSql)
+ $(cmake-utils_use_disable svg QtSvg)
+ $(cmake-utils_use_disable webkit QtWebKit)
+ $(cmake-utils_use_disable xmlpatterns QtXmlPatterns)
+ )
+
+ if use phonon && has_version "media-libs/phonon[qt4(+)]"; then
+ # bug 475786
+ mycmakeargs+=(
+ -DQT_PHONON_INCLUDE_DIR="${EPREFIX}/usr/include/phonon"
+ -DQT_PHONON_LIBRARY_RELEASE="${EPREFIX}/usr/$(get_libdir)/libphonon.so"
+ )
+ fi
+
+ configuration() {
+ local mycmakeargs=(
+ -DPYTHON_SUFFIX="-${EPYTHON}"
+ "${mycmakeargs[@]}"
+ )
+ cmake-utils_src_configure
+ }
+ python_foreach_impl configuration
+}
+
+src_compile() {
+ python_foreach_impl cmake-utils_src_compile
+}
+
+src_test() {
+ local PYTHONDONTWRITEBYTECODE
+ export PYTHONDONTWRITEBYTECODE
+
+ VIRTUALX_COMMAND="cmake-utils_src_test" python_foreach_impl virtualmake
+}
+
+src_install() {
+ installation() {
+ cmake-utils_src_install
+ mv "${ED}"usr/$(get_libdir)/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
+ }
+ python_foreach_impl installation
+}
diff --git a/dev-python/pyside/pyside-1.2.2.ebuild b/dev-python/pyside/pyside-1.2.2.ebuild
new file mode 100644
index 00000000000..c2ff4b9e854
--- /dev/null
+++ b/dev-python/pyside/pyside-1.2.2.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit cmake-utils multilib python-r1 virtualx
+
+MY_P="${PN}-qt4.8+${PV}"
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="http://qt-project.org/wiki/PySide"
+SRC_URI="http://download.qt-project.org/official_releases/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+
+IUSE="X declarative designer help multimedia opengl phonon script scripttools sql svg test webkit xmlpatterns"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ declarative? ( X )
+ designer? ( X )
+ help? ( X )
+ multimedia? ( X )
+ opengl? ( X )
+ phonon? ( X )
+ scripttools? ( X script )
+ sql? ( X )
+ svg? ( X )
+ test? ( X )
+ webkit? ( X )
+"
+
+# Minimal supported version of Qt.
+QT_PV="4.8.5:4"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/shiboken-${PV}[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-${QT_PV}
+ X? (
+ >=dev-qt/qtgui-${QT_PV}[accessibility]
+ >=dev-qt/qttest-${QT_PV}
+ )
+ declarative? ( >=dev-qt/qtdeclarative-${QT_PV} )
+ designer? ( >=dev-qt/designer-${QT_PV} )
+ help? ( >=dev-qt/qthelp-${QT_PV} )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+ phonon? ( || (
+ media-libs/phonon[qt4(+)]
+ >=dev-qt/qtphonon-${QT_PV}
+ ) )
+ script? ( >=dev-qt/qtscript-${QT_PV} )
+ sql? ( >=dev-qt/qtsql-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV}[accessibility] )
+ webkit? ( >=dev-qt/qtwebkit-${QT_PV} )
+ xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+ >=dev-qt/qtgui-${QT_PV}
+"
+
+S=${WORKDIR}/${MY_P}
+
+DOCS=( ChangeLog )
+
+src_prepare() {
+ # Fix generated pkgconfig file to require the shiboken
+ # library suffixed with the correct python version.
+ sed -i -e '/^Requires:/ s/shiboken$/&@SHIBOKEN_PYTHON_SUFFIX@/' \
+ libpyside/pyside.pc.in || die
+
+ if use prefix; then
+ cp "${FILESDIR}"/rpath.cmake . || die
+ sed -i -e '1iinclude(rpath.cmake)' CMakeLists.txt || die
+ fi
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_build test TESTS)
+ $(cmake-utils_use_disable X QtGui)
+ $(cmake-utils_use_disable X QtTest)
+ $(cmake-utils_use_disable declarative QtDeclarative)
+ $(cmake-utils_use_disable designer QtDesigner)
+ $(cmake-utils_use_disable designer QtUiTools)
+ $(cmake-utils_use_disable help QtHelp)
+ $(cmake-utils_use_disable multimedia QtMultimedia)
+ $(cmake-utils_use_disable opengl QtOpenGL)
+ $(cmake-utils_use_disable phonon)
+ $(cmake-utils_use_disable script QtScript)
+ $(cmake-utils_use_disable scripttools QtScriptTools)
+ $(cmake-utils_use_disable sql QtSql)
+ $(cmake-utils_use_disable svg QtSvg)
+ $(cmake-utils_use_disable webkit QtWebKit)
+ $(cmake-utils_use_disable xmlpatterns QtXmlPatterns)
+ )
+
+ if use phonon && has_version "media-libs/phonon[qt4(+)]"; then
+ # bug 475786
+ mycmakeargs+=(
+ -DQT_PHONON_INCLUDE_DIR="${EPREFIX}/usr/include/phonon"
+ -DQT_PHONON_LIBRARY_RELEASE="${EPREFIX}/usr/$(get_libdir)/libphonon.so"
+ )
+ fi
+
+ configuration() {
+ local mycmakeargs=(
+ -DPYTHON_SUFFIX="-${EPYTHON}"
+ "${mycmakeargs[@]}"
+ )
+ cmake-utils_src_configure
+ }
+ python_foreach_impl configuration
+}
+
+src_compile() {
+ python_foreach_impl cmake-utils_src_compile
+}
+
+src_test() {
+ local PYTHONDONTWRITEBYTECODE
+ export PYTHONDONTWRITEBYTECODE
+
+ VIRTUALX_COMMAND="cmake-utils_src_test" python_foreach_impl virtualmake
+}
+
+src_install() {
+ installation() {
+ cmake-utils_src_install
+ mv "${ED}"usr/$(get_libdir)/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
+ }
+ python_foreach_impl installation
+}
diff --git a/dev-python/pysnmp-apps/Manifest b/dev-python/pysnmp-apps/Manifest
new file mode 100644
index 00000000000..2a983adeaea
--- /dev/null
+++ b/dev-python/pysnmp-apps/Manifest
@@ -0,0 +1,2 @@
+DIST pysnmp-apps-0.3.2.tar.gz 23944 SHA256 d9908af7c7b7e286f0d457769fbfb071b6fdb2f46973f63de33de193046a6569 SHA512 142ea6b3467a8aa1ceb7f826b6629b1ef55285ee0144bf88f45fc3694a42b5ceadadebc27a73a19929d28fe9a69e4e84808b438c7861ba83f87a2a946a05dade WHIRLPOOL 4c867d977d027aeec55a26c0ee69b3df18ab650cdceeda15ed05d6c9295819883d472fffa6e50de8944a8a61afbf41d695b5630b411a9a3fc5a18c9cd3dbc281
+DIST pysnmp-apps-0.3.4.tar.gz 24617 SHA256 c96c32d543c8f3866ee551962f0e1a0a8440e965bbcd8c1ed67c9a56cd17d18c SHA512 d384b7b77c5e5b684c00e77d0fc03498722dd1b9d61e876592489527d51f14140e360dc1f60a5a62d91d2fefef9bdae9c34ce9a205b4537c2278ac9d82a2c8d9 WHIRLPOOL edca9af1f891b2549edd3ee05c1441ff98f25c0aed00019c328adce0bc02a8fd844bdeab0f557936a0d555528eb379cda2a9f5f6dd1ec46cee3847522687dbb8
diff --git a/dev-python/pysnmp-apps/metadata.xml b/dev-python/pysnmp-apps/metadata.xml
new file mode 100644
index 00000000000..c1fc8a2e198
--- /dev/null
+++ b/dev-python/pysnmp-apps/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>netmon</herd>
+ <longdescription>
+This is a Python implementation of SNMP v.1/v.2c engine. Its general
+functionality is to assemble/disassemble SNMP messages from/into
+given SNMP Object IDs along with associated values. PySNMP also provides
+a few transport methods specific to TCP/IP networking.
+
+PySNMP is written entirely in Python and is self-sufficient in terms
+that it does not rely on any third party tool (it is not a wrapper!).
+</longdescription>
+ <longdescription lang="ja">
+これは SNMP v.1/v.2 エンジンのPython言語での実装です。関連値に沿ったSNMPオブジェ
+クトIDから/へSNMPメッセージをアセンブル/ディスアセンブルするのが一般的な機能です
+。PySNMPは幾つかのTCP/IPネットワーキングを特定するトランスポート・メソッドも提供
+します。
+
+PySNMPは全体をPython言語で記述され、どのサードパーティ製ツールも信用しない立場で
+自給自足します。(これはラッパー・ツールではありません。)
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pysnmp-apps</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysnmp-apps/pysnmp-apps-0.3.2-r1.ebuild b/dev-python/pysnmp-apps/pysnmp-apps-0.3.2-r1.ebuild
new file mode 100644
index 00000000000..8ff0e92bcf8
--- /dev/null
+++ b/dev-python/pysnmp-apps/pysnmp-apps-0.3.2-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="PySNMP applications"
+HOMEPAGE="http://pysnmp.sf.net/ http://pypi.python.org/pypi/pysnmp-apps"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/pysnmp-4.2.2[${PYTHON_USEDEP}]
+ dev-python/pysnmp-mibs[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pysnmp-apps/pysnmp-apps-0.3.4.ebuild b/dev-python/pysnmp-apps/pysnmp-apps-0.3.4.ebuild
new file mode 100644
index 00000000000..fcc1f25e91e
--- /dev/null
+++ b/dev-python/pysnmp-apps/pysnmp-apps-0.3.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="PySNMP applications"
+HOMEPAGE="http://pysnmp.sf.net/ http://pypi.python.org/pypi/pysnmp-apps"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/pysnmp-4.2.2[${PYTHON_USEDEP}]
+ dev-python/pysnmp-mibs[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pysnmp-mibs/Manifest b/dev-python/pysnmp-mibs/Manifest
new file mode 100644
index 00000000000..cda28183057
--- /dev/null
+++ b/dev-python/pysnmp-mibs/Manifest
@@ -0,0 +1,2 @@
+DIST pysnmp-mibs-0.1.3.tar.gz 1961708 SHA256 fa78171d63a91df29d18641516c02f5f9628fda35c2986a09a1a6fc9c9032753 SHA512 7879775f2b339f30db1bf0322c036deb7f97744630f6207efdafe6178d90e264cfa18398ed8628b07b53ed9d62ce8317a7ac8f109a4a57ee1a24d01ae32eaaf3 WHIRLPOOL a89b724d0fb36348616541f204a6a8b98207aab8c9ad557d6dff333002c39dbf369da996995f697f251d65428f10226551c4dcb5c2636cba55324b556f8c61b0
+DIST pysnmp-mibs-0.1.4.tar.gz 1982745 SHA256 a499ef45d942f42ab9e922c7da93efa084a7ec490ba6cad576b64a7d573ec043 SHA512 12e285d1adb3d2f6d1f300b3ad56a5f9dcb359b840e51c4599cb3ed406cd5b34b189ec6eba94fc72e57703a3c374995b60176940eba0478f6cc2f8eb96fffaca WHIRLPOOL 3d7079397aa1312abc30bc75aba9aab46d1286cd95dc7bf8d5c8470a8ea75857004ee597ceb33c0bac2e9fe21f61cdf65c3911491651ab9ec693a687907ca6a0
diff --git a/dev-python/pysnmp-mibs/metadata.xml b/dev-python/pysnmp-mibs/metadata.xml
new file mode 100644
index 00000000000..0ddc38fed96
--- /dev/null
+++ b/dev-python/pysnmp-mibs/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+This is a Python implementation of SNMP v.1/v.2c engine. Its general
+functionality is to assemble/disassemble SNMP messages from/into
+given SNMP Object IDs along with associated values. PySNMP also provides
+a few transport methods specific to TCP/IP networking.
+
+PySNMP is written entirely in Python and is self-sufficient in terms
+that it does not rely on any third party tool (it is not a wrapper!).
+</longdescription>
+ <longdescription lang="ja">
+これは SNMP v.1/v.2 エンジンのPython言語での実装です。関連値に沿ったSNMPオブジェ
+クトIDから/へSNMPメッセージをアセンブル/ディスアセンブルするのが一般的な機能です
+。PySNMPは幾つかのTCP/IPネットワーキングを特定するトランスポート・メソッドも提供
+します。
+
+PySNMPは全体をPython言語で記述され、どのサードパーティ製ツールも信用しない立場で
+自給自足します。(これはラッパー・ツールではありません。)
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pysnmp-mibs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysnmp-mibs/pysnmp-mibs-0.1.3-r1.ebuild b/dev-python/pysnmp-mibs/pysnmp-mibs-0.1.3-r1.ebuild
new file mode 100644
index 00000000000..d910ff9f663
--- /dev/null
+++ b/dev-python/pysnmp-mibs/pysnmp-mibs-0.1.3-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="SNMP framework in Python - MIBs"
+HOMEPAGE="http://pysnmp.sf.net/ http://pypi.python.org/pypi/pysnmp-mibs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/pysnmp-4.2.2[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pysnmp-mibs/pysnmp-mibs-0.1.4.ebuild b/dev-python/pysnmp-mibs/pysnmp-mibs-0.1.4.ebuild
new file mode 100644
index 00000000000..9e1c36d9c2e
--- /dev/null
+++ b/dev-python/pysnmp-mibs/pysnmp-mibs-0.1.4.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="SNMP framework in Python - MIBs"
+HOMEPAGE="http://pysnmp.sf.net/ http://pypi.python.org/pypi/pysnmp-mibs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/pysnmp-4.2.3[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pysnmp/Manifest b/dev-python/pysnmp/Manifest
new file mode 100644
index 00000000000..3c8395648dd
--- /dev/null
+++ b/dev-python/pysnmp/Manifest
@@ -0,0 +1,3 @@
+DIST pysnmp-3.4.4.tar.gz 91693 SHA256 e290758c17251435b5b8982cf96d3216da8f9f0ffd28beff1a5fd96efaa26bdf SHA512 7293722f11c44c4aebf25ca66be010150880b321ff1085a377f3233081a356084631b03a5c814b67feab48763622608837e9802b0256423b3bab3c8397427bb3 WHIRLPOOL 9db142ed1fd57144f5e4b20a8b3aace5a55b4f0cfef961d1b203e6f770fce8897c9458e26a22327e8a1bf5db8ca666b987feae8d1496077ebf86869de7ac4821
+DIST pysnmp-4.2.2.tar.gz 183998 SHA256 9402238abbaa24187544595d9ca37971b1e1ae0212d6307c60396290d32d6637 SHA512 6660212fdd92f0359ef8e45c71f4b6ee923a150e3dd051e1260386b9a9c11f000f489e0932b6919e21d85a280fbaa75125a418e126182c95c574539a44eb0d9b WHIRLPOOL 748a91b0251aa765576aa870a49e8c0e38729e00528a1e1a2fdc1d4baac2308b7fb42a0fbb05a8da993a64f29d49b0be0eb36fc91f79f7d3d9ab4911d0bc9318
+DIST pysnmp-4.2.5.tar.gz 225014 SHA256 c46e65d99a604f690b3d5800e2f6e26e1ed9a3c7f7e17e7b4b4d897150f7077f SHA512 bf93d7dd7ca95ff8b272c90d0c7d4e528075c83d8d6d630ab50e392227188bd0abdd05ad98521d9c4c0a1891a0b448fb9e4411f8a1d6bc7a9c2f7bb132c0dca0 WHIRLPOOL 74724ca754a7f51d41d231e7c04a7dc027d167a293b2daf5e67b5a735ff92e0a57a44abee3355980e2d3b181aa31e8d10a205a151e44282878a1a3a4b31ac4d3
diff --git a/dev-python/pysnmp/metadata.xml b/dev-python/pysnmp/metadata.xml
new file mode 100644
index 00000000000..b43eff4a7df
--- /dev/null
+++ b/dev-python/pysnmp/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>netmon</herd>
+ <longdescription>
+This is a Python implementation of SNMP v.1/v.2c engine. Its general
+functionality is to assemble/disassemble SNMP messages from/into
+given SNMP Object IDs along with associated values. PySNMP also provides
+a few transport methods specific to TCP/IP networking.
+
+PySNMP is written entirely in Python and is self-sufficient in terms
+that it does not rely on any third party tool (it is not a wrapper!).
+</longdescription>
+ <longdescription lang="ja">
+これは SNMP v.1/v.2 エンジンのPython言語での実装です。関連値に沿ったSNMPオブジェ
+クトIDから/へSNMPメッセージをアセンブル/ディスアセンブルするのが一般的な機能です
+。PySNMPは幾つかのTCP/IPネットワーキングを特定するトランスポート・メソッドも提供
+します。
+
+PySNMPは全体をPython言語で記述され、どのサードパーティ製ツールも信用しない立場で
+自給自足します。(これはラッパー・ツールではありません。)
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pysnmp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysnmp/pysnmp-3.4.4-r1.ebuild b/dev-python/pysnmp/pysnmp-3.4.4-r1.ebuild
new file mode 100644
index 00000000000..95dcf2d72bb
--- /dev/null
+++ b/dev-python/pysnmp/pysnmp-3.4.4-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="SNMP framework in Python. Not a wrapper"
+HOMEPAGE="http://pysnmp.sf.net/ http://pypi.python.org/pypi/pysnmp"
+SRC_URI="mirror://sourceforge/pysnmp/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+DOCS="CHANGES COMPATIBILITY README"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_install(){
+ distutils-r1_src_install
+
+ dohtml -r docs/
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+}
diff --git a/dev-python/pysnmp/pysnmp-4.2.2-r1.ebuild b/dev-python/pysnmp/pysnmp-4.2.2-r1.ebuild
new file mode 100644
index 00000000000..f6f950a9b75
--- /dev/null
+++ b/dev-python/pysnmp/pysnmp-4.2.2-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python SNMP library"
+HOMEPAGE="http://pysnmp.sf.net/ http://pypi.python.org/pypi/pysnmp"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ >=dev-python/pyasn1-0.1.2[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+"
+
+python_install_all() {
+ local HTML_DOCS=( docs/*.{html,gif} )
+ use examples && local EXAMPLES=( examples/. docs/mibs )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "You may also be interested in the following packages: "
+ elog "dev-python/pysnmp-apps - example programs using pysnmp"
+ elog "dev-python/pysnmp-mibs - IETF and other mibs"
+ elog "net-libs/libsmi - to dump MIBs in python format"
+}
diff --git a/dev-python/pysnmp/pysnmp-4.2.5.ebuild b/dev-python/pysnmp/pysnmp-4.2.5.ebuild
new file mode 100644
index 00000000000..d188f3de2ef
--- /dev/null
+++ b/dev-python/pysnmp/pysnmp-4.2.5.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python SNMP library"
+HOMEPAGE="http://pysnmp.sf.net/ http://pypi.python.org/pypi/pysnmp"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ia64 ppc ~sparc x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/pyasn1-0.1.2[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ local HTML_DOCS=( docs/*.{html,gif} )
+ use examples && local EXAMPLES=( examples/. docs/mibs )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ elog "You may also be interested in the following packages: "
+ elog "dev-python/pysnmp-apps - example programs using pysnmp"
+ elog "dev-python/pysnmp-mibs - IETF and other mibs"
+ elog "net-libs/libsmi - to dump MIBs in python format"
+}
diff --git a/dev-python/pysolr/Manifest b/dev-python/pysolr/Manifest
new file mode 100644
index 00000000000..53cf4f3e703
--- /dev/null
+++ b/dev-python/pysolr/Manifest
@@ -0,0 +1,2 @@
+DIST pysolr-3.3.0.tar.gz 14075 SHA256 4e1dd1461285d11f01bcd35286f46ccdf214a05e99a89c2d849b99b08a6a7fc1 SHA512 dab07ff62f30ad15e928366bd34b14ad0fd453a7d183d2b6a72b1c66b85bcdfac2ebf12dfdb78ce45dfb63c8440c5987c8118edd02ceb2c3e0829ab18171d389 WHIRLPOOL d0f533bf135c5f26de28ac46956e325b08d627aca35db4f17ba7192e09b925aa8110791c4291713898f51c967ae3ac247bdc2ff2e2374c0a45a8bed6d94a6876
+DIST pysolr-3.3.2.tar.gz 14193 SHA256 eea7b2705b4a24ea658136c55ae5c8c30bb661075600fc64d22e57e73951aa96 SHA512 7252efc42987bdf999d122404e63e6410d2efe7b1a49d378c8ad16c9171d8f26cd5ecd891a8a9daa205333b914ec4f95af105fe1bee25312aa05bb884811aebb WHIRLPOOL b4de2ea699f3acffe84cc6e46a979f01f0a5cf7c8731bad941f6f7f76e8ff41d03d436af7829a07ba05ebee850e5d202f6efd0e195f9e639196289da5d267227
diff --git a/dev-python/pysolr/metadata.xml b/dev-python/pysolr/metadata.xml
new file mode 100644
index 00000000000..394229488bb
--- /dev/null
+++ b/dev-python/pysolr/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pysolr</remote-id>
+ <remote-id type="github">toastdriven/pysolr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysolr/pysolr-3.3.0.ebuild b/dev-python/pysolr/pysolr-3.3.0.ebuild
new file mode 100644
index 00000000000..c380cd7b1ae
--- /dev/null
+++ b/dev-python/pysolr/pysolr-3.3.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Lightweight python wrapper for Apache Solr"
+HOMEPAGE="https://pypi.python.org/pypi/pysolr/ http://github.com/toastdriven/pysolr/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pysolr/pysolr-3.3.2.ebuild b/dev-python/pysolr/pysolr-3.3.2.ebuild
new file mode 100644
index 00000000000..89518dda9e4
--- /dev/null
+++ b/dev-python/pysolr/pysolr-3.3.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Lightweight python wrapper for Apache Solr"
+HOMEPAGE="https://pypi.python.org/pypi/pysolr/ http://github.com/toastdriven/pysolr/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/requests[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/pyspf/Manifest b/dev-python/pyspf/Manifest
new file mode 100644
index 00000000000..cb15e9a9b28
--- /dev/null
+++ b/dev-python/pyspf/Manifest
@@ -0,0 +1,2 @@
+DIST pyspf-2.0.10.tar.gz 62890 SHA256 0a3be1cc1915649ed8960a1b8add4110379c3c348e98e642a53f69d028709de8 SHA512 8a10a82fe5226ffee6376ea19f1fe075bb8676cd7eeadbfec1de95326fb8e6f08ad466e84129c016b62452f26f0552f1a463fc6a53d992c67ae1d8b1a18b3a46 WHIRLPOOL 5cceeda27c6a84f827c1505f7808e371f5eecc95737a98cd77d0b06dcccd58fe0d0971b9ecfadc7c23c69ee921eefe56cbb98974c47ea3b57d1b0bcfae5e050f
+DIST pyspf-2.0.11.tar.gz 63594 SHA256 693e80df3d61d69daaa2590e0f2bc8167d5fa36ce373d43987984cb00ae23928 SHA512 cababa82d1b6c206033a6583a67502d982a2c34baec0ccc08513a2bc9beb4cfc84dd5d615ac852fd25885c4abd43d9e8704f517c70fadb4a600d3b8a6254d755 WHIRLPOOL f1f97b8d0c6207a01d5d48aa3f63948749d3ceca590c146ec846638e263ba8155616e9d34af0bdfde3c1438869a3727a98154c054e0e33632c8cccd23d3f2e3d
diff --git a/dev-python/pyspf/metadata.xml b/dev-python/pyspf/metadata.xml
new file mode 100644
index 00000000000..1c6beeda5d8
--- /dev/null
+++ b/dev-python/pyspf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pyspf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyspf/pyspf-2.0.10.ebuild b/dev-python/pyspf/pyspf-2.0.10.ebuild
new file mode 100644
index 00000000000..f001157965d
--- /dev/null
+++ b/dev-python/pyspf/pyspf-2.0.10.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="ipv6?"
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of the Sender Policy Framework (SPF) protocol"
+HOMEPAGE="http://pypi.python.org/pypi/pyspf"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="ipv6 test"
+
+# >=python-3.3 comes with the built-in ipaddress module
+RDEPEND="dev-python/authres[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/ipaddr-2.1.10[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/pydns:2[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/pydns:3[${PYTHON_USEDEP}]' 'python3*')"
+
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pyyaml[${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="test? ( ipv6 )"
+
+python_test() {
+ pushd test &> /dev/null
+ "${PYTHON}" testspf.py || die
+ popd &> /dev/null
+}
diff --git a/dev-python/pyspf/pyspf-2.0.11.ebuild b/dev-python/pyspf/pyspf-2.0.11.ebuild
new file mode 100644
index 00000000000..b0a67f4fc84
--- /dev/null
+++ b/dev-python/pyspf/pyspf-2.0.11.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="ipv6?"
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of the Sender Policy Framework (SPF) protocol"
+HOMEPAGE="http://pypi.python.org/pypi/pyspf"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ipv6 test"
+
+# >=python-3.3 comes with the built-in ipaddress module
+RDEPEND="dev-python/authres[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/ipaddr-2.1.10[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/pydns:2[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/pydns:3[${PYTHON_USEDEP}]' 'python3*')"
+
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pyyaml[${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="test? ( ipv6 )"
+
+python_test() {
+ pushd test &> /dev/null
+ "${PYTHON}" testspf.py || die
+ popd &> /dev/null
+}
diff --git a/dev-python/pysrt/Manifest b/dev-python/pysrt/Manifest
new file mode 100644
index 00000000000..8b36024dad5
--- /dev/null
+++ b/dev-python/pysrt/Manifest
@@ -0,0 +1,3 @@
+DIST pysrt-0.5.1.tar.gz 95486 SHA256 6de1d10c37f40272657eeb59b0911e27111a98957807ce7becef0e82cb738d53 SHA512 87544a1802c86543bad946d298e32b9e1474a0c6330686c3cea1b7c1b5dc948c4a0c15cd96fd65b8bf8a5d53993f5c416c4bb96a0c7c218b80abb47872e85486 WHIRLPOOL 166161d449729a351354a3ac80758bc0c0eea4d91431d95534dd7a41e36b3c2287555cee7b4e1c435122258da15588ee93ba920f4f9b8cc518e36d8f205009ff
+DIST pysrt-1.0.0.tar.gz 11966 SHA256 88b4f93223c84aa86741387dcf5bcec86acf961eb66383c4ba86b1ffbb826a64 SHA512 92aff2d30c0ff900f7fd4599bdcb666cf212d54a61ebf0b6d4c95699c15d0259cadf216a851ec9daad102bd70b097c878b05a259dcf89cb81d8f1f79631363ad WHIRLPOOL 1c4bd8df2b7f53289aa0b1684b7abc8a440ed3a2ada9e1473064ad288f3eb9b9b7b0cd359574cb2371299c964351c2c0696d2a4666c0522c799926d509cfb812
+DIST pysrt-1.0.1.tar.gz 11741 SHA256 5300a1584c8d15a1c49ef8880fa1ef7a4274ce3f24dde83ad581d12d875f6784 SHA512 cd03d40ebef953d7ea67073a114f10a87eb142670ece727d09a31b498835d8485ac0c125f4281b6ababdd6f0757f9549ce38cb05eda79b23ff17950ab891d0eb WHIRLPOOL f7629430ac7ee9b2a69d5618346e2f97f01a68683e8b9ef8c13519a87a7043852c142ba050b338ddccc992c4ada01bbae41b9d2bab2696cdb0fdc50761d7dd81
diff --git a/dev-python/pysrt/metadata.xml b/dev-python/pysrt/metadata.xml
new file mode 100644
index 00000000000..d6dd2b40ebb
--- /dev/null
+++ b/dev-python/pysrt/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>nikoli@gmx.us</email>
+ </maintainer>
+ <herd>proxy-maintainers</herd>
+ <upstream>
+ <remote-id type="pypi">pysrt</remote-id>
+ <remote-id type="github">byroot/pysrt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysrt/pysrt-0.5.1.ebuild b/dev-python/pysrt/pysrt-0.5.1.ebuild
new file mode 100644
index 00000000000..ae787dcd08d
--- /dev/null
+++ b/dev-python/pysrt/pysrt-0.5.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library used to edit or create SubRip files"
+HOMEPAGE="https://github.com/byroot/pysrt https://pypi.python.org/pypi/pysrt"
+# does not have tests/static/ # SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="https://github.com/byroot/pysrt/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ dev-python/charade[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[coverage(+),${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ nosetests --with-coverage --cover-package=pysrt \
+ || die "Tests failed under ${EPYTHON}"
+}
+
+src_install() {
+ rm -rf "${S}/tests" || die
+
+ distutils-r1_src_install
+}
+
+python_install() {
+ rm -rf "${BUILD_DIR}/lib/tests" || die
+
+ distutils-r1_python_install
+}
diff --git a/dev-python/pysrt/pysrt-1.0.0.ebuild b/dev-python/pysrt/pysrt-1.0.0.ebuild
new file mode 100644
index 00000000000..aa5f07d4d3a
--- /dev/null
+++ b/dev-python/pysrt/pysrt-1.0.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library used to edit or create SubRip files"
+HOMEPAGE="https://github.com/byroot/pysrt https://pypi.python.org/pypi/pysrt"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ dev-python/charade[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[coverage(+),${PYTHON_USEDEP}] )
+"
+
+# https://github.com/byroot/pysrt/issues/42
+RESTRICT="test"
+
+src_test() {
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ nosetests --with-coverage --cover-package=pysrt \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/pysrt/pysrt-1.0.1.ebuild b/dev-python/pysrt/pysrt-1.0.1.ebuild
new file mode 100644
index 00000000000..2c3b4884d4d
--- /dev/null
+++ b/dev-python/pysrt/pysrt-1.0.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library used to edit or create SubRip files"
+HOMEPAGE="https://github.com/byroot/pysrt https://pypi.python.org/pypi/pysrt"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ dev-python/chardet[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[coverage(+),${PYTHON_USEDEP}] )
+"
+
+# https://github.com/byroot/pysrt/issues/42
+RESTRICT="test"
+
+src_test() {
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ nosetests --with-coverage --cover-package=pysrt \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/pysrt/pysrt-9999.ebuild b/dev-python/pysrt/pysrt-9999.ebuild
new file mode 100644
index 00000000000..9c1a0c109f0
--- /dev/null
+++ b/dev-python/pysrt/pysrt-9999.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 git-r3
+
+DESCRIPTION="Python library used to edit or create SubRip files"
+HOMEPAGE="https://github.com/byroot/pysrt https://pypi.python.org/pypi/pysrt"
+EGIT_REPO_URI="https://github.com/byroot/pysrt.git"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND="
+ dev-python/chardet[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[coverage(+),${PYTHON_USEDEP}] )
+"
+
+src_test() {
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ nosetests --with-coverage --cover-package=pysrt \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/pystache/Manifest b/dev-python/pystache/Manifest
new file mode 100644
index 00000000000..b481d0b27ca
--- /dev/null
+++ b/dev-python/pystache/Manifest
@@ -0,0 +1,2 @@
+DIST pystache-0.5.3.tar.gz 74827 SHA256 445c8663291abf11305693ecac7b9f3ff976555f5506ccc05a0353260a5a16dc SHA512 2b77f3e26cf37e663b7414e5ca95667f8332bb1005ae835775543c0d2c282f0c7bd8ded3f1e06da930247e39e5d206fb3f90d80e7c556b98cd69d4be74836843 WHIRLPOOL ae6ff420d95c36e61c7e95f12dcfb0ef18c7fc9f114b250a9cecda86fafa0acd66d959fbfe47802d0558fcce929c5be89f5d0c5f76a8bac08e26078a60766ef7
+DIST pystache-0.5.4.tar.gz 75131 SHA256 f7bbc265fb957b4d6c7c042b336563179444ab313fb93a719759111eabd3b85a SHA512 4ac325e1431f58f740218c9ec309821db82d89989ef4ca7fc3536dea0ef1c90e8e85ebaa7df27f33129ca02252b84bcbd7429a1ed999b496f62f174dd66502cb WHIRLPOOL ced73b06095323eb56f215aa68517ea32b8b4ba51b34ab71c861d09bdebbae91e6b05ed162a75592e40f5d18691a5df16e3dd1678789c4e6c4ccee2789201cbd
diff --git a/dev-python/pystache/metadata.xml b/dev-python/pystache/metadata.xml
new file mode 100644
index 00000000000..c03b50fc09d
--- /dev/null
+++ b/dev-python/pystache/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Pystache is a Python implementation of Mustache.
+ Mustache is a framework-agnostic, logic-free
+ templating system for Ruby, inspired by ctemplate and etc.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pystache</remote-id>
+ <remote-id type="github">defunkt/pystache</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pystache/pystache-0.5.3.ebuild b/dev-python/pystache/pystache-0.5.3.ebuild
new file mode 100644
index 00000000000..c27a4e96dd5
--- /dev/null
+++ b/dev-python/pystache/pystache-0.5.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+inherit distutils-r1
+
+DESCRIPTION="Mustache for Python"
+HOMEPAGE="http://github.com/defunkt/pystache"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ cd "${BUILD_DIR}"/lib
+ nosetests || die
+}
diff --git a/dev-python/pystache/pystache-0.5.4.ebuild b/dev-python/pystache/pystache-0.5.4.ebuild
new file mode 100644
index 00000000000..909ec70a243
--- /dev/null
+++ b/dev-python/pystache/pystache-0.5.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Mustache for Python"
+HOMEPAGE="http://github.com/defunkt/pystache"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib > /dev/null
+ nosetests || die
+ popd > /dev/null
+}
diff --git a/dev-python/pystatgrab/Manifest b/dev-python/pystatgrab/Manifest
new file mode 100644
index 00000000000..3e8881985f5
--- /dev/null
+++ b/dev-python/pystatgrab/Manifest
@@ -0,0 +1 @@
+DIST pystatgrab-0.6.tar.gz 78763 SHA256 eee0a65e1084628008222223bafdbb3ce66dffd4aa03febb9e918e61ef0d08fe SHA512 a902ca5340c2e36209297426ae071e37c07f6700c2850cdb6ff7dfd5c93174fdc9e5e4415bfcc2b9c8a78226abda8b12875bd172acbd6568aad248c666e206a4 WHIRLPOOL 6bfb12ff84d80c9beef3d3437f8d6da4bc3ca9bf84caab16d0e6febcdee2080a6e899e0449f2d26d4462ceaf5d655a6ddd9668d62c19c4c01d67557b5f6e6977
diff --git a/dev-python/pystatgrab/metadata.xml b/dev-python/pystatgrab/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/pystatgrab/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pystatgrab/pystatgrab-0.6.ebuild b/dev-python/pystatgrab/pystatgrab-0.6.ebuild
new file mode 100644
index 00000000000..2a1f2b9e53f
--- /dev/null
+++ b/dev-python/pystatgrab/pystatgrab-0.6.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION=" pystatgrab is a set of Python bindings for the libstatgrab library"
+HOMEPAGE="http://www.i-scream.org/pystatgrab/"
+SRC_URI="http://www.mirrorservice.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND=">=sys-libs/libstatgrab-0.91"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+python_prepare_all() {
+ append-flags -fno-strict-aliasing
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test.py || die
+}
diff --git a/dev-python/pystdf/Manifest b/dev-python/pystdf/Manifest
new file mode 100644
index 00000000000..97ac257eb27
--- /dev/null
+++ b/dev-python/pystdf/Manifest
@@ -0,0 +1 @@
+DIST pystdf-1.3.1.tar.gz 19974 SHA256 f736601a280affe2570f0c162f0c8d9d63a8833f9f094a38f22f5a6681a53051 SHA512 134265a728f3fafab5a536d12bc53c017ec265bbf83b8980fb1a87d59a29c3e872b24d9121a3bb52f5feddacca8d01bcee070f9ac6fd366029129a327847515a WHIRLPOOL 93082640344b36ba5253ec1928c7a0e778723ec9f1140a519fd99bd2224cc75a75cfd35ca4e93d297453cf356a29e30b85f321667dd0c6af7e523f79d4bafb3b
diff --git a/dev-python/pystdf/metadata.xml b/dev-python/pystdf/metadata.xml
new file mode 100644
index 00000000000..ff8ea3bb9d2
--- /dev/null
+++ b/dev-python/pystdf/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">pystdf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pystdf/pystdf-1.3.1-r1.ebuild b/dev-python/pystdf/pystdf-1.3.1-r1.ebuild
new file mode 100644
index 00000000000..1e5bebdd92a
--- /dev/null
+++ b/dev-python/pystdf/pystdf-1.3.1-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module that makes it easy to work with STDF"
+HOMEPAGE="http://code.google.com/p/pystdf/"
+SRC_URI="http://pystdf.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/pysvg/Manifest b/dev-python/pysvg/Manifest
new file mode 100644
index 00000000000..84f63b5ff6e
--- /dev/null
+++ b/dev-python/pysvg/Manifest
@@ -0,0 +1 @@
+DIST pysvg-0.2.1.zip 24216 SHA256 f447d39d47674176d277a21616597812c662d62834e136360e86d3f914270f36 SHA512 f8334d466ac130842c6fd8beecb4da7a5207fd50ed996a4b0d06d3b5e2f2324e9e87c35df7fd9a4d776e810b35532d4ef37d7075b512b7f2f2f2ea4e1b0db2df WHIRLPOOL 8116add689eb39865c43bc07e772382fe4f96b513ffa8cd6bcaab76c199371f467e3e6ba0935095857d685093b6be0e881ec6daade9e0dba0d033c120c3244a8
diff --git a/dev-python/pysvg/metadata.xml b/dev-python/pysvg/metadata.xml
new file mode 100644
index 00000000000..f1cda9f0b9e
--- /dev/null
+++ b/dev-python/pysvg/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">pysvg</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pysvg/pysvg-0.2.1-r1.ebuild b/dev-python/pysvg/pysvg-0.2.1-r1.ebuild
new file mode 100644
index 00000000000..7d9398c1e50
--- /dev/null
+++ b/dev-python/pysvg/pysvg-0.2.1-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python SVG document creation library"
+HOMEPAGE="http://codeboje.de/pysvg/
+ http://code.google.com/p/pysvg/"
+SRC_URI="http://pysvg.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
diff --git a/dev-python/pysvn/Manifest b/dev-python/pysvn/Manifest
new file mode 100644
index 00000000000..7af541054db
--- /dev/null
+++ b/dev-python/pysvn/Manifest
@@ -0,0 +1,2 @@
+DIST pysvn-1.7.10.tar.gz 352631 SHA256 cb8a7eca9fd5d077f4b086c79cc1115a2f38a37979eee836ff258b4da0aee517 SHA512 3404ce53f974ff91a7eecea29176f6b71f1dbb37a716880dfd3d2961d4c6e0c81f87aa46308994d4f7ed6a6cbca7f7451753e1de43ce95fef4443fc5f70ff3aa WHIRLPOOL 99ac425ad2e19355521c73947cf33b2c5bff0023af686d699fdfcd7abc8c5f965974c9762b0dbd3ae3cddfc833e35ac549af1de54ca2472d1354a8fa126e8c36
+DIST pysvn-1.7.9.tar.gz 352320 SHA256 8a58ea6405e5f5ffd0850fc5ed6bc29a93b3573da099293f49ef3241e5be1692 SHA512 966f9b57f63abc68d82a0f0f0d710d3109c2bd515eb0b0dacdca140b0db32154c802d27b4f79062da19f0d18ff6332b729c6f9c06e0a74742161a00b74bef7aa WHIRLPOOL 53f27a30ce97b723fe0d1a8540221e25e593fc00789eab7b6e2814f3ffe3ff8f485523ad7fe3bff7c1b5d101fb87d694a1c18111d2523895835ea72ea1ee6aab
diff --git a/dev-python/pysvn/files/pysvn-1.7.10-respect_flags.patch b/dev-python/pysvn/files/pysvn-1.7.10-respect_flags.patch
new file mode 100644
index 00000000000..18c7ea630dc
--- /dev/null
+++ b/dev-python/pysvn/files/pysvn-1.7.10-respect_flags.patch
@@ -0,0 +1,95 @@
+diff -ur pysvn-1.7.9.orig/Source/setup_configure.py pysvn-1.7.9/Source/setup_configure.py
+--- Source/setup_configure.py 2014-02-02 22:19:59.000000000 +0800
++++ Source/setup_configure.py 2014-08-15 08:15:44.676746371 +0800
+@@ -848,8 +848,8 @@
+ def __init__( self, setup ):
+ Compiler.__init__( self, setup )
+
+- self._addVar( 'CCC', 'g++' )
+- self._addVar( 'CC', 'gcc' )
++ self._addVar( 'CCC', '$(CXX)' )
++ self._addVar( 'CC', '$(CC)' )
+
+ def getPythonExtensionFileExt( self ):
+ return '.so'
+@@ -975,8 +975,8 @@
+ else:
+ arch_options = ''
+
+- self._addVar( 'CCC', 'g++ %s' % (arch_options,) )
+- self._addVar( 'CC', 'gcc %s' % (arch_options,) )
++ self._addVar( 'CCC', '$(CXX) %s' % (arch_options,) )
++ self._addVar( 'CC', '$(CC) %s' % (arch_options,) )
+
+ self._find_paths_pycxx_dir = [
+ '../Import/pycxx-%d.%d.%d' % pycxx_version,
+@@ -1031,11 +1031,11 @@
+
+ def setupUtilities( self ):
+ self._addVar( 'CCCFLAGS',
+- '-g '
++ '$(CXXFLAGS) '
+ '-Wall -fPIC -fexceptions -frtti '
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s '
+ '-D%(DEBUG)s' )
+- self._addVar( 'LDEXE', '%(CCC)s -g' )
++ self._addVar( 'LDEXE', '$(CXX) $(LDFLAGS)' )
+
+ def setupPySvn( self ):
+ self._pysvnModuleSetup()
+@@ -1047,7 +1047,7 @@
+ self._addVar( 'PYTHON_INC', distutils.sysconfig.get_python_inc() )
+
+ py_cflags_list = [
+- '-g',
++ '$(CXXFLAGS) ',
+ '-Wall -fPIC -fexceptions -frtti',
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s',
+ '-DPYCXX_PYTHON_2TO3 -I%(PYCXX)s -I%(PYCXX_SRC)s -I%(PYTHON_INC)s',
+@@ -1073,13 +1073,12 @@
+
+ self._addVar( 'CCCFLAGS', ' '.join( py_cflags_list ) )
+ self._addVar( 'LDLIBS', ' '.join( py_ld_libs ) )
+- self._addVar( 'LDSHARED', '%(CCC)s -bundle -g '
++ self._addVar( 'LDSHARED', '$(CXX) $(LDFLAGS) -bundle '
+ '-framework System '
+ '%(PYTHON_FRAMEWORK)s '
+ '-framework CoreFoundation '
+ '-framework Kerberos '
+- '-framework Security '
+- '%(LDLIBS)s' )
++ '-framework Security' )
+
+ class UnixCompilerGCC(CompilerGCC):
+ def __init__( self, setup ):
+@@ -1139,11 +1138,11 @@
+
+ def setupUtilities( self ):
+ self._addVar( 'CCCFLAGS',
+- '-g '
++ '$(CXXFLAGS) '
+ '-Wall -fPIC -fexceptions -frtti '
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s '
+ '-D%(DEBUG)s' )
+- self._addVar( 'LDEXE', '%(CCC)s -g' )
++ self._addVar( 'LDEXE', '$(CXX) $(LDFLAGS)' )
+
+ def setupPySvn( self ):
+ self._pysvnModuleSetup()
+@@ -1154,6 +1153,7 @@
+ self._addVar( 'PYTHON_ARCH_SPECIFIC_INC', distutils.sysconfig.get_python_inc( True ) )
+
+ py_cflags_list = [
++ '$(CXXFLAGS)',
+ '-Wall -fPIC -fexceptions -frtti',
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s',
+ '-DPYCXX_PYTHON_2TO3 -I%(PYCXX)s -I%(PYCXX_SRC)s -I%(PYTHON_INC)s',
+@@ -1171,7 +1171,7 @@
+
+ self._addVar( 'CCCFLAGS', ' '.join( py_cflags_list ) )
+ self._addVar( 'LDLIBS', ' '.join( self._getLdLibs() ) )
+- self._addVar( 'LDSHARED', '%(CCC)s -shared -g' )
++ self._addVar( 'LDSHARED', '$(CXX) $(LDFLAGS) -shared' )
+
+ #--------------------------------------------------------------------------------
+ class LinuxCompilerGCC(UnixCompilerGCC):
diff --git a/dev-python/pysvn/files/pysvn-1.7.9-respect_flags.patch b/dev-python/pysvn/files/pysvn-1.7.9-respect_flags.patch
new file mode 100644
index 00000000000..7f1c35e59cb
--- /dev/null
+++ b/dev-python/pysvn/files/pysvn-1.7.9-respect_flags.patch
@@ -0,0 +1,96 @@
+diff -ur pysvn-1.7.9.orig/Source/setup_configure.py pysvn-1.7.9/Source/setup_configure.py
+--- Source/setup_configure.py 2014-02-02 22:19:59.000000000 +0800
++++ Source/setup_configure.py 2014-08-15 08:15:44.676746371 +0800
+@@ -848,8 +848,8 @@
+ def __init__( self, setup ):
+ Compiler.__init__( self, setup )
+
+- self._addVar( 'CCC', 'g++' )
+- self._addVar( 'CC', 'gcc' )
++ self._addVar( 'CCC', '$(CXX)' )
++ self._addVar( 'CC', '$(CC)' )
+
+ def getPythonExtensionFileExt( self ):
+ return '.so'
+@@ -975,8 +975,8 @@
+ else:
+ arch_options = ''
+
+- self._addVar( 'CCC', 'g++ %s' % (arch_options,) )
+- self._addVar( 'CC', 'gcc %s' % (arch_options,) )
++ self._addVar( 'CCC', '$(CXX) %s' % (arch_options,) )
++ self._addVar( 'CC', '$(CC) %s' % (arch_options,) )
+
+ self._find_paths_pycxx_dir = [
+ '../Import/pycxx-%d.%d.%d' % pycxx_version,
+@@ -1031,12 +1031,12 @@
+
+ def setupUtilities( self ):
+ self._addVar( 'CCCFLAGS',
+- '-g '
++ '$(CXXFLAGS) '
+ '-no-long-double '
+ '-Wall -fPIC -fexceptions -frtti '
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s '
+ '-D%(DEBUG)s' )
+- self._addVar( 'LDEXE', '%(CCC)s -g' )
++ self._addVar( 'LDEXE', '$(CXX) $(LDFLAGS)' )
+
+ def setupPySvn( self ):
+ self._pysvnModuleSetup()
+@@ -1048,7 +1048,7 @@
+ self._addVar( 'PYTHON_INC', distutils.sysconfig.get_python_inc() )
+
+ py_cflags_list = [
+- '-g',
++ '$(CXXFLAGS) ',
+ '-no-long-double',
+ '-Wall -fPIC -fexceptions -frtti',
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s',
+@@ -1075,13 +1075,12 @@
+
+ self._addVar( 'CCCFLAGS', ' '.join( py_cflags_list ) )
+ self._addVar( 'LDLIBS', ' '.join( py_ld_libs ) )
+- self._addVar( 'LDSHARED', '%(CCC)s -bundle -g '
++ self._addVar( 'LDSHARED', '$(CXX) $(LDFLAGS) -bundle '
+ '-framework System '
+ '%(PYTHON_FRAMEWORK)s '
+ '-framework CoreFoundation '
+ '-framework Kerberos '
+- '-framework Security '
+- '%(LDLIBS)s' )
++ '-framework Security' )
+
+ class UnixCompilerGCC(CompilerGCC):
+ def __init__( self, setup ):
+@@ -1141,11 +1140,11 @@
+
+ def setupUtilities( self ):
+ self._addVar( 'CCCFLAGS',
+- '-g '
++ '$(CXXFLAGS) '
+ '-Wall -fPIC -fexceptions -frtti '
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s '
+ '-D%(DEBUG)s' )
+- self._addVar( 'LDEXE', '%(CCC)s -g' )
++ self._addVar( 'LDEXE', '$(CXX) $(LDFLAGS)' )
+
+ def setupPySvn( self ):
+ self._pysvnModuleSetup()
+@@ -1156,6 +1155,7 @@
+ self._addVar( 'PYTHON_ARCH_SPECIFIC_INC', distutils.sysconfig.get_python_inc( True ) )
+
+ py_cflags_list = [
++ '$(CXXFLAGS)',
+ '-Wall -fPIC -fexceptions -frtti',
+ '-I. -I%(APR_INC)s -I%(APU_INC)s -I%(SVN_INC)s',
+ '-DPYCXX_PYTHON_2TO3 -I%(PYCXX)s -I%(PYCXX_SRC)s -I%(PYTHON_INC)s',
+@@ -1173,7 +1173,7 @@
+
+ self._addVar( 'CCCFLAGS', ' '.join( py_cflags_list ) )
+ self._addVar( 'LDLIBS', ' '.join( self._getLdLibs() ) )
+- self._addVar( 'LDSHARED', '%(CCC)s -shared -g' )
++ self._addVar( 'LDSHARED', '$(CXX) $(LDFLAGS) -shared' )
+
+ #--------------------------------------------------------------------------------
+ class LinuxCompilerGCC(UnixCompilerGCC):
diff --git a/dev-python/pysvn/metadata.xml b/dev-python/pysvn/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/pysvn/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pysvn/pysvn-1.7.10.ebuild b/dev-python/pysvn/pysvn-1.7.10.ebuild
new file mode 100644
index 00000000000..1470a49a5b9
--- /dev/null
+++ b/dev-python/pysvn/pysvn-1.7.10.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Object-oriented python bindings for subversion"
+HOMEPAGE="http://pysvn.tigris.org/"
+SRC_URI="http://pysvn.barrys-emacs.org/source_kits/${P}.tar.gz"
+
+LICENSE="Apache-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
+IUSE="doc examples"
+
+DEPEND="
+ >=dev-python/pycxx-6.2.0[${PYTHON_USEDEP}]
+ <dev-vcs/subversion-1.9"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-respect_flags.patch )
+
+python_prepare() {
+ # Don't use internal copy of dev-python/pycxx.
+ rm -r Import || die
+
+ # http://pysvn.tigris.org/source/browse/pysvn?view=rev&revision=1469
+ sed -e "s/PYSVN_HAS_SVN_CLIENT_CTX_T__CONFLICT_FUNC_16/PYSVN_HAS_SVN_CLIENT_CTX_T__CONFLICT_FUNC_1_6/" -i Source/pysvn_svnenv.hpp
+}
+
+python_configure() {
+ cd Source || die
+ # all config options from 1.7.6 are all already set
+ esetup.py configure
+}
+
+python_compile() {
+ cd Source || die
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+}
+
+python_test() {
+ cd Tests || die
+ emake
+}
+
+python_install() {
+ cd Source || die
+ python_domodule pysvn
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Docs/ )
+ use examples && local EXAMPLES=( Examples/Client/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pysvn/pysvn-1.7.9.ebuild b/dev-python/pysvn/pysvn-1.7.9.ebuild
new file mode 100644
index 00000000000..6cc28691f2d
--- /dev/null
+++ b/dev-python/pysvn/pysvn-1.7.9.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils distutils-r1 toolchain-funcs
+
+DESCRIPTION="Object-oriented python bindings for subversion"
+HOMEPAGE="http://pysvn.tigris.org/"
+SRC_URI="http://pysvn.barrys-emacs.org/source_kits/${P}.tar.gz"
+
+LICENSE="Apache-1.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc x86 ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
+IUSE="doc examples"
+
+DEPEND="
+ >=dev-python/pycxx-6.2.0[${PYTHON_USEDEP}]
+ <dev-vcs/subversion-1.9"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-respect_flags.patch )
+
+python_prepare() {
+ # Don't use internal copy of dev-python/pycxx.
+ rm -r Import || die
+
+ # http://pysvn.tigris.org/source/browse/pysvn?view=rev&revision=1469
+ sed -e "s/PYSVN_HAS_SVN_CLIENT_CTX_T__CONFLICT_FUNC_16/PYSVN_HAS_SVN_CLIENT_CTX_T__CONFLICT_FUNC_1_6/" -i Source/pysvn_svnenv.hpp
+}
+
+python_configure() {
+ cd Source || die
+ # all config options from 1.7.6 are all already set
+ esetup.py configure
+}
+
+python_compile() {
+ cd Source || die
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+}
+
+python_test() {
+ cd Tests || die
+ emake
+}
+
+python_install() {
+ cd Source || die
+ python_domodule pysvn
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Docs/ )
+ use examples && local EXAMPLES=( Examples/Client/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pysyck/Manifest b/dev-python/pysyck/Manifest
new file mode 100644
index 00000000000..4ba52ae1977
--- /dev/null
+++ b/dev-python/pysyck/Manifest
@@ -0,0 +1 @@
+DIST PySyck-0.61.2.tar.gz 44949 SHA256 cc4ce350411c39d11a4654d8e97f5f92644c3dd9a1e2e2d862f3de47190ed473 SHA512 3ccb304b7a8efbf57209079b92fb34f0122cb1da93ee51fb45bdd5e8728dec383e0e0e9f329f1704ef5deeb6cdb93a5dc9cad69c877a886e9d0c3058ec1aa812 WHIRLPOOL d98d43ead9a6b196f567f78b8b0ccce8d5ac1df222531e478c8645a58dfeadfe5bef9c4b89660fe1a72802899dc14361ca6c04f6beeab747f4d838852eb74cb1
diff --git a/dev-python/pysyck/metadata.xml b/dev-python/pysyck/metadata.xml
new file mode 100644
index 00000000000..a55e575513b
--- /dev/null
+++ b/dev-python/pysyck/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ PySyck is aimed to update the current Python bindings for Syck. The new
+ bindings provide a wrapper for the Syck emitter and give access to YAML
+ representation graphs. PySyck may be used for various tasks, in
+ particular, as a replacement of the module pickle.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/pysyck/pysyck-0.61.2-r1.ebuild b/dev-python/pysyck/pysyck-0.61.2-r1.ebuild
new file mode 100644
index 00000000000..9cad1c0be05
--- /dev/null
+++ b/dev-python/pysyck/pysyck-0.61.2-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="PySyck-${PV}"
+
+DESCRIPTION="Python bindings for the Syck YAML parser and emitter"
+HOMEPAGE="http://pyyaml.org/wiki/PySyck"
+SRC_URI="http://pyyaml.org/download/pysyck/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-libs/syck-0.55"
+RDEPEND="${DEPEND}"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ "${PYTHON}" tests/test_syck.py
+ einfo "Some tests may have failed due to pending bugs in dev-libs/syck"
+}
diff --git a/dev-python/pytables/Manifest b/dev-python/pytables/Manifest
new file mode 100644
index 00000000000..418fb38acd5
--- /dev/null
+++ b/dev-python/pytables/Manifest
@@ -0,0 +1,2 @@
+DIST tables-3.1.1.tar.gz 6715786 SHA256 39b9036376f1185599771c19276f13b5b9119d98f9108f58595745ded3fe2da3 SHA512 b5b2052dd81c4748c5e26c1f61f9f92891f48335b0a553f7602ab11c9029dd673d27b91e24cac0da21a81df0c26dbcd9a438214fa58af1ae831c5f04dfa212a6 WHIRLPOOL 86fd6dc9e12503fdbd23013b75f33a41eadbbac0e6dd5ac9a91476d073195077fc6b3d5ad24b1dd4b4c18ae7ed8abc8ea1708262e52240f4c2c3b1153f8c9e91
+DIST tables-3.2.0.tar.gz 7039718 SHA256 60980e44676bfe463cdd2582ecdacc0b0763b259477015e866f8af72b4cdba44 SHA512 6ef7925bafbec04a3f581d13e9cc266b9b68b11dce27cf28c501dbbc538d74ddcfa15cbe97fa69fb793911cc6dbf3112f503b29c6e4e3e7631a6761cc1303253 WHIRLPOOL 412ada055b81fd7409b67288bc2bcf9ed527c9c42dbdd75c52ce7287f53ed12322b8b4423c9fab0aba98e0f12a8764a45316104567c193b469a84fdda3cbfc30
diff --git a/dev-python/pytables/files/pytables-3.1.1-blosc.patch b/dev-python/pytables/files/pytables-3.1.1-blosc.patch
new file mode 100644
index 00000000000..3a4ba18e5e7
--- /dev/null
+++ b/dev-python/pytables/files/pytables-3.1.1-blosc.patch
@@ -0,0 +1,16 @@
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 2c0c126..1448eb1 100755
+--- a/setup.py
++++ b/setup.py
+@@ -768,7 +768,7 @@ if 'BLOSC' not in optional_libs:
+ print("Setting compiler flag '-msse2'")
+ CFLAGS.append("-msse2")
+ else:
+- ADDLIBS += ['blosc']
++ ADDLIBS += ['blosc', 'blosc_filter']
+
+
+ utilsExtension_libs = LIBS + ADDLIBS
diff --git a/dev-python/pytables/files/pytables-3.1.1-cython-backport.patch b/dev-python/pytables/files/pytables-3.1.1-cython-backport.patch
new file mode 100644
index 00000000000..7db41d2e1a6
--- /dev/null
+++ b/dev-python/pytables/files/pytables-3.1.1-cython-backport.patch
@@ -0,0 +1,65 @@
+ setup.py | 13 +++++++------
+ tables/req_versions.py | 2 +-
+ 2 files changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 0f2f3f7..52cda49 100755
+--- a/setup.py
++++ b/setup.py
+@@ -25,6 +25,7 @@ from distutils.core import Extension
+ from distutils.dep_util import newer
+ from distutils.util import convert_path
+ from distutils.ccompiler import new_compiler
++from distutils.version import LooseVersion
+
+ cmdclass = {}
+ setuptools_kwargs = {}
+@@ -106,7 +107,7 @@ def check_import(pkgname, pkgver):
+ "You need %(pkgname)s %(pkgver)s or greater to run PyTables!"
+ % {'pkgname': pkgname, 'pkgver': pkgver})
+ else:
+- if mod.__version__ < pkgver:
++ if mod.__version__ < LooseVersion(pkgver):
+ exit_with_error(
+ "You need %(pkgname)s %(pkgver)s or greater to run PyTables!"
+ % {'pkgname': pkgname, 'pkgver': pkgver})
+@@ -122,21 +123,21 @@ if not has_setuptools:
+
+ # Check if Cython is installed or not (requisite)
+ try:
++ from Cython import __version__ as cython_version
+ from Cython.Distutils import build_ext
+- from Cython.Compiler.Main import Version
+ cmdclass['build_ext'] = build_ext
+ except ImportError:
+ exit_with_error(
+ "You need %(pkgname)s %(pkgver)s or greater to compile PyTables!"
+ % {'pkgname': 'Cython', 'pkgver': min_cython_version})
+
+-if Version.version < min_cython_version:
++if LooseVersion(cython_version) < min_cython_version:
+ exit_with_error(
+- "At least Cython %s is needed so as to generate extensions!"
+- % (min_cython_version))
++ "You need %(pkgname)s %(pkgver)s or greater to run PyTables!"
++ % {'pkgname': 'Cython', 'pkgver': min_cython_version})
+ else:
+ print("* Found %(pkgname)s %(pkgver)s package installed."
+- % {'pkgname': 'Cython', 'pkgver': Version.version})
++ % {'pkgname': 'Cython', 'pkgver': cython_version})
+
+ VERSION = open('VERSION').read().strip()
+
+diff --git a/tables/req_versions.py b/tables/req_versions.py
+index 2c9ca01..bd498c3 100644
+--- a/tables/req_versions.py
++++ b/tables/req_versions.py
+@@ -17,7 +17,7 @@
+ # Minimum recommended versions for mandatory packages
+ min_numpy_version = '1.4.1'
+ min_numexpr_version = '2.0.0'
+-min_cython_version = '0.13'
++min_cython_version = '0.14'
+
+ # The THG team has decided to fix an API inconsistency in the definition
+ # of the H5Z_class_t structure in version 1.8.3
diff --git a/dev-python/pytables/files/pytables-3.1.1-numpy19-backport.patch b/dev-python/pytables/files/pytables-3.1.1-numpy19-backport.patch
new file mode 100644
index 00000000000..c2f0c2280f0
--- /dev/null
+++ b/dev-python/pytables/files/pytables-3.1.1-numpy19-backport.patch
@@ -0,0 +1,51 @@
+From 854d5798ca9fd78c00e18710de2e93202f675f3e Mon Sep 17 00:00:00 2001
+From: Antonio Valentino <antonio.valentino@tiscali.it>
+Date: Sun, 6 Jul 2014 21:21:39 +0200
+Subject: [PATCH] Fix a compatibility problem with numpy 1.9 (close: #362)
+
+---
+ RELEASE_NOTES.txt | 6 ++++++
+ tables/table.py | 6 +++++-
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
+index f219eb3..1da20e2 100644
+--- a/RELEASE_NOTES.txt
++++ b/RELEASE_NOTES.txt
+@@ -19,6 +19,12 @@ Improvements
+ requiring strict access alignment.
+
+
++Bugs fixed
++----------
++
++- Fixed compatibitily problems with numpy 1.9 (closes :issue:`362`)
++
++
+ Changes from 3.1.0 to 3.1.1
+ ===========================
+
+diff --git a/tables/table.py b/tables/table.py
+index 235f599..ffe8fd6 100644
+--- a/tables/table.py
++++ b/tables/table.py
+@@ -3406,6 +3406,10 @@ def _getindex(self):
+ associated with this column (None if the column is not
+ indexed).""")
+
++ @lazyattr
++ def _itemtype(self):
++ return self.descr._v_dtypes[self.name]
++
+ def _getshape(self):
+ return (self.table.nrows,) + self.descr._v_dtypes[self.name].shape
+
+@@ -3529,7 +3533,7 @@ def __iter__(self):
+ table = self.table
+ itemsize = self.dtype.itemsize
+ nrowsinbuf = table._v_file.params['IO_BUFFER_SIZE'] // itemsize
+- buf = numpy.empty((nrowsinbuf, ), self.dtype)
++ buf = numpy.empty((nrowsinbuf, ), self._itemtype)
+ max_row = len(self)
+ for start_row in xrange(0, len(self), nrowsinbuf):
+ end_row = min(start_row + nrowsinbuf, max_row)
diff --git a/dev-python/pytables/files/pytables-3.2.0-blosc.patch b/dev-python/pytables/files/pytables-3.2.0-blosc.patch
new file mode 100644
index 00000000000..24c58c1a921
--- /dev/null
+++ b/dev-python/pytables/files/pytables-3.2.0-blosc.patch
@@ -0,0 +1,16 @@
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 2c0c126..1448eb1 100755
+--- a/setup.py
++++ b/setup.py
+@@ -768,7 +768,7 @@ if 'BLOSC' not in optional_libs:
+ CFLAGS.append(ff)
+ break
+ else:
+- ADDLIBS += ['blosc']
++ ADDLIBS += ['blosc', 'blosc_filter']
+
+
+ utilsExtension_libs = LIBS + ADDLIBS
diff --git a/dev-python/pytables/metadata.xml b/dev-python/pytables/metadata.xml
new file mode 100644
index 00000000000..9a0c6541eff
--- /dev/null
+++ b/dev-python/pytables/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ PyTables is a hierarchical database package designed to efficently
+ manage very large amounts of data. PyTables is built on top of the
+ HDF5 library and the NumPy package. It features an object-oriented
+ interface that, combined with natural naming and C-code generated
+ from Pyrex sources, makes it a fast, yet extremely easy to use tool
+ for interactively save and retrieve large amounts of data.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">tables</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytables/pytables-3.1.1-r2.ebuild b/dev-python/pytables/pytables-3.1.1-r2.ebuild
new file mode 100644
index 00000000000..e8fb46b57ea
--- /dev/null
+++ b/dev-python/pytables/pytables-3.1.1-r2.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+MY_PN=tables
+MY_P=${MY_PN}-${PV}
+
+inherit distutils-r1
+
+DESCRIPTION="Hierarchical datasets for Python"
+HOMEPAGE="http://www.pytables.org/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD"
+IUSE="doc examples"
+
+RDEPEND="
+ app-arch/bzip2:0=
+ dev-libs/c-blosc:0=[hdf5]
+ dev-libs/lzo:2=
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/numexpr[${PYTHON_USEDEP}]
+ sci-libs/hdf5:0="
+DEPEND="${RDEPEND}
+ >=dev-python/cython-0.14[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( ANNOUNCE.txt RELEASE_NOTES.txt THANKS )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-cython-backport.patch
+ "${FILESDIR}"/${P}-numpy19-backport.patch
+ "${FILESDIR}"/${P}-blosc.patch
+ )
+
+python_prepare_all() {
+ export HDF5_DIR="${EPREFIX}"/usr
+ sed \
+ -e "s:/usr:${EPREFIX}/usr:g" \
+ -e 's:"c-blosc/hdf5/blosc_filter.c"::g' \
+ -i setup.py || die
+ rm -r c-blosc/{blosc,hdf5,internal-complibs} || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${EPYTHON} tables/tests/test_all.py || die
+}
+
+python_install_all() {
+ if use doc; then
+ HTML_DOCS=( doc/html/. )
+ DOCS+=( doc/scripts )
+ fi
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ doins -r contrib
+ fi
+}
diff --git a/dev-python/pytables/pytables-3.2.0.ebuild b/dev-python/pytables/pytables-3.2.0.ebuild
new file mode 100644
index 00000000000..e1a0c772f5a
--- /dev/null
+++ b/dev-python/pytables/pytables-3.2.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+MY_PN=tables
+MY_P=${MY_PN}-${PV}
+
+inherit distutils-r1
+
+DESCRIPTION="Hierarchical datasets for Python"
+HOMEPAGE="http://www.pytables.org/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD"
+IUSE="doc examples"
+
+RDEPEND="
+ app-arch/bzip2:0=
+ dev-libs/c-blosc:0=[hdf5]
+ dev-libs/lzo:2=
+ >=dev-python/numpy-1.7.1[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-2.4[${PYTHON_USEDEP}]
+ >=sci-libs/hdf5-1.8.4:0="
+DEPEND="${RDEPEND}
+ >=dev-python/cython-0.14[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( ANNOUNCE.txt RELEASE_NOTES.txt THANKS )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-blosc.patch
+ )
+
+python_prepare_all() {
+ export HDF5_DIR="${EPREFIX}"/usr
+ sed \
+ -e "s:/usr:${EPREFIX}/usr:g" \
+ -e 's:"c-blosc/hdf5/blosc_filter.c"::g' \
+ -i setup.py || die
+ rm -r c-blosc/{blosc,hdf5,internal-complibs} || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib* || die
+ ${EPYTHON} tables/tests/test_all.py || die
+}
+
+python_install_all() {
+ if use doc; then
+ HTML_DOCS=( doc/html/. )
+ DOCS+=( doc/scripts )
+ fi
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ doins -r contrib
+ fi
+}
diff --git a/dev-python/pyte/Manifest b/dev-python/pyte/Manifest
new file mode 100644
index 00000000000..f30b34e3f33
--- /dev/null
+++ b/dev-python/pyte/Manifest
@@ -0,0 +1 @@
+DIST pyte-0.4.9.tar.gz 43730 SHA256 3b1d3b9df29e24f6ae3e9c277d830a01bbb610bf88e6bb4c8255a25c00472ba3 SHA512 551f464282db7bd4eadf53358619651a6bac59868939f30ee3f33255a275ec321d773c075e786f28861824ed005282ec7aac11a63ced173fe8a1aacbfa9e2e0c WHIRLPOOL 20eac26136cdc906d40ea0b409be99959443fd2b24143a29223f78f42986f52f4e4b99c0817a22ed0edcf2b59e1d5961fac0cf4cc32d1430f71f64b532b9e951
diff --git a/dev-python/pyte/metadata.xml b/dev-python/pyte/metadata.xml
new file mode 100644
index 00000000000..f5e5688341d
--- /dev/null
+++ b/dev-python/pyte/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyte</remote-id>
+ <remote-id type="github">selectel/pyte</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyte/pyte-0.4.9.ebuild b/dev-python/pyte/pyte-0.4.9.ebuild
new file mode 100644
index 00000000000..d4b48d4f7c3
--- /dev/null
+++ b/dev-python/pyte/pyte-0.4.9.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple VTXXX-compatible terminal emulator"
+HOMEPAGE="https://pypi.python.org/pypi/pyte/ https://github.com/selectel/pyte"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/pytest-capturelog/Manifest b/dev-python/pytest-capturelog/Manifest
new file mode 100644
index 00000000000..335fffce142
--- /dev/null
+++ b/dev-python/pytest-capturelog/Manifest
@@ -0,0 +1 @@
+DIST pytest-capturelog-0.7.tar.gz 4293 SHA256 b6e8d5189b39462109c2188e6b512d6cc7e66d62bb5be65389ed50e96d22000d SHA512 82567697be2c277f49633cee5c83733b3383b89e987729dc977f4ef3dd08a5ef55d507f5380ac08def7791157208459ee08d686cf532280c665e659938f03c22 WHIRLPOOL 3b292ac5197c13b72019e4051226a7417434fdba6854883273d13f6750e9420987f0af80ec8035d88b318290a190d397c3c7bc892b4930641977bad7ddbcc420
diff --git a/dev-python/pytest-capturelog/metadata.xml b/dev-python/pytest-capturelog/metadata.xml
new file mode 100644
index 00000000000..89404ef9283
--- /dev/null
+++ b/dev-python/pytest-capturelog/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pytest-capturelog</remote-id>
+ <remote-id type="bitbucket">memedough/pytest-capturelog</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytest-capturelog/pytest-capturelog-0.7.ebuild b/dev-python/pytest-capturelog/pytest-capturelog-0.7.ebuild
new file mode 100644
index 00000000000..ad13583fa9c
--- /dev/null
+++ b/dev-python/pytest-capturelog/pytest-capturelog-0.7.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="py.test plugin to capture log messages"
+HOMEPAGE="http://bitbucket.org/memedough/pytest-capturelog/overview"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="dev-python/py[${PYTHON_USEDEP}]"
diff --git a/dev-python/pytest-cov/Manifest b/dev-python/pytest-cov/Manifest
new file mode 100644
index 00000000000..ef90131da9c
--- /dev/null
+++ b/dev-python/pytest-cov/Manifest
@@ -0,0 +1,2 @@
+DIST pytest-cov-1.6.tar.gz 8257 SHA256 2e803c89f11e0344111670349f6ef401f831e85cbd287b0c5d61917da5aac454 SHA512 36c18e8e731613f2412e8e377f1911704d4af23a82fe66b822547850c3343204f682d3464c97f2cb4360f5090e7a58e5ac9679e83ae90adc0ccdb5b0e467430f WHIRLPOOL 41543b2e7f61d61d754bfef4c307fc135ab0d69b10d9e057f64bd3f4cacbc6e47316e478dbd797dd7aea0a8360bad5cc183214c742c749991fd5fe73b96503f2
+DIST pytest-cov-1.8.1.tar.gz 8649 SHA256 31e5198c06f290e1e813d30ddd063a0401d9e3a698129ca44267781673a71285 SHA512 dff6c6345bdc2d219800782d7acb3d301c8d67314f0f4af983daa0942a8c97768a2ce6c64f11529a3d8d876c218c62dbf08b7a63cc7345072e70bbc85ad4d112 WHIRLPOOL 90f024e0388323a5d1bd8ffd439c3c6cfb242ac2f539d391f4139a6ab2e251c6ff01831e9a261506d2c1552f1beeacc99db43d3b98a3663828083fec1ae722f8
diff --git a/dev-python/pytest-cov/metadata.xml b/dev-python/pytest-cov/metadata.xml
new file mode 100644
index 00000000000..6f652477d09
--- /dev/null
+++ b/dev-python/pytest-cov/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pytest-cov</remote-id>
+ <remote-id type="bitbucket">memedough/pytest-cov</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytest-cov/pytest-cov-1.6.ebuild b/dev-python/pytest-cov/pytest-cov-1.6.ebuild
new file mode 100644
index 00000000000..0417419756c
--- /dev/null
+++ b/dev-python/pytest-cov/pytest-cov-1.6.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_{3,4}} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="py.test plugin for coverage reporting"
+HOMEPAGE="http://bitbucket.org/memedough/pytest-cov/overview"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha ~amd64 arm hppa ~ppc ~ppc64 sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/cov-core[${PYTHON_USEDEP}]"
diff --git a/dev-python/pytest-cov/pytest-cov-1.8.1.ebuild b/dev-python/pytest-cov/pytest-cov-1.8.1.ebuild
new file mode 100644
index 00000000000..1026f4aa3aa
--- /dev/null
+++ b/dev-python/pytest-cov/pytest-cov-1.8.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_{3,4}} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="py.test plugin for coverage reporting"
+HOMEPAGE="http://bitbucket.org/memedough/pytest-cov/overview"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~hppa ia64 m68k ppc ppc64 s390 sh x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/py-1.4.22[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/cov-core-1.14.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.7.1[${PYTHON_USEDEP}]
+ <dev-python/coverage-4[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/virtualenv[${PYTHON_USEDEP}] )"
+
+python_test() {
+ # test_ file produces no output; For FI
+ "${PYTHON}" test_pytest_cov.py || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/pytest-localserver/Manifest b/dev-python/pytest-localserver/Manifest
new file mode 100644
index 00000000000..503a71aa324
--- /dev/null
+++ b/dev-python/pytest-localserver/Manifest
@@ -0,0 +1 @@
+DIST pytest-localserver-0.3.4.zip 28988 SHA256 9d2dc10aa2ba7e799f22e3fc133f7562c9be5be180b788f7f9dabea30a281814 SHA512 476c15d7020773b8d6a0c13ac1beea2274fc022a7089ea384f6721906f7a8339b7410ad7a5dd6817a2d6ce5dc92d3023632dff5191059bef327dbebd77a9bea7 WHIRLPOOL 158f15597057c226107430dfd6c53338086725b9642fa87cbb07bbe103d4fbd70ca9f82f4fcebd1a2d9371725f772cc3e5eead233976be2408ed7fde36c898d8
diff --git a/dev-python/pytest-localserver/metadata.xml b/dev-python/pytest-localserver/metadata.xml
new file mode 100644
index 00000000000..f431e796434
--- /dev/null
+++ b/dev-python/pytest-localserver/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pytest-localserver</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytest-localserver/pytest-localserver-0.3.4.ebuild b/dev-python/pytest-localserver/pytest-localserver-0.3.4.ebuild
new file mode 100644
index 00000000000..439dc65a32c
--- /dev/null
+++ b/dev-python/pytest-localserver/pytest-localserver-0.3.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Py.test plugin to test server connections locally"
+HOMEPAGE="https://pypi.python.org/pypi/pytest-localserver"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND=">=dev-python/werkzeug-0.10[${PYTHON_USEDEP}]"
+DEPEND="app-arch/unzip
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test || die
+}
diff --git a/dev-python/pytest-runner/Manifest b/dev-python/pytest-runner/Manifest
new file mode 100644
index 00000000000..0f833b62391
--- /dev/null
+++ b/dev-python/pytest-runner/Manifest
@@ -0,0 +1,2 @@
+DIST pytest-runner-2.1.2.zip 5413 SHA256 544b53ade15931ad9bc74fecd897c49b2f3a9a1affc94bcbd88508548f6abbfc SHA512 ac82dfbe102fb4079c061f5700e5100713b51e3d71cb736c7956d1f5404e3ad5a44bf72b5164fde961e189819ef532a60623068e6f05b42a73bd700d056a55b8 WHIRLPOOL f0d9f5b0bc5f3e3fa9556a2b6d5b5b3297f146f14668fc35aead8b69e7bf848487bbb74035e247e52dfa4f22139566e9203e4ef8e678b8ba4e3897a36a43ff0c
+DIST pytest-runner-2.5.1.zip 11419 SHA256 9c2d1d1ab4595d5cd5eef6950e3e11ca8f1719c7504d16a111ae1f5757660a7f SHA512 daf9054b3e83cbf8b8e551208804384b689af873eadd12dc5e1e52d70511b947c6c114a5dfe53e135e0428cea993d2930430f1e71b0a6effc08f9e40ff3a48e6 WHIRLPOOL 3cfd55be0da567b00f0347e40fc81f1243dbc4c837a49fa00dbb53f3c814121f0613fae5b6096d67c68c9f2ec3d5ab1d1f0a7a703dac63d9fe1a09b4d44e7f19
diff --git a/dev-python/pytest-runner/files/pytest-runner-2.1.2-hgtools.patch b/dev-python/pytest-runner/files/pytest-runner-2.1.2-hgtools.patch
new file mode 100644
index 00000000000..1d379e18f60
--- /dev/null
+++ b/dev-python/pytest-runner/files/pytest-runner-2.1.2-hgtools.patch
@@ -0,0 +1,17 @@
+ setup.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 2679782..271b3cf 100644
+--- a/setup.py
++++ b/setup.py
+@@ -26,9 +26,6 @@ setup_params = dict(
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3",
+ ],
+- setup_requires=[
+- 'hgtools',
+- ],
+ )
+ if __name__ == '__main__':
+ setuptools.setup(**setup_params)
diff --git a/dev-python/pytest-runner/files/pytest-runner.patch b/dev-python/pytest-runner/files/pytest-runner.patch
new file mode 100644
index 00000000000..9d932671b79
--- /dev/null
+++ b/dev-python/pytest-runner/files/pytest-runner.patch
@@ -0,0 +1,12 @@
+--- setup.py.orig 2012-12-28 01:01:07.865345417 -0500
++++ setup.py 2012-12-28 01:01:17.003360680 -0500
+@@ -14,9 +14,6 @@
+ 'distutils.commands':
+ ['ptr = ptr:PyTest'],
+ },
+- setup_requires=[
+- 'hgtools',
+- ],
+ )
+ if __name__ == '__main__':
+ setuptools.setup(**setup_params)
diff --git a/dev-python/pytest-runner/metadata.xml b/dev-python/pytest-runner/metadata.xml
new file mode 100644
index 00000000000..1126db89168
--- /dev/null
+++ b/dev-python/pytest-runner/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Adds support for tests during installation of setup.py files.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pytest-runner</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytest-runner/pytest-runner-2.1.2.ebuild b/dev-python/pytest-runner/pytest-runner-2.1.2.ebuild
new file mode 100644
index 00000000000..0aea7f6f793
--- /dev/null
+++ b/dev-python/pytest-runner/pytest-runner-2.1.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds support for tests durring installation of setup.py files"
+HOMEPAGE="http://pypi.python.org/pypi/pytest-runner"
+SRC_URI="mirror://pypi/p/${PN}/${P}.zip"
+
+LICENSE="MIT"
+KEYWORDS="amd64 ~arm x86"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/pytest[${PYTHON_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-hgtools.patch
+)
diff --git a/dev-python/pytest-runner/pytest-runner-2.5.1.ebuild b/dev-python/pytest-runner/pytest-runner-2.5.1.ebuild
new file mode 100644
index 00000000000..8aabe06920a
--- /dev/null
+++ b/dev-python/pytest-runner/pytest-runner-2.5.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds support for tests durring installation of setup.py files"
+HOMEPAGE="http://pypi.python.org/pypi/pytest-runner"
+SRC_URI="mirror://pypi/p/${PN}/${P}.zip"
+
+LICENSE="MIT"
+KEYWORDS="~amd64 ~arm ~x86"
+SLOT="0"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/pytest[${PYTHON_USEDEP}]"
diff --git a/dev-python/pytest-timeout/Manifest b/dev-python/pytest-timeout/Manifest
new file mode 100644
index 00000000000..7717c07d851
--- /dev/null
+++ b/dev-python/pytest-timeout/Manifest
@@ -0,0 +1 @@
+DIST pytest-timeout-0.4.tar.gz 10204 SHA256 d5900aaa94af5cb2d06ed806b1e636255e65a8a26eccecccd2b9a9d6123d50d5 SHA512 07031d64012e683064cd0bf2cef1d7209f02085e07dd8c7dfc704270d1e6ecf9679c639d529586c7d52d9425244a05ac362a7cd0092ca1f162a54539f58286e4 WHIRLPOOL b4befc271e378246d3e9fdd23a931fa400a981f79e90b0d44bbd533bea2be976fb4fcf73f6aa552d129e6945d82880bdf7bbf08c653c787913a8b782be54ab51
diff --git a/dev-python/pytest-timeout/metadata.xml b/dev-python/pytest-timeout/metadata.xml
new file mode 100644
index 00000000000..dc17bfcfbb9
--- /dev/null
+++ b/dev-python/pytest-timeout/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pytest-timeout</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytest-timeout/pytest-timeout-0.4.ebuild b/dev-python/pytest-timeout/pytest-timeout-0.4.ebuild
new file mode 100644
index 00000000000..0db83fe67a3
--- /dev/null
+++ b/dev-python/pytest-timeout/pytest-timeout-0.4.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="py.test plugin to abort hanging tests"
+HOMEPAGE="https://pypi.python.org/pypi/pytest-timeout"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/pytest"
+DEPEND="${RDEPEND}"
+
+python_test() {
+ ${EPYTHON} test_pytest_timeout.py || die
+}
diff --git a/dev-python/pytest/Manifest b/dev-python/pytest/Manifest
new file mode 100644
index 00000000000..7348a291faf
--- /dev/null
+++ b/dev-python/pytest/Manifest
@@ -0,0 +1,2 @@
+DIST pytest-2.7.1.tar.gz 531671 SHA256 530f23c79e1b13850e93f3a59720f1eca75bad01307dc4fd694a6a19619fb9cb SHA512 1bc23bf67a7400b48b718ef3a03591a3b2047d58b633c6eb16ca4732a9198b3fbbce5a2bfc93097322988b65498ee1a7278d7e035e10d91e6b58d1d3b2a61eba WHIRLPOOL d8eb985d967d8e4b48cab2df58b1e7415bb961087e9a53f4336dc830291b0aa5d4679a49429d6cd67510ec19470a397e07a7c505fd5555ee509c1ff508847b9c
+DIST pytest-2.7.2.tar.gz 532836 SHA256 b30457f735420d0000d10a44bbd478cf03f8bf20e25bd77248f9bab40f4fd6a4 SHA512 5474a4fe58437a4971fb21b1b37dad3c08e18e5d154931ff23e597f881100a3515bf0cf71d06b143465594ad2a91a96f84f4836d84c39691143c8d88ca7a4360 WHIRLPOOL 6ab7371f952109ac476774222883e1381fe5ee6a54d967f2d90765f6c59c90634a16c42e8e2e1661169db6a9cb1327242ff2281cf1caeabd86a4dacd24f4bb06
diff --git a/dev-python/pytest/metadata.xml b/dev-python/pytest/metadata.xml
new file mode 100644
index 00000000000..def7a965651
--- /dev/null
+++ b/dev-python/pytest/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">pytest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytest/pytest-2.7.1.ebuild b/dev-python/pytest/pytest-2.7.1.ebuild
new file mode 100644
index 00000000000..58c48ec00f1
--- /dev/null
+++ b/dev-python/pytest/pytest-2.7.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="py.test: simple powerful testing with Python"
+HOMEPAGE="http://pytest.org/ http://pypi.python.org/pypi/pytest"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+# When bumping, please check setup.py for the proper py version
+PY_VER="1.4.25"
+RDEPEND=">=dev-python/py-${PY_VER}[${PYTHON_USEDEP}]"
+
+#pexpect dep based on https://bitbucket.org/hpk42/pytest/issue/386/tests-fail-with-pexpect-30
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pexpect[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Disable versioning of py.test script to avoid collision with
+ # versioning performed by the eclass.
+ sed -e "s/return points/return {'py.test': target}/" -i setup.py || die "sed failed"
+ grep -qF "py>=${PY_VER}" setup.py || die "Incorrect dev-python/py dependency"
+
+ # Prevent un-needed d'loading
+ sed -e "s/'sphinx.ext.intersphinx', //" -i doc/en/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ mkdir doc/en/.build || die
+ emake -C doc/en html
+ fi
+}
+
+python_test() {
+ # test_nose.py not written to suit py3.2 in pypy3
+ if [[ "${EPYTHON}" == pypy3 ]]; then
+ "${PYTHON}" "${BUILD_DIR}"/lib/pytest.py \
+ --ignore=testing/test_nose.py \
+ || die "tests failed with ${EPYTHON}"
+ else
+ "${PYTHON}" "${BUILD_DIR}"/lib/pytest.py \
+ || die "tests failed with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && dohtml -r doc/en/_build/html/
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pytest/pytest-2.7.2.ebuild b/dev-python/pytest/pytest-2.7.2.ebuild
new file mode 100644
index 00000000000..df049d6152a
--- /dev/null
+++ b/dev-python/pytest/pytest-2.7.2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="py.test: simple powerful testing with Python"
+HOMEPAGE="http://pytest.org/ http://pypi.python.org/pypi/pytest"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+# When bumping, please check setup.py for the proper py version
+PY_VER="1.4.29"
+RDEPEND=">=dev-python/py-${PY_VER}[${PYTHON_USEDEP}]"
+
+#pexpect dep based on https://bitbucket.org/hpk42/pytest/issue/386/tests-fail-with-pexpect-30
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pexpect[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Disable versioning of py.test script to avoid collision with
+ # versioning performed by the eclass.
+ sed -e "s/return points/return {'py.test': target}/" -i setup.py || die "sed failed"
+ grep -qF "py>=${PY_VER}" setup.py || die "Incorrect dev-python/py dependency"
+
+ # Prevent un-needed d'loading
+ sed -e "s/'sphinx.ext.intersphinx', //" -i doc/en/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ mkdir doc/en/.build || die
+ emake -C doc/en html
+ fi
+}
+
+python_test() {
+ # test_nose.py not written to suit py3.2 in pypy3
+ if [[ "${EPYTHON}" == pypy3 ]]; then
+ "${PYTHON}" "${BUILD_DIR}"/lib/pytest.py \
+ --ignore=testing/test_nose.py \
+ || die "tests failed with ${EPYTHON}"
+ else
+ "${PYTHON}" "${BUILD_DIR}"/lib/pytest.py \
+ || die "tests failed with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && dohtml -r doc/en/_build/html/
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-augeas/Manifest b/dev-python/python-augeas/Manifest
new file mode 100644
index 00000000000..47d3353da96
--- /dev/null
+++ b/dev-python/python-augeas/Manifest
@@ -0,0 +1,3 @@
+DIST python-augeas-0.4.1.tar.gz 89652 SHA256 2d9e618fad03f68033b5ac94d0d57136df9ed75bf21c6e7877d3107866af89bf SHA512 ccd6ea10f927f06eba74dd48c21c7ca9a99c2910741ef925f078c09cd8a3421e63de3b74df2903a2cfd17f3defaa8df4624c9743d20e13bb5bfeacd7d50c5938 WHIRLPOOL bdb389691d85b259f0dba50205f99efa48ccec1676b48b2df2a7180079d1b3a91bd59f1020adbfe0088e7a5912fad6a0313d8c65cfb785fcbea87914d2676aec
+DIST python-augeas-0.4.2_pre131218.tar.xz 77636 SHA256 1ef4547c48e8ea155a1fd9908fc6b8e4d9bdfd9d51aa79488352de4ef3d40f50 SHA512 3677dfa4d7b6bbb22009ebee4ed4b46e50f7e5712354f5061476d5d21c86b956c4408f5ca005b674ad0e14e26c970830572aa077af6bb594dbff116991676e86 WHIRLPOOL 8bd303ce00811a2c686ccb840cb445eaa35e47888f5a53599e49d848020201adfe0a17b37137817d1cafd05d61b0783e6a65bb989bfb7195ec59d6c7eb438046
+DIST python-augeas-0.5.0.tar.gz 90667 SHA256 67d59d66cdba8d624e0389b87b2a83a176f21f16a87553b50f5703b23f29bac2 SHA512 d93d9e21c720084ee3c1841a2172dd1a4cfb41e668de0f557bd214efd65e685a1e5fc713a7d34e0fed727fe908bb1e8a09a1c10587bc27f3708cbcdee575cc51 WHIRLPOOL 155417cb5c03f581101b525d1b5e89ed9f28e9e145fa548061d36a9fe23791cb38422219695d2bd177aaa78989dfb363fd2023a2ec857456e18639bfdf93ee34
diff --git a/dev-python/python-augeas/metadata.xml b/dev-python/python-augeas/metadata.xml
new file mode 100644
index 00000000000..4c1aa3df62d
--- /dev/null
+++ b/dev-python/python-augeas/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+python-augeas is a set of Python bindings around augeas.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/python-augeas/python-augeas-0.4.1.ebuild b/dev-python/python-augeas/python-augeas-0.4.1.ebuild
new file mode 100644
index 00000000000..574bf2ff4ba
--- /dev/null
+++ b/dev-python/python-augeas/python-augeas-0.4.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for Augeas"
+HOMEPAGE="http://augeas.net/"
+SRC_URI="https://fedorahosted.org/released/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-admin/augeas"
+RDEPEND="${DEPEND}"
+
+DOCS="AUTHORS README.txt PKG-INFO"
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test_augeas.py || die
+}
diff --git a/dev-python/python-augeas/python-augeas-0.4.2_pre131218.ebuild b/dev-python/python-augeas/python-augeas-0.4.2_pre131218.ebuild
new file mode 100644
index 00000000000..60cb00cd685
--- /dev/null
+++ b/dev-python/python-augeas/python-augeas-0.4.2_pre131218.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for Augeas"
+HOMEPAGE="http://augeas.net/"
+#SRC_URI="https://fedorahosted.org/released/${PN}/${P}.tar.gz"
+SRC_URI="http://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-admin/augeas"
+RDEPEND="${DEPEND}"
+
+DOCS="AUTHORS README.txt"
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test_augeas.py || die
+}
diff --git a/dev-python/python-augeas/python-augeas-0.5.0.ebuild b/dev-python/python-augeas/python-augeas-0.5.0.ebuild
new file mode 100644
index 00000000000..a51b44d0d3d
--- /dev/null
+++ b/dev-python/python-augeas/python-augeas-0.5.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for Augeas"
+HOMEPAGE="http://augeas.net/"
+SRC_URI="https://fedorahosted.org/released/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-admin/augeas"
+RDEPEND="${DEPEND}"
+
+DOCS="AUTHORS README.txt"
+
+python_test() {
+ cd test || die
+ "${PYTHON}" test_augeas.py || die
+}
diff --git a/dev-python/python-barbicanclient/Manifest b/dev-python/python-barbicanclient/Manifest
new file mode 100644
index 00000000000..1ec8795456f
--- /dev/null
+++ b/dev-python/python-barbicanclient/Manifest
@@ -0,0 +1,2 @@
+DIST python-barbicanclient-3.0.1.tar.gz 38349 SHA256 d298ee0fc9e785d44148d4590ac0d9eef05d560e379e98f75a7cb35ed6bfc7c8 SHA512 354d46e85d15af1b91ed4ded55918329d843b7b9d8374bb82a9fde771ca5e71336ecd2bcde65217338f85ffcf8910abb686e0e8853cb8bd0e0022c5298f8392a WHIRLPOOL b68f792f89df005bd1c14cebb44d6b4ba4aa3d391d66daf9714c74bbadd103f40785e8c9ebb8585a64608b3ff7e47ed102284efeffb1f30d49c2a6d5c9886446
+DIST python-barbicanclient-3.0.3.tar.gz 62286 SHA256 959aca2ce3af2eed0f57e2fa9f0f9a484e40adc6b371e2c0fcc588aae9ca2b18 SHA512 0974af19781029b75e9432005fd1a50a3026531927f3718bf42b999e20877cc126a0bdd37c2de311978c132a0bfa7dbe186eb4f2cc022b8aaf2b7dc3e5c9c794 WHIRLPOOL 36635ebb89a22c898a70ce77f3dee4a88fa6969e432a63b3d554ae5d0d53cf7d5cbc29d6e63300a7acc543a9cfb0428c1ecd71c1c13994138b5c3d490f5a1d9f
diff --git a/dev-python/python-barbicanclient/metadata.xml b/dev-python/python-barbicanclient/metadata.xml
new file mode 100644
index 00000000000..fc78ab66d3e
--- /dev/null
+++ b/dev-python/python-barbicanclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Client library for Barbican API.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-barbicanclient</remote-id>
+ <remote-id type="github">openstack/barbican</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-barbicanclient/python-barbicanclient-3.0.1.ebuild b/dev-python/python-barbicanclient/python-barbicanclient-3.0.1.ebuild
new file mode 100644
index 00000000000..cdda7da27b5
--- /dev/null
+++ b/dev-python/python-barbicanclient/python-barbicanclient-3.0.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client library for Barbican API."
+HOMEPAGE="https://github.com/openstack/barbican"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.11.2[${PYTHON_USEDEP}]
+ >=dev-python/cliff-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.0.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/python-barbicanclient/python-barbicanclient-3.0.3.ebuild b/dev-python/python-barbicanclient/python-barbicanclient-3.0.3.ebuild
new file mode 100644
index 00000000000..063d5be387b
--- /dev/null
+++ b/dev-python/python-barbicanclient/python-barbicanclient-3.0.3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client library for Barbican API."
+HOMEPAGE="https://github.com/openstack/barbican"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cliff-1.10.0[${PYTHON_USEDEP}]
+ <dev-python/cliff-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/python-bibtex/Manifest b/dev-python/python-bibtex/Manifest
new file mode 100644
index 00000000000..66f08d15fb5
--- /dev/null
+++ b/dev-python/python-bibtex/Manifest
@@ -0,0 +1 @@
+DIST python-bibtex-1.2.7.tar.gz 60894 SHA256 37709a19b94858def4ede028e670b14153f98c62c6adc926af8102a3279eeaf0 SHA512 6739824fcdad91e2abb333d9e17a31bd222e6100630b8e4f65a9e718d36eb451600fdc7380cb63b89c4a33a7554b79dd1c52448d19c3359f21deee2134242e6b WHIRLPOOL 9c067e05473da5ec7ac5b6a0e5e5dc1363326aeff38946bef33858df8cc324079bf82bed59c5a7642310b749fcd9a8b62f341256373fcefe6919d54dae1fd034
diff --git a/dev-python/python-bibtex/files/python-bibtex-1.2.4-fix_tests.patch b/dev-python/python-bibtex/files/python-bibtex-1.2.4-fix_tests.patch
new file mode 100644
index 00000000000..f9816817b77
--- /dev/null
+++ b/dev-python/python-bibtex/files/python-bibtex-1.2.4-fix_tests.patch
@@ -0,0 +1,28 @@
+--- testsuite.py
++++ testsuite.py
+@@ -4,6 +4,7 @@
+
+ import sys, os
+
++ParserError = "ParserError"
+
+ def check_recode ():
+ try:
+@@ -65,7 +66,7 @@
+
+ valid = result.readline ().strip ()
+
+- if obtained != valid:
++ if eval(obtained) != eval(valid):
+ sys.stderr.write ('error: %s: line %d: unexpected result:\n' % (
+ filename, line))
+ sys.stderr.write ('error: %s: line %d: obtained %s\n' % (
+@@ -117,7 +118,7 @@
+
+ valid = result.readline ().strip ()
+
+- if obtained != valid:
++ if eval(obtained) != eval(valid):
+ sys.stderr.write ('error: %s: line %d: unexpected result:\n' % (
+ filename, line))
+ sys.stderr.write ('error: %s: line %d: obtained %s\n' % (
diff --git a/dev-python/python-bibtex/metadata.xml b/dev-python/python-bibtex/metadata.xml
new file mode 100644
index 00000000000..98ccc2e27a9
--- /dev/null
+++ b/dev-python/python-bibtex/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tex</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pybliographer</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-bibtex/python-bibtex-1.2.7-r1.ebuild b/dev-python/python-bibtex/python-bibtex-1.2.7-r1.ebuild
new file mode 100644
index 00000000000..a0d367fc820
--- /dev/null
+++ b/dev-python/python-bibtex/python-bibtex-1.2.7-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A Python extension to parse BibTeX files"
+HOMEPAGE="http://pybliographer.org/"
+SRC_URI="mirror://sourceforge/pybliographer/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND="
+ dev-libs/glib:2
+ >=app-text/recode-3.6-r1"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+python_prepare_all() {
+ # Disable tests during installation.
+ sed -e "/self.run_command ('check')/d" -i setup.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py check
+}
diff --git a/dev-python/python-biggles/Manifest b/dev-python/python-biggles/Manifest
new file mode 100644
index 00000000000..efe5ca10e20
--- /dev/null
+++ b/dev-python/python-biggles/Manifest
@@ -0,0 +1 @@
+DIST python2-biggles-1.6.6.tar.gz 104256 SHA256 afed6f8d80c7e348391e2ff6d277d234d74af084fa6c14926fefad0785132ce3 SHA512 cb2f3d2bebc30b04423b8e56dab9edf1db7bae7901791365f21d9aac1b1adf767baea0f550f4791d3c9fa48b39d02471447b5821437dfaaae2b82575e8e29597 WHIRLPOOL c5ddf734b01b16d46b4cea79bc2aa500007482bfc2cd324aa289dff74a93598b3f688e507d991a6495f38fdd9d7a7d374279e863d4e128d8a0fb3123f1cb484d
diff --git a/dev-python/python-biggles/metadata.xml b/dev-python/python-biggles/metadata.xml
new file mode 100644
index 00000000000..d971d394cc7
--- /dev/null
+++ b/dev-python/python-biggles/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">biggles</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-biggles/python-biggles-1.6.6-r1.ebuild b/dev-python/python-biggles/python-biggles-1.6.6-r1.ebuild
new file mode 100644
index 00000000000..79e5fe4de4d
--- /dev/null
+++ b/dev-python/python-biggles/python-biggles-1.6.6-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="python2-biggles"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Python module for creating publication-quality 2D scientific plots"
+HOMEPAGE="http://biggles.sourceforge.net/"
+SRC_URI="mirror://sourceforge/biggles/${MY_P}.tar.gz"
+
+DEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ media-libs/plotutils[X]
+ x11-libs/libSM
+ x11-libs/libXext"
+RDEPEND="${DEPEND}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/${PN}/
+ doins -r examples
+}
diff --git a/dev-python/python-bugzilla/Manifest b/dev-python/python-bugzilla/Manifest
new file mode 100644
index 00000000000..8a57ce408e2
--- /dev/null
+++ b/dev-python/python-bugzilla/Manifest
@@ -0,0 +1 @@
+DIST python-bugzilla-1.1.0.tar.gz 70841 SHA256 7e24b50269a994b77463575a75dd5c91a892ebc669289171bef4e0193f3d9549 SHA512 30192d6c1e76f3a79b5059916ad773704e6ce503d5d44fbc9e5d7b4ac18b062108d336d8d2e0d26e4cd21ba421fc607e4b3ca2bd5a1e362561708c05b8322d88 WHIRLPOOL 1a2209b89125807cfd6db9258c2a2ee87641921316d8f2dd9123c28f90ca78f52241e1ead9fda392cc026421fd84244418791150cdca6cf07d9f86a4a34b134e
diff --git a/dev-python/python-bugzilla/metadata.xml b/dev-python/python-bugzilla/metadata.xml
new file mode 100644
index 00000000000..84b639aeb86
--- /dev/null
+++ b/dev-python/python-bugzilla/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dilfridge@gentoo.org</email>
+ <name>Andreas K. Huettel</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-bugzilla/python-bugzilla-1.1.0.ebuild b/dev-python/python-bugzilla/python-bugzilla-1.1.0.ebuild
new file mode 100644
index 00000000000..e6de1476ddf
--- /dev/null
+++ b/dev-python/python-bugzilla/python-bugzilla-1.1.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A python module for interacting with Bugzilla over XMLRPC"
+HOMEPAGE="https://fedorahosted.org/python-bugzilla/"
+SRC_URI="https://fedorahosted.org/releases/p/y/${PN}/${P}.tar.gz"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+LICENSE="GPL-2"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ || ( dev-python/python-magic[${PYTHON_USEDEP}] sys-apps/file[python,${PYTHON_USEDEP}] )
+ dev-python/requests[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/python-caja/Manifest b/dev-python/python-caja/Manifest
new file mode 100644
index 00000000000..1a86ac59fdc
--- /dev/null
+++ b/dev-python/python-caja/Manifest
@@ -0,0 +1 @@
+DIST python-caja-1.8.0.tar.xz 250752 SHA256 bb872b99a4722af048990ffcd631e466dac808043bc02f7385e20845cf8b6d50 SHA512 571ee1016fb6d1d9a1e6f72da9b6959bad2734c24f5b2b2ab6af477eeb7c931c36758b09f8a0dea536f6d8ec5366747855d58764f36f2e6778c4a30b4fdebcd4 WHIRLPOOL 621a964a892d749d3619fea85f4f91ec7de2dc00ecc46b28202035b4f948133a669d4e10163a0c2fb0f35ea6261a6834ef3f7c0a9f3f6db9d3e2592a92a9906e
diff --git a/dev-python/python-caja/metadata.xml b/dev-python/python-caja/metadata.xml
new file mode 100644
index 00000000000..3845a45f0fa
--- /dev/null
+++ b/dev-python/python-caja/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mate</herd>
+ <upstream>
+ <remote-id type="github">mate-desktop/python-caja</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-caja/python-caja-1.8.0.ebuild b/dev-python/python-caja/python-caja-1.8.0.ebuild
new file mode 100644
index 00000000000..113c6520bc3
--- /dev/null
+++ b/dev-python/python-caja/python-caja-1.8.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit gnome2 python-single-r1 versionator
+
+MATE_BRANCH="$(get_version_component_range 1-2)"
+
+SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${P}.tar.xz"
+DESCRIPTION="Python bindings for the Caja file manager"
+HOMEPAGE="http://www.mate-desktop.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="doc"
+
+RDEPEND="dev-libs/glib:2
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ >=mate-base/caja-1.8:0[introspection]
+ x11-libs/gtk+:2
+ ${PYTHON_DEPS}"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig:*
+ doc? (
+ app-text/docbook-xml-dtd:4.1.2
+ )"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_install() {
+ gnome2_src_install
+
+ # Keep the directory for systemwide extensions.
+ keepdir /usr/share/python-caja/extensions/
+
+ # The HTML documentation generation is broken and commented out by upstream.
+ #
+ #if use doc ; then
+ # insinto /usr/share/gtk-doc/html/nautilus-python # for dev-util/devhelp
+ # doins -r docs/html/*
+ #fi
+}
diff --git a/dev-python/python-catcher/Manifest b/dev-python/python-catcher/Manifest
new file mode 100644
index 00000000000..398f639cdf6
--- /dev/null
+++ b/dev-python/python-catcher/Manifest
@@ -0,0 +1 @@
+DIST python-catcher-0.1.7.tar.gz 3699 SHA256 9f229680d9a456fd5ae6acf218c34055029b1a72c9b44f90f34711be1b245f78 SHA512 118bc19a7c7072cbf95d25810f95753aa894619c5a92b32f56e02a752e48c1b6ccbedab7d538184ec6dc30061826a7924fb0a4644e5afa26dedff9b9cd710353 WHIRLPOOL cf955b8361104986cd46a9fda89e2907ab909e560339a55383185dad331e7c0d1fc247d505564672f04edcb69e45553b54a7e90c8e6847fa7793e85bdc2fc22e
diff --git a/dev-python/python-catcher/metadata.xml b/dev-python/python-catcher/metadata.xml
new file mode 100644
index 00000000000..1f6ea156799
--- /dev/null
+++ b/dev-python/python-catcher/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-catcher</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-catcher/python-catcher-0.1.7.ebuild b/dev-python/python-catcher/python-catcher-0.1.7.ebuild
new file mode 100644
index 00000000000..9c94609dd53
--- /dev/null
+++ b/dev-python/python-catcher/python-catcher-0.1.7.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Beautiful stack traces for Python"
+HOMEPAGE="https://pypi.python.org/pypi/python-catcher/ http://ajenti.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+python_test() {
+ cd catcher || die
+ "${PYTHON}" -m unittest || die
+}
diff --git a/dev-python/python-cdb/Manifest b/dev-python/python-cdb/Manifest
new file mode 100644
index 00000000000..140fe6d52d3
--- /dev/null
+++ b/dev-python/python-cdb/Manifest
@@ -0,0 +1 @@
+DIST python-cdb-0.34.tar.gz 18865 SHA256 31c4c272d02c8f9ca66394c36be677fd9ea1813782cac73efacc5add2cbd677c SHA512 712e4c91d6285b8ce3436fb4c18f8cd0db76aad12eda96e860a1f0b72ecd480181e33315595dab4a2242149372166b0ca8a6c367ea808e394af4bd9f15d6733a WHIRLPOOL b4ee8802fb14abb27d78bbab0f28791c1960b65456c1d6ce317976ec322daab4ee85c09b3a50247ae2c9b9d413cf937f533d13a0542797c5eb05bbeee2dd7002
diff --git a/dev-python/python-cdb/metadata.xml b/dev-python/python-cdb/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/python-cdb/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-cdb/python-cdb-0.34-r1.ebuild b/dev-python/python-cdb/python-cdb-0.34-r1.ebuild
new file mode 100644
index 00000000000..d823701a2f4
--- /dev/null
+++ b/dev-python/python-cdb/python-cdb-0.34-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python extension module for cdb"
+SRC_URI="http://pilcrow.madison.wi.us/python-cdb/${P}.tar.gz"
+HOMEPAGE="http://pilcrow.madison.wi.us/#pycdb"
+
+SLOT="0"
+IUSE=""
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos"
+
+DEPEND="|| ( dev-db/cdb dev-db/tinycdb )"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ "${PYTHON}" setup.py build -b "build-${PYTHON_ABI}" install --home "${T}/test-${PYTHON_ABI}" || return 1
+ # This is not really intended as test but it is better than nothing.
+ "${PYTHON}" < Example
+}
diff --git a/dev-python/python-cdb/python-cdb-0.34.ebuild b/dev-python/python-cdb/python-cdb-0.34.ebuild
new file mode 100644
index 00000000000..72a65d4d1d4
--- /dev/null
+++ b/dev-python/python-cdb/python-cdb-0.34.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="A Python extension module for cdb"
+SRC_URI="http://pilcrow.madison.wi.us/python-cdb/${P}.tar.gz"
+HOMEPAGE="http://pilcrow.madison.wi.us/#pycdb"
+
+SLOT="0"
+IUSE=""
+LICENSE="GPL-2"
+KEYWORDS="amd64 arm ia64 ppc sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos"
+
+DEPEND="|| ( dev-db/cdb dev-db/tinycdb )"
+RDEPEND="${DEPEND}"
+
+DOCS="Example"
+
+src_test() {
+ testing() {
+ "$(PYTHON)" setup.py build -b "build-${PYTHON_ABI}" install --home "${T}/test-${PYTHON_ABI}" || return 1
+ # This is not really intended as test but it is better than nothing.
+ PYTHONPATH="${T}/test-${PYTHON_ABI}/lib/python" "$(PYTHON)" < Example
+ }
+ python_execute_function testing
+}
diff --git a/dev-python/python-ceilometerclient/Manifest b/dev-python/python-ceilometerclient/Manifest
new file mode 100644
index 00000000000..289eda672ce
--- /dev/null
+++ b/dev-python/python-ceilometerclient/Manifest
@@ -0,0 +1 @@
+DIST python-ceilometerclient-1.0.10.tar.gz 77469 SHA256 bbe29a6c85af3ec0bcbb7df1863bb3c3c620fa0423c67f25bd089e0ab7b33059 SHA512 23c9419ffb7610965fb0950e2c60d3f78724b23116a457c36b822c986988aee48c2b3d967f179b68769288f425c0a2ca17c25e90a41bdd487122f03ca42962dd WHIRLPOOL 798e0a0d516bf08f8be904fdba462dc2825de728a7bcca1a5e7056b035ddb992751cd9652968c5ec43dd0938b18cbbf387507b45c5f6b5c54181977609c8c54a
diff --git a/dev-python/python-ceilometerclient/metadata.xml b/dev-python/python-ceilometerclient/metadata.xml
new file mode 100644
index 00000000000..ca9fbcc0735
--- /dev/null
+++ b/dev-python/python-ceilometerclient/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client library for Ceilometer built on the Ceilometer API. It
+ provides a Python API (the ceilometerclient module) and a command-line tool (ceilometer).
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-ceilometerclient</remote-id>
+ <remote-id type="github">openstack/python-ceilometerclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-ceilometerclient/python-ceilometerclient-1.0.10.ebuild b/dev-python/python-ceilometerclient/python-ceilometerclient-1.0.10.ebuild
new file mode 100644
index 00000000000..cbb994b2d5c
--- /dev/null
+++ b/dev-python/python-ceilometerclient/python-ceilometerclient-1.0.10.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This is a client library for Ceilometer built on the Ceilometer API"
+HOMEPAGE="https://github.com/openstack/python-ceilometerclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run || die "tests failed under python2.7"
+ flake8 ceilometerclient/tests/ || die "run over tests folder by flake8 yielded error"
+}
diff --git a/dev-python/python-cinderclient/Manifest b/dev-python/python-cinderclient/Manifest
new file mode 100644
index 00000000000..5e50b3d3c2b
--- /dev/null
+++ b/dev-python/python-cinderclient/Manifest
@@ -0,0 +1,4 @@
+DIST python-cinderclient-1.0.9.tar.gz 136309 SHA256 e146e370c9a6e4aa44e8f0662fd33aec532f3965bae9fd564360c279bee03f97 SHA512 102e0ffec8aab143349f51e29b1265ea564b4cb8eeb9a546e353d6a9ee1ce08f8c258776ea96975be1d55f53ebaaa1b0fc01d7b7a12cde7baf5df8142368ed43 WHIRLPOOL 2360f4efcee62286cc1e45ca28013ded25b473d9a13e6e19ac53d811c2285e0031732077fae60d83b59a6abbe637406bd5a539348168f1884739381379b44bdf
+DIST python-cinderclient-1.1.1.tar.gz 156853 SHA256 107ff53c9bb9403c4e751b9a949cb84eff483d3378007415066d0c7727a6e37e SHA512 e437aa7759b9ed046aa35ad64f568b6070cd641b438e294c8cdb1fffba92296bc58e07825c5c02ef3a2933ac95fbd0717c42f246deca3ab6ce2620c4e2c44c1d WHIRLPOOL 90d4ab0d0a28f0b2456f9a703f93874870a944d696886eafd458f2d8fe8abd46475e425aa2d4f70f221f71d72e8e79757adc65da66254cf8457f3df50af48a9d
+DIST python-cinderclient-1.1.2.tar.gz 153104 SHA256 d364b627fbcbd049b2cedf125fb6aa06e2ca6213208f92b7ea393a7e1d7ecbe2 SHA512 84dc5bc89c547b05b9f305f6779ea2a47f2f964f985580d1555d0183da89c7e617433bacb11f2af23a1791a549de045e55d021bdb65f06def01062349a8cbc7e WHIRLPOOL 12082f19db2a583f9576396f20bf81f44b9769e9e9dd8e07ba54fb3cfce70a061f2e657949cf082abfd2a7f091387463e4e29065b9457d02051f27eb20cb173b
+DIST python-cinderclient-1.2.1.tar.gz 176466 SHA256 c9ccb89960b936ee261a9d6aac3895fde9b5c68e8c8e87d66ad3298a13bfd460 SHA512 ad27a7e32fc9da3c38abd5ca9f72f771229b00ab8a9f9f52c4001997afec194bda5270307ed2506747070f07e804952fef374fdb14ac75b646fb3dc6548aaea7 WHIRLPOOL afc4e2a6f5fa2917be408752f56215e5ee1c47dc6a952d5f6d294505a3c0843254136e5afd5370b9554bf6dfb97a47855e7b42122bdef0528d80a08f2feca6f6
diff --git a/dev-python/python-cinderclient/metadata.xml b/dev-python/python-cinderclient/metadata.xml
new file mode 100644
index 00000000000..ca4f314125d
--- /dev/null
+++ b/dev-python/python-cinderclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client for the OpenStack Cinder API.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-cinderclient</remote-id>
+ <remote-id type="launchpad">python-cinderclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-cinderclient/python-cinderclient-1.0.9.ebuild b/dev-python/python-cinderclient/python-cinderclient-1.0.9.ebuild
new file mode 100644
index 00000000000..6afee41c7dc
--- /dev/null
+++ b/dev-python/python-cinderclient/python-cinderclient-1.0.9.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Cinder API"
+HOMEPAGE="https://launchpad.net/python-cinderclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "tests failed under python2.7"
+ flake8 cinderclient/tests || die "run by flake8 over tests folder yielded error"
+}
diff --git a/dev-python/python-cinderclient/python-cinderclient-1.1.1.ebuild b/dev-python/python-cinderclient/python-cinderclient-1.1.1.ebuild
new file mode 100644
index 00000000000..21b22ecd4f3
--- /dev/null
+++ b/dev-python/python-cinderclient/python-cinderclient-1.1.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Cinder API"
+HOMEPAGE="https://launchpad.net/python-cinderclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "tests failed under python2.7"
+ flake8 cinderclient/tests || die "run by flake8 over tests folder yielded error"
+}
diff --git a/dev-python/python-cinderclient/python-cinderclient-1.1.2.ebuild b/dev-python/python-cinderclient/python-cinderclient-1.1.2.ebuild
new file mode 100644
index 00000000000..fa0e674a917
--- /dev/null
+++ b/dev-python/python-cinderclient/python-cinderclient-1.1.2.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# waiting on hacking 0.8 to have py34
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Cinder API"
+HOMEPAGE="https://launchpad.net/python-cinderclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ <dev-python/mock-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_prepare() {
+ sed -i '/^argparse/d' requirements.txt || die
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "tests failed under python2.7"
+ flake8 cinderclient/tests || die "run by flake8 over tests folder yielded error"
+}
diff --git a/dev-python/python-cinderclient/python-cinderclient-1.2.1-r1.ebuild b/dev-python/python-cinderclient/python-cinderclient-1.2.1-r1.ebuild
new file mode 100644
index 00000000000..b906e7fafdc
--- /dev/null
+++ b/dev-python/python-cinderclient/python-cinderclient-1.2.1-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Cinder API"
+HOMEPAGE="https://launchpad.net/python-cinderclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+src_prepare() {
+ sed -i '/^argparse/d' requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "tests failed under python2.7"
+ flake8 cinderclient/tests || die "run by flake8 over tests folder yielded error"
+}
diff --git a/dev-python/python-cinderclient/python-cinderclient-1.2.1.ebuild b/dev-python/python-cinderclient/python-cinderclient-1.2.1.ebuild
new file mode 100644
index 00000000000..5f29420ee3f
--- /dev/null
+++ b/dev-python/python-cinderclient/python-cinderclient-1.2.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Cinder API"
+HOMEPAGE="https://launchpad.net/python-cinderclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "tests failed under python2.7"
+ flake8 cinderclient/tests || die "run by flake8 over tests folder yielded error"
+}
diff --git a/dev-python/python-cluster/Manifest b/dev-python/python-cluster/Manifest
new file mode 100644
index 00000000000..85498a6d848
--- /dev/null
+++ b/dev-python/python-cluster/Manifest
@@ -0,0 +1 @@
+DIST cluster-1.2.2.tar.gz 44074 SHA256 7d62faf24fa08ef13f71013e9f624c528b12f0d1e6ab58c4bd26b5874d3163d8 SHA512 02600fa1fccdb07251bea83ab81908c22968fcfd4d6ccf382a75ab43117ee8ecc4385f7666f272d1e6cfc0634f7e15778635b50fde572773e564604c981e75cf WHIRLPOOL c5ee445f0b51b5af4e927049ef8cdd5decac3cef73f23d909b4b38b9b896100fffb531af7bf4ac059aae19ca07583d1b60e0e79cb874b718033474bd148d9731
diff --git a/dev-python/python-cluster/files/python-cluster-python3.patch b/dev-python/python-cluster/files/python-cluster-python3.patch
new file mode 100644
index 00000000000..3294d70aa71
--- /dev/null
+++ b/dev-python/python-cluster/files/python-cluster-python3.patch
@@ -0,0 +1,37 @@
+--- cluster.py.old 2010-10-01 14:41:55.000000000 +0200
++++ cluster.py 2010-10-01 14:42:32.000000000 +0200
+@@ -130,7 +130,7 @@
+ format = " %%%is |" % maxlen
+ format = "|" + format*colcount
+ for row in list:
+- print format % tuple(row)
++ print (format % tuple(row))
+
+ def magnitude(a):
+ "calculates the magnitude of a vecor"
+@@ -239,12 +239,12 @@
+ """
+ Pretty-prints this cluster. Useful for debuging
+ """
+- print depth*" " + "[level %s]" % self.__level
++ print (depth*" " + "[level %s]" % self.__level)
+ for item in self.__items:
+ if isinstance(item, Cluster):
+ item.display(depth+1)
+ else:
+- print depth*" "+"%s" % item
++ print (depth*" "+"%s" % item)
+
+ def topology(self):
+ """
+--- cluster.py.old 2010-10-01 14:48:54.000000000 +0200
++++ cluster.py 2010-10-01 14:49:21.000000000 +0200
+@@ -429,7 +429,7 @@
+ elif method == 'uclus':
+ self.linkage = self.uclusDistance
+ else:
+- raise ValueError, 'distance method must be one of single, complete, average of uclus'
++ raise ValueError('distance method must be one of single, complete, average of uclus')
+
+ def uclusDistance(self, x, y):
+ """
diff --git a/dev-python/python-cluster/metadata.xml b/dev-python/python-cluster/metadata.xml
new file mode 100644
index 00000000000..ae07547fa10
--- /dev/null
+++ b/dev-python/python-cluster/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">cluster</remote-id>
+ <remote-id type="github">exhuma/python-cluster</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-cluster/python-cluster-1.2.2.ebuild b/dev-python/python-cluster/python-cluster-1.2.2.ebuild
new file mode 100644
index 00000000000..92f38fc5faa
--- /dev/null
+++ b/dev-python/python-cluster/python-cluster-1.2.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Allows grouping a list of arbitrary objects into related groups (clusters)"
+HOMEPAGE="https://github.com/exhuma/python-cluster"
+SRC_URI="mirror://pypi/c/cluster/cluster-${PV}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+S="${WORKDIR}/cluster-${PV}"
+
+python_test() {
+ "${PYTHON}" test.py || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/python-daap/Manifest b/dev-python/python-daap/Manifest
new file mode 100644
index 00000000000..daae0524a53
--- /dev/null
+++ b/dev-python/python-daap/Manifest
@@ -0,0 +1 @@
+DIST PythonDaap-0.7.1.tar.gz 25944 SHA256 ea1d3a8141654781a0df31e6607c4722436fa33eb2e9934492770b3b61be8122 SHA512 9ed6f1964fa0b357ee2d1e81dbdf79303f12feb1e753e6e8c987f28212a2eb3041fe1f443a4e5e43c196808192f116d045b0ea6d42dc76020ff4f252d423eca8 WHIRLPOOL 1099606784e69534d9ab115d6a561ebc6f9bff940c17d3cb1bf907c8484cc74f52f2a9c8aafd06e92cdc742bdf04e0172ca5f18d275666d3ba808ba5e0dfe3f8
diff --git a/dev-python/python-daap/metadata.xml b/dev-python/python-daap/metadata.xml
new file mode 100644
index 00000000000..414a5eeccf5
--- /dev/null
+++ b/dev-python/python-daap/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sound</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-daap/python-daap-0.7.1-r1.ebuild b/dev-python/python-daap/python-daap-0.7.1-r1.ebuild
new file mode 100644
index 00000000000..3fc3cbb84be
--- /dev/null
+++ b/dev-python/python-daap/python-daap-0.7.1-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="PythonDaap-${PV}"
+
+DESCRIPTION="PyDaap is a DAAP client implemented in Python, based on PyTunes"
+HOMEPAGE="http://jerakeen.org/code/pythondaap"
+SRC_URI="http://jerakeen.org/files/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-daemon/Manifest b/dev-python/python-daemon/Manifest
new file mode 100644
index 00000000000..eea04a5f292
--- /dev/null
+++ b/dev-python/python-daemon/Manifest
@@ -0,0 +1,3 @@
+DIST python-daemon-1.6.tar.gz 41564 SHA256 1665fb16bfeae72f16aa2de40bc75661458bd42731a7d463a911a8d5eaf96c0b SHA512 ff9480844d8f57a09f27067aaa78669c167f66b2cc05f9b3baa660bc0aa21228d4894eeaeb3440611c1e0f0d5633b1c60eac60893da4a86d1db4b94d99961299 WHIRLPOOL 35ec95c43b7822fa9abca9bb21442fe2b9f83b7171d8e8a87cc12a7e07a2653fbd5b4aea7adbba799c76d8b4cf3c844b665ae3b90d5b77afe4b33c88dce85ba4
+DIST python-daemon-2.0.4.tar.gz 71162 SHA256 07ca8c037d85bd365ef42ad7786d9d5866e636ede8e21da695a9ab4dc8c4dc19 SHA512 923680198616ffd17bc86f92c6639afe97a13d9a8d6658fb09011ddc57dabd0bcc4009abdd0be837ab092153f22ce535796705091d0785ce6845bf1919a419b3 WHIRLPOOL 2bdf2eeef58288f7df7f96fdb667b69d8b55f702bce376acc9a260a0e07f7541970834e9db3eb5effc9d37cb3df99a05979b4ac22bfb9ff72efa869fabfeb69e
+DIST python-daemon-2.0.5.tar.gz 71298 SHA256 afde4fa433d94d007206ee31a0941d55b5eb232a5422b670aad628547b46bf68 SHA512 6bac000e304e0828dd54cfa3c7972c07dedb07684f98e5f7e05815df2cf2f25c43ddf4f121e8d282519bdfcca0990fab585f18e43b2578123bc7fbe5f5f8b73e WHIRLPOOL db39b107f7c96cf5fd1c62262ed33bb6e53e8f79836be6d12dabd6b05ec59457df4fea70cd7fa2c38548fc0b60b22d01a62895251b6f26bfa0d9fe5577cdf55f
diff --git a/dev-python/python-daemon/metadata.xml b/dev-python/python-daemon/metadata.xml
new file mode 100644
index 00000000000..836e1cdf2cc
--- /dev/null
+++ b/dev-python/python-daemon/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-daemon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-daemon/python-daemon-1.6-r1.ebuild b/dev-python/python-daemon/python-daemon-1.6-r1.ebuild
new file mode 100644
index 00000000000..3da32bc357c
--- /dev/null
+++ b/dev-python/python-daemon/python-daemon-1.6-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Library to implement a well-behaved Unix daemon process"
+HOMEPAGE="http://pypi.python.org/pypi/python-daemon"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/lockfile-0.9[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/minimock[${PYTHON_USEDEP}] )"
+
+DOCS=( ChangeLog )
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-daemon/python-daemon-2.0.4.ebuild b/dev-python/python-daemon/python-daemon-2.0.4.ebuild
new file mode 100644
index 00000000000..edb1f2bda2d
--- /dev/null
+++ b/dev-python/python-daemon/python-daemon-2.0.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Library to implement a well-behaved Unix daemon process"
+HOMEPAGE="http://pypi.python.org/pypi/python-daemon"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/lockfile-0.9[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/unittest2-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( ChangeLog )
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-daemon/python-daemon-2.0.5.ebuild b/dev-python/python-daemon/python-daemon-2.0.5.ebuild
new file mode 100644
index 00000000000..0efe356fc90
--- /dev/null
+++ b/dev-python/python-daemon/python-daemon-2.0.5.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Library to implement a well-behaved Unix daemon process"
+HOMEPAGE="http://pypi.python.org/pypi/python-daemon"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/lockfile-0.9[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/unittest2-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( ChangeLog )
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-dateutil/Manifest b/dev-python/python-dateutil/Manifest
new file mode 100644
index 00000000000..9f22b003664
--- /dev/null
+++ b/dev-python/python-dateutil/Manifest
@@ -0,0 +1,5 @@
+DIST python-dateutil-2.1.tar.gz 152334 SHA256 4c44ec3f9ff057b8c7b4c78beca5fdd8710600ea9a1df42f31bfcbae2f059dee SHA512 017e054f22886814763f6ab0c5c3ee411ce3d59a0d07e26fdf9afdab2500d689aa67a6c4c617b8960755272cb800ff449caedcb180c3a58631ac3cec3ffb89cc WHIRLPOOL f77bb35f5d8706e0909e5e522380f77a8f2bea1f183bdbd8bd41250fc3414730d327ccbab728bf67b5f80e34e672b8d9b346595d1b6c5694bff24a64b43a7454
+DIST python-dateutil-2.2.tar.gz 259085 SHA256 eec865307ebe7f329a6a9945c15453265a449cdaaf3710340828a1934d53e468 SHA512 cb278b8e18da3b991c6415ff59e9f3aa87cfb2e52048b3f74a9e3d183e0cc5bf71595123c644d0aea75084e653a885cbfa70c8ddd8b6a888bb13183624fcb46b WHIRLPOOL 545495d466cbea8f750b7e997699e2466131ce780ed73e18a880934a5255f759cee470b6f85a16a44f62bacaad14490e72a212c4cf6e53f0fe69b87492f9d055
+DIST python-dateutil-2.4.0.tar.gz 195214 SHA256 439df33ce47ef1478a4f4765f3390eab0ed3ec4ae10be32f2930000c8d19f417 SHA512 2e62e6fe430838bbb86e94dd3b224e5a0676f06a1c0fecf11ae6954f98916b4b91555bdeabfb6c458516fcee2462a731ebcb8c551fd7ceb808f9f55d5bdb7408 WHIRLPOOL ca717566d50b32e7a346569a391f8d47c86a5c5c833d8083c7fb26e5eaeb45c590e563b9cf8dd2b2d8ff5210b0b8c08d7bc58d87aac3ffb333546622db66c76f
+DIST python-dateutil-2.4.1.post1.tar.gz 207628 SHA256 aa9bdbd60c395db90204609f1fb5aeb3797870f65c09f04f243476d22f8f4615 SHA512 abd2b00f93cb4a4513da52c2f4c9ee632f1db1de583179b6e20a948463cf830ac339b7be6f7b6c5f9a823d0da955a48aee16c8d769eaaf33421090a5fbd199ce WHIRLPOOL 8c86898994dd65ee06034de47b47937203db66f9e8ae64c72c220464e9e590aa0e9e6a1e94b76fa9ed2571b11e5beb6f7d637937cc05f6c262e18c7130cf4a9b
+DIST python-dateutil-2.4.2.tar.gz 209120 SHA256 3e95445c1db500a344079a47b171c45ef18f57d188dffdb0e4165c71bea8eb3d SHA512 8e38721e6d132850f85e7808d2731285d2c12eae2a3e0cbebe05265d0837ad22d4d94b611e146028ea3d23a3e2611b281dd6224081a69dfe4b58cf3b378d7f0d WHIRLPOOL 88ddb75f52a95a6b7197b41364b80968bf2c21a3bda9c7b992726ef35ca934a66a5d8ccd773d7647f985541d87c66fa94af13600b0165707af9b73d1bff8887e
diff --git a/dev-python/python-dateutil/files/python-dateutil-1.4.1-locale.patch b/dev-python/python-dateutil/files/python-dateutil-1.4.1-locale.patch
new file mode 100644
index 00000000000..53d4bb86830
--- /dev/null
+++ b/dev-python/python-dateutil/files/python-dateutil-1.4.1-locale.patch
@@ -0,0 +1,13 @@
+Index: python-dateutil/example.py
+===================================================================
+--- python-dateutil.orig/example.py 2006-09-06 13:21:44.000000000 +0200
++++ python-dateutil/example.py 2006-09-06 13:21:56.000000000 +0200
+@@ -5,7 +5,7 @@
+ from datetime import *
+ import commands
+ import os
+-now = parse(commands.getoutput("date"))
++now = parse(commands.getoutput("LC_ALL=C date"))
+ today = now.date()
+ year = rrule(YEARLY,bymonth=8,bymonthday=13,byweekday=FR)[0].year
+ rdelta = relativedelta(easter(year), today)
diff --git a/dev-python/python-dateutil/files/python-dateutil-2.1-open-utf-8.patch b/dev-python/python-dateutil/files/python-dateutil-2.1-open-utf-8.patch
new file mode 100644
index 00000000000..f2728542878
--- /dev/null
+++ b/dev-python/python-dateutil/files/python-dateutil-2.1-open-utf-8.patch
@@ -0,0 +1,21 @@
+Fix UnicodeDecodeError in setup.py.
+
+https://bugs.gentoo.org/show_bug.cgi?id=410725
+--- setup.py
++++ setup.py
+@@ -1,5 +1,6 @@
+ #!/usr/bin/python
+ from os.path import isfile, join
++import codecs
+ import glob
+ import os
+ import re
+@@ -13,7 +14,7 @@
+
+ TOPDIR = os.path.dirname(__file__) or "."
+ VERSION = re.search('__version__ = "([^"]+)"',
+- open(TOPDIR + "/dateutil/__init__.py").read()).group(1)
++ codecs.open(TOPDIR + "/dateutil/__init__.py", encoding='utf-8').read()).group(1)
+
+
+ setup(name="python-dateutil",
diff --git a/dev-python/python-dateutil/files/python-dateutil-2.4.2-timelex.patch b/dev-python/python-dateutil/files/python-dateutil-2.4.2-timelex.patch
new file mode 100644
index 00000000000..bccec4a56dd
--- /dev/null
+++ b/dev-python/python-dateutil/files/python-dateutil-2.4.2-timelex.patch
@@ -0,0 +1,13 @@
+diff --git dateutil/parser.py~ dateutil/parser.py
+index 8b6c2d28b8..75453ef49e 100644
+--- dateutil/parser.py~
++++ dateutil/parser.py
+@@ -32,7 +32,7 @@ __all__ = ["parse", "parserinfo"]
+ class _timelex(object):
+
+ def __init__(self, instream):
+- if isinstance(instream, text_type):
++ if not hasattr(instream, 'read'):
+ instream = StringIO(instream)
+ self.instream = instream
+ self.wordchars = ('abcdfeghijklmnopqrstuvwxyz'
diff --git a/dev-python/python-dateutil/metadata.xml b/dev-python/python-dateutil/metadata.xml
new file mode 100644
index 00000000000..092f97aed11
--- /dev/null
+++ b/dev-python/python-dateutil/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The dateutil module provides powerful extensions to the standard
+ datetime module, available in Python 2.3+.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">python-dateutil</remote-id>
+ <remote-id type="github">dateutil/dateutil</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-dateutil/python-dateutil-2.1-r1.ebuild b/dev-python/python-dateutil/python-dateutil-2.1-r1.ebuild
new file mode 100644
index 00000000000..593430b8510
--- /dev/null
+++ b/dev-python/python-dateutil/python-dateutil-2.1-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the standard Python datetime module"
+HOMEPAGE="https://launchpad.net/dateutil http://pypi.python.org/pypi/python-dateutil"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="examples"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+ !<dev-python/python-dateutil-2.1"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+PATCHES=(
+ # Bug 410725.
+ "${FILESDIR}/${P}-open-utf-8.patch"
+)
+
+python_prepare_all() {
+ # Use zoneinfo in /usr/share/zoneinfo.
+ sed -i -e "s/zoneinfo.gettz/gettz/g" test.py || die
+
+ # Fix parsing of date in non-English locales.
+ sed -e 's/subprocess.getoutput("date")/subprocess.getoutput("LC_ALL=C date")/' \
+ -i example.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test.py || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ rm -f "${D}$(python_get_sitedir)/dateutil/zoneinfo"/*.tar.*
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ docinto examples
+ dodoc example.py sandbox/*.py
+ fi
+}
diff --git a/dev-python/python-dateutil/python-dateutil-2.2.ebuild b/dev-python/python-dateutil/python-dateutil-2.2.ebuild
new file mode 100644
index 00000000000..8ff29eeee1b
--- /dev/null
+++ b/dev-python/python-dateutil/python-dateutil-2.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the standard Python datetime module"
+HOMEPAGE="http://labix.org/python-dateutil https://pypi.python.org/pypi/python-dateutil"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="examples"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+ !<dev-python/python-dateutil-2.1"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Use zoneinfo in /usr/share/zoneinfo.
+ sed -i -e "s/zoneinfo.gettz/gettz/g" test.py || die
+
+ # Fix parsing of date in non-English locales.
+ sed -e 's/subprocess.getoutput("date")/subprocess.getoutput("LC_ALL=C date")/' \
+ -i example.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test.py || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ rm -f "${D}$(python_get_sitedir)/dateutil/zoneinfo"/*.tar.*
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ docinto examples
+ dodoc example.py sandbox/*.py
+ fi
+}
diff --git a/dev-python/python-dateutil/python-dateutil-2.4.0.ebuild b/dev-python/python-dateutil/python-dateutil-2.4.0.ebuild
new file mode 100644
index 00000000000..052efba97f6
--- /dev/null
+++ b/dev-python/python-dateutil/python-dateutil-2.4.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the standard Python datetime module"
+HOMEPAGE="https://dateutil.readthedocs.org/ https://pypi.python.org/pypi/python-dateutil https://github.com/dateutil/dateutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-python/six-1.5[${PYTHON_USEDEP}]
+ sys-libs/timezone-data"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # don't install zoneinfo tarball
+ sed -i '/package_data=/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-dateutil/python-dateutil-2.4.1-r1.ebuild b/dev-python/python-dateutil/python-dateutil-2.4.1-r1.ebuild
new file mode 100644
index 00000000000..87d2bc3d057
--- /dev/null
+++ b/dev-python/python-dateutil/python-dateutil-2.4.1-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the standard Python datetime module"
+HOMEPAGE="https://dateutil.readthedocs.org/ https://pypi.python.org/pypi/python-dateutil https://github.com/dateutil/dateutil/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.post1.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-python/six-1.5[${PYTHON_USEDEP}]
+ sys-libs/timezone-data"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # don't install zoneinfo tarball
+ sed -i '/package_data=/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-dateutil/python-dateutil-2.4.2-r1.ebuild b/dev-python/python-dateutil/python-dateutil-2.4.2-r1.ebuild
new file mode 100644
index 00000000000..8612e82ca9b
--- /dev/null
+++ b/dev-python/python-dateutil/python-dateutil-2.4.2-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the standard Python datetime module"
+HOMEPAGE="
+ https://dateutil.readthedocs.org/
+ https://pypi.python.org/pypi/python-dateutil
+ https://github.com/dateutil/dateutil/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/six-1.5[${PYTHON_USEDEP}]
+ sys-libs/timezone-data"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-timelex.patch
+)
+
+_python_prepare_all() {
+ # don't install zoneinfo tarball
+ sed -i '/package_data=/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-dateutil/python-dateutil-2.4.2.ebuild b/dev-python/python-dateutil/python-dateutil-2.4.2.ebuild
new file mode 100644
index 00000000000..6843393c7db
--- /dev/null
+++ b/dev-python/python-dateutil/python-dateutil-2.4.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the standard Python datetime module"
+HOMEPAGE="
+ https://dateutil.readthedocs.org/
+ https://pypi.python.org/pypi/python-dateutil
+ https://github.com/dateutil/dateutil/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/six-1.5[${PYTHON_USEDEP}]
+ sys-libs/timezone-data"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # don't install zoneinfo tarball
+ sed -i '/package_data=/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-debian/Manifest b/dev-python/python-debian/Manifest
new file mode 100644
index 00000000000..5f894bddda9
--- /dev/null
+++ b/dev-python/python-debian/Manifest
@@ -0,0 +1,2 @@
+DIST python-debian_0.1.26.tar.xz 289496 SHA256 601e2a096c1490669f35080544875857bdc54b5f43bf1a37f88fccbf3740b4f8 SHA512 c857bdeaf651626c1b9d1f0f114bae961d073771f0a38caaa06785323bd586cf15fd2bf662a7bdc3af148f387756260b9d81378fdd5044bfabf7388de79c4d5a WHIRLPOOL 1dcf9a855e75ed483551edffba72265878208f3e55adf9e206bb79ac8462c1186251231f97368b1673ff73a3c38f6c5cf37195480fe010b2b7199e829317a4d3
+DIST python-debian_0.1.27.tar.xz 289692 SHA256 3a21d07553d46c0cf7961b13483e62005d8793a3780e79d1191b357f50174eab SHA512 101f49ce2337266856f6cf8f6d33c42d9fa2a281194a7d6fb2328d6e5f46574a7b742b04c4250e2384c197c6e6886c0e9f7b504e8c2230afaa00777e1a0057ab WHIRLPOOL f8b867fbbd236d685acbdf880bf636efb59f033788365aeea52e898217735bd0117526c2f67cfe9205d3f31b5d8da68eb5e6e6ec1ad2920a2ed0d4d54616c38f
diff --git a/dev-python/python-debian/files/python-debian-0.1.26-CVE-2015-0840.patch b/dev-python/python-debian/files/python-debian-0.1.26-CVE-2015-0840.patch
new file mode 100644
index 00000000000..d4cde15e6d2
--- /dev/null
+++ b/dev-python/python-debian/files/python-debian-0.1.26-CVE-2015-0840.patch
@@ -0,0 +1,29 @@
+From 94a5864b6666ca5c2d0760702f386047189a248e Mon Sep 17 00:00:00 2001
+From: Guillem Jover <guillem@debian.org>
+Date: Thu, 9 Apr 2015 23:16:48 +0200
+Subject: [PATCH] deb822: Fix OpenPGP Armor Header Line parsing
+
+We should only accept [\r\t ] as trailing whitespace, although RFC4880
+does not clarify what whitespace really maps to, we should really match
+the GnuPG implementation anyway, as that is what we use to verify the
+signatures.
+---
+ lib/debian/deb822.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/debian/deb822.py b/lib/debian/deb822.py
+index 0c0748e..c1dcb17 100644
+--- a/lib/debian/deb822.py
++++ b/lib/debian/deb822.py
+@@ -638,7 +638,7 @@ class Deb822(Deb822Dict):
+ lines = []
+ gpg_post_lines = []
+ state = b'SAFE'
+- gpgre = re.compile(br'^-----(?P<action>BEGIN|END) PGP (?P<what>[^-]+)-----\s*$')
++ gpgre = re.compile(br'^-----(?P<action>BEGIN|END) PGP (?P<what>[^-]+)-----[\r\t ]*$')
+ # Include whitespace-only lines in blank lines to split paragraphs.
+ # (see #715558)
+ blank_line = re.compile(b'^\s*$')
+--
+2.2.1.209.g41e5f3a
+
diff --git a/dev-python/python-debian/files/python-debian-0.1.26-fix-tests.patch b/dev-python/python-debian/files/python-debian-0.1.26-fix-tests.patch
new file mode 100644
index 00000000000..189f83ac28e
--- /dev/null
+++ b/dev-python/python-debian/files/python-debian-0.1.26-fix-tests.patch
@@ -0,0 +1,24 @@
+ tests/test_deb822.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_deb822.py b/tests/test_deb822.py
+index 698366b..c989d3f 100755
+--- a/tests/test_deb822.py
++++ b/tests/test_deb822.py
+@@ -468,6 +468,7 @@ class TestDeb822(unittest.TestCase):
+ for d in deb822.Deb822.iter_paragraphs(text)])
+ self.assertEqual(2, count)
+
++ @unittest.skip("Seems to be broken")
+ def test_iter_paragraphs_with_extra_whitespace(self):
+ """ Paragraphs not elided when stray whitespace is between
+
+@@ -920,7 +921,7 @@ Description: python modules to work with Debian-related data formats
+ with open_utf8(filename) as fh:
+ paragraphs = list(deb822.Deb822.iter_paragraphs(
+ fh, use_apt_pkg=True))
+- self.assertEqual(paragraphs[0]['Build-Depends'], 'debhelper,')
++ self.assertEqual(paragraphs[0]['Build-Depends'], 'debhelper,\n python')
+ finally:
+ os.remove(filename)
+
diff --git a/dev-python/python-debian/metadata.xml b/dev-python/python-debian/metadata.xml
new file mode 100644
index 00000000000..bdd3b1dee57
--- /dev/null
+++ b/dev-python/python-debian/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-debian/python-debian-0.1.26.ebuild b/dev-python/python-debian/python-debian-0.1.26.ebuild
new file mode 100644
index 00000000000..31dd887e149
--- /dev/null
+++ b/dev-python/python-debian/python-debian-0.1.26.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python modules to work with Debian-related data formats"
+HOMEPAGE="http://packages.debian.org/sid/python-debian"
+SRC_URI="mirror://debian/pool/main/${P:0:1}/${PN}/${PN}_${PV}.tar.xz"
+
+LICENSE="GPL-2 GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND="
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( app-arch/dpkg )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-CVE-2015-0840.patch
+ "${FILESDIR}"/${P}-fix-tests.patch
+ )
+
+python_compile_all() {
+ "${PYTHON}" lib/debian/doc-debtags > README.debtags || die
+}
+
+python_test() {
+ pushd tests > /dev/null || die
+ "${PYTHON}" -m unittest discover || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-debian/python-debian-0.1.27.ebuild b/dev-python/python-debian/python-debian-0.1.27.ebuild
new file mode 100644
index 00000000000..b841b0aba42
--- /dev/null
+++ b/dev-python/python-debian/python-debian-0.1.27.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python modules to work with Debian-related data formats"
+HOMEPAGE="http://packages.debian.org/sid/python-debian"
+SRC_URI="mirror://debian/pool/main/${P:0:1}/${PN}/${PN}_${PV}.tar.xz"
+
+LICENSE="GPL-2 GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND="
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( app-arch/dpkg )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.1.26-fix-tests.patch
+ )
+
+python_compile_all() {
+ "${PYTHON}" lib/debian/doc-debtags > README.debtags || die
+}
+
+python_test() {
+ # Tests currently fail with >=app-crypt/gnupg-2.1
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782904
+ pushd tests > /dev/null || die
+ "${PYTHON}" -m unittest discover || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-digest/Manifest b/dev-python/python-digest/Manifest
new file mode 100644
index 00000000000..835c783335a
--- /dev/null
+++ b/dev-python/python-digest/Manifest
@@ -0,0 +1 @@
+DIST python-digest-1.7.tar.gz 10073 SHA256 cda2673e208e95c222b26b8b7717a356d2688e57391c7bd5a77154015e83be45 SHA512 15bfdb8e42275bc8f7fbc10f6f8bcd109852c57b77e98c8c2251784278fb135db494b0224341d34626ad49ea4db2a8803b2eb89d70d88b704819f4e6ca10f7e1 WHIRLPOOL 9b6002b2df7529db3f186a4c81803f8bacd8d14bb8a84b88ece71e36f21e38bd7af3c1394ac427ccd790bd68478c1acecc72b956d7993857eb604356c2b57f0c
diff --git a/dev-python/python-digest/files/python-digest-1.7-unittest.patch b/dev-python/python-digest/files/python-digest-1.7-unittest.patch
new file mode 100644
index 00000000000..e3abe0b77c8
--- /dev/null
+++ b/dev-python/python-digest/files/python-digest-1.7-unittest.patch
@@ -0,0 +1,9 @@
+--- python_digest/tests.py.orig 2012-04-25 11:48:30.212254059 +0200
++++ python_digest/tests.py 2012-04-25 11:48:58.371585156 +0200
+@@ -486,3 +486,6 @@
+ for c in s:
+ self.assertFalse(fs.character(c))
+ self.assertRaises(ValueError, fs.close)
++
++if __name__ == "__main__":
++ unittest.main()
diff --git a/dev-python/python-digest/metadata.xml b/dev-python/python-digest/metadata.xml
new file mode 100644
index 00000000000..e30ccd6a26b
--- /dev/null
+++ b/dev-python/python-digest/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-digest</remote-id>
+ <remote-id type="bitbucket">akoha/python-digest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-digest/python-digest-1.7-r1.ebuild b/dev-python/python-digest/python-digest-1.7-r1.ebuild
new file mode 100644
index 00000000000..73528d95a5f
--- /dev/null
+++ b/dev-python/python-digest/python-digest-1.7-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python library to aid in implementing HTTP Digest Authentication"
+HOMEPAGE="http://pypi.python.org/pypi/python-digest/ https://bitbucket.org/akoha/python-digest/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE="test"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools"
+
+PATCHES=( "${FILESDIR}"/${P}-unittest.patch )
+
+python_test() {
+ "${PYTHON}" ${PN/-/_}/tests.py || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/python-discid/Manifest b/dev-python/python-discid/Manifest
new file mode 100644
index 00000000000..1154ea7eafb
--- /dev/null
+++ b/dev-python/python-discid/Manifest
@@ -0,0 +1 @@
+DIST python-discid-1.1.0.tar.gz 30656 SHA256 823fbf06f1f08f4e3738c5a68349075a8a3b219c6009fe2af55a0277b9122031 SHA512 dd4a0a406d3f1b1d635bfb12c52689b72296f6965dd5d23c540d137ac60841bc39722e710db459281511df992e4db6614472cc741084bebe2ecf6b0b4dc5ab36 WHIRLPOOL 6c0ef1cdd3c4747defc6e717a09dffe79f231fb8b5fff40b1a5b2e4bcf53532e551bc07eaec96f2b075162a6f6c449a55e3efa9875b9e403937e0033d6da0349
diff --git a/dev-python/python-discid/metadata.xml b/dev-python/python-discid/metadata.xml
new file mode 100644
index 00000000000..0e71cb26d53
--- /dev/null
+++ b/dev-python/python-discid/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>yngwin@gentoo.org</email>
+ <name>Ben de Groot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">JonnyJD/python-discid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-discid/python-discid-1.1.0.ebuild b/dev-python/python-discid/python-discid-1.1.0.ebuild
new file mode 100644
index 00000000000..a40387ed983
--- /dev/null
+++ b/dev-python/python-discid/python-discid-1.1.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for libdiscid"
+HOMEPAGE="https://github.com/JonnyJD/python-discid"
+SRC_URI="https://github.com/JonnyJD/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=media-libs/libdiscid-0.2.2
+ ${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/python-distutils-extra/Manifest b/dev-python/python-distutils-extra/Manifest
new file mode 100644
index 00000000000..d1087b9deb7
--- /dev/null
+++ b/dev-python/python-distutils-extra/Manifest
@@ -0,0 +1,3 @@
+DIST python-distutils-extra-2.33.tar.gz 27053 SHA256 9ae0afefc19c7788a96869816ad9d39bbb187b2c61fae663d30ef2d4bbd51bd6 SHA512 aa1fac86482ee5bcb06591d334504dafb70a9f1b65076591e853cb7ef6854b913f7ae1415fbd6021df4cc9f9f232d1e114316e58db059334698af00b2da827a3 WHIRLPOOL ecc1b44479f359f5d30c3f66d3928268cc67e3ccf9877006db297abff739a830b79ee9b987a4393628e17925db7894b38ce63982827b1082ae0811cbf0f7c5f3
+DIST python-distutils-extra-2.37.tar.gz 27518 SHA256 5c9539badfdc7e0ebb463ee66b9c09d48a08ca121c84ec7316b1fbb799a72878 SHA512 757ef3f3b3c5baa4598ac2e76fc7257fa1d3f3153b842a6a55707150414199b699f460f3b0797674d6ba23824032362a470f500d2b90d9c95a0aae1a71a2d472 WHIRLPOOL f3eb3c3a9462fdf920e52dcbabe21ae8de7e60ad6b0377c5415c34e8ce91c7e3c1cfb80d75776049de081f2fb9a5d88e30161affd2cffa9cf0ef8aaa0602e48e
+DIST python-distutils-extra-2.38.tar.gz 27748 SHA256 3d100d5d3492f40b3e7a6a4500f71290bfa91e2c50dc31ba8e3ff9b5d82ca153 SHA512 bbaea59a8f251f354e6cf3799b67c12225095cc869c7c4e299e719ad7bcfd1292cff99f95ab25f04fb9c3e2432da5ea614ee76154781388c47960fdf2c90a3d7 WHIRLPOOL 10ca7754985aa634aaef7f7fc80777ca4a2b79ecc11e80c48bb2e6c1765cc9f38fbf9696957f974533f50f06db3d1bdb6527f1ed6dbe05619f3d0a17184b885d
diff --git a/dev-python/python-distutils-extra/metadata.xml b/dev-python/python-distutils-extra/metadata.xml
new file mode 100644
index 00000000000..baa3463d92c
--- /dev/null
+++ b/dev-python/python-distutils-extra/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="launchpad">python-distutils-extra</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-distutils-extra/python-distutils-extra-2.33-r1.ebuild b/dev-python/python-distutils-extra/python-distutils-extra-2.33-r1.ebuild
new file mode 100644
index 00000000000..750d4e2d4b7
--- /dev/null
+++ b/dev-python/python-distutils-extra/python-distutils-extra-2.33-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Gettext support, themed icons and scrollkeeper-based documentation in distutils"
+HOMEPAGE="https://launchpad.net/python-distutils-extra"
+SRC_URI="http://launchpad.net/python-distutils-extra/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=( doc/{FAQ,README,setup.cfg.example,setup.py.example} )
+
+python_prepare_all() {
+ # Disable broken tests.
+ sed \
+ -e "s/test_desktop/_&/" \
+ -e "s/test_po(/_&/" \
+ -e "s/test_policykit/_&/" \
+ -e "s/test_requires_provides/_&/" \
+ -i test/auto.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # 5 tests fail with disabled byte-compilation (they rely on exact
+ # output from python).
+ local -x PYTHONDONTWRITEBYTECODE
+
+ cp -R -l test "${BUILD_DIR}"/ || die
+
+ cd "${BUILD_DIR}" || die
+ "${PYTHON}" test/auto.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-distutils-extra/python-distutils-extra-2.33.ebuild b/dev-python/python-distutils-extra/python-distutils-extra-2.33.ebuild
new file mode 100644
index 00000000000..e85d8ed4cf0
--- /dev/null
+++ b/dev-python/python-distutils-extra/python-distutils-extra-2.33.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils
+
+DESCRIPTION="You can integrate gettext support, themed icons and scrollkeeper based documentation in distutils"
+HOMEPAGE="https://launchpad.net/python-distutils-extra"
+SRC_URI="http://launchpad.net/python-distutils-extra/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools"
+RDEPEND="${DEPEND}"
+
+DOCS="doc/FAQ doc/README doc/setup.cfg.example doc/setup.py.example"
+PYTHON_MODNAME="DistUtilsExtra"
+
+src_prepare() {
+ distutils_src_prepare
+
+ # Disable broken tests.
+ sed \
+ -e "s/test_desktop/_&/" \
+ -e "s/test_po(/_&/" \
+ -e "s/test_policykit/_&/" \
+ -e "s/test_requires_provides/_&/" \
+ -i test/auto.py
+}
+
+src_test() {
+ # 5 tests fail with disabled byte-compilation.
+ python_enable_pyc
+
+ testing() {
+ PYTHONPATH="build-${PYTHON_ABI}/lib" "$(PYTHON)" test/auto.py
+ }
+ python_execute_function testing
+
+ python_disable_pyc
+}
diff --git a/dev-python/python-distutils-extra/python-distutils-extra-2.37-r1.ebuild b/dev-python/python-distutils-extra/python-distutils-extra-2.37-r1.ebuild
new file mode 100644
index 00000000000..1a2b178d60c
--- /dev/null
+++ b/dev-python/python-distutils-extra/python-distutils-extra-2.37-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Gettext support, themed icons and scrollkeeper-based documentation in distutils"
+HOMEPAGE="https://launchpad.net/python-distutils-extra"
+SRC_URI="http://launchpad.net/python-distutils-extra/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=( doc/{FAQ,README,setup.cfg.example,setup.py.example} )
+
+python_prepare_all() {
+ # Disable broken tests.
+ sed \
+ -e "s/test_desktop/_&/" \
+ -e "s/test_po(/_&/" \
+ -e "s/test_policykit/_&/" \
+ -e "s/test_requires_provides/_&/" \
+ -i test/auto.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # 5 tests fail with disabled byte-compilation (they rely on exact
+ # output from python).
+ local -x PYTHONDONTWRITEBYTECODE
+
+ cp -R -l test "${BUILD_DIR}"/ || die
+
+ cd "${BUILD_DIR}" || die
+ "${PYTHON}" test/auto.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-distutils-extra/python-distutils-extra-2.38.ebuild b/dev-python/python-distutils-extra/python-distutils-extra-2.38.ebuild
new file mode 100644
index 00000000000..92df6af4de1
--- /dev/null
+++ b/dev-python/python-distutils-extra/python-distutils-extra-2.38.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Gettext support, themed icons and scrollkeeper-based documentation in distutils"
+HOMEPAGE="https://launchpad.net/python-distutils-extra"
+SRC_URI="http://launchpad.net/python-distutils-extra/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=( doc/{FAQ,README,setup.cfg.example,setup.py.example} )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Disable broken tests.
+ sed \
+ -e "s/test_desktop/_&/" -e "s/test_po(/_&/" \
+ -e "s/test_policykit/_&/" -e "s/test_requires_provides/_&/" \
+ -i test/auto.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # 5 tests fail with disabled byte-compilation (they rely on exact
+ # output from python).
+ local -x PYTHONDONTWRITEBYTECODE
+ "${PYTHON}" test/auto.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-djvulibre/Manifest b/dev-python/python-djvulibre/Manifest
new file mode 100644
index 00000000000..6ad85fb91c3
--- /dev/null
+++ b/dev-python/python-djvulibre/Manifest
@@ -0,0 +1 @@
+DIST python-djvulibre-0.3.9.tar.gz 120663 SHA256 ca11e57ae14161788ba8ee48063136f3fa12aad887035a36c3b2bfb8346c1a44 SHA512 30c3ce2dc09d3e2d1d1c3608a76a4b4ea61d05dbc69a41476cfc3b0e99d68626b4dfbbad0acfdb074fe6ee6c36ad4a4e382a545d3dafc2f12d149fa96e034595 WHIRLPOOL ca675f63bd5455e40e2cac820dcb172043a0dc317830cb8264a4d4ebb6d2f8afa1309e7ab37197d4f9067c8335c3e41e14bed10f33fb11c54cbb0ad0d8a94c03
diff --git a/dev-python/python-djvulibre/metadata.xml b/dev-python/python-djvulibre/metadata.xml
new file mode 100644
index 00000000000..57ee6ea686e
--- /dev/null
+++ b/dev-python/python-djvulibre/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-djvulibre</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-djvulibre/python-djvulibre-0.3.9.ebuild b/dev-python/python-djvulibre/python-djvulibre-0.3.9.ebuild
new file mode 100644
index 00000000000..1f9c9486b31
--- /dev/null
+++ b/dev-python/python-djvulibre/python-djvulibre-0.3.9.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Set of Python bindings for the DjVuLibre library"
+HOMEPAGE="http://jwilk.net/software/python-djvulibre"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-text/djvu"
+DEPEND="${RDEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/python-docs/Manifest b/dev-python/python-docs/Manifest
new file mode 100644
index 00000000000..1dc7abeb815
--- /dev/null
+++ b/dev-python/python-docs/Manifest
@@ -0,0 +1,12 @@
+DIST python-2.7.3-docs-html.tar.bz2 4368711 SHA256 b294008007956d600ec78335d7afedda19bf855b008a3586343cd15f8115e9c1 SHA512 d27d48543347761a01ddac5bc63fb509f220913b0a55604a6bc1ff72db2d2bcf6f6470cd7c8de56b66a4c19139356b41a7e622c9b39af99ff1e7ded5b3622ffe WHIRLPOOL 14e4181f682842a6bc9d86101daf9c46b0d4a1a74c87ee21d24d0529d8d14e4f717dfa725df27dbeecc503eec410849ed3e9bc299e1ef8710bede5e041925a56
+DIST python-2.7.6-docs-html.tar.bz2 4490031 SHA256 73c21e3c5f3167467b40641ec9b9909ce1bba752b095899767d0332c241bb6e5 SHA512 78280f3c14dcdb9ab3ec78aa0c7220d6cd32c1728e13b3fe6f3252ef357be42ef4830278ed98fef63b81154b9548cb601eeb8eaef86804116482360a08f6dcd0 WHIRLPOOL cd345e470c435e4cf2df15433efc34349096b168430776a387710a7ddfdfa82a68ad8d798990eadcaf04ba33aae43e739ea338c3453918fee9af55d81e2d8347
+DIST python-2.7.7-docs-html.tar.bz2 4503045 SHA256 43b4f89df4e67f04100eec344c7b1475b34c2783a3cd22ac98d99a39ad6bca0d SHA512 de9859ff53a03133d7435becb6b19f814ebb3aff1b9c7a05777b9c3fed0fce792cf285c320753da9bb28b95db3615470b8829c47c54659c174fb4daa97af33ab WHIRLPOOL da15358eed5a8837c8bd46b0267adc519a651378940a7d7de33ceed0d22354fea760d9afdbf66c4c2fe87ebd24781ffade663af9a05caff8dca02dc18913ea98
+DIST python-2.7.8-docs-html.tar.bz2 4511331 SHA256 e0aa9b08bf2cad4d7769e86fc7d0b05f5d0af0609c757a5c633841c5a703c73f SHA512 97f37704e832268d6b5d13ac7a9839405fba0dae59e59e8fef35085e658f9bdb731f024509387f1d4ab07c1457695ab74c180c146d3e76a5f074f7bb265d8c4d WHIRLPOOL e561ea060bd1cf4c13bf6b819d038d9667eb49376cfb1c913c9253ac71ccbdfe82ff172bb73970c00b3116ae9a10ec17a711f8d9ff7ffa01a80f228bea67f9e1
+DIST python-3.2.5-docs-html.tar.bz2 4435429 SHA256 5a7f7f79d58cf87511aae66784ae71e3e108ca8185bd40706c4bb43e5e0348bc SHA512 020da66dd701716da5b1038fb4502f2a5978987f7dfc6832ad3aa778427b68747dfcf232e1af8a35f2cffb20ce30a4888fee54aa8fc16981d874006e477fc01e WHIRLPOOL 85c419700a2e0b860c3a682c2c9f3da60a319bd6346eb35d40ccb4ab31737bb5154e584b7c562acc2a60b466099a6d493334362afeedcf4192f8ef15a4be2994
+DIST python-3.3.2-docs-html.tar.bz2 4907895 SHA256 7434bbb654c45ccc29825f15df2137944c53c5b737a94eadbcbb006dd2848cd4 SHA512 56e44e826257e7939da21a2051ad3e742fc44a7d7cf3ab24f1f4d0709b73ad9d5d642f6c78b7bfd8ff70ef9e4b621dff5760b75ec6db6a69cf3052ab63b1d214 WHIRLPOOL cff83134aaf7ef3778bed8b3a7ab6bd9873ab24bffc250b30e12fda1b448acc8b7515990efeec1a6a789fbba96067b665aab858224e0343b6f38c520382b5584
+DIST python-3.3.3-docs-html.tar.bz2 4944388 SHA256 414dca9cac934c06c6d21ad0068ebbf907a08f8a58b40b1ffb920426840b618c SHA512 61522f3468cc7bd3c07995f9b1f9cc4112c756a2e296f198ef42e8da72244b45d4cc56d5569ed53d05c63d86ec0afd6b6d10f7162dec17eb80900e0162bf6cc8 WHIRLPOOL 3d40a41afc81ae4359cf8fdf514ec0423a10c524a2084948610d1b1fa222112c43efdb4cc660613da8355fb2996dc2225d19d2cb273235b16ed97e6d8508e801
+DIST python-3.3.4-docs-html.tar.bz2 4951380 SHA256 43ab01c98d5bacb301519a99ed25192cebe0b69ac4a85b95302958b225868efc SHA512 c5eec99d94335f89c769f6386830ed951080609407cff4bc2600d6b294be396b97d24c20fd8e15dc6616fb06170445372d2c1bf9a8f2138e0e5ecb5a8a3094ee WHIRLPOOL 60a981284cdccada0db0b4768e8d1b36adb2aa05349bb414c980b5da6a5bb260e79cb1787dd2b33d3a88ccd061cb218628b8137595bc8785ece94649dcf7535c
+DIST python-3.3.5-docs-html.tar.bz2 4955315 SHA256 471067c514a33b4ae4fc35ba600130572840326252a565e39157feb2911ef733 SHA512 6cf6d02bf980609561ec829407e0a4d541ddf949db0b6d3156f9fa90ed7c87f9ef16128e9c8226887568489826efcdde5ea38af246ec235a077227d73736ea71 WHIRLPOOL 78a6babcc5c7df64deb324368f32ae5cc5fed6fba9ff7392b7589f81187b893d9c977fa9a25168d60336b46f9237bf09ba5e6fbef888ee3489de57afd09e9067
+DIST python-3.4.0-docs-html.tar.bz2 5355183 SHA256 445037818f15c4b622212db9e8182e322eb16de3959718dbd339229ed39044fc SHA512 7d359ab5ad429e8f1d4a51ec05cddf2b6ce87fdb0226ece5336b538b2bfbeed10728e178860ccf29ebf8f135aadb731ca24d0ef4dca29e0f83b097d7e940ad3d WHIRLPOOL 8df8db23fb21c549fd43bb6974cf89be71339141a08bdda5c8fcaac6263f6e4ed7febbfda93e8f1101eee80e6fadffcfe9b2b9a7905b36425865d6c5cf5a730d
+DIST python-3.4.1-docs-html.tar.bz2 5381756 SHA256 c55ce2f1e1b0a1916de7376906c0538ca46a297e669aa7b24f954b9a0cbce257 SHA512 be53266b9fffef988c30d386d1d6cab4aaf16577e825615edd66b5c07404ae126f312bec30ad3f7a4d4b6f5c7d1c9179394e2ffddd1fd6f37182846a9be2cac0 WHIRLPOOL a8e8a6855fdb43a518b7d6bc599be66d36796cc7ed7710705b6460c906faa01f5a1d776dfff1a2eb44478b72bac2d890638ff5344a4cf2953b282977fd963bee
+DIST python-3.4.2-docs-html.tar.bz2 5406764 SHA256 fafee4eb5cf284e447106746b40672d7c15a9e4f33d0e83b534d01dc1b5d60fa SHA512 856a28bc4384e74d1d5bbbb5d31c814580c99a49bd359ca18cd88c10b585537bd89bf4fcb2c5e714bc31c3be33ddc6273ae5931c5093d8901ee699532c042162 WHIRLPOOL 06d931226c0b1e89fc2b21136bce953dd28fb5c123dd220dc2b3b6447c872d24001989580fda15f8645607bd34db3782eba832ebd5ff2809f340ffb7a2202529
diff --git a/dev-python/python-docs/metadata.xml b/dev-python/python-docs/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/python-docs/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-docs/python-docs-2.7.3.ebuild b/dev-python/python-docs/python-docs-2.7.3.ebuild
new file mode 100644
index 00000000000..00350803111
--- /dev/null
+++ b/dev-python/python-docs/python-docs-2.7.3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="2.7"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-2.7.6-r1.ebuild b/dev-python/python-docs/python-docs-2.7.6-r1.ebuild
new file mode 100644
index 00000000000..760e6d65e47
--- /dev/null
+++ b/dev-python/python-docs/python-docs-2.7.6-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="2.7"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -A inv -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-2.7.7.ebuild b/dev-python/python-docs/python-docs-2.7.7.ebuild
new file mode 100644
index 00000000000..760e6d65e47
--- /dev/null
+++ b/dev-python/python-docs/python-docs-2.7.7.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="2.7"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -A inv -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-2.7.8.ebuild b/dev-python/python-docs/python-docs-2.7.8.ebuild
new file mode 100644
index 00000000000..418bb9c2bf7
--- /dev/null
+++ b/dev-python/python-docs/python-docs-2.7.8.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="2.7"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -A inv -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.2.5.ebuild b/dev-python/python-docs/python-docs-3.2.5.ebuild
new file mode 100644
index 00000000000..de6833f84f9
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.2.5.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.3.2.ebuild b/dev-python/python-docs/python-docs-3.3.2.ebuild
new file mode 100644
index 00000000000..e6d6b6479db
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.3.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.3"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.3.3.ebuild b/dev-python/python-docs/python-docs-3.3.3.ebuild
new file mode 100644
index 00000000000..6df9018dc8b
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.3.3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.3.4.ebuild b/dev-python/python-docs/python-docs-3.3.4.ebuild
new file mode 100644
index 00000000000..1b9a7a6ce52
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.3.4.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.3.5-r1.ebuild b/dev-python/python-docs/python-docs-3.3.5-r1.ebuild
new file mode 100644
index 00000000000..d3b8c8f47b3
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.3.5-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+src_install() {
+ dohtml -A xml -A inv -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.4.0-r1.ebuild b/dev-python/python-docs/python-docs-3.4.0-r1.ebuild
new file mode 100644
index 00000000000..9e9ed093584
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.4.0-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.4"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+pkg_setup() {
+ # Compatibility with Arfrever's pre-release ebuilds.
+ # Remove this in python-docs-3.4.1.
+ if has_version "=dev-lang/python-3.4_pre*[doc]"; then
+ rm -f "${EROOT}etc/env.d/60python-docs-3.4"
+ fi
+}
+
+src_install() {
+ dohtml -A xml -A inv -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.4.1.ebuild b/dev-python/python-docs/python-docs-3.4.1.ebuild
new file mode 100644
index 00000000000..9e9ed093584
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.4.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.4"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+pkg_setup() {
+ # Compatibility with Arfrever's pre-release ebuilds.
+ # Remove this in python-docs-3.4.1.
+ if has_version "=dev-lang/python-3.4_pre*[doc]"; then
+ rm -f "${EROOT}etc/env.d/60python-docs-3.4"
+ fi
+}
+
+src_install() {
+ dohtml -A xml -A inv -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-docs/python-docs-3.4.2.ebuild b/dev-python/python-docs/python-docs-3.4.2.ebuild
new file mode 100644
index 00000000000..9e9ed093584
--- /dev/null
+++ b/dev-python/python-docs/python-docs-3.4.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="HTML documentation for Python"
+HOMEPAGE="http://www.python.org/doc/"
+SRC_URI="http://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="3.4"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/python-${PV}-docs-html"
+
+pkg_setup() {
+ # Compatibility with Arfrever's pre-release ebuilds.
+ # Remove this in python-docs-3.4.1.
+ if has_version "=dev-lang/python-3.4_pre*[doc]"; then
+ rm -f "${EROOT}etc/env.d/60python-docs-3.4"
+ fi
+}
+
+src_install() {
+ dohtml -A xml -A inv -r ./
+ echo "PYTHONDOCS_${SLOT//./_}=\"${EPREFIX}/usr/share/doc/${PF}/html/library\"" > "60python-docs-${SLOT}"
+ doenvd "60python-docs-${SLOT}"
+}
+
+pkg_postrm() {
+ if ! has_version "<dev-python/python-docs-${SLOT}_alpha" && ! has_version ">=dev-python/python-docs-${SLOT%.*}.$((${SLOT#*.}+1))_alpha"; then
+ rm -f "${EROOT}etc/env.d/65python-docs"
+ fi
+}
diff --git a/dev-python/python-dsv/Manifest b/dev-python/python-dsv/Manifest
new file mode 100644
index 00000000000..d0a3141e684
--- /dev/null
+++ b/dev-python/python-dsv/Manifest
@@ -0,0 +1 @@
+DIST DSV-1.4.1.tar.gz 14682 SHA256 5d0ec99c45f8ea91ea920dcd2cdf2cdc9e721985551ea80718519ce70dc98f15 SHA512 c26df1efabff9e70b6dfd17f6ff928f022ad19cfa39af431ef7ac663687e8d80406b0ad471376e238eeb6fcbab31aa2a84eaeae2949173e22316eb92e51f7ada WHIRLPOOL 565ef07a5c87cc4090b8b75df0fb992561865563ac3a0a8adaac2d1bc893e664d0db4d66836d9f682b2e69f62b2fc1fb1c3cdb649d973672b87a731887ded97d
diff --git a/dev-python/python-dsv/files/python-dsv-1.4.1-wxversion.patch b/dev-python/python-dsv/files/python-dsv-1.4.1-wxversion.patch
new file mode 100644
index 00000000000..e72dd78ab28
--- /dev/null
+++ b/dev-python/python-dsv/files/python-dsv-1.4.1-wxversion.patch
@@ -0,0 +1,16 @@
+--- DSV/DSV.py
++++ DSV/DSV.py
+@@ -134,6 +134,13 @@
+ os.putenv('LANG', 'C')
+
+ try:
++ import wxversion
++ wxversion.select("2.8")
++except Exception, e:
++ print >> sys.stderr, "%s: wxPython 2.8 not installed." %e
++ sys.exit(1)
++
++try:
+ from wxPython import wx, grid
+ except ImportError:
+ wx = None
diff --git a/dev-python/python-dsv/metadata.xml b/dev-python/python-dsv/metadata.xml
new file mode 100644
index 00000000000..43dfa177f5f
--- /dev/null
+++ b/dev-python/python-dsv/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription>Python module for importing and exporting DSV (delimiter separated values) files.
+DSV is a generalization of CSV (comma separated values) and it is a common file
+format used by many programs to import and export data.</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">python-dsv</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-dsv/python-dsv-1.4.1-r1.ebuild b/dev-python/python-dsv/python-dsv-1.4.1-r1.ebuild
new file mode 100644
index 00000000000..4501ca755f0
--- /dev/null
+++ b/dev-python/python-dsv/python-dsv-1.4.1-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python module for importing and exporting DSV files"
+HOMEPAGE="http://python-dsv.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/DSV-${PV}.tar.gz"
+
+LICENSE="CNRI"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/wxpython:2.8[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/DSV-${PV}
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/${P}-wxversion.patch
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/python-etcd/Manifest b/dev-python/python-etcd/Manifest
new file mode 100644
index 00000000000..6e68e6b7d1d
--- /dev/null
+++ b/dev-python/python-etcd/Manifest
@@ -0,0 +1,2 @@
+DIST python-etcd-0.3.2.zip 35994 SHA256 e86c560303bbc7058c64b47e57393ebcfe5213756236c1344c9c97a6029737bb SHA512 0a110e33cccc555a52ec9a5c8ff1c1702bcebbba80f8b948fd72e78baa5fb00e1bb96be08f3839d07230ea905518ec4247a94d7def39f979fe83e01c52da609b WHIRLPOOL 3c70734d23086d2cad0d570d6361ab73f650994c1f30af31a3e1fda22b046f4d72193aa0ef479650788727079593beb261557daa2e0054e0f6381f945cf0052a
+DIST python-etcd-0.3.3.tar.gz 26529 SHA256 d261d6f3a9c11bc20e9541bf444ca7c21348dbf6133ebc6bb981abaea8164dba SHA512 ab7eac02083ee23cadbb5c70ca24001eaa2bc14f9413984ccf3cea2ee91ad660c8dbe2158f7fb238e142585b8f79313f548517ae622236772d5e5f356556ab0a WHIRLPOOL 0a2e09adf6a8c5a628bc5013cd446c111aef14529729090b116ce38fcf4d010a6416e3d92a23fd9f2c82a12811f7bfa572f29134643e3303bcba8e3011c6b593
diff --git a/dev-python/python-etcd/metadata.xml b/dev-python/python-etcd/metadata.xml
new file mode 100644
index 00000000000..ac246f80799
--- /dev/null
+++ b/dev-python/python-etcd/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <bugs-to>https://github.com/jplana/python-etcd/issues</bugs-to>
+ <changelog>https://raw.githubusercontent.com/jplana/python-etcd/master/NEWS.txt</changelog>
+ <doc>http://python-etcd.readthedocs.org/</doc>
+ <remote-id type="github">jplana/python-etcd</remote-id>
+ </upstream>
+ <maintainer>
+ <email>zmedico@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-etcd/python-etcd-0.3.2.ebuild b/dev-python/python-etcd/python-etcd-0.3.2.ebuild
new file mode 100644
index 00000000000..f55779b0265
--- /dev/null
+++ b/dev-python/python-etcd/python-etcd-0.3.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A python client for etcd"
+HOMEPAGE="https://github.com/jplana/python-etcd"
+SRC_URI="https://github.com/jplana/python-etcd/archive/${PV}.zip -> ${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/urllib3-1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/python-etcd/python-etcd-0.3.3.ebuild b/dev-python/python-etcd/python-etcd-0.3.3.ebuild
new file mode 100644
index 00000000000..fe2a7a1647e
--- /dev/null
+++ b/dev-python/python-etcd/python-etcd-0.3.3.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A python client for etcd"
+HOMEPAGE="https://github.com/jplana/python-etcd"
+SRC_URI="https://github.com/jplana/python-etcd/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ >=dev-python/urllib3-1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/python-evdev/Manifest b/dev-python/python-evdev/Manifest
new file mode 100644
index 00000000000..b5c73cea008
--- /dev/null
+++ b/dev-python/python-evdev/Manifest
@@ -0,0 +1,2 @@
+DIST python-evdev-0.4.3.tar.gz 27658 SHA256 011db63c94e668997ce0609e4a3cb04b92aca21304657151e6567e938de5efc6 SHA512 7bbc4339bde599f38423f88b3e5a4a4408b9214c9b622915b6f31dad50e08879d914fc83e8d95f66c158d5dd2d29e72907c4e3b0a97a3dbdfb7bde9013e161ec WHIRLPOOL 120aea7069cbe86463975103b87e7eca529df34ce14f69fe2378802f867b434a89aadfcdcab1c991ed25114bfe574452e12b33adbacadd1655e2013dc20f4dcb
+DIST python-evdev-0.4.5.tar.gz 30415 SHA256 70852905a4d0ad541ee0b8c58c566160df5bd08c69c778cbb9ebacfc50a6be61 SHA512 9d2c09c6dddd96bf6c5c639babe8a2c7dc81023de46ffcfe8e4d76126072fb380d3e726a3db1ae8025d4c816218f981ff23df86e20e0dc90c4ee4ca97ac57db5 WHIRLPOOL b548ad9cee8277bf192c30332ca0b0eeee98f90fe77db86ecdf0106948e5c2aba86ae9c950611357c3e41b9ec9e16a96525546d762c4ecf1d05f660d7107eb57
diff --git a/dev-python/python-evdev/metadata.xml b/dev-python/python-evdev/metadata.xml
new file mode 100644
index 00000000000..fd2e57a093f
--- /dev/null
+++ b/dev-python/python-evdev/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gvalkov/python-evdev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-evdev/python-evdev-0.4.3.ebuild b/dev-python/python-evdev/python-evdev-0.4.3.ebuild
new file mode 100644
index 00000000000..8219a89a9fd
--- /dev/null
+++ b/dev-python/python-evdev/python-evdev-0.4.3.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for evdev bindings"
+HOMEPAGE="http://python-evdev.readthedocs.org/"
+SRC_URI="https://github.com/gvalkov/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/python-evdev/python-evdev-0.4.5.ebuild b/dev-python/python-evdev/python-evdev-0.4.5.ebuild
new file mode 100644
index 00000000000..d3895d99c58
--- /dev/null
+++ b/dev-python/python-evdev/python-evdev-0.4.5.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for evdev bindings"
+HOMEPAGE="http://python-evdev.readthedocs.org/"
+SRC_URI="https://github.com/gvalkov/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/python-exconsole/Manifest b/dev-python/python-exconsole/Manifest
new file mode 100644
index 00000000000..76faa27eacd
--- /dev/null
+++ b/dev-python/python-exconsole/Manifest
@@ -0,0 +1 @@
+DIST python-exconsole-0.1.5.tar.gz 2322 SHA256 252e100dc2f7cff853501edf5580542bd509f8069a54599999b3df10db3a7f7e SHA512 f60dd78050515701c66196e7b62653ee7221b0b9bbe390e0f7b08e14ba781afb8f0c49fe769e702ec6d4854c4a48f6ab033c9066a5e5e604d6258ee393fe1070 WHIRLPOOL ed9d96e3fc75751ab301e3d9cccc16694ee538b87c48c83ede7aede405d9a746cbc7f33df8851fd4fbc72b5abb200ae754951257400719c034871110207a33dd
diff --git a/dev-python/python-exconsole/metadata.xml b/dev-python/python-exconsole/metadata.xml
new file mode 100644
index 00000000000..26c6c13e7b5
--- /dev/null
+++ b/dev-python/python-exconsole/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-exconsole</remote-id>
+ <remote-id type="github">Eugeny/exconsole</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-exconsole/python-exconsole-0.1.5.ebuild b/dev-python/python-exconsole/python-exconsole-0.1.5.ebuild
new file mode 100644
index 00000000000..06587877187
--- /dev/null
+++ b/dev-python/python-exconsole/python-exconsole-0.1.5.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Emergency/postmortem Python console"
+HOMEPAGE="https://github.com/Eugeny/exconsole https://pypi.python.org/pypi/python-exconsole"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/python-fastcgi/Manifest b/dev-python/python-fastcgi/Manifest
new file mode 100644
index 00000000000..e271b0ab42f
--- /dev/null
+++ b/dev-python/python-fastcgi/Manifest
@@ -0,0 +1 @@
+DIST python-fastcgi-1.1.tar.gz 11180 SHA256 3dff515aecbda371fe5bcb4e449109ce72120ce7bb1edd0e7c2138e75528fd12 SHA512 316c5b07342d27bbad90704909d7a010997801527a9069d23e39975bd3a0e82ab7407bb5e5aa9bdf240039d4c2fec37887540c569d496ca3a328f3323390da89 WHIRLPOOL 9a31809c5ca331b45fa2ab3f2819de4ca0a92fe00c08bfaad6abee8551ccfac56a108dc3b353aed889c85a8563f9a0238da45a6042731522618bfe1cd0583aeb
diff --git a/dev-python/python-fastcgi/files/python-fastcgi-1.1-setup.patch b/dev-python/python-fastcgi/files/python-fastcgi-1.1-setup.patch
new file mode 100644
index 00000000000..6ce721a5e00
--- /dev/null
+++ b/dev-python/python-fastcgi/files/python-fastcgi-1.1-setup.patch
@@ -0,0 +1,15 @@
+--- setup.py
++++ setup.py
+@@ -4,11 +4,7 @@
+ from setuptools import setup, Extension
+
+
+-c_ext = Extension("fcgi", ["fastcgi/pyfcgi.c"], libraries=["fcgi"],
+- include_dirs=["/usr/local/include"],
+- library_dirs=["/usr/local/lib"],
+- #extra_link_args=["-s"],
+- )
++c_ext = Extension("fcgi", ["fastcgi/pyfcgi.c"], libraries=["fcgi"])
+
+ setup(name="python-fastcgi",
+ version="1.1",
diff --git a/dev-python/python-fastcgi/metadata.xml b/dev-python/python-fastcgi/metadata.xml
new file mode 100644
index 00000000000..6a01fd7dc0a
--- /dev/null
+++ b/dev-python/python-fastcgi/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-fastcgi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-fastcgi/python-fastcgi-1.1-r1.ebuild b/dev-python/python-fastcgi/python-fastcgi-1.1-r1.ebuild
new file mode 100644
index 00000000000..51caeb94640
--- /dev/null
+++ b/dev-python/python-fastcgi/python-fastcgi-1.1-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Interface to OpenMarket's FastCGI C Library/SDK"
+HOMEPAGE="http://pypi.python.org/pypi/python-fastcgi"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+RDEPEND=">=dev-libs/fcgi-2.4.0-r2"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+PATCHES=( "${FILESDIR}/${P}-setup.patch" )
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-fastimport/Manifest b/dev-python/python-fastimport/Manifest
new file mode 100644
index 00000000000..4798dc338fb
--- /dev/null
+++ b/dev-python/python-fastimport/Manifest
@@ -0,0 +1 @@
+DIST python-fastimport-0.9.2.tar.gz 30762 SHA256 fd60f1173e64a5da7c5d783f17402f795721b7548ea3a75e29c39d89a60f261e SHA512 8fd9f89267ca88edff94cea7537740431d02680a1eebd085ee376954b47bf5222e7575750895d0d2da246694cdac7a5afe50d857b87c0f36e04eb3511bcbe472 WHIRLPOOL f1d26b8de2180d55f11df3eb937ae3a524b5f55295d264f23a1edd582152cb6ecbc52cba4164e85f5be943c132cb48db0fa3a704eeda5b1c12896233f18d3c76
diff --git a/dev-python/python-fastimport/metadata.xml b/dev-python/python-fastimport/metadata.xml
new file mode 100644
index 00000000000..04f469d57e2
--- /dev/null
+++ b/dev-python/python-fastimport/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tetromino@gentoo.org</email>
+ <name>Alexandre Rostovtsev</name>
+ </maintainer>
+ <herd>bazaar</herd>
+ <upstream>
+ <remote-id type="launchpad">python-fastimport</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-fastimport/python-fastimport-0.9.2-r1.ebuild b/dev-python/python-fastimport/python-fastimport-0.9.2-r1.ebuild
new file mode 100644
index 00000000000..0b0fb09e45c
--- /dev/null
+++ b/dev-python/python-fastimport/python-fastimport-0.9.2-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library for parsing the fastimport VCS serialization format"
+HOMEPAGE="https://launchpad.net/python-fastimport"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="
+ test? (
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ local test_runner=( "${PYTHON}" -m unittest )
+
+ if [[ ${EPYTHON} == python2.6 ]]; then
+ test_runner=( unit2 )
+ fi
+
+ "${test_runner[@]}" fastimport.tests.test_suite \
+ || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-fchksum/Manifest b/dev-python/python-fchksum/Manifest
new file mode 100644
index 00000000000..69e302b439a
--- /dev/null
+++ b/dev-python/python-fchksum/Manifest
@@ -0,0 +1 @@
+DIST python-fchksum-1.7.1.tar.gz 26724 SHA256 407625d2bf38be6fcbe8b01007d1803b5c5bd97249114c076edef4fd061405a7 SHA512 59b561e2938c41bcda2b98eb3fa0670be3fd85f8cb67368132ce239cac21760a5e9a5a05be2429992fa480ccd2e2aa457df7b4a07e709acbe42be9b1559f3060 WHIRLPOOL 474c2045dbe776b162be5388eedaadea8f26f5f9620ffb4c8eb86bbdcb8a124137522f9b20f11596cf828cc965afcfde492802484dae484852ac27ed147d176a
diff --git a/dev-python/python-fchksum/files/python-fchksum-1.7.1-md5-align.patch b/dev-python/python-fchksum/files/python-fchksum-1.7.1-md5-align.patch
new file mode 100644
index 00000000000..1adfa627fdd
--- /dev/null
+++ b/dev-python/python-fchksum/files/python-fchksum-1.7.1-md5-align.patch
@@ -0,0 +1,26 @@
+the alignment of resbuf is not guaranteed, so use memcpy to move
+the bytes in/out. on arches which can do unaligned accesses, this
+will generate the same code.
+
+patch by Mike Frysinger
+
+--- a/md5.c
++++ b/md5.c
+@@ -74,10 +74,13 @@ md5_read_ctx (ctx, resbuf)
+ const struct md5_ctx *ctx;
+ void *resbuf;
+ {
+- ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A);
+- ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B);
+- ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C);
+- ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D);
++ md5_uint32 swap;
++#define set(i, c) { swap = SWAP (ctx->c); memcpy (resbuf + (i * 4), &swap, 4); }
++ set (0, A);
++ set (1, B);
++ set (2, C);
++ set (3, D);
++#undef set
+
+ return resbuf;
+ }
diff --git a/dev-python/python-fchksum/metadata.xml b/dev-python/python-fchksum/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/python-fchksum/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-fchksum/python-fchksum-1.7.1-r1.ebuild b/dev-python/python-fchksum/python-fchksum-1.7.1-r1.ebuild
new file mode 100644
index 00000000000..7c1e358e70b
--- /dev/null
+++ b/dev-python/python-fchksum/python-fchksum-1.7.1-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to find the checksum of files"
+HOMEPAGE="http://code.fluffytapeworm.com/projects"
+SRC_URI="http://code.fluffytapeworm.com/projects/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-md5-align.patch )
diff --git a/dev-python/python-geoclue/Manifest b/dev-python/python-geoclue/Manifest
new file mode 100644
index 00000000000..bad62811eb7
--- /dev/null
+++ b/dev-python/python-geoclue/Manifest
@@ -0,0 +1 @@
+DIST python-geoclue-0.1.0.tar.gz 61062 SHA256 51748c22244f974854eacbf518a11a72cdf76045b7ab9cae44b7a592dfa4e259 SHA512 844c877038f9b8db096a33605be16f8aaea8e66fa84e3a42927f103afa9c8ab565b28cc69b9d02d30bfd02a20e6e20e7fdf28a7d06900db9d288775bb153c533 WHIRLPOOL b59fc942e9686e55f8a6d2aab2a335f51b0f8de4a13bd6d9f3945cabd5133fffd125b7373f3dc9c9b7941d66ef27e41aa832cf3e2f1ca332dfd6376b5dedaa08
diff --git a/dev-python/python-geoclue/metadata.xml b/dev-python/python-geoclue/metadata.xml
new file mode 100644
index 00000000000..6c90e346eb6
--- /dev/null
+++ b/dev-python/python-geoclue/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-geoclue/python-geoclue-0.1.0-r1.ebuild b/dev-python/python-geoclue/python-geoclue-0.1.0-r1.ebuild
new file mode 100644
index 00000000000..894304dbfc7
--- /dev/null
+++ b/dev-python/python-geoclue/python-geoclue-0.1.0-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Geoclue python module"
+HOMEPAGE="http://live.gnome.org/gtg/soc/python_geoclue/"
+SRC_URI="http://www.paulocabido.com/soc/${PN}/${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+LICENSE="GPL-3"
+IUSE="test"
+
+RDEPEND="
+ app-misc/geoclue:0
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]"
+DEPEND="test? ( app-misc/geoclue:0 )"
+
+S="${WORKDIR}"/${PN}
+
+python_prepare_all() {
+ use test && DISTUTILS_NO_PARALLEL_BUILD=true
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ VIRTUALX_COMMAND="${PYTHON}"
+ cd "${BUILD_DIR}" || die
+ virtualmake "${S}"/tests/test.py
+}
diff --git a/dev-python/python-gflags/Manifest b/dev-python/python-gflags/Manifest
new file mode 100644
index 00000000000..436669399ed
--- /dev/null
+++ b/dev-python/python-gflags/Manifest
@@ -0,0 +1 @@
+DIST python-gflags-2.0.tar.gz 64929 SHA256 311066217acb8cd8519a4c872cb3fe64f02bcf105802bb761ab0de55c2386cd6 SHA512 28566acffd092f09105f3b9ad3be4ada11f024f940914e6efb103907f3779283c63bdfe13edad83aa470c5e887b49ad8b05031fc1895f3bad9b5d9c368bbfe18 WHIRLPOOL 61054cce9033ef26ee6d6296fc761c840f394de07f068a899b52a5d4212de4e4601f9a203fd8033db576e79369e4d53a0bb04bfca0e50cf828ff94105a2b453a
diff --git a/dev-python/python-gflags/files/python-gflags-2.0-scripts-install.patch b/dev-python/python-gflags/files/python-gflags-2.0-scripts-install.patch
new file mode 100644
index 00000000000..e29ef951da5
--- /dev/null
+++ b/dev-python/python-gflags/files/python-gflags-2.0-scripts-install.patch
@@ -0,0 +1,29 @@
+The scripts are installed as 'data' rather than scripts.
+http://code.google.com/p/python-gflags/issues/detail?id=12
+
+From d544cdad63faa5a53ba524e39f091f4a18e1eeb8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 16 Dec 2012 16:27:13 +0100
+Subject: [PATCH] Install Python scripts using 'scripts' key.
+
+This is necessary to ensure that the shebangs are properly replaced when
+installing for multiple Python implementations.
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 573db2d..ddad318 100755
+--- a/setup.py
++++ b/setup.py
+@@ -39,6 +39,6 @@ setup(name='python-gflags',
+ author_email='google-gflags@googlegroups.com',
+ url='http://code.google.com/p/python-gflags',
+ py_modules=["gflags", "gflags_validators"],
+- data_files=[("bin", ["gflags2man.py"])],
++ scripts=["gflags2man.py"],
+ include_package_data=True,
+ )
+--
+1.8.0.2
+
diff --git a/dev-python/python-gflags/files/python-gflags-2.0-skip-test-as-root.patch b/dev-python/python-gflags/files/python-gflags-2.0-skip-test-as-root.patch
new file mode 100644
index 00000000000..5eb2aa35b26
--- /dev/null
+++ b/dev-python/python-gflags/files/python-gflags-2.0-skip-test-as-root.patch
@@ -0,0 +1,28 @@
+http://bugs.gentoo.org/475134
+
+From 6e93aa28e1e116619a82e1b78ffbc15ce1133d51 Mon Sep 17 00:00:00 2001
+From: Michael Marineau <mike@marineau.org>
+Date: Thu, 27 Jun 2013 19:26:23 -0400
+Subject: [PATCH 3/3] Skip a permissions check when running as root.
+
+---
+ tests/gflags_unittest.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/tests/gflags_unittest.py b/tests/gflags_unittest.py
+index 091ebd9..ddd3b5c 100755
+--- a/tests/gflags_unittest.py
++++ b/tests/gflags_unittest.py
+@@ -1111,6 +1111,9 @@ class LoadFromFlagFileTest(googletest.TestCase):
+
+ def testMethod_flagfiles_NoPermissions(self):
+ """Test that --flagfile raises except on file that is unreadable."""
++ # This test doesn't work as root
++ if os.getuid() == 0:
++ return
+ tmp_files = self._SetupTestFiles()
+ # specify our temp file on the fake cmd line
+ fake_cmd_line = ('fooScript --SomeFlag some_arg --flagfile=%s'
+--
+1.8.1.5
+
diff --git a/dev-python/python-gflags/files/python-gflags-2.0-tests-python-2.7.patch b/dev-python/python-gflags/files/python-gflags-2.0-tests-python-2.7.patch
new file mode 100644
index 00000000000..2210b2b6edd
--- /dev/null
+++ b/dev-python/python-gflags/files/python-gflags-2.0-tests-python-2.7.patch
@@ -0,0 +1,68 @@
+https://bugs.gentoo.org/447482
+
+------------------------------------------------------------------------
+r41 | jwilliams@endpoint.com | 2012-02-21 17:17:32 -0500 (Tue, 21 Feb 2012) | 5 lines
+
+Unit test updates for Python 2.7 compatibility
+
+* Add "msg" parameter to our versions of the test functions
+* Change regex to match the updated 2.7 float() ValueError response
+
+
+Index: tests/gflags_googletest.py
+===================================================================
+--- tests/gflags_googletest.py (revision 40)
++++ tests/gflags_googletest.py (revision 41)
+@@ -88,22 +88,22 @@ def MultiLineEqual(expected, actual):
+
+
+ class TestCase(unittest.TestCase):
+- def assertListEqual(self, list1, list2):
++ def assertListEqual(self, list1, list2, msg=None):
+ """Asserts that, when sorted, list1 and list2 are identical."""
+ # This exists in python 2.7, but not previous versions. Use the
+ # built-in version if possible.
+ if hasattr(unittest.TestCase, "assertListEqual"):
+- unittest.TestCase.assertListEqual(self, Sorted(list1), Sorted(list2))
++ unittest.TestCase.assertListEqual(self, Sorted(list1), Sorted(list2), msg)
+ else:
+- self.assertEqual(Sorted(list1), Sorted(list2))
++ self.assertEqual(Sorted(list1), Sorted(list2), msg)
+
+- def assertMultiLineEqual(self, expected, actual):
++ def assertMultiLineEqual(self, expected, actual, msg=None):
+ # This exists in python 2.7, but not previous versions. Use the
+ # built-in version if possible.
+ if hasattr(unittest.TestCase, "assertMultiLineEqual"):
+- unittest.TestCase.assertMultiLineEqual(self, expected, actual)
++ unittest.TestCase.assertMultiLineEqual(self, expected, actual, msg)
+ else:
+- self.assertTrue(MultiLineEqual(expected, actual))
++ self.assertTrue(MultiLineEqual(expected, actual), msg)
+
+ def assertRaisesWithRegexpMatch(self, exception, regexp, fn, *args, **kwargs):
+ try:
+Index: tests/gflags_unittest.py
+===================================================================
+--- tests/gflags_unittest.py (revision 40)
++++ tests/gflags_unittest.py (revision 41)
+@@ -814,7 +814,7 @@ class MultiNumericalFlagsTest(googletest
+
+ self.assertRaisesWithRegexpMatch(
+ gflags.IllegalFlagValue,
+- 'flag --m_float2=abc: invalid literal for float\(\): abc',
++ 'flag --m_float2=abc: (invalid literal for float\(\)||could not convert string to float): abc',
+ gflags.DEFINE_multi_float, 'm_float2', ['abc'], 'desc')
+
+ # Test non-parseable command line values.
+@@ -831,7 +831,7 @@ class MultiNumericalFlagsTest(googletest
+ argv = ('./program', '--m_float2=def')
+ self.assertRaisesWithRegexpMatch(
+ gflags.IllegalFlagValue,
+- 'flag --m_float2=def: invalid literal for float\(\): def',
++ 'flag --m_float2=def: (invalid literal for float\(\)||could not convert string to float): def',
+ FLAGS, argv)
+
+
+
+------------------------------------------------------------------------
diff --git a/dev-python/python-gflags/files/python-gflags-2.0-tests-respect-tmpdir.patch b/dev-python/python-gflags/files/python-gflags-2.0-tests-respect-tmpdir.patch
new file mode 100644
index 00000000000..b3ae14e6dd6
--- /dev/null
+++ b/dev-python/python-gflags/files/python-gflags-2.0-tests-respect-tmpdir.patch
@@ -0,0 +1,58 @@
+Tests try to write to /tmp (sandbox).
+http://code.google.com/p/python-gflags/issues/detail?id=13
+
+From 4a430830e75bfe2228e9d953b12f74a20ec2cb8f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 16 Dec 2012 16:53:24 +0100
+Subject: [PATCH] Use tempfile.mkdtemp() to create temporary directory.
+
+This creates an unique directory, and respects TMPDIR.
+---
+ tests/gflags_unittest.py | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/tests/gflags_unittest.py b/tests/gflags_unittest.py
+index 8e948bf..fcddb7b 100755
+--- a/tests/gflags_unittest.py
++++ b/tests/gflags_unittest.py
+@@ -38,6 +38,7 @@ import cStringIO
+ import sys
+ import os
+ import shutil
++import tempfile
+
+ import gflags
+ from flags_modules_for_testing import module_foo
+@@ -907,17 +908,16 @@ class LoadFromFlagFileTest(googletest.TestCase):
+ flag_values=self.flag_values)
+ self.files_to_delete = []
+
++ # Figure out where to create temporary files
++ self.tmp_path = tempfile.mkdtemp(prefix='gflags_unittest')
++
+ def tearDown(self):
+ self._RemoveTestFiles()
+
+ def _SetupTestFiles(self):
+ """ Creates and sets up some dummy flagfile files with bogus flags"""
+
+- # Figure out where to create temporary files
+- tmp_path = '/tmp/flags_unittest'
+- if os.path.exists(tmp_path):
+- shutil.rmtree(tmp_path)
+- os.makedirs(tmp_path)
++ tmp_path = self.tmp_path
+
+ try:
+ tmp_flag_file_1 = open(tmp_path + '/UnitTestFile1.tst', 'w')
+@@ -973,6 +973,7 @@ class LoadFromFlagFileTest(googletest.TestCase):
+ os.remove(file_name)
+ except OSError, e_msg:
+ print '%s\n, Problem deleting test file' % e_msg
++ shutil.rmtree(self.tmp_path)
+ #end RemoveTestFiles def
+
+ def _ReadFlagsFromFiles(self, argv, force_gnu):
+--
+1.8.0.2
+
diff --git a/dev-python/python-gflags/metadata.xml b/dev-python/python-gflags/metadata.xml
new file mode 100644
index 00000000000..acab986467b
--- /dev/null
+++ b/dev-python/python-gflags/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">python-gflags</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-gflags/python-gflags-2.0.ebuild b/dev-python/python-gflags/python-gflags-2.0.ebuild
new file mode 100644
index 00000000000..dcf52bfecbe
--- /dev/null
+++ b/dev-python/python-gflags/python-gflags-2.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Google's Python argument parsing library"
+HOMEPAGE="http://code.google.com/p/python-gflags/"
+SRC_URI="http://python-gflags.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc64 ~s390 ~sh x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}"/${P}-scripts-install.patch
+ "${FILESDIR}"/${P}-tests-respect-tmpdir.patch
+ "${FILESDIR}"/${P}-skip-test-as-root.patch #475134
+ "${FILESDIR}"/${P}-tests-python-2.7.patch #447482
+)
+
+python_test() {
+ # http://code.google.com/p/python-gflags/issues/detail?id=15&thanks=15&ts=1372948007
+ local t
+ cd tests || die
+ for t in *.py; do
+ # (it's ok to run the gflags_googletest.py too)
+ "${PYTHON}" "${t}" || die "Tests fail with ${EPYTHON}"
+ done
+}
diff --git a/dev-python/python-glanceclient/Manifest b/dev-python/python-glanceclient/Manifest
new file mode 100644
index 00000000000..6e9c660bf39
--- /dev/null
+++ b/dev-python/python-glanceclient/Manifest
@@ -0,0 +1,7 @@
+DIST python-glanceclient-0.13.1.tar.gz 109193 SHA256 46524a25d94fc518676c56320a40c362e32c75c8af13fa2bf9ff348e3aa25205 SHA512 e0c1cc15d7ed9218a076f9140ee75aad76d8d2d01e39f1b66dc1006f155742135231d636a93aa66a7b4ba4c75fa9c7cb0a5227c461615560a209001f22ea2830 WHIRLPOOL b77350d5fcce5cedfae405af7bdf562962bbb55b3fe7aee0370c73d29697033244bd7a145e1332137732ab60befa53f007936ba8596bfbd04b3566633b223a26
+DIST python-glanceclient-0.14.2.tar.gz 121369 SHA256 12f3554077be22d0bdbb6195a8142840f9985ffc0b83affb4ad96f1445a7e784 SHA512 bd07498a65718cc7d0b77b48b8266e81f92c7aec6c678915088e2631c69a93c53887fac423cc591462a6adc9d1a8dca16646e50bb33647a640107a6facc5d87f WHIRLPOOL b16f7c85b419c25181090ee2e4944c5247f448f2836960d044d079e879c108c5d039ac141c3a5efd2072e289bb81c8fc6aee14cca8aa4338d3d22932f66f8528
+DIST python-glanceclient-0.17.0.tar.gz 130715 SHA256 2e83b9100ad56beee9cbe343ee0a5233ac23ab015538feaa3e89400fa2d7fc81 SHA512 c4837985228fde78e051638ea89fc79fad1a054b7db3f669c3c3cd4f4c4e84c89e867758a71739069b347bb9670626b3c81a789670e28ded9ac26e28b7a933d7 WHIRLPOOL 75e1b289fdd38fa1aeb01c58174801ae544e153206a37cf8032030e1a9eeaada52acf4b3ae71094702e26b5b083cc39ffd91658b47df14b9044289f1aa118c7d
+DIST python-glanceclient-0.17.1.tar.gz 131534 SHA256 79e3426aa76d712a9fde4d4dcef4532d9099f8e4bdd2ef9802b428d0d99ffe7e SHA512 a54fcc990fe734c83573ee9cb44bff171440b4cf5a6ce7a9c6aa3fcde12b05037ba2a4bcad1df7b93d05e0774dd3581bab65b8342875b8834e1d0b7794f5d38d WHIRLPOOL f7da0e934f4b45b3e2b560387665ed743f8116f7ad06e3feb65d83427bc447825c5f989de8c3020de5597adcfe5d76a6a31e3af6ac6d09dd73c2dd737cfdd0ac
+DIST python-glanceclient-0.17.2.tar.gz 134726 SHA256 56ca8fe2c4f33d9dd9b045073bdd0dba09b1f6ef7af978175966d262678ecd0e SHA512 d66cb2391c6feeeb279a1591bae04405bf78eeb95b6f8bb78a401b28246d6de341cf02c621553e97dce3ddc43dcf8c6bfb5360ff7d6ac54501565fcbe1bac957 WHIRLPOOL cbff98a55f3fcd30335bdb504e61682b04e8f84de5359dc671f834e8a98f441355d89f2a0123e31dc71f0fdf4b522341e54212fb2dd5bb8965a613f4084a62d1
+DIST python-glanceclient-0.18.0.tar.gz 132194 SHA256 9784de057ffb8fadd98563452a9f30bfdca6d4531ce166ac2d101cd968a6194a SHA512 091f4a954e58abef40520ecb137fb47e02bd299e9903a83dc9eb26e428e4e0a0f58949e2eead5afaa271ef71e2827f319e72074bf93313ccd506f3374e95367d WHIRLPOOL edfe214cd791baed39f05617b2fa35b3eeae66754b57e9e553f019b3937fe04046bf73c9fa1c811f429a22622777b2507221b712e0b040efb7f8d0e2cb986b71
+DIST python-glanceclient-0.19.0.tar.gz 138756 SHA256 45115023cadfdbc24a10b10ca5d003f8f04fd5642b7c8fb565efa566bac4bf51 SHA512 50591b535bb27eaeaeed02f04bd164d4449df1e2b66a6c8abd4fad327e2293b6c9a1e4226ce3f9180d22a33ed2212bd735ad2d91374121e0d062c590a4cc64c5 WHIRLPOOL 9abb606573211c39becef134803e036f7f6b11591ae95d486749e8a62f2a22490c833750ef5234c2502f7aa0cb24dcf62b326249703fbae0dceb3173b7286bf2
diff --git a/dev-python/python-glanceclient/metadata.xml b/dev-python/python-glanceclient/metadata.xml
new file mode 100644
index 00000000000..1efbdddc6fa
--- /dev/null
+++ b/dev-python/python-glanceclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client for the OpenStack Glance API.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-glanceclient</remote-id>
+ <remote-id type="github">openstack/python-glanceclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.13.1.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.13.1.ebuild
new file mode 100644
index 00000000000..81bab6aae54
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.13.1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND=">=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.14.2.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.14.2.ebuild
new file mode 100644
index 00000000000..7bf2e65d22d
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.14.2.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND=">=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.0.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.17.0.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.17.0.ebuild
new file mode 100644
index 00000000000..89016f86fc6
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.17.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.17.1.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.17.1.ebuild
new file mode 100644
index 00000000000..d0f0e87cda7
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.17.1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/python-keystoneclient-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.17.2.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.17.2.ebuild
new file mode 100644
index 00000000000..0842f5358d1
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.17.2.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ <=dev-python/mock-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/python-keystoneclient-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ sed -i -e '/^argparse/d' requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.18.0.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.18.0.ebuild
new file mode 100644
index 00000000000..9778609b443
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.18.0.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.19.0-r1.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.19.0-r1.ebuild
new file mode 100644
index 00000000000..623e7b63e4a
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.19.0-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND="
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ sed -i '/^argparse/d' requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-glanceclient/python-glanceclient-0.19.0.ebuild b/dev-python/python-glanceclient/python-glanceclient-0.19.0.ebuild
new file mode 100644
index 00000000000..d73d1c4ea0b
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-0.19.0.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND="
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.0.1[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_mapping:_&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+ flake8 tests && einfo "run flake8 over tests folder passed" || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-gnupg/Manifest b/dev-python/python-gnupg/Manifest
new file mode 100644
index 00000000000..4d6eeaf2d44
--- /dev/null
+++ b/dev-python/python-gnupg/Manifest
@@ -0,0 +1 @@
+DIST python-gnupg-0.3.7.tar.gz 48728 SHA256 2bf59ff55c036e49d5da12d370447679f14d242567df4c2c0fc61b4601ca0d59 SHA512 6166cef11307dd4782000ab7263778436998a816a45e4471fcbe244b123703bf9ded5bc6ef5cd47ed0c561ef42660980576edf57c62029bb0326642b7c538dd3 WHIRLPOOL 93770439486689dfcaf296d158c3978a71c72d32ba9f0e5b4ec4c97dfda16177ee5e06f0b616112cdfb9cd96c3a93700a0d4302116401c6146f3cd7437b7e29b
diff --git a/dev-python/python-gnupg/files/python-gnupg-0.3.6-skip-search-keys-tests.patch b/dev-python/python-gnupg/files/python-gnupg-0.3.6-skip-search-keys-tests.patch
new file mode 100644
index 00000000000..66512ab0816
--- /dev/null
+++ b/dev-python/python-gnupg/files/python-gnupg-0.3.6-skip-search-keys-tests.patch
@@ -0,0 +1,20 @@
+--- python-gnupg-0.3.6/gnupg.py
++++ python-gnupg-0.3.6/gnupg.py
+@@ -1078,6 +1078,7 @@
+ def search_keys(self, query, keyserver='pgp.mit.edu'):
+ """ search keyserver by query (using --search-keys option)
+
++ # doctest: +SKIP
+ >>> import shutil
+ >>> shutil.rmtree('keys')
+ >>> gpg = GPG(gnupghome='keys')
+--- python-gnupg-0.3.6/test_gnupg.py
++++ python-gnupg-0.3.6/test_gnupg.py
+@@ -493,6 +493,7 @@
+ os.remove(fn)
+ logger.debug("test_file_encryption_and_decryption ends")
+
++ @unittest.skip("requires network access")
+ def test_search_keys(self):
+ "Test that searching for keys works"
+ r = self.gpg.search_keys('<vinay_sajip@hotmail.com>')
diff --git a/dev-python/python-gnupg/files/python-gnupg-0.3.7-msg-handle.patch b/dev-python/python-gnupg/files/python-gnupg-0.3.7-msg-handle.patch
new file mode 100644
index 00000000000..9f4b6f562ce
--- /dev/null
+++ b/dev-python/python-gnupg/files/python-gnupg-0.3.7-msg-handle.patch
@@ -0,0 +1,31 @@
+https://bitbucket.org/vinay.sajip/python-gnupg/commits/79c73a9ce6e33555246f9dae2ef4be9964e2704b
+# HG changeset patch
+# User Vinay Sajip <vinay_sajip@yahoo.co.uk>
+# Date 1419023737 0
+# Node ID 79c73a9ce6e33555246f9dae2ef4be9964e2704b
+# Parent 767aa49b175738b6d0404a2fb2fca3e3c081e0a8
+Closes #22: handled PROGRESS messages during verification and signing.
+
+diff --git a/gnupg.py b/gnupg.py
+--- a/gnupg.py
++++ b/gnupg.py
+@@ -221,7 +221,8 @@
+ "PLAINTEXT_LENGTH", "POLICY_URL", "DECRYPTION_INFO",
+ "DECRYPTION_OKAY", "INV_SGNR", "FILE_START", "FILE_ERROR",
+ "FILE_DONE", "PKA_TRUST_GOOD", "PKA_TRUST_BAD", "BADMDC",
+- "GOODMDC", "NO_SGNR", "NOTATION_NAME", "NOTATION_DATA"):
++ "GOODMDC", "NO_SGNR", "NOTATION_NAME", "NOTATION_DATA",
++ "PROGRESS"):
+ pass
+ elif key == "BADSIG":
+ self.valid = False
+@@ -601,7 +602,7 @@
+ if key in ("USERID_HINT", "NEED_PASSPHRASE", "BAD_PASSPHRASE",
+ "GOOD_PASSPHRASE", "BEGIN_SIGNING", "CARDCTRL", "INV_SGNR",
+ "NO_SGNR", "MISSING_PASSPHRASE", "NEED_PASSPHRASE_PIN",
+- "SC_OP_FAILURE", "SC_OP_SUCCESS"):
++ "SC_OP_FAILURE", "SC_OP_SUCCESS", "PROGRESS"):
+ pass
+ elif key in ("KEYEXPIRED", "SIGEXPIRED"):
+ self.status = 'key expired'
+
diff --git a/dev-python/python-gnupg/metadata.xml b/dev-python/python-gnupg/metadata.xml
new file mode 100644
index 00000000000..0b22cf585fa
--- /dev/null
+++ b/dev-python/python-gnupg/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">python-gnupg</remote-id>
+ <remote-id type="github">vsajip/python-gnupg</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-gnupg/python-gnupg-0.3.7.ebuild b/dev-python/python-gnupg/python-gnupg-0.3.7.ebuild
new file mode 100644
index 00000000000..ef3b341feee
--- /dev/null
+++ b/dev-python/python-gnupg/python-gnupg-0.3.7.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for GNU Privacy Guard"
+HOMEPAGE="http://pythonhosted.org/python-gnupg/ https://github.com/vsajip/python-gnupg/"
+SRC_URI="https://github.com/vsajip/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-crypt/gnupg"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.3.6-skip-search-keys-tests.patch
+ "${FILESDIR}"/${P}-msg-handle.patch )
+
+python_test() {
+ # Note; 1 test fails under pypy only
+ "${PYTHON}" test_gnupg.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-gtkmvc/Manifest b/dev-python/python-gtkmvc/Manifest
new file mode 100644
index 00000000000..fb43ad21145
--- /dev/null
+++ b/dev-python/python-gtkmvc/Manifest
@@ -0,0 +1 @@
+DIST python-gtkmvc-1.99.1.tar.gz 1426052 SHA256 a8a74fb0a21d9e229950927a906f5f83ee19e459547138b360a6c60418667ab7 SHA512 f82bbe0f769a57120d3858f77a6531778f4ffbf16191a2f8b3f0cd7da047f756db560e2896504530a92d142c27d61cd010c0ceada059e5dce9428b58950490a0 WHIRLPOOL ded448a1e9ddf4380ea0b0b00fea1f79550a27dc91f05bbf978e00477a7045313507e4baa3c920b24df0c0519fd716bdf8e3c30acd1a16ad7b6db6c377a3ec28
diff --git a/dev-python/python-gtkmvc/metadata.xml b/dev-python/python-gtkmvc/metadata.xml
new file mode 100644
index 00000000000..fad314aca6b
--- /dev/null
+++ b/dev-python/python-gtkmvc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <!-- <herd>gnome</herd> -->
+ <upstream>
+ <remote-id type="sourceforge">pygtkmvc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-gtkmvc/python-gtkmvc-1.99.1.ebuild b/dev-python/python-gtkmvc/python-gtkmvc-1.99.1.ebuild
new file mode 100644
index 00000000000..0f4080f779a
--- /dev/null
+++ b/dev-python/python-gtkmvc/python-gtkmvc-1.99.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="model-view-controller (MVC) implementation for pygtk"
+HOMEPAGE="http://pygtkmvc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/pygtkmvc/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=">=dev-python/pygtk-2.24.0"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ dodoc README
+ use doc && dohtml -r docs/_build/html/
+
+ if use examples; then
+ docompress -x usr/share/doc/${P}/examples/
+ insinto usr/share/doc/${P}/
+ doins -r examples/
+ fi
+}
diff --git a/dev-python/python-gudev/Manifest b/dev-python/python-gudev/Manifest
new file mode 100644
index 00000000000..c71115dc307
--- /dev/null
+++ b/dev-python/python-gudev/Manifest
@@ -0,0 +1 @@
+DIST python-gudev-147.2.tar.gz 10111 SHA256 09a79c4b8dcf18b55725ac258108551456da111cd9329afd9a23e0da02abe30b SHA512 a022df2989154ac5f358df7ff33d6f976cae4d005756c3b73937e0668751b923a29c3e1f813e89a7297653df7744f10207c2bb33d2a6816470ea2ca10975493f WHIRLPOOL 437fe241650eb9962ed77e1f36e436c491c4e3212aeecb0620d7e535c322379d2e13040db795943295951ccfb04ae56261392b848e350d872c967a5481bdfb8f
diff --git a/dev-python/python-gudev/files/automake.patch b/dev-python/python-gudev/files/automake.patch
new file mode 100644
index 00000000000..a25c9e4fd31
--- /dev/null
+++ b/dev-python/python-gudev/files/automake.patch
@@ -0,0 +1,10 @@
+--- configure.org.ac 2013-05-02 00:22:58.181214757 +0200
++++ configure.ac 2013-05-02 00:25:00.463686016 +0200
+@@ -8,7 +8,6 @@
+ AC_PROG_MAKE_SET
+
+ AC_PROG_CC
+-AM_PROG_CC_STDC
+ AC_HEADER_STDC
+
+ AM_PROG_LIBTOOL
diff --git a/dev-python/python-gudev/metadata.xml b/dev-python/python-gudev/metadata.xml
new file mode 100644
index 00000000000..cd9811889ba
--- /dev/null
+++ b/dev-python/python-gudev/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>laurento.frittella@gmail.com</email>
+ <description>Proxy Maintainer (please CC on bugs)</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">nzjrs/python-gudev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-gudev/python-gudev-147.2-r1.ebuild b/dev-python/python-gudev/python-gudev-147.2-r1.ebuild
new file mode 100644
index 00000000000..dee6d5b53b5
--- /dev/null
+++ b/dev-python/python-gudev/python-gudev-147.2-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_PRUNE_LIBTOOL_FILES=modules
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools-utils python-r1 vcs-snapshot eutils
+
+DESCRIPTION="Python binding to the GUDev udev helper library"
+HOMEPAGE="http://github.com/nzjrs/python-gudev"
+SRC_URI="https://github.com/nzjrs/${PN}/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/pygobject:2[${PYTHON_USEDEP}]
+ virtual/libgudev:=
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/automake.patch
+ python_foreach_impl autotools-utils_src_prepare
+}
+
+src_configure() {
+ python_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_test() {
+ python_foreach_impl autotools-utils_src_test
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+}
diff --git a/dev-python/python-heatclient/Manifest b/dev-python/python-heatclient/Manifest
new file mode 100644
index 00000000000..46f3413d967
--- /dev/null
+++ b/dev-python/python-heatclient/Manifest
@@ -0,0 +1,6 @@
+DIST python-heatclient-0.2.12.tar.gz 99919 SHA256 e9d5b74206b322ce30184a1b132a78b8be1806be85c77361fb72a966c4c48afe SHA512 49d28e63bf9e7c227443cf58c6870900f2fb23d6f4e0457b97cfdf615af01b95c046759c4d763e8c9ab702f5a85fe79925aa19d905bbb2c4e94eea48e4ca066e WHIRLPOOL 712aacc7dae4114cd61e02ab22ff50a61b85ddde35cfcfa26fbe02c46ae63808e0c95a13beb5cec9724e3b0fd3b68970123dc679d6cfb765aa0ec57d5d430c82
+DIST python-heatclient-0.2.9.tar.gz 81470 SHA256 8cc6d99f86529633b8b5d99417358fd7c023223572f190ae3e1da09ff435420f SHA512 05fc3a5ff8e738fdc3ac2c5d8221c9be932467aa9109e1138c4a96053f7e68d8ba77b13f50968f05a37e94b60bd5ff2e798faf0c5b145ae80c2a0a6f7f68313a WHIRLPOOL 1c77ac1329c6f5dc1c207670d5864ea44046d6a0686b12c373ad2a26560999fc0bdc011b8efaf431f9c6f5379d19eb9bb65b68fb08a7297f12ec6e0313ce1846
+DIST python-heatclient-0.3.0.tar.gz 95621 SHA256 c3fe26b69610dcd1540f5ab2c8ae59183c3df09d9ede52a5bb704977345f29ad SHA512 f550e785ce21e1a1ad8dedfb1fc94bdaf4e0d9b5902c05a704b73c72e3e49ac6e35f79acbbc8ac511bca329d5032f796447899dfa737da0f7b8b376e5983153a WHIRLPOOL 9a02d508401600a659f552d2c7b46d7a4c94500514ff3763bd47ecfefa2fcc89cf49b20bbfbdb859a04fe4c719bcbdceb29d15cc793f631c89192a03642a2b3f
+DIST python-heatclient-0.4.0.tar.gz 104613 SHA256 1b71e2bb5c380ac6b2e1f07b48b7b3e82e7364cc43255ed696c795ab5f8d5a1d SHA512 f1235e40d6407fc05f53dfa1592d4f1fa72c10c6aa17fcbb78a7a8bf999cf803f4a42f9f7672f403d336006bdb72f3960d849474c398e592085f1d637a28faed WHIRLPOOL 680af36f92f9674667cf1ad97167248e3b30b4fc828065bd9f2dd7ecef4fd7dcd03729c5d257d8f31ce42184764bcea1d4c4aaee37d53ac63e1e44183c694f84
+DIST python-heatclient-0.5.0.tar.gz 104320 SHA256 b64eadecea1ecab5b69c1f51ddd157d53d218dea1360c201843f28a052cb3dbf SHA512 97ac1bb3ef1ca82730650e42dffa5dec2f1f37fac63c38a8c2de87b2ccf772b905749f4e9211831ec92871ebaee57a5094a4a1005e7391823a6dee27b0592dd8 WHIRLPOOL fc90b7a21d70c9044cdb39d626584192dcc347f531f0dc83b5b349d8731b7e3e0278586f5dcec32d9be10d02a6a6cb53175c6088fc43857b9b874a979da77de2
+DIST python-heatclient-0.6.0.tar.gz 109553 SHA256 fe293e11d145d86b92649063eb50d1f599dab88a327707d76a72b12022b77bbb SHA512 04b8836c212a8825b6ffb839715df881189a08e3c587762a661744bdd730d6aaf99c9e3497642011b0696692c856e12131bc8d1ff6a69cb88ae5b48aa3872b39 WHIRLPOOL 683497a0363ce636499af5866838242ef1fc2769c54d5ddf32e8dcfd5d0d2f3b648d46c0bb59c14bf1043875bf65ec99b090add1a289c9c95d383ce5ba918e3f
diff --git a/dev-python/python-heatclient/metadata.xml b/dev-python/python-heatclient/metadata.xml
new file mode 100644
index 00000000000..e202b403f74
--- /dev/null
+++ b/dev-python/python-heatclient/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client library for Heat built on the Heat orchestration API
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-heatclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-heatclient/python-heatclient-0.2.12.ebuild b/dev-python/python-heatclient/python-heatclient-0.2.12.ebuild
new file mode 100644
index 00000000000..92123614f5e
--- /dev/null
+++ b/dev-python/python-heatclient/python-heatclient-0.2.12.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+DISTUTILS_IN_SOURCE_BUILD=TRUE # Needed due to versioned test patches
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Orchestration API Client Library"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+# NOTE: doc is broken due to pbr requiring a git checkout
+
+# NOTE: dev-python/discover is not used in tests
+# dev-python/discover[${PYTHON_USEDEP}]
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+CRDEPEND="
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ ${CRDEPEND}
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/httpretty-0.8.0[${PYTHON_USEDEP}]
+ !~dev-python/httpretty-0.8.1[${PYTHON_USEDEP}]
+ !~dev-python/httpretty-0.8.2[${PYTHON_USEDEP}]
+ !~dev-python/httpretty-0.8.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ ${CRDEPEND}
+"
+
+python_test() {
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1313257
+ ebegin 'patching heatclient/tests/test_common_http.py'
+ sed \
+ -e '651,/def/ d' \
+ -i heatclient/tests/test_common_http.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375035
+ ebegin 'patching heatclient/tests/test_shell.py'
+ sed \
+ -e '1953,/def|@/ d' \
+ -i heatclient/tests/test_shell.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ if [[ "${EPYTHON}" = "python3.3" ]]; then
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375047
+ ebegin 'patching heatclient/tests/test_events.py'
+ sed \
+ -e '68,/def/ d' \
+ -i heatclient/tests/test_events.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375049
+ ebegin 'patching heatclient/tests/test_events.py'
+ sed \
+ -e '111,/def/ d' \
+ -e '53,/def/ d' \
+ -i heatclient/tests/test_events.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ ebegin 'patching heatclient/tests/test_resources.py'
+ sed \
+ -e '69,/def/ d' \
+ -i heatclient/tests/test_resources.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375051
+ ebegin 'patching heatclient/tests/test_template_utils.py'
+ sed \
+ -e '231,/def/ d' \
+ -i heatclient/tests/test_template_utils.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+ fi
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/python-heatclient/python-heatclient-0.2.9.ebuild b/dev-python/python-heatclient/python-heatclient-0.2.9.ebuild
new file mode 100644
index 00000000000..d50d83f4cd1
--- /dev/null
+++ b/dev-python/python-heatclient/python-heatclient-0.2.9.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+RESTRICT="test"
+
+DESCRIPTION="This is a client library for Heat built on the Heat orchestration
+API."
+HOMEPAGE="https://github.com/openstack/python-heatclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && sphinx-build -b html -c doc/source/ doc/source/ doc/source/html
+}
+
+python_test() {
+ "${PYTHON}" setup.py testr --coverage
+ "${PYTHON}" setup.py testr --slowest
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-heatclient/python-heatclient-0.3.0.ebuild b/dev-python/python-heatclient/python-heatclient-0.3.0.ebuild
new file mode 100644
index 00000000000..62982fb639b
--- /dev/null
+++ b/dev-python/python-heatclient/python-heatclient-0.3.0.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Orchestration API Client Library"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1313257
+ ebegin 'patching heatclient/tests/test_common_http.py'
+ sed \
+ -e '645,/def/ d' \
+ -i heatclient/tests/test_common_http.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375035
+ ebegin 'patching heatclient/tests/test_shell.py'
+ sed \
+ -e '2116,/def|@/ d' \
+ -i heatclient/tests/test_shell.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init
+ testr run || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-heatclient/python-heatclient-0.4.0.ebuild b/dev-python/python-heatclient/python-heatclient-0.4.0.ebuild
new file mode 100644
index 00000000000..34ca3d3e6d5
--- /dev/null
+++ b/dev-python/python-heatclient/python-heatclient-0.4.0.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Orchestration API Client Library"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-swiftclient-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1313257
+ ebegin 'patching heatclient/tests/test_common_http.py'
+ sed \
+ -e '645,/def/ d' \
+ -i heatclient/tests/test_common_http.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375035
+ ebegin 'patching heatclient/tests/test_shell.py'
+ sed \
+ -e '2116,/def|@/ d' \
+ -i heatclient/tests/test_shell.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init
+ testr run || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-heatclient/python-heatclient-0.5.0.ebuild b/dev-python/python-heatclient/python-heatclient-0.5.0.ebuild
new file mode 100644
index 00000000000..12879985784
--- /dev/null
+++ b/dev-python/python-heatclient/python-heatclient-0.5.0.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Orchestration API Client Library"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-swiftclient-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1313257
+ ebegin 'patching heatclient/tests/test_common_http.py'
+ sed \
+ -e '645,/def/ d' \
+ -i heatclient/tests/test_common_http.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375035
+ ebegin 'patching heatclient/tests/test_shell.py'
+ sed \
+ -e '2116,/def|@/ d' \
+ -i heatclient/tests/test_shell.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init
+ testr run || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-heatclient/python-heatclient-0.6.0.ebuild b/dev-python/python-heatclient/python-heatclient-0.6.0.ebuild
new file mode 100644
index 00000000000..04018403e4d
--- /dev/null
+++ b/dev-python/python-heatclient/python-heatclient-0.6.0.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Orchestration API Client Library"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/python-swiftclient-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1313257
+ ebegin 'patching heatclient/tests/test_common_http.py'
+ sed \
+ -e '645,/def/ d' \
+ -i heatclient/tests/test_common_http.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # BUG: https://bugs.launchpad.net/python-heatclient/+bug/1375035
+ ebegin 'patching heatclient/tests/test_shell.py'
+ sed \
+ -e '2116,/def|@/ d' \
+ -i heatclient/tests/test_shell.py
+ STATUS=${?}
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init
+ testr run || die "testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-iptables/Manifest b/dev-python/python-iptables/Manifest
new file mode 100644
index 00000000000..b1bf9aa6356
--- /dev/null
+++ b/dev-python/python-iptables/Manifest
@@ -0,0 +1,2 @@
+DIST python-iptables-0.8.0.tar.gz 38815 SHA256 7a80507fafdfe0448f604678e127b7dc6236dc7fe61771b3b56fd8199464ac46 SHA512 8cc3a88f1f101614597ad6e7712dd229e08b9d5fb1fc0383142746faad7f9e265ccdb6d036948bbdbf39c9021250ab98e7de36c7dc78e231f581d783431f5510 WHIRLPOOL 36ab036e4a30be4006c00bc605855c29382545ab19098af49abeb2eca0f91de5cd5608596e4d89b6efd013df58b740d886e2e362e6d0cc4aa7905afe7a7d0e50
+DIST python-iptables-0.9.0.tar.gz 72999 SHA256 80eee356beb3cfbe378a214719c5756bb665f9edfa04cd75e3a32e6e18a1f484 SHA512 5cffc83f496876346faa5b33a45be565fab2da41d25f9793db0788a80cb6835b33f474008febee8002d7af6fb052262881326adf6d69592aa96d750b2f921bd4 WHIRLPOOL 18872e6b7a3016cb2449bb1195fce874dee1d62df2aaa2bbea605f3055bf18e6c298d1dd14da9b1cb34196477470be1cdf60255df5521b734b052a3a88247ea0
diff --git a/dev-python/python-iptables/files/python-iptables-0.2.0-tests.patch b/dev-python/python-iptables/files/python-iptables-0.2.0-tests.patch
new file mode 100644
index 00000000000..fb9d601ceaa
--- /dev/null
+++ b/dev-python/python-iptables/files/python-iptables-0.2.0-tests.patch
@@ -0,0 +1,21 @@
+diff --git a/test.py b/test.py
+index f426612..f598585 100755
+--- a/test.py
++++ b/test.py
+@@ -3,16 +3,6 @@
+
+ import sys
+
+-print "WARNING: this test will manipulate iptables rules."
+-print "Don't do this on a production machine."
+-while True:
+- print "Would you like to continue? y/n",
+- answer = raw_input()
+- if answer in "yYnN" and len(answer) == 1:
+- break
+-if answer in "nN":
+- sys.exit(0)
+-
+ from iptc.test import test_iptc, test_matches, test_targets
+
+ results = [rv for rv in [test_iptc.run_tests(), test_matches.run_tests(),
diff --git a/dev-python/python-iptables/files/python-iptables-0.3.0-conntrack-fixes.patch b/dev-python/python-iptables/files/python-iptables-0.3.0-conntrack-fixes.patch
new file mode 100644
index 00000000000..469fe5d97a6
--- /dev/null
+++ b/dev-python/python-iptables/files/python-iptables-0.3.0-conntrack-fixes.patch
@@ -0,0 +1,182 @@
+diff --git a/iptc/ip4tc.py b/iptc/ip4tc.py
+index 1efeabe..a953f41 100644
+--- a/iptc/ip4tc.py
++++ b/iptc/ip4tc.py
+@@ -460,8 +460,6 @@ class Match(IPTCModule):
+ if self._module.next is not None:
+ self._store_buffer(module)
+
+- self._check_alias(module[0], match)
+-
+ self._match_buf = (ct.c_ubyte * self.size)()
+ if match:
+ ct.memmove(ct.byref(self._match_buf), ct.byref(match), self.size)
+@@ -503,7 +501,11 @@ class Match(IPTCModule):
+ self._buffer.buffer = ct.cast(module, ct.POINTER(ct.c_ubyte))
+
+ def _final_check(self):
+- self._xt.final_check_match(self._module)
++ if self._alias is not None:
++ module = self._alias
++ else:
++ module = self._module
++ self._xt.final_check_match(module)
+
+ def _parse(self, argv, inv, entry):
+ if self._alias is not None:
+@@ -530,6 +532,7 @@ class Match(IPTCModule):
+ self._ptrptr = ct.cast(ct.pointer(self._ptr),
+ ct.POINTER(ct.POINTER(xt_entry_match)))
+ self._module.m = self._ptr
++ self._check_alias(self._module, self._module.m)
+ if self._alias is not None:
+ self._alias.m = self._ptr
+ self._update_name()
+@@ -613,8 +616,6 @@ class Target(IPTCModule):
+ else:
+ self._revision = self._module.revision
+
+- self._check_alias(module[0], target)
+-
+ self._create_buffer(target)
+
+ if self._is_standard_target():
+@@ -673,7 +674,11 @@ class Target(IPTCModule):
+ return False
+
+ def _final_check(self):
+- self._xt.final_check_target(self._module)
++ if self._alias is not None:
++ module = self._alias
++ else:
++ module = self._module
++ self._xt.final_check_target(module)
+
+ def _parse(self, argv, inv, entry):
+ if self._alias is not None:
+@@ -715,6 +720,7 @@ class Target(IPTCModule):
+ self._ptrptr = ct.cast(ct.pointer(self._ptr),
+ ct.POINTER(ct.POINTER(xt_entry_target)))
+ self._module.t = self._ptr
++ self._check_alias(self._module, self._module.t)
+ if self._alias is not None:
+ self._alias.t = self._ptr
+ self._update_name()
+diff --git a/iptc/test/test_matches.py b/iptc/test/test_matches.py
+index 69b0b01..67c37ff 100755
+--- a/iptc/test/test_matches.py
++++ b/iptc/test/test_matches.py
+@@ -298,6 +298,40 @@ class TestXTStateMatch(unittest.TestCase):
+ self.assertEquals(m.state, "RELATED,ESTABLISHED")
+
+
++class TestXTConntrackMatch(unittest.TestCase):
++ def setUp(self):
++ self.rule = iptc.Rule()
++ self.rule.src = "127.0.0.1"
++ self.rule.protocol = "tcp"
++ self.rule.target = iptc.Target(self.rule, "ACCEPT")
++
++ self.match = iptc.Match(self.rule, "conntrack")
++
++ self.chain = iptc.Chain(iptc.Table(iptc.Table.FILTER),
++ "iptc_test_conntrack")
++ self.table = iptc.Table(iptc.Table.FILTER)
++ try:
++ self.chain.flush()
++ self.chain.delete()
++ except:
++ pass
++ self.table.create_chain(self.chain)
++
++ def tearDown(self):
++ self.chain.flush()
++ self.chain.delete()
++ pass
++
++ def test_state(self):
++ self.match.ctstate = "NEW,RELATED"
++ self.rule.add_match(self.match)
++ self.chain.insert_rule(self.rule)
++ rule = self.chain.rules[0]
++ m = rule.matches[0]
++ self.assertTrue(m.name, ["conntrack"])
++ self.assertEquals(m.ctstate, "NEW,RELATED")
++
++
+ def suite():
+ suite_match = unittest.TestLoader().loadTestsFromTestCase(TestMatch)
+ suite_udp = unittest.TestLoader().loadTestsFromTestCase(TestXTUdpMatch)
+@@ -308,9 +342,11 @@ def suite():
+ suite_iprange = unittest.TestLoader().loadTestsFromTestCase(
+ TestIprangeMatch)
+ suite_state = unittest.TestLoader().loadTestsFromTestCase(TestXTStateMatch)
++ suite_conntrack = unittest.TestLoader().loadTestsFromTestCase(
++ TestXTConntrackMatch)
+ return unittest.TestSuite([suite_match, suite_udp, suite_mark,
+ suite_limit, suite_comment, suite_iprange,
+- suite_state])
++ suite_state, suite_conntrack])
+
+
+ def run_tests():
+diff --git a/iptc/test/test_targets.py b/iptc/test/test_targets.py
+index 6d83f5f..32516bd 100755
+--- a/iptc/test/test_targets.py
++++ b/iptc/test/test_targets.py
+@@ -371,6 +371,37 @@ class TestXTNotrackTarget(unittest.TestCase):
+ self.assertTrue(t.name in ["NOTRACK", "CT"])
+
+
++class TestXTCtTarget(unittest.TestCase):
++ def setUp(self):
++ self.rule = iptc.Rule()
++ self.rule.dst = "127.0.0.2"
++ self.rule.protocol = "tcp"
++ self.rule.out_interface = "eth0"
++
++ self.target = iptc.Target(self.rule, "CT")
++ self.target.notrack = "true"
++ self.rule.target = self.target
++
++ self.chain = iptc.Chain(iptc.Table(iptc.Table.RAW),
++ "iptc_test_ct")
++ try:
++ self.chain.flush()
++ self.chain.delete()
++ except:
++ pass
++ iptc.Table(iptc.Table.RAW).create_chain(self.chain)
++
++ def tearDown(self):
++ self.chain.flush()
++ self.chain.delete()
++
++ def test_ct(self):
++ self.chain.insert_rule(self.rule)
++ t = self.chain.rules[0].target
++ self.assertEquals(t.name, "CT")
++ self.assertTrue(t.notrack is not None)
++
++
+ def suite():
+ suites = []
+ suite_target = unittest.TestLoader().loadTestsFromTestCase(TestTarget)
+@@ -383,14 +414,15 @@ def suite():
+ TestIPTMasqueradeTarget)
+ suite_dnat = unittest.TestLoader().loadTestsFromTestCase(
+ TestDnatTarget)
+- suite_conntrack = unittest.TestLoader().loadTestsFromTestCase(
++ suite_notrack = unittest.TestLoader().loadTestsFromTestCase(
+ TestXTNotrackTarget)
++ suite_ct = unittest.TestLoader().loadTestsFromTestCase(TestXTCtTarget)
+ suites.extend([suite_target, suite_cluster, suite_tos])
+ if is_table_available(iptc.Table.NAT):
+ suites.extend([suite_target, suite_cluster, suite_redir, suite_tos,
+ suite_masq, suite_dnat])
+ if is_table_available(iptc.Table.RAW):
+- suites.extend([suite_conntrack])
++ suites.extend([suite_notrack, suite_ct])
+ return unittest.TestSuite(suites)
+
+
diff --git a/dev-python/python-iptables/files/python-iptables-fix-ctypes.patch b/dev-python/python-iptables/files/python-iptables-fix-ctypes.patch
new file mode 100644
index 00000000000..8359bf5b4c0
--- /dev/null
+++ b/dev-python/python-iptables/files/python-iptables-fix-ctypes.patch
@@ -0,0 +1,70 @@
+https://github.com/ldx/python-iptables/pull/59
+
+From 6c30ca04656062bf95a1039d6e4bc7440150b9bc Mon Sep 17 00:00:00 2001
+From: Tim Harder <radhermit@gmail.com>
+Date: Sat, 22 Feb 2014 01:11:40 -0800
+Subject: [PATCH 2/2] Fix return and argument types for various libiptc API
+ calls.
+
+---
+ iptc/ip4tc.py | 6 +++---
+ iptc/ip6tc.py | 6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/iptc/ip4tc.py b/iptc/ip4tc.py
+index a953f41..fd3fc78 100644
+--- a/iptc/ip4tc.py
++++ b/iptc/ip4tc.py
+@@ -103,7 +103,7 @@ _libiptc, _ = find_library("ip4tc", "iptc") # old iptables versions use iptc
+ class iptc(object):
+ """This class contains all libiptc API calls."""
+ iptc_init = _libiptc.iptc_init
+- iptc_init.restype = ct.c_void_p
++ iptc_init.restype = ct.POINTER(ct.c_int)
+ iptc_init.argstype = [ct.c_char_p]
+
+ iptc_free = _libiptc.iptc_free
+@@ -120,11 +120,11 @@ class iptc(object):
+
+ iptc_first_chain = _libiptc.iptc_first_chain
+ iptc_first_chain.restype = ct.c_char_p
+- iptc_first_chain.argstype = [ct.c_char_p, ct.c_void_p]
++ iptc_first_chain.argstype = [ct.c_void_p]
+
+ iptc_next_chain = _libiptc.iptc_next_chain
+ iptc_next_chain.restype = ct.c_char_p
+- iptc_next_chain.argstype = [ct.c_char_p, ct.c_void_p]
++ iptc_next_chain.argstype = [ct.c_void_p]
+
+ iptc_is_chain = _libiptc.iptc_is_chain
+ iptc_is_chain.restype = ct.c_int
+diff --git a/iptc/ip6tc.py b/iptc/ip6tc.py
+index dbf034d..10422d8 100644
+--- a/iptc/ip6tc.py
++++ b/iptc/ip6tc.py
+@@ -82,7 +82,7 @@ _libiptc, _ = find_library("ip6tc", "iptc") # old iptables versions use iptc
+ class ip6tc(object):
+ """This class contains all libip6tc API calls."""
+ iptc_init = _libiptc.ip6tc_init
+- iptc_init.restype = ct.c_void_p
++ iptc_init.restype = ct.POINTER(ct.c_int)
+ iptc_init.argstype = [ct.c_char_p]
+
+ iptc_free = _libiptc.ip6tc_free
+@@ -99,11 +99,11 @@ class ip6tc(object):
+
+ iptc_first_chain = _libiptc.ip6tc_first_chain
+ iptc_first_chain.restype = ct.c_char_p
+- iptc_first_chain.argstype = [ct.c_char_p, ct.c_void_p]
++ iptc_first_chain.argstype = [ct.c_void_p]
+
+ iptc_next_chain = _libiptc.ip6tc_next_chain
+ iptc_next_chain.restype = ct.c_char_p
+- iptc_next_chain.argstype = [ct.c_char_p, ct.c_void_p]
++ iptc_next_chain.argstype = [ct.c_void_p]
+
+ iptc_is_chain = _libiptc.ip6tc_is_chain
+ iptc_is_chain.restype = ct.c_int
+--
+1.9.0
+
diff --git a/dev-python/python-iptables/metadata.xml b/dev-python/python-iptables/metadata.xml
new file mode 100644
index 00000000000..a46ccb914a0
--- /dev/null
+++ b/dev-python/python-iptables/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Python Bindings for IPtables: Iptables is the tool that is used to manage netfilter,
+ the standard packet filtering and manipulation framework under Linux. As the iptables
+ manpage puts it: Iptables is used to set up, maintain, and inspect the tables of IPv4
+ packet filter rules in the Linux kernel. Several different tables may be defined.
+ Each table contains a number of built-in chains and may also contain user-defined
+ chains. Each chain is a list of rules which can match a set of packets. Each rule
+ specifies what to do with a packet that matches. This is called a target, which may be
+ a jump to a user-defined chain in the same table. Python-iptables provides python
+ bindings to iptables under Linux. Interoperability with iptables is achieved via
+ using the iptables C libraries (libiptc, libxtables, and the iptables extensions), not
+ calling the iptables binary and parsing its output.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-iptables</remote-id>
+ <remote-id type="github">ldx/python-iptables</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-iptables/python-iptables-0.8.0.ebuild b/dev-python/python-iptables/python-iptables-0.8.0.ebuild
new file mode 100644
index 00000000000..b2929e7c7fe
--- /dev/null
+++ b/dev-python/python-iptables/python-iptables-0.8.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for iptables"
+HOMEPAGE="https://github.com/ldx/python-iptables"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="net-firewall/iptables
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+# tests manipulate live iptables rules, so disable them by default
+RESTRICT=test
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ ${PYTHON} test.py || die "tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-iptables/python-iptables-0.9.0.ebuild b/dev-python/python-iptables/python-iptables-0.9.0.ebuild
new file mode 100644
index 00000000000..3c30722be9a
--- /dev/null
+++ b/dev-python/python-iptables/python-iptables-0.9.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for iptables"
+HOMEPAGE="https://github.com/ldx/python-iptables"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="net-firewall/iptables
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+# tests manipulate live iptables rules, so disable them by default
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -e "s/, 'sphinx.ext.intersphinx'//" -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-ironicclient/Manifest b/dev-python/python-ironicclient/Manifest
new file mode 100644
index 00000000000..cb47a128d41
--- /dev/null
+++ b/dev-python/python-ironicclient/Manifest
@@ -0,0 +1 @@
+DIST python-ironicclient-0.5.1.tar.gz 85524 SHA256 91dca5039ca06d6dcd74a132a261db1d85ebf6dcdfb9d7cee4efff657f6729d6 SHA512 787052c79341f44df1520c1f94a59574cb2a6dd5ecbcd23c5ced6dcec75decb310f082fdc5dc6d0ac7c86a8007fcd72ebeb0c25ca940e4e4a4eb635b661c10b8 WHIRLPOOL 4e00b4733814ce415a5dbe551f48e0367f5fd18733c3ecb171b06321c4145330949df2627b51797a2c4f8eaf094379d58e7c329bd322925c752a46394e89cc2f
diff --git a/dev-python/python-ironicclient/metadata.xml b/dev-python/python-ironicclient/metadata.xml
new file mode 100644
index 00000000000..c3b4ea85ba5
--- /dev/null
+++ b/dev-python/python-ironicclient/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ API bindings and client for the OpenStack bare metal provisioning service.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-ironicclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-ironicclient/python-ironicclient-0.5.1.ebuild b/dev-python/python-ironicclient/python-ironicclient-0.5.1.ebuild
new file mode 100644
index 00000000000..6594a128281
--- /dev/null
+++ b/dev-python/python-ironicclient/python-ironicclient-0.5.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the Ironic API"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+CDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+CRDEPEND="
+ >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ ${CRDEPEND}
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/httpretty-0.8.4[${PYTHON_USEDEP}]
+ !~dev-python/httpretty-0.8.7[${PYTHON_USEDEP}]
+ !~dev-python/httpretty-0.8.8[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ ${CRDEPEND}
+"
+
+python_test() {
+ #rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/python-iwscan/Manifest b/dev-python/python-iwscan/Manifest
new file mode 100644
index 00000000000..6bc6263a712
--- /dev/null
+++ b/dev-python/python-iwscan/Manifest
@@ -0,0 +1 @@
+DIST python-iwscan-20080402.tar.bz2 16891 SHA256 1e534508597bd86cfab3f3d7b5e1f6d924812f374e3e26c1546c4ecbb07f8b8c SHA512 9e9d5e1b2cc491879a4f8a216044f46253820c6c8f30904a1867f758f6d158a9270c9c70a91f22a80f15fbe0446d786869104c5dc5d6bfcab470a79478f533d2 WHIRLPOOL de4a05b688e160ef721de71304a44731e5d28e803c27619d40a5c467674dcc2c5413c80ed5b97e1a739f6e3a41ec69b26ae3b2d71f17b3d5d088906d1481077d
diff --git a/dev-python/python-iwscan/files/python-iwscan-20080402-wireless-tools-30.patch b/dev-python/python-iwscan/files/python-iwscan-20080402-wireless-tools-30.patch
new file mode 100644
index 00000000000..16a9dce1858
--- /dev/null
+++ b/dev-python/python-iwscan/files/python-iwscan-20080402-wireless-tools-30.patch
@@ -0,0 +1,14 @@
+--- pyiwscan.c
++++ pyiwscan.c
+@@ -13,6 +13,11 @@
+ #include <structmember.h>
+ #include <iwlib.h>
+
++/* PROC_NET_WIRELESS is defined in iwlib-private.h since wireless-tools-30_pre9 */
++#ifndef PROC_NET_WIRELESS
++#define PROC_NET_WIRELESS "/proc/net/wireless"
++#endif
++
+ #define IWSCAN_VERSION_MAJOR 0
+ #define IWSCAN_VERSION_MINOR 7
+ #define IWSCAN_VERSION_MICRO 0
diff --git a/dev-python/python-iwscan/metadata.xml b/dev-python/python-iwscan/metadata.xml
new file mode 100644
index 00000000000..b193248853b
--- /dev/null
+++ b/dev-python/python-iwscan/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<maintainer>
+ <email>tomka@gentoo.org</email>
+ <name>Thomas Kahle</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-iwscan/python-iwscan-20080402-r1.ebuild b/dev-python/python-iwscan/python-iwscan-20080402-r1.ebuild
new file mode 100644
index 00000000000..c111ce46fdc
--- /dev/null
+++ b/dev-python/python-iwscan/python-iwscan-20080402-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="A Python extension for iwscan access"
+HOMEPAGE="http://projects.otaku42.de/browser/python-iwscan"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
+
+DEPEND="net-wireless/wireless-tools"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-wireless-tools-30.patch"
+)
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
diff --git a/dev-python/python-keystoneclient/Manifest b/dev-python/python-keystoneclient/Manifest
new file mode 100644
index 00000000000..bfc53e15ed1
--- /dev/null
+++ b/dev-python/python-keystoneclient/Manifest
@@ -0,0 +1,7 @@
+DIST python-keystoneclient-1.0.0.tar.gz 314308 SHA256 6d960d2196efc7a181519a77f757a27ceeeac71f41f624318ae7f1088d2e6db4 SHA512 331d1f634c06f142628c6c641e49a75ca721eb6a37e11827b12db293eeef3e39e9565b38db27d9e39464ef80f5a6d1da2b4e0365dc2eba2b22f63abe0b2992fc WHIRLPOOL abd1173e4caf31ffdef01e7a5f13869dcea4d8c053805ec995b675a46350f2c2a8d5c6d692127a048690b018c3785dc005d6c752df86277dc04873a4daa19525
+DIST python-keystoneclient-1.1.1.tar.gz 324552 SHA256 60fe8347f2a30a2e22f7a8cba9aed5c6f4a2ee78955d0a1cfdcd529a12ff9a05 SHA512 0dd4f346b2a9a434213f7d0cf971b2d156b25b66c8fa1b5213861158cc928c30f9328753f4ea63ee2f46a331db7281bbc98d0cc6d06fdb0204e5e2bb0a9d384d WHIRLPOOL 2a778d5debfd59bac5e0a0992473dac695765b8aec6d687087cc173b43a691a60424a8a054a2e9ca292898ac40dc9a1c55bfd15b76043e98762e4aa07e46c338
+DIST python-keystoneclient-1.3.1.tar.gz 338187 SHA256 8a421dbdf01251119164bf6baa0ef78b261e5dd4d3508748e47b77d7652e7e92 SHA512 d11825b717d0aeec67d4dfb0382173ee834fe3dea2097b8ff9505b86bb08a5579d6fe87509d65022d4436a3a1b4d20f2a877ece3160b53979999495b77df0f08 WHIRLPOOL 9aa0af722f56eb4d98d7efb8a35b1db95207970fba0b32496a9ae4593a16471f976efe1e9bb3690106ec0f5a76b5a744e9177cc7c03d9ffe9ed54111e3bb138c
+DIST python-keystoneclient-1.3.2.tar.gz 342434 SHA256 1b2fd5ceeefd8d75ee749acd2c3dd8805c833c89828075b814392069cd5ae1eb SHA512 4cd986c42256fbc366b81c07ab637fe81358dde530a8e9a5b3f59f4deef5d56fb1799fc82d35a3f04d3e3b810c94bfc21235e93a77c925d235322aeaa20e420c WHIRLPOOL 65b776c928126f92108c1585658a10b89e6563ff8e71f8f249fdb86e11b29811de12b17ddddb39845d66ff9533ae44d93148bd811d1e31577092c3b598348c03
+DIST python-keystoneclient-1.4.0.tar.gz 347743 SHA256 f525fc2431dc3eb863490d4d026d4dfb24e3b5a57496557cb6b5e7ebe9a7f9b0 SHA512 0a044235b5c9da2c9854e5e612ce1ae1c859119f661c226d8da53879b52d3e484d481a57e5daa6b1cf3e4f65ac1d47a4c24d720fe450b791f5752a44906d53d5 WHIRLPOOL bdc7c07fbc625c15baf12278d00c75ee40b3d240e62833d818fa9085a960d75d62a681b5e8965d5c968b0d1ed4bb21eddb29c141cf7100f2af86cae9d2e9834e
+DIST python-keystoneclient-1.5.0.tar.gz 344611 SHA256 7e2da00b5f65b60a84b5891b8070a5e3ff12f76da8e6be23cc4d97287325cff7 SHA512 26bdda147549b3ca9c46aff20451c5b9ad7eea6b39eea8f5cf4b682c2f62eebfba64cfa82569993979299c7af20e0fa9652db5fbd51969dc97fe744cb1d0452d WHIRLPOOL 2fa31b1c05cb7c9dfa01302878edb470c36ebd6c65cd6bc9deeb8f87228e8125c1fa3a395df22d68d51fb411ca37deb5b35dac1df4b828ba867d3c52c53e45a2
+DIST python-keystoneclient-1.6.0.tar.gz 346719 SHA256 45ac3b13b8b63ab62cb3fbfcaf46a2241d8053dfe17961db911c45c1f23d06ff SHA512 72447f53afb1b32285077865511cc5a5fa472d27d04b88570eee5cae9a8ed689e7ebe65ab5576ce170b89bb3be3cf9cfa4e8cc79d5337659f93479a37ec09659 WHIRLPOOL 8dff45331be9267f2a1935008c5b2d5391ff2698060619ab0b1dc3036d21d8dae1cf226b750e83314512e0626d569149d85dea68781c7a9e39663f1bd7b34e18
diff --git a/dev-python/python-keystoneclient/files/keystoneclient-1.0.0-cve-2015-1852.patch b/dev-python/python-keystoneclient/files/keystoneclient-1.0.0-cve-2015-1852.patch
new file mode 100644
index 00000000000..4b278dfec03
--- /dev/null
+++ b/dev-python/python-keystoneclient/files/keystoneclient-1.0.0-cve-2015-1852.patch
@@ -0,0 +1,63 @@
+diff --git a/keystoneclient/middleware/s3_token.py b/keystoneclient/middleware/s3_token.py
+index b27b9ce..4ced7a7 100644
+--- a/keystoneclient/middleware/s3_token.py
++++ b/keystoneclient/middleware/s3_token.py
+@@ -34,6 +34,7 @@ This WSGI component:
+ import logging
+
+ from oslo.serialization import jsonutils
++from oslo_utils import strutils
+ import requests
+ import six
+ from six.moves import urllib
+@@ -116,7 +117,7 @@ class S3Token(object):
+ self.request_uri = '%s://%s:%s' % (auth_protocol, auth_host, auth_port)
+
+ # SSL
+- insecure = conf.get('insecure', False)
++ insecure = strutils.bool_from_string(conf.get('insecure', False))
+ cert_file = conf.get('certfile')
+ key_file = conf.get('keyfile')
+
+diff --git a/keystoneclient/tests/test_s3_token_middleware.py b/keystoneclient/tests/test_s3_token_middleware.py
+index ab77b79..91c3e81 100644
+--- a/keystoneclient/tests/test_s3_token_middleware.py
++++ b/keystoneclient/tests/test_s3_token_middleware.py
+@@ -124,7 +124,7 @@ class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):
+ @mock.patch.object(requests, 'post')
+ def test_insecure(self, MOCK_REQUEST):
+ self.middleware = (
+- s3_token.filter_factory({'insecure': True})(FakeApp()))
++ s3_token.filter_factory({'insecure': 'True'})(FakeApp()))
+
+ text_return_value = jsonutils.dumps(GOOD_RESPONSE)
+ if six.PY3:
+@@ -142,6 +142,28 @@ class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):
+ mock_args, mock_kwargs = MOCK_REQUEST.call_args
+ self.assertIs(mock_kwargs['verify'], False)
+
++ def test_insecure_option(self):
++ # insecure is passed as a string.
++
++ # Some non-secure values.
++ true_values = ['true', 'True', '1', 'yes']
++ for val in true_values:
++ config = {'insecure': val, 'certfile': 'false_ind'}
++ middleware = s3_token.filter_factory(config)(FakeApp())
++ self.assertIs(False, middleware.verify)
++
++ # Some "secure" values, including unexpected value.
++ false_values = ['false', 'False', '0', 'no', 'someweirdvalue']
++ for val in false_values:
++ config = {'insecure': val, 'certfile': 'false_ind'}
++ middleware = s3_token.filter_factory(config)(FakeApp())
++ self.assertEqual('false_ind', middleware.verify)
++
++ # Default is secure.
++ config = {'certfile': 'false_ind'}
++ middleware = s3_token.filter_factory(config)(FakeApp())
++ self.assertIs('false_ind', middleware.verify)
++
+
+ class S3TokenMiddlewareTestBad(S3TokenMiddlewareTestBase):
+ def setUp(self):
diff --git a/dev-python/python-keystoneclient/metadata.xml b/dev-python/python-keystoneclient/metadata.xml
new file mode 100644
index 00000000000..861406253ce
--- /dev/null
+++ b/dev-python/python-keystoneclient/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A client for the OpenStack Keystone API.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-keystoneclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.0.0-r1.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..9ee41aa9054
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.0.0-r1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="https://github.com/openstack/python-keystoneclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ ${TCDEPEND}
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+"${FILESDIR}/keystoneclient-1.0.0-cve-2015-1852.patch"
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.1.1.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.1.1.ebuild
new file mode 100644
index 00000000000..8fb59066b3d
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.1.1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="https://github.com/openstack/python-keystoneclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+CDEPEND="
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+"
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ ${TCDEPEND}
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+"${FILESDIR}/keystoneclient-1.0.0-cve-2015-1852.patch"
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.3.1.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.3.1.ebuild
new file mode 100644
index 00000000000..f18e2c985de
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.3.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ ${TCDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+"
+PATCHES=(
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.3.2.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.3.2.ebuild
new file mode 100644
index 00000000000..acb6632369f
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.3.2.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.4.0[${PYTHON_USEDEP}]
+ <dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ ${TCDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/stevedore-1.4.0[${PYTHON_USEDEP}]
+"
+PATCHES=(
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.4.0.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.4.0.ebuild
new file mode 100644
index 00000000000..a7880a6c27c
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.4.0.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ ${TCDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+"
+PATCHES=(
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.5.0.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.5.0.ebuild
new file mode 100644
index 00000000000..48c3e9d286c
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.5.0.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ ${TCDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+"
+PATCHES=(
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.6.0-r1.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.6.0-r1.ebuild
new file mode 100644
index 00000000000..1fba411a332
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.6.0-r1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ ${TCDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+"
+PATCHES=(
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ sed -i '/^argparse/d' requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-1.6.0.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-1.6.0.ebuild
new file mode 100644
index 00000000000..48c3e9d286c
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-1.6.0.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="http://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86 ~x86-linux"
+IUSE="doc examples test"
+
+# Note: blacklist version not in portage:
+#doc? ( !~dev-python/sphinx-1.3_preb1[${PYTHON_USEDEP}] )
+
+TCDEPEND="
+ >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ ${TCDEPEND}
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ ${TCDEPEND}
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+"
+PATCHES=(
+)
+
+python_prepare_all() {
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-ldap/Manifest b/dev-python/python-ldap/Manifest
new file mode 100644
index 00000000000..7c6f3bf95f7
--- /dev/null
+++ b/dev-python/python-ldap/Manifest
@@ -0,0 +1,3 @@
+DIST python-ldap-2.4.15.tar.gz 111597 SHA256 30bcac33ded943557fbafb1b6d9c345deab34d89d63dbcee9e6b59207db11670 SHA512 2e2d5ecc4f96a63465dbc0da3b8a524729cf199f95eb559beeea5466da4fa9667f61aff7e482f73d6581d24477cb4780fccd599619fbb92b2810bdc81f2de310 WHIRLPOOL c3c3135a2b073cc74d2692df0b9d0baaf8353ce253619747fb0626fa34b3f6df8dde184894856b934b63666c413aed81e80f3321893539d1825660a1f75b1be6
+DIST python-ldap-2.4.19.tar.gz 138503 SHA256 02fddb3accbfb54e40ff47a59457e422b253f9fb6cd64bb3851b349295fab048 SHA512 bfa8b87449f03d70d78bf890d1190ef5a153e1b84db97ca4b40465bfba9faedace2a69f4ae1279ef6323c01255f52993cf0e4374bc32d9660a5286dfc7c17b85 WHIRLPOOL 708c6744b41fc4c9dc4473a9ab088016aa722f5b196c080973fedbb07a08dd57f859ddb5d193665349f44d2d08ff9e2f797cfa6af23e34624f1d0a9e21d62d4d
+DIST python-ldap-2.4.20.tar.gz 142355 SHA256 4b8891539a3171d993cf7896b632ff088a4c707ae85ac3c77db1454f7949f3e2 SHA512 d8afe217c18d49b70089bc47bac7c48f57774b78b1dd44ae3a60e669a3df59058d8579b9de64a2349af612db8e3c1ea5bfa5a47148c651cbfa4038dbc58b9ff2 WHIRLPOOL 562993e84f5c41b3aefd808a047d6cf8ea6c4284171f7f0d858d3a7417a67e31b06f283ed557fbad3fde25a4a9d2c049cbce52c0759b94850ea19848e4192f64
diff --git a/dev-python/python-ldap/metadata.xml b/dev-python/python-ldap/metadata.xml
new file mode 100644
index 00000000000..c60eaa2fade
--- /dev/null
+++ b/dev-python/python-ldap/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ <description>Upstream of the python3 port</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-ldap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-ldap/python-ldap-2.4.15.ebuild b/dev-python/python-ldap/python-ldap-2.4.15.ebuild
new file mode 100644
index 00000000000..c6069dd0397
--- /dev/null
+++ b/dev-python/python-ldap/python-ldap-2.4.15.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# setup.py is written only for py2, which suits pypy
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 multilib
+
+DESCRIPTION="Various LDAP-related Python modules"
+HOMEPAGE="http://www.python-ldap.org http://pypi.python.org/pypi/python-ldap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-solaris"
+# doc flag dropped due to absence of the docs
+IUSE="examples sasl ssl"
+
+# If you need support for openldap-2.3.x, please use python-ldap-2.3.9.
+# python team: Please do not remove python-ldap-2.3.9 from the tree.
+# OpenSSL is an optional runtime dep.
+RDEPEND=">net-nds/openldap-2.4.11
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ sasl? ( >=dev-libs/cyrus-sasl-2.1 )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ sed -e "s:^library_dirs =.*:library_dirs = /usr/$(get_libdir) /usr/$(get_libdir)/sasl2:" \
+ -e "s:^include_dirs =.*:include_dirs = ${EPREFIX}/usr/include ${EPREFIX}/usr/include/sasl:" \
+ -i setup.cfg || die "error fixing setup.cfg"
+
+ local mylibs="ldap"
+ if use sasl; then
+ use ssl && mylibs="ldap_r"
+ mylibs="${mylibs} sasl2"
+ else
+ sed -e 's/HAVE_SASL//g' -i setup.cfg || die
+ fi
+ use ssl && mylibs="${mylibs} ssl crypto"
+ use elibc_glibc && mylibs="${mylibs} resolv"
+
+ sed -e "s:^libs = .*:libs = lber ${mylibs}:" \
+ -i setup.cfg || die "error setting up libs in setup.cfg"
+
+ # set test expected to fail to expectedFailure
+ sed -e "s:^ def test_bad_urls: @unittest.expectedFailure\n def test_bad_urls:" \
+ -i Tests/t_ldapurl.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # XXX: the tests supposedly can start local slapd
+ # but it requires some manual config, it seems.
+
+ "${PYTHON}" Tests/t_ldapurl.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( Demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-ldap/python-ldap-2.4.19.ebuild b/dev-python/python-ldap/python-ldap-2.4.19.ebuild
new file mode 100644
index 00000000000..cd7f3949668
--- /dev/null
+++ b/dev-python/python-ldap/python-ldap-2.4.19.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# setup.py is written only for py2, which suits pypy
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 multilib
+
+DESCRIPTION="Various LDAP-related Python modules"
+HOMEPAGE="http://www.python-ldap.org http://pypi.python.org/pypi/python-ldap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~hppa ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~x86-solaris"
+IUSE="doc examples sasl ssl"
+
+# If you need support for openldap-2.3.x, please use python-ldap-2.3.9.
+# python team: Please do not remove python-ldap-2.3.9 from the tree.
+# OpenSSL is an optional runtime dep.
+# setup.py incorrectly sets setuptools and misses pyasn1 and pyasn1-modules in install_requires
+RDEPEND=">net-nds/openldap-2.4.11
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+ sasl? ( >=dev-libs/cyrus-sasl-2.1 )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e "s:^library_dirs =.*:library_dirs = /usr/$(get_libdir) /usr/$(get_libdir)/sasl2:" \
+ -e "s:^include_dirs =.*:include_dirs = ${EPREFIX}/usr/include ${EPREFIX}/usr/include/sasl:" \
+ -i setup.cfg || die "error fixing setup.cfg"
+
+ local mylibs="ldap"
+ if use sasl; then
+ use ssl && mylibs="ldap_r"
+ mylibs="${mylibs} sasl2"
+ else
+ sed -e 's/HAVE_SASL//g' -i setup.cfg || die
+ fi
+ use ssl && mylibs="${mylibs} ssl crypto"
+ use elibc_glibc && mylibs="${mylibs} resolv"
+
+ sed -e "s:^libs = .*:libs = lber ${mylibs}:" \
+ -i setup.cfg || die "error setting up libs in setup.cfg"
+
+ # set test expected to fail to expectedFailure
+ sed -e "s:^ def test_bad_urls: @unittest.expectedFailure\n def test_bad_urls:" \
+ -i Tests/t_ldapurl.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C Doc html
+}
+
+python_test() {
+ # XXX: the tests supposedly can start local slapd
+ # but it requires some manual config, it seems.
+
+ "${PYTHON}" Tests/t_ldapurl.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( Demo/. )
+ use doc && local HTML_DOCS=( Doc/.build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-ldap/python-ldap-2.4.20.ebuild b/dev-python/python-ldap/python-ldap-2.4.20.ebuild
new file mode 100644
index 00000000000..3ad2d9e764d
--- /dev/null
+++ b/dev-python/python-ldap/python-ldap-2.4.20.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# setup.py is written only for py2, which suits pypy
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 multilib
+
+DESCRIPTION="Various LDAP-related Python modules"
+HOMEPAGE="http://www.python-ldap.org http://pypi.python.org/pypi/python-ldap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-solaris"
+IUSE="doc examples sasl ssl"
+
+# If you need support for openldap-2.3.x, please use python-ldap-2.3.9.
+# python team: Please do not remove python-ldap-2.3.9 from the tree.
+# OpenSSL is an optional runtime dep.
+# setup.py sets setuptools and misses pyasn1 and pyasn1-modules in install_requires
+RDEPEND=">net-nds/openldap-2.4.11
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+ sasl? ( >=dev-libs/cyrus-sasl-2.1 )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e "s:^library_dirs =.*:library_dirs = /usr/$(get_libdir) /usr/$(get_libdir)/sasl2:" \
+ -e "s:^include_dirs =.*:include_dirs = ${EPREFIX}/usr/include ${EPREFIX}/usr/include/sasl:" \
+ -i setup.cfg || die "error fixing setup.cfg"
+
+ local mylibs="ldap"
+ if use sasl; then
+ use ssl && mylibs="ldap_r"
+ mylibs="${mylibs} sasl2"
+ else
+ sed -e 's/HAVE_SASL//g' -i setup.cfg || die
+ fi
+ use ssl && mylibs="${mylibs} ssl crypto"
+ use elibc_glibc && mylibs="${mylibs} resolv"
+
+ sed -e "s:^libs = .*:libs = lber ${mylibs}:" \
+ -i setup.cfg || die "error setting up libs in setup.cfg"
+
+ # set test expected to fail to expectedFailure
+ sed -e "s:^ def test_bad_urls: @unittest.expectedFailure\n def test_bad_urls:" \
+ -i Tests/t_ldapurl.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C Doc html
+}
+
+python_test() {
+ # XXX: the tests supposedly can start local slapd
+ # but it requires some manual config, it seems.
+
+ "${PYTHON}" Tests/t_ldapurl.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( Demo/. )
+ use doc && local HTML_DOCS=( Doc/.build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-ldap/python-ldap-9999.ebuild b/dev-python/python-ldap/python-ldap-9999.ebuild
new file mode 100644
index 00000000000..7711f124ad6
--- /dev/null
+++ b/dev-python/python-ldap/python-ldap-9999.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# pypy: bug #458558 (wrong linker options due to not respecting CC)
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_IN_SOURCE_BUILD=1
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+inherit distutils-r1 git-2 multilib
+
+DESCRIPTION="Various LDAP-related Python modules"
+HOMEPAGE="http://www.python-ldap.org http://pypi.python.org/pypi/python-ldap"
+EGIT_REPO_URI="https://github.com/xmw/python-ldap.git"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="doc examples sasl ssl"
+
+# If you need support for openldap-2.3.x, please use python-ldap-2.3.9.
+# python team: Please do not remove python-ldap-2.3.9 from the tree.
+RDEPEND=">=net-nds/openldap-2.4
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ sasl? ( >=dev-libs/cyrus-sasl-2.1 )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e "s:^library_dirs =.*:library_dirs = /usr/$(get_libdir) /usr/$(get_libdir)/sasl2:" \
+ -e "s:^include_dirs =.*:include_dirs = ${EPREFIX}/usr/include ${EPREFIX}/usr/include/sasl:" \
+ -i setup.cfg || die "error fixing setup.cfg"
+
+ local mylibs="ldap"
+ if use sasl; then
+ use ssl && mylibs="ldap_r"
+ mylibs="${mylibs} sasl2"
+ else
+ sed -e 's/HAVE_SASL//g' -i setup.cfg || die
+ fi
+ use ssl && mylibs="${mylibs} ssl crypto"
+ use elibc_glibc && mylibs="${mylibs} resolv"
+
+ sed -e "s:^libs = .*:libs = lber ${mylibs}:" \
+ -i setup.cfg || die "error setting up libs in setup.cfg"
+
+ # set test expected to fail to expectedFailure
+ sed -e "s:^ def test_bad_urls: @unittest.expectedFailure\n def test_bad_urls:" \
+ -i Tests/t_ldapurl.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C Doc html
+}
+
+python_test() {
+ # XXX: the tests supposedly can start local slapd
+ # but it requires some manual config, it seems.
+
+ "${PYTHON}" Tests/t_ldapurl.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( Demo/. )
+ use doc && local HTML_DOCS=( Doc/.build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-levenshtein/Manifest b/dev-python/python-levenshtein/Manifest
new file mode 100644
index 00000000000..ef907fee60d
--- /dev/null
+++ b/dev-python/python-levenshtein/Manifest
@@ -0,0 +1,4 @@
+DIST python-Levenshtein-0.10.2.tar.gz 45023 SHA256 49a3b3c3210157e2070eb46c0713e64f409efc8c9a7520632ddf16f8a9508bed SHA512 a5ad8e0f58f899152166683d4d38fa2df68150743631db282eeb1cfd29d8e3d0ddf83a4543d4322d1f29ff485ebc9d2605d1f25b5adfbad4c62be746812ff65d WHIRLPOOL 420e47c3d5da3ee833423668e6883e005659b16ec433143064498a5e2f85f0cc398a7e6654c5e6857810ff690836a72ed0c1f040d3dc485ab58f8570d91fb22a
+DIST python-Levenshtein-0.11.1.tar.gz 35270 SHA256 7c194ae48457951b42e66188d9315ac28ed43d68ecc995fd82c1975ed1fbdd0e SHA512 335f29253ec7bba8d54881dfe093ac194626cdaad0cc6ed08327917d6187cdfe1fbb3d003744f991587f8dc800aa1d361e3aa0b276b31ecfe7a43d83ea0d660b WHIRLPOOL 34053f03dc123bb60a5a936b56d19cf8238c9c6f443e6643525ea467bd7e9a9bbffbc597481f1426a614077938f98718c0e1e6138f968dced49cc865bc214d7d
+DIST python-Levenshtein-0.11.2.tar.gz 45458 SHA256 c1311c71beb5b6eecea4bba200a626331ef67110357448be47ba1bfe3c4aa305 SHA512 67d701e841c9a846948a1f2c70ea06c6473e3ae1437f73df2a2747d576024889a12e00c4a61e95b6c14826554b1ebaf65375cf5be4f26df3b208568403192bf3 WHIRLPOOL 5acbb305efeebd56ce79256efdef870f5ef92832e0b7f6b5b4d7d569c1e51821def06ac0a9ddfa165211b129f109e1089a3982b004a7a1982c93e5ca09aa2c89
+DIST python-Levenshtein-0.12.0.tar.gz 48617 SHA256 033a11de5e3d19ea25c9302d11224e1a1898fe5abd23c61c7c360c25195e3eb1 SHA512 95df064490970618b003bccbef9071b1a2a3ee4645ac8e851f4205bd4e8123d21ee0ee733adfeec79085faa01ba39902e2a4a26bfb21b70678377579157df4a5 WHIRLPOOL e1e0b50efcbe82d8043e352d0e0f4275bdcad27342f699f8ad4516d5591647af8ea2b9c27395c7a982a77a0c9593ad12cb1bf8a68996c943877752bf681b41e1
diff --git a/dev-python/python-levenshtein/files/genextdoc.py b/dev-python/python-levenshtein/files/genextdoc.py
new file mode 100644
index 00000000000..8692297236d
--- /dev/null
+++ b/dev-python/python-levenshtein/files/genextdoc.py
@@ -0,0 +1,214 @@
+#!/usr/bin/python
+# Simple Python extension module doc generator.
+# @(#) $Id$
+# Written by Yeti <yeti@physics.muni.cz>
+# This program is in the public domain.
+import re, sys, types, inspect
+from cgi import escape as q
+
+args = sys.argv
+args.pop(0)
+if not args: sys.exit(0)
+
+selfcontained = False
+if args[0].startswith('-') and 'selfcontained'.startswith(args[0].strip('-')):
+ selfcontained = True
+ args.pop(0)
+if not args: sys.exit(0)
+modname = args.pop(0)
+plain_docs = args
+
+html_head = """\
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head><title>%s %s</title></head>
+<body>
+"""
+
+html_foot = """\
+</body>
+</html>
+"""
+
+def split_para(doc):
+ p = []
+ for x in doc.split('\n\n'):
+ x = x.strip()
+ if x.find('\n>>>') > -1:
+ h, t = x.split('\n>>>', 1)
+ p.append(h)
+ p.append('>>>' + t)
+ else:
+ p.append(x)
+ return p
+
+def get_doc(members):
+ try: doc = members['__doc__']
+ except KeyError: pass
+ if doc: return doc
+ try: doc = 'Python module %s' % members['__name__']
+ except KeyError: pass
+ if doc: return doc
+ else: return 'A Python module'
+
+def format_synopsis(synopsis, link=False, classname=None):
+ lst = synopsis.split('\n')
+ for i, s in zip(range(len(lst)), lst):
+ m = re.match(r'(?P<func>\w+)(?P<args>.*)', s)
+ args = re.sub(r'([a-zA-Z]\w+)', r'<var>\1</var>', m.group('args'))
+ func = m.group('func')
+ if link:
+ if classname:
+ func = '<a href="#%s-%s">%s</a>' % (classname, func, func)
+ else:
+ func = '<a href="#%s">%s</a>' % (func, func)
+ lst[i] = func + args
+ return '<br/>\n'.join(lst)
+
+def format_para(p):
+ if not p: return ''
+ doc = ''
+ if p.startswith('>>>'): doc += '<pre>\n%s\n</pre>\n' % q(p)
+ else:
+ if not re.search('^- ', p, re.M): doc += '<p>%s</p>\n' % q(p)
+ else:
+ p = re.split('(?m)^- ', p)
+ if p[0]: doc += '<p>%s</p>\n' % q(p[0].strip())
+ del p[0]
+ doc += ('<ul>%s</ul>\n'
+ % '\n'.join(['<li>%s</li>' % q(p.strip()) for p in p]))
+ return doc
+
+def preprocess_routine(name, doc):
+ parts = split_para(doc)
+ if parts: summary = parts.pop(0)
+ else: summary = 'FIXME'
+ if parts and re.match(r'\w+\(.*\)', parts[0]): synopsis = parts.pop(0)
+ else: synopsis = name + '()'
+ return {'synopsis': synopsis, 'summary': summary, 'details': parts}
+
+def analyse(obj):
+ members = obj.__dict__
+ if inspect.isclass(obj):
+ main_doc = preprocess_routine(obj.__name__, get_doc(members))
+ bases = [x.__name__ for x in obj.__bases__]
+ else:
+ main_doc = split_para(get_doc(members))
+ bases = []
+ routines = {}
+ classes = {}
+ data = {}
+ for name, m in members.items():
+ if name.startswith('__'): continue
+ try:
+ mro = list(inspect.getmro(m))
+ if mro[0] != m: continue
+ except AttributeError: pass
+ if inspect.isroutine(m):
+ try: doc = m.__doc__
+ except KeyError: pass
+ if not doc: doc = 'FIXME'
+ routines[name] = preprocess_routine(name, doc)
+ continue
+ if inspect.isclass(m):
+ classes[name] = analyse(m)
+ continue
+ t = type(m)
+ if t == types.IntType or t == types.StringType:
+ data[name] = repr(m)
+ else:
+ data[name] = m.__doc__
+ return {'name': obj.__name__, 'doc': main_doc, 'routines': routines,
+ 'classes': classes, 'data': data, 'bases': bases}
+
+def format(tree, level, prefix=''):
+ name = tree['name']
+ if prefix: fullname = '%s-%s' % (prefix, name)
+ else: fullname = name
+ ##### Main doc
+ doc = []
+ if level > 1:
+ doc = ['<h%d id="%s">' % (level, fullname)]
+ try: doc.append(format_synopsis(tree['doc']['synopsis']))
+ except TypeError:
+ doc.append(name)
+ doc.append('</h%d>\n' % level)
+ if tree.has_key('bases'):
+ doc.append('<p>Bases: %s.</p>\n' % ', '.join(tree['bases']))
+ try: lst = [tree['doc']['summary']] + tree['doc']['details']
+ except TypeError: lst = tree['doc']
+ for p in lst: doc.append(format_para(p))
+ ##### Table of contents
+ routines = tree['routines'].keys()
+ classes = tree['classes'].keys()
+ data = tree['data'].keys()
+ if routines:
+ routines.sort()
+ if level == 1: doc.append('<p><b>Functions:</b></p>\n')
+ else: doc.append('<p><b>Methods:</b></p>\n')
+ doc.append('<ul class="ltoc">\n')
+ for r in routines:
+ synopsis = tree['routines'][r]['synopsis']
+ doc.append('<li>%s</li>\n' % format_synopsis(synopsis, True,
+ fullname))
+ doc.append('</ul>\n')
+ if classes:
+ classes.sort()
+ doc.append('<p><b>Classes:</b></p>\n')
+ doc.append('<ul class="ltoc">\n')
+ for r in classes:
+ synopsis = tree['classes'][r]['doc']['synopsis']
+ doc.append('<li>%s</li>\n' % format_synopsis(synopsis, True,
+ fullname))
+ doc.append('</ul>\n')
+ if data:
+ data.sort()
+ doc.append('<p><b>Data:</b></p>\n')
+ doc.append('<ul class="ltoc">\n')
+ for r in data:
+ doc.append('<li>%s = %s</li>\n' % (r, q(tree['data'][r])))
+ doc.append('</ul>\n')
+ ##### Functions
+ if routines:
+ if level == 1: doc.append('<hr/>\n')
+ doc.append('<dl>\n')
+ for r in routines:
+ doc.append('<dt id="%s-%s">' % (fullname, r))
+ rt = tree['routines'][r]
+ doc.append('%s</dt>\n<dd>' % format_synopsis(rt['synopsis']))
+ for p in [rt['summary']] + rt['details']:
+ doc.append(format_para(p))
+ doc.append('</dd>\n')
+ doc.append('</dl>\n')
+ ##### Classes
+ if classes:
+ for r in classes:
+ doc.append('<hr/>\n')
+ doc.append(format(tree['classes'][r], level+1, fullname))
+ return ''.join(doc)
+
+exec 'import %s as __test__' % modname
+doctree = analyse(__test__)
+document = format(doctree, 1)
+print modname + '.html'
+fh = file(modname + '.html', 'w')
+if selfcontained: fh.write(html_head % (modname, 'module API'))
+fh.write(document)
+if selfcontained: fh.write(html_foot)
+fh.close()
+for f in plain_docs:
+ try: fh = file(f, 'r')
+ except: continue
+ document = fh.read()
+ fh.close()
+ print f + '.xhtml'
+ fh = file(f + '.xhtml', 'w')
+ if selfcontained: fh.write(html_head % (modname, f))
+ fh.write('<h1>%s %s</h1>\n\n' % (modname, f))
+ fh.write('<pre class="main">\n')
+ fh.write(document)
+ fh.write('</pre>\n')
+ if selfcontained: fh.write(html_foot)
+ fh.close()
diff --git a/dev-python/python-levenshtein/metadata.xml b/dev-python/python-levenshtein/metadata.xml
new file mode 100644
index 00000000000..97b5719f4a5
--- /dev/null
+++ b/dev-python/python-levenshtein/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-Levenshtein</remote-id>
+ <remote-id type="github">miohtama/python-Levenshtein</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-levenshtein/python-levenshtein-0.10.2-r1.ebuild b/dev-python/python-levenshtein/python-levenshtein-0.10.2-r1.ebuild
new file mode 100644
index 00000000000..d1b2584fa92
--- /dev/null
+++ b/dev-python/python-levenshtein/python-levenshtein-0.10.2-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="python-Levenshtein"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
+HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
+ http://pypi.python.org/pypi/python-Levenshtein/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ "${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Levenshtein.html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-levenshtein/python-levenshtein-0.11.1.ebuild b/dev-python/python-levenshtein/python-levenshtein-0.11.1.ebuild
new file mode 100644
index 00000000000..104ad8ce757
--- /dev/null
+++ b/dev-python/python-levenshtein/python-levenshtein-0.11.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="python-Levenshtein"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
+HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
+ http://pypi.python.org/pypi/python-Levenshtein/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ "${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Levenshtein.html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-levenshtein/python-levenshtein-0.11.2.ebuild b/dev-python/python-levenshtein/python-levenshtein-0.11.2.ebuild
new file mode 100644
index 00000000000..c4588f37322
--- /dev/null
+++ b/dev-python/python-levenshtein/python-levenshtein-0.11.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="python-Levenshtein"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
+HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
+ http://pypi.python.org/pypi/python-Levenshtein/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ # Cannot assume user has a system py2 or pypy
+ if python_is_python3; then
+ die "The build of Levenshtein.html is not supported by python3"
+ else
+ einfo "Generation of documentation"
+ "${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
+ fi
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Levenshtein.html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-levenshtein/python-levenshtein-0.12.0.ebuild b/dev-python/python-levenshtein/python-levenshtein-0.12.0.ebuild
new file mode 100644
index 00000000000..d44c2a69119
--- /dev/null
+++ b/dev-python/python-levenshtein/python-levenshtein-0.12.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="python-Levenshtein"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
+HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
+ http://pypi.python.org/pypi/python-Levenshtein/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ # Cannot assume user has a system py2 or pypy
+ if python_is_python3; then
+ die "The build of Levenshtein.html is not supported by python3"
+ else
+ einfo "Generation of documentation"
+ "${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
+ fi
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( Levenshtein.html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-linux-procfs/Manifest b/dev-python/python-linux-procfs/Manifest
new file mode 100644
index 00000000000..e63c8dc7d3c
--- /dev/null
+++ b/dev-python/python-linux-procfs/Manifest
@@ -0,0 +1 @@
+DIST python-linux-procfs-0.4.6.tar.xz 52640 SHA256 4ff41302b213ba271ee2e367cb2eed4ac258f7fb3aec3e23de6d6c24fb68e5f2 SHA512 81dc936c76c2b3272dde85148bfa929e13531c43f7aa61da3def7546fd8c2a257b130f8ae100f1d53936d3dfaebb1ef5b52c022d146f3ed7ef00359a24d05b89 WHIRLPOOL 5d1e32fcc6002b3482ab1ed5a0d40be1a2fb73df4c405a6fe0ae0210e4f8d66897f749a48fca7674a596b6ff8ffe454fb9852ae87d4b7d9d04f0e0943ea20679
diff --git a/dev-python/python-linux-procfs/metadata.xml b/dev-python/python-linux-procfs/metadata.xml
new file mode 100644
index 00000000000..5b80fb94c39
--- /dev/null
+++ b/dev-python/python-linux-procfs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>xmw@gentoo.org</email>
+<name>Michael Weber</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-linux-procfs/python-linux-procfs-0.4.6.ebuild b/dev-python/python-linux-procfs/python-linux-procfs-0.4.6.ebuild
new file mode 100644
index 00000000000..89daa4db337
--- /dev/null
+++ b/dev-python/python-linux-procfs/python-linux-procfs-0.4.6.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python classes to extract information from the Linux kernel /proc files"
+HOMEPAGE="https://www.kernel.org/pub/scm/libs/python/python-linux-procfs/
+ https://kernel.googlesource.com/pub/scm/libs/python/python-linux-procfs/python-linux-procfs/"
+SRC_URI="mirror://gentoo/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
diff --git a/dev-python/python-linux-procfs/python-linux-procfs-9999.ebuild b/dev-python/python-linux-procfs/python-linux-procfs-9999.ebuild
new file mode 100644
index 00000000000..4544dbdd95b
--- /dev/null
+++ b/dev-python/python-linux-procfs/python-linux-procfs-9999.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="Python classes to extract information from the Linux kernel /proc files"
+HOMEPAGE="https://www.kernel.org/pub/scm/libs/python/python-linux-procfs/
+ https://kernel.googlesource.com/pub/scm/libs/python/python-linux-procfs/python-linux-procfs/"
+EGIT_REPO_URI="https://www.kernel.org/pub/scm/libs/python/${PN}/${PN}.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
diff --git a/dev-python/python-lzo/Manifest b/dev-python/python-lzo/Manifest
new file mode 100644
index 00000000000..374b3613155
--- /dev/null
+++ b/dev-python/python-lzo/Manifest
@@ -0,0 +1 @@
+DIST python-lzo-1.08.tar.gz 13046 SHA256 2865afe7b995844bf80af94441d1ccf908b0e3aba3eacf5ba602f23e748476c4 SHA512 94b33e3b0e62b9c8a97147507f4516706d25d62c63ea938f0748e520a3e27760f0e3be142cb3e68aea132ae06759c91b3a4dac8e5010cdfab633e6c8d5904d8c WHIRLPOOL 84bcf130df8341ff145d895bc814b58ec2183c15ffedbc345aa6eb89931f22a9c78899c50b7a054beef9d7ca0b0c4be4e5e407a0ee794ee1830e2c6c9e796a31
diff --git a/dev-python/python-lzo/files/lzo2compat.patch b/dev-python/python-lzo/files/lzo2compat.patch
new file mode 100644
index 00000000000..6ce728753df
--- /dev/null
+++ b/dev-python/python-lzo/files/lzo2compat.patch
@@ -0,0 +1,13 @@
+--- setup.py
++++ setup.py
+@@ -24,8 +24,8 @@
+ include_dirs.append(os.path.join(CURL_DIR, "include"))
+ extra_objects.append(os.path.join(CURL_DIR, "lzo.lib"))
+ else:
+- libraries = ["lzo"]
+- ##include_dirs.append("/usr/local/include")
++ libraries = ["lzo2"]
++ include_dirs.append("/usr/include/lzo")
+ ##library_dirs.append("/usr/local/lib")
+ ##runtime_library_dirs.append("/usr/local/lib")
+
diff --git a/dev-python/python-lzo/metadata.xml b/dev-python/python-lzo/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/python-lzo/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-lzo/python-lzo-1.08-r1.ebuild b/dev-python/python-lzo/python-lzo-1.08-r1.ebuild
new file mode 100644
index 00000000000..01540f45a66
--- /dev/null
+++ b/dev-python/python-lzo/python-lzo-1.08-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to lzo"
+HOMEPAGE="http://www.oberhumer.com/opensource/lzo/"
+SRC_URI="http://www.oberhumer.com/opensource/lzo/download/LZO-v1/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-libs/lzo:2"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/lzo2compat.patch" )
+
+python_test() {
+ "${PYTHON}" tests/test.py || die "tests failed"
+}
diff --git a/dev-python/python-magic/Manifest b/dev-python/python-magic/Manifest
new file mode 100644
index 00000000000..09d275ea6a1
--- /dev/null
+++ b/dev-python/python-magic/Manifest
@@ -0,0 +1 @@
+DIST python-magic-0.4.6.tar.gz 3462 SHA256 903d3d3c676e2b1244892954e2bbbe27871a633385a9bfe81f1a81a7032df2fe SHA512 66c3a7a3120ea360422fe422c373a403a21be674f8df213a80ce83b02051cc1f0d0a2aaa7b4d512194e6914d801062036bdfa5155ead350dde154725808944f6 WHIRLPOOL 03fdb881140bdc4cb985fe5854245f067fdfcfa8bf0c8e7d7984ac0708d4978298b69ccb54401038c3c14049ba2e9293db66c48bf025607e139bcf194406fbbe
diff --git a/dev-python/python-magic/metadata.xml b/dev-python/python-magic/metadata.xml
new file mode 100644
index 00000000000..104978c6155
--- /dev/null
+++ b/dev-python/python-magic/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>thev00d00@gentoo.org</email>
+ <name>Ian Whyman</name>
+ </maintainer>
+ <longdescription>Python interface to the libmagic file type identification library.</longdescription>
+ <upstream>
+ <remote-id type="pypi">python-magic</remote-id>
+ <remote-id type="github">ahupp/python-magic</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-magic/python-magic-0.4.6-r1.ebuild b/dev-python/python-magic/python-magic-0.4.6-r1.ebuild
new file mode 100644
index 00000000000..a7a9aeedc0d
--- /dev/null
+++ b/dev-python/python-magic/python-magic-0.4.6-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Access the libmagic file type identification library"
+HOMEPAGE="https://github.com/ahupp/python-magic"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ia64 ~x86"
+IUSE=""
+
+DEPEND="sys-apps/file[-python]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/python-memcached/Manifest b/dev-python/python-memcached/Manifest
new file mode 100644
index 00000000000..47088feccb5
--- /dev/null
+++ b/dev-python/python-memcached/Manifest
@@ -0,0 +1,2 @@
+DIST python-memcached-1.53.tar.gz 35025 SHA256 af04ea031b271a54f085166773e028fe053fc1d9a58cd8b3c3a57945990bfb48 SHA512 33ffd2778025a8e15beddf1660c4b5c9f1ba144adab5c36fd679e15508015c00e3e1185b5cc179cfcfc556b7c3ab44ed9914089e5ce9db66a04d0a658dd38bb3 WHIRLPOOL 81b80a05010eec576ce8eb00ac4c799213bfc82af4dd3d3da138d02337d28dcb5fbefcbdf11e8d9344b307ba8b1ab2a770b8130fce2f732e484f283e2fe85aae
+DIST python-memcached-1.54.tar.gz 36662 SHA256 df21d1431424c512901ecc3cd244039833aebc4bc7d345af403d4abdace20081 SHA512 e66684fba5ac638efef971df14f4049f1aeae1a84a9c530f26560c1150d7b136746daa164754a0e451ee1caf0b24fd856083aa23f42be1bd4e90a6943d9e45ad WHIRLPOOL a2d1c60fba41002c03718a75659ff1c3944e32b3c900643af2ed227e6280af2635f068f27923ed1722ae1407cd3a1e9696e6c628e4898aaf73451105846c31cb
diff --git a/dev-python/python-memcached/metadata.xml b/dev-python/python-memcached/metadata.xml
new file mode 100644
index 00000000000..9e907d287ba
--- /dev/null
+++ b/dev-python/python-memcached/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<maintainer>
+<email>robbat2@gentoo.org</email>
+<name>Robin H. Johnson</name>
+</maintainer>
+<longdescription lang="en">
+This is a Python based API (implemented in 100% python) for communicating with
+the memcached distributed memory object cache daemon.
+</longdescription>
+</pkgmetadata>
+
diff --git a/dev-python/python-memcached/python-memcached-1.53-r1.ebuild b/dev-python/python-memcached/python-memcached-1.53-r1.ebuild
new file mode 100644
index 00000000000..e5ed00caf6c
--- /dev/null
+++ b/dev-python/python-memcached/python-memcached-1.53-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure python memcached client"
+HOMEPAGE="http://www.tummy.com/Community/software/python-memcached/ http://pypi.python.org/pypi/python-memcached"
+SRC_URI="ftp://ftp.tummy.com/pub/python-memcached/old-releases/${P}.tar.gz"
+
+LICENSE="OSL-2.0"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( net-misc/memcached )"
+RDEPEND=""
+
+# Tests try to connect to memcached via TCP/IP. Please do not re-enable
+# until you get them all to pass properly while using the UNIX socket
+# only and not even trying to connect to memcached over TCP/IP.
+RESTRICT=test
+
+python_test() {
+ # Note: partial. Needs fixing. Stuff like that.
+
+ cd "${TMPDIR}" || die
+
+ local memcached_opts=( -d -P memcached.pid -s memcached.socket )
+ [[ ${EUID} == 0 ]] && memcached_opts+=( -u portage )
+
+ memcached "${memached_opts[@]}" || die
+
+ "${PYTHON}" memcache.py --do-unix || die "Tests fail with ${EPYTHON}"
+
+ kill "$(<memcached.pid)" || die
+ rm memcached.pid || die
+}
diff --git a/dev-python/python-memcached/python-memcached-1.54.ebuild b/dev-python/python-memcached/python-memcached-1.54.ebuild
new file mode 100644
index 00000000000..1551a6424bf
--- /dev/null
+++ b/dev-python/python-memcached/python-memcached-1.54.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure python memcached client"
+HOMEPAGE="http://www.tummy.com/Community/software/python-memcached/ http://pypi.python.org/pypi/python-memcached"
+SRC_URI="ftp://ftp.tummy.com/pub/python-memcached/old-releases/${P}.tar.gz"
+
+LICENSE="OSL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( net-misc/memcached )"
+RDEPEND=""
+
+# Tests try to connect to memcached via TCP/IP. Please do not re-enable
+# until you get them all to pass properly while using the UNIX socket
+# only and not even trying to connect to memcached over TCP/IP.
+RESTRICT=test
+
+python_test() {
+ # Note: partial. Needs fixing. Stuff like that.
+
+ cd "${TMPDIR}" || die
+
+ local memcached_opts=( -d -P memcached.pid -s memcached.socket )
+ [[ ${EUID} == 0 ]] && memcached_opts+=( -u portage )
+
+ memcached "${memached_opts[@]}" || die
+
+ "${PYTHON}" memcache.py --do-unix || die "Tests fail with ${EPYTHON}"
+
+ kill "$(<memcached.pid)" || die
+ rm memcached.pid || die
+}
diff --git a/dev-python/python-mhash/Manifest b/dev-python/python-mhash/Manifest
new file mode 100644
index 00000000000..c0840ef82cf
--- /dev/null
+++ b/dev-python/python-mhash/Manifest
@@ -0,0 +1 @@
+DIST python-mhash-1.4.tar.gz 17309 SHA256 c61973d91e0ca4cc092ae277346cab8b68279b9aa2fa0d49628daf1c7521e7a8 SHA512 bbb81b35cb19d2dc051c4912e75e679dddeeae39c781240bd3506f58cd5627f56e25cfeaffd2a84db231d0043ee31bedcb833e5245222a80774c51f25908d07a WHIRLPOOL 746b77b0d1ea898f3908ad49fb5701740a2761646faff0ab6c2fcf67164ca6270f1f6a0d6b42354666e2bf7cd90d9ccdfe95bc63f5497a8e86c3848551b62805
diff --git a/dev-python/python-mhash/metadata.xml b/dev-python/python-mhash/metadata.xml
new file mode 100644
index 00000000000..fd0052effa6
--- /dev/null
+++ b/dev-python/python-mhash/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">mhash</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-mhash/python-mhash-1.4-r1.ebuild b/dev-python/python-mhash/python-mhash-1.4-r1.ebuild
new file mode 100644
index 00000000000..f0f171e442e
--- /dev/null
+++ b/dev-python/python-mhash/python-mhash-1.4-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Python interface to libmhash"
+HOMEPAGE="http://mhash.sourceforge.net/"
+SRC_URI="mirror://sourceforge/mhash/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 x86 ~ppc-aix ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="app-crypt/mhash"
+RDEPEND="${DEPEND}"
+
+python_configure_all() {
+ # Note: review this when py3 is supported
+ append-flags -fno-strict-aliasing
+}
+
+python_test() {
+ "${PYTHON}" test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-mpd/Manifest b/dev-python/python-mpd/Manifest
new file mode 100644
index 00000000000..835b81c54ef
--- /dev/null
+++ b/dev-python/python-mpd/Manifest
@@ -0,0 +1,2 @@
+DIST python-mpd-0.5.3.tar.gz 40504 SHA256 2809edf6549596609cd11243d2d847e5981d6e7142a6d5639327a56c72541c94 SHA512 9a3ec0787800e08a34c3d888821f3fab5c9e7e90d5afa382afa5ddfe98cb42fbdcadaa4dc5a2df951dbd42aacd7081a2542847509b7350de232ade3e05fbd638 WHIRLPOOL d434170a44e80180048e13c3486f37eb6e7f98164378b1134cfd30713c0a8cbf201b6cad978dbcc7b3de408c1652ae3adb8b4fd5b4b74c2226b1d63afd92bad9
+DIST python-mpd-0.5.4.tar.gz 45542 SHA256 04dbc3b8d90746298e42852c5b7fb5be5e7af2ca03e812059639b6c060d98c53 SHA512 6303d0eb1ef8120777b2c6a020e30bcc70bbe969b63790391c79ff0baf22c5050fce6a6e4cb80a86351cd76c93c92efb06b4fc2dd2087955d979210c511940ee WHIRLPOOL 4044cb6c368a8e7796775fcca6fb5f1b7df3faf8042b40e6d9baa2129dc6c2a2e500aa523a9ecfed28b561532090939cc87e82a0451085cd73b369c714c83f18
diff --git a/dev-python/python-mpd/metadata.xml b/dev-python/python-mpd/metadata.xml
new file mode 100644
index 00000000000..b0b8e66ea5c
--- /dev/null
+++ b/dev-python/python-mpd/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>angelos@gentoo.org</email>
+ <name>Christoph Mende</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">python-mpd</remote-id>
+ <remote-id type="github">Mic92/python-mpd2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-mpd/python-mpd-0.5.3.ebuild b/dev-python/python-mpd/python-mpd-0.5.3.ebuild
new file mode 100644
index 00000000000..3130e1db9d4
--- /dev/null
+++ b/dev-python/python-mpd/python-mpd-0.5.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python MPD client library"
+HOMEPAGE="https://github.com/Mic92/python-mpd2"
+SRC_URI="https://github.com/Mic92/${PN}2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="test? ( dev-python/mock[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( doc/changes.rst doc/topics/{advanced,commands,getting-started,logging}.rst README.rst )
+
+python_test() {
+ "${PYTHON}" test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-mpd/python-mpd-0.5.4.ebuild b/dev-python/python-mpd/python-mpd-0.5.4.ebuild
new file mode 100644
index 00000000000..f546b3c7ecb
--- /dev/null
+++ b/dev-python/python-mpd/python-mpd-0.5.4.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python MPD client library"
+HOMEPAGE="https://github.com/Mic92/python-mpd2"
+SRC_URI="https://github.com/Mic92/${PN}2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="test? ( dev-python/mock[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( doc/changes.rst doc/topics/{advanced,commands,getting-started,logging}.rst README.rst )
+
+python_test() {
+ "${PYTHON}" test.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/python-musicbrainz-ngs/Manifest b/dev-python/python-musicbrainz-ngs/Manifest
new file mode 100644
index 00000000000..89e5f06932e
--- /dev/null
+++ b/dev-python/python-musicbrainz-ngs/Manifest
@@ -0,0 +1 @@
+DIST python-musicbrainz-ngs-0.4.tar.gz 54296 SHA256 9251f370b3c1f85018a1bb90989dfd4f63e2a5457a56380543d93abec9675edb SHA512 a40df9512a6b81932560595699dc460b57d3b755c642d489d6e21b3a680385b245a458ac23fed0a922090079d25bf4f562258e81a855d71398531353577a3f19 WHIRLPOOL 47880ec80bbd96c8c4470dad0b786a98aa8ecbb7b3a3761b1eb13db4ce1437415bef89b4bb5f50dc35a9982efcdd0f876baa2fe488cdc3038ada6b1197aab905
diff --git a/dev-python/python-musicbrainz-ngs/files/python-musicbrainz-ngs-0.4-fix-package_data-placement.patch b/dev-python/python-musicbrainz-ngs/files/python-musicbrainz-ngs-0.4-fix-package_data-placement.patch
new file mode 100644
index 00000000000..8cd904e15eb
--- /dev/null
+++ b/dev-python/python-musicbrainz-ngs/files/python-musicbrainz-ngs-0.4-fix-package_data-placement.patch
@@ -0,0 +1,20 @@
+diff --git a/setup.py b/setup.py
+index 57479d7..4f82328 100644
+--- a/setup.py
++++ b/setup.py
+@@ -52,15 +52,6 @@ setup(
+ author_email="alastair@porter.net.nz",
+ url="https://github.com/alastair/python-musicbrainz-ngs",
+ packages=['musicbrainzngs'],
+- package_data={'musicbrainzngs': ['CHANGES',
+- '../docs/*',
+- '../examples/*',
+- '../test/data/*.xml',
+- '../test/data/artist/*',
+- '../test/data/label/*',
+- '../test/data/release/*',
+- '../test/data/release-group/*',
+- '../test/data/work/*']},
+ cmdclass={'test': test },
+ license='BSD 2-clause',
+ classifiers=[
diff --git a/dev-python/python-musicbrainz-ngs/metadata.xml b/dev-python/python-musicbrainz-ngs/metadata.xml
new file mode 100644
index 00000000000..84c0ebae848
--- /dev/null
+++ b/dev-python/python-musicbrainz-ngs/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+This library implements webservice bindings for the Musicbrainz NGS site, also known as /ws/2.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">alastair/python-musicbrainz-ngs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-musicbrainz-ngs/python-musicbrainz-ngs-0.4.ebuild b/dev-python/python-musicbrainz-ngs/python-musicbrainz-ngs-0.4.ebuild
new file mode 100644
index 00000000000..a5896642506
--- /dev/null
+++ b/dev-python/python-musicbrainz-ngs/python-musicbrainz-ngs-0.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="This library implements webservice bindings for the Musicbrainz NGS site"
+HOMEPAGE="https://github.com/alastair/python-musicbrainz-ngs"
+SRC_URI="https://github.com/alastair/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="BSD-2 ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=(README.md CHANGES)
+use examples && DOCS+=( examples )
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-package_data-placement.patch"
+ )
+
+python_test() {
+ "${PYTHON}" setup.py test || die
+}
diff --git a/dev-python/python-musicbrainz/Manifest b/dev-python/python-musicbrainz/Manifest
new file mode 100644
index 00000000000..eb4328d8dd0
--- /dev/null
+++ b/dev-python/python-musicbrainz/Manifest
@@ -0,0 +1 @@
+DIST python-musicbrainz2-0.7.4.tar.gz 76939 SHA256 728fbe415da98dad5c4d462e56cf106cf50cc28eb6a9f46b8ebabc3029f37fb9 SHA512 dbf72a6f2dfa945398f390f20cbf75a5099ea69075b419ece37f1994c816ae36a62c1bf1d7490110e446b3ce441a7d486002c1e91ea4872aba3f4cc183bbf88e WHIRLPOOL 94568d845ab56939a9c476d16ea76cc7176900bd26d8f47d998597462179ec2a320365986113bd26807d67dec47e74127fd02d90197ae8270ab25b1a42dc0679
diff --git a/dev-python/python-musicbrainz/metadata.xml b/dev-python/python-musicbrainz/metadata.xml
new file mode 100644
index 00000000000..414a5eeccf5
--- /dev/null
+++ b/dev-python/python-musicbrainz/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sound</herd>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-musicbrainz/python-musicbrainz-0.7.4-r1.ebuild b/dev-python/python-musicbrainz/python-musicbrainz-0.7.4-r1.ebuild
new file mode 100644
index 00000000000..955007a0679
--- /dev/null
+++ b/dev-python/python-musicbrainz/python-musicbrainz-0.7.4-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python Bindings for the MusicBrainz XML Web Service"
+HOMEPAGE="http://musicbrainz.org"
+SRC_URI="http://ftp.musicbrainz.org/pub/musicbrainz/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 hppa ppc ppc64 x86"
+IUSE="doc examples"
+
+RDEPEND="media-libs/libdiscid"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/epydoc )"
+# epydoc is called as a script, so no PYTHON_USEDEP
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ esetup.py docs
+ fi
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ dodoc AUTHORS.txt CHANGES.txt README.txt
+
+ if use doc; then
+ dohtml html/*
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc examples/*.txt
+ insinto /usr/share/doc/${PF}/examples
+ doins examples/*.py
+ fi
+}
diff --git a/dev-python/python-nbxmpp/Manifest b/dev-python/python-nbxmpp/Manifest
new file mode 100644
index 00000000000..b3b061140eb
--- /dev/null
+++ b/dev-python/python-nbxmpp/Manifest
@@ -0,0 +1,3 @@
+DIST python-nbxmpp-0.5.1.tar.gz 1514899 SHA256 2988dd2ae4e0dca76c1c7d75b1cac5bc31517a05959eba652ecad6e66604f929 SHA512 2bdcd89004202880b69728e0f5f23506016ce21a10960ff4c23d2d45037563f32441964688c6328d3f8e10cda2f39aeac647aff9fde0676ca27a4c8dde72405e WHIRLPOOL f994f172ba0b50e154ec2d4bda26d574b21639b412b1eb73d3b781bd5f897577a32eb47fc3b276f66bc2ac48b66442a0185bbd9a74f896446838e471ec082a1e
+DIST python-nbxmpp-0.5.2.tar.gz 1508734 SHA256 16d7d2114d9d2c7267d0d8fc5a5c868939fa37031b8d4ca1b11c2a7500bc5160 SHA512 0b8a063c421349c24f822f3da68e6627675731793eee8dad14ae298ed67a981ddaad54fa63a88de6d28f2755da259ee5768a587ed3242e3cb38b4886a069f102 WHIRLPOOL 376e9044a508183f586a5a11e5b5cb41f3065db185b4d89392b1613288f9ede874af1a8f5eafdf64552af8f2d6a2120a931833d5fea4aad5cffcaad380ca9a68
+DIST python-nbxmpp-0.5.3.tar.gz 1514066 SHA256 b79a6b25a2ed7ac792600544778238b27cf6eef6c8eab79b0bfa46df0c3a9935 SHA512 a55ce4c05683d46c12cf085c5436ba544044f0ab71ad7c87dbb25cba02c28109089131b617ff51191d294efe50e80171dd2305ead4052bec921b0ad5ad920e20 WHIRLPOOL 96d078df5972dde5704dac9fcac31c9ae734c06583c381f5d18d43fca26ae790cebc114991e07b916be35a5dcb24d9ccaad9fe69f22b9bd16099d5d248aea487
diff --git a/dev-python/python-nbxmpp/metadata.xml b/dev-python/python-nbxmpp/metadata.xml
new file mode 100644
index 00000000000..6c90e346eb6
--- /dev/null
+++ b/dev-python/python-nbxmpp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-nbxmpp/python-nbxmpp-0.5.1.ebuild b/dev-python/python-nbxmpp/python-nbxmpp-0.5.1.ebuild
new file mode 100644
index 00000000000..f6374a173ac
--- /dev/null
+++ b/dev-python/python-nbxmpp/python-nbxmpp-0.5.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+TAG=6
+
+DESCRIPTION="Python library to use Jabber/XMPP networks in a non-blocking way"
+HOMEPAGE="http://python-nbxmpp.gajim.org/"
+SRC_URI="http://python-nbxmpp.gajim.org/downloads/${TAG} -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="alpha amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+S="${WORKDIR}"/nbxmpp-${PV}
diff --git a/dev-python/python-nbxmpp/python-nbxmpp-0.5.2.ebuild b/dev-python/python-nbxmpp/python-nbxmpp-0.5.2.ebuild
new file mode 100644
index 00000000000..b95facbadff
--- /dev/null
+++ b/dev-python/python-nbxmpp/python-nbxmpp-0.5.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+TAG=7
+
+DESCRIPTION="Python library to use Jabber/XMPP networks in a non-blocking way"
+HOMEPAGE="http://python-nbxmpp.gajim.org/"
+SRC_URI="http://python-nbxmpp.gajim.org/downloads/${TAG} -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+S="${WORKDIR}"/nbxmpp-${PV}
diff --git a/dev-python/python-nbxmpp/python-nbxmpp-0.5.3.ebuild b/dev-python/python-nbxmpp/python-nbxmpp-0.5.3.ebuild
new file mode 100644
index 00000000000..4c9e4ff36af
--- /dev/null
+++ b/dev-python/python-nbxmpp/python-nbxmpp-0.5.3.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+TAG=8
+
+DESCRIPTION="Python library to use Jabber/XMPP networks in a non-blocking way"
+HOMEPAGE="http://python-nbxmpp.gajim.org/"
+SRC_URI="http://python-nbxmpp.gajim.org/downloads/${TAG} -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+S="${WORKDIR}"/nbxmpp-${PV}
diff --git a/dev-python/python-neutronclient/Manifest b/dev-python/python-neutronclient/Manifest
new file mode 100644
index 00000000000..4f7e9f47da3
--- /dev/null
+++ b/dev-python/python-neutronclient/Manifest
@@ -0,0 +1,3 @@
+DIST python-neutronclient-2.3.6.tar.gz 123143 SHA256 f2ae938654497e12218ca3105872a1d55c5ce06e19ed0baa8471ee024e494b1f SHA512 0d894ca7cbafe3c4f12a45e27953abdeedfeff009d96bc6852465089f64ee57f065d87067e79665a401e574100115eec8ae7bb7a220005955be4535c7a44bcb7 WHIRLPOOL d2f3aeda0894bb2f262b7761af6f64ecb80a3c15ef68fd4a6eb257446bf647e96eee5d51f692071ac776ee8c3f26ecb7314d825826070e2ddfbfcd84257e466d
+DIST python-neutronclient-2.4.0.tar.gz 137923 SHA256 4c5c3a79216c682926f75ffd8db5f4338525a643ea02de37df7bf82a1e486b28 SHA512 ce3407ec101ca0fe04da5fbb3d68e3e331824190ed6e93308e56a471b9bf1b0d873f6e7b733d205bccaba6567d87a0a829e442efb6a3b0d96ecee5a1abb5a071 WHIRLPOOL 28b798ed7605264ec6d1e69f4a98ba7eb7e825594dc0ca9d5941d5293810c4f7cd32c680d09be44077ee269f8bd0c8644543c477223d5b55f078f81a0993460f
+DIST python-neutronclient-2.6.0.tar.gz 141675 SHA256 ce72506c0720825edcb0e93b643340e044f1de9235d398fe1c45d851971020df SHA512 a14503ec5374f0edd647a4da5e75f5d6820388b73792a9c944537815e980e87890fea227b2d21e34207958350f6e08a002e6f09af5567e1b4d709e698ea040cb WHIRLPOOL 7d3e6b0baded7de81f2c010376e8b528a73715382a230ffc6790eaae58b54e9cb5765002d2a508953b22a498d5a60947decd0d2884254cb2cc12f7ae1550596f
diff --git a/dev-python/python-neutronclient/metadata.xml b/dev-python/python-neutronclient/metadata.xml
new file mode 100644
index 00000000000..9657ead104e
--- /dev/null
+++ b/dev-python/python-neutronclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ CLI and python client library for OpenStack Neutron
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-neutronclient</remote-id>
+ <remote-id type="launchpad">neutron</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-neutronclient/python-neutronclient-2.3.6.ebuild b/dev-python/python-neutronclient/python-neutronclient-2.3.6.ebuild
new file mode 100644
index 00000000000..8e6f5853d3f
--- /dev/null
+++ b/dev-python/python-neutronclient/python-neutronclient-2.3.6.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Quantum API"
+HOMEPAGE="https://launchpad.net/neutron"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ !~dev-python/pbr-0.7[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/cliff-tablib-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ dev-python/oslotest[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND=">=dev-python/cliff-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ sed -e 's:intersphinx_:#&:' -i doc/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && "${PYTHON}" setup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "tests failed under python2.7"
+ flake8 neutronclient/tests || die "run by flake8 over tests folder yielded error"
+}
+
+python_install() {
+ distutils-r1_python_install
+ #stupid stupid
+ local SITEDIR="${D%/}$(python_get_sitedir)" || die
+ cd "${SITEDIR}" || die
+ local egg=( python_neutronclient*.egg-info )
+ #[[ -f ${egg[0]} ]] || die "python_quantumclient*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die
+ ln -s neutronclient quantumclient || die
+ ln -s neutron quantumclient/quantum || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-neutronclient/python-neutronclient-2.4.0.ebuild b/dev-python/python-neutronclient/python-neutronclient-2.4.0.ebuild
new file mode 100644
index 00000000000..9c7100c30c8
--- /dev/null
+++ b/dev-python/python-neutronclient/python-neutronclient-2.4.0.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Quantum API"
+HOMEPAGE="https://launchpad.net/neutron"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ <dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.4.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND="
+ >=dev-python/cliff-1.10.0[${PYTHON_USEDEP}]
+ <dev-python/cliff-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # built in...
+ sed -i '/argparse/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && "${PYTHON}" setup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "tests failed under python2.7"
+ flake8 neutronclient/tests || die "run by flake8 over tests folder yielded error"
+}
+
+python_install() {
+ distutils-r1_python_install
+ #stupid stupid
+ local SITEDIR="${D%/}$(python_get_sitedir)" || die
+ cd "${SITEDIR}" || die
+ local egg=( python_neutronclient*.egg-info )
+ #[[ -f ${egg[0]} ]] || die "python_quantumclient*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die
+ ln -s neutronclient quantumclient || die
+ ln -s neutron quantumclient/quantum || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-neutronclient/python-neutronclient-2.6.0.ebuild b/dev-python/python-neutronclient/python-neutronclient-2.6.0.ebuild
new file mode 100644
index 00000000000..05247692cb2
--- /dev/null
+++ b/dev-python/python-neutronclient/python-neutronclient-2.6.0.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Quantum API"
+HOMEPAGE="https://launchpad.net/neutron"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/cliff-tablib-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ <dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND="
+ >=dev-python/cliff-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # built in...
+ sed -i '/argparse/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && "${PYTHON}" setup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "tests failed under python2.7"
+ flake8 neutronclient/tests || die "run by flake8 over tests folder yielded error"
+}
+
+python_install() {
+ distutils-r1_python_install
+ #stupid stupid
+ local SITEDIR="${D%/}$(python_get_sitedir)" || die
+ cd "${SITEDIR}" || die
+ local egg=( python_neutronclient*.egg-info )
+ #[[ -f ${egg[0]} ]] || die "python_quantumclient*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die
+ ln -s neutronclient quantumclient || die
+ ln -s neutron quantumclient/quantum || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-novaclient/Manifest b/dev-python/python-novaclient/Manifest
new file mode 100644
index 00000000000..57ee50afca1
--- /dev/null
+++ b/dev-python/python-novaclient/Manifest
@@ -0,0 +1,5 @@
+DIST python-novaclient-2.17.0.tar.gz 230712 SHA256 af6f46890715eb5f4e0d25a714effbbac8da020715f81b1572a301c5e9887197 SHA512 6493aadab5589fb2a02c4a1440cd3f71e6918688ba634a89101c7c7b10aaa6600d8511097b07679f5927746c3463584287a0d7602a47397f169697a944b6a731 WHIRLPOOL d7523bee3ad59e40e021177cd98dff5a91136ea3ee56e2844857dced5b9af7a2bb47c5880d9fe0d35e4de9a022864c88e009b71ca762dea84eb139ff5b99cad1
+DIST python-novaclient-2.20.0.tar.gz 267956 SHA256 73fc8169d58e910340aae1ac5370c3b63a9943f748e2a20e4a1dfd7277525c86 SHA512 a1ff87b46d1520346380bf5396383d84e036892f1568d2eb201eb667837919e1cd8db3267a1ea9f6dfc616de0714374c81465de76b8a9bfec32c4742eeee3807 WHIRLPOOL 1fb3052d3fa457524c65b3de087a7cf7377d274b7a9d924529289e2e2b02992c5182cd1ec5aeef443a81c8e1d08fa1202caf6c5e12e3df40b5011f75df0837f8
+DIST python-novaclient-2.23.0.tar.gz 224690 SHA256 0f82e723b1cef48df75d4b47ece7dd6ee980563628d8cfbef10cd35707193e07 SHA512 38f7aa5747c9cea2e8e98ec91e18ada70c1cd61b0236285a6335cff2a90ff465963d648489fec8c4bb96e55e4c8f2c77ddbae58d42e43807e1d0d70f4bdfe9fe WHIRLPOOL 883b5e04ec39e525fea8c22969a72a8fc334c741b2419e3a4cab9f2f6563286dc6968615b7df7a17d2ab4e17de5d182163eb60682fd69bfa84312629d2ea731d
+DIST python-novaclient-2.23.1.tar.gz 225659 SHA256 8a8b0ace401099518ab852b294f89199a9358085b51ffa0e52dfd05c2332e09e SHA512 a3ac753a4cac5e769cef59e6ae8d182f0abfe03b9ff10fa8a34b1d395fd5a83e92e999af644d1248417700654a6e3b3cb3d9818044c4c258d06304d99738a978 WHIRLPOOL 99a38df0e76f8c18c7bea23154c9b4641fe1b9a2086493a0ee2807c151173be21b8f18b27a48231991cca10ffbc32f2fa26bf265d30baa8c310a654c7557c30d
+DIST python-novaclient-2.25.0.tar.gz 228156 SHA256 433e314223218031e7ea6e71baa54c1b13485d47fbb128ed3752e2a72ad7cb83 SHA512 b65495e94da9d42aa6eb51090ea7c2af6784e74121ea96c7021d013b8570af1df90d993df332b92274d5f92bc634149ad14616804e68e93fb4529b6b15dbb5c4 WHIRLPOOL 7401147c278a23768e18998b90842c6c17fe2c9dfb28cd320dfe0dc6ce7afd2e0481d6275deb82a4ce5c3ac826b8303390a8d80c011a242c4bed0fff2e446615
diff --git a/dev-python/python-novaclient/metadata.xml b/dev-python/python-novaclient/metadata.xml
new file mode 100644
index 00000000000..6c13623d743
--- /dev/null
+++ b/dev-python/python-novaclient/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client for the OpenStack Nova API.
+ There's a Python API (the novaclient module),
+ and a command-line script (nova).
+ Each implements 100% of the OpenStack Nova API.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-novaclient</remote-id>
+ <remote-id type="github">openstack/python-novaclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-novaclient/python-novaclient-2.17.0-r1.ebuild b/dev-python/python-novaclient/python-novaclient-2.17.0-r1.ebuild
new file mode 100644
index 00000000000..7ba674032db
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-2.17.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack/python-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/iso8601-0.1.8[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-novaclient/python-novaclient-2.17.0.ebuild b/dev-python/python-novaclient/python-novaclient-2.17.0.ebuild
new file mode 100644
index 00000000000..27b173ec683
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-2.17.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack/python-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND="!dev-python/rax-default-network-flags-python-novaclient-ext[${PYTHON_USEDEP}]
+ !dev-python/os-networksv2-python-novaclient-ext[${PYTHON_USEDEP}]
+ !dev-python/os-diskconfig-python-novaclient-ext[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.8[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-novaclient/python-novaclient-2.20.0.ebuild b/dev-python/python-novaclient/python-novaclient-2.20.0.ebuild
new file mode 100644
index 00000000000..f6f394a8bee
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-2.20.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack/python-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND="
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-novaclient/python-novaclient-2.23.0.ebuild b/dev-python/python-novaclient/python-novaclient-2.23.0.ebuild
new file mode 100644
index 00000000000..3dc13465a84
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-2.23.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack/python-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.3.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # built in...
+ sed -i '/argparse/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-novaclient/python-novaclient-2.23.1.ebuild b/dev-python/python-novaclient/python-novaclient-2.23.1.ebuild
new file mode 100644
index 00000000000..5736196f788
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-2.23.1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack/python-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ <dev-python/mock-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.3.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # built in...
+ sed -i '/argparse/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-novaclient/python-novaclient-2.25.0.ebuild b/dev-python/python-novaclient/python-novaclient-2.25.0.ebuild
new file mode 100644
index 00000000000..37f6aebce7f
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-2.25.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack/python-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ !~dev-python/keyring-3.3[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.5.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.3.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # built in...
+ sed -i '/argparse/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-nss/Manifest b/dev-python/python-nss/Manifest
new file mode 100644
index 00000000000..cca5c2b0b61
--- /dev/null
+++ b/dev-python/python-nss/Manifest
@@ -0,0 +1,2 @@
+DIST python-nss-0.12.tar.bz2 167007 SHA256 e1084fef686f5b2f74f47fa46a7403d8b747ad14be7d9b3685b1bb105a4283cb SHA512 7772e45e40b66b241d033338b7f9ec8b0d5e1d814e36d0302c24a3a28569f136556249ed6b4c8a30d8db3dec40882de7cfc67dec1ac5fa68e8e7e95c349537e9 WHIRLPOOL e8e2fe15bdbeb2e549f551722832f4a1f2a27efb8d301e46ae428213c9ccc6e7bdeda217d8969abe63eedcd927b3cfe2a3c00e4a4ba08b9ab378e405e5284b5d
+DIST python-nss-0.16.0.tar.bz2 208535 SHA256 cecd3a33c4cb4ab0f5a3c303a733b2eb62a3760b500e6b411313ab3b30f8e575 SHA512 3ff7d29f10942f4d36be8e223b518e046b5502f15029aa684b925cbd131bbc2041f7860abd50ec1344479b6e5594735cc9b7fcd801d7c4d1025f68e11a57cc3f WHIRLPOOL 543f27384b5faa61e2b1d26b54ac896c1a8b96308a6f2e6698cd0c2656667a0f1abc08cbc4143b2a5ca333195cf756936f366ecc614134fdf413e6e812b52e34
diff --git a/dev-python/python-nss/files/gentoo_lib_name.patch b/dev-python/python-nss/files/gentoo_lib_name.patch
new file mode 100644
index 00000000000..48dc29142d2
--- /dev/null
+++ b/dev-python/python-nss/files/gentoo_lib_name.patch
@@ -0,0 +1,38 @@
+--- setup.py.orig 2010-02-17 22:51:13.762123843 +0200
++++ setup.py 2010-02-17 22:53:26.538622241 +0200
+@@ -310,7 +310,7 @@
+ nss_error_extension = \
+ Extension('nss.error',
+ sources = ['src/py_nspr_error.c'],
+- include_dirs = ['/usr/include/nss3', '/usr/include/nspr4'],
++ include_dirs = ['/usr/include/nss', '/usr/include/nspr'],
+ libraries = ['nspr4'],
+ extra_compile_args = extra_compile_args,
+ )
+@@ -318,7 +318,7 @@
+ nss_io_extension = \
+ Extension('nss.io',
+ sources = ['src/py_nspr_io.c'],
+- include_dirs = ['/usr/include/nss3', '/usr/include/nspr4'],
++ include_dirs = ['/usr/include/nss', '/usr/include/nspr'],
+ libraries = ['nspr4'],
+ extra_compile_args = extra_compile_args,
+ )
+@@ -326,7 +326,7 @@
+ nss_nss_extension = \
+ Extension('nss.nss',
+ sources = ['src/py_nss.c'],
+- include_dirs = ['src', '/usr/include/nss3', '/usr/include/nspr4'],
++ include_dirs = ['src', '/usr/include/nss', '/usr/include/nspr'],
+ libraries = ['nspr4', 'ssl3'],
+ extra_compile_args = extra_compile_args,
+ )
+@@ -334,7 +334,7 @@
+ nss_ssl_extension = \
+ Extension('nss.ssl',
+ sources = ['src/py_ssl.c'],
+- include_dirs = ['src', '/usr/include/nss3', '/usr/include/nspr4'],
++ include_dirs = ['src', '/usr/include/nss', '/usr/include/nspr'],
+ libraries = ['nspr4', 'ssl3'],
+ extra_compile_args = extra_compile_args,
+ )
diff --git a/dev-python/python-nss/files/python-nss-0.12-rsapssparams.patch b/dev-python/python-nss/files/python-nss-0.12-rsapssparams.patch
new file mode 100644
index 00000000000..cea6f1d1ac4
--- /dev/null
+++ b/dev-python/python-nss/files/python-nss-0.12-rsapssparams.patch
@@ -0,0 +1,25 @@
+RCS file: /cvsroot/mozilla/security/python/nss/src/py_nss.c,v
+retrieving revision 1.23
+diff -b -u -r1.23 py_nss.c
+--- src/py_nss.c 6 Jun 2011 15:21:13 -0000 1.23
++++ src/py_nss.c 17 Nov 2011 21:11:40 -0000
+@@ -4669,7 +4669,7 @@
+ }
+
+ if (params.hashAlg) {
+- obj = oid_secitem_to_pystr_desc(&params->hashAlg->algorithm);
++ obj = oid_secitem_to_pystr_desc(&params.hashAlg->algorithm);
+ } else {
+ obj = PyString_FromString("default, SHA-1");
+ }
+@@ -4677,8 +4677,8 @@
+ Py_CLEAR(obj);
+
+ if (params.maskAlg) {
+- obj = oid_secitem_to_pystr_desc(&params->maskAlg->algorithm);
+- if (SEC_QuickDERDecodeItem(pool, &mask_hash_alg,
++ obj = oid_secitem_to_pystr_desc(&params.maskAlg->algorithm);
++ if (SEC_QuickDERDecodeItem(arena, &mask_hash_alg,
+ SEC_ASN1_GET(SECOID_AlgorithmIDTemplate),
+ &params.maskAlg->parameters) == SECSuccess) {
+ obj1 = oid_secitem_to_pystr_desc(&mask_hash_alg);
diff --git a/dev-python/python-nss/metadata.xml b/dev-python/python-nss/metadata.xml
new file mode 100644
index 00000000000..170c1ce97c5
--- /dev/null
+++ b/dev-python/python-nss/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<herd>python</herd>
+<maintainer>
+ <email>andreis.vinogradovs@gmail.com</email>
+</maintainer>
+<maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+</maintainer>
+<longdescription>
+ This package provides Python bindings for Network Security Services (NSS)
+ and the Netscape Portable Runtime (NSPR)
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/python-nss/python-nss-0.12-r1.ebuild b/dev-python/python-nss/python-nss-0.12-r1.ebuild
new file mode 100644
index 00000000000..39737eb241f
--- /dev/null
+++ b/dev-python/python-nss/python-nss-0.12-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator
+
+MY_PV="$(replace_all_version_separators '_' )_0"
+DESCRIPTION="Python bindings for Network Security Services (NSS)"
+HOMEPAGE="http://www.mozilla.org/projects/security/pki/python-nss/"
+SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/security/${PN}/releases/PYNSS_RELEASE_${MY_PV}/src/${P}.tar.bz2"
+
+LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-libs/nss
+ dev-libs/nspr
+ doc? ( dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/epydoc[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+DOCS="README doc/ChangeLog"
+# RHB #754750 ; bgo #390869
+PATCHES=( "${FILESDIR}/python-nss-0.12-rsapssparams.patch" )
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generating API documentation..."
+ mkdir doc/html
+ epydoc --html --docformat restructuredtext -o doc/html \
+ "${BUILD_DIR}"/lib/nss
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( doc/examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-nss/python-nss-0.16.0.ebuild b/dev-python/python-nss/python-nss-0.16.0.ebuild
new file mode 100644
index 00000000000..5ffc04a8889
--- /dev/null
+++ b/dev-python/python-nss/python-nss-0.16.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 ) # still only supports py2
+
+inherit distutils-r1 versionator
+
+MY_PV="$(replace_all_version_separators '_' )"
+DESCRIPTION="Python bindings for Network Security Services (NSS)"
+HOMEPAGE="http://www.mozilla.org/projects/security/pki/python-nss/"
+SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/security/${PN}/releases/PYNSS_RELEASE_${MY_PV}/src/${P}.tar.bz2"
+
+LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-libs/nss
+ dev-libs/nspr
+ doc? ( dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/epydoc[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+DOCS="README doc/ChangeLog"
+
+python_prepare_all() {
+ # Remove test file using a dep, called nss-tools, unavailable in portage
+ rm -f test/test_pkcs12.py || die
+ sed -e '/import test_pkcs12/d' \
+ -e '/suite.addTests(loader.loadTestsFromModule(test_pkcs12))/d' \
+ -i test/run_tests || die
+
+ # exclude tests due to absent shared lib file, libnssckbi.so
+ sed -e 's:test_ocsp_default_responder:_&:' \
+ -i test/test_ocsp.py || die
+ sed -e 's:test_ssl:_&:' \
+ -i test/test_client_server.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generating API documentation..."
+ mkdir doc/html
+ epydoc --html --docformat restructuredtext -o doc/html \
+ "${BUILD_DIR}"/lib/nss
+ fi
+}
+
+python_test() {
+ "${PYTHON}" test/run_tests || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ use examples && local EXAMPLES=( doc/examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-oembed/Manifest b/dev-python/python-oembed/Manifest
new file mode 100644
index 00000000000..6608a3e7593
--- /dev/null
+++ b/dev-python/python-oembed/Manifest
@@ -0,0 +1,2 @@
+DIST python-oembed-0.2.1.tar.gz 7809 SHA256 70ac9320a2548185dca71af48fff657d4b11e20840bba101a87405cda0e4e0af SHA512 27c3b3ad2ccddc864660d9f3de9c20f19417f9e3844a3ab36bbaf8364760104d8ca8d446fe4dbebf596fa9c88f284b51747bd801889e68424546dabd340b8278 WHIRLPOOL 32b62dd8222f018d71c6ef1b6a53bc618d1cfbd495b03a473c7202aa8cbc57054fe08b091328fe4897a1b6e765aac54c370fc80b1f413d6e8746746fbba6223a
+DIST python-oembed-0.2.2.tar.gz 7858 SHA256 809208fe46d0e9b84cc8b2115e68e71022f530d47b2e4f11353c037c53d8b20f SHA512 ba1a6d9d317275099811be34e9f37009068e1f1e56bdb1091037030185129e36fbc50efcd64e1f7201ae24840745f7819433cc70c59e76baf1e42d627a7fe826 WHIRLPOOL d0ee3a10ae521767a20c831ed13993f1f4a11ee7614063ced28285943351ba2aefab4e61b37bdffa97b3c2bf2e36ddf0c3ade512ae807843653492a162354815
diff --git a/dev-python/python-oembed/metadata.xml b/dev-python/python-oembed/metadata.xml
new file mode 100644
index 00000000000..ecaf56af8d5
--- /dev/null
+++ b/dev-python/python-oembed/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-oembed</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-oembed/python-oembed-0.2.1-r1.ebuild b/dev-python/python-oembed/python-oembed-0.2.1-r1.ebuild
new file mode 100644
index 00000000000..ebc85742f27
--- /dev/null
+++ b/dev-python/python-oembed/python-oembed-0.2.1-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python library that implements an OEmbed consumer"
+HOMEPAGE="http://pypi.python.org/pypi/python-oembed"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die "tests failed"
+}
diff --git a/dev-python/python-oembed/python-oembed-0.2.2.ebuild b/dev-python/python-oembed/python-oembed-0.2.2.ebuild
new file mode 100644
index 00000000000..ebc85742f27
--- /dev/null
+++ b/dev-python/python-oembed/python-oembed-0.2.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python library that implements an OEmbed consumer"
+HOMEPAGE="http://pypi.python.org/pypi/python-oembed"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die "tests failed"
+}
diff --git a/dev-python/python-openid/Manifest b/dev-python/python-openid/Manifest
new file mode 100644
index 00000000000..c8abb90bebc
--- /dev/null
+++ b/dev-python/python-openid/Manifest
@@ -0,0 +1 @@
+DIST python-openid-2.2.5.tar.gz 300524 SHA256 cb518b0804ccfa859d143753d33f49204c7d994cb08d1a2736fb841a1e7722e3 SHA512 46ffeb07dc0e94c6e1160c824dfafd4a125746a05af1541e112bc2691bf655f75d0431ea273877899abc2956bb1f82369dea75d9b54282f33875f333f5166e7a WHIRLPOOL 6f53aacde4eef9d18b617d57bfad149c77aa6db6c1aa3e6b4421ee89a920ce9bad76f3b5ca14654719cc9ac297827e21a19685ab6a2ce717c03d5de855eecf16
diff --git a/dev-python/python-openid/files/python-openid-2.0.0-gentoo-test_fetchers.diff b/dev-python/python-openid/files/python-openid-2.0.0-gentoo-test_fetchers.diff
new file mode 100644
index 00000000000..67587a98533
--- /dev/null
+++ b/dev-python/python-openid/files/python-openid-2.0.0-gentoo-test_fetchers.diff
@@ -0,0 +1,11 @@
+--- openid/test/test_fetchers.py.orig 2007-06-07 15:53:38.000000000 -0700
++++ openid/test/test_fetchers.py 2007-06-07 15:53:55.000000000 -0700
+@@ -8,6 +8,8 @@
+ # XXX: make these separate test cases
+
+ def failUnlessResponseExpected(expected, actual):
++ expected.final_url = expected.final_url.replace("localhost", "127.0.0.1")
++ actual.final_url = actual.final_url.replace("localhost", "127.0.0.1")
+ assert expected.final_url == actual.final_url, (
+ "%r != %r" % (expected.final_url, actual.final_url))
+ assert expected.status == actual.status
diff --git a/dev-python/python-openid/metadata.xml b/dev-python/python-openid/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/python-openid/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-openid/python-openid-2.2.5-r1.ebuild b/dev-python/python-openid/python-openid-2.2.5-r1.ebuild
new file mode 100644
index 00000000000..7955e478c25
--- /dev/null
+++ b/dev-python/python-openid/python-openid-2.2.5-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_REQ_USE='sqlite?'
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="OpenID support for servers and consumers"
+HOMEPAGE="http://www.openidenabled.com/openid/libraries/python/ http://pypi.python.org/pypi/python-openid"
+# Downloaded from http://github.com/openid/python-openid/downloads
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86"
+IUSE="examples mysql postgres sqlite test"
+
+RDEPEND="mysql? ( >=dev-python/mysql-python-1.2.2[${PYTHON_USEDEP}] )
+ postgres? ( dev-python/psycopg[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/twill
+ dev-python/pycurl )"
+S="${WORKDIR}/openid-python-openid-b666238"
+
+python_prepare_all() {
+ local PATCHES=(
+ # Patch to fix confusion with localhost/127.0.0.1
+ "${FILESDIR}/${PN}-2.0.0-gentoo-test_fetchers.diff"
+ )
+
+ # Disable broken tests from from examples/djopenid.
+ # Remove test that requires running db server.
+ sed -e "s/django_failures =.*/django_failures = 0/" \
+ -e '/storetest/d' \
+ -i admin/runtests || die "sed admin/runtests failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" admin/runtests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/python-openstackclient/Manifest b/dev-python/python-openstackclient/Manifest
new file mode 100644
index 00000000000..98e214a5a54
--- /dev/null
+++ b/dev-python/python-openstackclient/Manifest
@@ -0,0 +1 @@
+DIST python-openstackclient-1.0.4.tar.gz 203012 SHA256 4ae6d7b35fd1da2a07959fea9639e506871abfb769c62f3692d2f2585605ac85 SHA512 d1076456ec9867c5dd6c13059bff56cb358eb675666cc5c38de0414b8c0ea26e057c286ebe2a0146f68ca50c1a416cac5f680ec72b633879cefafa25c76dc9c9 WHIRLPOOL 25df1e0209145a9e9c9c36676e1423d42129b2f8408aa22fdb18cf75f9b138009033b27002c76832448f026b518671fd49eb4bea8877bed560153ac5a88e2e4d
diff --git a/dev-python/python-openstackclient/metadata.xml b/dev-python/python-openstackclient/metadata.xml
new file mode 100644
index 00000000000..804c062e353
--- /dev/null
+++ b/dev-python/python-openstackclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client for the OpenStack APIs.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-openstackclient</remote-id>
+ <remote-id type="github">openstack/python-openstackclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-openstackclient/python-openstackclient-1.0.4.ebuild b/dev-python/python-openstackclient/python-openstackclient-1.0.4.ebuild
new file mode 100644
index 00000000000..d2c3935d624
--- /dev/null
+++ b/dev-python/python-openstackclient/python-openstackclient-1.0.4.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack APIs"
+HOMEPAGE="https://github.com/openstack/python-openstackclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+REQUIRED_USE="test? ( doc )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ <dev-python/oslotest-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-sphinx-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/cliff-1.10.0[${PYTHON_USEDEP}]
+ <dev-python/cliff-1.11.0[${PYTHON_USEDEP}]
+ >=dev-python/cliff-tablib-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ <dev-python/oslo-config-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-i18n-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-utils-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
+ <dev-python/oslo-serialization-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/python-glanceclient-0.15.0
+ <dev-python/python-glanceclient-0.18.0
+ >=dev-python/python-keystoneclient-1.1.0
+ <dev-python/python-keystoneclient-1.4.0
+ >=dev-python/python-novaclient-2.22.0
+ <dev-python/python-novaclient-2.24.0
+ >=dev-python/python-cinderclient-1.1.0
+ <dev-python/python-cinderclient-1.2.0
+ >=dev-python/python-neutronclient-2.3.11
+ <dev-python/python-neutronclient-2.5.0
+ >=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0
+ <dev-python/stevedore-1.4.0
+"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ testr init
+ testr run || die "testsuite failed under python2.7"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-pam/Manifest b/dev-python/python-pam/Manifest
new file mode 100644
index 00000000000..777b5d6d32a
--- /dev/null
+++ b/dev-python/python-pam/Manifest
@@ -0,0 +1 @@
+DIST pam-0.1.4.tar.gz 2637 SHA256 35e88575afc37a2a5f96e20b22fa55d3e3213370d4ce640af1597c2a1dde226b SHA512 a8bce582f8ed375a5e503ec0b8e4853164125222e9cee40f6f6509def5fbeaf0eb0d2242b0ef7405024b7f8cfc0660ea7c43d266e8923a1a2ff3054135f5da63 WHIRLPOOL 6ee3ae35888d6f07963bc061f457243c8fcc2495e84febb316074d43873e89bf9563c8d00f5202ec6a4aabecc06cfc3e0e9cf5a49814298ba9c61cf5c4ef4491
diff --git a/dev-python/python-pam/metadata.xml b/dev-python/python-pam/metadata.xml
new file mode 100644
index 00000000000..5beee34c988
--- /dev/null
+++ b/dev-python/python-pam/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A python interface to the PAM library on linux using ctypes.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pam</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-pam/python-pam-0.1.4.ebuild b/dev-python/python-pam/python-pam-0.1.4.ebuild
new file mode 100644
index 00000000000..ee5eecb4ff6
--- /dev/null
+++ b/dev-python/python-pam/python-pam-0.1.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN=${PN#python-}
+S="${WORKDIR}/${MY_PN}-${PV}"
+DESCRIPTION="A python interface to the PAM library on linux using ctypes"
+HOMEPAGE="http://atlee.ca/software/pam"
+SRC_URI="mirror://pypi/p/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/python-poppler-qt4/Manifest b/dev-python/python-poppler-qt4/Manifest
new file mode 100644
index 00000000000..4fe829a9c36
--- /dev/null
+++ b/dev-python/python-poppler-qt4/Manifest
@@ -0,0 +1 @@
+DIST python-poppler-qt4-0.18.1.tar.gz 15555 SHA256 c6903c4b6ab71730ae2a1da9fb95830a83da82185b5ef6b8184b16c0cae908ba SHA512 f1451e3b60cb51eb3c07d906144ecff2a2737b68018645390441b2eb4942450e2e836a3e20d926c82a7536ae7b3963f7a869a5d7a3274befde7d01144b116a44 WHIRLPOOL 2ef090817a78baa1b55997baf4e6eb61aa21e6d064826bfc14db27e145a477d3b3ff28b6f10076cade979e9f1634cfbe43e3bee51d841d4ea4fbd72cddcd6ce4
diff --git a/dev-python/python-poppler-qt4/files/python-poppler-qt4-0.18.1-update_for_new_PyQt4_build.patch b/dev-python/python-poppler-qt4/files/python-poppler-qt4-0.18.1-update_for_new_PyQt4_build.patch
new file mode 100644
index 00000000000..ce56a780967
--- /dev/null
+++ b/dev-python/python-poppler-qt4/files/python-poppler-qt4-0.18.1-update_for_new_PyQt4_build.patch
@@ -0,0 +1,185 @@
+From 099924f9b359b82696e3aa9f159616ff09d2da97 Mon Sep 17 00:00:00 2001
+From: Philip Lorenz <philip@bithub.de>
+Date: Tue, 8 Jul 2014 18:23:49 +0200
+Subject: [PATCH 3/3] Support PyQt's "new" build system
+
+PyQt4 ships with a configure.py and configure-ng.py script for
+configuration. The former produced the "pyqtconfig" module which was
+used to determine various flags required for compilation of
+python-poppler-qt4. The configure.py script has been causing some issues
+([1]) and upstream suggests to use configure-ng.py instead as the old
+configuration script is deprecated ([2]).
+
+This patch adapts setup.py to work without the "pyqtconfig" module by
+looking up the required config values via the new mechanisms endorsed by
+upstream. Additionally, it adds the --qt-include-dir, --pyqt-sip-dir,
+--pyqt-sip-flags command line arguments to the "build_ext" command which
+can be used to set those values manually.
+
+[1] http://www.riverbankcomputing.com/pipermail/pyqt/2014-June/034344.html
+[2] http://www.riverbankcomputing.com/pipermail/pyqt/2014-June/034354.html
+---
+ setup.py | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 94 insertions(+), 20 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 56f3e3f..c43c5e4 100644
+--- a/setup.py
++++ b/setup.py
+@@ -56,14 +56,6 @@ except ImportError:
+ pass
+ ### end
+
+-import PyQt4.pyqtconfig
+-config = PyQt4.pyqtconfig.Configuration()
+-
+-pyqt_sip_dir = config.pyqt_sip_dir
+-pyqt_sip_flags = config.pyqt_sip_flags
+-qt_inc_dir = config.qt_inc_dir
+-
+-
+ def pkg_config(package, attrs=None, include_only=False):
+ """parse the output of pkg-config for a package.
+
+@@ -107,17 +99,8 @@ def pkg_config_version(package):
+ return tuple(map(int, re.findall(r'\d+', output)))
+ except OSError:
+ sys.stderr.write("Can't determine version of %s\n" % package)
+-
+-
+-ext_args = {
+- 'include_dirs': [
+- qt_inc_dir,
+- os.path.join(qt_inc_dir, 'QtCore'),
+- os.path.join(qt_inc_dir, 'QtGui'),
+- os.path.join(qt_inc_dir, 'QtXml'),
+- ],
+-}
+
++ext_args = {}
+ pkg_config('poppler-qt4', ext_args)
+
+ if 'libraries' not in ext_args:
+@@ -131,17 +114,108 @@ class build_ext(build_ext_base):
+
+ user_options = build_ext_base.user_options + [
+ ('poppler-version=', None, "version of the poppler library"),
++ ('qmake-bin=', None, "Path to qmake binary"),
++ ('qt-include-dir=', None, "Path to Qt headers"),
++ ('pyqt-sip-dir=', None, "Path to PyQt's SIP files"),
++ ('pyqt-sip-flags=', None, "SIP flags used to generate PyQt bindings")
+ ]
+
+ def initialize_options (self):
+ build_ext_base.initialize_options(self)
+ self.poppler_version = None
+
++ self.qmake_bin = 'qmake'
++
++ self.qt_include_dir = None
++ self.pyqt_sip_dir = None
++ self.pyqt_sip_flags = None
++
+ def finalize_options (self):
+ build_ext_base.finalize_options(self)
++
++ if not self.qt_include_dir:
++ self.qt_include_dir = self.__find_qt_include_dir()
++
++ if not self.pyqt_sip_dir:
++ self.pyqt_sip_dir = self.__find_pyqt_sip_dir()
++
++ if not self.pyqt_sip_flags:
++ self.pyqt_sip_flags = self.__find_pyqt_sip_flags()
++
++ if not self.qt_include_dir:
++ raise SystemExit('Could not find Qt4 headers. '
++ 'Please specify via --qt-include-dir=')
++
++ if not self.pyqt_sip_dir:
++ raise SystemExit('Could not find PyQt SIP files. '
++ 'Please specify containing directory via '
++ '--pyqt-sip-dir=')
++
++ if not self.pyqt_sip_flags:
++ raise SystemExit('Could not find PyQt SIP flags. '
++ 'Please specify via --pyqt-sip-flags=')
++
++ self.include_dirs += (self.qt_include_dir,
++ os.path.join(self.qt_include_dir, 'QtCore'),
++ os.path.join(self.qt_include_dir, 'QtGui'),
++ os.path.join(self.qt_include_dir, 'QtXml'))
++
+ if self.poppler_version is not None:
+ self.poppler_version = tuple(map(int, re.findall(r'\d+', self.poppler_version)))
+
++ def __find_qt_include_dir(self):
++ if self.pyqtconfig:
++ return self.pyqtconfig.qt_inc_dir
++
++ try:
++ qt_version = subprocess.check_output([self.qmake_bin,
++ '-query',
++ 'QT_VERSION'])
++ qt_version = qt_version.strip().decode("ascii")
++ except (OSError, subprocess.CalledProcessError) as e:
++ raise SystemExit('Failed to determine Qt version (%s).' % e)
++
++ if not qt_version.startswith("4."):
++ raise SystemExit('Unsupported Qt version (%s). '
++ 'Try specifying the path to qmake manually via '
++ '--qmake-bin=' % qt_version)
++
++ try:
++ result = subprocess.check_output([self.qmake_bin,
++ '-query',
++ 'QT_INSTALL_HEADERS'])
++ return result.strip().decode(sys.getfilesystemencoding())
++ except (OSError, subprocess.CalledProcessError) as e:
++ raise SystemExit('Failed to determine location of Qt headers (%s).' % e)
++
++ def __find_pyqt_sip_dir(self):
++ if self.pyqtconfig:
++ return self.pyqtconfig.pyqt_sip_dir
++
++ import sipconfig
++
++ return os.path.join(sipconfig.Configuration().default_sip_dir, 'PyQt4')
++
++ def __find_pyqt_sip_flags(self):
++ if self.pyqtconfig:
++ return self.pyqtconfig.pyqt_sip_flags
++
++ from PyQt4 import QtCore
++
++ return QtCore.PYQT_CONFIGURATION.get('sip_flags', '')
++
++ @property
++ def pyqtconfig(self):
++ if not hasattr(self, '_pyqtconfig'):
++ try:
++ from PyQt4 import pyqtconfig
++
++ self._pyqtconfig = pyqtconfig.Configuration()
++ except ImportError:
++ self._pyqtconfig = None
++
++ return self._pyqtconfig
++
+ def _sip_compile(self, sip_bin, source, sbf):
+
+ # Disable features if older poppler-qt4 version is found.
+@@ -176,8 +250,8 @@ class build_ext(build_ext_base):
+ cmd += [
+ "-c", self.build_temp,
+ "-b", sbf,
+- "-I", pyqt_sip_dir] # find the PyQt4 stuff
+- cmd += shlex.split(pyqt_sip_flags) # use same SIP flags as for PyQt4
++ "-I", self.pyqt_sip_dir] # find the PyQt4 stuff
++ cmd += shlex.split(self.pyqt_sip_flags) # use same SIP flags as for PyQt4
+ cmd.append(source)
+ self.spawn(cmd)
+
+--
+2.0.2
+
diff --git a/dev-python/python-poppler-qt4/metadata.xml b/dev-python/python-poppler-qt4/metadata.xml
new file mode 100644
index 00000000000..4c8686ed7dd
--- /dev/null
+++ b/dev-python/python-poppler-qt4/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ssuominen@gentoo.org</email>
+ <name>Samuli Suominen</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">python-poppler-qt4</remote-id>
+ <remote-id type="github">wbsoft/python-poppler-qt4</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-poppler-qt4/python-poppler-qt4-0.18.1.ebuild b/dev-python/python-poppler-qt4/python-poppler-qt4-0.18.1.ebuild
new file mode 100644
index 00000000000..b607242005f
--- /dev/null
+++ b/dev-python/python-poppler-qt4/python-poppler-qt4-0.18.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A python binding for libpoppler-qt4"
+HOMEPAGE="http://code.google.com/p/python-poppler-qt4/"
+SRC_URI="http://github.com/wbsoft/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="app-text/poppler:=[qt4]
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ >=dev-python/sip-4.9.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-update_for_new_PyQt4_build.patch
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/python-poppler/Manifest b/dev-python/python-poppler/Manifest
new file mode 100644
index 00000000000..e9e86f83f44
--- /dev/null
+++ b/dev-python/python-poppler/Manifest
@@ -0,0 +1 @@
+DIST pypoppler-0.12.1.tar.gz 318142 SHA256 322f183d24798a056f3005d1ab8e3ac27d8cfbbf0982725b323bbfec1bab5355 SHA512 04055411adc19f6af499a7cba0d6c5abb51e0802dd28962f833da3da1caf6ff274ff67d082f9c47548dac7a4ceb1bccf9860cda71fe48b8b7df74c0132498d20 WHIRLPOOL 4419c8dffeea1633374ac0f08222c23850127427543d9ac99385d08567faa402575375bea5595c746adb1d54aa3fe08870bf7a3dc1e84986b44000fea0afbe6b
diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-75_74.diff b/dev-python/python-poppler/files/python-poppler-0.12.1-75_74.diff
new file mode 100644
index 00000000000..47b7a678e3d
--- /dev/null
+++ b/dev-python/python-poppler/files/python-poppler-0.12.1-75_74.diff
@@ -0,0 +1,73 @@
+--- poppler.defs
++++ poppler.defs
+@@ -1642,6 +1642,7 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render_to_pixbuf")
+ (return-type "none")
++ (unblock-threads #t)
+ (parameters
+ '("int" "src_x")
+ '("int" "src_y")
+@@ -1657,6 +1658,7 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render_to_pixbuf_for_printing")
+ (return-type "none")
++ (unblock-threads #t)
+ (parameters
+ '("int" "src_x")
+ '("int" "src_y")
+@@ -1672,12 +1674,14 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_thumbnail_pixbuf")
+ (return-type "GdkPixbuf*")
++ (unblock-threads #t)
+ )
+
+ (define-method render_selection_to_pixbuf
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render_selection_to_pixbuf")
+ (return-type "none")
++ (unblock-threads #t)
+ (parameters
+ '("gdouble" "scale")
+ '("int" "rotation")
+@@ -1694,6 +1698,7 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render")
+ (return-type "none")
++ (unblock-threads #t)
+ (parameters
+ '("cairo_t*" "cairo")
+ )
+@@ -1703,6 +1708,7 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render_for_printing")
+ (return-type "none")
++ (unblock-threads #t)
+ (parameters
+ '("cairo_t*" "cairo")
+ )
+@@ -1712,12 +1718,14 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_thumbnail")
+ (return-type "cairo_surface_t*")
++ (unblock-threads #t)
+ )
+
+ (define-method render_selection
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render_selection")
+ (return-type "none")
++ (unblock-threads #t)
+ (parameters
+ '("cairo_t*" "cairo")
+ '("PopplerRectangle*" "selection")
+@@ -1779,6 +1787,7 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render_to_ps")
+ (return-type "none")
++ (unblock-threads #t)
+ (parameters
+ '("PopplerPSFile*" "ps_file")
+ )
+
diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-76_75.diff b/dev-python/python-poppler/files/python-poppler-0.12.1-76_75.diff
new file mode 100644
index 00000000000..94f4543e87e
--- /dev/null
+++ b/dev-python/python-poppler/files/python-poppler-0.12.1-76_75.diff
@@ -0,0 +1,66 @@
+--- poppler.override
++++ poppler.override
+@@ -600,3 +600,62 @@
+ return PycairoSurface_FromSurface(surface, NULL, NULL);
+ #endif
+ }
++%%
++override poppler_page_render_to_pixbuf kwargs
++static PyObject *
++_wrap_poppler_page_render_to_pixbuf(PyGObject *self,
++ PyObject *args,
++ PyObject *kwargs)
++{
++ static char *kwlist[] = { "src_x", "src_y", "src_width",
++ "src_height", "scale", "rotation", NULL };
++ int src_x, src_y, src_width, src_height, rotation;
++ double scale;
++ GdkPixbuf *pixbuf = NULL;
++
++ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
++ "iiiidi:Poppler.Page.render_to_pixbuf",
++ kwlist, &src_x, &src_y, &src_width,
++ &src_height, &scale, &rotation))
++ return NULL;
++
++ pyg_begin_allow_threads;
++
++ poppler_page_render_to_pixbuf(POPPLER_PAGE(self->obj), src_x, src_y,
++ src_width, src_height, scale,
++ rotation, pixbuf);
++
++ pyg_end_allow_threads;
++
++ return pygobject_new((GObject *)pixbuf);
++}
++%%
++override poppler_page_render_to_pixbuf_for_printing kwargs
++static PyObject *
++_wrap_poppler_page_render_to_pixbuf_for_printing(PyGObject *self,
++ PyObject *args,
++ PyObject *kwargs)
++{
++ static char *kwlist[] = { "src_x", "src_y", "src_width",
++ "src_height", "scale", "rotation", NULL };
++ int src_x, src_y, src_width, src_height, rotation;
++ double scale;
++ GdkPixbuf *pixbuf = NULL;
++
++ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
++ "iiiidi:Poppler.Page.render_to_pixbuf_for_printing",
++ kwlist, &src_x, &src_y, &src_width,
++ &src_height, &scale, &rotation))
++ return NULL;
++
++ pyg_begin_allow_threads;
++
++ poppler_page_render_to_pixbuf_for_printing(POPPLER_PAGE(self->obj),
++ src_x, src_y, src_width,
++ src_height, scale,
++ rotation, pixbuf);
++
++ pyg_end_allow_threads;
++
++ return pygobject_new((GObject *)pixbuf);
++}
+
diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-79_78.diff b/dev-python/python-poppler/files/python-poppler-0.12.1-79_78.diff
new file mode 100644
index 00000000000..161ec588e17
--- /dev/null
+++ b/dev-python/python-poppler/files/python-poppler-0.12.1-79_78.diff
@@ -0,0 +1,52 @@
+--- poppler.override
++++ poppler.override
+@@ -266,6 +266,12 @@
+ import gobject.GObject as PyGObject_Type
+ import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
+ %%
++ignore
++poppler_page_free_link_mapping
++poppler_page_free_image_mapping
++poppler_page_free_form_field_mapping
++poppler_page_free_annot_mapping
++%%
+ ignore-glob
+ *_get_type
+ _*
+@@ -359,7 +365,7 @@
+
+ item_list = poppler_page_get_link_mapping(POPPLER_PAGE(self->obj));
+ ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_LINK_MAPPING);
+- g_list_free(item_list);
++ poppler_page_free_link_mapping(item_list);
+ return ret;
+ }
+ %%
+@@ -372,7 +378,7 @@
+
+ item_list = poppler_page_get_image_mapping(POPPLER_PAGE(self->obj));
+ ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_IMAGE_MAPPING);
+- g_list_free(item_list);
++ poppler_page_free_image_mapping(item_list);
+ return ret;
+ }
+ %%
+@@ -385,7 +391,7 @@
+
+ item_list = poppler_page_get_form_field_mapping(POPPLER_PAGE(self->obj));
+ ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_FORM_FIELD_MAPPING);
+- g_list_free(item_list);
++ poppler_page_free_form_field_mapping(item_list);
+ return ret;
+ }
+ %%
+@@ -398,7 +404,7 @@
+
+ item_list = poppler_page_get_annot_mapping(POPPLER_PAGE(self->obj));
+ ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_ANNOT_MAPPING);
+- g_list_free(item_list);
++ poppler_page_free_annot_mapping(item_list);
+ return ret;
+ }
+ %%
+
diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch
new file mode 100644
index 00000000000..2099e0af11f
--- /dev/null
+++ b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch
@@ -0,0 +1,65 @@
+--- pypoppler-0.12.1/poppler.defs 2011-10-24 11:57:35.000000000 +0200
++++ pypoppler-0.12.1/poppler.defs 2011-10-24 12:01:28.000000000 +0200
+@@ -1646,62 +1646,6 @@
+ (return-type "GType")
+ )
+
+-(define-method render_to_pixbuf
+- (of-object "PopplerPage")
+- (c-name "poppler_page_render_to_pixbuf")
+- (return-type "none")
+- (unblock-threads #t)
+- (parameters
+- '("int" "src_x")
+- '("int" "src_y")
+- '("int" "src_width")
+- '("int" "src_height")
+- '("double" "scale")
+- '("int" "rotation")
+- '("GdkPixbuf*" "pixbuf")
+- )
+-)
+-
+-(define-method render_to_pixbuf_for_printing
+- (of-object "PopplerPage")
+- (c-name "poppler_page_render_to_pixbuf_for_printing")
+- (return-type "none")
+- (unblock-threads #t)
+- (parameters
+- '("int" "src_x")
+- '("int" "src_y")
+- '("int" "src_width")
+- '("int" "src_height")
+- '("double" "scale")
+- '("int" "rotation")
+- '("GdkPixbuf*" "pixbuf")
+- )
+-)
+-
+-(define-method get_thumbnail_pixbuf
+- (of-object "PopplerPage")
+- (c-name "poppler_page_get_thumbnail_pixbuf")
+- (return-type "GdkPixbuf*")
+- (unblock-threads #t)
+-)
+-
+-(define-method render_selection_to_pixbuf
+- (of-object "PopplerPage")
+- (c-name "poppler_page_render_selection_to_pixbuf")
+- (return-type "none")
+- (unblock-threads #t)
+- (parameters
+- '("gdouble" "scale")
+- '("int" "rotation")
+- '("GdkPixbuf*" "pixbuf")
+- '("PopplerRectangle*" "selection")
+- '("PopplerRectangle*" "old_selection")
+- '("PopplerSelectionStyle" "style")
+- '("GdkColor*" "glyph_color")
+- '("GdkColor*" "background_color")
+- )
+-)
+-
+ (define-method render
+ (of-object "PopplerPage")
+ (c-name "poppler_page_render")
diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-poppler0.15.0-changes.patch b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler0.15.0-changes.patch
new file mode 100644
index 00000000000..a480cfa437a
--- /dev/null
+++ b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler0.15.0-changes.patch
@@ -0,0 +1,66 @@
+--- poppler.defs
++++ poppler.defs
+@@ -1760,6 +1760,12 @@
+ (return-type "int")
+ )
+
++(define-method get_label
++ (of-object "PopplerPage")
++ (c-name "poppler_page_get_label")
++ (return-type "gchar*")
++)
++
+ (define-method get_duration
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_duration")
+@@ -1805,9 +1811,15 @@
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_text")
+ (return-type "char*")
++)
++
++(define-method get_selected_text
++ (of-object "PopplerPage")
++ (c-name "poppler_page_get_selected_text")
++ (return-type "char*")
+ (parameters
+ '("PopplerSelectionStyle" "style")
+- '("PopplerRectangle*" "rect")
++ '("PopplerRectangle*" "selection")
+ )
+ )
+
+@@ -1895,6 +1907,16 @@
+ )
+ )
+
++(define-function poppler_page_add_annot
++ (of-object "PopplerPage")
++ (c-name "poppler_page_add_annot")
++ (return-type "none")
++ (parameters
++ '("PopplerAnnot*" "annot")
++ '("GList*" "list")
++ )
++)
++
+ (define-method get_crop_box
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_crop_box")
+@@ -1904,6 +1926,16 @@
+ )
+ )
+
++(define-method get_text_layout
++ (of-object "PopplerPage")
++ (c-name "poppler_page_get_text_layout")
++ (return-type "gboolean")
++ (parameters
++ '("PopplerRectangle**" "rectangles")
++ '("guint*" "n_rectangles")
++ )
++)
++
+ (define-function poppler_rectangle_get_type
+ (c-name "poppler_rectangle_get_type")
+ (return-type "GType")
diff --git a/dev-python/python-poppler/metadata.xml b/dev-python/python-poppler/metadata.xml
new file mode 100644
index 00000000000..071b9c5fe39
--- /dev/null
+++ b/dev-python/python-poppler/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="launchpad">poppler-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-poppler/python-poppler-0.12.1-r4.ebuild b/dev-python/python-poppler/python-poppler-0.12.1-r4.ebuild
new file mode 100644
index 00000000000..76c90b99b7a
--- /dev/null
+++ b/dev-python/python-poppler/python-poppler-0.12.1-r4.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools-utils eutils python-r1
+
+DESCRIPTION="Python bindings to the Poppler PDF library"
+HOMEPAGE="http://launchpad.net/poppler-python"
+SRC_URI="http://launchpad.net/poppler-python/trunk/development/+download/pypoppler-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x86-fbsd"
+IUSE="examples"
+
+S=${WORKDIR}/pypoppler-${PV}
+
+RDEPEND="${PYTHON_DEPS}
+ >=app-text/poppler-0.15.0:=[cairo]
+ >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]
+ dev-python/pygtk:2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+# http://pkgs.fedoraproject.org/gitweb/?p=pypoppler.git;a=tree
+PATCHES=(
+ "${FILESDIR}"/${P}-75_74.diff
+ "${FILESDIR}"/${P}-79_78.diff
+ "${FILESDIR}"/${P}-poppler0.15.0-changes.patch
+ "${FILESDIR}"/${P}-poppler-0.18.0-minimal-fix.patch
+)
+
+src_configure() {
+ python_parallel_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_test() {
+ python_foreach_impl autotools-utils_src_test
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+ prune_libtool_files --modules
+
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ insinto /usr/share/doc/${PF}/examples
+ doins demo/demo-poppler.py
+ fi
+}
diff --git a/dev-python/python-prctl/Manifest b/dev-python/python-prctl/Manifest
new file mode 100644
index 00000000000..4ab038196c2
--- /dev/null
+++ b/dev-python/python-prctl/Manifest
@@ -0,0 +1,3 @@
+DIST python-prctl-1.5.0.tar.gz 25024 SHA256 04fb4360b4f60e0ee6e3ae02ab4a478dc9d67486dbfc6e1d176af96b4e456fa7 SHA512 46500432fdeaef5f1ca370db0cbaa4d752d78434d10581a16dd131104db0996a9844fa604763f0220d0ba2250f1a6890ec0cdf1c491c8823f19d601376e6686f WHIRLPOOL c1620790aaf1145eea5e1ec681d2a2765ed6ea023991b24b1115209cd80b6fd49d8c5321f655c227c7a4ecf3c8141895e8f321d05cda4fb901634e3df604d57a
+DIST python-prctl-1.6.0.tar.gz 25701 SHA256 0206d445d24f45a5dbe67766797b67cf0afc70fdcf59edf59372530efe8ec0ce SHA512 05ac4719c2dc7056bf2caf1c8b875a8a5da2223856124e312e1631be68c161f3a3ec0bef8f4ad5459c9d792427f50f15ea988b20987e85bf2acb9cf50aeaf7d8 WHIRLPOOL 3d73b43928492b45ff11c5e24e23bc28759d1261d8d619642be9809a7da5c6cdebf6f05d4967053806d22f71611067658f5543cf99679da7f6cec4a9fcca5e5f
+DIST python-prctl-1.6.1.tar.gz 25788 SHA256 31f43b2e7bc3144ce18096eb8468c86acdaefbde2e3fc2aac75eea6be06d3b64 SHA512 9d379f2082523421b69f237042826fb4360d1da6e96dfc3f7e5133cb7041da4e3ea9954b14a063967c6dca2a766d39fbfe7eda71df13ae38ce046ec102949f3a WHIRLPOOL b9adfeaf9ed26e82c1ad49dbf425fb9f86c751b3192673a413457c7c41a1c6e6b5daedd61251c614bb5e77188eed64462e87960e6d8ab099b52cf706c39d2b1e
diff --git a/dev-python/python-prctl/metadata.xml b/dev-python/python-prctl/metadata.xml
new file mode 100644
index 00000000000..e33c535019f
--- /dev/null
+++ b/dev-python/python-prctl/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">seveas/python-prctl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-prctl/python-prctl-1.5.0-r1.ebuild b/dev-python/python-prctl/python-prctl-1.5.0-r1.ebuild
new file mode 100644
index 00000000000..c44f1adaa48
--- /dev/null
+++ b/dev-python/python-prctl/python-prctl-1.5.0-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Control process attributes through prctl"
+HOMEPAGE="http://github.com/seveas/python-prctl"
+SRC_URI="http://github.com/seveas/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="sys-libs/libcap"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack ${A}
+ mv *-${PN}-* "${S}"
+}
diff --git a/dev-python/python-prctl/python-prctl-1.6.0.ebuild b/dev-python/python-prctl/python-prctl-1.6.0.ebuild
new file mode 100644
index 00000000000..c44f1adaa48
--- /dev/null
+++ b/dev-python/python-prctl/python-prctl-1.6.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Control process attributes through prctl"
+HOMEPAGE="http://github.com/seveas/python-prctl"
+SRC_URI="http://github.com/seveas/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="sys-libs/libcap"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack ${A}
+ mv *-${PN}-* "${S}"
+}
diff --git a/dev-python/python-prctl/python-prctl-1.6.1.ebuild b/dev-python/python-prctl/python-prctl-1.6.1.ebuild
new file mode 100644
index 00000000000..c44f1adaa48
--- /dev/null
+++ b/dev-python/python-prctl/python-prctl-1.6.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Control process attributes through prctl"
+HOMEPAGE="http://github.com/seveas/python-prctl"
+SRC_URI="http://github.com/seveas/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="sys-libs/libcap"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack ${A}
+ mv *-${PN}-* "${S}"
+}
diff --git a/dev-python/python-ptrace/Manifest b/dev-python/python-ptrace/Manifest
new file mode 100644
index 00000000000..489888fcd08
--- /dev/null
+++ b/dev-python/python-ptrace/Manifest
@@ -0,0 +1 @@
+DIST python-ptrace-0.8.1.tar.gz 93674 SHA256 779e04c7bdc00150b739e7d49c9c61b7f36f17afd26355f91b10cd0e7d55d19f SHA512 1c3dadf381ad0fe30374fe030fc3a81b5ec0885c31ac9be4ae561cf14ff891fc2e465555133b2efce6be0154b06768121aa068161bb3de10aca6df0eb181e25c WHIRLPOOL 1541571ed580b5852b1fc51f515776463dc622a4a2c334691f0433083a29bc1059549e0b4e938ea7c694517e341cd39bbc3f487f5ea7f83b327aaad1dbd8b7df
diff --git a/dev-python/python-ptrace/files/0.8.1-python3.4.patch b/dev-python/python-ptrace/files/0.8.1-python3.4.patch
new file mode 100644
index 00000000000..2e6e76f8e6d
--- /dev/null
+++ b/dev-python/python-ptrace/files/0.8.1-python3.4.patch
@@ -0,0 +1,147 @@
+# HG changeset patch
+# User Victor Stinner <victor.stinner@gmail.com>
+# Date 1417423044 -3600
+# Mon Dec 01 09:37:24 2014 +0100
+# Node ID eba1a6dba205559d724d32c80d955a65e078505e
+# Parent e6fef4231a8a28ef91c1feaf3bfbcbd29822c939
+Issue #17: syscall parser now supports O_CLOEXEC and SOCK_CLOEXEC, fix unit
+tests on Python 3.4 and newer
+
+diff --git a/doc/changelog.rst b/doc/changelog.rst
+--- a/doc/changelog.rst
++++ b/doc/changelog.rst
+@@ -3,6 +3,12 @@
+ Changelog
+ =========
+
++python-ptrace 0.8.2
++-------------------
++
++* Issue #17: syscall parser now supports O_CLOEXEC and SOCK_CLOEXEC, fix unit
++ tests on Python 3.4 and newer
++
+ python-ptrace 0.8.1 (2014-10-30)
+ --------------------------------
+
+diff --git a/ptrace/syscall/posix_arg.py b/ptrace/syscall/posix_arg.py
+--- a/ptrace/syscall/posix_arg.py
++++ b/ptrace/syscall/posix_arg.py
+@@ -24,7 +24,7 @@
+ return formatBits(argument.value, ACCESS_MODE_BITMASK, "F_OK")
+
+ # From /usr/include/bits/fcntl.h (Ubuntu Feisty, i386)
+-OPEN_MODE_BITMASK = (
++OPEN_MODE_BITMASK = [
+ (0o1, "O_WRONLY"),
+ (0o2, "O_RDWR"),
+ (0o100, "O_CREAT"),
+@@ -40,10 +40,17 @@
+ (0o200000, "O_DIRECTORY"),
+ (0o400000, "O_NOFOLLOW"),
+ (0o1000000, "O_NOATIME"),
+-)
++]
++O_CLOEXEC = 0o02000000
+
+ def formatOpenMode(argument):
+- return formatBits(int(argument.value), OPEN_MODE_BITMASK, "O_RDONLY", oct)
++ value = argument.value
++ cloexec = bool(value & O_CLOEXEC)
++ value = value & ~O_CLOEXEC
++ text = formatBits(int(value), OPEN_MODE_BITMASK, "O_RDONLY", oct)
++ if cloexec:
++ text += '|O_CLOEXEC'
++ return text
+
+ CLONE_FLAGS_BITMASK = (
+ (0x00000100, "CLONE_VM"),
+diff --git a/ptrace/syscall/posix_constants.py b/ptrace/syscall/posix_constants.py
+--- a/ptrace/syscall/posix_constants.py
++++ b/ptrace/syscall/posix_constants.py
+@@ -1,5 +1,5 @@
+ from ptrace.syscall.socketcall_constants import (
+- SOCKET_FAMILY, SOCKET_TYPE, SOCKET_PROTOCOL,
++ SOCKET_FAMILY, SOCKET_PROTOCOL,
+ SETSOCKOPT_LEVEL, SETSOCKOPT_OPTNAME)
+
+ SYSCALL_ARG_DICT = {
+@@ -51,7 +51,6 @@
+ },
+ "socket": {
+ "domain": SOCKET_FAMILY,
+- "type": SOCKET_TYPE,
+ "protocol": SOCKET_PROTOCOL,
+ },
+ "getsockopt": {
+diff --git a/ptrace/syscall/socketcall_constants.py b/ptrace/syscall/socketcall_constants.py
+--- a/ptrace/syscall/socketcall_constants.py
++++ b/ptrace/syscall/socketcall_constants.py
+@@ -1,3 +1,5 @@
++import socket
++
+ SOCKETCALL = {
+ 1: "socket",
+ 2: "bind",
+@@ -56,6 +58,19 @@
+ 10: "SOCK_PACKET",
+ }
+
++def formatSocketType(argument):
++ value = argument.value
++ text = []
++ if hasattr(socket, 'SOCK_CLOEXEC'):
++ cloexec = value & socket.SOCK_CLOEXEC
++ value &= ~socket.SOCK_CLOEXEC
++ else:
++ cloexec = False
++ text = SOCKET_TYPE.get(value, value)
++ if cloexec:
++ text += '|SOCK_CLOEXEC'
++ return text
++
+ SOCKET_PROTOCOL = {
+ 1: "IPPROTO_ICMP",
+ 58: "IPPROTO_ICMPV6",
+diff --git a/ptrace/syscall/syscall_argument.py b/ptrace/syscall/syscall_argument.py
+--- a/ptrace/syscall/syscall_argument.py
++++ b/ptrace/syscall/syscall_argument.py
+@@ -22,6 +22,7 @@
+ from ptrace.syscall.freebsd_constants import SYSCALL_ARG_DICT
+ else:
+ SYSCALL_ARG_DICT = {}
++from ptrace.syscall.socketcall_constants import formatSocketType
+
+ KNOWN_STRUCTS = []
+ if RUNNING_LINUX:
+@@ -35,6 +36,7 @@
+ "mmap": {"prot": formatMmapProt},
+ "mmap2": {"prot": formatMmapProt},
+ "clone": {"flags": formatCloneFlags},
++ "socket": {"type": formatSocketType},
+ "setsockopt": {"optval": formatOptVal},
+ }
+
+diff --git a/tests/test_strace.py b/tests/test_strace.py
+--- a/tests/test_strace.py
++++ b/tests/test_strace.py
+@@ -39,10 +39,19 @@
+ expected = os.fsencode(expected)
+ self.assertEqual(match.group(1), expected)
+
++ def test_open(self):
++ if PY3:
++ code = 'open(%a).close()' % __file__
++ else:
++ code = 'open(%r).close()' % __file__
++ stdout = self.strace(sys.executable, '-c', code)
++ pattern = re.compile(br"^open\(.*test_strace\.py', O_RDONLY(\|O_CLOEXEC)?\)", re.MULTILINE)
++ self.assertTrue(pattern.search(stdout), stdout)
++
+ def test_socket(self):
+ code = 'import socket; socket.socket(socket.AF_INET, socket.SOCK_STREAM).close()'
+ stdout = self.strace(sys.executable, '-c', code)
+- pattern = re.compile(b'^socket\\(AF_INET, SOCK_STREAM, ', re.MULTILINE)
++ pattern = re.compile(br'^socket\(AF_INET, SOCK_STREAM(\|SOCK_CLOEXEC)?, ', re.MULTILINE)
+ self.assertTrue(pattern.search(stdout), stdout)
+
+ if __name__ == "__main__":
diff --git a/dev-python/python-ptrace/metadata.xml b/dev-python/python-ptrace/metadata.xml
new file mode 100644
index 00000000000..a484905aea3
--- /dev/null
+++ b/dev-python/python-ptrace/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-ptrace</remote-id>
+ <remote-id type="bitbucket">haypo/python-ptrace</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild b/dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild
new file mode 100644
index 00000000000..06c2354266d
--- /dev/null
+++ b/dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="python-ptrace is a debugger using ptrace (Linux, BSD and Darwin system call to trace processes)"
+HOMEPAGE="http://bitbucket.org/haypo/python-ptrace/ http://pypi.python.org/pypi/python-ptrace"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+PATCHES=( "${FILESDIR}/0.8.1-python3.4.patch" )
+
+python_test() {
+ "${PYTHON}" runtests.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ # doc folder missing key files to effect a proper doc build
+ use doc && local DOCS=( README doc/* )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-saharaclient/Manifest b/dev-python/python-saharaclient/Manifest
new file mode 100644
index 00000000000..658616902ff
--- /dev/null
+++ b/dev-python/python-saharaclient/Manifest
@@ -0,0 +1,2 @@
+DIST python-saharaclient-0.7.0.tar.gz 72542 SHA256 7c83fb7709a870101539bd25d76225dc7a65e3848e2d698403e0a410c67fe388 SHA512 788d6a0586b00dc6d367f34ede74109d787c4cf4abd8dd2d7ef11bebe7440add42da54c3c9aaa8bdf201444d1c5fd38e5da41b327cc166b396978e85608120e9 WHIRLPOOL f5e4ab52eda75b626c8d8a722869eb9914f6a8e29ea9c6815e510e42c93f912dda8e7887fe0342faac4fdf0baf4ce727fb7fbc133281b98d2586b258a65e3799
+DIST python-saharaclient-0.9.0.tar.gz 92694 SHA256 3a268992bc7383fecbfe067b497f28c16d6577cc87646a4e88d32a954c744885 SHA512 626e99077e3d7e676be82fd0ad3e9a67d1a471dd947951a22e4402e38d5b9f4db9a35a4b7cd7f4a3bb48a2f1d0927a025115fc3f2325e64d3bc06f0839fb5c3d WHIRLPOOL 308af2a580eb27b9452413a343de3e832250a28c86fbabcf0fd320aebb2cc3aa8f750de805ea8d4757a20713c4076b7aac5996680546ea51535080120ff1173a
diff --git a/dev-python/python-saharaclient/metadata.xml b/dev-python/python-saharaclient/metadata.xml
new file mode 100644
index 00000000000..e84ed46fdd9
--- /dev/null
+++ b/dev-python/python-saharaclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client for the OpenStack Sahara API, aka HADOOP
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-saharaclient</remote-id>
+ <remote-id type="github">openstack/python-saharaclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-saharaclient/python-saharaclient-0.7.0.ebuild b/dev-python/python-saharaclient/python-saharaclient-0.7.0.ebuild
new file mode 100644
index 00000000000..d9976095cbc
--- /dev/null
+++ b/dev-python/python-saharaclient/python-saharaclient-0.7.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This is a client for the OpenStack Sahara API, aka HADOOP"
+HOMEPAGE="https://github.com/openstack/python-saharaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ ~dev-python/docutils-0.9.1[${PYTHON_USEDEP}]
+ dev-python/oslo-sphinx[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.6[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-saharaclient/python-saharaclient-0.9.0.ebuild b/dev-python/python-saharaclient/python-saharaclient-0.9.0.ebuild
new file mode 100644
index 00000000000..8566ca7220e
--- /dev/null
+++ b/dev-python/python-saharaclient/python-saharaclient-0.9.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This is a client for the OpenStack Sahara API, aka HADOOP"
+HOMEPAGE="https://github.com/openstack/python-saharaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/python-neutronclient-2.3.11[${PYTHON_USEDEP}]
+ <dev-python/python-neutronclient-3[${PYTHON_USEDEP}]
+ >=dev-python/python-novaclient-2.22.0[${PYTHON_USEDEP}]
+ >=dev-python/python-swiftclient-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/tempest-lib-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ )"
+RDEPEND=">=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ sed -i '/argparse/d' requirements.txt
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-scw/Manifest b/dev-python/python-scw/Manifest
new file mode 100644
index 00000000000..af5a1573cb0
--- /dev/null
+++ b/dev-python/python-scw/Manifest
@@ -0,0 +1 @@
+DIST python-scw-0.4.7.tar.gz 337703 SHA256 2cf8774be0b00dd1f2afff98fa8d27c3dcfda9f3bdf54c006731987550791460 SHA512 c731527ed1c3372440a428335f2f318307c970b6ee4a09af9c4eeaf89e681a335130ed855a3bb239bf5f44bfee1f0772d3f19afd07c7bbc180c586646fdd9a07 WHIRLPOOL a4bb5dea90c3a7bd2996296d1fc5400f375cc3f87111a650268b53af7563133da4f482ddf28a369e5939cec318a7c031c7d637457bc3ee16774b65723c2c019f
diff --git a/dev-python/python-scw/metadata.xml b/dev-python/python-scw/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/python-scw/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/python-scw/python-scw-0.4.7-r1.ebuild b/dev-python/python-scw/python-scw-0.4.7-r1.ebuild
new file mode 100644
index 00000000000..76db6dda43d
--- /dev/null
+++ b/dev-python/python-scw/python-scw-0.4.7-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1
+
+DESCRIPTION="Python binding for Scw"
+HOMEPAGE="http://scwwidgets.googlepages.com/"
+SRC_URI="http://scwwidgets.googlepages.com/${P}.tar.gz "
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/pygtk-2.4[${PYTHON_USEDEP}]
+ >=x11-libs/scw-0.4.0"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/python-slip/Manifest b/dev-python/python-slip/Manifest
new file mode 100644
index 00000000000..c3454de6267
--- /dev/null
+++ b/dev-python/python-slip/Manifest
@@ -0,0 +1,2 @@
+DIST python-slip-0.6.0.tar.bz2 24930 SHA256 f47361ec52b608309b83c71905e692b6b363eaf3b8a7afdeff866cd94463ad5c SHA512 5787995521cce568d6569c15270bee63d9c42e85e21e652c9042c09d62d2c99bbee0b3efcaaa187e3f78d0d90a69ba4d9846b1182f0f366a6c75cb822b412164 WHIRLPOOL 30ede47ceafe7eef0c441504061cbfa1cddac80afb732030a8e27765f0a30b4b2b176061fe19d57001f39ed764b298f8bfc9d2e0d01b878ac0a0a7ae5c623a04
+DIST python-slip-0.6.1.tar.bz2 25000 SHA256 bc897f1ab6f5b4989f85548799aaeb84fde67bbba18e40341bfe1d7885c2fd9a SHA512 d7d79b8ee4468d3a3b5e2ff31dcc8af30f70591ba42f74af9787e5c883a137e85c39a6ffc7c36cd2383840aa4ca09cd1ca3d9e40fc4d266b37689a85f084a9ab WHIRLPOOL 95595c7cc45bd403fa8ed1a5a36e32bbcce7aa621ff2d86503487174279e996e3839e7c3033a771274c944f46591f819a0ab1981e1301c4a13757f4787c2586b
diff --git a/dev-python/python-slip/files/python-slip-0.2.20-no-selinux.patch b/dev-python/python-slip/files/python-slip-0.2.20-no-selinux.patch
new file mode 100644
index 00000000000..b4ff16543ac
--- /dev/null
+++ b/dev-python/python-slip/files/python-slip-0.2.20-no-selinux.patch
@@ -0,0 +1,93 @@
+From 13474db085f5ae550248d93ccf0f92b987f2244b Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Wed, 18 Jul 2012 20:07:01 -0400
+Subject: [PATCH] Disable selinux
+
+---
+ setup.py.in | 2 +-
+ slip/util/files.py | 28 ++++++++++++++--------------
+ 2 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/setup.py.in b/setup.py.in
+index 554dc40..f3d9d55 100644
+--- a/setup.py.in
++++ b/setup.py.in
+@@ -6,7 +6,7 @@ from distutils.core import setup
+ setup(name="slip", version="@VERSION@",
+ py_modules=["slip.__init__", "slip.util.__init__",
+ "slip.util.hookable", "slip.util.files"],
+- requires=["selinux"])
++ requires=[ ])
+
+ setup(name="slip.dbus", version="@VERSION@",
+ py_modules=["slip.dbus.__init__", "slip.dbus.bus",
+diff --git a/slip/util/files.py b/slip/util/files.py
+index 4e98238..141aa86 100644
+--- a/slip/util/files.py
++++ b/slip/util/files.py
+@@ -24,7 +24,7 @@ __all__ = ["issamefile", "linkfile", "copyfile", "linkorcopyfile",
+ "overwrite_safely"]
+
+ import os
+-import selinux
++# import selinux
+ import shutil
+ import tempfile
+ import errno
+@@ -135,8 +135,8 @@ def copyfile(srcpath, dstpath, copy_mode_from_dst=True, run_restorecon=True):
+
+ os.rename(dsttmpfile.name, dstpath)
+
+- if run_restorecon and selinux.is_selinux_enabled() > 0:
+- selinux.restorecon(dstpath)
++# if run_restorecon and selinux.is_selinux_enabled() > 0:
++# selinux.restorecon(dstpath)
+
+
+ def linkorcopyfile(srcpath, dstpath, copy_mode_from_dst=True,
+@@ -176,8 +176,8 @@ def overwrite_safely(path, content, preserve_mode=True, preserve_context=True):
+
+ exists = os.path.exists(path)
+
+- if preserve_context and selinux.is_selinux_enabled() <= 0:
+- preserve_context = False
++# if preserve_context and selinux.is_selinux_enabled() <= 0:
++# preserve_context = False
+
+ try:
+ fd, tmpname = tempfile.mkstemp(prefix=base + os.path.extsep,
+@@ -186,10 +186,10 @@ def overwrite_safely(path, content, preserve_mode=True, preserve_context=True):
+ if exists and preserve_mode:
+ shutil.copymode(path, tmpname)
+
+- if exists and preserve_context:
+- ret, ctx = selinux.getfilecon(path)
+- if ret < 0:
+- raise RuntimeError("getfilecon(%r) failed" % path)
++# if exists and preserve_context:
++# ret, ctx = selinux.getfilecon(path)
++# if ret < 0:
++# raise RuntimeError("getfilecon(%r) failed" % path)
+
+ f = os.fdopen(fd, "w")
+ fd = None
+@@ -201,11 +201,11 @@ def overwrite_safely(path, content, preserve_mode=True, preserve_context=True):
+
+ os.rename(tmpname, path)
+
+- if preserve_context:
+- if exists:
+- selinux.setfilecon(path, ctx)
+- else:
+- selinux.restorecon(path)
++# if preserve_context:
++# if exists:
++# selinux.setfilecon(path, ctx)
++# else:
++# selinux.restorecon(path)
+
+ finally:
+ if f:
+--
+1.7.8.6
+
diff --git a/dev-python/python-slip/files/python-slip-0.4.0-no-selinux.patch b/dev-python/python-slip/files/python-slip-0.4.0-no-selinux.patch
new file mode 100644
index 00000000000..08a4fa80b88
--- /dev/null
+++ b/dev-python/python-slip/files/python-slip-0.4.0-no-selinux.patch
@@ -0,0 +1,93 @@
+From a7bfeeb479d28c9a880d2a08d0102978fa711237 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Wed, 18 Jul 2012 20:07:01 -0400
+Subject: [PATCH] Disable selinux
+
+---
+ setup.py.in | 2 +-
+ slip/util/files.py | 28 ++++++++++++++--------------
+ 2 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/setup.py.in b/setup.py.in
+index d670ed5..d5b8db8 100644
+--- a/setup.py.in
++++ b/setup.py.in
+@@ -7,7 +7,7 @@ setup(name="slip", version="@VERSION@",
+ py_modules=["slip.__init__", "slip.util.__init__",
+ "slip.util.hookable", "slip.util.files",
+ "slip._wrappers.__init__", "slip._wrappers._gobject"],
+- requires=["selinux"])
++ requires=[ ])
+
+ setup(name="slip.dbus", version="@VERSION@",
+ py_modules=["slip.dbus.__init__", "slip.dbus.bus",
+diff --git a/slip/util/files.py b/slip/util/files.py
+index 27ba45c..53869f6 100644
+--- a/slip/util/files.py
++++ b/slip/util/files.py
+@@ -24,7 +24,7 @@ __all__ = ["issamefile", "linkfile", "copyfile", "linkorcopyfile",
+ "overwrite_safely"]
+
+ import os
+-import selinux
++# import selinux
+ import shutil
+ import tempfile
+ import errno
+@@ -134,8 +134,8 @@ def copyfile(srcpath, dstpath, copy_mode_from_dst=True, run_restorecon=True):
+
+ os.rename(dsttmpfile.name, dstpath)
+
+- if run_restorecon and selinux.is_selinux_enabled() > 0:
+- selinux.restorecon(dstpath)
++# if run_restorecon and selinux.is_selinux_enabled() > 0:
++# selinux.restorecon(dstpath)
+
+
+ def linkorcopyfile(srcpath, dstpath, copy_mode_from_dst=True,
+@@ -234,8 +234,8 @@ def overwrite_safely(path, content, preserve_mode=True, preserve_context=True):
+
+ exists = os.path.exists(path)
+
+- if preserve_context and selinux.is_selinux_enabled() <= 0:
+- preserve_context = False
++# if preserve_context and selinux.is_selinux_enabled() <= 0:
++# preserve_context = False
+
+ try:
+ fd, tmpname = tempfile.mkstemp(prefix=base + os.path.extsep,
+@@ -244,10 +244,10 @@ def overwrite_safely(path, content, preserve_mode=True, preserve_context=True):
+ if exists and preserve_mode:
+ shutil.copymode(path, tmpname)
+
+- if exists and preserve_context:
+- ret, ctx = selinux.getfilecon(path)
+- if ret < 0:
+- raise RuntimeError("getfilecon(%r) failed" % path)
++# if exists and preserve_context:
++# ret, ctx = selinux.getfilecon(path)
++# if ret < 0:
++# raise RuntimeError("getfilecon(%r) failed" % path)
+
+ f = os.fdopen(fd, "w")
+ fd = None
+@@ -259,11 +259,11 @@ def overwrite_safely(path, content, preserve_mode=True, preserve_context=True):
+
+ os.rename(tmpname, path)
+
+- if preserve_context:
+- if exists:
+- selinux.setfilecon(path, ctx)
+- else:
+- selinux.restorecon(path)
++# if preserve_context:
++# if exists:
++# selinux.setfilecon(path, ctx)
++# else:
++# selinux.restorecon(path)
+
+ finally:
+ if f:
+--
+1.8.3.2
+
diff --git a/dev-python/python-slip/metadata.xml b/dev-python/python-slip/metadata.xml
new file mode 100644
index 00000000000..da6fd63d008
--- /dev/null
+++ b/dev-python/python-slip/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/dev-python/python-slip/python-slip-0.6.0.ebuild b/dev-python/python-slip/python-slip-0.6.0.ebuild
new file mode 100644
index 00000000000..2ebdf483d4a
--- /dev/null
+++ b/dev-python/python-slip/python-slip-0.6.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_REQ_USE="xml"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Miscellaneous convenience, extension and workaround code for Python"
+HOMEPAGE="https://fedorahosted.org/python-slip/"
+SRC_URI="https://fedorahosted.org/released/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="dbus selinux"
+
+RDEPEND="
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ sys-auth/polkit )
+"
+DEPEND=""
+
+python_prepare_all() {
+ use selinux || epatch "${FILESDIR}/${PN}-0.4.0-no-selinux.patch"
+
+ # hard-disable slip.gtk since it did not get ported to gtk3+ and the only user
+ # of slip (firewalld) does not use it (upstream disables it for py3 already)
+ sed \
+ -e 's|sys.version_info.major == 2|False|' \
+ -e "s:@VERSION@:${PV}:" setup.py.in > setup.py || die "sed failed"
+
+ if ! use dbus; then
+ sed -e '/name="slip.dbus"/ s/\(.*\)/if 0:\n \1/' \
+ -i setup.py || die "sed 2 failed"
+ fi
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/python-slip/python-slip-0.6.1.ebuild b/dev-python/python-slip/python-slip-0.6.1.ebuild
new file mode 100644
index 00000000000..6af27c377bf
--- /dev/null
+++ b/dev-python/python-slip/python-slip-0.6.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_REQ_USE="xml"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Miscellaneous convenience, extension and workaround code for Python"
+HOMEPAGE="https://fedorahosted.org/python-slip/"
+SRC_URI="https://fedorahosted.org/released/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="dbus selinux"
+
+RDEPEND="
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ sys-auth/polkit )
+"
+DEPEND=""
+
+python_prepare_all() {
+ use selinux || epatch "${FILESDIR}/${PN}-0.4.0-no-selinux.patch"
+
+ # hard-disable slip.gtk since it did not get ported to gtk3+ and the only user
+ # of slip (firewalld) does not use it (upstream disables it for py3 already)
+ sed \
+ -e 's|sys.version_info.major == 2|False|' \
+ -e "s:@VERSION@:${PV}:" setup.py.in > setup.py || die "sed failed"
+
+ if ! use dbus; then
+ sed -e '/name="slip.dbus"/ s/\(.*\)/if 0:\n \1/' \
+ -i setup.py || die "sed 2 failed"
+ fi
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/python-social-auth/Manifest b/dev-python/python-social-auth/Manifest
new file mode 100644
index 00000000000..85f7f715f52
--- /dev/null
+++ b/dev-python/python-social-auth/Manifest
@@ -0,0 +1,2 @@
+DIST python-social-auth-0.1.26.tar.gz 247579 SHA256 9f0a9e8526850e9d0bdd4e5df4d2a6129c4da5a747887ccbfebafc0d2868120c SHA512 c3637f9a269f2c8465b1896840a5ca0f70bb6c45c93f7d9c08c54434037984538ba95442a164841c069cb5b1fd251d0f3f62baa1dc2754a542baceb2f325bd8b WHIRLPOOL e9d17f1c7b094cf0c20d7cee6ba06e0557b322d24aa6bf53743e49eaa08bf8935e71b7d1793227d53d6ff9cacebae975768feab5f6d37d683df8f16caf19a9ed
+DIST python-social-auth-0.2.10.tar.gz 297210 SHA256 10dd7df9e2bb6143cf33170ae53b7463a6947ed111da7158d8e3fd60fafe5d91 SHA512 af5247cee0b77f36d1bfdd7457708c2f2053bc779bae8eae0cfe79f0f9236c37882afcbd325863255282eb7559d8f84715b3e983f94d55bd3e7815c5469f150d WHIRLPOOL 7bbc97885ce4d74785b4506b3ddb133fb9751625193742194ca6cc78e3a76fb8e07c9440bfac7e661fe76363a78b66c87049282163c9923015ce3251da235881
diff --git a/dev-python/python-social-auth/metadata.xml b/dev-python/python-social-auth/metadata.xml
new file mode 100644
index 00000000000..f51439d4109
--- /dev/null
+++ b/dev-python/python-social-auth/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">omab/python-social-auth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-social-auth/python-social-auth-0.1.26.ebuild b/dev-python/python-social-auth/python-social-auth-0.1.26.ebuild
new file mode 100644
index 00000000000..ab01c01a04f
--- /dev/null
+++ b/dev-python/python-social-auth/python-social-auth-0.1.26.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Easy to setup social auth mechanism with support for several frameworks and auth providers"
+HOMEPAGE="http://psa.matiasaguirre.net/"
+SRC_URI="https://github.com/omab/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc examples test"
+
+RDEPEND="
+ $(python_gen_cond_dep \
+ 'dev-python/python-openid[${PYTHON_USEDEP}]' 'python2*')
+ $(python_gen_cond_dep \
+ 'dev-python/python3-openid[${PYTHON_USEDEP}]' 'python3*')
+ >=dev-python/oauthlib-0.3.8[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-oauthlib[${PYTHON_USEDEP}]
+ >=dev-python/six-1.2.0[${PYTHON_USEDEP}]
+"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+# tests require internet
+#"
+# test? (
+# dev-python/coverage[${PYTHON_USEDEP}]
+# dev-python/httpretty[${PYTHON_USEDEP}]
+# dev-python/mock[${PYTHON_USEDEP}]
+# dev-python/nose[${PYTHON_USEDEP}]
+# dev-python/sure[${PYTHON_USEDEP}]
+# )
+#"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
+
+#python_test() {
+# "${S}"/social/tests/run_tests.sh || die "Tests failed on ${EPYTHON}"
+#}
diff --git a/dev-python/python-social-auth/python-social-auth-0.2.10.ebuild b/dev-python/python-social-auth/python-social-auth-0.2.10.ebuild
new file mode 100644
index 00000000000..716f81f3763
--- /dev/null
+++ b/dev-python/python-social-auth/python-social-auth-0.2.10.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Easy to setup social auth mechanism with support for several frameworks and auth providers"
+HOMEPAGE="http://psa.matiasaguirre.net/"
+SRC_URI="https://github.com/omab/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples test"
+
+RDEPEND="
+ $(python_gen_cond_dep \
+ 'dev-python/python-openid[${PYTHON_USEDEP}]' 'python2*')
+ $(python_gen_cond_dep \
+ 'dev-python/python3-openid[${PYTHON_USEDEP}]' 'python3*')
+ >=dev-python/oauthlib-0.3.8[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-1.2.0[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-oauthlib[${PYTHON_USEDEP}]
+ >=dev-python/six-1.2.0[${PYTHON_USEDEP}]
+"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+# tests require internet
+#"
+# test? (
+# dev-python/coverage[${PYTHON_USEDEP}]
+# dev-python/httpretty[${PYTHON_USEDEP}]
+# dev-python/mock[${PYTHON_USEDEP}]
+# dev-python/nose[${PYTHON_USEDEP}]
+# dev-python/sure[${PYTHON_USEDEP}]
+# )
+#"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
+
+#python_test() {
+# "${S}"/social/tests/run_tests.sh || die "Tests failed on ${EPYTHON}"
+#}
diff --git a/dev-python/python-sqlparse/Manifest b/dev-python/python-sqlparse/Manifest
new file mode 100644
index 00000000000..8dd5f14a2be
--- /dev/null
+++ b/dev-python/python-sqlparse/Manifest
@@ -0,0 +1,5 @@
+DIST python-sqlparse-0.1.10.tar.gz 151351 SHA256 8bac29a6e21ed64ec69703971cd9ac0fa50e7e01f62a6d826fd2ce76f3191199 SHA512 8b30ac752f0208d8247b353d71e56e67a6a874384999ce35e4391f4a8a8919e8c59fa1d3bb53cf676164fb3a677fc4791fd57330ff52613fc8d2f6e85d8b528b WHIRLPOOL c31f024bf04985054a8efabe80c05e15f8caed7188a73a5749c3e1150711a504bff111b4d3504118e455e358cead8cde5e7a0cf480a7cf0b7ea70a1312b7b6c7
+DIST python-sqlparse-0.1.13.tar.gz 153184 SHA256 d827ac617c159ec60ddd7d4db05bb1c7b1e558334e30db355056715677aa9e2d SHA512 e6e50ae388eeced653b831279de4e425c3c416e246ee0bf7e09511e633c2b9edea3011fe7108b87d5187ae40da4591842e31c80fa45f76512cfbe023207ec476 WHIRLPOOL 34ad49e19cc309cc5bb2ce93e8edddf15808851094cb3d48c820554f1631bf0e54d2ec2ae6099683b1b7c66dcee7db38f2cfb8f2e80d4c8a69b489617a18fbcb
+DIST sqlparse-0.1.14.tar.gz 55307 SHA256 e561e31853ab9f3634a1a2bd53035f9e47dfb203d56b33cc6569047ba087daf0 SHA512 212f0dc1f05057f44cb441c2b0d29a597a826c3170ec87276a74c79f5d445cf736cfcbf8ff7cfe40c252416bba9851ce4a4739418627172ac41d98e6835668c6 WHIRLPOOL 93a226fe3df6d6d078c447e311d10114a9fb31801d848456ab9ba21d4087a373a6d2f20d1bc4e55474dae28411dcb4112e85ceaf373dec51275aa9ce38102aff
+DIST sqlparse-0.1.15.tar.gz 57863 SHA256 ce92c9f134b1cd461a27c502197464b5f245261ad0fbb26d7bf659f28a5c11b2 SHA512 9d7ef4b22465b0b0438195f304fa138f286f5976ba64880616ef46da4df76dd9c6bb34d56c8daa66e522e68b3e7f284d442e513e3cc97a5300c38597d2c4afc1 WHIRLPOOL 968250ad9f2945ab6d61d94a673493cc6c6e42fea5566f6a7b25f4cde57dbbcf8216e8e1003f50b1f5bd1be58b00838fecdc6c729c8ba3a2365309ddede66ba5
+DIST sqlparse-0.1.16.tar.gz 58418 SHA256 678c6c36ca4b01405177da8b84eecf92ec92c9f6c762396c965bb5d305f20f81 SHA512 2561ed970340eb99b575626fd8bb7253f522507628ed86256a32e7bd7dd438b7f4bec0adf1d7298a2903411d2623cb5a4ba6f53c794bcc38b695e2ddf26c488c WHIRLPOOL 8c2f01c4bda48e190668bb34cbabc1bc775a224432ca9ea638f4c350fe493c8705d171f4f6c40063e8c7546502249cec3bfa73d5f6f6e47b918cdba8a5cdcafc
diff --git a/dev-python/python-sqlparse/metadata.xml b/dev-python/python-sqlparse/metadata.xml
new file mode 100644
index 00000000000..3faec63e962
--- /dev/null
+++ b/dev-python/python-sqlparse/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">python-sqlparse</remote-id>
+ <remote-id type="pypi">python-sqlparse</remote-id>
+ <remote-id type="github">andialbrecht/sqlparse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-sqlparse/python-sqlparse-0.1.10.ebuild b/dev-python/python-sqlparse/python-sqlparse-0.1.10.ebuild
new file mode 100644
index 00000000000..9c0a05598e8
--- /dev/null
+++ b/dev-python/python-sqlparse/python-sqlparse-0.1.10.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A non-validating SQL parser module for Python"
+HOMEPAGE="http://code.google.com/p/python-sqlparse/ https://github.com/andialbrecht/sqlparse"
+SRC_URI="https://github.com/andialbrecht/sqlparse/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD-2"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+DISTUTILS_IN_SOURCE_BUILD=1 # Required for running tests
+
+S="${WORKDIR}"/${P#python-}
+
+python_test() {
+ if python_is_python3; then
+ 2to3 -w --no-diffs -n tests/ sqlparse/
+ py.test ./tests || die "testsuite failed ${EPYTHON}"
+ else
+ py.test tests || die "testsuite failed under ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/python-sqlparse/python-sqlparse-0.1.13.ebuild b/dev-python/python-sqlparse/python-sqlparse-0.1.13.ebuild
new file mode 100644
index 00000000000..3c056af728d
--- /dev/null
+++ b/dev-python/python-sqlparse/python-sqlparse-0.1.13.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A non-validating SQL parser module for Python"
+HOMEPAGE="http://code.google.com/p/python-sqlparse/ https://github.com/andialbrecht/sqlparse"
+SRC_URI="https://github.com/andialbrecht/sqlparse/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD-2"
+IUSE="doc examples test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )"
+# Required for running tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}"/${P#python-}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ if python_is_python3; then
+ 2to3 -w --no-diffs -n tests/ sqlparse/
+ py.test ./tests || die "testsuite failed ${EPYTHON}"
+ else
+ py.test tests || die "testsuite failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-sqlparse/python-sqlparse-0.1.14.ebuild b/dev-python/python-sqlparse/python-sqlparse-0.1.14.ebuild
new file mode 100644
index 00000000000..847ad91955e
--- /dev/null
+++ b/dev-python/python-sqlparse/python-sqlparse-0.1.14.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN##python-}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A non-validating SQL parser module for Python"
+HOMEPAGE="http://code.google.com/p/python-sqlparse/ https://github.com/andialbrecht/sqlparse"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD-2"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )"
+# Required for running tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}"/${P#python-}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ if python_is_python3; then
+ 2to3 -w --no-diffs -n tests/ sqlparse/
+ py.test ./tests || die "testsuite failed ${EPYTHON}"
+ else
+ py.test tests || die "testsuite failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-sqlparse/python-sqlparse-0.1.15.ebuild b/dev-python/python-sqlparse/python-sqlparse-0.1.15.ebuild
new file mode 100644
index 00000000000..847ad91955e
--- /dev/null
+++ b/dev-python/python-sqlparse/python-sqlparse-0.1.15.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN##python-}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A non-validating SQL parser module for Python"
+HOMEPAGE="http://code.google.com/p/python-sqlparse/ https://github.com/andialbrecht/sqlparse"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD-2"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )"
+# Required for running tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}"/${P#python-}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ if python_is_python3; then
+ 2to3 -w --no-diffs -n tests/ sqlparse/
+ py.test ./tests || die "testsuite failed ${EPYTHON}"
+ else
+ py.test tests || die "testsuite failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-sqlparse/python-sqlparse-0.1.16.ebuild b/dev-python/python-sqlparse/python-sqlparse-0.1.16.ebuild
new file mode 100644
index 00000000000..847ad91955e
--- /dev/null
+++ b/dev-python/python-sqlparse/python-sqlparse-0.1.16.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="${PN##python-}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A non-validating SQL parser module for Python"
+HOMEPAGE="http://code.google.com/p/python-sqlparse/ https://github.com/andialbrecht/sqlparse"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD-2"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )"
+# Required for running tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+S="${WORKDIR}"/${P#python-}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ if python_is_python3; then
+ 2to3 -w --no-diffs -n tests/ sqlparse/
+ py.test ./tests || die "testsuite failed ${EPYTHON}"
+ else
+ py.test tests || die "testsuite failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-stdnum/Manifest b/dev-python/python-stdnum/Manifest
new file mode 100644
index 00000000000..440a5204af0
--- /dev/null
+++ b/dev-python/python-stdnum/Manifest
@@ -0,0 +1,2 @@
+DIST python-stdnum-0.9.tar.gz 136636 SHA256 c25bbdc6d8fb9d82e4d4d3c72545cff56eb8dd4389162e4ee415c3c7218136e6 SHA512 c9870ad116c2c08b123b7b01cc229a1f9d3f3e15da3ba75bdf5da8bee2a854474f6ddd7464c2d662559fedf272ea13a3549ed79a4636ddc1d733a47ea11ae058 WHIRLPOOL 3e124851b81e9cf8212994a8720b1b4994883d8175198fa1a0ee907dc989e4f5edd28c6e0f71c1a2b0df3987499f05f25405bfaa969e93c47c17fda7c4dc59a1
+DIST python-stdnum-1.1.tar.gz 205495 SHA256 66ee880bfd60cadeca667eba6f29803b6712eb554a2d19cfb8e1ea86ce42df35 SHA512 b066b5cd4b04b70b52850942489f28165a833d2e29fe16eeec9b93e395f19742eaf2edc3cdbb31972e8ffd7ad46b189a186c3ed93bd91ab90e829681f54cf1f4 WHIRLPOOL 79c908885b0d3f89a300511d04f3283fcbaec02938ce763a263f40e6febef62c607ee241cc664bdbfc98176505b58ac69820fea717455bef3f17f5e93dcae8a9
diff --git a/dev-python/python-stdnum/metadata.xml b/dev-python/python-stdnum/metadata.xml
new file mode 100644
index 00000000000..3f5b90a8a72
--- /dev/null
+++ b/dev-python/python-stdnum/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>cedk@gentoo.org</email>
+ <name>Cédric Krier</name>
+ </maintainer>
+ <longdescription lang="en">
+ A module to handle standardized numbers and codes
+ </longdescription>
+ <use>
+ <flag name="vies">Enable VIES</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">python-stdnum</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-stdnum/python-stdnum-0.9.ebuild b/dev-python/python-stdnum/python-stdnum-0.9.ebuild
new file mode 100644
index 00000000000..9d0c6d1dbf6
--- /dev/null
+++ b/dev-python/python-stdnum/python-stdnum-0.9.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A module to handle standardized numbers and codes"
+HOMEPAGE="http://arthurdejong.org/python-stdnum/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="vies"
+
+DEPEND="dev-python/setuptools
+ vies? ( dev-python/suds )"
+RDEPEND="${DEPEND}"
+
+DOCS=( ChangeLog NEWS README )
diff --git a/dev-python/python-stdnum/python-stdnum-1.1.ebuild b/dev-python/python-stdnum/python-stdnum-1.1.ebuild
new file mode 100644
index 00000000000..364541aa343
--- /dev/null
+++ b/dev-python/python-stdnum/python-stdnum-1.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A module to handle standardized numbers and codes"
+HOMEPAGE="http://arthurdejong.org/python-stdnum/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="vies test"
+
+RDEPEND="vies? ( dev-python/suds )"
+DEPEND="${DEPEND}
+ dev-python/setuptools
+ test? ( dev-python/nose )"
+
+DOCS=( ChangeLog NEWS README )
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/python-swiftclient/Manifest b/dev-python/python-swiftclient/Manifest
new file mode 100644
index 00000000000..5c7e376d01a
--- /dev/null
+++ b/dev-python/python-swiftclient/Manifest
@@ -0,0 +1,3 @@
+DIST python-swiftclient-2.0.3.tar.gz 55405 SHA256 b8c0b11ff0397b2f2ba2145cd8de7b86a61d34d6f1af78fee536cb9ba5dee315 SHA512 fe52e49c67edae20cd9db65adbc3b54bd1b9b40b09e2c07c65eaae80d96266134fe55d86d7cfd919453077c6c08b06a51278f93a973ec6b4279295bd6e0f9d64 WHIRLPOOL 3b80a78c8d67254f94e58acb4d758d439e79ca0cb8633d7d12cceeed817d8c9f7297f2e9a2a82642cedc4def6b15d3ccd8bab922c3a7f230d151f414f0bbca15
+DIST python-swiftclient-2.1.0.tar.gz 62692 SHA256 e5304cc2fc58e5f9fec87c0910109b524b3634f49a6dd82a35a28cbdf1515de8 SHA512 a49b60124093df9b1fb9ea87a356aafd21ded0a7826b04786dddc94fc1d494c38c2e99d1bd43ba23579ff595c7fabd74bc29e852349852b0bbbfa0cd95f0cac2 WHIRLPOOL 9830329cd08047c943bf8cbd41a41eaecd20ef17a886f72b2504f1568969e08d8282ec4b4b23ea9368284b027ef320a615ce4614852105768fa6c7b004732f65
+DIST python-swiftclient-2.2.0.tar.gz 67374 SHA256 f41f6650150367fc2641e1536d36a68b9664db1f4cfe3e8d1de2e2b5aa41a3cb SHA512 bd60e96525a3c879e94fbb99da1d4813cb181982b753934efd32f4a8310c8ef3237a36dc8c80a78e285ace285eae7bb72b5869863f0067dec4efc713851af7fc WHIRLPOOL f0a7eb00e3d7861e79a07cb6a366aa205fdf141dcdc54519cbade576868550049c335ed9fb3f8e05cf263ac22b85f040ff7a73364a78dc4ab786c7867c7fbf87
diff --git a/dev-python/python-swiftclient/metadata.xml b/dev-python/python-swiftclient/metadata.xml
new file mode 100644
index 00000000000..02d11234767
--- /dev/null
+++ b/dev-python/python-swiftclient/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ Python bindings to the OpenStack Object Storage API
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-swiftclient</remote-id>
+ <remote-id type="launchpad">python-swiftclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-swiftclient/python-swiftclient-2.0.3.ebuild b/dev-python/python-swiftclient/python-swiftclient-2.0.3.ebuild
new file mode 100644
index 00000000000..9292f0f8c6a
--- /dev/null
+++ b/dev-python/python-swiftclient/python-swiftclient-2.0.3.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings to the OpenStack Object Storage API"
+HOMEPAGE="https://launchpad.net/python-swiftclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.4.2[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.17[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.32[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}] ) )"
+RDEPEND=">=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]"
+
+#PATCHES=( "${FILESDIR}/CVE-2013-6396.patch" )
+
+python_prepare() {
+ sed -i '/discover/d' "${S}/test-requirements.txt" || die "sed failed"
+ distutils-r1_python_prepare
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ testr init
+ testr run || die "tests failed under python2_7"
+ flake8 tests && einfo "run of tests folder by flake8 passed"
+ flake8 bin/swift && einfo "run of ./bin/swift by flake8 passed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( ../${P}-python2_7/doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-swiftclient/python-swiftclient-2.1.0.ebuild b/dev-python/python-swiftclient/python-swiftclient-2.1.0.ebuild
new file mode 100644
index 00000000000..be5b65b04b9
--- /dev/null
+++ b/dev-python/python-swiftclient/python-swiftclient-2.1.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings to the OpenStack Object Storage API"
+HOMEPAGE="https://launchpad.net/python-swiftclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}] ) )"
+RDEPEND=">=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]"
+
+#PATCHES=( "${FILESDIR}/CVE-2013-6396.patch" )
+
+python_prepare() {
+ sed -i '/discover/d' "${S}/test-requirements.txt" || die "sed failed"
+ distutils-r1_python_prepare
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ testr init
+ testr run || die "tests failed under python2_7"
+ flake8 tests && einfo "run of tests folder by flake8 passed"
+ flake8 bin/swift && einfo "run of ./bin/swift by flake8 passed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( ../${P}-python2_7/doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-swiftclient/python-swiftclient-2.2.0-r1.ebuild b/dev-python/python-swiftclient/python-swiftclient-2.2.0-r1.ebuild
new file mode 100644
index 00000000000..4fa4360725c
--- /dev/null
+++ b/dev-python/python-swiftclient/python-swiftclient-2.2.0-r1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings to the OpenStack Object Storage API"
+HOMEPAGE="https://launchpad.net/python-swiftclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? ( >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}] ) )"
+RDEPEND=">=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]"
+
+#PATCHES=( "${FILESDIR}/CVE-2013-6396.patch" )
+
+python_prepare() {
+ sed -i '/discover/d' "${S}/test-requirements.txt" || die "sed failed"
+ distutils-r1_python_prepare
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ testr init
+ testr run || die "tests failed under python2_7"
+ flake8 tests && einfo "run of tests folder by flake8 passed"
+ flake8 bin/swift && einfo "run of ./bin/swift by flake8 passed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( ../${P}-python2_7/doc/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-systemd/Manifest b/dev-python/python-systemd/Manifest
new file mode 100644
index 00000000000..0850f1f468b
--- /dev/null
+++ b/dev-python/python-systemd/Manifest
@@ -0,0 +1 @@
+DIST python-systemd-230.tar.gz 39329 SHA256 656a83ff695f5de7d63411a86ea38601ad5a918595eebd0817d7b8e68642c64d SHA512 3c26c59b9005a45c3aeea8a6838ece9b5aa27dd7394ebe75319c1536b52462a847f18a79fdc8cf3bf6df9a70af63c84d5ff66a9587519dd9a006cc3df4966ce8 WHIRLPOOL 0de7ff6919bdf1c6c9cdafd71944801396157281fae1583bb060da4cf800369f97bb0c9f484f81635ed8b2e170db2bbbecf59adac0470a910167333f93c607e6
diff --git a/dev-python/python-systemd/metadata.xml b/dev-python/python-systemd/metadata.xml
new file mode 100644
index 00000000000..4c7cdda6301
--- /dev/null
+++ b/dev-python/python-systemd/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>systemd@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">systemd/python-systemd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-systemd/python-systemd-230.ebuild b/dev-python/python-systemd/python-systemd-230.ebuild
new file mode 100644
index 00000000000..3ea466f5a59
--- /dev/null
+++ b/dev-python/python-systemd/python-systemd-230.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for native access to the systemd facilities"
+HOMEPAGE="https://github.com/systemd/python-systemd"
+SRC_URI="https://github.com/systemd/python-systemd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="sys-apps/systemd"
+RDEPEND="${DEPEND}
+ !sys-apps/systemd[python(-)]"
+
+src_compile() {
+ emake systemd/id128-constants.h
+ distutils-r1_src_compile
+}
diff --git a/dev-python/python-termstyle/Manifest b/dev-python/python-termstyle/Manifest
new file mode 100644
index 00000000000..b62612c8889
--- /dev/null
+++ b/dev-python/python-termstyle/Manifest
@@ -0,0 +1 @@
+DIST python-termstyle-0.1.10.tar.gz 5025 SHA256 b5af30d1d1b8853c779da97438f237d791d8bf37f577e9cf1c3927198c3c0ca9 SHA512 a0ed484da8da10c7fe1b8422a26861fb115dc29c49ce79c113053f913d3371edf6222de1ccf40e6aa34c3cfa9da5805eb3928fb07bfae18a13683621d7547743 WHIRLPOOL 485d80720c3382e61e46bb85349a7d6136363dab04e4ccf6a63a2ddccfcce29d8b4af0d13fd46de338f473232cfaf032b9ec6d8731d52a3af94e357de687c8f4
diff --git a/dev-python/python-termstyle/files/tests-unicode.patch b/dev-python/python-termstyle/files/tests-unicode.patch
new file mode 100644
index 00000000000..4cb410fa198
--- /dev/null
+++ b/dev-python/python-termstyle/files/tests-unicode.patch
@@ -0,0 +1,10 @@
+diff --git a/test2.py b/test2.py
+index 2d84c37..1331545 100755
+--- a/test2.py
++++ b/test2.py
+@@ -2,4 +2,4 @@
+
+ from termstyle import *
+
+-print green(u"unicod\xe9!")
++print green(u"unicod\xe9!".encode('utf-8'))
diff --git a/dev-python/python-termstyle/metadata.xml b/dev-python/python-termstyle/metadata.xml
new file mode 100644
index 00000000000..20b35ea9148
--- /dev/null
+++ b/dev-python/python-termstyle/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">gfxmonk/termstyle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-termstyle/python-termstyle-0.1.10.ebuild b/dev-python/python-termstyle/python-termstyle-0.1.10.ebuild
new file mode 100644
index 00000000000..a12818def64
--- /dev/null
+++ b/dev-python/python-termstyle/python-termstyle-0.1.10.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="console colouring for python"
+HOMEPAGE="http://gfxmonk.net/dist/0install/python-termstyle.xml"
+SRC_URI="https://github.com/gfxmonk/${PN#*-}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools"
+RDEPEND=""
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/tests-unicode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ if [[ "${EPYTHON}" = "python2.7" ]]; then
+ "${PYTHON}" test2.py || die "test2.py failed under ${EPYTHON}"
+ else
+ "${PYTHON}" test3.py || die "test3.py failed under ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/python-troveclient/Manifest b/dev-python/python-troveclient/Manifest
new file mode 100644
index 00000000000..cf51e2c5404
--- /dev/null
+++ b/dev-python/python-troveclient/Manifest
@@ -0,0 +1 @@
+DIST python-troveclient-1.0.5.tar.gz 97125 SHA256 f758c01ae770ec9e58b71ebc78c6e3f975a9d37d09820b512df77c827b2b921e SHA512 0912e93879cf59b41f461d59e85c421be61491cc7c58dd65a3474e479fd6b1bca016ac188938ac186bd6d005a5415c8f1cf00c88a3390d6fc8e1da4d3e0c3997 WHIRLPOOL b73db090e9b6bf5d64404cc8ec13b88a3e564a5b1a74512b95daea09190308026ac87db888d6160272eda3719e10a573104801dddbf2085cde483f64a9499d64
diff --git a/dev-python/python-troveclient/metadata.xml b/dev-python/python-troveclient/metadata.xml
new file mode 100644
index 00000000000..52b4c5bb12e
--- /dev/null
+++ b/dev-python/python-troveclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a client for the OpenStack Trove API, a scalable relational database service.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">python-troveclient</remote-id>
+ <remote-id type="github">openstack/python-troveclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-troveclient/python-troveclient-1.0.5.ebuild b/dev-python/python-troveclient/python-troveclient-1.0.5.ebuild
new file mode 100644
index 00000000000..1efd0e551b3
--- /dev/null
+++ b/dev-python/python-troveclient/python-troveclient-1.0.5.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This is a client for the OpenStack Trove API, a scalable relational database service"
+HOMEPAGE="https://github.com/openstack/python-troveclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.17[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.32[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/prettytable-0.7[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-2.0.9[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/python-tvrage/Manifest b/dev-python/python-tvrage/Manifest
new file mode 100644
index 00000000000..6556298072d
--- /dev/null
+++ b/dev-python/python-tvrage/Manifest
@@ -0,0 +1 @@
+DIST python-tvrage-0.4.1.tar.gz 10646 SHA256 f8a530376c5cf1bc573d1945a8504c3394b228c731a3eff5100c705997a72063 SHA512 cabee676e85206b8c052b79b0f5fd039719ede104607795fe8d1947f2fd810fd9fd08ba8c6e94d1fa68dd5e51060e10fb9c12349f21b752242f7eae2b4771009 WHIRLPOOL a410f1c0cf9b47e5884fcd254b7837fe72cd733460fa05253ca38782b0b3d16666b60fba765bcbf93c3c6d512cfa97f75117aa484770566b0dd84fb3c7ebe368
diff --git a/dev-python/python-tvrage/metadata.xml b/dev-python/python-tvrage/metadata.xml
new file mode 100644
index 00000000000..f3fef357965
--- /dev/null
+++ b/dev-python/python-tvrage/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-tvrage</remote-id>
+ <remote-id type="github">ckreutzer/python-tvrage</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-tvrage/python-tvrage-0.4.1.ebuild b/dev-python/python-tvrage/python-tvrage-0.4.1.ebuild
new file mode 100644
index 00000000000..299ed21757d
--- /dev/null
+++ b/dev-python/python-tvrage/python-tvrage-0.4.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python client for the tvrage.com XML API"
+HOMEPAGE="https://github.com/ckreutzer/python-tvrage"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ "${PYTHON}" tests/api_tests.py || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/python-twitter/Manifest b/dev-python/python-twitter/Manifest
new file mode 100644
index 00000000000..374c858b49d
--- /dev/null
+++ b/dev-python/python-twitter/Manifest
@@ -0,0 +1 @@
+DIST python-twitter-1.1.tar.gz 91795 SHA256 0fdc012894cda38735a48b55d4904d86b104515c1242c0c400ab350d62695c12 SHA512 e5600e1b01d72f000345d53abd08901636e888c05b397ded71918a06dde3d0f9e3e83f11cde6e2b5cdab106565c646494efb69eff78ad3daa69db65375e0ff26 WHIRLPOOL a8eb4c0decf54f8f849314f77eb618e70013f0503c40f023fe452fa6c9abdb9c2ea122a864657c0541eb8d86b853a7e92a7e02cd640e0a6d7fdabc5fc31ba11e
diff --git a/dev-python/python-twitter/metadata.xml b/dev-python/python-twitter/metadata.xml
new file mode 100644
index 00000000000..b862d3a6e7c
--- /dev/null
+++ b/dev-python/python-twitter/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">python-twitter</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-twitter/python-twitter-1.1.ebuild b/dev-python/python-twitter/python-twitter-1.1.ebuild
new file mode 100644
index 00000000000..82c8d93deaf
--- /dev/null
+++ b/dev-python/python-twitter/python-twitter-1.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This library provides a pure python interface for the Twitter API"
+HOMEPAGE="http://code.google.com/p/python-twitter/"
+SRC_URI="http://python-twitter.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x64-macos"
+IUSE="examples"
+
+RDEPEND="dev-python/oauth2[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-oauthlib[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+# Testsuite in the source is not convincing in its completeness
+RESTRICT="test"
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # Delete internal copy of simplejson.
+ rm -fr simplejson || die
+}
+
+# http://code.google.com/p/python-twitter/issues/detail?id=259&thanks=259&ts=1400334214
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/python-uinput/Manifest b/dev-python/python-uinput/Manifest
new file mode 100644
index 00000000000..be646df2322
--- /dev/null
+++ b/dev-python/python-uinput/Manifest
@@ -0,0 +1,3 @@
+DIST python-uinput-0.10.1.tar.gz 21549 SHA256 bf11ba44850f56142de1f4ac883322ad4f5b14d8c149c01f90e9d96f8ada9c9f SHA512 ec1767fc40071d299ca5955163a0ee1ad9ff896d462037c305f4fdfb6b05be4b360699b1a966a40571c742ac5699c0468c2537787483fa6fe1a0cc19e533ee5a WHIRLPOOL 6c083b28e48093df85e0648e3756abf7a02f55daa89dee9dd7bd629b9d6a81c9bd4e8129e682a856a7bc7fae8ea0f05ed8ebfa279e0d843d44e9e6729f4a64f2
+DIST python-uinput-0.10.2.tar.gz 21736 SHA256 913ca8e37dd9e9948d2e81803791ff8b90837230eae3b8563c9d7390bc6315dc SHA512 0009e3c3f82c5a5da61e9adf17d77a2efb9223f02324a4f7c7033b165d5e4e395566c34ccb11ef54cc4ce1623b1432a144614cbae7a88e9c06824b15ef00e1b7 WHIRLPOOL f850346138e59dcbda897e49efbabc77d60ef174fb24e1e62007d47afcb3b0d8a14023255fc74326843f08b2afdce8dd259e44318b73aa194c3a859d78753c65
+DIST python-uinput-0.9.tar.gz 18260 SHA256 2cd5ea90bf83bc3ce56e3d2897de9133080e940f1396551d21305aac43611295 SHA512 bd31b963ce1134670d2b49d243f0613d32355c41c511a13b9963ecca531806d9fa41c8b6cc10717bda16328cdd6b8ab175202dfa774b55372d81f21aba692e65 WHIRLPOOL 25f99d22a8f47217878f28a9357cd3e679c050e165cd8a1c965181559114567df6e8a1059098d0141a3328dd03fe078368b74fe632257512c77f1765853f581e
diff --git a/dev-python/python-uinput/metadata.xml b/dev-python/python-uinput/metadata.xml
new file mode 100644
index 00000000000..61e16744278
--- /dev/null
+++ b/dev-python/python-uinput/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-uinput</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-uinput/python-uinput-0.10.1.ebuild b/dev-python/python-uinput/python-uinput-0.10.1.ebuild
new file mode 100644
index 00000000000..65b2c5829b4
--- /dev/null
+++ b/dev-python/python-uinput/python-uinput-0.10.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Pythonic API to the Linux uinput kernel module"
+HOMEPAGE="http://tjjr.fi/sw/python-uinput/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="virtual/udev"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ sed \
+ -e "s:libudev.so.0:libudev.so:g" \
+ -i setup.py || die
+ rm libsuinput/src/libudev.h || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/python-uinput/python-uinput-0.10.2.ebuild b/dev-python/python-uinput/python-uinput-0.10.2.ebuild
new file mode 100644
index 00000000000..39bbbc72507
--- /dev/null
+++ b/dev-python/python-uinput/python-uinput-0.10.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Pythonic API to the Linux uinput kernel module"
+HOMEPAGE="http://tjjr.fi/sw/python-uinput/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="virtual/udev"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ rm libsuinput/src/libudev.h || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/python-uinput/python-uinput-0.9.ebuild b/dev-python/python-uinput/python-uinput-0.9.ebuild
new file mode 100644
index 00000000000..992ab615051
--- /dev/null
+++ b/dev-python/python-uinput/python-uinput-0.9.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Pythonic API to the Linux uinput kernel module"
+HOMEPAGE="http://tjjr.fi/sw/python-uinput/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="virtual/udev"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ fix_missing_newlines() {
+ sed -r -i 's/\)([A-Z]+)/\)\n\1/g' "${BUILD_DIR}"/lib/uinput/ev.py || die "sed failed"
+ }
+ python_foreach_impl fix_missing_newlines
+ distutils-r1_src_install
+}
diff --git a/dev-python/python-urljr/Manifest b/dev-python/python-urljr/Manifest
new file mode 100644
index 00000000000..752b9a593cc
--- /dev/null
+++ b/dev-python/python-urljr/Manifest
@@ -0,0 +1 @@
+DIST python-urljr-1.0.1.tar.gz 16570 SHA256 723bc0c1b58d34ca41b9d3ec57ba5e9cb16283e49d8ac152d455476cc249bff6 SHA512 fff9e5f557ff8fa88e122f535134320043f9a14fd8048234bef762af666f4c088d50c6bc8dd3d173154e80eb8e076f0fb6749e39dd9c6f88c7ab763314dad0ad WHIRLPOOL 5919e01df94373ad98b3fa2622ddf45b9f7abeadbc8b8ace0dc4f8b38ef5be85b43c696cf349f815f6273811bb65940b339667aefcccba8ae9aff5364afb2a20
diff --git a/dev-python/python-urljr/files/python-urljr-1.0.1-gentoo-test_fetchers.patch b/dev-python/python-urljr/files/python-urljr-1.0.1-gentoo-test_fetchers.patch
new file mode 100644
index 00000000000..5a451e4a560
--- /dev/null
+++ b/dev-python/python-urljr/files/python-urljr-1.0.1-gentoo-test_fetchers.patch
@@ -0,0 +1,11 @@
+--- urljr/test/test_fetchers.py.orig 2007-05-31 09:16:31.000000000 -0700
++++ urljr/test/test_fetchers.py 2007-05-31 09:17:47.000000000 -0700
+@@ -8,6 +8,8 @@
+ # XXX: make these separate test cases
+
+ def failUnlessResponseExpected(expected, actual):
++ expected.final_url = expected.final_url.replace("localhost", "127.0.0.1")
++ actual.final_url = actual.final_url.replace("localhost", "127.0.0.1")
+ assert expected.final_url == actual.final_url
+ assert expected.status == actual.status
+ assert expected.body == actual.body
diff --git a/dev-python/python-urljr/metadata.xml b/dev-python/python-urljr/metadata.xml
new file mode 100644
index 00000000000..7b4c64f109b
--- /dev/null
+++ b/dev-python/python-urljr/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>JanRain's URL Utilities</longdescription>
+</pkgmetadata>
diff --git a/dev-python/python-urljr/python-urljr-1.0.1-r1.ebuild b/dev-python/python-urljr/python-urljr-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..a966ca2fee7
--- /dev/null
+++ b/dev-python/python-urljr/python-urljr-1.0.1-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="JanRain's URL Utilities"
+HOMEPAGE="http://www.openidenabled.com/openid/libraries/python/"
+SRC_URI="http://www.openidenabled.com/resources/downloads/python-openid/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="curl test"
+
+RDEPEND="curl? ( >=dev-python/pycurl-7.15.1[${PYTHON_USEDEP}] )"
+DEPEND=""
+
+REQUIRED_USE="test? ( curl )"
+# test fails if it finds 'localhost' instead of '127.0.0.1'
+PATCHES=( "${FILESDIR}/${P}-gentoo-test_fetchers.patch" )
+
+python_test() {
+ PYTHONPATH=. "${PYTHON}" admin/runtests || die "tests failed"
+}
diff --git a/dev-python/python-virtkey/Manifest b/dev-python/python-virtkey/Manifest
new file mode 100644
index 00000000000..7d9a89a5f48
--- /dev/null
+++ b/dev-python/python-virtkey/Manifest
@@ -0,0 +1 @@
+DIST python-virtkey-0.60.0.tar.gz 40328 SHA256 f8de93ded985454484e6d2e52ce86b4c7aae65bc3cd97fc8aa7259def2a091a1 SHA512 96e48fd5ab861d5bccc40dfed1b71c7ea5ce01aeafaa5b1a58ba7a0250dfe191eab35ef0a95f247e64ea49213a20cc596bbfd64e091fd4624daae38edba2840b WHIRLPOOL 2d61955c3e8e8a256f6ca142e4314597de4a324eff46d0f783340fd6123af5bb16b1383ffa421999a89a68f1a9979b801870b81d31f9bbc6fc20d5fd3b8e4f33
diff --git a/dev-python/python-virtkey/metadata.xml b/dev-python/python-virtkey/metadata.xml
new file mode 100644
index 00000000000..dcf1228fcdb
--- /dev/null
+++ b/dev-python/python-virtkey/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome-accessibility</herd>
+ <upstream>
+ <remote-id type="launchpad">python-virtkey</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-virtkey/python-virtkey-0.60.0-r1.ebuild b/dev-python/python-virtkey/python-virtkey-0.60.0-r1.ebuild
new file mode 100644
index 00000000000..8ddd4648e36
--- /dev/null
+++ b/dev-python/python-virtkey/python-virtkey-0.60.0-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1 versionator
+
+DESCRIPTION="Python module to simulate keypresses and get current keyboard layout"
+HOMEPAGE="https://launchpad.net/virtkey"
+SRC_URI="http://launchpad.net/python-virtkey/$(get_version_component_range 1-2)/${PV}/+download/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="
+ dev-libs/glib:2[${PYTHON_USEDEP}]
+ x11-libs/libX11
+ x11-libs/libXtst
+ x11-libs/gtk+:2"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/dev-python/python-wpactrl/Manifest b/dev-python/python-wpactrl/Manifest
new file mode 100644
index 00000000000..28241eb8725
--- /dev/null
+++ b/dev-python/python-wpactrl/Manifest
@@ -0,0 +1 @@
+DIST python-wpactrl-20081102.tar.bz2 16947 SHA256 1e04b5c531e4922f48023e5e09a43b4cb51a53fa483ad0330dbd8db774644b13 SHA512 ddb059b846af21bacd9b6bfe0b5df3661a0d29dd5f56c2343eb24c462eed4771584d7b06a239e484bb89e69376d4e5784d79628cf962a063e640e62cb3b7f588 WHIRLPOOL 89a466f3ede8d8ebc2ac16cbc849d84c1c53c8c73ae03321a85324cb3a9074a5c9c8c72ea3879cff4178f01fbac8a6b8a448387c4d1b12700d0389a953e281d1
diff --git a/dev-python/python-wpactrl/metadata.xml b/dev-python/python-wpactrl/metadata.xml
new file mode 100644
index 00000000000..b193248853b
--- /dev/null
+++ b/dev-python/python-wpactrl/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<maintainer>
+ <email>tomka@gentoo.org</email>
+ <name>Thomas Kahle</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-python/python-wpactrl/python-wpactrl-20081102-r1.ebuild b/dev-python/python-wpactrl/python-wpactrl-20081102-r1.ebuild
new file mode 100644
index 00000000000..4018bdfa60f
--- /dev/null
+++ b/dev-python/python-wpactrl/python-wpactrl-20081102-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python extension for wpa_supplicant/hostapd control interface access"
+HOMEPAGE="http://projects.otaku42.de/wiki/PythonWpaCtrl"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/python-xlib/Manifest b/dev-python/python-xlib/Manifest
new file mode 100644
index 00000000000..1e3981c6e71
--- /dev/null
+++ b/dev-python/python-xlib/Manifest
@@ -0,0 +1 @@
+DIST python-xlib-0.15rc1.tar.gz 188750 SHA256 823734489fc8c47113deb606fdc7142759d4c45546014255af8c5b8787b9accb SHA512 e27f56e0d76fac534e6754b1e64316636b49859eb6c9ceef5952c8b42cf53bc798a705fa54c283c896324d9a23778beec583cb62984a6a43b024643a70f3fe3a WHIRLPOOL bdca7c97cfbf438cce6297d5d035488986886d95f6f80014c9d9b1966720b98600b13f6dc09b6aed209787833e3174a0bf8444c3ba9c46e9f106051b978d322b
diff --git a/dev-python/python-xlib/files/defs b/dev-python/python-xlib/files/defs
new file mode 100644
index 00000000000..2da6f932799
--- /dev/null
+++ b/dev-python/python-xlib/files/defs
@@ -0,0 +1,11 @@
+# Definitions for documentation makefiles
+
+SRCDIR = ../src
+
+TOPSRC = $(SRCDIR)/python-xlib.texi
+
+SRCS = $(TOPSRC) \
+ $(SRCDIR)/concepts.texi $(SRCDIR)/package.texi \
+ $(SRCDIR)/connect.texi $(SRCDIR)/errors.texi \
+ $(SRCDIR)/events.texi $(SRCDIR)/objects.texi
+
diff --git a/dev-python/python-xlib/metadata.xml b/dev-python/python-xlib/metadata.xml
new file mode 100644
index 00000000000..8f5f346a168
--- /dev/null
+++ b/dev-python/python-xlib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">python-xlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python-xlib/python-xlib-0.15_rc1-r2.ebuild b/dev-python/python-xlib/python-xlib-0.15_rc1-r2.ebuild
new file mode 100644
index 00000000000..de0ef23d458
--- /dev/null
+++ b/dev-python/python-xlib/python-xlib-0.15_rc1-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P="${P/_/}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="A fully functional X client library for Python, written in Python"
+HOMEPAGE="http://python-xlib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="doc"
+
+python_prepare_all() {
+ sed -e 's:make:$(MAKE):g' -i doc/Makefile || die
+ cp -r "${FILESDIR}"/defs doc/src/ || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ cd doc || die
+ VARTEXFONTS="${T}"/fonts emake html
+ fi
+}
+
+python_test() {
+ cd test || die
+
+ local t
+ for t in *.py; do
+ "${PYTHON}" "${t}" || die
+ done
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/python-xlib/python-xlib-0.15_rc1.ebuild b/dev-python/python-xlib/python-xlib-0.15_rc1.ebuild
new file mode 100644
index 00000000000..c2131864078
--- /dev/null
+++ b/dev-python/python-xlib/python-xlib-0.15_rc1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit distutils
+
+MY_P="${P/_/}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="A fully functional X client library for Python, written in Python"
+HOMEPAGE="http://python-xlib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86"
+IUSE=""
+
+RESTRICT_PYTHON_ABIS="3.*"
+
+PYTHON_MODNAME="Xlib"
+
+src_test() {
+ cd test
+ testing() {
+ local return_status="0" test
+ for test in *.py; do
+ echo "Running ${test}..."
+ PYTHONPATH="../build-${PYTHON_ABI}/lib" "$(PYTHON)" "${test}" || return_status="1"
+ done
+ return "${return_status}"
+ }
+ python_execute_function testing
+}
diff --git a/dev-python/python-yadis/Manifest b/dev-python/python-yadis/Manifest
new file mode 100644
index 00000000000..9f69a04a9e5
--- /dev/null
+++ b/dev-python/python-yadis/Manifest
@@ -0,0 +1 @@
+DIST python-yadis-1.1.0.tar.gz 192569 SHA256 1f9e9c55e82ac0025030e9bb0bcc4e2344ad4b26e6fd0aee10690fb18a3ca307 SHA512 955efbcd13f02c8e112e0f5dfd4ad8a7fb56e0d5d55a2c409ed044f4ac99d5496b9d641916a7af1ddc18628d83cef1f3907d787afd468ceb7573ec192de1e02f WHIRLPOOL 0389fbf85635752b23eeef3ada41a6df8dd181aa89facb208e5f4e20c4d7278cc78a20e335a033456e5e2bfc171e92a22dba990c96fbf9d8a66090cf0573be3c
diff --git a/dev-python/python-yadis/files/python-yadis-1.1.0-gentoo-test.patch b/dev-python/python-yadis/files/python-yadis-1.1.0-gentoo-test.patch
new file mode 100644
index 00000000000..ae6a06c9012
--- /dev/null
+++ b/dev-python/python-yadis/files/python-yadis-1.1.0-gentoo-test.patch
@@ -0,0 +1,82 @@
+--- admin/runtests.orig 2007-05-31 11:30:01.000000000 -0700
++++ admin/runtests 2007-05-31 11:31:26.000000000 -0700
+@@ -1,7 +1,6 @@
+ #!/bin/bash
+
+-ADMINDIR=$(dirname $0)
+-YDIR=${ADMINDIR}/..
++YDIR='.'
+
+ declare -i errorcode=0
+
+@@ -17,13 +16,6 @@
+ echo 'Install pyflakes. http://divmod.org/trac/wiki/DivmodPyflakes'
+ fi
+
+-if [[ $1 != "darcs" ]] ; then
+- echo 'Checking docs... '
+- if ! ${ADMINDIR}/epyrun check; then
+- # Who knows? Epydoc --check doesn't modify the return code.
+- errorcode=$errorcode+2
+- fi
+-fi
+
+ echo -n 'Running tests... '
+ if ! python ${YDIR}/yadis/test/runtests ; then
+diff -ur python-yadis-1.1.0.orig/yadis/test/test_xri.py python-yadis-1.1.0/yadis/test/test_xri.py
+--- yadis/test/test_xri.py 2006-12-09 06:17:12.000000000 +0900
++++ yadis/test/test_xri.py 2011-11-16 22:03:07.254992928 +0800
+@@ -44,11 +44,6 @@
+ s = u'l\xa1m'
+ expected = 'l%C2%A1m'
+ self.failUnlessEqual(xri.iriToURI(s), expected)
+- else:
+- def test_iri_to_url(self):
+- s = u'l\xa1m\U00101010n'
+- expected = 'l%C2%A1m%F4%81%80%90n'
+- self.failUnlessEqual(xri.iriToURI(s), expected)
+
+
+
+diff -ur /mnt/gen2/tmpdir/portage/dev-python/python-yadis-1.1.0/work/python-yadis-1.1.0.orig/yadis/etxrd.py /mnt/gen2/tmpdir/portage/dev-python/python-yadis-1.1.0/work/python-yadis-1.1.0/yadis/etxrd.py
+--- yadis/etxrd.py 2006-12-09 06:17:12.000000000 +0900
++++ yadis/etxrd.py 2011-11-16 22:26:21.386992510 +0800
+@@ -22,12 +22,8 @@
+ from elementtree.ElementTree import ElementTree
+
+ # Use expat if it's present. Otherwise, use xmllib
+-try:
+- from xml.parsers.expat import ExpatError as XMLError
+- from elementtree.ElementTree import XMLTreeBuilder
+-except ImportError:
+- from elementtree.SimpleXMLTreeBuilder import TreeBuilder as XMLTreeBuilder
+- from xmllib import Error as XMLError
++from elementtree.SimpleXMLTreeBuilder import TreeBuilder as XMLTreeBuilder
++from xmllib import Error as XMLError
+
+ from yadis import xri
+
+diff -ur /mnt/gen2/tmpdir/portage/dev-python/python-yadis-1.1.0/work/python-yadis-1.1.0.orig/yadis/test/test_etxrd.py /mnt/gen2/tmpdir/portage/dev-python/python-yadis-1.1.0/work/python-yadis-1.1.0/yadis/test/test_etxrd.py
+--- yadis/test/test_etxrd.py 2006-12-09 06:17:12.000000000 +0900
++++ yadis/test/test_etxrd.py 2011-11-16 22:29:00.896992462 +0800
+@@ -40,9 +40,6 @@
+ def _getServices(self, flt=None):
+ return list(services.applyFilter(self.yadis_url, self.xmldoc, flt))
+
+- def testParse(self):
+- """Make sure that parsing succeeds at all"""
+- services = self._getServices()
+
+ def testParseOpenID(self):
+ """Parse for OpenID services with a transformer function"""
+diff -ur python-yadis-1.1.0.orig/yadis/test/test_parsehtml.py python-yadis-1.1.0/yadis/test/test_parsehtml.py
+--- yadis/test/test_parsehtml.py 2006-12-09 06:17:12.000000000 +0900
++++ yadis/test/test_parsehtml.py 2012-11-08 20:42:34.248733469 +0800
+@@ -3,6 +3,7 @@
+
+ import os.path, unittest, sys
+
++@unittest.skip("Recently broken test")
+ class _TestCase(unittest.TestCase):
+ reserved_values = ['None', 'EOF']
+
diff --git a/dev-python/python-yadis/metadata.xml b/dev-python/python-yadis/metadata.xml
new file mode 100644
index 00000000000..86fcb975b65
--- /dev/null
+++ b/dev-python/python-yadis/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>Yadis service discovery library</longdescription>
+</pkgmetadata>
diff --git a/dev-python/python-yadis/python-yadis-1.1.0-r2.ebuild b/dev-python/python-yadis/python-yadis-1.1.0-r2.ebuild
new file mode 100644
index 00000000000..a914353dae7
--- /dev/null
+++ b/dev-python/python-yadis/python-yadis-1.1.0-r2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Yadis service discovery library"
+HOMEPAGE="http://www.openidenabled.com/yadis/libraries/python/"
+SRC_URI="http://www.openidenabled.com/resources/downloads/python-openid/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/elementtree[${PYTHON_USEDEP}]
+ dev-python/python-urljr[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( >=dev-python/pyflakes-0.2.1[${PYTHON_USEDEP}] )"
+
+# Fix broken test
+PATCHES=( "${FILESDIR}/${P}-gentoo-test.patch" )
+
+python_test() {
+ ./admin/runtests
+ einfo "The pyflake output about XML* redefinitions can be safely ignored"
+}
diff --git a/dev-python/python3-openid/Manifest b/dev-python/python3-openid/Manifest
new file mode 100644
index 00000000000..86efff64b50
--- /dev/null
+++ b/dev-python/python3-openid/Manifest
@@ -0,0 +1 @@
+DIST python3-openid-3.0.4_p1.tar.gz 306465 SHA256 eb78cb2288805ee1c51eeaa8941c61be796ac1126e1ca0a2c49dc7582b0c0407 SHA512 6e710dc47c3c1d4f31937b8a4dcf546cdb06128ffddbc3b2e2a2a9e09a8a3a7122326ba2137a92269f58a29f1b264c2e942610098f91f237d45f5ff0887faea0 WHIRLPOOL 8812d4fd0c0ffd3e40f4f8414463f05cf62b37d388039a5287ac412c452a8e7cb142accafdfbd9e32d36cde3d4a6d96954742b542fdc92168d31574de185c152
diff --git a/dev-python/python3-openid/files/django-tests.patch b/dev-python/python3-openid/files/django-tests.patch
new file mode 100644
index 00000000000..e5fcda877f3
--- /dev/null
+++ b/dev-python/python3-openid/files/django-tests.patch
@@ -0,0 +1,32 @@
+diff --git a/examples/djopenid/consumer/urls.py b/examples/djopenid/consumer/urls.py
+index d55e056..3926e27 100644
+--- a/examples/djopenid/consumer/urls.py
++++ b/examples/djopenid/consumer/urls.py
+@@ -1,5 +1,5 @@
+
+-from django.conf.urls.defaults import *
++from django.conf.urls import *
+
+ urlpatterns = patterns(
+ 'djopenid.consumer.views',
+diff --git a/examples/djopenid/server/urls.py b/examples/djopenid/server/urls.py
+index d6931a4..e61de52 100644
+--- a/examples/djopenid/server/urls.py
++++ b/examples/djopenid/server/urls.py
+@@ -1,5 +1,5 @@
+
+-from django.conf.urls.defaults import *
++from django.conf.urls import *
+
+ urlpatterns = patterns(
+ 'djopenid.server.views',
+diff --git a/examples/djopenid/urls.py b/examples/djopenid/urls.py
+index d91ee1f..16af9a1 100644
+--- a/examples/djopenid/urls.py
++++ b/examples/djopenid/urls.py
+@@ -1,4 +1,4 @@
+-from django.conf.urls.defaults import *
++from django.conf.urls import *
+
+ urlpatterns = patterns(
+ '',
diff --git a/dev-python/python3-openid/metadata.xml b/dev-python/python3-openid/metadata.xml
new file mode 100644
index 00000000000..d7b5f819723
--- /dev/null
+++ b/dev-python/python3-openid/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">necaris/python3-openid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/python3-openid/python3-openid-3.0.4_p1.ebuild b/dev-python/python3-openid/python3-openid-3.0.4_p1.ebuild
new file mode 100644
index 00000000000..ddbe4fd9673
--- /dev/null
+++ b/dev-python/python3-openid/python3-openid-3.0.4_p1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit vcs-snapshot distutils-r1
+
+DESCRIPTION="Python 3 port of the python-openid library"
+HOMEPAGE="https://github.com/necaris/python3-openid https://pypi.python.org/pypi/python3-openid"
+SRC_URI="https://github.com/necaris/${PN}/archive/47a15d30b962a4316473ae9909b3405773d78181.tar.gz -> ${P}.tar.gz"
+#https://github.com/necaris/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="examples test"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/django-tests.patch
+)
+
+python_test() {
+ "${S}"/run_tests.sh || die "tests fail on ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES="examples/."
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pythondialog/Manifest b/dev-python/pythondialog/Manifest
new file mode 100644
index 00000000000..a7df16bf9e5
--- /dev/null
+++ b/dev-python/pythondialog/Manifest
@@ -0,0 +1,2 @@
+DIST python3-pythondialog-3.2.2.tar.bz2 1412368 SHA256 bb104bd0512f9eda046b0cda53b5607d68de72b585cd8d5a1eebd549d8f2af99 SHA512 58b84c0dd7b71ec9d1e60c4802cfc8e6cc72f79b8b6accd387553c685a92367d242746065bac6cb1c9d501ac291d9307cb2bb6b26694e9f24a3c5d6637a5bb8e WHIRLPOOL 8e899f910eaaa5112403aed8adcd2e8fc9db371a5023bafdb5d2645b2ade716710b1c826d9208055fc510e8777751f8a43ef501db11c04827b93cb3040f4d793
+DIST python3-pythondialog-3.3.0.tar.bz2 1827891 SHA256 e4ace5b09d712992b7327249e375e49608127666679b2ca9fd48141e218ec998 SHA512 b651593f077f6679be030182ac5f14a02d8bad86206c2733ba8b655d346809a32ea391de91e35101d400c55d9e8ecefaf6f1ba25fec036246186e13530f43a1f WHIRLPOOL 267a2ee4215fd53d7faaf88a02ee544e88eafdd5b1f4c45c4ba535fe46dbed41a1ebae72b0dae00fedb30cfb1fcd245e0439077f538d128137e8c8caca6bba70
diff --git a/dev-python/pythondialog/metadata.xml b/dev-python/pythondialog/metadata.xml
new file mode 100644
index 00000000000..fc12076b9b0
--- /dev/null
+++ b/dev-python/pythondialog/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pythondialog</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pythondialog/pythondialog-3.2.2.ebuild b/dev-python/pythondialog/pythondialog-3.2.2.ebuild
new file mode 100644
index 00000000000..896573b9dc0
--- /dev/null
+++ b/dev-python/pythondialog/pythondialog-3.2.2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{3_3,3_4} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python module for making simple text/console-mode user interfaces"
+HOMEPAGE="http://pythondialog.sourceforge.net/"
+SRC_URI="mirror://sourceforge/pythondialog//${PV}/python3-${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc sparc x86"
+IUSE="doc examples"
+
+RDEPEND="dev-util/dialog"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pythondialog/pythondialog-3.3.0.ebuild b/dev-python/pythondialog/pythondialog-3.3.0.ebuild
new file mode 100644
index 00000000000..db6497f13f5
--- /dev/null
+++ b/dev-python/pythondialog/pythondialog-3.3.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{3_3,3_4} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python module for making simple text/console-mode user interfaces"
+HOMEPAGE="http://pythondialog.sourceforge.net/"
+SRC_URI="mirror://sourceforge/pythondialog//${PV}/python3-${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="doc examples"
+
+RDEPEND="dev-util/dialog"
+DEPEND="doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i doc/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pythong/Manifest b/dev-python/pythong/Manifest
new file mode 100644
index 00000000000..596a041c596
--- /dev/null
+++ b/dev-python/pythong/Manifest
@@ -0,0 +1,2 @@
+DIST python.pdf 2547987 SHA256 20e17f365b9f2c5ab0bed656a1ff8797b22b079a238a278674879b807bfd9dd4 SHA512 9d16eb39ff5996be70aa41cb758e73adf1fa72a7e83613626cf6f519def99fd30169a87b1e918902e1aecfb75d925cb7e49d9ad5733dd5274b9a351adaaf201e WHIRLPOOL 47fbcc853901e1df938e20fca1b18adca8985607d1edae60132b5b9490e8f6c1af39733186d079fac32e7e26a28bf7148062e108ad6c748dd110c2860520a49b
+DIST pythonG-2_1_5.tgz 397754 SHA256 6bc89217bfd89717eddd3b27682bb783446bcd3d87ed450e943e0369fa2c9243 SHA512 8a8c3ada425a1d7a0565e495494a8edfcf8b4224cb93ea843669e4d0b2ca9e122d038c728ff8242885e0b320caa6db8ef8f721f99c423b7a8f87a83a4e6f51c6 WHIRLPOOL 072f65639f5a371bf9a27885bc4f515e91f7abe0d6599457f167a7a81e493d8e12bc83d1520d5278421bc34bd1fd6c1c35d849dc653ea8754364c8c81528153e
diff --git a/dev-python/pythong/metadata.xml b/dev-python/pythong/metadata.xml
new file mode 100644
index 00000000000..ee7e8b2450a
--- /dev/null
+++ b/dev-python/pythong/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pythong/pythong-2.1.5-r2.ebuild b/dev-python/pythong/pythong-2.1.5-r2.ebuild
new file mode 100644
index 00000000000..989a5417aba
--- /dev/null
+++ b/dev-python/pythong/pythong-2.1.5-r2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+PYTHON_REQ_USE="tk"
+
+inherit python-single-r1
+
+MY_PN="pythonG"
+MY_PV=${PV/_/-}
+MY_PV=${MY_PV//\./_}
+
+DESCRIPTION="Nice and powerful spanish development environment for Python"
+HOMEPAGE="http://www3.uji.es/~dllorens/PythonG/principal.html"
+SRC_URI="
+ http://www3.uji.es/~dllorens/downloads/pythong/linux/${MY_PN}-${MY_PV}.tgz
+ doc? ( http://marmota.act.uji.es/MTP/pdf/python.pdf )"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ia64 x86"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-lang/tk-8.3.4:0=
+ virtual/pmw[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_PN}-${MY_PV}"
+
+src_prepare() {
+ sed \
+ -e "s:^\(fullpath = \).*:\1'$(python_get_sitedir)':" \
+ -e "/^url_docFuncPG/s:'+fullpath+':/usr/share/doc/${PF}:" \
+ -i pythong.py || die "sed in pythong.py failed"
+}
+
+src_install() {
+ python_domodule modulepythong.py libpythong
+ python_doscript pythong.py
+
+ dodoc leeme.txt
+ insinto /usr/share/doc/${PF}
+ doins -r {LICENCIA,MANUAL,demos}
+ rm -fr "${ED}/usr/share/doc/${PF}/demos/modulepythong.py" || die
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}
+ doins "${DISTDIR}"/python.pdf
+ fi
+ python_optimize
+}
diff --git a/dev-python/pythonmagick/Manifest b/dev-python/pythonmagick/Manifest
new file mode 100644
index 00000000000..fd7ed3bb58b
--- /dev/null
+++ b/dev-python/pythonmagick/Manifest
@@ -0,0 +1,2 @@
+DIST PythonMagick-0.9.11.tar.xz 257276 SHA256 f015b1392d62272bf4daf3e23865348567b95745f97ccf10c997e93cfa66dbbd SHA512 de4c6348ef9956a92e5527b28fc11b9beabd1f6d5e92751959819e74e4ca8d465d7db3793f30824474281c8d74fab26431e0b5d9ac4907938fd9a3409ec86d06 WHIRLPOOL 604c00198b6013bf54a69444258c9456786e11c8e9e51cde490658ecba5902fb9e3c69e8d397ec19ba5f2f87a552cc8efa40f7ff95ab8b0a9cd864e710520086
+DIST PythonMagick-0.9.12.tar.xz 256872 SHA256 4b108324460aa497627a0fc2547f946253558cec3457a35f9f0e107adac833d0 SHA512 accdc3e89528d397eb608ab00fe015fe5069130c228631a024c3b4c6ecb38239d6329f66fa1d56b3ac48ff20caed5243c5dd5cfd920b0ea3867dc64bb38e5859 WHIRLPOOL a8051f2661f54eeb031073eda5feab6612e64932f3ba0936e46917d9834f582c5b9dc50b6d52afaa33d81cbe4e3555b9eb350ffe9caf01097d3f69127fc802ef
diff --git a/dev-python/pythonmagick/files/pythonmagick-0.9.10-Makefile.am.patch b/dev-python/pythonmagick/files/pythonmagick-0.9.10-Makefile.am.patch
new file mode 100644
index 00000000000..760aa2293f2
--- /dev/null
+++ b/dev-python/pythonmagick/files/pythonmagick-0.9.10-Makefile.am.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -27,7 +27,7 @@
+ _PythonMagick_la_LDFLAGS = -avoid-version -module $(BOOST_LDFLAGS)
+
+ # And the libraries to include
+-_PythonMagick_la_LIBADD = pythonmagick_src/libpymagick.la helpers_src/libhelper.la $(BOOST_LDFLAGS) -lboost_python $(MAGICKPP_LIBS) $(MAGICK_LIBS)
++_PythonMagick_la_LIBADD = pythonmagick_src/libpymagick.la helpers_src/libhelper.la $(BOOST_LDFLAGS) $(BOOST_PYTHON_LIB) $(MAGICKPP_LIBS) $(MAGICK_LIBS)
+
+ EXTRA_DIST = autogen.pl SConstruct pyste_src LICENSE
+
diff --git a/dev-python/pythonmagick/files/pythonmagick-0.9.10-ax_boost_python.patch b/dev-python/pythonmagick/files/pythonmagick-0.9.10-ax_boost_python.patch
new file mode 100644
index 00000000000..0cc3e8cf64f
--- /dev/null
+++ b/dev-python/pythonmagick/files/pythonmagick-0.9.10-ax_boost_python.patch
@@ -0,0 +1,18 @@
+--- a/m4/ax_boost_python.m4
++++ b/m4/ax_boost_python.m4
+@@ -82,10 +82,11 @@
+ ax_python_lib=$with_boost_python
+ ax_boost_python_lib=boost_python-$with_boost_python
+ fi])
+- BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
+- for ax_lib in `ls $BOOSTLIBDIR/libboost_python*.so* $BOOSTLIBDIR/libboost_python*.dylib* $BOOSTLIBDIR/libboost_python*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_python.*\)\.so.*$;\1;' -e 's;^lib\(boost_python.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_python.*\)\.a.*$;\1;' ` $ax_python_lib $ax_boost_python_lib boost_python; do
+- AC_CHECK_LIB($ax_lib, exit, [BOOST_PYTHON_LIB=$ax_lib break], , [$PYTHON_LDFLAGS])
+- done
++ LDFLAGS_SAVED="$LDFLAGS"
++ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
++ export LDFLAGS
++ AC_CHECK_LIB($ax_python_lib, exit, [BOOST_PYTHON_LIB=-l$ax_python_lib], , [$PYTHON_LDFLAGS])
++ LDFLAGS="$LDFLAGS_SAVED"
+ AC_SUBST(BOOST_PYTHON_LIB)
+ fi
+ ])dnl
diff --git a/dev-python/pythonmagick/metadata.xml b/dev-python/pythonmagick/metadata.xml
new file mode 100644
index 00000000000..36f667ac9d8
--- /dev/null
+++ b/dev-python/pythonmagick/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ An object-oriented Python interface to ImageMagick.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pythonmagick/pythonmagick-0.9.11.ebuild b/dev-python/pythonmagick/pythonmagick-0.9.11.ebuild
new file mode 100644
index 00000000000..dfa2c022dcc
--- /dev/null
+++ b/dev-python/pythonmagick/pythonmagick-0.9.11.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="modules"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+WANT_AUTOMAKE="1.12"
+
+inherit autotools-utils eutils python-r1
+
+MY_PN="PythonMagick"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python bindings for ImageMagick"
+HOMEPAGE="http://www.imagemagick.org/script/api.php"
+SRC_URI="mirror://imagemagick/python/${MY_P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.48[python,${PYTHON_USEDEP}]
+ >=media-gfx/imagemagick-6.4
+ <media-gfx/imagemagick-6.9.1
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.10-Makefile.am.patch
+ "${FILESDIR}"/${PN}-0.9.10-ax_boost_python.patch
+)
+
+src_configure() {
+ local myeconfargs=( --disable-static )
+
+ python_configure() {
+ if ! python_is_python3; then
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+ autotools-utils_src_configure --with-boost-python=boost_python-${EPYTHON#python}
+ }
+
+ python_parallel_foreach_impl python_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+}
diff --git a/dev-python/pythonmagick/pythonmagick-0.9.12.ebuild b/dev-python/pythonmagick/pythonmagick-0.9.12.ebuild
new file mode 100644
index 00000000000..5f446489e9e
--- /dev/null
+++ b/dev-python/pythonmagick/pythonmagick-0.9.12.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="modules"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+WANT_AUTOMAKE="1.12"
+
+inherit autotools-utils eutils python-r1
+
+MY_PN="PythonMagick"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python bindings for ImageMagick"
+HOMEPAGE="http://www.imagemagick.org/script/api.php"
+SRC_URI="mirror://imagemagick/python/${MY_P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ >=dev-libs/boost-1.48[python,${PYTHON_USEDEP}]
+ >=media-gfx/imagemagick-6.9.1
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.10-Makefile.am.patch
+ "${FILESDIR}"/${PN}-0.9.10-ax_boost_python.patch
+)
+
+src_configure() {
+ local myeconfargs=( --disable-static )
+
+ python_configure() {
+ if ! python_is_python3; then
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+ autotools-utils_src_configure --with-boost-python=boost_python-${EPYTHON#python}
+ }
+
+ python_parallel_foreach_impl python_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_install() {
+ python_foreach_impl autotools-utils_src_install
+}
diff --git a/dev-python/pythonutils/Manifest b/dev-python/pythonutils/Manifest
new file mode 100644
index 00000000000..723c04b1881
--- /dev/null
+++ b/dev-python/pythonutils/Manifest
@@ -0,0 +1 @@
+DIST pythonutils-0.4.0.zip 313577 SHA256 141477cb09ccd51b8a13af746dccbbc16cb0ac7f23187b33e75d4d9fdd4763ea SHA512 1759f1f267a6dfc2252d2a9a90fcf46f6613ee7e9dc60b6484d434443e7bb1dbc748134ec1355dd904a615d1e8a3874386c482a0ca98ffb51cdf3d9fd4f6999c WHIRLPOOL d5e98f51c709849931c9b2e59112208fe5c4d5ad11e472533eb63e6d962479b148fcad396722557f8be010c5d279bfc50ee4883d1f5c06305fade1b107be156d
diff --git a/dev-python/pythonutils/metadata.xml b/dev-python/pythonutils/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pythonutils/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pythonutils/pythonutils-0.4.0-r1.ebuild b/dev-python/pythonutils/pythonutils-0.4.0-r1.ebuild
new file mode 100644
index 00000000000..c601916e4f7
--- /dev/null
+++ b/dev-python/pythonutils/pythonutils-0.4.0-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Voidspace Python modules"
+HOMEPAGE="http://www.voidspace.org.uk/python/pythonutils.html"
+SRC_URI="http://www.voidspace.org.uk/downloads/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+python_install_all() {
+ dodoc docs/*.txt
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
new file mode 100644
index 00000000000..5588be367c0
--- /dev/null
+++ b/dev-python/pytools/Manifest
@@ -0,0 +1 @@
+DIST pytools-2014.3.5.tar.gz 47522 SHA256 62a77a3c1865d5254ce212473da2af04f43d82eb0020ae9a009f97408e74968e SHA512 94d2b51cdd87dd11263fdc7d04040979240dea0e0090da0ff325112df9770aacb0849e20812b90f807024ad3815313bc344307a30add8f6795a70e7ebd6adfaa WHIRLPOOL bc3b4c118627d790a1d5bf07f1a4f9e5a4a76a1b38d43b9e6cd3130b8f8415a87807fef4b82ebda778a255e7ed71616f7c8e515fd20f1dad56bdac28023247bf
diff --git a/dev-python/pytools/metadata.xml b/dev-python/pytools/metadata.xml
new file mode 100644
index 00000000000..52f16cdf23f
--- /dev/null
+++ b/dev-python/pytools/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pytools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytools/pytools-2014.3.5.ebuild b/dev-python/pytools/pytools-2014.3.5.ebuild
new file mode 100644
index 00000000000..a055db76227
--- /dev/null
+++ b/dev-python/pytools/pytools-2014.3.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A collection of tools missing from the Python standard library"
+HOMEPAGE="http://mathema.tician.de/software/pytools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/decorator-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-0.7.2[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pytools/pytools-9999.ebuild b/dev-python/pytools/pytools-9999.ebuild
new file mode 100644
index 00000000000..d14a216c182
--- /dev/null
+++ b/dev-python/pytools/pytools-9999.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+EGIT_MIN_CLONE_TYPE=single
+
+inherit distutils-r1 git-r3
+
+DESCRIPTION="A collection of tools missing from the Python standard library"
+HOMEPAGE="http://mathema.tician.de/software/pytools"
+EGIT_REPO_URI="http://git.tiker.net/trees/pytools.git"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+DEPEND="
+ >=dev-python/setuptools-0.7.2[${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ py.test -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pytz/Manifest b/dev-python/pytz/Manifest
new file mode 100644
index 00000000000..e785fb2ce5d
--- /dev/null
+++ b/dev-python/pytz/Manifest
@@ -0,0 +1,5 @@
+DIST pytz-2013d.tar.bz2 204865 SHA256 2407e5b3d69c87915e7b3d86746ca3909153ddee82899b8f5cb70a4fd31b715e SHA512 fc687a2040c40d20cab974b11d18446c761504c3faf81caf0853149fd257aa939e5feb2367006463d443659b4ea7c5a7ef409f9b10329211eb920011ddb8c64f WHIRLPOOL d7411701850a27975b645bce2dcfb4bcfaeef85f12d82a0826372def35ec2495aa06cbdd774efc533114793b09442501f50bea30633a95d85dccff990ae29aea
+DIST pytz-2014.10.tar.bz2 166213 SHA256 387f968fde793b142865802916561839f5591d8b4b14c941125eb0fca7e4e58d SHA512 870ab2dd4e7ebd0e5eb22fe888978f17678ba4ae72aca5106ca5a5fbdb6c4204de18ccbe27124a9f252546b030872d070c016350602aa5f7d1b68c43fa5367ec WHIRLPOOL d1f9cc2a1fcf67d22cad7e61d7634dd5d1c575bc47d72159a5394cdc9804c144093a516b3b8e90d685f4f9a469eb7e4bae3909ea8dcf839369cb3f1454919081
+DIST pytz-2014.9.tar.bz2 166230 SHA256 4ba0ab74fa7f34f77ff236ee2157454d1c2aaeaaa25932363bfa1be6cb82dbd6 SHA512 4034a33489be3059530d8ddbbba283da117b692a7ca2975835e5626d1c79be7317bade911b52f981b1bd94ec3ea15b0db1bb4adb4c3810af7ad66e15dec1313d WHIRLPOOL b0af01986dee4a1beeb957fb662f9ece373d3d0d033c3c2a78ec49b01e2d05aa596110460231913a8d6b2a3496a90be98041bc2fa7ce6ded32cf7c62340f0783
+DIST pytz-2015.2.tar.bz2 166796 SHA256 3e15b416c9a2039c1a51208b2cd3bb4ffd796cd19e601b1d2657afcb77c3dc90 SHA512 43c03c99e0f0482053174e94ab0cb6d22c65b0af416cfdc28e39a12145c62d751722befedd98395c235566d3deecf8b5aad96c73c4661d994da598213d99855e WHIRLPOOL 483d9daacda16acfb3149c8a73f21241a27d0b32b312b8dbc4af84d08153ce04e2ff169cb8abc61b5381eac2cab68ce4d0083a81827c14f8e17b970ac3b248d9
+DIST pytz-2015.4.tar.bz2 157361 SHA256 a78b484d5472dd8c688f8b3eee18646a25c66ce45b2c26652850f6af9ce52b17 SHA512 ade31780d5d91cb519e69b38f8828e1cf94b5b388a3efd80db42b7a5e5603f43f5726f7aecfd08c78d3637a3017910f3ed1a7727ec291f6579a41882c6289ca4 WHIRLPOOL 7804617d21de5e6212ccc1f17651c8e76a94374af22f542cd6eb54fc6951d0b6ec42cd7623162074994573b6bba492d92397a584277b423742c15b68cb930ae7
diff --git a/dev-python/pytz/files/pytz-2009h-zoneinfo-noinstall.patch b/dev-python/pytz/files/pytz-2009h-zoneinfo-noinstall.patch
new file mode 100644
index 00000000000..2e970957988
--- /dev/null
+++ b/dev-python/pytz/files/pytz-2009h-zoneinfo-noinstall.patch
@@ -0,0 +1,32 @@
+From e43745593e4627de8027587cb3b4a465c93fa0b1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Wed, 19 Dec 2012 19:22:29 +0100
+Subject: [PATCH] Do not install zoneinfo files.
+
+---
+ setup.py | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index c8152d5..8f13279 100644
+--- a/setup.py
++++ b/setup.py
+@@ -13,15 +13,8 @@ me = 'Stuart Bishop'
+ memail = 'stuart@stuartbishop.net'
+ packages = ['pytz']
+ resources = ['zone.tab', 'locales/pytz.pot']
+-for dirpath, dirnames, filenames in os.walk(os.path.join('pytz', 'zoneinfo')):
+- # remove the 'pytz' part of the path
+- basepath = dirpath.split(os.path.sep, 1)[1]
+- resources.extend([os.path.join(basepath, filename)
+- for filename in filenames])
+ package_data = {'pytz': resources}
+
+-assert len(resources) > 10, 'zoneinfo files not found!'
+-
+ setup (
+ name='pytz',
+ version=pytz.VERSION,
+--
+1.8.0.2
+
diff --git a/dev-python/pytz/files/pytz-2009j-zoneinfo.patch b/dev-python/pytz/files/pytz-2009j-zoneinfo.patch
new file mode 100644
index 00000000000..ee05d9f5efa
--- /dev/null
+++ b/dev-python/pytz/files/pytz-2009j-zoneinfo.patch
@@ -0,0 +1,14 @@
+Use the system zoneinfo from sys-libs/timezone-data.
+
+--- pytz/__init__.py
++++ pytz/__init__.py
+@@ -54,8 +54,7 @@
+ for part in name_parts:
+ if part == os.path.pardir or os.path.sep in part:
+ raise ValueError('Bad path segment: %r' % part)
+- filename = os.path.join(os.path.dirname(__file__),
+- 'zoneinfo', *name_parts)
++ filename = os.path.join('/usr/share/zoneinfo', *name_parts)
+ if not os.path.exists(filename) and resource_stream is not None:
+ # http://bugs.launchpad.net/bugs/383171 - we avoid using this
+ # unless absolutely necessary to help when a broken version of
diff --git a/dev-python/pytz/metadata.xml b/dev-python/pytz/metadata.xml
new file mode 100644
index 00000000000..4981031aef4
--- /dev/null
+++ b/dev-python/pytz/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ pytz brings the Olson tz database into Python. This library allows
+ accurate and cross platform timezone calculations using Python 2.3
+ or higher. It also solves the issue of ambiguous times at the end of
+ daylight savings, which you can read more about in the Python
+ Library Reference (datetime.tzinfo).
+ Amost all (over 540) of the Olson timezones are supported.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">pytz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pytz/pytz-2013d.ebuild b/dev-python/pytz/pytz-2013d.ebuild
new file mode 100644
index 00000000000..61ad450e4ab
--- /dev/null
+++ b/dev-python/pytz/pytz-2013d.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+inherit distutils-r1
+
+DESCRIPTION="World timezone definitions for Python"
+HOMEPAGE="http://pypi.python.org/pypi/pytz http://pytz.sourceforge.net/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=sys-libs/timezone-data-${PV}"
+RDEPEND="${DEPEND}"
+
+DOCS=( CHANGES.txt )
+
+PATCHES=(
+ # Use timezone-data zoneinfo.
+ "${FILESDIR}/${PN}-2009j-zoneinfo.patch"
+ # ...and do not install a copy of it.
+ "${FILESDIR}/${PN}-2009h-zoneinfo-noinstall.patch"
+)
+
+python_test() {
+ "${PYTHON}" pytz/tests/test_tzinfo.py
+}
diff --git a/dev-python/pytz/pytz-2014.10.ebuild b/dev-python/pytz/pytz-2014.10.ebuild
new file mode 100644
index 00000000000..eac9d86b76f
--- /dev/null
+++ b/dev-python/pytz/pytz-2014.10.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="World timezone definitions for Python"
+HOMEPAGE="http://pythonhosted.org/pytz/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=sys-libs/timezone-data-2014i"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # Use timezone-data zoneinfo.
+ "${FILESDIR}/${PN}-2009j-zoneinfo.patch"
+ # ...and do not install a copy of it.
+ "${FILESDIR}/${PN}-2009h-zoneinfo-noinstall.patch"
+)
+
+python_test() {
+ "${PYTHON}" pytz/tests/test_tzinfo.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pytz/pytz-2014.9.ebuild b/dev-python/pytz/pytz-2014.9.ebuild
new file mode 100644
index 00000000000..c5e7d016753
--- /dev/null
+++ b/dev-python/pytz/pytz-2014.9.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="World timezone definitions for Python"
+HOMEPAGE="http://pythonhosted.org/pytz/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=sys-libs/timezone-data-2014i"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # Use timezone-data zoneinfo.
+ "${FILESDIR}/${PN}-2009j-zoneinfo.patch"
+ # ...and do not install a copy of it.
+ "${FILESDIR}/${PN}-2009h-zoneinfo-noinstall.patch"
+)
+
+python_test() {
+ "${PYTHON}" pytz/tests/test_tzinfo.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pytz/pytz-2015.2.ebuild b/dev-python/pytz/pytz-2015.2.ebuild
new file mode 100644
index 00000000000..20915b03050
--- /dev/null
+++ b/dev-python/pytz/pytz-2015.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="World timezone definitions for Python"
+HOMEPAGE="http://pythonhosted.org/pytz/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=sys-libs/timezone-data-2014i"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # Use timezone-data zoneinfo.
+ "${FILESDIR}/${PN}-2009j-zoneinfo.patch"
+ # ...and do not install a copy of it.
+ "${FILESDIR}/${PN}-2009h-zoneinfo-noinstall.patch"
+)
+
+python_test() {
+ "${PYTHON}" pytz/tests/test_tzinfo.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pytz/pytz-2015.4.ebuild b/dev-python/pytz/pytz-2015.4.ebuild
new file mode 100644
index 00000000000..6768e935ede
--- /dev/null
+++ b/dev-python/pytz/pytz-2015.4.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="World timezone definitions for Python"
+HOMEPAGE="http://pythonhosted.org/pytz/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=sys-libs/timezone-data-2014i"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # Use timezone-data zoneinfo.
+ "${FILESDIR}"/${PN}-2009j-zoneinfo.patch
+ # ...and do not install a copy of it.
+ "${FILESDIR}"/${PN}-2009h-zoneinfo-noinstall.patch
+)
+
+python_test() {
+ "${PYTHON}" pytz/tests/test_tzinfo.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyudev/Manifest b/dev-python/pyudev/Manifest
new file mode 100644
index 00000000000..dcada972fcf
--- /dev/null
+++ b/dev-python/pyudev/Manifest
@@ -0,0 +1 @@
+DIST pyudev-0.16.1.tar.gz 74953 SHA256 765d1c14bd9bd031f64e2612225621984cb2bbb8cbc0c03538bcc4c735ff1c95 SHA512 7f62c6794027411583f874bdf746de457f19048955867d30008bc1ee0d30040a97f73b9e52ae3645d469fc401128703d4e703e294b85481e927ffaba27e45e6a WHIRLPOOL 4c366a1eed92bf274ef84eab6242beb09cd6e906556f6ccb24113fafec2dcc47b8da94487505473fc6f7b39539cdc2809cef2d07a1ab8c0616fc73efba9b2e1a
diff --git a/dev-python/pyudev/metadata.xml b/dev-python/pyudev/metadata.xml
new file mode 100644
index 00000000000..3424bf98479
--- /dev/null
+++ b/dev-python/pyudev/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">pyudev is a Python binding to libudev, the hardware management
+ library and service found in modern linux systems.</longdescription>
+ <use>
+ <flag name="pygobject">Install PyGobject binding</flag>
+ <flag name="pyqt4">Install PyQt4 binding</flag>
+ <flag name="pyside">Install PySide binding</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">pyudev</remote-id>
+ <remote-id type="github">pyudev/pyudev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyudev/pyudev-0.16.1-r1.ebuild b/dev-python/pyudev/pyudev-0.16.1-r1.ebuild
new file mode 100644
index 00000000000..eefe667b592
--- /dev/null
+++ b/dev-python/pyudev/pyudev-0.16.1-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python binding to libudev"
+HOMEPAGE="http://pyudev.readthedocs.org https://github.com/pyudev/pyudev"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE="pygobject pyqt4 pyside test"
+
+RDEPEND="virtual/udev
+ pygobject? ( dev-python/pygobject:2[$(python_gen_usedep 'python2*')] )
+ pyqt4? ( dev-python/PyQt4[${PYTHON_USEDEP}] )
+ pyside? ( dev-python/pyside[$(python_gen_usedep '!(python3_3)')] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+DOCS=( CHANGES.rst README.rst )
+
+REQUIRED_USE="pygobject? ( || ( $(python_gen_useflags 'python2*') ) )
+ pyside? ( $(python_gen_useflags '!(python3_3)') )"
+
+python_prepare_all() {
+ # tests are known to pass then fail on alternate runs
+ # tests: fix run_path
+ sed -i -e "s|== \('/run/udev'\)|in (\1,'/dev/.udev')|g" \
+ tests/test_core.py || die
+
+ if ! use pygobject; then
+ rm pyudev/glib.py || die
+ sed -i -e "s|[, ]*GlibBinding()||g" \
+ tests/test_observer.py || die
+ fi
+ if ! use pyqt4; then
+ rm pyudev/pyqt4.py || die
+ sed -i -e "s|Qt4Binding('PyQt4')[, ]*||g" \
+ tests/test_observer.py || die
+ fi
+ if ! use pyside; then
+ rm pyudev/pyside.py || die
+ sed -i -e "s|Qt4Binding('PySide')[, ]*||g" \
+ tests/test_observer.py || die
+ fi
+ if ! use pyqt4 && ! use pyside; then
+ rm pyudev/_qt_base.py || die
+ fi
+ if ! use pyqt4 && ! use pyside && ! use pygobject; then
+ rm tests/test_observer.py || die
+ fi
+
+ ewarn "If your PORTAGE_TMPDIR is longer in length then '/var/tmp/',"
+ ewarn "change it to /var/tmp to ensure tests will pass."
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ py.test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyusb/Manifest b/dev-python/pyusb/Manifest
new file mode 100644
index 00000000000..2125e571229
--- /dev/null
+++ b/dev-python/pyusb/Manifest
@@ -0,0 +1,2 @@
+DIST pyusb-0.4.3.tar.gz 16242 SHA256 3c08b292886b7001ab088345af4d0dfe3e7d37bfc4b2bdcd7edb564ea3ef04d5 SHA512 efe90f910cd8b02646de4ec47e28f6debbcc3c4ff7aa0a45d8355840abfdb079f8e9ac9ce78b785e3f5a26772c5118362e9f4a7a3629985eae2063bc06b53e4a WHIRLPOOL 1a7f231520cf7f1a9777fadad5bfa1f4886172f5a643ba6b9dc5a58bf687629629670d8c12b79844ce692010b8bcd25dede5d6182d3677c9c8beea0cad3b9c7f
+DIST pyusb-1.0.0b2.tar.gz 57747 SHA256 14ec66077bdcd6f1aa9e892a0a35a54bb3c1ec56aa740ead64349c18f0186d19 SHA512 8a69f6cb3e2876a52c1caa0854e98586cf6d7e01225b132b4d37b92814727ae66398282aedbe5e521c509dc3ee6dfc5799b9f22890be7c7a387eb427921cd73b WHIRLPOOL 45c70c339490789e2e1195a8b040358380e5e22438e58344e40b42c795a276d6e30c3efc452791ffe4093287c9d01f44d47be25c07fba925c9198c8f630149ba
diff --git a/dev-python/pyusb/metadata.xml b/dev-python/pyusb/metadata.xml
new file mode 100644
index 00000000000..70519d00177
--- /dev/null
+++ b/dev-python/pyusb/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ pyusb is a python wrapper for the libusb user space USB device library.
+ </longdescription>
+ <maintainer><email>josejx@gentoo.org</email><name>Joseph Jezak</name></maintainer>
+ <upstream>
+ <remote-id type="pypi">pyusb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyusb/pyusb-0.4.3.ebuild b/dev-python/pyusb/pyusb-0.4.3.ebuild
new file mode 100644
index 00000000000..a06a5d98f4f
--- /dev/null
+++ b/dev-python/pyusb/pyusb-0.4.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit distutils flag-o-matic
+
+DESCRIPTION="USB support for Python"
+HOMEPAGE="http://pyusb.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="examples"
+
+### The bus enumeration does not appear to work with libusb-compat
+### A new version based on libusb-1.x is in the works, but not yet released
+DEPEND="virtual/libusb:0"
+RDEPEND="${DEPEND}"
+
+RESTRICT_PYTHON_ABIS="3*"
+
+src_install() {
+ distutils_src_install
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r samples
+ fi
+}
diff --git a/dev-python/pyusb/pyusb-1.0.0_beta2.ebuild b/dev-python/pyusb/pyusb-1.0.0_beta2.ebuild
new file mode 100644
index 00000000000..7f5b3c1c76d
--- /dev/null
+++ b/dev-python/pyusb/pyusb-1.0.0_beta2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_P="${P/_beta/b}"
+
+DESCRIPTION="USB support for Python"
+HOMEPAGE="http://pyusb.sourceforge.net/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE=""
+
+### This version is compatible with both 0.X and 1.X versions of libusb
+DEPEND="virtual/libusb
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS="README.rst docs/tutorial.rst"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/pyutil/Manifest b/dev-python/pyutil/Manifest
new file mode 100644
index 00000000000..b3dcac6f8c8
--- /dev/null
+++ b/dev-python/pyutil/Manifest
@@ -0,0 +1 @@
+DIST pyutil-2.0.0.tar.gz 125079 SHA256 0ca95cb85843c5b09f7b65b5bd6c42d1940e19667b076620585ac45abe4f4fbb SHA512 3704c028fdc3894ae635dabd2bace1af1e805f4158dc6d67eac0c38fa8e7959cd093ad39cb2f539e59dd74e957947464cc8c7aed727835e127311062ed27e60b WHIRLPOOL e8fcdbed85d324732b8216224167f7920cfaf557238f3f70d22ee9afc96d1f72731164b55e1f385b60b0f77f8f42faf4b4db3e3eb55917c92ad004ab7613d447
diff --git a/dev-python/pyutil/metadata.xml b/dev-python/pyutil/metadata.xml
new file mode 100644
index 00000000000..d1ce02ea275
--- /dev/null
+++ b/dev-python/pyutil/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ pyutil -- a library of useful Python functions and classes
+ ==========================================================
+
+ Many of these utilities (or their ancestors) were developed for
+ the Mojo
+ Nation, Mnet, Allmydata.com "Mountain View", Tahoe-LAFS, or
+ SimpleGeo's
+ products. (In the case where the code was developed for a
+ for-profit
+ company, the copyright holder donated the pyutil code to the
+ public under
+ these open source licences.)
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">pyutil</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyutil/pyutil-2.0.0.ebuild b/dev-python/pyutil/pyutil-2.0.0.ebuild
new file mode 100644
index 00000000000..8a6f3c4ea46
--- /dev/null
+++ b/dev-python/pyutil/pyutil-2.0.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="A collection of utilities for Python programmers"
+HOMEPAGE="https://tahoe-lafs.org/trac/pyutil https://pypi.python.org/pypi/pyutil"
+SRC_URI="mirror://pypi/p/pyutil/pyutil-${PV}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_install() {
+ distutils-r1_src_install
+
+ rm -rf "${ED%/}"/usr/share/doc/${PN}
+}
diff --git a/dev-python/pyutmp/Manifest b/dev-python/pyutmp/Manifest
new file mode 100644
index 00000000000..87096ec9bd4
--- /dev/null
+++ b/dev-python/pyutmp/Manifest
@@ -0,0 +1 @@
+DIST pyutmp-0.2.1.tar.gz 33673 SHA256 957ae25bc6997c3b18d8255399eb8409c9f47c9fd47c1ac852e49659bfd54869 SHA512 0b1195b9a485ff9069dc06795f157c4e93e9855c1f1abe904823802e369f32d2fc4676a69e4218aff1aff393ded927ada394f848057f3fdcf45d8c0f8030363c WHIRLPOOL 7813a72d150f4b6bc0c778d68425dd9b763b11a658227237b3330cfb730c56b7c4886587c4901f1c2635f84b189ceb40f8cba7112417c84764988f04df40dfb0
diff --git a/dev-python/pyutmp/metadata.xml b/dev-python/pyutmp/metadata.xml
new file mode 100644
index 00000000000..b22862f219e
--- /dev/null
+++ b/dev-python/pyutmp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyutmp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyutmp/pyutmp-0.2.1.ebuild b/dev-python/pyutmp/pyutmp-0.2.1.ebuild
new file mode 100644
index 00000000000..bb3551b94db
--- /dev/null
+++ b/dev-python/pyutmp/pyutmp-0.2.1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python UTMP wrapper for Un*x systems"
+HOMEPAGE="https://pypi.python.org/pypi/pyutmp http://bmc.github.com/pyutmp/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/pyvorbis/Manifest b/dev-python/pyvorbis/Manifest
new file mode 100644
index 00000000000..3e97c4ee396
--- /dev/null
+++ b/dev-python/pyvorbis/Manifest
@@ -0,0 +1 @@
+DIST pyvorbis-1.4.tar.gz 39045 SHA256 a7154541cea58304feff30752243eab862131c7589d72c200c8ad722d3bf1647 SHA512 c0b5ebb5d22f97b20f56a0b49e43675764fe057afa2d5de22eab9b8b73fb542186e7488cb0ba31b7af433cef1a88e815eb3e88a4609a2657ae5fba1017bdb89c WHIRLPOOL ae1b9025443a987c3dc51e4942ea2f709bee20f93156b8187d2db7a633df342ae9f26605a37da48c22db4bb7bb90fbcc96390ae56d5d2afa5e25d3902d0b0849
diff --git a/dev-python/pyvorbis/files/pyvorbis-1.4-python25.patch b/dev-python/pyvorbis/files/pyvorbis-1.4-python25.patch
new file mode 100644
index 00000000000..18028dc7a8e
--- /dev/null
+++ b/dev-python/pyvorbis/files/pyvorbis-1.4-python25.patch
@@ -0,0 +1,65 @@
+diff -ur pyvorbis-1.4-old/src/pyvorbiscodec.c pyvorbis-1.4/src/pyvorbiscodec.c
+--- pyvorbis-1.4-old/src/pyvorbiscodec.c 2003-05-13 11:17:13.000000000 +0300
++++ pyvorbis-1.4/src/pyvorbiscodec.c 2007-09-20 01:57:54.000000000 +0300
+@@ -118,7 +118,7 @@
+ {
+ vorbis_dsp_clear(PY_DSP(self));
+ Py_XDECREF(((py_dsp *)self)->parent);
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ static PyObject*
+@@ -447,7 +447,7 @@
+ {
+ vorbis_block_clear(PY_BLOCK(self));
+ Py_XDECREF(((py_block *)self)->parent);
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ static PyObject*
+diff -ur pyvorbis-1.4-old/src/pyvorbisfile.c pyvorbis-1.4/src/pyvorbisfile.c
+--- pyvorbis-1.4-old/src/pyvorbisfile.c 2003-12-19 09:11:02.000000000 +0200
++++ pyvorbis-1.4/src/pyvorbisfile.c 2007-09-20 01:59:41.000000000 +0300
+@@ -173,8 +173,7 @@
+ if (ret == NULL) {
+ PyMem_DEL(newobj);
+ return NULL;
+- } else
+- Py_DECREF(ret);
++ }
+
+ return (PyObject *) newobj;
+ }
+@@ -195,7 +194,8 @@
+ fclose(py_self->c_file);
+ }
+
+- PyMem_DEL(self);
++ free(py_self->ovf);
++ PyObject_Del(self);
+ }
+
+ static PyObject *
+diff -ur pyvorbis-1.4-old/src/pyvorbisinfo.c pyvorbis-1.4/src/pyvorbisinfo.c
+--- pyvorbis-1.4-old/src/pyvorbisinfo.c 2003-12-19 09:51:36.000000000 +0200
++++ pyvorbis-1.4/src/pyvorbisinfo.c 2007-09-20 02:01:58.000000000 +0300
+@@ -134,7 +134,7 @@
+ static void
+ py_ov_info_dealloc(PyObject *self)
+ {
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ #define CMP_RET(x) \
+@@ -418,7 +418,7 @@
+ free(ovc_self->vc);
+ }
+
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+
diff --git a/dev-python/pyvorbis/files/pyvorbisfile.c-1.4.patch b/dev-python/pyvorbis/files/pyvorbisfile.c-1.4.patch
new file mode 100644
index 00000000000..5d1d8ffc7c7
--- /dev/null
+++ b/dev-python/pyvorbis/files/pyvorbisfile.c-1.4.patch
@@ -0,0 +1,20 @@
+--- src/pyvorbisfile.c.orig 2003-12-19 07:11:02.000000000 +0000
++++ src/pyvorbisfile.c 2005-09-03 20:02:19.000000000 +0100
+@@ -190,9 +190,6 @@
+ /* If file was opened from a file object, decref it, so it can
+ close */
+ Py_DECREF(py_self->py_file);
+- } else {
+- /* Otherwise, we opened the file and should close it. */
+- fclose(py_self->c_file);
+ }
+
+ PyMem_DEL(self);
+@@ -260,7 +257,6 @@
+
+ retval = ov_open(file, self->ovf, initial, ibytes);
+
+- self->c_file = file;
+ if (retval < 0) {
+ if (fname != NULL)
+ fclose(file);
diff --git a/dev-python/pyvorbis/metadata.xml b/dev-python/pyvorbis/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyvorbis/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyvorbis/pyvorbis-1.4-r4.ebuild b/dev-python/pyvorbis/pyvorbis-1.4-r4.ebuild
new file mode 100644
index 00000000000..5062ba740e4
--- /dev/null
+++ b/dev-python/pyvorbis/pyvorbis-1.4-r4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Python bindings for the ogg.vorbis library"
+HOMEPAGE="http://ekyo.nerim.net/software/pyogg/"
+SRC_URI="http://ekyo.nerim.net/software/pyogg/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=">=dev-python/pyogg-1.1[${PYTHON_USEDEP}]
+ >=media-libs/libogg-1.0
+ >=media-libs/libvorbis-1.0"
+RDEPEND="${DEPEND}"
+
+DOCS=( AUTHORS COPYING ChangeLog NEWS README )
+PATCHES=(
+ "${FILESDIR}/pyvorbisfile.c-1.4.patch"
+ "${FILESDIR}/${P}-python25.patch"
+)
+
+python_configure_all() {
+ tc-export CC
+ "${PYTHON}" config_unix.py --prefix /usr || die "Configuration failed"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ insinto /usr/share/doc/${PF}/examples
+ doins test/*
+}
diff --git a/dev-python/pyvtk/Manifest b/dev-python/pyvtk/Manifest
new file mode 100644
index 00000000000..bc953eea26e
--- /dev/null
+++ b/dev-python/pyvtk/Manifest
@@ -0,0 +1 @@
+DIST PyVTK-0.4.74.tar.gz 25700 SHA256 a34cc4660a85f4828bedf28ff2b4c95baad98fc8f79e2647c59b5ea66c9250c7 SHA512 c3b29dd067339c1708f9757b83a127cbe008b291265181272b69a85c0348bc1388c4914acc24efdefda0421a601eede10af762753e683fbd0518361035313098 WHIRLPOOL 2512351725cbfa744df521b3a4e44179a521a131f3fdcbee78ac6cdbfa7c7c3997a50665b1264d9cd9b9f18e5403854e85eb76c65dea640f1b888da9c66e6b17
diff --git a/dev-python/pyvtk/files/pyvtk-0.4.74.patch b/dev-python/pyvtk/files/pyvtk-0.4.74.patch
new file mode 100644
index 00000000000..651c1f5ec37
--- /dev/null
+++ b/dev-python/pyvtk/files/pyvtk-0.4.74.patch
@@ -0,0 +1,20 @@
+--- PyVTK-0.4.74/lib/__init__.py 2003-04-07 16:56:08.000000000 +0200
++++ PyVTK-0.4.74/lib/__init__.py 2008-12-03 18:08:35.000000000 +0100
+@@ -202,7 +202,7 @@
+ #print 'Reading file',`filename`
+ f = open(filename,'rb')
+ l = f.readline()
+- if not l.strip().replace(' ','').lower() == '#vtkdatafileversion2.0':
++ if not l.strip()[-3:] == '1.0' and not l.strip()[-3:] == '2.0' and not l.strip()[-3:] == '3.0':
+ raise TypeError, 'File '+`filename`+' is not VTK 2.0 format'
+ self.header = f.readline().rstrip()
+ format = f.readline().strip().lower()
+@@ -222,7 +222,7 @@
+ for i in range(2):
+ if only_structure: break
+ if not l: break
+- l = [s.strip() for s in l.lower().split(' ')]
++ l = [s.strip() for s in l.lower().split()]
+ assert len(l)==2 and l[0] in ['cell_data','point_data'], l[0]
+ data = l[0]
+ n = eval(l[1])
diff --git a/dev-python/pyvtk/metadata.xml b/dev-python/pyvtk/metadata.xml
new file mode 100644
index 00000000000..5ef07a39e7e
--- /dev/null
+++ b/dev-python/pyvtk/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/pyvtk/pyvtk-0.4.74.ebuild b/dev-python/pyvtk/pyvtk-0.4.74.ebuild
new file mode 100644
index 00000000000..965f91cf47e
--- /dev/null
+++ b/dev-python/pyvtk/pyvtk-0.4.74.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P=PyVTK-${PV}
+
+DESCRIPTION="Tools for manipulating VTK files in Python"
+HOMEPAGE="http://cens.ioc.ee/projects/pyvtk/"
+SRC_URI="http://cens.ioc.ee/projects/pyvtk/rel-0.x/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}"/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${P}.patch )
diff --git a/dev-python/pywavelets/Manifest b/dev-python/pywavelets/Manifest
new file mode 100644
index 00000000000..c9792ae05e9
--- /dev/null
+++ b/dev-python/pywavelets/Manifest
@@ -0,0 +1 @@
+DIST PyWavelets-0.2.2.zip 528210 SHA256 04b53436f5f2a9b895a1f56e86e16b94632a5d6bcfc076be1110e41cf3071278 SHA512 2cfd2b0e8f90750cc15ca60400101836f97661e52041abd4c032232eba6843b104c01ef2a50f4384afc5b11dd022add03101ef9b8c1b582ca64e84919f609a5b WHIRLPOOL 07dbec72901deb262a5f52954becee8ff4c9749fa311c206351db86c7612513dec329c6bcbad8e4ab6f1f1043ebfd08cfd8af762df95388789da13dfe6747e2a
diff --git a/dev-python/pywavelets/metadata.xml b/dev-python/pywavelets/metadata.xml
new file mode 100644
index 00000000000..610e1b9f018
--- /dev/null
+++ b/dev-python/pywavelets/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-mathematics</herd>
+<herd>python</herd>
+<longdescription lang="en">
+ PyWavelets is a Python wavelet transforms module that can perform:
+ * Discrete Wavelet Transform (1D and 2D)
+ * Inverse Discrete Wavelet Transform (1D and 2D)
+ * Stationary Wavelet Transform
+ * Wavelet Packets decomposition and reconstruction
+</longdescription>
+<upstream>
+ <remote-id type="pypi">PyWavelets</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/pywavelets/pywavelets-0.2.2-r1.ebuild b/dev-python/pywavelets/pywavelets-0.2.2-r1.ebuild
new file mode 100644
index 00000000000..d02576960f7
--- /dev/null
+++ b/dev-python/pywavelets/pywavelets-0.2.2-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="${PN/pyw/PyW}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python module for discrete, stationary, and packet wavelet transforms"
+HOMEPAGE="http://www.pybytes.com/pywavelets"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+DEPEND="
+ app-arch/unzip
+ dev-python/cython[${PYTHON_USEDEP}]
+ test? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx )"
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=(CHANGES.txt THANKS.txt)
+
+python_test() {
+ PYTHONPATH="${BUILD_DIR}/lib" \
+ ${EPYTHON} tests/test_perfect_reconstruction.py || die
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -r doc/build/html/*
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins demo/*
+ fi
+}
diff --git a/dev-python/pywcs/Manifest b/dev-python/pywcs/Manifest
new file mode 100644
index 00000000000..2608654411f
--- /dev/null
+++ b/dev-python/pywcs/Manifest
@@ -0,0 +1 @@
+DIST pywcs-1.11-4.8.2.tar.gz 2187116 SHA256 61b2d9abf90f4dce2071dfeed1628b487aa32e27b0c01e9983410557db96ac34 SHA512 595cdb910005ef8348eb84d1e0e3db7e5c925d8f44c8f84d8158729d2a9352811a1e1bee49049a91a033503bc9cc8b39c60b1acd526b2fccdd1a8764ec8a7c1e WHIRLPOOL d0c3cd2a428ab1d25594024f3db4f5b586cd1d3d82074828260942e74742602b8c4010cdcb4f73d32d20e71133dae9c7cb5af49e53aab880d404a9ebaf22cb08
diff --git a/dev-python/pywcs/files/pywcs-1.11-wcslib.patch b/dev-python/pywcs/files/pywcs-1.11-wcslib.patch
new file mode 100644
index 00000000000..14cd4e3dcea
--- /dev/null
+++ b/dev-python/pywcs/files/pywcs-1.11-wcslib.patch
@@ -0,0 +1,126 @@
+--- defsetup.py
++++ defsetup.py
+@@ -78,73 +78,27 @@
+
+ ######################################################################
+ # WCSLIB
+-WCSVERSION = "4.8.2"
+-WCSLIB = "wcslib" # Path to wcslib
+-WCSLIB_PATCHED = "wcslib"
+-WCSLIBC = join(WCSLIB_PATCHED, "C") # Path to wcslib source files
+-WCSFILES = [ # List of wcslib files to compile
+- 'flexed/wcsbth.c',
+- 'flexed/wcspih.c',
+- 'flexed/wcsulex.c',
+- 'flexed/wcsutrn.c',
+- 'cel.c',
+- 'lin.c',
+- 'log.c',
+- 'prj.c',
+- 'spc.c',
+- 'sph.c',
+- 'spx.c',
+- 'tab.c',
+- 'wcs.c',
+- 'wcserr.c',
+- 'wcsfix.c',
+- 'wcshdr.c',
+- 'wcsprintf.c',
+- 'wcsunits.c',
+- 'wcsutil.c']
+-WCSFILES = [join(WCSLIBC, x) for x in WCSFILES]
++from subprocess import Popen, PIPE
++from re import match
+
+-######################################################################
+-# WCSLIB CONFIGURATION
+-
+-# The only configuration parameter needed at compile-time is how to
+-# specify a 64-bit signed integer. Python's ctypes module can get us
+-# that information, but it is only available in Python 2.5 or later.
+-# If we can't be absolutely certain, we default to "long long int",
+-# which is correct on most platforms (x86, x86_64). If we find
+-# platforms where this heuristic doesn't work, we may need to hardcode
+-# for them.
+-def determine_64_bit_int():
+- try:
+- try:
+- import ctypes
+- except ImportError:
+- raise ValueError()
+-
+- if ctypes.sizeof(ctypes.c_longlong) == 8:
+- return "long long int"
+- elif ctypes.sizeof(ctypes.c_long) == 8:
+- return "long int"
+- elif ctypes.sizeof(ctypes.c_int) == 8:
+- return "int"
+- else:
+- raise ValueError()
+-
+- except ValueError:
+- return "long long int"
++def pkgconfig(*packages, **kw):
++ flag_map = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 'libraries'}
++ arg = "--libs --cflags --modversion %s" % ' '.join(packages)
++ for tok in Popen(["pkg-config "+ arg],stdout=PIPE, shell=True).communicate()[0].split():
++ token = tok.decode("utf-8")
++ if(match("[0-9]",token)):
++ kw.setdefault("version",[]).append(token)
++ else:
++ kw.setdefault(flag_map.get(token[:2]), []).append(token[2:])
++ return kw
+
+-h_file = StringIO()
+-h_file.write("""
+-/* WCSLIB library version number. */
+-#define WCSLIB_VERSION %s
+-
+-/* 64-bit integer data type. */
+-#define WCSLIB_INT64 %s
+-""" % (WCSVERSION, determine_64_bit_int()))
+-write_if_different(join(srcroot, 'src', 'wcsconfig.h'), h_file.getvalue())
++WCSLIB = pkgconfig('wcslib')
++WCSVERSION = Popen(["pkg-config --modversion"],stdout=PIPE, shell=True).communicate()[0].split()
+
+ ######################################################################
+ # GENERATE DOCSTRINGS IN C
++
++######################################################################
+ docstrings = {}
+ with open(join(srcroot, 'doc', 'docstrings.py'), 'rb') as fd:
+ docstrings_content = fd.read()
+@@ -233,7 +186,8 @@
+
+ ######################################################################
+ # DISTUTILS SETUP
+-libraries = []
++libraries = WCSLIB['libraries']
++include_dirs = [numpy_include, join(srcroot, "src")] + WCSLIB['include_dirs']
+ define_macros = [('ECHO', None),
+ ('WCSTRIG_MACRO', None),
+ ('PYWCS_BUILD', None),
+@@ -282,13 +236,8 @@
+
+ PYWCS_EXTENSIONS = [
+ Extension('pywcs._pywcs',
+- WCSFILES + PYWCS_SOURCES,
+- include_dirs =
+- [numpy_include,
+- join(srcroot, WCSLIBC),
+- WCSLIBC,
+- join(srcroot, "src")
+- ],
++ PYWCS_SOURCES,
++ include_dirs=include_dirs,
+ define_macros=define_macros,
+ undef_macros=undef_macros,
+ extra_compile_args=extra_compile_args,
+@@ -309,7 +258,6 @@
+ 'ext_modules' : PYWCS_EXTENSIONS,
+ 'data_files' : [
+ ( 'pywcs/include', ['src/*.h']),
+- ( 'pywcs/include/wcslib', [ WCSLIBC + '/*.h'] ),
+ ( 'pywcs/tests/maps', ['lib/pywcs/tests/maps/*.hdr']),
+ ( 'pywcs/tests/spectra', ['lib/pywcs/tests/spectra/*.hdr']),
+ ( 'pywcs/tests/data', ['lib/pywcs/tests/data/*.hdr'])
diff --git a/dev-python/pywcs/metadata.xml b/dev-python/pywcs/metadata.xml
new file mode 100644
index 00000000000..380f3bfe46b
--- /dev/null
+++ b/dev-python/pywcs/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ pywcs is a set of routines for handling the FITS World Coordinate
+ System (WCS) standard. It is a thin wrapper around the high- and
+ mid-level interfaces for wcslib.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/pywcs/pywcs-1.11-r1.ebuild b/dev-python/pywcs/pywcs-1.11-r1.ebuild
new file mode 100644
index 00000000000..ee7041a6c91
--- /dev/null
+++ b/dev-python/pywcs/pywcs-1.11-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+WCS_V=4.8.2
+MYP=${P}-${WCS_V}
+
+DESCRIPTION="Python routines for handling the FITS World Coordinate System"
+HOMEPAGE="https://trac6.assembla.com/astrolib/wiki"
+SRC_URI="http://stsdas.stsci.edu/astrolib/${MYP}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="
+ >=sci-astronomy/wcslib-${WCS_V}
+ virtual/pkgconfig"
+RDEPEND="
+ >=sci-astronomy/wcslib-${WCS_V}
+ virtual/pyfits
+ !<dev-python/astropy-0.3"
+
+# missing data to run tests
+RESTRICT=test
+S="${WORKDIR}/${MYP}"
+
+python_prepare_all(){
+ epatch "${FILESDIR}"/${P}-wcslib.patch
+}
+
+python_test() {
+ nosetests -w "${BUILD_DIR}"/lib || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pywebdav/Manifest b/dev-python/pywebdav/Manifest
new file mode 100644
index 00000000000..cb8d1bca632
--- /dev/null
+++ b/dev-python/pywebdav/Manifest
@@ -0,0 +1 @@
+DIST PyWebDAV-0.9.8.tar.gz 52605 SHA256 510edb31ff8d4ad5a758c94eee4f12e6178ccb69fe70842d8db52098cedb20ec SHA512 a920e63f1241e41acd7cf02f342fc81e321c50866b103690eee3352de3b0d51c0c9473079bb639d65402719158c6c8113b2c1b7e0bfdc0b863ceb290bcde0145 WHIRLPOOL bde4fef6a8dc909e2278eb2b4b7a5077984dcdbb1f55d3354432985cb16a99795b988b384a826a7dd945e12a2b818b647a493e57d440d37ce8906506aff78e9c
diff --git a/dev-python/pywebdav/metadata.xml b/dev-python/pywebdav/metadata.xml
new file mode 100644
index 00000000000..d06b0b30814
--- /dev/null
+++ b/dev-python/pywebdav/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">A WebDAV server implementation in python. It's aim is to provide a
+ simple interface to webdav services to any application which needs it.
+ It can be run as a daemon on *nix systems</longdescription>
+ <upstream>
+ <remote-id type="google-code">pywebdav</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pywebdav/pywebdav-0.9.8-r1.ebuild b/dev-python/pywebdav/pywebdav-0.9.8-r1.ebuild
new file mode 100644
index 00000000000..39fde27528b
--- /dev/null
+++ b/dev-python/pywebdav/pywebdav-0.9.8-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P=${P/pywebdav/PyWebDAV}
+
+DESCRIPTION="WebDAV server written in Python"
+HOMEPAGE="http://code.google.com/p/pywebdav/ http://pypi.python.org/pypi/PyWebDAV"
+SRC_URI="http://pywebdav.googlecode.com/files/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc doc/{ARCHITECTURE,Changes,TODO,interface_class,walker}
+}
diff --git a/dev-python/pywebkitgtk/Manifest b/dev-python/pywebkitgtk/Manifest
new file mode 100644
index 00000000000..dc357fdde8e
--- /dev/null
+++ b/dev-python/pywebkitgtk/Manifest
@@ -0,0 +1 @@
+DIST pywebkitgtk-1.1.8.tar.gz 342370 SHA256 7092212933000f23b3042135f01a371bd6a8f980c6b8d8b9dc7e20a1101d699c SHA512 18de613188f68d97be306af877b5d071758da1d08dfe4d4fa6ec275e931d9513520541747dcdcddacf5edf7e21061956ae2f3842155904c2e77c9a758e98e77f WHIRLPOOL e9bf3d71692682c65006a643fa1055ad06334a777d5e4c417ca8193b4e29d646522cfb67d9706e0ba1d93ecefe7d4734dd5e22456a9094ffbb01cf24b182e223
diff --git a/dev-python/pywebkitgtk/metadata.xml b/dev-python/pywebkitgtk/metadata.xml
new file mode 100644
index 00000000000..ee6dda9ab4b
--- /dev/null
+++ b/dev-python/pywebkitgtk/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>srinclan@gmail.com</email>
+ <name>Sergio Rodriguez</name>
+ </maintainer>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus Rivero</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">pywebkitgtk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pywebkitgtk/pywebkitgtk-1.1.8-r1.ebuild b/dev-python/pywebkitgtk/pywebkitgtk-1.1.8-r1.ebuild
new file mode 100644
index 00000000000..6769cad7531
--- /dev/null
+++ b/dev-python/pywebkitgtk/pywebkitgtk-1.1.8-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools-utils python-r1 virtualx
+
+DESCRIPTION="Python bindings for the WebKit GTK+ port"
+HOMEPAGE="http://code.google.com/p/pywebkitgtk/"
+SRC_URI="http://pywebkitgtk.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE="test"
+
+RDEPEND="dev-python/pygobject:2[${PYTHON_USEDEP}]
+ dev-python/pygtk:2[${PYTHON_USEDEP}]
+ dev-libs/libxslt
+ >=net-libs/webkit-gtk-1.1.15:2"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ local myeconfargs=( --disable-static )
+ python_parallel_foreach_impl autotools-utils_src_configure
+}
+
+src_compile() {
+ python_foreach_impl autotools-utils_src_compile
+}
+
+src_test() {
+ testing() {
+ local test st=0
+ for test in tests/test_*.py; do
+ PYTHONPATH="${BUILD_DIR}/.libs" "${PYTHON}" "${test}"
+ (( st |= $? ))
+ done
+ return ${st}
+ }
+ VIRTUALX_COMMAND=testing python_foreach_impl virtualmake
+}
+
+src_install() {
+ local AUTOTOOLS_PRUNE_LIBTOOL_FILES=all
+ local DOCS=( AUTHORS MAINTAINERS NEWS README )
+ python_foreach_impl autotools-utils_src_install
+}
diff --git a/dev-python/pyx/Manifest b/dev-python/pyx/Manifest
new file mode 100644
index 00000000000..c91a569c572
--- /dev/null
+++ b/dev-python/pyx/Manifest
@@ -0,0 +1,3 @@
+DIST PyX-0.12.1.tar.gz 561989 SHA256 e837b26a8b1c27524cf3f3dd6c0d563451249159edaa2e366d87e7143a867e8e SHA512 4941f5aa21aff3743546495fb073c10d2657ff42b2aff401903498638093d0e31e344cce778980f28a7170c6d29eab72ac074277b9d4088376e8692dc71e55c1 WHIRLPOOL a4d4a21e78b72841ca38dea87296d21f0bc8255e428cb0733fbee9d71c3bfb031d8a9f9fff988dbf0e2af7222553918a9aa924769891c50beb607c6ce3fe2fa4
+DIST PyX-0.13.tar.gz 1237082 SHA256 1952962c965000d8e04a00d1b85c600cdef4588cea88c9face2adbedf21d42c6 SHA512 cab0c22f0862ae20cff92504ededf4fcf5820d5773130fb258de1a95d295ca4fe657b85d5ccd52021a4f84403e6db8eebe9f676fa405781738502456123eb05c WHIRLPOOL 0a6159cd5f2683c70b33aac71278ad6f0df3ae54897d0ab31a9b61897be9b4e531cc41c7772a60a152b3b7a39d383ba669be7401c503704f14cbbf3ceca25c41
+DIST PyX-0.14.tar.gz 2475559 SHA256 b0ea832e97156338010767a7edacbf6147a75cdd5ac1b147bd73afd514eed370 SHA512 328b917e406e29f656dff00ff54fc5b82296cdc4b134f45ef380d0b1e7011311e4c149be59f5089064c183e8ade3adca27a2304b3bafd2e735f256e6de8b8b3b WHIRLPOOL 34ee7b2723618a493d15e2509456e1539acfc9d0010a202c14ba353505ef1394c753cfc083b557d0250918e501d9931dc7949ec6f623b00be63d16a5e3db6839
diff --git a/dev-python/pyx/metadata.xml b/dev-python/pyx/metadata.xml
new file mode 100644
index 00000000000..d580ab0df21
--- /dev/null
+++ b/dev-python/pyx/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+PyX is a Python package for the creation of encapsulated PostScript figures.
+It provides both an abstraction of PostScript and a TeX/LaTeX interface.
+Complex tasks like 2d and 3d plots in publication-ready quality are built out
+of these primitives.
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">pyx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyx/pyx-0.12.1-r1.ebuild b/dev-python/pyx/pyx-0.12.1-r1.ebuild
new file mode 100644
index 00000000000..6530d407f75
--- /dev/null
+++ b/dev-python/pyx/pyx-0.12.1-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P="${P/pyx/PyX}"
+
+DESCRIPTION="Python package for the generation of encapsulated PostScript figures"
+HOMEPAGE="http://pyx.sourceforge.net/"
+SRC_URI="mirror://sourceforge/pyx/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="virtual/tex-base
+ dev-texlive/texlive-basic"
+
+DEPEND="${RDEPEND}
+ doc? ( virtual/latex-base
+ dev-python/sphinx[latex,${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ distutils-r1_src_prepare
+ sed -i \
+ -e 's/^build_t1code=.*/build_t1code=1/' \
+ -e 's/^build_pykpathsea=.*/build_pykpathsea=1/' \
+ setup.cfg || die "setup.cfg fix failed"
+}
+
+python_compile_all() {
+ if use doc; then
+ VARTEXFONTS="${T}"/fonts emake -C "${S}"/faq latexpdf
+ fi
+}
+
+python_install_all() {
+ use doc && dodoc faq/_build/latex/pyxfaq.pdf
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyx/pyx-0.13.ebuild b/dev-python/pyx/pyx-0.13.ebuild
new file mode 100644
index 00000000000..116e8c04ef4
--- /dev/null
+++ b/dev-python/pyx/pyx-0.13.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+MY_P="${P/pyx/PyX}"
+
+DESCRIPTION="Python package for the generation of encapsulated PostScript figures"
+HOMEPAGE="http://pyx.sourceforge.net/"
+SRC_URI="mirror://sourceforge/pyx/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="virtual/tex-base
+ dev-texlive/texlive-basic"
+
+DEPEND="${RDEPEND}
+ doc? ( virtual/latex-base
+ dev-python/sphinx[latex,${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ distutils-r1_src_prepare
+ sed -i \
+ -e 's/^build_t1code=.*/build_t1code=1/' \
+ -e 's/^build_pykpathsea=.*/build_pykpathsea=1/' \
+ setup.cfg || die "setup.cfg fix failed"
+}
+
+python_compile_all() {
+ if use doc; then
+ VARTEXFONTS="${T}"/fonts emake -C "${S}"/faq latexpdf
+ fi
+}
+
+python_install_all() {
+ use doc && dodoc faq/_build/latex/pyxfaq.pdf
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyx/pyx-0.14.ebuild b/dev-python/pyx/pyx-0.14.ebuild
new file mode 100644
index 00000000000..76644504086
--- /dev/null
+++ b/dev-python/pyx/pyx-0.14.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_{3,4} )
+
+inherit distutils-r1
+
+MY_P="${P/pyx/PyX}"
+
+DESCRIPTION="Python package for the generation of encapsulated PostScript figures"
+HOMEPAGE="http://pyx.sourceforge.net/"
+SRC_URI="mirror://sourceforge/pyx/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND="virtual/tex-base
+ dev-texlive/texlive-basic"
+
+DEPEND="${RDEPEND}
+ doc? ( virtual/latex-base
+ dev-python/sphinx[latex,${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ distutils-r1_src_prepare
+ sed -i \
+ -e 's/^build_t1code=.*/build_t1code=1/' \
+ -e 's/^build_pykpathsea=.*/build_pykpathsea=1/' \
+ setup.cfg || die "setup.cfg fix failed"
+}
+
+python_compile_all() {
+ if use doc; then
+ VARTEXFONTS="${T}"/fonts emake -C "${S}"/faq latexpdf
+ fi
+}
+
+python_install_all() {
+ use doc && dodoc faq/_build/latex/pyxfaq.pdf
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyxattr/Manifest b/dev-python/pyxattr/Manifest
new file mode 100644
index 00000000000..3a777bc0129
--- /dev/null
+++ b/dev-python/pyxattr/Manifest
@@ -0,0 +1,2 @@
+DIST pyxattr-0.5.3.tar.gz 25977 SHA256 c395b34707506aa4e74da4930efaec9bb84bd652d8459de5b603bb8dc8b1d585 SHA512 ac1aa227ab9980e0b05bf71ac4466e8747791a0d5ea30d404359526ca32e6846ad9d4ef72208ff9c7a8208d91ffa309feebe7eab818ef2dc3ae1a5e9414ffeaa WHIRLPOOL 905076e9917d8eb8f78a564d31dfe7c649cd459106513dea53985eb026a144dfbaf062992786f63b799ec7410eec9dbc3f4ae9c41cbb7e1ec61f769c81fa6898
+DIST pyxattr-0.5.5.tar.gz 26718 SHA256 132297c35261dd74b2ae2bd558e725b04834bbdf60997495e0110e255f5f2a3f SHA512 77b732a7e524a7c31a0511df2c96c18b214f93c6ac47276ecdf12ed95133ee506fa882b2532a7159aa2f4e02a7128e33bb8883ea632a5394297d98fb28898327 WHIRLPOOL 42db6c0d603f5bfca951a39194e5b95d4285a68b4c5e3f77ffe806fb5f05e46ce2f12dadc2d598c40178b68b83ee947b50474c7c026dc8e40378fc9c552a5180
diff --git a/dev-python/pyxattr/files/pyxattr-0.5.1-test-bytes.patch b/dev-python/pyxattr/files/pyxattr-0.5.1-test-bytes.patch
new file mode 100644
index 00000000000..6ff4bd05221
--- /dev/null
+++ b/dev-python/pyxattr/files/pyxattr-0.5.1-test-bytes.patch
@@ -0,0 +1,19 @@
+commit ea7421018090b7099c5e0a6bd88180f41ebb7bce
+Author: Mike Gilbert <floppym@gentoo.org>
+Date: Fri Dec 21 16:33:18 2012 -0500
+
+ Python 2.5 can't parse byte literals, so use bytes() instead.
+
+diff --git a/test/test_xattr.py b/test/test_xattr.py
+index 8df00b9..0bca576 100644
+--- a/test/test_xattr.py
++++ b/test/test_xattr.py
+@@ -12,7 +12,7 @@ from xattr import NS_USER, XATTR_CREATE, XATTR_REPLACE
+
+ if sys.hexversion >= 0x03000000:
+ PY3K = True
+- EMPTY_NS = b''
++ EMPTY_NS = bytes()
+ else:
+ PY3K = False
+ EMPTY_NS = ''
diff --git a/dev-python/pyxattr/metadata.xml b/dev-python/pyxattr/metadata.xml
new file mode 100644
index 00000000000..be6ec1870e5
--- /dev/null
+++ b/dev-python/pyxattr/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ pyxattr is an Python extension module wrapper for libattr. You can
+ use this module to query, list, add and remove extended attributes
+ from files and directories
+</longdescription>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyxattr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyxattr/pyxattr-0.5.3.ebuild b/dev-python/pyxattr/pyxattr-0.5.3.ebuild
new file mode 100644
index 00000000000..aef674e1cd6
--- /dev/null
+++ b/dev-python/pyxattr/pyxattr-0.5.3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python interface to xattr"
+HOMEPAGE="http://pyxattr.k1024.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ http://pyxattr.k1024.org/downloads/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="sys-apps/attr"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( <dev-python/sphinx-1.3[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -i -e 's:, "-Werror"::' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake doc
+}
+
+src_test() {
+ # Perform the tests in /var/tmp; that location is more likely
+ # to have xattr support than /tmp which is often tmpfs.
+ export TESTDIR=/var/tmp
+
+ einfo 'Please note that the tests fail if xattrs are not supported'
+ einfo 'by the filesystem used for /var/tmp.'
+ distutils-r1_src_test
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyxattr/pyxattr-0.5.5.ebuild b/dev-python/pyxattr/pyxattr-0.5.5.ebuild
new file mode 100644
index 00000000000..7d1bae346c2
--- /dev/null
+++ b/dev-python/pyxattr/pyxattr-0.5.5.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python interface to xattr"
+HOMEPAGE="http://pyxattr.k1024.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ http://pyxattr.k1024.org/downloads/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc64 ~s390 ~sh ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="sys-apps/attr"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-1.3.1[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ sed -i -e 's:, "-Werror"::' setup.py || die
+ # Bug 548486
+ sed -e "s:html_theme = 'default':html_theme = 'classic':" \
+ -i doc/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake doc
+}
+
+src_test() {
+ # Perform the tests in /var/tmp; that location is more likely
+ # to have xattr support than /tmp which is often tmpfs.
+ export TESTDIR=/var/tmp
+
+ einfo 'Please note that the tests fail if xattrs are not supported'
+ einfo 'by the filesystem used for /var/tmp.'
+ distutils-r1_src_test
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyxattr/pyxattr-9999.ebuild b/dev-python/pyxattr/pyxattr-9999.ebuild
new file mode 100644
index 00000000000..0935505fb93
--- /dev/null
+++ b/dev-python/pyxattr/pyxattr-9999.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils git-r3
+
+DESCRIPTION="Python interface to xattr"
+HOMEPAGE="http://pyxattr.k1024.org/"
+SRC_URI=""
+EGIT_REPO_URI="
+ https://github.com/iustin/${PN}.git
+ git://github.com/iustin/${PN}.git"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND="sys-apps/attr"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+src_test() {
+ # Perform the tests in /var/tmp; that location is more likely
+ # to have xattr support than /tmp which is often tmpfs.
+ export TESTDIR=/var/tmp
+
+ einfo 'Please note that the tests fail if xattrs are not supported'
+ einfo 'by the filesystem used for /var/tmp.'
+ distutils-r1_src_test
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pyxdg/Manifest b/dev-python/pyxdg/Manifest
new file mode 100644
index 00000000000..1f6753d5256
--- /dev/null
+++ b/dev-python/pyxdg/Manifest
@@ -0,0 +1 @@
+DIST pyxdg-0.25.tar.gz 48935 SHA256 81e883e0b9517d624e8b0499eb267b82a815c0b7146d5269f364988ae031279d SHA512 86cbf3a54fb8e79043db60dcdbb3fb10013ae25a900fa3592edc8a24bf3f440c19bc04626c7906293c785fcb56eab9d87d209b723b5baa872376ba1eb86758b6 WHIRLPOOL 8e77c83f52c5836f4476645fc1d297311c1537e60a8fe364c75c842baf0530def1a483c19489af87ec78d340e630af18ed9a210cecc56f183037e34e58e0e450
diff --git a/dev-python/pyxdg/files/pyxdg-subprocess.patch b/dev-python/pyxdg/files/pyxdg-subprocess.patch
new file mode 100644
index 00000000000..7b9a1ba7d64
--- /dev/null
+++ b/dev-python/pyxdg/files/pyxdg-subprocess.patch
@@ -0,0 +1,38 @@
+#Patch sent to upstream on March 1st, 2009
+#Jesus Rivero (Neurogeek)
+#Replaced deprecated os.popen3 for subprocess
+
+diff -uNr xdg.orig/Menu.py xdg/Menu.py
+--- xdg.orig/Menu.py 2009-03-01 04:34:38.000000000 -0430
++++ xdg/Menu.py 2009-03-01 04:41:27.000000000 -0430
+@@ -12,6 +12,7 @@
+
+ import xdg.Locale
+ import xdg.Config
++from subprocess import Popen, PIPE
+
+ ELEMENT_NODE = xml.dom.Node.ELEMENT_NODE
+
+@@ -841,13 +842,16 @@
+ return m
+
+ def __parseKDELegacyDirs(filename, parent):
+- f=os.popen3("kde-config --path apps")
+- output = f[1].readlines()
+ try:
+- for dir in output[0].split(":"):
+- __parseLegacyDir(dir,"kde", filename, parent)
+- except IndexError:
+- pass
++ f=Popen("kde-config --path apps", shell=True, stdout=PIPE).stdout
++ output = f.readlines()
++ try:
++ for dir in output[0].split(":"):
++ __parseLegacyDir(dir,"kde", filename, parent)
++ except IndexError:
++ pass
++ except:
++ raise Exception, "kde-config failed"
+
+ # remove duplicate entries from a list
+ def __removeDuplicates(list):
diff --git a/dev-python/pyxdg/files/sec-patch-CVE-2014-1624.patch b/dev-python/pyxdg/files/sec-patch-CVE-2014-1624.patch
new file mode 100644
index 00000000000..d94c0a42bdd
--- /dev/null
+++ b/dev-python/pyxdg/files/sec-patch-CVE-2014-1624.patch
@@ -0,0 +1,54 @@
+Improve security of get_runtime_dir(strict=False)
+https://github.com/takluyver/pyxdg/commit/bd999c1c3fe7ee5f30ede2cf704cf03e400347b4
+diff --git a/xdg/BaseDirectory.py b/xdg/BaseDirectory.py
+index cececa3..a7c31b1 100644
+--- a/xdg/BaseDirectory.py
++++ b/xdg/BaseDirectory.py
+@@ -25,7 +25,7 @@
+ Note: see the rox.Options module for a higher-level API for managing options.
+ """
+
+-import os
++import os, stat
+
+ _home = os.path.expanduser('~')
+ xdg_data_home = os.environ.get('XDG_DATA_HOME') or \
+@@ -131,15 +131,30 @@ def get_runtime_dir(strict=True):
+
+ import getpass
+ fallback = '/tmp/pyxdg-runtime-dir-fallback-' + getpass.getuser()
++ create = False
++
+ try:
+- os.mkdir(fallback, 0o700)
++ # This must be a real directory, not a symlink, so attackers can't
++ # point it elsewhere. So we use lstat to check it.
++ st = os.lstat(fallback)
+ except OSError as e:
+ import errno
+- if e.errno == errno.EEXIST:
+- # Already exists - set 700 permissions again.
+- import stat
+- os.chmod(fallback, stat.S_IRUSR|stat.S_IWUSR|stat.S_IXUSR)
+- else: # pragma: no cover
++ if e.errno == errno.ENOENT:
++ create = True
++ else:
+ raise
+-
++ else:
++ # The fallback must be a directory
++ if not stat.S_ISDIR(st.st_mode):
++ os.unlink(fallback)
++ create = True
++ # Must be owned by the user and not accessible by anyone else
++ elif (st.st_uid != os.getuid()) \
++ or (st.st_mode & (stat.S_IRWXG | stat.S_IRWXO)):
++ os.rmdir(fallback)
++ create = True
++
++ if create:
++ os.mkdir(fallback, 0o700)
++
+ return fallback
+
diff --git a/dev-python/pyxdg/metadata.xml b/dev-python/pyxdg/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/pyxdg/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/pyxdg/pyxdg-0.25-r1.ebuild b/dev-python/pyxdg/pyxdg-0.25-r1.ebuild
new file mode 100644
index 00000000000..abce0f4528b
--- /dev/null
+++ b/dev-python/pyxdg/pyxdg-0.25-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# py3.3 removed due to nosetests
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="A Python module to deal with freedesktop.org specifications"
+HOMEPAGE="http://freedesktop.org/wiki/Software/pyxdg http://cgit.freedesktop.org/xdg/pyxdg/"
+SRC_URI="http://people.freedesktop.org/~takluyver/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="test"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}]
+ x11-themes/hicolor-icon-theme )"
+
+DOCS=( AUTHORS ChangeLog README TODO )
+PATCHES=( "${FILESDIR}"/sec-patch-CVE-2014-1624.patch )
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/pyxenstore/Manifest b/dev-python/pyxenstore/Manifest
new file mode 100644
index 00000000000..306fb18d681
--- /dev/null
+++ b/dev-python/pyxenstore/Manifest
@@ -0,0 +1 @@
+DIST pyxenstore-0.0.2.tar.gz 4471 SHA256 a495add5b6f3f2f524d70b37b068f5e7f69f4e3fa9dc5602d13a6507e8a10a5a SHA512 0c4cfccd1f943d39f0524798504069514bd811886714b121cf03addb344ca4aa10a718178b3e8eb1cfc9ac9e4c2d6e61a1bbfaa47e1ec4941a7429e629f982d0 WHIRLPOOL 8cc88f1786c28495f601c0a055cfbe33387cf8f8eafc1d1e5739648576e30766ac0f93380fb1a05bec53f2e9965a76ce2106bc33e6d7ab3f6e1bd8e2fb4522c7
diff --git a/dev-python/pyxenstore/metadata.xml b/dev-python/pyxenstore/metadata.xml
new file mode 100644
index 00000000000..028202ff94b
--- /dev/null
+++ b/dev-python/pyxenstore/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pyxenstore</remote-id>
+ <remote-id type="launchpad">pyxenstore</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyxenstore/pyxenstore-0.0.2.ebuild b/dev-python/pyxenstore/pyxenstore-0.0.2.ebuild
new file mode 100644
index 00000000000..eabac3ba68c
--- /dev/null
+++ b/dev-python/pyxenstore/pyxenstore-0.0.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides Python interfaces for Xen's XenStore"
+HOMEPAGE="https://launchpad.net/pyxenstore"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+DEPEND="app-emulation/xen-tools"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/pyxenstore/pyxenstore-9999.ebuild b/dev-python/pyxenstore/pyxenstore-9999.ebuild
new file mode 100644
index 00000000000..05b96a7957d
--- /dev/null
+++ b/dev-python/pyxenstore/pyxenstore-9999.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 bzr
+
+EBZR_REPO_URI="https://code.launchpad.net/~cbehrens/pyxenstore/trunk"
+
+DESCRIPTION="Provides Python interfaces for Xen's XenStore"
+HOMEPAGE="https://launchpad.net/pyxenstore"
+SRC_URI=""
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="app-emulation/xen-tools"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/pyxml/Manifest b/dev-python/pyxml/Manifest
new file mode 100644
index 00000000000..5a6a09bf3a4
--- /dev/null
+++ b/dev-python/pyxml/Manifest
@@ -0,0 +1 @@
+DIST PyXML-0.8.4.tar.gz 734954 SHA256 9fab66f9584fb8e67aebd8745a5c97bf1c5a2e2e461adf68862bcec64e448c13 SHA512 68d9802a58b8ce90d668d2ba659136dc5377e224fdb837284fdcaf640f28b3bb400bf485d602689905d56121b9ffaa7f7758b4a2f262d1321c8b9890952c8a1e WHIRLPOOL 5ae5df4be39ca9380ac636c6b84cea71c2def2a1404e5e2895a75e14ce3bd70e8ad60f7368892b172aed56e1aa8443a7554dda10fddefbc6b6c0816f087fc6a6
diff --git a/dev-python/pyxml/files/pyxml-0.8.4-python-2.6.patch b/dev-python/pyxml/files/pyxml-0.8.4-python-2.6.patch
new file mode 100644
index 00000000000..d29b0b6a9eb
--- /dev/null
+++ b/dev-python/pyxml/files/pyxml-0.8.4-python-2.6.patch
@@ -0,0 +1,28 @@
+diff -rupN PyXML-0.8.4-old/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py PyXML-0.8.4/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py
+--- PyXML-0.8.4-old/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py 2008-12-15 16:54:36.000000000 +0900
++++ PyXML-0.8.4/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py 2008-12-15 16:57:02.000000000 +0900
+@@ -24,8 +24,8 @@ class ParsedAbbreviatedAbsoluteLocationP
+ self._rel = rel
+ nt = ParsedNodeTest.ParsedNodeTest('node', '')
+ ppl = ParsedPredicateList.ParsedPredicateList([])
+- as = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
+- self._step = ParsedStep.ParsedStep(as, nt, ppl)
++ as_ = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
++ self._step = ParsedStep.ParsedStep(as_, nt, ppl)
+ return
+
+ def evaluate(self, context):
+diff -rupN PyXML-0.8.4-old/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py PyXML-0.8.4/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py
+--- PyXML-0.8.4-old/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py 2008-12-15 16:54:36.000000000 +0900
++++ PyXML-0.8.4/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py 2008-12-15 16:58:58.000000000 +0900
+@@ -28,8 +28,8 @@ class ParsedAbbreviatedRelativeLocationP
+ self._right = right
+ nt = ParsedNodeTest.ParsedNodeTest('node','')
+ ppl = ParsedPredicateList.ParsedPredicateList([])
+- as = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
+- self._middle = ParsedStep.ParsedStep(as, nt, ppl)
++ as_ = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
++ self._middle = ParsedStep.ParsedStep(as_, nt, ppl)
+
+ def evaluate(self, context):
+ res = []
diff --git a/dev-python/pyxml/metadata.xml b/dev-python/pyxml/metadata.xml
new file mode 100644
index 00000000000..2093c15a879
--- /dev/null
+++ b/dev-python/pyxml/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">pyxml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyxml/pyxml-0.8.4-r3.ebuild b/dev-python/pyxml/pyxml-0.8.4-r3.ebuild
new file mode 100644
index 00000000000..857b4b40b8a
--- /dev/null
+++ b/dev-python/pyxml/pyxml-0.8.4-r3.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+MY_P=${P/pyxml/PyXML}
+
+DESCRIPTION="A collection of libraries to process XML with Python"
+HOMEPAGE="http://pyxml.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD CNRI MIT PSF-2 public-domain"
+# Other licenses:
+# BeOpen Python Open Source License Agreement Version 1
+# Zope Public License (ZPL) Version 1.0
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples"
+
+DEPEND=">=dev-libs/expat-1.95.6"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${P}-python-2.6.patch"
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ # use the already-installed shared copy of libexpat
+ distutils-r1_python_compile --with-libexpat="${EPREFIX}/usr"
+}
+
+python_test() {
+ # Delete internal copy of old version of unittest module.
+ local BROKENTESTS=(
+ test_filter
+ test_howto
+ test_minidom
+ test_xmlbuilder
+ unittest
+ test_expatreader
+ )
+
+ for test_file in ${BROKENTESTS[@]}; do
+ test_file="test/${test_file}.py"
+ einfo "Removing dubious test \"${test_file}\""
+ rm ${test_file}
+ eend $?
+ done
+
+ cd test || die
+ "${PYTHON}" regrtest.py || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( ANNOUNCE CREDITS doc/*.txt )
+
+ distutils-r1_python_install_all
+
+ doman doc/man/*
+ if use doc; then
+ dohtml -A api,web -r doc/*
+ dodoc doc/*.tex
+ fi
+ use examples && dodoc -r demo
+}
diff --git a/dev-python/pyyaml/Manifest b/dev-python/pyyaml/Manifest
new file mode 100644
index 00000000000..9d5479133ce
--- /dev/null
+++ b/dev-python/pyyaml/Manifest
@@ -0,0 +1 @@
+DIST PyYAML-3.11.tar.gz 248685 SHA256 c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8 SHA512 76de005f59e1842108399af53178cfac2c08ee5cc996cc38ab6ec8b046c6b894422c461a1f1ed1df91abf96f154d41170227912cae7336cff88adfd3c0e8d783 WHIRLPOOL 9b457a026a57d4b90e52629dafbd48a33ff3bf3a71c531857d33acfb7e7033b963c566d82d4fabaa0ae17f534b9d5a697a2407bdb24ab3ca9fd375b49e7932c2
diff --git a/dev-python/pyyaml/metadata.xml b/dev-python/pyyaml/metadata.xml
new file mode 100644
index 00000000000..2e9a66761bd
--- /dev/null
+++ b/dev-python/pyyaml/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="libyaml">enable support for C implementation using libyaml</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-python/pyyaml/pyyaml-3.11.ebuild b/dev-python/pyyaml/pyyaml-3.11.ebuild
new file mode 100644
index 00000000000..4a11cb992e5
--- /dev/null
+++ b/dev-python/pyyaml/pyyaml-3.11.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_P="PyYAML-${PV}"
+
+DESCRIPTION="YAML parser and emitter for Python"
+HOMEPAGE="http://pyyaml.org/wiki/PyYAML http://pypi.python.org/pypi/PyYAML"
+SRC_URI="http://pyyaml.org/download/${PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="examples libyaml"
+
+RDEPEND="libyaml? ( dev-libs/libyaml )"
+DEPEND="${RDEPEND}
+ libyaml? ( $(python_gen_cond_dep 'dev-python/cython[${PYTHON_USEDEP}]' python2_7 'python3*') )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_configure_all() {
+ mydistutilsargs=( $(use_with libyaml) )
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}
+ fi
+}
diff --git a/dev-python/pyzmq/Manifest b/dev-python/pyzmq/Manifest
new file mode 100644
index 00000000000..19f124f9e53
--- /dev/null
+++ b/dev-python/pyzmq/Manifest
@@ -0,0 +1,3 @@
+DIST pyzmq-14.4.1.tar.gz 995366 SHA256 cb4a59875fdc26315045d800bac008b8e10a4cf2d72ac9af2fc45ef6ac8f330a SHA512 4b71677e4bfa771177a34dbff59cf6dfd54310a8996689a3d62902aaba35c7cf2ad6b7da806f9e189ad4b89fcefe9cbb3e192788eecd5d2c269e8a980b4d50fa WHIRLPOOL f6c093023b4494e1f9293a81ac86dcc55ff05f7ae10bb9677ff4fffd2e38fefe2462eb241c74b1ee283958a8546b128585c78c644dae544aa38f4b9c1f3e3ad8
+DIST pyzmq-14.6.0.tar.gz 1001020 SHA256 7746806ff94f1e8c1e843644c6bbd3b9aaeb1203c2eaf38879adc23dbd5c35bb SHA512 02e7feaca0ed73d48af2577fa9fc240e947bf9cea444b3819b8fd39fc2ca4b50c8f11ff27c8477386ef7bee1e8f5bbca50769403ab1393d43624065e647b6544 WHIRLPOOL e10c96a8852cd57dc7ec622405925c987a66cfecff125b6b664a8ab48078b6bea59749421122b7158ace0f366c6d61eb617e9b2f7e951000c9a61d86b87a2ff0
+DIST pyzmq-14.7.0.tar.gz 1048389 SHA256 77994f80360488e7153e64e5959dc5471531d1648e3a4bff14a714d074a38cc2 SHA512 22c30414c99bddb71f47b37f49f19b0cb1a535bdc6835fac13c78d030a59ed362124393acd41b7e04bb1f8ca231cabb49d010ac93142786ec35ee4a303f168ed WHIRLPOOL 82f1940133d23bc11acaaf66a92cebfdc76f844f990f90314198b3a65b2dd561e2ab7a5b532f76e6a9a6dd93520b7ae096331fb09eb302b898616e916d35e702
diff --git a/dev-python/pyzmq/files/pyzmq-2.2.0.1-python3.patch b/dev-python/pyzmq/files/pyzmq-2.2.0.1-python3.patch
new file mode 100644
index 00000000000..d6b1299add7
--- /dev/null
+++ b/dev-python/pyzmq/files/pyzmq-2.2.0.1-python3.patch
@@ -0,0 +1,34 @@
+From 51f2470bce6c9e6067606aec2d9a018555582b30 Mon Sep 17 00:00:00 2001
+From: MinRK <benjaminrk@gmail.com>
+Date: Mon, 20 Aug 2012 22:44:27 -0700
+Subject: [PATCH] fix exception syntax in gevent.core
+
+---
+ zmq/green/core.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/zmq/green/core.py b/zmq/green/core.py
+index d4e5f73..9e5acdf 100644
+--- a/zmq/green/core.py
++++ b/zmq/green/core.py
+@@ -114,7 +114,7 @@ def _wait_write(self):
+ try:
+ timeout.start()
+ self.__writable.get(block=True)
+- except gevent.Timeout, t:
++ except gevent.Timeout as t:
+ if t is not timeout:
+ raise
+ toc = time.time()
+@@ -138,7 +138,7 @@ def _wait_read(self):
+ try:
+ timeout.start()
+ self.__readable.get(block=True)
+- except gevent.Timeout, t:
++ except gevent.Timeout as t:
+ if t is not timeout:
+ raise
+ toc = time.time()
+--
+1.7.10
+
diff --git a/dev-python/pyzmq/metadata.xml b/dev-python/pyzmq/metadata.xml
new file mode 100644
index 00000000000..4fecbd76e7e
--- /dev/null
+++ b/dev-python/pyzmq/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="green">Enable gevent compatibility with zeromq</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">pyzmq</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyzmq/pyzmq-14.4.1.ebuild b/dev-python/pyzmq/pyzmq-14.4.1.ebuild
new file mode 100644
index 00000000000..3e47d450560
--- /dev/null
+++ b/dev-python/pyzmq/pyzmq-14.4.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Lightweight and super-fast messaging library built on top of the ZeroMQ library"
+HOMEPAGE="http://www.zeromq.org/bindings:python http://pypi.python.org/pypi/pyzmq"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples green test"
+
+# Ensures installation of gevent for test phase
+REQUIRED_USE="test? ( green )"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND=">=net-libs/zeromq-2.1.9:=
+ dev-python/py[${PYTHON_USEDEP}]
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+ green? ( dev-python/gevent[${PY2_USEDEP}] )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ )"
+
+python_configure_all() {
+ tc-export CC
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ if python_is_python3; then
+ einfo "Skipping python3 due to lack of support by gevent"
+ else
+ nosetests -svw "${BUILD_DIR}/lib/"
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyzmq/pyzmq-14.6.0.ebuild b/dev-python/pyzmq/pyzmq-14.6.0.ebuild
new file mode 100644
index 00000000000..b7c52f8d3b4
--- /dev/null
+++ b/dev-python/pyzmq/pyzmq-14.6.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Lightweight and super-fast messaging library built on top of the ZeroMQ library"
+HOMEPAGE="http://www.zeromq.org/bindings:python http://pypi.python.org/pypi/pyzmq"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples green test"
+
+# Ensures installation of gevent for test phase
+REQUIRED_USE="test? ( green )"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND="
+ >=net-libs/zeromq-4.1.2:=
+ dev-python/py[${PYTHON_USEDEP}]
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+ green? ( dev-python/gevent[${PY2_USEDEP}] )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ tc-export CC
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # suite reports error in absence of gevent under py3 but is designed to continue
+ # rather than exit making py3 apt for the test phase
+ nosetests -svw "${BUILD_DIR}/lib/"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyzmq/pyzmq-14.7.0.ebuild b/dev-python/pyzmq/pyzmq-14.7.0.ebuild
new file mode 100644
index 00000000000..f9824c33d9c
--- /dev/null
+++ b/dev-python/pyzmq/pyzmq-14.7.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Lightweight and super-fast messaging library built on top of the ZeroMQ library"
+HOMEPAGE="http://www.zeromq.org/bindings:python http://pypi.python.org/pypi/pyzmq"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples green test"
+
+# Ensures installation of gevent for test phase
+REQUIRED_USE="test? ( green )"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND="
+ >=net-libs/zeromq-4.1.2:=
+ dev-python/py[${PYTHON_USEDEP}]
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+ green? ( dev-python/gevent[${PY2_USEDEP}] )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ doc? (
+ >=dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ dev-python/numpydoc[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ tc-export CC
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # suite reports error in absence of gevent under py3 but is designed to continue
+ # rather than exit making py3 apt for the test phase
+ nosetests -svw "${BUILD_DIR}/lib/"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyzor/Manifest b/dev-python/pyzor/Manifest
new file mode 100644
index 00000000000..2647fd70775
--- /dev/null
+++ b/dev-python/pyzor/Manifest
@@ -0,0 +1,3 @@
+DIST pyzor-0.5.0.tar.bz2 40654 SHA256 2bf3df9e916861063a73f7b46cb8b27bac6f661fce1362803de9e7921fc155ba SHA512 048c81e373be217808f4e4e8f6adbc1b464891b725b3004031dfa7a82abe234b080c3a87bc9ad61ee1df2bfb78ed0ee78565b49843f09243f72b6315df6877a1 WHIRLPOOL 966090015bfe93d4ef059a1186e97705807769f9341e94a2f5d9c223540effac04209a32cad850c6f405225c00aea55bdf7ac5a6a98e0927824d641ee61e5c80
+DIST pyzor-0.7.0.tar.bz2 78555 SHA256 6d9ca62bd4aa9a0210adb9d4c8ff2b38bb2cd051f1517ce29e88d7fbe4b1026d SHA512 40026fc0276b4cf60fe7dfe30e2d4d4d1f220cf860b8aaef9d983e632a7d87bc8deb3430ded7520a69269ef56550117735a6e3c8d046d4cad7066f8597ead3cd WHIRLPOOL dd8466477e38362fa0a64ec66822ae3820c22f8ae13b40002145b1e688d17c17edfb800eb44679ff961e74b667daa43ef09d8eadb92f683c9e73c9b00fad23b9
+DIST pyzor-1.0.0.tar.gz 126276 SHA256 548bc461c01e790cf8db1f26d9f66b281f3aa3cf5f5a6fd647071360ed663ef1 SHA512 b3fb8b2c5261e187a2ab3a5a3b12d221df7de08766c6bb2ad9990c0f23517534871ecc9d5ad529e79b0d0aef8b2b800728320c57435a8c0d8c3f80a4ba0f7e4a WHIRLPOOL ad92ca30c116b1c22cc49b5643ecb03880ef1911d7f2a59cf9b655ccd5fa5167e0ccdb890d92754ed1b1c0730785c186f6615c569b6bbbc36aed26e2423037b1
diff --git a/dev-python/pyzor/files/pyzor-0.5.0-python26_warnings.patch b/dev-python/pyzor/files/pyzor-0.5.0-python26_warnings.patch
new file mode 100644
index 00000000000..671b994b3a2
--- /dev/null
+++ b/dev-python/pyzor/files/pyzor-0.5.0-python26_warnings.patch
@@ -0,0 +1,89 @@
+# Description: Fix python2.6 deprecation warnings
+# Origin: Ubuntu
+# Author: Alessio Treglia <quadrispro@ubuntu.com>
+# Bug-Ubuntu: https://bugs.launchpad.net/bugs/394775
+diff -Nur -x '*.orig' -x '*~' pyzor-0.5.0/lib/pyzor/client.py pyzor-0.5.0.new/lib/pyzor/client.py
+--- pyzor-0.5.0/lib/pyzor/client.py 2009-04-29 22:53:50.000000000 +0200
++++ pyzor-0.5.0.new/lib/pyzor/client.py 2009-08-01 12:27:55.749263645 +0200
+@@ -10,7 +10,7 @@
+ import tempfile
+ import mimetools
+ import multifile
+-import sha
++import hashlib
+
+ import pyzor
+ from pyzor import *
+@@ -402,12 +402,12 @@
+ del p2
+
+ saltfile = open(randfile)
+- salt = saltfile.read(sha.digest_size)
++ salt = saltfile.read(hashlib.sha1().digest_size)
+ del saltfile
+
+- salt_digest = sha.new(salt)
++ salt_digest = hashlib.sha1(salt)
+
+- pass_digest = sha.new()
++ pass_digest = hashlib.sha1()
+ pass_digest.update(salt_digest.digest())
+ pass_digest.update(p1)
+ sys.stdout.write("salt,key:\n")
+@@ -498,7 +498,7 @@
+ if len(offsets) == 0:
+ return
+
+- self._digest = sha.new()
++ self._digest = hashlib.sha1()
+
+ if len(offsets) <= self.atomic_num_lines:
+ self.handle_atomic(fp)
+diff -Nur -x '*.orig' -x '*~' pyzor-0.5.0/lib/pyzor/__init__.py pyzor-0.5.0.new/lib/pyzor/__init__.py
+--- pyzor-0.5.0/lib/pyzor/__init__.py 2009-04-29 22:53:50.000000000 +0200
++++ pyzor-0.5.0.new/lib/pyzor/__init__.py 2009-08-01 12:28:20.268413580 +0200
+@@ -8,7 +8,7 @@
+ import os.path
+ import re
+ import sys
+-import sha
++import hashlib
+ import tempfile
+ import random
+ import ConfigParser
+@@ -114,7 +114,7 @@
+
+ class DataDigest(str):
+ # hex output doubles digest size
+- value_size = sha.digest_size * 2
++ value_size = hashlib.sha1().digest_size * 2
+
+ def __init__(self, value):
+ if len(value) != self.value_size:
+@@ -285,7 +285,7 @@
+ """returns a digest object"""
+ typecheck(msg, Message)
+
+- return sha.new(str(msg))
++ return hashlib.sha1(str(msg))
+
+ hash_msg = staticmethod(hash_msg)
+
+@@ -295,7 +295,7 @@
+ typecheck(key, long)
+ typecheck(user, Username)
+
+- return sha.new("%s:%x" % (Username, key)).hexdigest().lower()
++ return hashlib.sha1("%s:%x" % (Username, key)).hexdigest().lower()
+
+ hash_key = staticmethod(hash_key)
+
+@@ -316,7 +316,7 @@
+
+ h_msg = self.hash_msg(msg)
+
+- return sha.new("%s:%d:%s" % (h_msg.digest(), ts, hashed_key)).hexdigest().lower()
++ return hashlib.sha1("%s:%d:%s" % (h_msg.digest(), ts, hashed_key)).hexdigest().lower()
+
+ sign_msg = classmethod(sign_msg)
+
diff --git a/dev-python/pyzor/files/pyzord_getopt.patch b/dev-python/pyzor/files/pyzord_getopt.patch
new file mode 100644
index 00000000000..42b6fe4339f
--- /dev/null
+++ b/dev-python/pyzor/files/pyzord_getopt.patch
@@ -0,0 +1,24 @@
+--- scripts/pyzord.orig 2002-09-08 06:33:44.000000000 +0300
++++ scripts/pyzord 2007-07-06 01:31:06.000000000 +0300
+@@ -52,7 +52,11 @@
+ # functions above, run below
+
+ debug = 0
+-(options, args) = getopt.getopt(sys.argv[1:], 'dh:', ['homedir='])
++try:
++ (options, args) = getopt.getopt(sys.argv[1:], 'hd', ['help','homedir='])
++except getopt.GetoptError, err:
++ print str(err)
++ usage()
+ if len(args) != 0:
+ usage()
+
+@@ -61,7 +65,7 @@
+ for (o, v) in options:
+ if o == '-d':
+ debug = 1
+- elif o == '-h':
++ elif o in ('-h', '--help'):
+ usage()
+ elif o == '--homedir':
+ specified_homedir = v
diff --git a/dev-python/pyzor/metadata.xml b/dev-python/pyzor/metadata.xml
new file mode 100644
index 00000000000..b375c29259d
--- /dev/null
+++ b/dev-python/pyzor/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="pyzord">enable support for pyzord</flag>
+ <flag name="mysql">Enables mysql support</flag>
+ <flag name="redis">Enables redis support</flag>
+ <flag name="gevent">Enable support for the gevent based handler</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">SpamExperts/pyzor</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/pyzor/pyzor-0.5.0-r2.ebuild b/dev-python/pyzor/pyzor-0.5.0-r2.ebuild
new file mode 100644
index 00000000000..c1a99942f2a
--- /dev/null
+++ b/dev-python/pyzor/pyzor-0.5.0-r2.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH="gdbm"
+PYTHON_USE_WITH_OPT="pyzord"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils eutils
+
+DESCRIPTION="A distributed, collaborative spam detection and filtering network"
+HOMEPAGE="http://pyzor.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86"
+IUSE="pyzord"
+
+DEPEND=""
+RDEPEND=""
+
+DOCS="THANKS UPGRADING"
+
+src_prepare() {
+ epatch "${FILESDIR}/pyzord_getopt.patch"
+ epatch "${FILESDIR}/${P}-python26_warnings.patch"
+
+ # rfc822BodyCleanerTest doesn't work fine.
+ # Remove it until it's fixed.
+ sed -i \
+ -e '/rfc822BodyCleanerTest/,/self\.assertEqual/d' \
+ unittests.py || die "sed in unittest.py failed"
+}
+
+src_test() {
+ testing() {
+ PYTHONPATH="build-${PYTHON_ABI}/lib" "$(PYTHON)" unittests.py
+ }
+ python_execute_function testing
+}
+
+src_install () {
+ distutils_src_install
+
+ dohtml docs/usage.html
+ rm -rf "${ED}usr/share/doc/pyzor"
+
+ if use pyzord; then
+ dodir /usr/sbin
+ mv "${ED}"usr/bin/pyzord* "${ED}usr/sbin"
+ else
+ rm "${ED}"usr/bin/pyzord*
+ fi
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+
+ if use pyzord; then
+ ewarn "/usr/bin/pyzord has been moved to /usr/sbin"
+ fi
+}
diff --git a/dev-python/pyzor/pyzor-0.7.0.ebuild b/dev-python/pyzor/pyzor-0.7.0.ebuild
new file mode 100644
index 00000000000..4e4d9dc06cd
--- /dev/null
+++ b/dev-python/pyzor/pyzor-0.7.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYHON_REQ_USE="gdbm"
+
+inherit distutils-r1
+
+DESCRIPTION="A distributed, collaborative spam detection and filtering network"
+HOMEPAGE="http://pyzor.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="mysql pyzord redis test"
+
+RDEPEND="mysql? ( $(python_gen_cond_dep '>=dev-python/mysql-python-1.2.5[${PYTHON_USEDEP}]' python2_7) )
+ redis? ( ~dev-python/redis-py-2.9.1[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# https://sourceforge.net/apps/trac/pyzor/attachment/ticket/196/
+DISTUTILS_IN_SOURCE_BUILD=1
+
+REQUIRED_USE="test? ( mysql redis )"
+
+python_test() {
+ # https://sourceforge.net/apps/trac/pyzor/ticket/196
+ # In this ticket it clearly states the suite is written for py2
+ # While it's feasible to make it into a py3 ready state, nah
+ if ! python_is_python3; then
+ PYTHONPATH=. "${PYTHON}" ./tests/unit/__init__.py
+ fi
+}
+
+src_install () {
+ distutils-r1_src_install
+
+ if use pyzord; then
+ dodir /usr/sbin
+ mv "${ED}"usr/bin/pyzord* "${ED}usr/sbin"
+ else
+ rm "${ED}"usr/bin/pyzord*
+ fi
+}
+
+pkg_postinst() {
+ if use pyzord; then
+ ewarn "/usr/bin/pyzord has been moved to /usr/sbin"
+ fi
+
+ einfo "If you want to run the pyzor server you will need to emerge / re-emerge"
+ einfo "with use flag mysql and or redis. Without either flag provides only the pyzor client"
+}
diff --git a/dev-python/pyzor/pyzor-1.0.0.ebuild b/dev-python/pyzor/pyzor-1.0.0.ebuild
new file mode 100644
index 00000000000..3d4e1b84a98
--- /dev/null
+++ b/dev-python/pyzor/pyzor-1.0.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYHON_REQ_USE="gdbm"
+
+inherit distutils-r1
+
+MY_PV="1-0-0"
+DESCRIPTION="A distributed, collaborative spam detection and filtering network"
+HOMEPAGE="https://github.com/SpamExperts/pyzor/"
+SRC_URI="https://github.com/SpamExperts/${PN}/archive/release-${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="doc gevent mysql pyzord redis test"
+
+RDEPEND="mysql? ( $(python_gen_cond_dep '>=dev-python/mysql-python-1.2.5[${PYTHON_USEDEP}]' python2_7) )
+ redis? ( ~dev-python/redis-py-2.9.1[${PYTHON_USEDEP}] )
+ gevent? ( $(python_gen_cond_dep '~dev-python/gevent-1.0.1[${PYTHON_USEDEP}]' python2_7) )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# https://sourceforge.net/apps/trac/pyzor/attachment/ticket/196/
+DISTUTILS_IN_SOURCE_BUILD=1
+
+REQUIRED_USE="test? ( mysql redis )"
+S="${WORKDIR}/${PN}-release-${MY_PV}"
+
+python_test() {
+ # The suite is py2 friendly only
+ if ! python_is_python3; then
+ PYTHONPATH=. "${PYTHON}" ./tests/unit/__init__.py
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/.build/html/. )
+ distutils-r1_python_install_all
+}
+
+src_install () {
+ distutils-r1_src_install
+
+ if use pyzord; then
+ dodir /usr/sbin
+ mv "${D}"usr/bin/pyzord* "${ED}usr/sbin"
+ else
+ rm "${D}"usr/bin/pyzord*
+ fi
+}
+
+pkg_postinst() {
+ if use pyzord; then
+ ewarn "/usr/bin/pyzord has been moved to /usr/sbin"
+ fi
+
+ einfo "If you want to run the pyzor server you will need to emerge / re-emerge"
+ einfo "with use flag mysql and or redis. Without either flag provides only the pyzor client"
+}
diff --git a/dev-python/qpid-python/Manifest b/dev-python/qpid-python/Manifest
new file mode 100644
index 00000000000..25bce3e6c70
--- /dev/null
+++ b/dev-python/qpid-python/Manifest
@@ -0,0 +1 @@
+DIST qpid-python-0.20.tar.gz 226543 SHA256 0344ffd3af3c03d77e90b0700111b00c18a65770b826a63dfe75806ec8ff22f8 SHA512 c3cc466c3b1e13443c9ac1e04d8dfab8fbdb4460fcc828b91e9d520cacdfa69589ccd1928d8d0cb4012c4d0a22ae9e6dc2803488863ccc53bb568e97f8251b44 WHIRLPOOL 1e7061e9005bf787e8a04ac078a2ff6927e69f101e99507f93a4c283cd18c561523ca910186f1d14c161468e35ef738f2a1ac8f5da04b329c7cc8cd75309f490
diff --git a/dev-python/qpid-python/metadata.xml b/dev-python/qpid-python/metadata.xml
new file mode 100644
index 00000000000..58ef75bf0e8
--- /dev/null
+++ b/dev-python/qpid-python/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">qpid-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/qpid-python/qpid-python-0.20.ebuild b/dev-python/qpid-python/qpid-python-0.20.ebuild
new file mode 100644
index 00000000000..4c0915cd13d
--- /dev/null
+++ b/dev-python/qpid-python/qpid-python-0.20.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A high-speed platform independent enterprise messaging system for Apache"
+HOMEPAGE="http://qpid.apache.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/epydoc[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && "${PYTHON}" setup.py doc_option
+}
+
+src_test() {
+ # For now rm failing tests requiring making a connection, ? via a running broker
+ # Seems 'we' need figure how to start a broker
+ sed -e 's:def testReconnect:def _testReconnect:' \
+ -e 's:testEstablish:_&:' \
+ -e 's:testOpen:_&:' \
+ -e 's:testReconnectURLs:_&:' \
+ -e 's:testTcpNodelay:_&:' \
+ -e 's:testOpenCloseResourceLeaks:_&:' \
+ -e 's:testReconnect:_&:' \
+ -i qpid/tests/messaging/endpoints.py
+ ./qpid-python-test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( ../"${P}"-python2_7/doc/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/qrcode/Manifest b/dev-python/qrcode/Manifest
new file mode 100644
index 00000000000..043dff7dcc4
--- /dev/null
+++ b/dev-python/qrcode/Manifest
@@ -0,0 +1,2 @@
+DIST qrcode-5.0.1.tar.gz 20546 SHA256 5ce16060c2c4f9fc9455bc82766c227e55ee9b43bfb9f17bfe3f1f5ba5eecf3c SHA512 a57ca9d4b382637a8b3cc3a20a03d291f22675e9d851a739f01c610465f1977efd748661330557e9017db2d7b9b501c278668da5eeef93fb8e503e71921bb4c5 WHIRLPOOL d4e55f2536a917bd5f040f2cb66cabe2a529e5a9266fd09d0f413ba0a3137dffc89afd4d32ac4db2f8bbf6db17a1ecccf6bf8ba08d7a188b924daa778491c727
+DIST qrcode-5.1.tar.gz 22259 SHA256 33bdee5e834fc99eb538e1dad198a3a5b70d0a88845629cacf4c592be1ce7f6a SHA512 67a7bb51fe2386f3b1ac0b799d3850d3ca4f61286fdc809654df3f5a1071b503707a9a3e82e595b7611dd9d7b7e74b36e19b86942fb5ad94c256cd7ca9aa02f3 WHIRLPOOL df72f727af2a1342adf61fcde25645cd25f5cfafd454ae2d13567a3c144949738f924082fe78dbb529c9b3757bbf1474e5f4f48fc95538d5d1cdcfdc6452637d
diff --git a/dev-python/qrcode/metadata.xml b/dev-python/qrcode/metadata.xml
new file mode 100644
index 00000000000..76d59aacfa6
--- /dev/null
+++ b/dev-python/qrcode/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">qrcode</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/qrcode/qrcode-5.0.1.ebuild b/dev-python/qrcode/qrcode-5.0.1.ebuild
new file mode 100644
index 00000000000..85829571ffe
--- /dev/null
+++ b/dev-python/qrcode/qrcode-5.0.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="QR Code generator on top of PIL"
+HOMEPAGE="https://pypi.python.org/pypi/qrcode"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# optional deps:
+# - dev-python/lxml for svg backend
+# - virtual/pil for PIL backend
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/lxml[${PYTHON_USEDEP}] )"
+
+python_test() {
+ "${PYTHON}" -m unittest qrcode.tests || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/qrcode/qrcode-5.1.ebuild b/dev-python/qrcode/qrcode-5.1.ebuild
new file mode 100644
index 00000000000..a9bbb7b5502
--- /dev/null
+++ b/dev-python/qrcode/qrcode-5.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="QR Code generator on top of PIL"
+HOMEPAGE="https://pypi.python.org/pypi/qrcode"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+# optional deps:
+# - pillow and lxml for svg backend, set as hard deps
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7) )"
+
+python_test() {
+ "${PYTHON}" -m unittest discover > /dev/tty | less || die "Testing failed with ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+ doman doc/qr.1
+}
diff --git a/dev-python/qscintilla-python/Manifest b/dev-python/qscintilla-python/Manifest
new file mode 100644
index 00000000000..682d80e12ce
--- /dev/null
+++ b/dev-python/qscintilla-python/Manifest
@@ -0,0 +1,2 @@
+DIST QScintilla-gpl-2.8.4.tar.gz 3031919 SHA256 9b7b2d7440cc39736bbe937b853506b3bd218af3b79095d4f710cccb0fabe80f SHA512 ab10dc756231b293ddebc06e681bb65a11b2be2a4c4132a5b2a27ca583adef76af325fa95748888d9091f2e89a30494d370df262c4eaba7b7fbed04fb7c76907 WHIRLPOOL 7357addbc0ad8869c5749a67106c18e47d79e32399416cc2867461fa8ad0c662711b8937987cb7c3cd5b83fe9f88e1529911eefec28a972e86c7f242c8c0d634
+DIST QScintilla-gpl-2.9.tar.gz 2435116 SHA256 d7c32e32582f93779de861006d87467b38b9ebc06e3d0b32e981cb24369fa417 SHA512 a74b7b1182e9f602aa9f61072877d8dba93c430453ed70e18d74013dbda8b0faef30629f2c086d3b06d0632b3f4980570362bb6e635c15686be1be47eaeecb00 WHIRLPOOL b27a3ff2b48dbbf034deb4fdf09259815dcee63bfffe29651cf1e5e9ceeedb408ebc0bae440479a8206af7046f80143c291c10a0293942b64eb61c5e02549ed4
diff --git a/dev-python/qscintilla-python/metadata.xml b/dev-python/qscintilla-python/metadata.xml
new file mode 100644
index 00000000000..e189b933de5
--- /dev/null
+++ b/dev-python/qscintilla-python/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+ <herd>python</herd>
+ <upstream>
+ <maintainer status="active">
+ <email>phil@riverbankcomputing.com</email>
+ <name>Phil Thompson</name>
+ </maintainer>
+ <bugs-to>mailto:qscintilla@riverbankcomputing.com</bugs-to>
+ <remote-id type="sourceforge">pyqt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/qscintilla-python/qscintilla-python-2.8.4.ebuild b/dev-python/qscintilla-python/qscintilla-python-2.8.4.ebuild
new file mode 100644
index 00000000000..01c39b01d0b
--- /dev/null
+++ b/dev-python/qscintilla-python/qscintilla-python-2.8.4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1 qmake-utils
+
+MY_P=QScintilla-gpl-${PV}
+
+DESCRIPTION="Python bindings for Qscintilla"
+HOMEPAGE="http://www.riverbankcomputing.com/software/qscintilla/intro"
+SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 ~sparc x86"
+IUSE="debug"
+
+DEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/sip-4.16:=[${PYTHON_USEDEP}]
+ >=dev-python/PyQt4-4.11[X,${PYTHON_USEDEP}]
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ ~x11-libs/qscintilla-${PV}:=
+"
+RDEPEND="${DEPEND}"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+S=${WORKDIR}/${MY_P}/Python
+
+src_prepare() {
+ python_copy_sources
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}" configure.py
+ --destdir="$(python_get_sitedir)"/PyQt4
+ --sip-incdir="$(python_get_includedir)"
+ --pyqt-sipdir="${EPREFIX}"/usr/share/sip
+ --qsci-sipdir="${EPREFIX}"/usr/share/sip
+ --pyqt=PyQt4
+ --no-timestamp
+ $(use debug && echo --debug)
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+
+ # Run eqmake4 to respect toolchain, build flags, and prevent stripping
+ eqmake4
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ emake INSTALL_ROOT="${D}" install
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+}
diff --git a/dev-python/qscintilla-python/qscintilla-python-2.9.ebuild b/dev-python/qscintilla-python/qscintilla-python-2.9.ebuild
new file mode 100644
index 00000000000..2a9dd36d535
--- /dev/null
+++ b/dev-python/qscintilla-python/qscintilla-python-2.9.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1 qmake-utils
+
+MY_P=QScintilla-gpl-${PV}
+
+DESCRIPTION="Python bindings for Qscintilla"
+HOMEPAGE="http://www.riverbankcomputing.com/software/qscintilla/intro"
+SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug"
+
+DEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/sip-4.16:=[${PYTHON_USEDEP}]
+ >=dev-python/PyQt4-4.11.3[X,${PYTHON_USEDEP}]
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ ~x11-libs/qscintilla-${PV}:=
+"
+RDEPEND="${DEPEND}"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+S=${WORKDIR}/${MY_P}/Python
+
+src_prepare() {
+ python_copy_sources
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}" configure.py
+ --qmake="$(qt4_get_bindir)"/qmake
+ --destdir="$(python_get_sitedir)"/PyQt4
+ --sip-incdir="$(python_get_includedir)"
+ --pyqt=PyQt4
+ --no-timestamp
+ $(use debug && echo --debug)
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+
+ # Run eqmake4 to respect toolchain, build flags, and prevent stripping
+ eqmake4
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ emake INSTALL_ROOT="${D}" install
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+}
diff --git a/dev-python/qserve/Manifest b/dev-python/qserve/Manifest
new file mode 100644
index 00000000000..9bc911b6368
--- /dev/null
+++ b/dev-python/qserve/Manifest
@@ -0,0 +1 @@
+DIST qserve-0.2.8.zip 18637 SHA256 0b04b2d4d11b464ff1efd42a9ea9f8136187d59f4076f57c9ba95361d41cd7ed SHA512 5311606992c96fcdbd350c47598ea9611ad93fb513bdbed081e570a8674861a3f1bd83211af635f8ec6a943f7c826f5c5872d2e62c672f9065c19e71dbfabd34 WHIRLPOOL 4ee787db25ae8ce9a1d277184df172af734f58e987fa51d5c7aa4ccb78071547ea11336b66fdbec23cf36dc29cf7d404e22a8adebf3d024c0790e478bc16f726
diff --git a/dev-python/qserve/metadata.xml b/dev-python/qserve/metadata.xml
new file mode 100644
index 00000000000..9ec5d84fb80
--- /dev/null
+++ b/dev-python/qserve/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ <description>Maintainer. Assign bugs to him</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">qserve</remote-id>
+ <remote-id type="github">pediapress/qserve</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/qserve/qserve-0.2.8-r1.ebuild b/dev-python/qserve/qserve-0.2.8-r1.ebuild
new file mode 100644
index 00000000000..ed0a43bd108
--- /dev/null
+++ b/dev-python/qserve/qserve-0.2.8-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A job queue server"
+HOMEPAGE="https://github.com/pediapress/qserve http://pypi.python.org/pypi/qserve/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/gevent[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test || die
+}
diff --git a/dev-python/queuelib/Manifest b/dev-python/queuelib/Manifest
new file mode 100644
index 00000000000..6ffa4431c31
--- /dev/null
+++ b/dev-python/queuelib/Manifest
@@ -0,0 +1 @@
+DIST queuelib.tar.gz 6969 SHA256 f771790be92a93c49fa6da0cab349d59e481fef784b8230bf9338d9036e90b8e SHA512 54b649d08ca60ed933d862b9d5845af162843f4f077722c78b7c72be4093406cc44182905a2d21235635afc1139974c08c213ccd8a333e72fd94c06adc34497a WHIRLPOOL 808ef3b957315505157fbac019b8ecab729f5c7539edeb289f47af540cc536ca55bcbbf0bd7edab7a105451fdfc9e2d8667409ea09383b7eb4980c22a0bedeea
diff --git a/dev-python/queuelib/metadata.xml b/dev-python/queuelib/metadata.xml
new file mode 100644
index 00000000000..257589dd8ef
--- /dev/null
+++ b/dev-python/queuelib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">scrapy/queuelib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/queuelib/queuelib-1.1.1.ebuild b/dev-python/queuelib/queuelib-1.1.1.ebuild
new file mode 100644
index 00000000000..9c8c195a094
--- /dev/null
+++ b/dev-python/queuelib/queuelib-1.1.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit vcs-snapshot distutils-r1
+
+DESCRIPTION="Collection of persistent (disk-based) queues"
+HOMEPAGE="https://github.com/scrapy/${PN}"
+SRC_URI="https://github.com/scrapy/${PN}/archive/v${PV}.tar.gz -> ${PN}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+S="${WORKDIR}/${PN}"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND=""
+
+python_test() {
+ nosetests queuelib/tests/ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/quixote/Manifest b/dev-python/quixote/Manifest
new file mode 100644
index 00000000000..3698700df16
--- /dev/null
+++ b/dev-python/quixote/Manifest
@@ -0,0 +1 @@
+DIST Quixote-2.8.tar.gz 474323 SHA256 454fa9171ed1c100d2df727269f9912548b4d9f4a6156503691be36894c99718 SHA512 d25e82228706966d1e3e24a07b8d1b62a016571f80ad375fa846be9fd720d6c2c8009b53f7abf72cd14ade36b3a69ac9a153d7017a88b5d420d571da45bc6558 WHIRLPOOL 0eed267e6c9d1df9c1872a55b89e7353cb019ab5cd58686739b6dc2e801a3e5bc893e1c5acf87b82557d579457377979e85f75fc5194b5c928c20f74755e58f8
diff --git a/dev-python/quixote/metadata.xml b/dev-python/quixote/metadata.xml
new file mode 100644
index 00000000000..8dd6d62f0de
--- /dev/null
+++ b/dev-python/quixote/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>web-apps</herd>
+</pkgmetadata>
diff --git a/dev-python/quixote/quixote-2.8.ebuild b/dev-python/quixote/quixote-2.8.ebuild
new file mode 100644
index 00000000000..a347806bfcb
--- /dev/null
+++ b/dev-python/quixote/quixote-2.8.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# Appears to be written only for py2
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+MY_P="${P/q/Q}"
+
+DESCRIPTION="Python HTML templating framework for developing web applications"
+HOMEPAGE="http://quixote.ca"
+SRC_URI="http://quixote.ca/releases/${MY_P}.tar.gz"
+
+LICENSE="CNRI-QUIXOTE-2.4"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="doc test"
+
+DEPEND="doc? ( dev-python/docutils[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}"/${MY_P}
+# tests require a running quixote server, prob. apt. post install. Tried the demo one but no
+RESTRICT="test"
+
+python_compile() {
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+ distutils-r1_python_compile
+}
+
+python_compile_all() {
+ use doc && emake -C doc
+}
+
+python_test() {
+ nosetests tests || die "tests failed"
+}
+
+python_install_all() {
+ local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/rackspace-auth-openstack/Manifest b/dev-python/rackspace-auth-openstack/Manifest
new file mode 100644
index 00000000000..e29ab6673c3
--- /dev/null
+++ b/dev-python/rackspace-auth-openstack/Manifest
@@ -0,0 +1,2 @@
+DIST rackspace-auth-openstack-1.0.tar.gz 6583 SHA256 3ab3de4e3d25a5b5f6014a9c74763f65859d4425cb96c46e5916e7e9718a0791 SHA512 47ef81a4f14e8bed8823a04d1a894e380a86d24b176d49f7d9f076d21f00f489f7851ed390ce4e62399e74e1f39a0c4d242b3f6f4e6c8da54ad7516778c03f1b WHIRLPOOL 8782b023d7ae20686a6f75bd77db2763b6055a33628374c71757f5d97916b0f3d09f688b8407f14909b6d3627133ef31275a9fdbf578c3aa9c4688b153935c33
+DIST rackspace-auth-openstack-1.3.tar.gz 6799 SHA256 c4c069eeb1924ea492c50144d8a4f5f1eb0ece945e0c0d60157cabcadff651cd SHA512 813fe85d38bc80bae65a3f160f50c17fe8bc7279dc3ad4689012b3fa9c0fdd1577c0491de0c87d3b8fe4e6ba5c1166cf30cc1d0533fa15c516a826ef6c36934c WHIRLPOOL 70ba4b3d88fe8be345dec55dcc145b01eb97ba56a87a63ecdaa5f25f38cac3fd5fdba4c6e094fea9e948fb7092ccdb53a15696dc30a734b6be0e5dd9103eab08
diff --git a/dev-python/rackspace-auth-openstack/metadata.xml b/dev-python/rackspace-auth-openstack/metadata.xml
new file mode 100644
index 00000000000..50a2b54e095
--- /dev/null
+++ b/dev-python/rackspace-auth-openstack/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a plugin for OpenStack Clients which provides client support for
+ Rackspace authentication extensions to OpenStack.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rackspace-auth-openstack</remote-id>
+ <remote-id type="github">emonty/rackspace-auth-openstack</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.0.ebuild b/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.0.ebuild
new file mode 100644
index 00000000000..07705be89ba
--- /dev/null
+++ b/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.0.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Rackspace Auth Plugin for OpenStack Clients"
+HOMEPAGE="https://github.com/emonty/rackspace-auth-openstack"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.3.ebuild b/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.3.ebuild
new file mode 100644
index 00000000000..07705be89ba
--- /dev/null
+++ b/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-1.3.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Rackspace Auth Plugin for OpenStack Clients"
+HOMEPAGE="https://github.com/emonty/rackspace-auth-openstack"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-9999.ebuild b/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-9999.ebuild
new file mode 100644
index 00000000000..5d5e7ed836a
--- /dev/null
+++ b/dev-python/rackspace-auth-openstack/rackspace-auth-openstack-9999.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 git-2
+
+EGIT_REPO_URI="git://github.com/emonty/${PN}.git
+ https://github.com/emonty/${PN}.git"
+
+DESCRIPTION="Rackspace Auth Plugin for OpenStack Clients"
+HOMEPAGE="https://github.com/emonty/rackspace-auth-openstack"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/rackspace-monitoring-cli/Manifest b/dev-python/rackspace-monitoring-cli/Manifest
new file mode 100644
index 00000000000..cc760787485
--- /dev/null
+++ b/dev-python/rackspace-monitoring-cli/Manifest
@@ -0,0 +1,2 @@
+DIST rackspace-monitoring-cli-0.6.10.tar.gz 156395 SHA256 b3a4c418edd73ad3c281cc0ead19cdc4127791dd80986d6c8a802ce6513d97cf SHA512 538ba6667557e40eb1ab381a7be147805a6cfd46f10d51d30e38f35cfe18b9324f4fdfea051e22b083b510d0501c254c80b4914c07470db9e3a1de7d247d1403 WHIRLPOOL 1d5353d9ee3416b20493c9a068cc394ecf10144e39233b048c14e5f9affc736f5ee07eb0c43fc303184eddf566fa4a98f84a90cdaeec4a119137e1ea92147b79
+DIST rackspace-monitoring-cli-0.6.9.tar.gz 156113 SHA256 37a0c4f0efcbd736f4c3b73b6e728fd6a267d52ecbd449b18d3e7d2373b77cc9 SHA512 79fb2f56777fc3b7c3c5263e98adcc6ab5e44e112bcf69d72816d5bbcbeb5f1b63d55da1dce8b501ec0b801afaea70057e9fbb670db731514aca0d071d654ef8 WHIRLPOOL 663baf2a428fcfdeb512172f1767064e643cd0d05018386f5a63b7b97a5f040d0d5563ba028be53ef32e09756f2a557204acf1e64c86f0a5adbdd6b7e0308dbe
diff --git a/dev-python/rackspace-monitoring-cli/metadata.xml b/dev-python/rackspace-monitoring-cli/metadata.xml
new file mode 100644
index 00000000000..a2e2096eeb4
--- /dev/null
+++ b/dev-python/rackspace-monitoring-cli/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Command Line Utility for Rackspace Cloud Monitoring (MaaS)
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rackspace-monitoring-cli</remote-id>
+ <remote-id type="github">racker/rackspace-monitoring-cli</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.10.ebuild b/dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.10.ebuild
new file mode 100644
index 00000000000..06145723d73
--- /dev/null
+++ b/dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.10.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+# https://github.com/racker/rackspace-monitoring-cli/issues/49
+RESTRICT="test"
+
+inherit distutils-r1
+
+DESCRIPTION="Command Line Utility for Rackspace Cloud Monitoring (MaaS)"
+HOMEPAGE="https://github.com/racker/rackspace-monitoring-cli"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+TEST_DEPENDS="dev-python/pep8[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/rackspace-monitoring-0.6.5[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${TEST_DEPENDS} )"
+
+python_test() {
+ ${EPYTHON} setup.py pep8 || die
+}
diff --git a/dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.9.ebuild b/dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.9.ebuild
new file mode 100644
index 00000000000..06145723d73
--- /dev/null
+++ b/dev-python/rackspace-monitoring-cli/rackspace-monitoring-cli-0.6.9.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+# https://github.com/racker/rackspace-monitoring-cli/issues/49
+RESTRICT="test"
+
+inherit distutils-r1
+
+DESCRIPTION="Command Line Utility for Rackspace Cloud Monitoring (MaaS)"
+HOMEPAGE="https://github.com/racker/rackspace-monitoring-cli"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+TEST_DEPENDS="dev-python/pep8[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/rackspace-monitoring-0.6.5[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${TEST_DEPENDS} )"
+
+python_test() {
+ ${EPYTHON} setup.py pep8 || die
+}
diff --git a/dev-python/rackspace-monitoring/Manifest b/dev-python/rackspace-monitoring/Manifest
new file mode 100644
index 00000000000..7213122b55f
--- /dev/null
+++ b/dev-python/rackspace-monitoring/Manifest
@@ -0,0 +1 @@
+DIST rackspace-monitoring-0.6.5.tar.gz 31397 SHA256 28e91f1054a9fe3b130c9d4fd65cb007e8efdaa89e9d8a8e99479aec73e298c4 SHA512 513e02eb7b823ed4287462ffe6517011c389119dbf37d90df31cc08714f93806188d07e4f8d339453b59f17c067229a3f52f1ae7aaf13a7c6504c0ef63b1f4fe WHIRLPOOL f90a4cfe2d13d4e68c9cfddaf9e6f94e3c721688d82059eeaa722e60278a040cbd87ae92e6d5c492b59fd7dc92e7ed302b690bc7fda4638e0e01ba22610903df
diff --git a/dev-python/rackspace-monitoring/metadata.xml b/dev-python/rackspace-monitoring/metadata.xml
new file mode 100644
index 00000000000..22de5298d96
--- /dev/null
+++ b/dev-python/rackspace-monitoring/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Client library for Rackspace Cloud Monitoring.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rackspace-monitoring</remote-id>
+ <remote-id type="github">racker/rackspace-monitoring</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rackspace-monitoring/rackspace-monitoring-0.6.5.ebuild b/dev-python/rackspace-monitoring/rackspace-monitoring-0.6.5.ebuild
new file mode 100644
index 00000000000..6807e729b3f
--- /dev/null
+++ b/dev-python/rackspace-monitoring/rackspace-monitoring-0.6.5.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Client library for Rackspace Cloud Monitoring"
+HOMEPAGE="https://github.com/racker/rackspace-monitoring"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+TEST_DEPENDS="dev-python/pep8[${PYTHON_USEDEP}]"
+RDEPEND="
+ >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}]
+ <dev-python/libcloud-0.16.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${TEST_DEPENDS}
+ ${RDEPEND}
+ )
+"
+
+python_test() {
+ ${EPYTHON} setup.py test || die
+}
diff --git a/dev-python/rackspace-novaclient/Manifest b/dev-python/rackspace-novaclient/Manifest
new file mode 100644
index 00000000000..1eebd13887e
--- /dev/null
+++ b/dev-python/rackspace-novaclient/Manifest
@@ -0,0 +1 @@
+DIST rackspace-novaclient-1.4.tar.gz 1706 SHA256 68e1f53411b635f836a53d09e6c85f6a7d5d69d39df2e25a745406140cd5c275 SHA512 d36e6e331f37a9cbd6802122d03d47678ff01a5e0b0aab4def337fccd1cba9b16e088c0b27873c0612fd31c188676471805f81240127d1432613f573c1cf4281 WHIRLPOOL a6015dc091ca1128f7c2d32b2f528eebb4a8e6f8e89e86dcb3502751e8fc81c244fbc09974a78f059f0f1d5591f72a4c0634bc3fc878f9c9d365760426d1f8c6
diff --git a/dev-python/rackspace-novaclient/metadata.xml b/dev-python/rackspace-novaclient/metadata.xml
new file mode 100644
index 00000000000..cb12089c0dd
--- /dev/null
+++ b/dev-python/rackspace-novaclient/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Metapackage to install python-novaclient and Rackspace extensions
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rackspace-novaclient</remote-id>
+ <remote-id type="github">rackerlabs/rackspace-novaclient</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rackspace-novaclient/rackspace-novaclient-1.4.ebuild b/dev-python/rackspace-novaclient/rackspace-novaclient-1.4.ebuild
new file mode 100644
index 00000000000..1fed7725e72
--- /dev/null
+++ b/dev-python/rackspace-novaclient/rackspace-novaclient-1.4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/rackerlabs/rackspace-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}]
+ >=dev-python/rackspace-auth-openstack-1.3[${PYTHON_USEDEP}]
+ >=dev-python/os-diskconfig-python-novaclient-ext-0.1.2[${PYTHON_USEDEP}]
+ !dev-python/rax-backup-schedule-python-novaclient-ext[${PYTHON_USEDEP}]
+ >=dev-python/os-networksv2-python-novaclient-ext-0.21[${PYTHON_USEDEP}]
+ >=dev-python/os-virtual-interfacesv2-python-novaclient-ext-0.15[${PYTHON_USEDEP}]
+ >=dev-python/rax-default-network-flags-python-novaclient-ext-0.2.4[${PYTHON_USEDEP}]"
+
+python_prepare() {
+ mkdir "${BUILD_DIR}" || die
+}
diff --git a/dev-python/radon/Manifest b/dev-python/radon/Manifest
new file mode 100644
index 00000000000..778082ed4ee
--- /dev/null
+++ b/dev-python/radon/Manifest
@@ -0,0 +1,3 @@
+DIST radon-1.2.1.tar.gz 1633366 SHA256 bacc94a4a5c1a3e9410944e8e4e0f0aaf7dcf066c9b35bd92ac8eba5d47429fa SHA512 5676695344b7cf574abd9079ee3856debdf3ac4bda4a1c52e00406e2bbb71ad74f320f43638887e30db073fd623070a97fc44c031eec13588e953b33b549e2bf WHIRLPOOL 2ab535d0fe0b56b538dbe389b68e522468611f25c797c69343f4da700ae6129dc725051998238f0f136c45382f29887cdccc899aeaab000796f22a9962d40505
+DIST radon-1.2.2.tar.gz 3468244 SHA256 3cab798af062632ad275092c537e409f8948c19034e98d3ab243ce455b4eee9d SHA512 2bd424ca81fd55d1bf444e7b2a228bd11ee23a7f77cad488fa45e8ce888282373f1729f7f00ca2f19838e10bbc1dabb1602f5bbac396702b52309a60671ef0a7 WHIRLPOOL 46e549bd9d29cd7d54a4e9746ea67f541919fdb90769f1cb3b70b51420b85bacac024b6bc0c16f25f4257652f76d750892bf2eefb146ea0ae76ef7718de11781
+DIST radon-1.2.tar.gz 1604458 SHA256 289ee3c5ef9e55fb159d589f5c0b20c2ce4f5aaa94502fe7c1d1a5fd444957c7 SHA512 9fe3a505d83b7c69a9adc98247063e91aed9f52187f2d33356a586dcf498492fb5acd283725dc9acd0f03dd1365cc3113925f027f0d0d94a94258b7ac217b62e WHIRLPOOL 5a613cce315feef10392a8fa8a7c2bc050fc35e8ee09b2d4b1afc9b72bae2887ed1d71a206fb1e9415548d554bc74bf52e8e0cc71eadd4be1d6791cb87eb96d7
diff --git a/dev-python/radon/metadata.xml b/dev-python/radon/metadata.xml
new file mode 100644
index 00000000000..b8a32073325
--- /dev/null
+++ b/dev-python/radon/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">radon</remote-id>
+ <remote-id type="github">rubik/radon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/radon/radon-1.2.1.ebuild b/dev-python/radon/radon-1.2.1.ebuild
new file mode 100644
index 00000000000..6eaa063c380
--- /dev/null
+++ b/dev-python/radon/radon-1.2.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Code Metrics in Python"
+HOMEPAGE="https://radon.readthedocs.org/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RCDEPEND="
+ dev-python/mando[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+"
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ ${CDEPEND}
+ test? (
+ ${RCDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/paramunittest[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ ${RCDEPEND}
+"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" radon/tests/run.py || die "tests failed to run under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/radon/radon-1.2.2.ebuild b/dev-python/radon/radon-1.2.2.ebuild
new file mode 100644
index 00000000000..6eaa063c380
--- /dev/null
+++ b/dev-python/radon/radon-1.2.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Code Metrics in Python"
+HOMEPAGE="https://radon.readthedocs.org/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RCDEPEND="
+ dev-python/mando[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+"
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ ${CDEPEND}
+ test? (
+ ${RCDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/paramunittest[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ ${RCDEPEND}
+"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" radon/tests/run.py || die "tests failed to run under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/radon/radon-1.2.ebuild b/dev-python/radon/radon-1.2.ebuild
new file mode 100644
index 00000000000..fb47f75eaa1
--- /dev/null
+++ b/dev-python/radon/radon-1.2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Code Metrics in Python"
+HOMEPAGE="https://radon.readthedocs.org/"
+SRC_URI="https://github.com/rubik/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="
+ dev-python/mando[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/paramunittest[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" radon/tests/run.py || die "tests failed to run under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/raet/Manifest b/dev-python/raet/Manifest
new file mode 100644
index 00000000000..dc3d1d52549
--- /dev/null
+++ b/dev-python/raet/Manifest
@@ -0,0 +1,3 @@
+DIST raet-0.3.8.tar.gz 112479 SHA256 a6f346099312d799099769583d042ccb2fc67cbc9632a28774861228f8c61331 SHA512 bcefa895a95eb41c84aff8b16661c976490823bd067d7282ff646cfe09208aedb27e21e35fafd3c699e3b3fec71dff281efac911ed4f0e4c396ffc376d0e1d35 WHIRLPOOL 4482b492f1c830f56c6d2606db17b29fa4b00f5a2a77ee6c691080cea681844f5678b370cdeae9c9ff3725187ff7075b18bcbaad37702e2f1dcd411ebc8ce998
+DIST raet-0.6.1.tar.gz 135404 SHA256 f033f524c73e8f1ddad34b3ba8ee40d098f3ebafa25a3d7ef6cc5ceb53945f8f SHA512 7ca46253e0a1645eb4fbb70c78e9eddfcb07fd97f65bb1175b9177e271c51eb69016a188e9f6f9183afab6637e0ece4528673ab7fc9d865ea51e35c8162eb1f8 WHIRLPOOL 84b559954c6198d025f081925425fa44ad6a3ecd2f6a8262b795af510e0856657e06cc8f97afcb7cc32ada700a2e5217b67c5f50bc3176e69294d99ebb078dd2
+DIST raet-0.6.3.tar.gz 135532 SHA256 0042242df037223d3c42c72a9010717f5ee97251e4b0581b84c086b9c2ff1acc SHA512 d7be419b28d97da03b6aa8cbec675ed4cf4b89c98c92a3809e5652d2fd5644128f37818534b86c3f0c331c5914cec7bdb5982e10a5033b8f0adad027e281ccd9 WHIRLPOOL 577596ea77625b4f9a873221a4d65645af38a6b5205260426ad978a89e2ff2f8711463c524a45de9e1969a7126e4012cabbc7cf2282d2e2d4e8a6b0c376ad88d
diff --git a/dev-python/raet/metadata.xml b/dev-python/raet/metadata.xml
new file mode 100644
index 00000000000..99c6c318206
--- /dev/null
+++ b/dev-python/raet/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">raet</remote-id>
+ <remote-id type="github">saltstack/raet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/raet/raet-0.3.8.ebuild b/dev-python/raet/raet-0.3.8.ebuild
new file mode 100644
index 00000000000..ffa5c16c62d
--- /dev/null
+++ b/dev-python/raet/raet-0.3.8.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+inherit distutils-r1
+
+DESCRIPTION="Reliable Asynchronous Event Transport Protocol"
+HOMEPAGE="https://github.com/saltstack/raet"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/six-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/libnacl-0.9.4[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-0.9.35[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/unittest2[${PYTHON_USEDEP}] )"
+
+python_test() {
+ pushd ${PN} || die "could not find tests for ${EPYTHON}"
+ ${EPYTHON} test/__init__.py || die "tests failed for ${EPYTHON}"
+ popd
+}
diff --git a/dev-python/raet/raet-0.6.1.ebuild b/dev-python/raet/raet-0.6.1.ebuild
new file mode 100644
index 00000000000..75f86c6047d
--- /dev/null
+++ b/dev-python/raet/raet-0.6.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_4})
+inherit distutils-r1
+
+DESCRIPTION="Reliable Asynchronous Event Transport Protocol"
+HOMEPAGE="https://github.com/saltstack/raet"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/six-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/libnacl-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-1.2.1[${PYTHON_USEDEP}]
+ python_targets_python2_7? ( >=dev-python/enum34-1.0.4[$(python_gen_usedep 'python2*')] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/unittest2[${PYTHON_USEDEP}] )"
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib
+ ${EPYTHON} ${PN}/test/__init__.py || die "tests failed for ${EPYTHON}"
+ popd
+}
diff --git a/dev-python/raet/raet-0.6.3.ebuild b/dev-python/raet/raet-0.6.3.ebuild
new file mode 100644
index 00000000000..75f86c6047d
--- /dev/null
+++ b/dev-python/raet/raet-0.6.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_4})
+inherit distutils-r1
+
+DESCRIPTION="Reliable Asynchronous Event Transport Protocol"
+HOMEPAGE="https://github.com/saltstack/raet"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/six-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/libnacl-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-1.2.1[${PYTHON_USEDEP}]
+ python_targets_python2_7? ( >=dev-python/enum34-1.0.4[$(python_gen_usedep 'python2*')] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/unittest2[${PYTHON_USEDEP}] )"
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib
+ ${EPYTHON} ${PN}/test/__init__.py || die "tests failed for ${EPYTHON}"
+ popd
+}
diff --git a/dev-python/rarfile/Manifest b/dev-python/rarfile/Manifest
new file mode 100644
index 00000000000..b61b548e089
--- /dev/null
+++ b/dev-python/rarfile/Manifest
@@ -0,0 +1 @@
+DIST rarfile-2.6.tar.gz 35981 SHA256 326700c5450cfb367f612e918866ea27551bac02f4656f340003c88873fa1a56 SHA512 9b74853516bae8332e0cf030f4de84f57b1680691a177c3ec6cf7f8650b82c807a67c4e68589c2097bf7359b03692e1fb30530ab40f23b90d1ebbbe21d20239a WHIRLPOOL 4edc2b98f81035c5c25318e598b78f1a52afcd19056ad0ecf8157cd355aae88443c04186359d2564d8118cff2f517a63da932685832fa38179201c2d0d52fb69
diff --git a/dev-python/rarfile/metadata.xml b/dev-python/rarfile/metadata.xml
new file mode 100644
index 00000000000..c09c8f1679d
--- /dev/null
+++ b/dev-python/rarfile/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>thev00d00@gentoo.org</email>
+ <name>Ian Whyman</name>
+ </maintainer>
+ <longdescription>This is Python module for RAR archive reading. The interface is made as zipfile like as possible.</longdescription>
+ <use>
+ <flag name="compressed">Enables the module to support compressed v3 archives by calling the <pkg>app-arch/unrar</pkg>.</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">rarfile</remote-id>
+ <remote-id type="github">markokr/rarfile</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rarfile/rarfile-2.6.ebuild b/dev-python/rarfile/rarfile-2.6.ebuild
new file mode 100644
index 00000000000..e2cca0c0c22
--- /dev/null
+++ b/dev-python/rarfile/rarfile-2.6.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Module for RAR archive reading"
+HOMEPAGE="https://github.com/markokr/rarfile"
+SRC_URI="mirror://pypi/r/${PN}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+compressed"
+
+RDEPEND="${DEPEND}
+ compressed? ( || ( app-arch/unrar app-arch/rar ) )"
diff --git a/dev-python/raven/Manifest b/dev-python/raven/Manifest
new file mode 100644
index 00000000000..044fe18977e
--- /dev/null
+++ b/dev-python/raven/Manifest
@@ -0,0 +1,2 @@
+DIST raven-5.2.0.tar.gz 225471 SHA256 01f90e5b15a6676d5ea360e09fb0cd926edad7332584c67d83dc4371c10307aa SHA512 a7e82d9060f466500e429c119a184da1f437632dae76dfd3b24b2101e3fcf0e7fcf8b7371c299e5174c15516c127a3e437269d62d908c59f02c587f3ab528b21 WHIRLPOOL 39e50c0b79f97ec58fdc5d7cee339afd8da4efe8d063361391eb39bdcced36313f08971b93b624b97adbd06895b905b76104757042ee599228316c82cc92391d
+DIST raven-5.3.0.tar.gz 319160 SHA256 271c6eda8763b885eb514e3fc2271b59ae62099c8e9371332180059a298e01ba SHA512 805a0910aea0eed73704dc57a32482a5b01501c27c788c105b84d12241480e70d1454ab54d924e6c8e5ef03764ed5759fc79482ee24417e801e9634353160df2 WHIRLPOOL 2eb3deaff1e029fe1c2c1711e36d939ecef2849401a2b9dad8b5295c9e77ba1dc98ca8024639a1fac13e19f7dd49b0fffc478b513a1c4f18447de8b08d38ed99
diff --git a/dev-python/raven/metadata.xml b/dev-python/raven/metadata.xml
new file mode 100644
index 00000000000..2646b9e2fe2
--- /dev/null
+++ b/dev-python/raven/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>bman@gentoo.org</email>
+ <name>Aaron Bauman</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">raven</remote-id>
+ <remote-id type="github">getsentry/raven-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/raven/raven-5.2.0.ebuild b/dev-python/raven/raven-5.2.0.ebuild
new file mode 100644
index 00000000000..648cadc4612
--- /dev/null
+++ b/dev-python/raven/raven-5.2.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Raven is a client for Sentry"
+HOMEPAGE="http://github.com/getsentry/raven-python"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/raven/raven-5.3.0.ebuild b/dev-python/raven/raven-5.3.0.ebuild
new file mode 100644
index 00000000000..648cadc4612
--- /dev/null
+++ b/dev-python/raven/raven-5.3.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Raven is a client for Sentry"
+HOMEPAGE="http://github.com/getsentry/raven-python"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/rax-default-network-flags-python-novaclient-ext/Manifest b/dev-python/rax-default-network-flags-python-novaclient-ext/Manifest
new file mode 100644
index 00000000000..500683755a9
--- /dev/null
+++ b/dev-python/rax-default-network-flags-python-novaclient-ext/Manifest
@@ -0,0 +1,3 @@
+DIST rax_default_network_flags_python_novaclient_ext-0.1.3.tar.gz 2399 SHA256 7241364afc39f88a29996d5d6aceb0b2ba2f85ba24496d433e245db32f6905aa SHA512 d3142f7c0a6cba84e07c1dd85c26425d8f21c6f170765a175f0dec914416a72127488c7d448643a0bec37eb6cd5237d2037a390d7c4df7e5f696519f05a9d017 WHIRLPOOL 995e545ebbe9493a699b33d42b6cdc20f3da0d451007c960e97f7a58fe0305f23a0f63fff48d4bb5831334cb175678f223a47ad6474092259de08b0c479f5c00
+DIST rax_default_network_flags_python_novaclient_ext-0.2.4.tar.gz 2737 SHA256 998153d3fa1e4abd938111bc9635770ce50772d7438fd0702f7bb7d5c8748b30 SHA512 e2995a03a5073266910ca6a290af53e43bcf8503ca4ee3cc8224ed076b4bba5a6fec96941b2502407f0096c6ddc08ee51df8a5a60dc8466239f4210375a8c23d WHIRLPOOL 64830d387821863fb6dab55622bdf3aac1c80fec4416fc7d58541cdb9cce62b35faed9e93558fb23d52fd00ed4b94290843e0972a2077a583b4c1af2cc4abaaf
+DIST rax_default_network_flags_python_novaclient_ext-0.3.1.tar.gz 2527 SHA256 336d60bdb836dd4e51b142f7977da57b078ad2104a6628eaef7135c67a627c70 SHA512 a5f12045085a87b3ee062a329c4f47b22498a3ff3dda4a809bccc066763455c9f64ccd982c7ad689370c55389c2650cf0776af808ab69d49121c158cf8814a77 WHIRLPOOL d60f44390e211cd34fe30dfdc47c41f83944431995e2fa6464f9251a5a1c90e1478e5fee147819702b082156b9d5608720a2d3c9a5439f8705b683eeb2d858b7
diff --git a/dev-python/rax-default-network-flags-python-novaclient-ext/metadata.xml b/dev-python/rax-default-network-flags-python-novaclient-ext/metadata.xml
new file mode 100644
index 00000000000..ba06ddf7178
--- /dev/null
+++ b/dev-python/rax-default-network-flags-python-novaclient-ext/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Adds instance default networks extension support to python-novaclient
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rax_default_network_flags_python_novaclient_ext</remote-id>
+ <remote-id type="github">rackspace/rax_default_network_flags_python_novaclient_ext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3-r1.ebuild b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3-r1.ebuild
new file mode 100644
index 00000000000..9afad99371d
--- /dev/null
+++ b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/rax_default_network_flags_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/rax_default_network_flags_python_novaclient_ext/rax_default_network_flags_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/rax_default_network_flags_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3.ebuild b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3.ebuild
new file mode 100644
index 00000000000..51434ec0f55
--- /dev/null
+++ b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.1.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/rax_default_network_flags_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/rax_default_network_flags_python_novaclient_ext/rax_default_network_flags_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/rax_default_network_flags_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.2.4.ebuild b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.2.4.ebuild
new file mode 100644
index 00000000000..9afad99371d
--- /dev/null
+++ b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.2.4.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/rax_default_network_flags_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/rax_default_network_flags_python_novaclient_ext/rax_default_network_flags_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/rax_default_network_flags_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.3.1.ebuild b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.3.1.ebuild
new file mode 100644
index 00000000000..0add79b9db0
--- /dev/null
+++ b/dev-python/rax-default-network-flags-python-novaclient-ext/rax-default-network-flags-python-novaclient-ext-0.3.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Disk Config extension for python-novaclient"
+HOMEPAGE="https://github.com/rackspace/rax_default_network_flags_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/rax_default_network_flags_python_novaclient_ext/rax_default_network_flags_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/rax_default_network_flags_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.20.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/rax-scheduled-images-python-novaclient-ext/Manifest b/dev-python/rax-scheduled-images-python-novaclient-ext/Manifest
new file mode 100644
index 00000000000..b457ee5fc4c
--- /dev/null
+++ b/dev-python/rax-scheduled-images-python-novaclient-ext/Manifest
@@ -0,0 +1 @@
+DIST rax_scheduled_images_python_novaclient_ext-0.2.1.tar.gz 2781 SHA256 17236eb56c7216472d66652579531f0725fe14ee72e8b35a86fc7ca3aa734f01 SHA512 d26fcb8c4cc70b7e4b31f4eb8306d094139d914fbdaf9fda846f13a2bb6336734b2aebc4c7322df5986ba1cc57d4d5894e744ded063f4a01d7a63d3642049672 WHIRLPOOL 4e0cf12f03b08e5a06aeeeef5026e3bf0695f5ed23a229a0507d51c27de7d3cffea14256af3758a1d2070e17593ffb5353071be21e5bc27654c22a2ed888aa16
diff --git a/dev-python/rax-scheduled-images-python-novaclient-ext/metadata.xml b/dev-python/rax-scheduled-images-python-novaclient-ext/metadata.xml
new file mode 100644
index 00000000000..7f7c4045392
--- /dev/null
+++ b/dev-python/rax-scheduled-images-python-novaclient-ext/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Adds backup-schedule extension support to python-novaclient.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rax_scheduled_images_python_novaclient_ext</remote-id>
+ <remote-id type="github">rackspace/rax_backup_schedule_python_novaclient_ext</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rax-scheduled-images-python-novaclient-ext/rax-scheduled-images-python-novaclient-ext-0.2.1.ebuild b/dev-python/rax-scheduled-images-python-novaclient-ext/rax-scheduled-images-python-novaclient-ext-0.2.1.ebuild
new file mode 100644
index 00000000000..ea92e468c09
--- /dev/null
+++ b/dev-python/rax-scheduled-images-python-novaclient-ext/rax-scheduled-images-python-novaclient-ext-0.2.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Adds backup-schedule extension support to python-novaclient"
+HOMEPAGE="https://github.com/rackspace/rax_backup_schedule_python_novaclient_ext"
+SRC_URI="mirror://pypi/${PN:0:1}/rax_scheduled_images_python_novaclient_ext/rax_scheduled_images_python_novaclient_ext-${PV}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/rax_scheduled_images_python_novaclient_ext-${PV}"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/python-novaclient-2.10.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/rdflib/Manifest b/dev-python/rdflib/Manifest
new file mode 100644
index 00000000000..8f4d6b4e192
--- /dev/null
+++ b/dev-python/rdflib/Manifest
@@ -0,0 +1,3 @@
+DIST rdflib-3.2.3.tar.gz 449077 SHA256 a3cab51c14fa6fe379261e0157c110d94e2f75ef62073ddc76fe56f5be624b75 SHA512 92697be6d6bba4e31303b46c2a42defd840770f75c6f359b7338fa3d48a2001cdcda3b6319403ad0c9f1696051d773b146c9b012770df81b4d94a34d30f6b02a WHIRLPOOL b41794febee280022990dac8c4e177660f69803f01fc14ade194015bc6cf1eaf23164620b09cf1123445d181c0bbe9f0733b901cddafb126bcd711d0462a9f7b
+DIST rdflib-4.1.2.tar.gz 868883 SHA256 3cf94bda0867f21468b248ce9f671581efb92ae9edd28ff321716126c6706a4f SHA512 99d4a4b4d37808563575ac13312cf0e0975f7c1563117cfe7e4b70a84a2804f7eb57144d6a7c629c109ff7b236a6ea2489a4925ae41791274f3b234143837e65 WHIRLPOOL 090e00cc3113cec158f786a39103450f0d1d25571ad57c346120756901f01b0fcf20ff731ae3b174b54f3621e46a26061eee7bd774ffdf91380f4a3647380590
+DIST rdflib-4.2.0.tar.gz 881424 SHA256 7420dafc4930249d0cfcf31e8547a39b658d079ab2c9e975465f6697a8476ec0 SHA512 7677869eb0a65ede317634253042da68b4e183d5352cd37bd949380eb29deec8329336067a2ab686c90d6a1718f8e7a9039424753846d879cce41c05f656735f WHIRLPOOL 62f67318ade0fee1d5d64d6294aa821f4f06f940b18e421d43292e749e495cb3e348b522dd79eec805ce88125d8a6864dccc4a4037ed0a52d5aed616e51b39f5
diff --git a/dev-python/rdflib/files/rdflib-3.1.0-test.patch b/dev-python/rdflib/files/rdflib-3.1.0-test.patch
new file mode 100644
index 00000000000..aea1bf5ac72
--- /dev/null
+++ b/dev-python/rdflib/files/rdflib-3.1.0-test.patch
@@ -0,0 +1,20 @@
+ rdflib/__init__.py | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rdflib/__init__.py b/rdflib/__init__.py
+index b781031..44efb0b 100644
+--- a/rdflib/__init__.py
++++ b/rdflib/__init__.py
+@@ -15,10 +15,10 @@ A tiny example:
+ >>> import rdflib
+
+ >>> g = rdflib.Graph()
+- >>> result = g.parse("http://eikeon.com/foaf.rdf")
++ >>> result = g.parse("http://www.w3.org/2000/10/swap/test/meet/white.rdf")
+
+ >>> print "graph has %s statements." % len(g)
+- graph has 34 statements.
++ graph has 19 statements.
+ >>>
+ >>> for s, p, o in g:
+ ... if (s, p, o) not in g:
diff --git a/dev-python/rdflib/metadata.xml b/dev-python/rdflib/metadata.xml
new file mode 100644
index 00000000000..53fc3d1ed97
--- /dev/null
+++ b/dev-python/rdflib/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="redland">enable support for Redland triplestore</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">rdflib</remote-id>
+ <remote-id type="github">RDFLib/rdflib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rdflib/rdflib-3.2.3-r1.ebuild b/dev-python/rdflib/rdflib-3.2.3-r1.ebuild
new file mode 100644
index 00000000000..22f484a537b
--- /dev/null
+++ b/dev-python/rdflib/rdflib-3.2.3-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+PYTHON_REQ_USE="sqlite?"
+DISTUTILS_NO_PARALLEL_BUILD=true
+
+inherit distutils-r1
+
+DESCRIPTION="RDF library containing a triple store and parser/serializer"
+HOMEPAGE="https://github.com/RDFLib/rdflib http://pypi.python.org/pypi/rdflib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+IUSE="berkdb examples mysql redland sqlite test"
+
+RDEPEND="
+ dev-python/isodate[${PYTHON_USEDEP}]
+ berkdb? ( dev-python/bsddb3 )
+ mysql? ( dev-python/mysql-python[$(python_gen_usedep 'python2*')] )
+ redland? ( dev-libs/redland-bindings[python] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools"
+
+python_prepare_all() {
+ # Upstream manufactured .pyc files which promptly break distutils' src_test
+ find -name "*.py[oc~]" -delete || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests --verbosity=3 --py3where='build/src' || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r examples/*
+ fi
+}
diff --git a/dev-python/rdflib/rdflib-4.1.2.ebuild b/dev-python/rdflib/rdflib-4.1.2.ebuild
new file mode 100644
index 00000000000..da5d38550c9
--- /dev/null
+++ b/dev-python/rdflib/rdflib-4.1.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite?"
+DISTUTILS_NO_PARALLEL_BUILD=true
+# The usual required for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+inherit distutils-r1
+
+DESCRIPTION="RDF library containing a triple store and parser/serializer"
+HOMEPAGE="https://github.com/RDFLib/rdflib http://pypi.python.org/pypi/rdflib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="berkdb examples mysql redland sqlite test"
+
+RDEPEND="
+ dev-python/isodate[${PYTHON_USEDEP}]
+ dev-python/html5lib[$(python_gen_usedep 'python2*')]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ berkdb? ( dev-python/bsddb3[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[$(python_gen_usedep 'python2*')] )
+ redland? ( dev-libs/redland-bindings[python,$(python_gen_usedep 'python2*')] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/sparql-wrapper[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.1-r1[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Upstream manufactured .pyc files which promptly break distutils' src_test
+ find -name "*.py[oc~]" -delete || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ if python_is_python3; then
+ pushd "${BUILD_DIR}/src/" > /dev/null
+ if [[ "${EPYTHON}" == 'python3.4' ]]; then
+ sed -e 's:test_rdfpipe_bytes_vs_str:_&:' \
+ -e 's:test_rdfpipe_mdata_open:_&:' \
+ -i test/test_issue375.py || die
+ sed -e 's:testHTML:_&:' \
+ -i test/test_xmlliterals.py || die
+ fi
+ "${PYTHON}" ./run_tests.py || die "Tests failed under ${EPYTHON}"
+ popd > /dev/null
+ else
+ "${PYTHON}" ./run_tests.py || die "Tests failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/rdflib/rdflib-4.2.0.ebuild b/dev-python/rdflib/rdflib-4.2.0.ebuild
new file mode 100644
index 00000000000..9ab19201e21
--- /dev/null
+++ b/dev-python/rdflib/rdflib-4.2.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite?"
+DISTUTILS_NO_PARALLEL_BUILD=true
+# The usual required for tests
+DISTUTILS_IN_SOURCE_BUILD=1
+
+inherit distutils-r1
+
+DESCRIPTION="RDF library containing a triple store and parser/serializer"
+HOMEPAGE="https://github.com/RDFLib/rdflib http://pypi.python.org/pypi/rdflib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="berkdb examples mysql redland sqlite test"
+
+RDEPEND="
+ dev-python/isodate[${PYTHON_USEDEP}]
+ dev-python/html5lib[$(python_gen_usedep 'python2*')]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ berkdb? ( dev-python/bsddb3[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[$(python_gen_usedep 'python2*')] )
+ redland? ( dev-libs/redland-bindings[python,$(python_gen_usedep 'python2*')] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/sparql-wrapper[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.1-r1[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Upstream manufactured .pyc files which promptly break distutils' src_test
+ find -name "*.py[oc~]" -delete || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ if python_is_python3; then
+ pushd "${BUILD_DIR}/src/" > /dev/null
+ if [[ "${EPYTHON}" == 'python3.4' ]]; then
+ sed -e 's:test_rdfpipe_bytes_vs_str:_&:' \
+ -e 's:test_rdfpipe_mdata_open:_&:' \
+ -i test/test_issue375.py || die
+ sed -e 's:testHTML:_&:' \
+ -i test/test_xmlliterals.py || die
+ fi
+ "${PYTHON}" ./run_tests.py || die "Tests failed under ${EPYTHON}"
+ popd > /dev/null
+ else
+ "${PYTHON}" ./run_tests.py || die "Tests failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/readme/Manifest b/dev-python/readme/Manifest
new file mode 100644
index 00000000000..abdce5ca448
--- /dev/null
+++ b/dev-python/readme/Manifest
@@ -0,0 +1,3 @@
+DIST readme-0.4.1.tar.gz 9318 SHA256 baf79dc0312ee4cf49291412916a120051b1b0977b5b7f883c550fb426a6a690 SHA512 937610e49fe2b94d8a5e924c02e99194bfe453bf73c03f73514dbd30412f556b81af2fa6ddfc5352f8eccc3706065f7e8302403d6060a6dc6719a7fabd1251ee WHIRLPOOL 405dc4a3b71ef7da42a333a63cb0ecc7dad3cb8d3ff9bc1fecd60d001700c1676e0f2ca4d7b9a08bb38c957cce5bb99cdba997f14d2c30fe5bee4f7ffc2a803d
+DIST readme-0.4.2.tar.gz 9329 SHA256 2ae289e4090991b9f7e0a1da210444c2b91f57257da226b5dfd4eadff0b6e5b1 SHA512 83db9dc4042a9079380cefef753c88b2a65e7905fa3715260a03d78d2ed00e12f60425626d254cd7cb2b945216b6fb062ffec1d9073cbc7619957744dfcaab25 WHIRLPOOL 3d635805f20a80f5d30e418bb1971ed81833ec4cb13416efd18a4a51c28479d21ba37f318023f17128afc8795a4b62bd0251a2cbbb34bf6b932ee15f6e71c733
+DIST readme-0.5.1.tar.gz 9917 SHA256 4d33851d7fa56d1f93b7ba979ebbb17b5175ccde9fd9dfb974427bdd72ec667b SHA512 50cbd71e692be0b6cba06d85765946aa2d2d751f3f44563c5a6902ecc982658e5e3b1e01cbaf50a4df4dc61a56290e67b71eb88c109cbb830af36f0d334552c2 WHIRLPOOL f53d900d9764c59053db1350fe059a45d1faed43f7d53468ebf3d88dfea44fe69ffb22e80483e69c4b24708fd75963a034e429325b5844375a11202ce7877a23
diff --git a/dev-python/readme/metadata.xml b/dev-python/readme/metadata.xml
new file mode 100644
index 00000000000..c4cf8bf0486
--- /dev/null
+++ b/dev-python/readme/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">readme</remote-id>
+ <remote-id type="github">pypa/readme</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/readme/readme-0.4.1.ebuild b/dev-python/readme/readme-0.4.1.ebuild
new file mode 100644
index 00000000000..99b0b0f471f
--- /dev/null
+++ b/dev-python/readme/readme-0.4.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="a library for rendering \"readme\" descriptions for Warehouse"
+HOMEPAGE="https://github.com/pypa/readme https://pypi.python.org/pypi/readme"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ dev-python/bleach[${PYTHON_USEDEP}]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+DOCS=( README.rst )
+
+python_prepare_all() {
+ # remove failing test for now
+ rm tests/fixtures/test_rst_008* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/readme/readme-0.4.2.ebuild b/dev-python/readme/readme-0.4.2.ebuild
new file mode 100644
index 00000000000..99b0b0f471f
--- /dev/null
+++ b/dev-python/readme/readme-0.4.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="a library for rendering \"readme\" descriptions for Warehouse"
+HOMEPAGE="https://github.com/pypa/readme https://pypi.python.org/pypi/readme"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ dev-python/bleach[${PYTHON_USEDEP}]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+DOCS=( README.rst )
+
+python_prepare_all() {
+ # remove failing test for now
+ rm tests/fixtures/test_rst_008* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/readme/readme-0.5.1.ebuild b/dev-python/readme/readme-0.5.1.ebuild
new file mode 100644
index 00000000000..99b0b0f471f
--- /dev/null
+++ b/dev-python/readme/readme-0.5.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="a library for rendering \"readme\" descriptions for Warehouse"
+HOMEPAGE="https://github.com/pypa/readme https://pypi.python.org/pypi/readme"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ dev-python/bleach[${PYTHON_USEDEP}]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+"
+
+DOCS=( README.rst )
+
+python_prepare_all() {
+ # remove failing test for now
+ rm tests/fixtures/test_rst_008* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ py.test -v || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/recaptcha-client/Manifest b/dev-python/recaptcha-client/Manifest
new file mode 100644
index 00000000000..1e7646bc1ce
--- /dev/null
+++ b/dev-python/recaptcha-client/Manifest
@@ -0,0 +1 @@
+DIST recaptcha-client-1.0.6.tar.gz 7389 SHA256 28c6853c1d13d365b7dc71a6b05e5ffb56471f70a850de318af50d3d7c0dea2f SHA512 c41954d722181ece934701df0701101b31cad74c15a123c2c641e671e5117a27ea23e1f52aa9126d7ddfd038438f951d45ec4112323306a91d81072e31b3f5bb WHIRLPOOL a02764e7c67b62f6648cce97f3ba76ce894f0ef622c1a5da4e75f3bb6431257e24de4b9f137ab6a45d5b304b7f1320ef12261d0d17f0f7b80df2589e68cf96a7
diff --git a/dev-python/recaptcha-client/metadata.xml b/dev-python/recaptcha-client/metadata.xml
new file mode 100644
index 00000000000..d27c7095178
--- /dev/null
+++ b/dev-python/recaptcha-client/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">recaptcha-client</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/recaptcha-client/recaptcha-client-1.0.6-r1.ebuild b/dev-python/recaptcha-client/recaptcha-client-1.0.6-r1.ebuild
new file mode 100644
index 00000000000..d9ed8c6a05c
--- /dev/null
+++ b/dev-python/recaptcha-client/recaptcha-client-1.0.6-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A plugin for reCAPTCHA and reCAPTCHA Mailhide"
+HOMEPAGE="http://pypi.python.org/pypi/recaptcha-client/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/pycrypto[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND} dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/reconfigure/Manifest b/dev-python/reconfigure/Manifest
new file mode 100644
index 00000000000..0b166e9a6e3
--- /dev/null
+++ b/dev-python/reconfigure/Manifest
@@ -0,0 +1,2 @@
+DIST reconfigure-0.1.50.tar.gz 29054 SHA256 a524c735ab8e2cfe5de0086385952f4aa07676e4de2398a1f25957db8dda4100 SHA512 8b8ce5bd5b8934aebdba8db7c61dad25145f31804d1c95ff6d5e06984721a50a9a630e8f4d7f0a556e290b8336fc2341a7f94a9954dd427065c755f4a0b9a315 WHIRLPOOL 5cb5fb6e1e9b7e2376371b1f00e952d131d75d0257489b03fe1a88cff7c0d3f91198c582e488adb25d5cb92f2aa10131699a812420c862181693a3d41651c864
+DIST reconfigure-0.1.72.tar.gz 31227 SHA256 43b51178aed67b3bd72f7395b41e3657b5dc2eb744a795bcf95132d5df2073ec SHA512 d667207f677116d7a29adfe86b8bcdfbf6c87cb15ab3edbe8cc808d22ff26a5dc2c5fe8df4bc5b535ef123ebd40dfeaaea35992c980950e2c13eb8214bbb753f WHIRLPOOL 05608f1a92bdce7133bd3821e88562f3be9a92e1320394944ce8c55a989b7732d9c5300c3adc8b619b1faf84b710a76bf9445ef87a9aa9a9f8a46c4503295e24
diff --git a/dev-python/reconfigure/metadata.xml b/dev-python/reconfigure/metadata.xml
new file mode 100644
index 00000000000..cdb3a7315fe
--- /dev/null
+++ b/dev-python/reconfigure/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">reconfigure</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/reconfigure/reconfigure-0.1.50.ebuild b/dev-python/reconfigure/reconfigure-0.1.50.ebuild
new file mode 100644
index 00000000000..53c0c8b90d5
--- /dev/null
+++ b/dev-python/reconfigure/reconfigure-0.1.50.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An ORM for config files"
+HOMEPAGE="https://pypi.python.org/pypi/reconfigure/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/chardet[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/reconfigure/reconfigure-0.1.72.ebuild b/dev-python/reconfigure/reconfigure-0.1.72.ebuild
new file mode 100644
index 00000000000..bb2f8e42995
--- /dev/null
+++ b/dev-python/reconfigure/reconfigure-0.1.72.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="An ORM for config files"
+HOMEPAGE="https://pypi.python.org/pypi/reconfigure/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-python/chardet[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/redis-py/Manifest b/dev-python/redis-py/Manifest
new file mode 100644
index 00000000000..30cc386d550
--- /dev/null
+++ b/dev-python/redis-py/Manifest
@@ -0,0 +1,4 @@
+DIST redis-py-2.10.1.tar.gz 84143 SHA256 644aaf429e666d2254143a6a02f3b1cca2806d0cd52bb130c8f879d3c8259d62 SHA512 694a687e22654631fcf7b0b5884c2f3b3f804befe8080a1a27f08e212afe2f64c36921e025801d67bac1786b105f23565f52768f5b62ed1d18038be8dba9542c WHIRLPOOL e1b76cf47043d3d5317fc4352c9b52598af119a1501e4d6af1615181006afa658417002fdd8e206e6d5d5556df6dcbdd34a74b89918c513802793bd6ced4cccd
+DIST redis-py-2.10.3.tar.gz 86532 SHA256 a4fb37b02860f6b1617f6469487471fd086dd2d38bbce640c2055862b9c4019c SHA512 a6dcb1160f91c444a6fd107761b2701e7d8ab2eed7b9fcc00e8f0bdcefe46c2a626611f36fe6bf520fe3cceeb509562609e6dba263e1508abe285a6eab73963c WHIRLPOOL 2b2fc577ff752f71675cade7c591442526dfbac07495d1cf61b14ac21371e76aec2d008531bb8729eb5e3f3ffd372d6c9bf9f7554e51f8076d2d79c07377d33e
+DIST redis-py-2.7.4.tar.gz 79715 SHA256 623c8d437401314f8ec92f03848638c79c757098b316f0ed40ec2deaad57e082 SHA512 9b8db28c77e9df7a243e510a4f66a021179ab8ff52cfed2cc1b18b20f167eeee138d59a868fc105a32993681551c53e98d45680c16313680e8b4f36b6defa3b9 WHIRLPOOL fa5c754dc83f7d8baea68e21e283435994380e3e7243fa9bdb74ce934f7adacc75a11c6312d4b642606aa817010abc23f8f2a7b9eac1e2c73e50e897085124ad
+DIST redis-py-2.9.1.tar.gz 62204 SHA256 af9747ec2727425b1b09252975e21502ee5a3d8d235c7f49869eb13e09ccf4e4 SHA512 6b4912acafb31c87a5bc47b0420834aa9d1eba57feb0bbacdea943b746fe2f24aee4c9f13e7b03ae4edc562043b22c370cc7f53e45be07c5408cfa9852f8ea38 WHIRLPOOL ae38ea63d605f8dd667d9fc548de972bf38d661ae6ef357070ebe7cba3b484febc45d6b7611916d8a1e262e6bbf4754257e727f41af8caa30597954a1fc20cf5
diff --git a/dev-python/redis-py/metadata.xml b/dev-python/redis-py/metadata.xml
new file mode 100644
index 00000000000..b6916ebdbbb
--- /dev/null
+++ b/dev-python/redis-py/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">redis</remote-id>
+ <remote-id type="github">andymccurdy/redis-py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/redis-py/redis-py-2.10.1.ebuild b/dev-python/redis-py/redis-py-2.10.1.ebuild
new file mode 100644
index 00000000000..702abe72e91
--- /dev/null
+++ b/dev-python/redis-py/redis-py-2.10.1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="redis"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python client for Redis key-value store"
+HOMEPAGE="http://github.com/andymccurdy/redis-py"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-db/redis
+ >=dev-python/pytest-2.5.0[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable pubsub and encoding tests, they do not seem to support
+ # UNIX socket connectivity.
+ sed -i -e '/PubSub/d' -e '/Encoding/d' \
+ -e '/use_hiredis:/d' tests/__init__.py || die
+
+ # Make sure that tests will be used from BUILD_DIR rather than cwd.
+ mv tests tests-hidden || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use test; then
+ cp -r tests-hidden "${BUILD_DIR}"/tests || die
+ fi
+}
+
+src_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ # https://github.com/andymccurdy/redis-py/issues/503
+ # the suite is quite broken at this point but it's also the case in -2.9.1,
+ # making this not a regression. but a fix is in 'progress', just not the overlay one
+ local pidfile=${T}/redis-${EPYTHON}.pid
+ local sock=${T}/redis-${EPYTHON}.sock
+
+ sed -i -e "s:port=6379:unix_socket_path=\"${sock}\":" \
+ "${BUILD_DIR}"/tests/*.py || die
+
+ # XXX: find a way to make sure it is killed
+
+ "${EPREFIX}"/usr/sbin/redis-server \
+ --pidfile "${pidfile}" \
+ --port 0 \
+ --unixsocket "${sock}" \
+ --daemonize yes || die
+ PYTHONPATH="${PYTHONPATH}:${BUILD_DIR}" \
+ esetup.py test
+ kill "$(<"${pidfile}")"
+}
diff --git a/dev-python/redis-py/redis-py-2.10.3.ebuild b/dev-python/redis-py/redis-py-2.10.3.ebuild
new file mode 100644
index 00000000000..505a178f36a
--- /dev/null
+++ b/dev-python/redis-py/redis-py-2.10.3.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="redis"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python client for Redis key-value store"
+HOMEPAGE="http://github.com/andymccurdy/redis-py"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-db/redis
+ >=dev-python/pytest-2.5.0[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Make sure that tests will be used from BUILD_DIR rather than cwd.
+ mv tests tests-hidden || die
+
+ # Correct local import patch syntax
+ sed -e 's:from .conftest:from conftest:' \
+ -i tests-hidden/{test_connection_pool.py,test_commands.py,test_encoding.py,test_pubsub.py} \
+ || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use test; then
+ cp -r tests-hidden "${BUILD_DIR}"/tests || die
+ fi
+}
+
+src_test() {
+ # testsuite fails miserably under multiprocessing
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+
+ local sock="${T}/redis.sock"
+
+ "${EPREFIX}/usr/sbin/redis-server" - <<- EOF
+ daemonize yes
+ pidfile ${T}/redis.pid
+ unixsocket ${sock}
+ EOF
+
+ PYTHONPATH="${S}:${S}/tests-hidden"
+ esetup.py test
+ kill "$(<"${T}/redis.pid")"
+}
diff --git a/dev-python/redis-py/redis-py-2.7.4.ebuild b/dev-python/redis-py/redis-py-2.7.4.ebuild
new file mode 100644
index 00000000000..e49e3f1912a
--- /dev/null
+++ b/dev-python/redis-py/redis-py-2.7.4.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+MY_PN="redis"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python client for Redis key-value store"
+HOMEPAGE="http://github.com/andymccurdy/redis-py http://pypi.python.org/pypi/redis"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-db/redis )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable pubsub and encoding tests, they do not seem to support
+ # UNIX socket connectivity.
+ sed -i -e '/PubSub/d' -e '/Encoding/d' \
+ -e '/use_hiredis:/d' tests/__init__.py || die
+
+ # Make sure that tests will be used from BUILD_DIR rather than cwd.
+ mv tests tests-hidden || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use test; then
+ cp -r tests-hidden "${BUILD_DIR}"/tests || die
+ fi
+}
+
+src_test() {
+# local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local pidfile=${T}/redis-${EPYTHON}.pid
+ local sock=${T}/redis-${EPYTHON}.sock
+
+ sed -i -e "s:port=6379:unix_socket_path=\"${sock}\":" \
+ "${BUILD_DIR}"/tests/*.py || die
+
+ # XXX: find a way to make sure it is killed
+
+ "${EPREFIX}"/usr/sbin/redis-server \
+ --pidfile "${pidfile}" \
+ --port 0 \
+ --unixsocket "${sock}" \
+ --daemonize yes || die
+ PYTHONPATH="${PYTHONPATH}:${BUILD_DIR}" \
+ esetup.py test
+ kill "$(<"${pidfile}")"
+}
diff --git a/dev-python/redis-py/redis-py-2.9.1.ebuild b/dev-python/redis-py/redis-py-2.9.1.ebuild
new file mode 100644
index 00000000000..05880a8720c
--- /dev/null
+++ b/dev-python/redis-py/redis-py-2.9.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="redis"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python client for Redis key-value store"
+HOMEPAGE="http://github.com/andymccurdy/redis-py"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-db/redis )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable pubsub and encoding tests, they do not seem to support
+ # UNIX socket connectivity.
+ sed -i -e '/PubSub/d' -e '/Encoding/d' \
+ -e '/use_hiredis:/d' tests/__init__.py || die
+
+ # Make sure that tests will be used from BUILD_DIR rather than cwd.
+ mv tests tests-hidden || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use test; then
+ cp -r tests-hidden "${BUILD_DIR}"/tests || die
+ fi
+}
+
+src_test() {
+# local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local pidfile=${T}/redis-${EPYTHON}.pid
+ local sock=${T}/redis-${EPYTHON}.sock
+
+ sed -i -e "s:port=6379:unix_socket_path=\"${sock}\":" \
+ "${BUILD_DIR}"/tests/*.py || die
+
+ # XXX: find a way to make sure it is killed
+
+ "${EPREFIX}"/usr/sbin/redis-server \
+ --pidfile "${pidfile}" \
+ --port 0 \
+ --unixsocket "${sock}" \
+ --daemonize yes || die
+ PYTHONPATH="${PYTHONPATH}:${BUILD_DIR}" \
+ esetup.py test
+ kill "$(<"${pidfile}")"
+}
diff --git a/dev-python/rednose/Manifest b/dev-python/rednose/Manifest
new file mode 100644
index 00000000000..f063790f70f
--- /dev/null
+++ b/dev-python/rednose/Manifest
@@ -0,0 +1,2 @@
+DIST rednose-0.4.1.tar.gz 5888 SHA256 82856136986ec6de3be4863ee2b7ecf0adbaaadb717a3e75fe517a6a5ac26825 SHA512 a9ff3bbbf35e6799a66728feb81f6d83b88ea9804bbebfc64d626d4bdb002c8e7a655027861b694fda15b9b8b24d7e3de2554f284e1683eafbf24eb24c4a192a WHIRLPOOL 0bbefdaf2426561c2712ddda5c77a1bd239e5e12139cebb4237a1c31d709cbf93548448d007a673824a8f4ea1e3c488eb270932c100ff396f3386f7d35cd559c
+DIST rednose-0.4.3.tar.gz 6046 SHA256 6ce5d40574c5569a23b2841678b0b14245ec5ea044a440bc6a1c20baec5464d7 SHA512 e0169599f251cd90a2906e489b870e7d10322a82253a3a814bc71aa257bea34bd5eb833b637dbae3128f8f37df79929aa4d6331e246654c83eb16118d637182a WHIRLPOOL 15937c7812111f780a6aab43b03ed9c8a395aa50ab0689886db0752d2866222be06d39d5491663e6322adc1906a897cc046cf33242e52a11429dff80a01ac37b
diff --git a/dev-python/rednose/metadata.xml b/dev-python/rednose/metadata.xml
new file mode 100644
index 00000000000..9316ec44696
--- /dev/null
+++ b/dev-python/rednose/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rednose</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rednose/rednose-0.4.1.ebuild b/dev-python/rednose/rednose-0.4.1.ebuild
new file mode 100644
index 00000000000..935f71ab4e5
--- /dev/null
+++ b/dev-python/rednose/rednose-0.4.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="coloured output for nosetests"
+HOMEPAGE="http://gfxmonk.net/dist/0install/rednose.xml"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=dev-python/python-termstyle-0.1.7[${PYTHON_USEDEP}]"
diff --git a/dev-python/rednose/rednose-0.4.3.ebuild b/dev-python/rednose/rednose-0.4.3.ebuild
new file mode 100644
index 00000000000..bd385a855d3
--- /dev/null
+++ b/dev-python/rednose/rednose-0.4.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="coloured output for nosetests"
+HOMEPAGE="http://gfxmonk.net/dist/0install/rednose.xml"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+CDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}"
+RDEPEND="
+ ${CDEPEND}
+ dev-python/colorama[${PYTHON_USEDEP}]
+ >=dev-python/python-termstyle-0.1.7[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
new file mode 100644
index 00000000000..6bf60d6aa3a
--- /dev/null
+++ b/dev-python/regex/Manifest
@@ -0,0 +1,2 @@
+DIST regex-2015.06.24.tar.gz 553785 SHA256 97dbcbe9a1c247ba351b926b0683b5fec82260e7ea649ab51087bb58ad00275a SHA512 570320e5c74793246da77f8b85b623604698d187780121d30a3d5a53f410bc998c48481bfef6245c546a6e6950020a2905f3b5fd3be33964de92af73c4acc1a7 WHIRLPOOL 37704652ebdc5f09c13960acbc7a4c890b1a0bdceab9d6e4b9053a3bb99ec1b54462667cf17960ccccf091bd64d49d19cc079e187b5af1e40d8b1d155053f202
+DIST regex-2015.07.12.tar.gz 554160 SHA256 9a39618645ce8c707c2c1346a3eeef0e441a9084df0739a5fcfe32059f68ebe1 SHA512 3b8cfa029744d17f06c659e6357d3a4520817656da6dcfc6952bbdac01fec266e8832fab649000fc7a3dacab508e2ae462728c139cc4cac913c40e2ae34abf54 WHIRLPOOL 86f004c6d8533071ef938ba39cfe34f198dcc56ab75883f8b5f2bc2dfaa40abc46b0ed64aa873821c6cc4e694c424dd8a16d97c35a6a1fafa7d2f84e09c59adf
diff --git a/dev-python/regex/metadata.xml b/dev-python/regex/metadata.xml
new file mode 100644
index 00000000000..bea96387264
--- /dev/null
+++ b/dev-python/regex/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">regex</remote-id>
+ <remote-id type="bitbucket">mrabarnett/mrab-regex</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/regex/regex-2015.06.24.ebuild b/dev-python/regex/regex-2015.06.24.ebuild
new file mode 100644
index 00000000000..fd300192e5a
--- /dev/null
+++ b/dev-python/regex/regex-2015.06.24.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Alternative regular expression module to replace re"
+HOMEPAGE="https://bitbucket.org/mrabarnett/mrab-regex"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE=""
+
+DOCS=( README docs/Features.rst docs/UnicodeProperties.txt )
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local msg="tests failed under ${EPYTHON}"
+ # https://bitbucket.org/mrabarnett/mrab-regex/issue/145/1-fail-in-testsuite-under-pypy
+ einfo "There is one trivial fail of test test_empty_array under pypy"
+
+ if python_is_python3; then
+ "${PYTHON}" Python3/test_regex.py || die $msg
+ else
+ "${PYTHON}" Python2/test_regex.py || die $msg
+ fi
+}
diff --git a/dev-python/regex/regex-2015.07.12.ebuild b/dev-python/regex/regex-2015.07.12.ebuild
new file mode 100644
index 00000000000..fd300192e5a
--- /dev/null
+++ b/dev-python/regex/regex-2015.07.12.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Alternative regular expression module to replace re"
+HOMEPAGE="https://bitbucket.org/mrabarnett/mrab-regex"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE=""
+
+DOCS=( README docs/Features.rst docs/UnicodeProperties.txt )
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local msg="tests failed under ${EPYTHON}"
+ # https://bitbucket.org/mrabarnett/mrab-regex/issue/145/1-fail-in-testsuite-under-pypy
+ einfo "There is one trivial fail of test test_empty_array under pypy"
+
+ if python_is_python3; then
+ "${PYTHON}" Python3/test_regex.py || die $msg
+ else
+ "${PYTHON}" Python2/test_regex.py || die $msg
+ fi
+}
diff --git a/dev-python/remoteobjects/metadata.xml b/dev-python/remoteobjects/metadata.xml
new file mode 100644
index 00000000000..94cf84d4043
--- /dev/null
+++ b/dev-python/remoteobjects/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">LegNeato/remoteobjects</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/remoteobjects/remoteobjects-99999999.ebuild b/dev-python/remoteobjects/remoteobjects-99999999.ebuild
new file mode 100644
index 00000000000..adca05c76e6
--- /dev/null
+++ b/dev-python/remoteobjects/remoteobjects-99999999.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+if [[ ${PV} == "99999999" ]] ; then
+ EGIT_REPO_URI="git://github.com/LegNeato/${PN}.git
+ https://github.com/LegNeato/${PN}.git"
+ inherit git-2
+fi
+
+DESCRIPTION="subclassable Python objects for working with JSON REST APIs"
+HOMEPAGE="https://github.com/LegNeato/remoteobjects"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/mox[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Disable failing tests.
+ sed -e "s/test_get_bad_encoding/_&/" -i tests/test_http.py
+ distutils-r1_python_prepare_all
+}
+
+pthon_test() {
+ nosetests || die "tests failed"
+}
diff --git a/dev-python/rencode/Manifest b/dev-python/rencode/Manifest
new file mode 100644
index 00000000000..0e69ebe593f
--- /dev/null
+++ b/dev-python/rencode/Manifest
@@ -0,0 +1 @@
+DIST rencode-1.0.3.tar.gz 24105 SHA256 13c47ca2f9cf060083de7e5886e725731863c4a5d95545c68e0bb3a2149da444 SHA512 2697c496d34e2a6a9fe0ab7bdc57e4dab97e5d7409d7530899f951a08c9f32740fd0b0da644afa7cc98c3248f5aa034717b93644d02083fd2ef5f224269fef3f WHIRLPOOL 05580374bc5419586fe88757b498fa8ae1b0591c15263ec016a2d1300252b8b28dfe8c3761904e73577b86c0059e5a195c89488f281057dcc4f9c377d2a408d1
diff --git a/dev-python/rencode/metadata.xml b/dev-python/rencode/metadata.xml
new file mode 100644
index 00000000000..4904a9fc21e
--- /dev/null
+++ b/dev-python/rencode/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <longdescription lang="en">
+The rencode module is similar to bencode from the BitTorrent project. For
+complex, heterogeneous data structures with many small elements, r-encodings
+take up significantly less space than b-encodings. This version of rencode is
+a complete rewrite in Cython to attempt to increase the performance over the
+pure Python module written by Petru Paler, Connelly Barnes et al.
+</longdescription>
+ <upstream>
+ <remote-id type="github">aresch/rencode</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rencode/rencode-1.0.3.ebuild b/dev-python/rencode/rencode-1.0.3.ebuild
new file mode 100644
index 00000000000..19d6380bfc6
--- /dev/null
+++ b/dev-python/rencode/rencode-1.0.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+inherit distutils-r1
+
+DESCRIPTION="similar to bencode from the BitTorrent project"
+HOMEPAGE="https://github.com/aresch/rencode"
+SRC_URI="https://github.com/aresch/rencode/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/reportlab/Manifest b/dev-python/reportlab/Manifest
new file mode 100644
index 00000000000..a806f6f8ddf
--- /dev/null
+++ b/dev-python/reportlab/Manifest
@@ -0,0 +1,4 @@
+DIST pfbfer-20070710.zip 677333 SHA256 fb1462ff6ce8efae58a0c496f0537c5ac16d4895c68f1640c2973db574ddb376 SHA512 6fd4a5d955464b10d13a7b748703450c1fe120d5ed09e8cfa1b4dfa9c183c59fe001df29433af551796b0df62544b7ddc364f9bb1bdcc2cd300434340ffcc4f2 WHIRLPOOL 5aad616d063cab1862d77fbbf9f625f20c4bcbf09e45688719e312c1e8d3815f1b295d290b78f6c4789919cef39856ec223c30a2e424eeb1c8137cccc5ceb90f
+DIST reportlab-2.6.tar.gz 1954170 SHA256 76c3cda08f6eac9b0adf0e3c86202fe5e9cb075c00503bef5760cd9e75ec34ff SHA512 d1173231ec6924c225808607edd287b11095cda1856554ff42efb5911285b766f43b79d8747ea2867221aa5c158455ee864dbe903ceffeae535938d2fef59131 WHIRLPOOL ff177ec570d581eee76f9a54ee95b16c928a1351e85f1906baa36aa270dda6ea41d4da6441274cf4eee00624b5ddb2eb855bf4792b1cba658cc4729399598358
+DIST reportlab-3.1.44.tar.gz 1946392 SHA256 f6c22e4afefd1aed0e85f1c1216eee5e74d2eb77d53963feab0172b321b636d5 SHA512 b14b19a1772516ef182fe64ce50f032a1f76834aae9ea4c3f017eec902d84e839a4f3b648bd3ede3579df68654dec027d17c8c9878c580938e16c79ec3ac764f WHIRLPOOL 646e8eb5d4192edb37bc7570629bf2b4e2ff6e6fd35d9e7fa78a0e28be1759793dd4779fff60c7a08522e665c4cb0d3feac4b384324e4f4050be569877154f50
+DIST reportlab-3.2.0.tar.gz 1948090 SHA256 72e687662bd854776407b9108483561831b45546d935df8b0477708199086293 SHA512 7b5c01ec7b9ccd404f98b8db1dbe01cb829cf0f1482c29090874996fb1e2ee9296d860c3ff9b7addecad9769c4e7558c0ea51ae4d9c07cbc0cc5ad69b2d8ea9b WHIRLPOOL 42c1432476b038677b42feeb1fefc6753c01a28e515d1edd4613c21f105d783d3196634b4ca0837359049811439ab7e177cbdb1c153aa8a7e80a34e71149e1da
diff --git a/dev-python/reportlab/files/reportlab-2.2_qa_msg.patch b/dev-python/reportlab/files/reportlab-2.2_qa_msg.patch
new file mode 100644
index 00000000000..490902d22e0
--- /dev/null
+++ b/dev-python/reportlab/files/reportlab-2.2_qa_msg.patch
@@ -0,0 +1,16 @@
+#Patch submitted by Jesus Rivero <neurogeek@gentoo.org>
+#Submitted on 10/04/2008 to upstream
+diff -uNr ReportLab_2_2.orig/src/rl_addons/renderPM/gt1/gt1-namecontext.c ReportLab_2_2/src/rl_addons/renderPM/gt1/gt1-namecontext.c
+--- ReportLab_2_2.orig/src/rl_addons/renderPM/gt1/gt1-namecontext.c 2008-10-04 10:28:05.000000000 -0430
++++ ReportLab_2_2/src/rl_addons/renderPM/gt1/gt1-namecontext.c 2008-10-04 10:28:38.000000000 -0430
+@@ -3,9 +3,7 @@
+ #include "gt1-misc.h"
+
+ #include "gt1-namecontext.h"
+-#if defined(_WIN32) || defined(macintosh)
+-# include <string.h>
+-#endif
++#include <string.h>
+
+ /* btw, I do not know who wrote the following comment. I modified this
+ file somewhat from gimp's app/procedural_db.c hash function. */
diff --git a/dev-python/reportlab/files/reportlab-2.4-external_libart_lgpl.patch b/dev-python/reportlab/files/reportlab-2.4-external_libart_lgpl.patch
new file mode 100644
index 00000000000..3d0920a32aa
--- /dev/null
+++ b/dev-python/reportlab/files/reportlab-2.4-external_libart_lgpl.patch
@@ -0,0 +1,60 @@
+--- setup.py
++++ setup.py
+@@ -306,39 +306,12 @@
+ infoline( '################################################')
+ infoline( '#Attempting install of _renderPM')
+ infoline( '#extensions from %r'%RENDERPM)
+- LIBART_DIR=pjoin(RENDERPM,'libart_lgpl')
++ LIBART_DIR='@GENTOO_PORTAGE_EPREFIX@/usr/include/libart-2.0'
++ LIBART_LIB=['art_lgpl_2']
+ GT1_DIR=pjoin(RENDERPM,'gt1')
+ MACROS=[('ROBIN_DEBUG',None)]
+ MACROS=[]
+- def libart_version():
+- K = ('LIBART_MAJOR_VERSION','LIBART_MINOR_VERSION','LIBART_MICRO_VERSION')
+- D = {}
+- for l in open(pjoin(LIBART_DIR,'configure.in'),'r').readlines():
+- l = l.strip().split('=')
+- if len(l)>1 and l[0].strip() in K:
+- D[l[0].strip()] = l[1].strip()
+- if len(D)==3: break
+- return (sys.platform == 'win32' and '\\"%s\\"' or '"%s"') % '.'.join(map(lambda k,D=D: D.get(k,'?'),K))
+- LIBART_VERSION = libart_version()
+ SOURCES=[pjoin(RENDERPM,'_renderPM.c'),
+- pjoin(LIBART_DIR,'art_vpath_bpath.c'),
+- pjoin(LIBART_DIR,'art_rgb_pixbuf_affine.c'),
+- pjoin(LIBART_DIR,'art_rgb_svp.c'),
+- pjoin(LIBART_DIR,'art_svp.c'),
+- pjoin(LIBART_DIR,'art_svp_vpath.c'),
+- pjoin(LIBART_DIR,'art_svp_vpath_stroke.c'),
+- pjoin(LIBART_DIR,'art_svp_ops.c'),
+- pjoin(LIBART_DIR,'art_vpath.c'),
+- pjoin(LIBART_DIR,'art_vpath_dash.c'),
+- pjoin(LIBART_DIR,'art_affine.c'),
+- pjoin(LIBART_DIR,'art_rect.c'),
+- pjoin(LIBART_DIR,'art_rgb_affine.c'),
+- pjoin(LIBART_DIR,'art_rgb_affine_private.c'),
+- pjoin(LIBART_DIR,'art_rgb.c'),
+- pjoin(LIBART_DIR,'art_rgb_rgba_affine.c'),
+- pjoin(LIBART_DIR,'art_svp_intersect.c'),
+- pjoin(LIBART_DIR,'art_svp_render_aa.c'),
+- pjoin(LIBART_DIR,'art_misc.c'),
+ pjoin(GT1_DIR,'gt1-parset1.c'),
+ pjoin(GT1_DIR,'gt1-dict.c'),
+ pjoin(GT1_DIR,'gt1-namecontext.c'),
+@@ -398,12 +371,12 @@
+ EXT_MODULES += [Extension( '_renderPM',
+ SOURCES,
+ include_dirs=[RENDERPM,LIBART_DIR,GT1_DIR]+FT_INC_DIR,
+- define_macros=FT_MACROS+[('LIBART_COMPILATION',None)]+MACROS+[('LIBART_VERSION',LIBART_VERSION)],
++ define_macros=FT_MACROS+MACROS,
+ library_dirs=[]+FT_LIB_DIR,
+
+ # libraries to link against
+- libraries=FT_LIB,
+- #extra_objects=['gt1.lib','libart.lib',],
++ libraries=FT_LIB+LIBART_LIB,
++ #extra_objects=['gt1.lib'],
+ #extra_compile_args=['/Z7'],
+ extra_link_args=[]
+ ),
diff --git a/dev-python/reportlab/files/reportlab-2.5-pypy-implicit-PyArg_NoArgs.patch b/dev-python/reportlab/files/reportlab-2.5-pypy-implicit-PyArg_NoArgs.patch
new file mode 100644
index 00000000000..e3d82759580
--- /dev/null
+++ b/dev-python/reportlab/files/reportlab-2.5-pypy-implicit-PyArg_NoArgs.patch
@@ -0,0 +1,13 @@
+PyPy does not provide the PyArg_NoArgs macro.
+--- a/src/rl_addons/rl_accel/sgmlop.c
++++ b/src/rl_addons/rl_accel/sgmlop.c
+@@ -52,6 +52,9 @@
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
+
+ #include "Python.h"
++#ifndef PyArg_NoArgs
++#define PyArg_NoArgs(v) PyArg_Parse(v, "")
++#endif
+ #if PY_VERSION_HEX < 0x02050000
+ # define Py_ssize_t int
+ # define lenfunc inquiry
diff --git a/dev-python/reportlab/metadata.xml b/dev-python/reportlab/metadata.xml
new file mode 100644
index 00000000000..feed4369aef
--- /dev/null
+++ b/dev-python/reportlab/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ The ReportLab Toolkit is a Python library for generating
+ PDFs and graphics.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">reportlab</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/reportlab/reportlab-2.6.ebuild b/dev-python/reportlab/reportlab-2.6.ebuild
new file mode 100644
index 00000000000..ec9f45060f7
--- /dev/null
+++ b/dev-python/reportlab/reportlab-2.6.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+# Tests crash with pypy
+
+inherit distutils-r1 eutils flag-o-matic prefix
+
+DESCRIPTION="Tools for generating printable PDF documents from any data source"
+HOMEPAGE="http://www.reportlab.com/ http://pypi.python.org/pypi/reportlab"
+SRC_URI="http://www.reportlab.com/ftp/${P}.tar.gz
+ http://www.reportlab.com/ftp/fonts/pfbfer-20070710.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="virtual/python-imaging
+ media-fonts/ttf-bitstream-vera
+ media-libs/libart_lgpl
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ cd ${P}/src/reportlab/fonts || die
+ unpack pfbfer-20070710.zip
+}
+
+python_prepare_all() {
+ sed -i \
+ -e 's|/usr/lib/X11/fonts/TrueType/|/usr/share/fonts/ttf-bitstream-vera/|' \
+ -e 's|/usr/local/Acrobat|/opt/Acrobat|g' \
+ -e 's|%(HOME)s/fonts|%(HOME)s/.fonts|g' \
+ src/reportlab/rl_config.py || die "sed failed"
+
+ epatch "${FILESDIR}/${PN}-2.2_qa_msg.patch"
+
+ rm -fr src/rl_addons/renderPM/libart_lgpl
+ epatch "${FILESDIR}/${PN}-2.4-external_libart_lgpl.patch"
+
+ eprefixify setup.py
+
+ epatch "${FILESDIR}/${PN}-2.5-pypy-implicit-PyArg_NoArgs.patch"
+}
+
+src_compile() {
+ append-cflags -fno-strict-aliasing
+ distutils-r1_src_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ cd docs || die
+ "${PYTHON}" genAll.py || die "docs generation failed"
+ fi
+}
+
+python_test() {
+ pushd tests > /dev/null || die
+ "${PYTHON}" runAll.py || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use doc && dodoc docs/*.pdf
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r demos
+ insinto /usr/share/doc/${PF}/tools/pythonpoint
+ doins -r tools/pythonpoint/demos
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/reportlab/reportlab-3.1.44-r1.ebuild b/dev-python/reportlab/reportlab-3.1.44-r1.ebuild
new file mode 100644
index 00000000000..ab1363217e9
--- /dev/null
+++ b/dev-python/reportlab/reportlab-3.1.44-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+# Tests crash with pypy
+
+inherit distutils-r1 flag-o-matic prefix
+
+DESCRIPTION="Tools for generating printable PDF documents from any data source"
+HOMEPAGE="http://www.reportlab.com/"
+SRC_URI="
+ mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz
+ http://www.reportlab.com/ftp/fonts/pfbfer-20070710.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/pillow-2.4.0[tiff,${PYTHON_USEDEP}]
+ >=dev-python/pip-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-2.2[${PYTHON_USEDEP}]
+ media-fonts/dejavu
+ media-libs/libart_lgpl
+ sys-libs/zlib
+"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+"
+
+DISTUTILS_NO_PARALLEL_BUILD=1
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ cd ${P}/src/reportlab/fonts || die
+ unpack pfbfer-20070710.zip
+}
+
+python_prepare_all() {
+ sed -i \
+ -e "s|/usr/lib/X11/fonts/TrueType/|${EPREFIX}/usr/share/fonts/dejavu/|" \
+ -e 's|/usr/local/Acrobat|/opt/Acrobat|g' \
+ -e 's|%(HOME)s/fonts|%(HOME)s/.fonts|g' \
+ src/reportlab/rl_config.py || die
+
+ eprefixify setup.py
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ pushd tests > /dev/null || die
+ "${PYTHON}" runAll.py || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( demos/. tools/pythonpoint/demos )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/reportlab/reportlab-3.2.0.ebuild b/dev-python/reportlab/reportlab-3.2.0.ebuild
new file mode 100644
index 00000000000..1cfcdefce4d
--- /dev/null
+++ b/dev-python/reportlab/reportlab-3.2.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} ) # Tests crash with pypy
+inherit distutils-r1 flag-o-matic prefix
+
+DESCRIPTION="Tools for generating printable PDF documents from any data source"
+HOMEPAGE="http://www.reportlab.com/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz
+ http://www.reportlab.com/ftp/fonts/pfbfer-20070710.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="
+ >=dev-python/pillow-2.4.0[tiff,truetype,${PYTHON_USEDEP}]
+ >=dev-python/pip-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-2.2[${PYTHON_USEDEP}]
+ media-libs/libart_lgpl
+ sys-libs/zlib
+"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+"
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ cd ${P}/src/reportlab/fonts || die
+ unpack pfbfer-20070710.zip
+}
+
+python_prepare_all() {
+ sed -i \
+ -e 's|/usr/local/Acrobat|/opt/Acrobat|g' \
+ -e 's|%(HOME)s/fonts|%(HOME)s/.fonts|g' \
+ src/reportlab/rl_config.py || die
+
+ eprefixify setup.py
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ pushd tests > /dev/null || die
+ "${PYTHON}" runAll.py || die "Testing failed with ${EPYTHON}"
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ use examples && local EXAMPLES=( demos/. tools/pythonpoint/demos )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/repoze-lru/Manifest b/dev-python/repoze-lru/Manifest
new file mode 100644
index 00000000000..2df771dc016
--- /dev/null
+++ b/dev-python/repoze-lru/Manifest
@@ -0,0 +1 @@
+DIST repoze.lru-0.6.tar.gz 19814 SHA256 0f7a323bf716d3cb6cb3910cd4fccbee0b3d3793322738566ecce163b01bbd31 SHA512 32732286f41ac6ad55e65fa15907e44558e7fbf089d1565c9c413be7c4af158b7a8ef9fc6be68998f8a9b4cd836028b8e706ba508a328a7fa338e95364e968db WHIRLPOOL b79539325e2529295d8da8b084d698150961ed648470d0f79d2a9533284b146c0713551dab860880cc6fd851c3afe5a99f549e6b0971539bfb24ba1c3ab738b6
diff --git a/dev-python/repoze-lru/metadata.xml b/dev-python/repoze-lru/metadata.xml
new file mode 100644
index 00000000000..6a927037604
--- /dev/null
+++ b/dev-python/repoze-lru/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">repoze.lru</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/repoze-lru/repoze-lru-0.6-r1.ebuild b/dev-python/repoze-lru/repoze-lru-0.6-r1.ebuild
new file mode 100644
index 00000000000..eafca1f557d
--- /dev/null
+++ b/dev-python/repoze-lru/repoze-lru-0.6-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="A tiny LRU cache implementation and decorator"
+HOMEPAGE="http://www.repoze.org"
+SRC_URI="mirror://pypi/${P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/repoze-sphinx-autointerface/Manifest b/dev-python/repoze-sphinx-autointerface/Manifest
new file mode 100644
index 00000000000..3d4129088b3
--- /dev/null
+++ b/dev-python/repoze-sphinx-autointerface/Manifest
@@ -0,0 +1 @@
+DIST repoze.sphinx.autointerface-0.7.1.tar.gz 7892 SHA256 97ef5fac0ab0a96f1578017f04aea448651fa9f063fc43393a8253bff8d8d504 SHA512 e2b2a41647a6e349bd33df8fcc08d2560f2a58b94a054bfcc9176cdcd97513ce78cc31945c7c12fd14f7906d21b23ba9c3fac0a06ed0c92ad7b89f73b5bf7ff4 WHIRLPOOL 2589c2ec262a9784d7a686550a748795a3892996d8c1efa05c300001471a273f801c085db394b80465ad1f0b2d7afbb680095d201cdbe4102447e8e4b62ffd05
diff --git a/dev-python/repoze-sphinx-autointerface/metadata.xml b/dev-python/repoze-sphinx-autointerface/metadata.xml
new file mode 100644
index 00000000000..266dfde2c0a
--- /dev/null
+++ b/dev-python/repoze-sphinx-autointerface/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">repoze.sphinx.autointerface</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/repoze-sphinx-autointerface/repoze-sphinx-autointerface-0.7.1.ebuild b/dev-python/repoze-sphinx-autointerface/repoze-sphinx-autointerface-0.7.1.ebuild
new file mode 100644
index 00000000000..732a0a95f6e
--- /dev/null
+++ b/dev-python/repoze-sphinx-autointerface/repoze-sphinx-autointerface-0.7.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN=${PN//-/.}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Sphinx extension: auto-generates API docs from Zope interfaces"
+HOMEPAGE="https://pypi.python.org/pypi/repoze.sphinx.autointerface/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/repoze-who/Manifest b/dev-python/repoze-who/Manifest
new file mode 100644
index 00000000000..5c01e6f8378
--- /dev/null
+++ b/dev-python/repoze-who/Manifest
@@ -0,0 +1 @@
+DIST repoze.who-2.2.tar.gz 308593 SHA256 322629ec7c779dce4700e8f3ba531002b724d2429178c1cbb0dc169255dc9a8b SHA512 1d4ea83e0b5c0d57ff56e19b9922d88b37bca4dfd5ec49df2bf5a1f2aeae15a5698f839e0071cda8cedee69fe4abbfdcb3fa632d4d4c8407739999853df87f63 WHIRLPOOL 24985fd0187131a2062e45529ae656a9de8ff86b3663862872d32cc38b138670b848905d6470496b1b9036c0dccd0ff139282447af133595d4d9f196a0e52915
diff --git a/dev-python/repoze-who/metadata.xml b/dev-python/repoze-who/metadata.xml
new file mode 100644
index 00000000000..a61ca1538e1
--- /dev/null
+++ b/dev-python/repoze-who/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ an identification and authentication framework for WSGI.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">repoze.who</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/repoze-who/repoze-who-2.2.ebuild b/dev-python/repoze-who/repoze-who-2.2.ebuild
new file mode 100644
index 00000000000..a07996e1abb
--- /dev/null
+++ b/dev-python/repoze-who/repoze-who-2.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="repoze.who is an identification and authentication framework for WSGI."
+HOMEPAGE="http://www.repoze.org"
+SRC_URI="mirror://pypi/${PN:0:1}/repoze.who/repoze.who-${PV}.tar.gz"
+S="${WORKDIR}/repoze.who-${PV}"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/requests-cache/Manifest b/dev-python/requests-cache/Manifest
new file mode 100644
index 00000000000..087df62ac2d
--- /dev/null
+++ b/dev-python/requests-cache/Manifest
@@ -0,0 +1,2 @@
+DIST requests-cache-0.4.10.tar.gz 27979 SHA256 671969d00719fa3e80476b128dc9232025926884d0110d4d235abdd9c3508fc0 SHA512 83cc1400cfc62f4bb32f367ac25e298ef61f44d64f0359b721a5203a04622f5a1e446c71832e748342c444416ad8a1d89267d6ec4cc9feda30f2d97de9c25f43 WHIRLPOOL 2f15b7e64a80de1c6b8f205c59553fd8cb7ec39cbd6b30e9f113f56d07cbc3978377c41a54a00d4542d249c88ad4d647c034b8e1521b4933d4cdb237ab0ac056
+DIST requests-cache-0.4.9.tar.gz 27502 SHA256 9261ebd0ff51cb21cc0e7c81a6e758afa77a7944cf8ee4646226febc1c849f5f SHA512 67dfe1ef790248763922f3ba0af1d8b179b860b7dd90231b7edb595b8466dbc3daad1e6ae536456b5cda7a5d6d642c61e410b81dda8a2a53c544b70280b1ee05 WHIRLPOOL 4845ebf5f900f47a590f02ccc7b190aaa003501d5af3dbc4cf7cebd2bd19cf85afc123f81b0c4ee3df7048b2042ef4bbba93c7aad01e25d8d545413feca4c932
diff --git a/dev-python/requests-cache/metadata.xml b/dev-python/requests-cache/metadata.xml
new file mode 100644
index 00000000000..7ad6e2f7221
--- /dev/null
+++ b/dev-python/requests-cache/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>zx2c4@gentoo.org</email>
+ <name>Jason A. Donenfeld</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">requests-cache</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/requests-cache/requests-cache-0.4.10.ebuild b/dev-python/requests-cache/requests-cache-0.4.10.ebuild
new file mode 100644
index 00000000000..27e72953abb
--- /dev/null
+++ b/dev-python/requests-cache/requests-cache-0.4.10.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+HOMEPAGE="https://pypi.python.org/pypi/requests-cache"
+DESCRIPTION="Persistent cache for requests library"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+# Portage only has versions of request >= minimum border
+RDEPEND=">=dev-python/requests-2.6[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Testsuite excels in tests connecting to the network via local server daemons
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/requests-cache/requests-cache-0.4.9.ebuild b/dev-python/requests-cache/requests-cache-0.4.9.ebuild
new file mode 100644
index 00000000000..94a44ebfd7a
--- /dev/null
+++ b/dev-python/requests-cache/requests-cache-0.4.9.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+HOMEPAGE="https://pypi.python.org/pypi/requests-cache"
+DESCRIPTION="Persistent cache for requests library"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+# Portage only has versions of request >= minimum border
+RDEPEND=">=dev-python/requests-1.0.0[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+# Testsuite excels in tests connecting to the network via local server daemons
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/requests-mock/Manifest b/dev-python/requests-mock/Manifest
new file mode 100644
index 00000000000..38adcd5e158
--- /dev/null
+++ b/dev-python/requests-mock/Manifest
@@ -0,0 +1,2 @@
+DIST requests-mock-0.5.1.tar.gz 29729 SHA256 b1b1b864e633418c77f33d333b0fd88cb6123bfb816706b236f7b1db99795056 SHA512 79a270501cfee425af81b5d0ab7fcbebe08eca0ff8f9f57dab769bec7918f44ab7ca4a4b683ae195a5c8c6020d4730cf0c1482f6ff21cbbbea700491cc455903 WHIRLPOOL 87d2591e70dedd8a5bfae485dc0df411e5ed9ad1442f7e5f2d62d134c8e536e09b30f3b8c0f92def4b5c5f5df56fdd21eef9d4fde659ca5605bd17181f593021
+DIST requests-mock-0.6.0.tar.gz 31645 SHA256 a1f10ee53fef6aac6ca54cfb8fdb1b7ca6da59d68ea1a8c21ac513211842ad3e SHA512 5c23c1fdd3746f2b3b49508b7f05abb365e0608a32b6ead5d0ef18203bf75ab642626229e96b2e8826216d0f090f1bbd41bdfa78dd56f305a996a57f1e16179e WHIRLPOOL 65af690e429a09bc4358f1b0c387e3fff3faaf962cacd247c11c01ba84f79b3fe06b0dd801e9dab829550a5a340e562aa3ceb6a61e4307c14b5a16fdba8a1a7a
diff --git a/dev-python/requests-mock/metadata.xml b/dev-python/requests-mock/metadata.xml
new file mode 100644
index 00000000000..fd6d3b64fde
--- /dev/null
+++ b/dev-python/requests-mock/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">requests-mock</remote-id>
+ <remote-id type="github">jamielennox/requests-mock</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/requests-mock/requests-mock-0.5.1.ebuild b/dev-python/requests-mock/requests-mock-0.5.1.ebuild
new file mode 100644
index 00000000000..dd11a40202d
--- /dev/null
+++ b/dev-python/requests-mock/requests-mock-0.5.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Mock out responses from the requests package"
+HOMEPAGE="https://github.com/jamielennox/requests-mock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/requests-mock/requests-mock-0.6.0.ebuild b/dev-python/requests-mock/requests-mock-0.6.0.ebuild
new file mode 100644
index 00000000000..93b1c01cefb
--- /dev/null
+++ b/dev-python/requests-mock/requests-mock-0.6.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Mock out responses from the requests package"
+HOMEPAGE="https://github.com/jamielennox/requests-mock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=TRUE
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPYTHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
diff --git a/dev-python/requests-oauthlib/Manifest b/dev-python/requests-oauthlib/Manifest
new file mode 100644
index 00000000000..3851474252e
--- /dev/null
+++ b/dev-python/requests-oauthlib/Manifest
@@ -0,0 +1 @@
+DIST requests-oauthlib-0.4.1.tar.gz 34945 SHA256 446e44c937bdb1ff9d62b8892c8df04614a910bc825b9e57aa0916fcad28a26f SHA512 ac4b33757ba1f8eea152ce7fe63bdb1b7b56c741e6743f740b9470b1b27244975d4ff7d5dea3dce3b59136e4eec825d538c6085545837d8433b395b500b425c1 WHIRLPOOL dec0b688910d404cc10e8554ebc2e58038e49386c6cf7c64a2e89c65dba4bda88d21dd2cefa57ffee3da90fb01746fa89b161a0e6768ff4215e29dd82f3e88cb
diff --git a/dev-python/requests-oauthlib/files/requests-oauthlib-0.4.0-expires_at.patch b/dev-python/requests-oauthlib/files/requests-oauthlib-0.4.0-expires_at.patch
new file mode 100644
index 00000000000..517e4a29fc0
--- /dev/null
+++ b/dev-python/requests-oauthlib/files/requests-oauthlib-0.4.0-expires_at.patch
@@ -0,0 +1,61 @@
+https://github.com/requests/requests-oauthlib/commit/7057cbee773c1dff1856730ca661cc71abb2506e.diff
+https://github.com/requests/requests-oauthlib/commit/8c2c96c4bb45803df2779cfde90868445977ab96.diff
+diff --git a/tests/test_oauth2_session.py b/tests/test_oauth2_session.py
+index 305241a..cf095a5 100644
+--- a/tests/test_oauth2_session.py
++++ b/tests/test_oauth2_session.py
+@@ -1,6 +1,7 @@
+ from __future__ import unicode_literals
+ import json
+ import mock
++import time
+ import unittest
+
+ from oauthlib.common import urlencode
+@@ -11,6 +11,9 @@
+ from requests_oauthlib import OAuth2Session, TokenUpdated
+
+
++fake_time = time.time()
++
++
+ class OAuth2SessionTest(unittest.TestCase):
+
+ def setUp(self):
+@@ -22,7 +25,8 @@ def setUp(self):
+ 'token_type': 'Bearer',
+ 'access_token': 'asdfoiw37850234lkjsdfsdf',
+ 'refresh_token': 'sldvafkjw34509s8dfsdf',
+- 'expires_in': '3600'
++ 'expires_in': '3600',
++ 'expires_at': fake_time + 3600,
+ }
+ self.client_id = 'foo'
+ self.clients = [
+@@ -66,9 +70,11 @@ def test_authorization_url(self):
+ self.assertIn(self.client_id, auth_url)
+ self.assertIn('response_type=token', auth_url)
+
++ @mock.patch("time.time", new=lambda: fake_time)
+ def test_refresh_token_request(self):
+ self.expired_token = dict(self.token)
+ self.expired_token['expires_in'] = '-1'
++ del self.expired_token['expires_at']
+
+ def fake_refresh(r, **kwargs):
+ resp = mock.MagicMock()
+@@ -98,12 +104,14 @@ def token_updater(token):
+ auth.send = fake_refresh
+ auth.get('https://i.b')
+
++ @mock.patch("time.time", new=lambda: fake_time)
+ def test_token_from_fragment(self):
+ mobile = MobileApplicationClient(self.client_id)
+ response_url = 'https://i.b/callback#' + urlencode(self.token.items())
+ auth = OAuth2Session(client=mobile)
+ self.assertEqual(auth.token_from_fragment(response_url), self.token)
+
++ @mock.patch("time.time", new=lambda: fake_time)
+ def test_fetch_token(self):
+ def fake_token(token):
+ def fake_send(r, **kwargs):
diff --git a/dev-python/requests-oauthlib/metadata.xml b/dev-python/requests-oauthlib/metadata.xml
new file mode 100644
index 00000000000..8d601f653b2
--- /dev/null
+++ b/dev-python/requests-oauthlib/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">requests/requests-oauthlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/requests-oauthlib/requests-oauthlib-0.4.1.ebuild b/dev-python/requests-oauthlib/requests-oauthlib-0.4.1.ebuild
new file mode 100644
index 00000000000..d0cf3c83b13
--- /dev/null
+++ b/dev-python/requests-oauthlib/requests-oauthlib-0.4.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="This project provides first-class OAuth library support for Requests"
+HOMEPAGE="https://github.com/requests/requests-oauthlib"
+SRC_URI="https://github.com/requests/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="ISC"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+RDEPEND="
+ >=dev-python/requests-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6.2[${PYTHON_USEDEP}]"
+
+#Refrain from a doc build for now
+#python_compile_all() {
+# use doc && emake -C docs html
+#}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/requests/Manifest b/dev-python/requests/Manifest
new file mode 100644
index 00000000000..adcb5a1637d
--- /dev/null
+++ b/dev-python/requests/Manifest
@@ -0,0 +1,3 @@
+DIST requests-2.6.0.tar.gz 450389 SHA256 1cdbed1f0e236f35ef54e919982c7a338e4fea3786310933d3a7887a04b74d75 SHA512 703728e04f4ae5f083892e1ad0cb54777ebcc0120fca9cd3c170e33233fccbb64a635e141e6d7b9c1f1f9d62dc00aa7c66ea890ae62cd6581c881c071a707510 WHIRLPOOL 3e65c251e164937092f349c943472b7e625b0fd963beb53a2b0f7b3b94063b833929b38082ec97298c26145b867334c38b9987c29cbeed5f4d59119f12c53a20
+DIST requests-2.6.1.tar.gz 450975 SHA256 490b111c824d64b84797a899a4c22618bbc45323ac24a0a0bb4b73a8758e943c SHA512 8f88a52f1c10fb909a8e1d17e55be8878c032877e6cb61ffadcb3d1ad1e293d763ea0f7627308ac9df75e17661b4ff8c92464e77d41b05b1b7856b22a3423e49 WHIRLPOOL cb5168f41119fd76a30db511961ba6e852c1eec3941d79e287b782201632f1fc7206004c38a34474014a1463e902ded88056438ccaa7d4107e27c40300dbe0a1
+DIST requests-2.7.0.tar.gz 451723 SHA256 398a3db6d61899d25fd4a06c6ca12051b0ce171d705decd7ed5511517b4bb93d SHA512 a93223c3fd21c58f7c0c901b17be17c23dba4efeed8c4347da9d4e04d96a6698e08e01482205661cb7757cc7560d9ae2e62b18f2b422af0cb90fd998fe963ff2 WHIRLPOOL b805d76ad747fc8a754fb0ca0439e8f303df057c2b256ed7f57533b311322e4e28b0d8f22111a3c5ad283823c1256cd24c93fec2aeabc6946013c17ab3540dd9
diff --git a/dev-python/requests/files/requests-2.2.0-system-chardet.patch b/dev-python/requests/files/requests-2.2.0-system-chardet.patch
new file mode 100644
index 00000000000..18fc7a992bf
--- /dev/null
+++ b/dev-python/requests/files/requests-2.2.0-system-chardet.patch
@@ -0,0 +1,21 @@
+--- requests-2.2.0/requests/compat.py
++++ requests-2.2.0/requests/compat.py
+@@ -4,7 +4,7 @@
+ pythoncompat
+ """
+
+-from .packages import chardet
++import chardet
+
+ import sys
+
+--- requests-2.2.0/setup.py
++++ requests-2.2.0/setup.py
+@@ -17,7 +17,6 @@
+ packages = [
+ 'requests',
+ 'requests.packages',
+- 'requests.packages.chardet',
+ 'requests.packages.urllib3',
+ 'requests.packages.urllib3.packages',
+ 'requests.packages.urllib3.contrib',
diff --git a/dev-python/requests/files/requests-2.4.0-system-cacerts.patch b/dev-python/requests/files/requests-2.4.0-system-cacerts.patch
new file mode 100644
index 00000000000..e3a41d9dadb
--- /dev/null
+++ b/dev-python/requests/files/requests-2.4.0-system-cacerts.patch
@@ -0,0 +1,14 @@
+diff -ur requests-2.4.0.orig/requests/certs.py requests-2.4.0/requests/certs.py
+--- requests/certs.py 2014-08-20 00:52:58.000000000 +0800
++++ requests/certs.py 2014-09-09 14:17:33.237264068 +0800
+@@ -18,6 +18,10 @@
+ except ImportError:
+ def where():
+ """Return the preferred certificate bundle."""
++ cacerts = '/etc/ssl/certs/ca-certificates.crt'
++ if os.path.exists(cacerts):
++ return cacerts
++
+ # vendored bundle inside Requests
+ return os.path.join(os.path.dirname(__file__), 'cacert.pem')
+
diff --git a/dev-python/requests/files/requests-2.5.0-system-cacerts.patch b/dev-python/requests/files/requests-2.5.0-system-cacerts.patch
new file mode 100644
index 00000000000..f0d9e943e90
--- /dev/null
+++ b/dev-python/requests/files/requests-2.5.0-system-cacerts.patch
@@ -0,0 +1,24 @@
+--- requests-2.5.0/requests/certs.py
++++ requests-2.5.0/requests/certs.py
+@@ -13,13 +13,14 @@
+ """
+ import os.path
+
+-try:
+- from certifi import where
+-except ImportError:
+- def where():
+- """Return the preferred certificate bundle."""
+- # vendored bundle inside Requests
+- return os.path.join(os.path.dirname(__file__), 'cacert.pem')
++def where():
++ """Return the preferred certificate bundle."""
++ cacerts = '/etc/ssl/certs/ca-certificates.crt'
++ if os.path.exists(cacerts):
++ return cacerts
++
++ # vendored bundle inside Requests
++ return os.path.join(os.path.dirname(__file__), 'cacert.pem')
+
+ if __name__ == '__main__':
+ print(where())
diff --git a/dev-python/requests/metadata.xml b/dev-python/requests/metadata.xml
new file mode 100644
index 00000000000..875d26fa6c2
--- /dev/null
+++ b/dev-python/requests/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">requests</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/requests/requests-2.6.0.ebuild b/dev-python/requests/requests-2.6.0.ebuild
new file mode 100644
index 00000000000..bed97e1ef64
--- /dev/null
+++ b/dev-python/requests/requests-2.6.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library for human beings"
+HOMEPAGE="http://python-requests.org/ http://pypi.python.org/pypi/requests"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+# bundles dev-python/urllib3 snapshot
+RDEPEND="app-misc/ca-certificates
+ >=dev-python/chardet-2.2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# tests connect to various remote sites
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.0-system-chardet.patch
+ "${FILESDIR}"/${PN}-2.5.0-system-cacerts.patch
+)
+
+python_prepare_all() {
+ # use system chardet
+ rm -r requests/packages/chardet || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test_requests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/requests/requests-2.6.1.ebuild b/dev-python/requests/requests-2.6.1.ebuild
new file mode 100644
index 00000000000..656e66771fe
--- /dev/null
+++ b/dev-python/requests/requests-2.6.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library for human beings"
+HOMEPAGE="http://python-requests.org/ http://pypi.python.org/pypi/requests"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+# bundles dev-python/urllib3 snapshot
+RDEPEND="
+ app-misc/ca-certificates
+ >=dev-python/chardet-2.2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# tests connect to various remote sites
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.0-system-chardet.patch
+ "${FILESDIR}"/${PN}-2.5.0-system-cacerts.patch
+)
+
+python_prepare_all() {
+ # use system chardet
+ rm -r requests/packages/chardet || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test_requests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/requests/requests-2.7.0.ebuild b/dev-python/requests/requests-2.7.0.ebuild
new file mode 100644
index 00000000000..656e66771fe
--- /dev/null
+++ b/dev-python/requests/requests-2.7.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library for human beings"
+HOMEPAGE="http://python-requests.org/ http://pypi.python.org/pypi/requests"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+# bundles dev-python/urllib3 snapshot
+RDEPEND="
+ app-misc/ca-certificates
+ >=dev-python/chardet-2.2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+# tests connect to various remote sites
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.0-system-chardet.patch
+ "${FILESDIR}"/${PN}-2.5.0-system-cacerts.patch
+)
+
+python_prepare_all() {
+ # use system chardet
+ rm -r requests/packages/chardet || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test_requests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/restkit/Manifest b/dev-python/restkit/Manifest
new file mode 100644
index 00000000000..8f3fdd140ed
--- /dev/null
+++ b/dev-python/restkit/Manifest
@@ -0,0 +1 @@
+DIST restkit-4.2.2.tar.gz 1275904 SHA256 c0bda8eb7c643b5e818b612dab49121393abc8589c6cbe9b84085079d598599d SHA512 5ed08535e1a54b5594d97b059d8662ab4bc19c68e71a30719c4a533cba0f2d0e18872119752c62136563a32281e8f747414fbf843fd97dba138107ffcb5d1e4b WHIRLPOOL 6a6e336fc1ce5a6499a9886d6a131d7b9e117323467da62ff11278ae1713254d7ebc05a71221ccb9b3f092999902a94282397b9aa983c89758e39221d9dbee96
diff --git a/dev-python/restkit/files/setup.patch b/dev-python/restkit/files/setup.patch
new file mode 100644
index 00000000000..cfa8959539e
--- /dev/null
+++ b/dev-python/restkit/files/setup.patch
@@ -0,0 +1,23 @@
+diff -ur restkit-4.2.2.org/setup.py restkit-4.2.2/setup.py
+--- setup.py 2013-08-30 23:07:36.000000000 +0800
++++ setup.py 2015-01-16 21:38:04.342084550 +0800
+@@ -38,11 +38,6 @@
+ with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as f:
+ long_description = f.read()
+
+- DATA_FILES = [
+- ('restkit', ["LICENSE", "MANIFEST.in", "NOTICE", "README.rst",
+- "THANKS", "TODO.txt"])
+- ]
+-
+ options=dict(
+ name = 'restkit',
+ version = version.__version__,
+@@ -54,7 +49,6 @@
+ url = 'http://benoitc.github.com/restkit',
+ classifiers = CLASSIFIERS,
+ packages = find_packages(exclude=['tests']),
+- data_files = DATA_FILES,
+ scripts = SCRIPTS,
+ zip_safe = False,
+ entry_points = {
diff --git a/dev-python/restkit/metadata.xml b/dev-python/restkit/metadata.xml
new file mode 100644
index 00000000000..b3dc00ef318
--- /dev/null
+++ b/dev-python/restkit/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+ <use>
+ <flag name="cli">Install the restcli command line interface/tool, based on <pkg>dev-python/ipython</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">restkit</remote-id>
+ <remote-id type="github">benoitc/restkit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/restkit/restkit-4.2.2.ebuild b/dev-python/restkit/restkit-4.2.2.ebuild
new file mode 100644
index 00000000000..bca76a22e0a
--- /dev/null
+++ b/dev-python/restkit/restkit-4.2.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A HTTP ressource kit for Python"
+HOMEPAGE="http://github.com/benoitc/restkit"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86"
+IUSE="+cli doc examples test"
+
+PY27_USEDEP="$(python_gen_usedep python2_7)"
+RDEPEND="cli? ( dev-python/ipython[${PY27_USEDEP}] )
+ dev-python/webob[${PYTHON_USEDEP}]
+ >=dev-python/socketpool-0.5.3[${PYTHON_USEDEP}]
+ >=dev-python/http-parser-0.8.3[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/epydoc[${PY27_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+# prevent duplicate install of data files
+PATCHES=( "${FILESDIR}"/setup.patch )
+
+python_compile_all() {
+ if use doc ; then
+ pushd doc > /dev/null
+ emake html
+ popd > /dev/null
+ fi
+}
+
+python_test() {
+ nosetests tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use cli || rm "${D}"/usr/bin/restcli* || die
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/retry-decorator/Manifest b/dev-python/retry-decorator/Manifest
new file mode 100644
index 00000000000..4363abae596
--- /dev/null
+++ b/dev-python/retry-decorator/Manifest
@@ -0,0 +1 @@
+DIST retry-decorator-1.0.0.tar.gz 2835 SHA256 95b8861166e162e5259e798eb259217c59bdb8b21f055fd7f5bb4b7686fb5eae SHA512 f650740dd6d05010b7418b4d5ae7351058eb4418dabf7329390eaacceb72db60363bae8ff0bb15284301f0b5bfd9bfb731e71fdffb7231065a4db7ed6ce86da2 WHIRLPOOL ac40c8276423d9ad50e1b46d1981dae0c61e15309d1d217c4064fd0649b4fcaed940d1fd736c7a74da8757ecdfc87debe45bd21310549d35809e0da1d7da57fd
diff --git a/dev-python/retry-decorator/metadata.xml b/dev-python/retry-decorator/metadata.xml
new file mode 100644
index 00000000000..d8910af20cf
--- /dev/null
+++ b/dev-python/retry-decorator/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">pnpnpn/retry-decorator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/retry-decorator/retry-decorator-1.0.0.ebuild b/dev-python/retry-decorator/retry-decorator-1.0.0.ebuild
new file mode 100644
index 00000000000..4751a217850
--- /dev/null
+++ b/dev-python/retry-decorator/retry-decorator-1.0.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Decorator for retrying when exceptions occur"
+HOMEPAGE="https://github.com/pnpnpn/retry-decorator"
+SRC_URI="https://github.com/pnpnpn/retry-decorator/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( README.rst )
diff --git a/dev-python/retrying/Manifest b/dev-python/retrying/Manifest
new file mode 100644
index 00000000000..7ba88b2f75e
--- /dev/null
+++ b/dev-python/retrying/Manifest
@@ -0,0 +1 @@
+DIST retrying-1.3.2.tar.gz 10811 SHA256 320c4be55bfd9366d67c17beb09c9ac9624c7fab1d59e41641f37ae3b2b1f5ca SHA512 1209ff3f45ba6d3ae1f8ea2700cc1eab406601954e7317cfe6fa5a448183efe9065a6bd11fd4560d0cc66ffc10c8e7b29652e515dd95a1f14304dc4f4378ace8 WHIRLPOOL 5c03ec7993f8f946d5b953f8f315fcd819d3be379efcacd1a91424f682260abb77565ef9bd3327a03de82333f0a5a6f0d9fef25091f8b4b03a92d7328f1a4e61
diff --git a/dev-python/retrying/metadata.xml b/dev-python/retrying/metadata.xml
new file mode 100644
index 00000000000..d97f4a44bf7
--- /dev/null
+++ b/dev-python/retrying/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Retrying is an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just about anything.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">retrying</remote-id>
+ <remote-id type="github">rholder/retrying</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/retrying/retrying-1.3.2.ebuild b/dev-python/retrying/retrying-1.3.2.ebuild
new file mode 100644
index 00000000000..29f677cb591
--- /dev/null
+++ b/dev-python/retrying/retrying-1.3.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Retrying is a general-purpose retrying library."
+HOMEPAGE="https://github.com/rholder/retrying"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/reverend/Manifest b/dev-python/reverend/Manifest
new file mode 100644
index 00000000000..6ab43dfbb12
--- /dev/null
+++ b/dev-python/reverend/Manifest
@@ -0,0 +1 @@
+DIST Reverend-0.4.tar.gz 12147 SHA256 33f801891bc84cd1adcbd8e1c4d53841bb27451f89b32c0418512c655a4c2054 SHA512 6d61c61ccdcca5b8c79fd230f9cd825335c9bf873c3b512170261886d7194b719d9811d7318014d0e931383efc51d995579f3199295c1b545bfd8fa4550a2452 WHIRLPOOL b449d2509f326e6bf194d698211bd4704025ab8f590996ed5e80f622cd41c7494fba345d4e2720fba141a0de1c0f953547a5f00d5f5c6c46b8d90874d4a5d358
diff --git a/dev-python/reverend/metadata.xml b/dev-python/reverend/metadata.xml
new file mode 100644
index 00000000000..bc09d5b5945
--- /dev/null
+++ b/dev-python/reverend/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus Rivero</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Reverend</remote-id>
+ <remote-id type="sourceforge">reverend</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/reverend/reverend-0.4-r1.ebuild b/dev-python/reverend/reverend-0.4-r1.ebuild
new file mode 100644
index 00000000000..71bde2f15be
--- /dev/null
+++ b/dev-python/reverend/reverend-0.4-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Reverend"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Reverend - Simple Bayesian classifier"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodReverend http://pypi.python.org/pypi/Reverend"
+SRC_URI="mirror://sourceforge/reverend/${MY_P}.tar.gz mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/rfc3986/Manifest b/dev-python/rfc3986/Manifest
new file mode 100644
index 00000000000..b084e29d319
--- /dev/null
+++ b/dev-python/rfc3986/Manifest
@@ -0,0 +1 @@
+DIST rfc3986-0.2.0.tar.gz 14522 SHA256 8a7b3f6cfdfb969c2e876513e87c30ebe1e4bdc9fae4a63c701eee88bbec9b22 SHA512 e16a7b690597e1d3bce0869e1bd7aecb60926b61da38e8b7170d920d73130512d4017426461d755792c2ea691b5c01ae8955e0b9818679e795b7338794b66d83 WHIRLPOOL 03bc5ca0d5e2cc06f8bc68029dfccfa71820512b546caeaddfe66f2233a9346d4ae3123c69efaee2b90258acdb3f0cde8f2ee84f4f29c0e1375f4fb9fc56effa
diff --git a/dev-python/rfc3986/metadata.xml b/dev-python/rfc3986/metadata.xml
new file mode 100644
index 00000000000..30fbe982e3b
--- /dev/null
+++ b/dev-python/rfc3986/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Validating URI References per RFC 3986
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rfc3986</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rfc3986/rfc3986-0.2.0.ebuild b/dev-python/rfc3986/rfc3986-0.2.0.ebuild
new file mode 100644
index 00000000000..b7be2f98761
--- /dev/null
+++ b/dev-python/rfc3986/rfc3986-0.2.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Validating URI References per RFC 3986"
+HOMEPAGE="http://tools.ietf.org/html/rfc3986"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND=""
diff --git a/dev-python/rlcompleter2/Manifest b/dev-python/rlcompleter2/Manifest
new file mode 100644
index 00000000000..41e086046e7
--- /dev/null
+++ b/dev-python/rlcompleter2/Manifest
@@ -0,0 +1 @@
+DIST rlcompleter2-0.98.tar.gz 10581 SHA256 41d00709f4275af49605461cecb935eac5e1d4a39bf0c34f6e0c5a1e00304617 SHA512 577118a8e94fe71a682a1210f5b156f5fa1078ae30efb1913e4b64569adfc44c64eadb993e9180d98243975589555204ede444fdd80d9094d279ede81e9e1801 WHIRLPOOL 03f649df9419e511de417d75294fe39db0ea55a4c09398986c9c59ae93fced6fa9817a0c5f26055c1119a281fbf0355891d5de7ddbd636a361ac72c538a3c929
diff --git a/dev-python/rlcompleter2/metadata.xml b/dev-python/rlcompleter2/metadata.xml
new file mode 100644
index 00000000000..649fc1495ae
--- /dev/null
+++ b/dev-python/rlcompleter2/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">rlcompleter2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rlcompleter2/rlcompleter2-0.98-r1.ebuild b/dev-python/rlcompleter2/rlcompleter2-0.98-r1.ebuild
new file mode 100644
index 00000000000..c418f75527e
--- /dev/null
+++ b/dev-python/rlcompleter2/rlcompleter2-0.98-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python command line completion"
+HOMEPAGE="http://codespeak.net/rlcompleter2/ http://pypi.python.org/pypi/rlcompleter2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+pkg_postinst() {
+ ewarn "Please read the README, and follow instructions in order to"
+ ewarn "execute and configure rlcompleter2."
+}
diff --git a/dev-python/rlcompleter2/rlcompleter2-0.98.ebuild b/dev-python/rlcompleter2/rlcompleter2-0.98.ebuild
new file mode 100644
index 00000000000..4921fcd1942
--- /dev/null
+++ b/dev-python/rlcompleter2/rlcompleter2-0.98.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Python command line completion"
+HOMEPAGE="http://codespeak.net/rlcompleter2/ http://pypi.python.org/pypi/rlcompleter2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+PYTHON_MODNAME="rlcompleter2.py"
+
+pkg_postinst() {
+ ewarn "Please read the README, and follow instructions in order to"
+ ewarn "execute and configure rlcompleter2."
+}
diff --git a/dev-python/robotframework-selenium2library/Manifest b/dev-python/robotframework-selenium2library/Manifest
new file mode 100644
index 00000000000..7f660221b32
--- /dev/null
+++ b/dev-python/robotframework-selenium2library/Manifest
@@ -0,0 +1,2 @@
+DIST robotframework-selenium2library-1.5.0.tar.gz 216937 SHA256 e173cb9a6cc8b831ec9a96a702ea36a450e599fd88a9c9d675581a7352565542 SHA512 a0897abd12655f1a3693cccebe21daa061e40bb94340081d31b587c522a2dfeff04530897f72b05ca41ee93ba8defb71941532cac700293d22051ab583f2bb61 WHIRLPOOL 7fc04c10c3a9eb980cdc482cbcadbee9b9def10912415aeaed386903fc119f577d0459004726ea2b84b86b1a63bcae341e97777631cf4b7ba69ded50376a64fb
+DIST robotframework-selenium2library-1.6.0.tar.gz 220553 SHA256 9e72fba2410e575434d6b5c3614950ebb1e807cc3e10d31702f868b26ee64dab SHA512 bb35490a8b9630451dfed0dc4695df488b177eafe356084d77e636b28240bd26a3dd496a6520e54a0fa01c0c77102e9455f4f612cd8a7ef6327cb05b4d359aee WHIRLPOOL 5c02616d9e8e7ef5653111cb1a85f135655af7126624b0aa94a944c694663edecae515d3286d2109ca4f4081ccc25d7f2352808509899375f483bf947430fd34
diff --git a/dev-python/robotframework-selenium2library/metadata.xml b/dev-python/robotframework-selenium2library/metadata.xml
new file mode 100644
index 00000000000..3be6755f6c6
--- /dev/null
+++ b/dev-python/robotframework-selenium2library/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">rtomac/robotframework-selenium2library</remote-id>
+ <remote-id type="pypi">robotframework-selenium2library</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/robotframework-selenium2library/robotframework-selenium2library-1.5.0.ebuild b/dev-python/robotframework-selenium2library/robotframework-selenium2library-1.5.0.ebuild
new file mode 100644
index 00000000000..e2fb0fa2d3b
--- /dev/null
+++ b/dev-python/robotframework-selenium2library/robotframework-selenium2library-1.5.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Web testing library for Robot Framework"
+HOMEPAGE="https://github.com/rtomac/robotframework-selenium2library/
+ http://pypi.python.org/pypi/robotframework-selenium2library/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/selenium-2.12.0[${PYTHON_USEDEP}]
+ >=dev-python/decorator-3.3.2[${PYTHON_USEDEP}]
+ >=dev-python/robotframework-2.6.0[${PYTHON_USEDEP}]"
+
+DOCS=( BUILD.rst CHANGES.rst README.rst )
+
+src_prepare() {
+ # don't use bundled setuptools
+ sed -e '/use_setuptools()/d' \
+ -e '/ez_setup/d' \
+ -i setup.py || die
+}
diff --git a/dev-python/robotframework-selenium2library/robotframework-selenium2library-1.6.0.ebuild b/dev-python/robotframework-selenium2library/robotframework-selenium2library-1.6.0.ebuild
new file mode 100644
index 00000000000..cebb1befb21
--- /dev/null
+++ b/dev-python/robotframework-selenium2library/robotframework-selenium2library-1.6.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Web testing library for Robot Framework"
+HOMEPAGE="https://github.com/rtomac/robotframework-selenium2library/
+ http://pypi.python.org/pypi/robotframework-selenium2library/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/selenium-2.12.0[${PYTHON_USEDEP}]
+ >=dev-python/decorator-3.3.2[${PYTHON_USEDEP}]
+ >=dev-python/robotframework-2.6.0[${PYTHON_USEDEP}]"
+
+DOCS=( BUILD.rst CHANGES.rst README.rst )
+
+src_prepare() {
+ # don't use bundled setuptools
+ sed -e '/use_setuptools()/d' \
+ -e '/ez_setup/d' \
+ -i setup.py || die
+}
diff --git a/dev-python/robotframework-selenium2library/robotframework-selenium2library-9999.ebuild b/dev-python/robotframework-selenium2library/robotframework-selenium2library-9999.ebuild
new file mode 100644
index 00000000000..08ae556578d
--- /dev/null
+++ b/dev-python/robotframework-selenium2library/robotframework-selenium2library-9999.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 git-r3
+
+EGIT_REPO_URI="git://github.com/rtomac/robotframework-selenium2library.git"
+
+DESCRIPTION="Web testing library for Robot Framework"
+HOMEPAGE="https://github.com/rtomac/robotframework-selenium2library/
+ http://pypi.python.org/pypi/robotframework-selenium2library/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/selenium-2.12.0[${PYTHON_USEDEP}]
+ >=dev-python/decorator-3.3.2[${PYTHON_USEDEP}]
+ >=dev-python/robotframework-2.6.0[${PYTHON_USEDEP}]"
+
+DOCS=( BUILD.rst CHANGES.rst README.rst )
+
+src_prepare() {
+ # don't use bundled setuptools
+ sed -e '/use_setuptools()/d' \
+ -e '/ez_setup/d' \
+ -i setup.py || die
+}
diff --git a/dev-python/robotframework-sshlibrary/Manifest b/dev-python/robotframework-sshlibrary/Manifest
new file mode 100644
index 00000000000..03103df7d64
--- /dev/null
+++ b/dev-python/robotframework-sshlibrary/Manifest
@@ -0,0 +1,2 @@
+DIST robotframework-sshlibrary-2.0.2.tar.gz 86160 SHA256 e4b96e018459dcd5549586c8df49c2a5befd552fe543887702b67f8be42a324d SHA512 749629f8b6463acb011dd01cc11d1268fadff190b483ccd3545f02752d47c6eff734657e6a0dc64e5d95edcb424aa0506cc68c3b2b5b4d81955ff27efd2a0c8e WHIRLPOOL 4201cfa30db2ec9460a54c24877658311f929163b04b67faf1fc191d0929efec3bfe1e10471705c68467a8c312320b8fc2d6c6d8196adb5dda66845ea3d82c44
+DIST robotframework-sshlibrary-2.1.1.tar.gz 87787 SHA256 9f7c7f1a830363a6756867550903fe4f5324ff57cf95651a59f9298f438776cd SHA512 4ad97ff53c071831a4bdea1f54c281fc4e19903695feee23db9c8a443f95413a56f3c30f4d4decf19cef86986557020ccfde9269cde3b2437d93f549f5f40f4a WHIRLPOOL 59fa6d69805deec19f26c168f26ec1071a0cd6636c83546c28592a964592b79a5add23c125806c85414d392ab696fe4f42479e54a8ee6c7eadab51861bd315e4
diff --git a/dev-python/robotframework-sshlibrary/metadata.xml b/dev-python/robotframework-sshlibrary/metadata.xml
new file mode 100644
index 00000000000..d60a70340f8
--- /dev/null
+++ b/dev-python/robotframework-sshlibrary/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">robotframework-sshlibrary</remote-id>
+ <remote-id type="pypi">robotframework-sshlibrary</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.0.2.ebuild b/dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.0.2.ebuild
new file mode 100644
index 00000000000..b9f6018c731
--- /dev/null
+++ b/dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.0.2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A test library for Robot Framework that enables SSH and SFTP"
+HOMEPAGE="http://code.google.com/p/robotframework-sshlibrary/ https://pypi.python.org/pypi/robotframework-sshlibrary/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/robotframework[${PYTHON_USEDEP}]"
diff --git a/dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.1.1.ebuild b/dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.1.1.ebuild
new file mode 100644
index 00000000000..fa453307d8a
--- /dev/null
+++ b/dev-python/robotframework-sshlibrary/robotframework-sshlibrary-2.1.1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A test library for Robot Framework that enables SSH and SFTP"
+HOMEPAGE="http://code.google.com/p/robotframework-sshlibrary/ https://pypi.python.org/pypi/robotframework-sshlibrary/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/robotframework[${PYTHON_USEDEP}]"
diff --git a/dev-python/robotframework/Manifest b/dev-python/robotframework/Manifest
new file mode 100644
index 00000000000..38683cc5d2e
--- /dev/null
+++ b/dev-python/robotframework/Manifest
@@ -0,0 +1,3 @@
+DIST robotframework-2.8.5.tar.gz 591686 SHA256 ea4d261f97fc4f4421616e10e228d8b748c24b8121d4be9dd03db3ba9fb0ed67 SHA512 194540254d686d70bc3e51b88d4fc3236d7d81910b2a712c71a9936a70d4bf79f36c5b90536339bedc821372830f3549476ba1e9f0a73efe37d3499c4754daee WHIRLPOOL 92e43102f8a3d8532cb5082e5b980de5ec54cc426e341b93832ac9a0f90617e7b84ae508c01c095baadb19149afbc30b25017638c1ac76e54323faab3144db91
+DIST robotframework-2.8.6.tar.gz 378985 SHA256 3bb560a8b1331a96dbdc99704f68c04052eae6021e242d8e28f9a9e9f8258442 SHA512 42e8ca60037b68be5a6f67254c4fb44819e23479fe8713ad2e13c9ea077de627dd4a4a5a06000b7c331be88ca490a5cc91a73bfd22ea06f278587a13a15f76e6 WHIRLPOOL 40c1bdf665a03a8732811a71aa7d9c4b7c40ddb62600fee6b62c9faeb169ad960d4afb84171d65593511248e0c64167257019fcfefd283de1e9f8faa9b1af758
+DIST robotframework-2.8.7.tar.gz 393256 SHA256 a8b0dff36129fa262a393965071940a2072f35278b028ce8cd72c8849206cd55 SHA512 523cc923ec0566f4bb8d4bb4d96627f6d6378b3e9921e0a995addfc80b917719279545b5623df2df9b11027ddb3e72624456918667495d9b413d276090b73c79 WHIRLPOOL 7f888ec719d2c6030a1f1ccb57eae2b56ee440c717544ca8057691fcaa3861a801c11df961a21a5146bddf8c2192d0ad9bb20c1538053335d95738d696a0518c
diff --git a/dev-python/robotframework/metadata.xml b/dev-python/robotframework/metadata.xml
new file mode 100644
index 00000000000..ee063083712
--- /dev/null
+++ b/dev-python/robotframework/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">robotframework</remote-id>
+ <remote-id type="pypi">robotframework</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/robotframework/robotframework-2.8.5.ebuild b/dev-python/robotframework/robotframework-2.8.5.ebuild
new file mode 100644
index 00000000000..2242c717b0a
--- /dev/null
+++ b/dev-python/robotframework/robotframework-2.8.5.ebuild
@@ -0,0 +1,15 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A generic test automation framework for acceptance testing and acceptance test-driven development"
+HOMEPAGE="http://robotframework.org/ https://pypi.python.org/pypi/robotframework/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
diff --git a/dev-python/robotframework/robotframework-2.8.6.ebuild b/dev-python/robotframework/robotframework-2.8.6.ebuild
new file mode 100644
index 00000000000..2242c717b0a
--- /dev/null
+++ b/dev-python/robotframework/robotframework-2.8.6.ebuild
@@ -0,0 +1,15 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A generic test automation framework for acceptance testing and acceptance test-driven development"
+HOMEPAGE="http://robotframework.org/ https://pypi.python.org/pypi/robotframework/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
diff --git a/dev-python/robotframework/robotframework-2.8.7.ebuild b/dev-python/robotframework/robotframework-2.8.7.ebuild
new file mode 100644
index 00000000000..b2622095ebf
--- /dev/null
+++ b/dev-python/robotframework/robotframework-2.8.7.ebuild
@@ -0,0 +1,15 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A generic test automation framework for acceptance testing and acceptance test-driven development"
+HOMEPAGE="http://robotframework.org/ https://pypi.python.org/pypi/robotframework/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
diff --git a/dev-python/roman/Manifest b/dev-python/roman/Manifest
new file mode 100644
index 00000000000..afefc011585
--- /dev/null
+++ b/dev-python/roman/Manifest
@@ -0,0 +1 @@
+DIST roman-2.0.0.zip 7590 SHA256 90e83b512b44dd7fc83d67eb45aa5eb707df623e6fc6e66e7f273abd4b2613ae SHA512 d62a95e835232821dbf7a81d0c6b7df63f18c4116cfc7eee0c691a0b31d3d7b69d2dc2e4ea26e0a169a8e24bf080e8bb1e195b853be4adf1491335a5b4d5702c WHIRLPOOL 04a0344a9443597b11a052d98c2d552cbb0d2818cc6b7fdef2e352053a5427b101357837b5128a6fa98765e0f0f708305292b0836a213d02f6f34d31e9538f0d
diff --git a/dev-python/roman/metadata.xml b/dev-python/roman/metadata.xml
new file mode 100644
index 00000000000..4caedadf2dd
--- /dev/null
+++ b/dev-python/roman/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ <description>Maintainer. Assign bugs to him</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">roman</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/roman/roman-2.0.0.ebuild b/dev-python/roman/roman-2.0.0.ebuild
new file mode 100644
index 00000000000..2fa6c4d9898
--- /dev/null
+++ b/dev-python/roman/roman-2.0.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An Integer to Roman numerals converter"
+HOMEPAGE="http://pypi.python.org/pypi/roman/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="!<dev-python/docutils-0.9[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip"
+
+python_test() {
+ cp "${S}/src/tests.py" . || die "copying test file failed"
+ esetup.py test
+}
diff --git a/dev-python/root_numpy/Manifest b/dev-python/root_numpy/Manifest
new file mode 100644
index 00000000000..2682c5608c6
--- /dev/null
+++ b/dev-python/root_numpy/Manifest
@@ -0,0 +1,3 @@
+DIST root_numpy-3.2.0.tar.gz 316240 SHA256 ff64ebd9c4b8e99703bed8541bbd5f69742da0e442f8ab0833319252a0bf8006 SHA512 da08a33eeb225a57053eafc6247e55fec8c56e231455c255d71d3adfb6119d35d0b41fcf54d5d99690743a525e9d5ecfcde7efe53fb0551e38affa10e336485f WHIRLPOOL d0a105dcc4c03f33d3683fcdebcf8d140e9a6b6ea4fa7f7fcf4773b03dffd4972ff571aeb8c6e85caea09cc4df0fe3e73c9853d980cb0fe944dd7255e07a2e7e
+DIST root_numpy-3.3.0.tar.gz 359688 SHA256 f658bdecada912aed0b92ea84a2e5a64660b28f1476c2387d1e208237da34e5a SHA512 97a75ed46cdb25ff6f7c680c359cc84cf1a9b0f6204d5ee9e7cf0d1bd0847910be7d0599e9a38df42593c56842d7cf6ecd982c2f3620db5c9162442af59c1acb WHIRLPOOL f03a0cf935e4e3ca55cc1d8752e29a5477f4e13972caa3cbfd09ef6902bf059d592af381d232a100cd3e25453def6e8b2530a0f5cb29333d5523d0159b315f7d
+DIST root_numpy-3.3.1.tar.gz 361107 SHA256 932de8dea0d1586fe73c07b1a0859032cce4cd122a96c2aa5f4a0d55b8d47097 SHA512 5fe0340c8e0550492b97bde0a75bef4c3b5a302d61090f79e2858b9adf93e0b522dba341a3fb60ca6557d033c429f6c93c1330caf38568a6060ad41e664063e9 WHIRLPOOL 65507c731a53bbc7617a44e2cebb2b6ca11127b6c05d11998b04360fa32ff1cd9f6716bd391331dfdb97307bef08f72bfadf7b65bdc216a8a3090cf505d8a1e6
diff --git a/dev-python/root_numpy/metadata.xml b/dev-python/root_numpy/metadata.xml
new file mode 100644
index 00000000000..de695cc3179
--- /dev/null
+++ b/dev-python/root_numpy/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-physics</herd>
+ <longdescription lang="en">
+ root_numpy is a Python extension for converting ROOT TTrees into
+ NumPy recarrays or structured arrays. With the core internals
+ written in C++, root_numpy can efficiently handle large amounts of
+ data (limited only by the available memory).
+ Now that your ROOT data is in NumPy form, you can make use of the many
+ powerful scientific Python packages or perform quick exploratory data
+ analysis in interactive environments like IPython.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">root_numpy</remote-id>
+ <remote-id type="github">rootpy/root_numpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/root_numpy/root_numpy-3.2.0.ebuild b/dev-python/root_numpy/root_numpy-3.2.0.ebuild
new file mode 100644
index 00000000000..a2a71eee707
--- /dev/null
+++ b/dev-python/root_numpy/root_numpy-3.2.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Interface between ROOT and numpy"
+HOMEPAGE="https://github.com/rootpy/root_numpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-physics/root[python,${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( tutorial/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/root_numpy/root_numpy-3.3.0.ebuild b/dev-python/root_numpy/root_numpy-3.3.0.ebuild
new file mode 100644
index 00000000000..a2a71eee707
--- /dev/null
+++ b/dev-python/root_numpy/root_numpy-3.3.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Interface between ROOT and numpy"
+HOMEPAGE="https://github.com/rootpy/root_numpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-physics/root[python,${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( tutorial/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/root_numpy/root_numpy-3.3.1.ebuild b/dev-python/root_numpy/root_numpy-3.3.1.ebuild
new file mode 100644
index 00000000000..a2a71eee707
--- /dev/null
+++ b/dev-python/root_numpy/root_numpy-3.3.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Interface between ROOT and numpy"
+HOMEPAGE="https://github.com/rootpy/root_numpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-physics/root[python,${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( tutorial/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/rootpy/Manifest b/dev-python/rootpy/Manifest
new file mode 100644
index 00000000000..de21adb3623
--- /dev/null
+++ b/dev-python/rootpy/Manifest
@@ -0,0 +1 @@
+DIST rootpy-0.7.1.tar.gz 305412 SHA256 d36399125ed8540b9a651e7b5c7ddeba686ef3107830d3d6d840cdae4834751c SHA512 460e5d79da08c141c762a5a92cf50694fe1fee8677a2439b5525b67e7d6a1a6af18a4e6dc91d379b394a97dc973da8f6baa534d46e506e0a7a4d0ee632de1a2a WHIRLPOOL d9663274a36c490bb4c872be83527d3dd414d9cca989cf20a2aca1ac5441532c9b29571d0ff885458fd2e820dc7905a679e1c9873305848ccd1fafa7820a84be
diff --git a/dev-python/rootpy/metadata.xml b/dev-python/rootpy/metadata.xml
new file mode 100644
index 00000000000..e00be2ed2d9
--- /dev/null
+++ b/dev-python/rootpy/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-physics</herd>
+<longdescription lang="en">
+ The rootpy project is a community-driven initiative aiming to provide
+ a more pythonic interface with ROOT on top of the existing PyROOT
+ bindings.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">rootpy</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/rootpy/rootpy-0.7.1.ebuild b/dev-python/rootpy/rootpy-0.7.1.ebuild
new file mode 100644
index 00000000000..e221456ea09
--- /dev/null
+++ b/dev-python/rootpy/rootpy-0.7.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="readline"
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="Pythonic layer on top of the ROOT framework's PyROOT bindings"
+HOMEPAGE="http://rootpy.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RDEPEND="
+ sci-physics/root[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pytables[${PYTHON_USEDEP}]
+ dev-python/root_numpy[${PYTHON_USEDEP}]
+ dev-python/termcolor[${PYTHON_USEDEP}]"
+
+DEPEND="
+ sci-physics/root[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# TOFIX: tests go in an infinite loop error
+RESTRICT=test
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ nosetests -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/rope/Manifest b/dev-python/rope/Manifest
new file mode 100644
index 00000000000..cedad02a835
--- /dev/null
+++ b/dev-python/rope/Manifest
@@ -0,0 +1,2 @@
+DIST rope-0.10.2.tar.gz 221523 SHA256 fffca108c0d6a711121ce11fed286f4ddc5791c7a6c3f079221a9303d1ddb465 SHA512 9d3c3f2197b8eff87301d90dbf58872070e8c352704f50c942c270a05ba08504aeb2bb8f6d00902954abaa4d721d2a246c720f94547d8d3517cb84c0b31d9bc2 WHIRLPOOL 196587c655e6bffb26bc6498e57a833ddfc5c3ec0ccaa0b0baff9618f0e9fc5d18612fdada1a91e3ca8813b2c3c254691d462f2ff622af371a78b22b2024016f
+DIST rope-0.9.4.tar.gz 221516 SHA256 2dc0342604851d8fbdafa198172eab5da7ed422759016669056181e21c54a6ba SHA512 462ce4fec7decdca67400e01fc08cb924019e71011fa0c50c529ff0ba377b277685f34a78796b5c30c20ac063aaba1b0b61bd9ac5b05625399e9d71ac625e534 WHIRLPOOL 7fcdfcd0d82e869b8008cedb7fc0ecbb8f7da302994129273e342346becde8cbd5915f9e04d2a9de57eb2b42b4487329109c159277f8255e386fc2765213a94b
diff --git a/dev-python/rope/files/rope-0.9.3-fix_tests_results.patch b/dev-python/rope/files/rope-0.9.3-fix_tests_results.patch
new file mode 100644
index 00000000000..5250cc66f94
--- /dev/null
+++ b/dev-python/rope/files/rope-0.9.3-fix_tests_results.patch
@@ -0,0 +1,16 @@
+https://bitbucket.org/agr/rope/issue/7/
+
+--- ropetest/__init__.py
++++ ropetest/__init__.py
+@@ -1,3 +1,4 @@
++import sys
+ import unittest
+
+ import ropetest.projecttest
+@@ -31,4 +32,5 @@
+
+ if __name__ == '__main__':
+ runner = unittest.TextTestRunner()
+- runner.run(suite())
++ result = runner.run(suite())
++ sys.exit(not result.wasSuccessful())
diff --git a/dev-python/rope/files/rope-0.9.3-python2.7.patch b/dev-python/rope/files/rope-0.9.3-python2.7.patch
new file mode 100644
index 00000000000..f1a4fe4d2d3
--- /dev/null
+++ b/dev-python/rope/files/rope-0.9.3-python2.7.patch
@@ -0,0 +1,76 @@
+Apply upstream changesets:
+https://bitbucket.org/agr/rope/changeset/1c100ebabc16
+https://bitbucket.org/agr/rope/changeset/f5eb880e0be2
+
+to fix issues with python 2.7
+
+https://bugs.gentoo.org/show_bug.cgi?id=326401
+https://bitbucket.org/agr/rope/issue/8/
+
+--- a/rope/base/ast.py
++++ b/rope/base/ast.py
+@@ -27,6 +27,10 @@
+ method_name = '_' + node.__class__.__name__
+ method = getattr(walker, method_name, None)
+ if method is not None:
++ if isinstance(node, _ast.ImportFrom) and node.module is None:
++ # In python < 2.7 ``node.module == ''`` for relative imports
++ # but for python 2.7 it is None. Generalizing it to ''.
++ node.module = ''
+ return method(node)
+ for child in get_child_nodes(node):
+ walk(child, walker)
+--- a/rope/base/oi/runmod.py
++++ b/rope/base/oi/runmod.py
+@@ -187,6 +187,7 @@
+
+ def close(self):
+ self.sender.close()
++ sys.settrace(None)
+
+ def _realpath(path):
+ return os.path.realpath(os.path.abspath(os.path.expanduser(path)))
+--- a/rope/refactor/importutils/module_imports.py
++++ b/rope/refactor/importutils/module_imports.py
+@@ -428,7 +428,8 @@
+ if node.level:
+ level = node.level
+ import_info = importinfo.FromImport(
+- node.module, level, self._get_names(node.names))
++ node.module or '', # see comment at rope.base.ast.walk
++ level, self._get_names(node.names))
+ start_line = node.lineno
+ self.imports.append(importinfo.ImportStatement(
+ import_info, node.lineno, end_line,
+--- a/rope/refactor/patchedast.py
++++ b/rope/refactor/patchedast.py
+@@ -350,7 +350,8 @@
+ children = ['from']
+ if node.level:
+ children.append('.' * node.level)
+- children.extend([node.module, 'import'])
++ children.extend([node.module or '', # see comment at rope.base.ast.walk
++ 'import'])
+ children.extend(self._child_nodes(node.names, ','))
+ self._handle(node, children)
+
+--- a/ropetest/refactor/patchedasttest.py
++++ b/ropetest/refactor/patchedasttest.py
+@@ -441,6 +441,17 @@
+ 'import', ' ', 'alias'])
+ checker.check_children('alias', ['y', ' ', 'as', ' ', 'z'])
+
++ @testutils.run_only_for_25
++ def test_from_node_relative_import(self):
++ source = 'from . import y as z\n'
++ ast = patchedast.get_patched_ast(source, True)
++ checker = _ResultChecker(self, ast)
++ checker.check_region('ImportFrom', 0, len(source) - 1)
++ checker.check_children(
++ 'ImportFrom', ['from', ' ', '.', '', '', ' ',
++ 'import', ' ', 'alias'])
++ checker.check_children('alias', ['y', ' ', 'as', ' ', 'z'])
++
+ def test_simple_gen_expr_node(self):
+ source = 'zip(i for i in x)\n'
+ ast = patchedast.get_patched_ast(source, True)
diff --git a/dev-python/rope/metadata.xml b/dev-python/rope/metadata.xml
new file mode 100644
index 00000000000..99ac729c5a3
--- /dev/null
+++ b/dev-python/rope/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang='en'>
+ Rope is a python refactoring library.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">rope</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/rope/rope-0.10.2.ebuild b/dev-python/rope/rope-0.10.2.ebuild
new file mode 100644
index 00000000000..6c37962b4da
--- /dev/null
+++ b/dev-python/rope/rope-0.10.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python refactoring library"
+HOMEPAGE="http://rope.sourceforge.net/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+python_test() {
+ PYTHONPATH="${BUILD_DIR}/lib:." ${EPYTHON} ropetest/__init__.py
+}
+
+src_install() {
+ distutils-r1_src_install
+ docinto docs
+ dodoc docs/*.rst
+}
diff --git a/dev-python/rope/rope-0.9.4-r1.ebuild b/dev-python/rope/rope-0.9.4-r1.ebuild
new file mode 100644
index 00000000000..de458c657ce
--- /dev/null
+++ b/dev-python/rope/rope-0.9.4-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python refactoring library"
+HOMEPAGE="http://rope.sourceforge.net/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ PYTHONPATH="${BUILD_DIR}/lib:." ${EPYTHON} ropetest/__init__.py
+}
+
+src_install() {
+ distutils-r1_src_install
+ docinto docs
+ dodoc docs/*.txt
+}
diff --git a/dev-python/ropeide/Manifest b/dev-python/ropeide/Manifest
new file mode 100644
index 00000000000..de15a18cd2d
--- /dev/null
+++ b/dev-python/ropeide/Manifest
@@ -0,0 +1 @@
+DIST ropeide-1.5.1.tar.gz 88289 SHA256 a590ec73f806e8409c3b53da7a6345232c9b2c0564800921f8bab61160e87a13 SHA512 fbdfc9519e49440c748c4d9fe5e8a3597b983dcee715f92ce3c9d07eb19b1792623dd3a66ee4f43790887848aa85c17b4596b006c4d1c86859c060af69c32dcb WHIRLPOOL 1efe7596c741b928a979c2aeade2df03532d438f26732f1430547739d5e44d0cae4d4d221e604e5f5464e604d7eb3fcde43e0bfbbe2895c224f2fc508faf0fc9
diff --git a/dev-python/ropeide/metadata.xml b/dev-python/ropeide/metadata.xml
new file mode 100644
index 00000000000..cc44ce4146d
--- /dev/null
+++ b/dev-python/ropeide/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="sourceforge">rope</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ropeide/ropeide-1.5.1-r2.ebuild b/dev-python/ropeide/ropeide-1.5.1-r2.ebuild
new file mode 100644
index 00000000000..a182565c973
--- /dev/null
+++ b/dev-python/ropeide/ropeide-1.5.1-r2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+PYTHON_REQ_USE="tk"
+
+DESCRIPTION="Python refactoring IDE"
+HOMEPAGE="http://rope.sourceforge.net/ropeide.html http://pypi.python.org/pypi/ropeide"
+SRC_URI="mirror://sourceforge/rope/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND=">=dev-python/rope-0.8.4[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ if use doc; then
+ dodoc docs/*.txt || die "dodoc failed"
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ropemacs/Manifest b/dev-python/ropemacs/Manifest
new file mode 100644
index 00000000000..6004dbe3780
--- /dev/null
+++ b/dev-python/ropemacs/Manifest
@@ -0,0 +1,2 @@
+DIST ropemacs-0.7.tar.gz 20744 SHA256 12d7dc9872f20de757610224999e866aac89ff04864d15a393e937965b70b8f4 SHA512 3cc61fe6416a473430ace720caf5516def0166752c8e2d72398e6bb863ee0c40a4b818a2754c60824bd365f20e9f72e5967f0d9ee7fce8851a2f753618c790c5 WHIRLPOOL f3111adc8caa4262379c34add573ccfa46f142c19aea5956219d94600e20985832d1b65cfdd66683b13063ac82885a9d97fb983cffc699d3155900e3727c0fd8
+DIST ropemacs-0.8.tar.gz 22161 SHA256 e1ae9691d402eaa525f56d37f5fefff8b8fe9892188e49600d01063a5acb535f SHA512 3e42ce03758c13d8f6e66b69a4b9ab7620956ed0272ecf770c0cea204ffae8c85f41103b29e507db7d68d6dc006b14e6ca5ce31d8ca17b6a66bf743f1110a9b3 WHIRLPOOL 5632799ace9e3c0a40342b3d7be5da3f5763a290931a84fa464bed214cd18c2968b58ee209868e2977524b3cf9bce48fb32f0aeab0897ad9df1cac80e81f838b
diff --git a/dev-python/ropemacs/metadata.xml b/dev-python/ropemacs/metadata.xml
new file mode 100644
index 00000000000..0cd4d5bd166
--- /dev/null
+++ b/dev-python/ropemacs/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>emacs</herd>
+ <upstream>
+ <remote-id type="pypi">ropemacs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ropemacs/ropemacs-0.7.ebuild b/dev-python/ropemacs/ropemacs-0.7.ebuild
new file mode 100644
index 00000000000..5940aba3934
--- /dev/null
+++ b/dev-python/ropemacs/ropemacs-0.7.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils readme.gentoo
+
+DESCRIPTION="Rope in Emacs"
+HOMEPAGE="http://rope.sourceforge.net/ropemacs.html
+ http://pypi.python.org/pypi/ropemacs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-1+" # GPL without version
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/rope[${PYTHON_USEDEP}]
+ dev-python/ropemode[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+DOCS=( README.txt CONTRIBUTORS docs/ropemacs.txt docs/todo.txt )
+
+src_install() {
+ distutils-r1_src_install
+ DOC_CONTENTS="In order to enable ropemacs support in Emacs, install
+ app-emacs/pymacs and add the following line to your ~/.emacs file:
+ \\n\\t(pymacs-load \"ropemacs\" \"rope-\")"
+ readme.gentoo_create_doc
+}
diff --git a/dev-python/ropemacs/ropemacs-0.8.ebuild b/dev-python/ropemacs/ropemacs-0.8.ebuild
new file mode 100644
index 00000000000..c4fc0748031
--- /dev/null
+++ b/dev-python/ropemacs/ropemacs-0.8.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils readme.gentoo
+
+DESCRIPTION="Rope in Emacs"
+HOMEPAGE="http://rope.sourceforge.net/ropemacs.html
+ http://pypi.python.org/pypi/ropemacs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-1+" # GPL without version
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/rope[${PYTHON_USEDEP}]
+ dev-python/ropemode[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ local DOCS="${DOCS} README.rst docs/*.rst"
+ distutils-r1_src_install
+
+ DOC_CONTENTS="In order to enable ropemacs support in Emacs, install
+ app-emacs/pymacs and add the following line to your ~/.emacs file:
+ \\n\\t(pymacs-load \"ropemacs\" \"rope-\")"
+ readme.gentoo_create_doc
+}
diff --git a/dev-python/ropemode/Manifest b/dev-python/ropemode/Manifest
new file mode 100644
index 00000000000..3a2497927ee
--- /dev/null
+++ b/dev-python/ropemode/Manifest
@@ -0,0 +1 @@
+DIST ropemode-0.2.tar.gz 12268 SHA256 54b2c7b4a04b22d41aa686942dc521a89ac36fd2c7356c2707939bb97980864b SHA512 59b9a8f8caf03f480994c546b48c0be8bd85ebf44b406e216b6651e254b3fd9c6a532a5bab1be1301b12dcf756d3ad325f38e810fe5ea5bbcc700979cfbd5055 WHIRLPOOL ccf2a99abe7c3cc9634dd118f3f65f3b32a09c7f846f8314d8abcfcd15ae761b43be0fa61089ba682b62f75256bb69d54f11f8cf171cc4586295fceb3189c4f2
diff --git a/dev-python/ropemode/metadata.xml b/dev-python/ropemode/metadata.xml
new file mode 100644
index 00000000000..8aab68f6306
--- /dev/null
+++ b/dev-python/ropemode/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">ropemode</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ropemode/ropemode-0.2-r1.ebuild b/dev-python/ropemode/ropemode-0.2-r1.ebuild
new file mode 100644
index 00000000000..0b947d9b840
--- /dev/null
+++ b/dev-python/ropemode/ropemode-0.2-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="${P/_rc/-rc}"
+
+DESCRIPTION="A helper for using rope refactoring library in IDEs"
+HOMEPAGE="http://pypi.python.org/pypi/ropemode"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=dev-python/rope-0.9.2[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/routes/Manifest b/dev-python/routes/Manifest
new file mode 100644
index 00000000000..756d2866ee7
--- /dev/null
+++ b/dev-python/routes/Manifest
@@ -0,0 +1,3 @@
+DIST Routes-1.13.tar.gz 797539 SHA256 cc03d1a357cdb7af82e3909ee8ff93cb2b2afb48aca23bfde0117d6f49f624a7 SHA512 052b04e0ee803394ffe1675a075fb633e790fdcabf1ee012a73d0c4ef211b4d0b18be13f680537fe5f8424193245d0b4bb2d76a20b9e74707e73b25e076a9f6a WHIRLPOOL 7b83a24719ca2e051f9ba44ca712c10c2eca1590e1fc39afb731777de9c9bd73af4ef99868bf1e3dfa688ff38b9068f30311fe146973d9b55e1c61c501a08ebb
+DIST Routes-2.0.tar.gz 199195 SHA256 6e4eb6437a9def22e1344ee8f766d7795bedfe6f615d3ea138e4035d6fbd33f8 SHA512 a049efc8774ded555f597d165cc536891cf7c008a753cb0d3c44ebb5c763e117b5050c0ef68489e05f7d9bd6009250465cc56ce6954010a84ec9b3416f728e91 WHIRLPOOL b9e5e88071c32c51427cfb16ad16cdea4cdace35579b053ea4fd2e81b27858c163244fd7976e2bdf93ab79e413ba72e48b2db8fc6991a6199ef7ba56c9620e5a
+DIST Routes-2.1.tar.gz 179737 SHA256 ebf4126e244cf11414653b5ba5f27ed4abfad38b906a01e5d4c93d3ce5568ea3 SHA512 6dcea3e20d9883e29d6aea5949eef3b265094f46084234a15530c266930163918c6eb2ad00bb49cd9cbf947a0019c2d91a5455f997bc7a7e5b8c662837a728c2 WHIRLPOOL fbdb8e1a84aa2b1b8bf011aa68a31364f0fd48cabcaaf413274679f34e514283fbd8aac9497444b24f69f7d72393f38aeab5eeeb96659e3aae009ed2eebc4fbf
diff --git a/dev-python/routes/files/routes-2.0-setup.py.patch b/dev-python/routes/files/routes-2.0-setup.py.patch
new file mode 100644
index 00000000000..ec090f42fce
--- /dev/null
+++ b/dev-python/routes/files/routes-2.0-setup.py.patch
@@ -0,0 +1,38 @@
+From 414ba660bccd3eed60f63cc8a1d117740065126f Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Dec 2013 10:42:26 -0500
+Subject: [PATCH] Specify encoding when opening files in setup.py
+
+This resolves a UnicodeDecodeError when setup.py is invoked with a
+non-utf8 locale.
+
+https://bugs.gentoo.org/show_bug.cgi?id=495118
+---
+ setup.py | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index c76e869..9191f11 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,12 +1,14 @@
+ __version__ = '2.0'
+
+-import os, sys
++import io, os, sys
+
+ from setuptools import setup, find_packages
+
+ here = os.path.abspath(os.path.dirname(__file__))
+-README = open(os.path.join(here, 'README.rst')).read()
+-CHANGES = open(os.path.join(here, 'CHANGELOG.rst')).read()
++with io.open(os.path.join(here, 'README.rst'), encoding='utf8') as f:
++ README = f.read()
++with io.open(os.path.join(here, 'CHANGELOG.rst'), encoding='utf8') as f:
++ CHANGES = f.read()
+ PY3 = sys.version_info[0] == 3
+
+ extra_options = {
+--
+1.8.5.2
+
diff --git a/dev-python/routes/files/routes-2.0-tests-py3.patch b/dev-python/routes/files/routes-2.0-tests-py3.patch
new file mode 100644
index 00000000000..ec21799ba14
--- /dev/null
+++ b/dev-python/routes/files/routes-2.0-tests-py3.patch
@@ -0,0 +1,40 @@
+Fix tests to work with random hash dicts.
+
+--- a/tests/test_functional/test_generation.py
++++ b/tests/test_functional/test_generation.py
+@@ -205,13 +205,14 @@ class TestGeneration(unittest.TestCase):
+ requirements={'month':'\d{1,2}','day':'\d{1,2}'})
+ m.connect('viewpost/:id', controller='post', action='view')
+ m.connect(':controller/:action/:id')
+-
+- eq_('/blog/view?year=2004&month=blah', m.generate(controller='blog', action='view', year=2004, month='blah'))
++
++ url = m.generate(controller='blog', action='view', year=2004, month='blah')
++ assert url == '/blog/view?year=2004&month=blah' or url == '/blog/view?month=blah&year=2004'
+ eq_('/archive/2004/11', m.generate(controller='blog', action='view', year=2004, month=11))
+ eq_('/archive/2004/11', m.generate(controller='blog', action='view', year=2004, month='11'))
+ eq_('/archive/2004', m.generate(controller='blog', action='view', year=2004))
+ eq_('/viewpost/3', m.generate(controller='post', action='view', id=3))
+-
++
+ def test_multiroute_with_splits(self):
+ m = Mapper(explicit=False)
+ m.minimization = True
+@@ -219,13 +220,14 @@ class TestGeneration(unittest.TestCase):
+ requirements={'month':'\d{1,2}','day':'\d{1,2}'})
+ m.connect('viewpost/:(id)', controller='post', action='view')
+ m.connect(':(controller)/:(action)/:(id)')
+-
+- eq_('/blog/view?year=2004&month=blah', m.generate(controller='blog', action='view', year=2004, month='blah'))
++
++ url = m.generate(controller='blog', action='view', year=2004, month='blah')
++ assert url == '/blog/view?year=2004&month=blah' or url == '/blog/view?month=blah&year=2004'
+ eq_('/archive/2004/11', m.generate(controller='blog', action='view', year=2004, month=11))
+ eq_('/archive/2004/11', m.generate(controller='blog', action='view', year=2004, month='11'))
+ eq_('/archive/2004', m.generate(controller='blog', action='view', year=2004))
+ eq_('/viewpost/3', m.generate(controller='post', action='view', id=3))
+-
++
+ def test_big_multiroute(self):
+ m = Mapper(explicit=False)
+ m.minimization = True
diff --git a/dev-python/routes/metadata.xml b/dev-python/routes/metadata.xml
new file mode 100644
index 00000000000..2c6bedd7331
--- /dev/null
+++ b/dev-python/routes/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Routes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/routes/routes-1.13-r1.ebuild b/dev-python/routes/routes-1.13-r1.ebuild
new file mode 100644
index 00000000000..36483a4792c
--- /dev/null
+++ b/dev-python/routes/routes-1.13-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="Routes"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Python re-implementation of the Rails routes system for mapping URL's to Controllers/Actions"
+HOMEPAGE="http://routes.groovie.org http://pypi.python.org/pypi/Routes"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+# Note: although setup.py states that tests require webtest,
+# it isn't used anywhere.
+RDEPEND="dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/repoze-lru[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/routes/routes-2.0.ebuild b/dev-python/routes/routes-2.0.ebuild
new file mode 100644
index 00000000000..5ca16711f52
--- /dev/null
+++ b/dev-python/routes/routes-2.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="Routes"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Python re-implementation of the Rails routes system for mapping URL's to Controllers/Actions"
+HOMEPAGE="http://routes.groovie.org http://pypi.python.org/pypi/Routes"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND="dev-python/webob[${PYTHON_USEDEP}]
+ >=dev-python/repoze-lru-0.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.0-tests-py3.patch
+ "${FILESDIR}"/${PN}-2.0-setup.py.patch
+)
+
+python_prepare_all() {
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cp -r tests "${BUILD_DIR}" || die
+ if [[ ${EPYTHON} == python3* ]]; then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/routes/routes-2.1-r1.ebuild b/dev-python/routes/routes-2.1-r1.ebuild
new file mode 100644
index 00000000000..55d3d993f8e
--- /dev/null
+++ b/dev-python/routes/routes-2.1-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="Routes"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Python re-implementation of Rails routes system, mapping URL's to Controllers/Actions"
+HOMEPAGE="http://routes.groovie.org http://pypi.python.org/pypi/Routes"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/repoze-lru-0.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ )"
+# It appears there's an epidemic of missing testsuites coming out of github. Restrict for now
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+# Comment out patch for tests for now
+#PATCHES=( "${FILESDIR}"/${PN}-2.0-tests-py3.patch )
+
+# https://github.com/bbangert/routes/issues/42 presents a patch
+# for the faulty docbuild converted to sed stmnts
+python_prepare_all() {
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+ # The default theme in sphinx switched to classic from shpinx-1.3.1
+ if has_version ">=dev-python/sphinx-1.3.1"; then
+ sed -e "s:html_theme_options = {:html_theme = 'classic'\n&:" \
+ -i docs/conf.py || die
+ else
+ sed -e "s:html_theme_options = {:html_theme = 'default'\n&:" \
+ -i docs/conf.py || die
+ fi
+ sed -e "s:changes:changes\n todo:" \
+ -i docs/index.rst || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ cp -r tests "${BUILD_DIR}" || die
+ if [[ ${EPYTHON} == python3* ]]; then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/routes/routes-2.1.ebuild b/dev-python/routes/routes-2.1.ebuild
new file mode 100644
index 00000000000..9859278ed07
--- /dev/null
+++ b/dev-python/routes/routes-2.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="Routes"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Python re-implementation of Rails routes system, mapping URL's to Controllers/Actions"
+HOMEPAGE="http://routes.groovie.org http://pypi.python.org/pypi/Routes"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+
+RDEPEND=">=dev-python/repoze-lru-0.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}]
+ )"
+# It appears there's an epidemic of missing testsuites coming out of github. Restrict for now
+RESTRICT="test"
+
+S="${WORKDIR}/${MY_P}"
+
+# Comment out patch for tests for now
+#PATCHES=( "${FILESDIR}"/${PN}-2.0-tests-py3.patch )
+
+# The doc build possibly never built. Just know that the doc builds in
+# neither the previous nor this
+# https://github.com/bbangert/routes/issues/42
+python_prepare_all() {
+ use test && DISTUTILS_IN_SOURCE_BUILD=1
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cp -r tests "${BUILD_DIR}" || die
+ if [[ ${EPYTHON} == python3* ]]; then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/rply/Manifest b/dev-python/rply/Manifest
new file mode 100644
index 00000000000..66cd92cfe6d
--- /dev/null
+++ b/dev-python/rply/Manifest
@@ -0,0 +1 @@
+DIST rply-0.7.3.tar.gz 27346 SHA256 708f94da2cf5df72b0d0fe73a44a6f2310dd74004b0e7ef6bf812f941dac582a SHA512 45f8b2b9fb84940c1149b43ffda070d7ded47a5b8d8e86cf030603cb0fae78df954e629d9e6722e8f4d5ff2a7a2d516a92cf320d438cb6b1595d110e06dfc351 WHIRLPOOL b1c55fc76f0f6c7afae5dbce336a6a7510ed38ecd3c81ab22f19d9657c9f3547c8297028c35a60931db0197fdc0fee7cb1e7c50bad6769bba413247d759508da
diff --git a/dev-python/rply/metadata.xml b/dev-python/rply/metadata.xml
new file mode 100644
index 00000000000..b1b5e025f67
--- /dev/null
+++ b/dev-python/rply/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">alex/rply</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rply/rply-0.7.3.ebuild b/dev-python/rply/rply-0.7.3.ebuild
new file mode 100644
index 00000000000..15ec60bebc2
--- /dev/null
+++ b/dev-python/rply/rply-0.7.3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure python parser generator that also works with RPython"
+HOMEPAGE="https://github.com/alex/rply"
+SRC_URI="https://github.com/alex/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/py[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_prepare() {
+ # https://github.com/alex/rply/issues/26; fail under py[3-4]
+ if python_is_python3; then
+ sed -e s':test_simple:_&:' -e s':test_empty_production:_&:' \
+ -i tests/test_parsergenerator.py
+ fi
+ distutils-r1_python_prepare
+}
+
+python_test() {
+ py.test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/rpy/Manifest b/dev-python/rpy/Manifest
new file mode 100644
index 00000000000..4abff86e189
--- /dev/null
+++ b/dev-python/rpy/Manifest
@@ -0,0 +1,3 @@
+DIST rpy2-2.5.4.tar.gz 164830 SHA256 d521ecdd05cd0c31ab017cb63e9f63c29b524e46ec9063a920f640b5875f8a90 SHA512 e40ae81be19acf5008eed088c10fef3824cc712c0175414c1899bf45b24c35e2ef7d8808fae75d156064e82d1cd5939c50d5291c190030ae2050c6dffa9a36db WHIRLPOOL 2769adccaa6a634b964d4712e4bcc4d4161f8aef17d38a235bf5a3646fd166a01749fcc1852954996a00b695617597617f0dfb43f73744948a55f2eba07d9ba2
+DIST rpy2-2.6.0.tar.gz 171190 SHA256 53e295f3018a781008bffb97cc0c9a7cd361a3d191939f197157827d21a2e4b6 SHA512 16012a8a634538ba61e392dc811615a870b94b348c7ece885f8c0d146419b9689a08d5901ed2a694754cc220664797d530f75ba35e395f5857a0f25c3170f3ce WHIRLPOOL 1f33e99f1997ffbc1e9711bb667ba07db024099bdf7e460a13efe311419b872095128b2d59ffb732384ca19b77dac97822bbcf8e77ff45b0b093d7b5cfbc83e5
+DIST rpy2-2.6.1.tar.gz 171635 SHA256 39f15d7f5d51646a6cbf9d5cd1c817d2880301dbb95141947f93361685453e28 SHA512 14c6c47d6ace40ac26bf89d3efdbf5c5a68f74096fec74897877be312d3ffb03c30f4ca13ed1531ccf094ac33672fa550264fe980788bc4eca12d02089475f63 WHIRLPOOL dda6a0a2abe33f8d7e3a489c6bbaa03335a47d5fa474409883773a52be315f0920347a38f76f94e9e16c680e08cd8e7a18d27a6a2ffd4af35a779a305836bdd5
diff --git a/dev-python/rpy/files/2.5.0-setup.patch b/dev-python/rpy/files/2.5.0-setup.patch
new file mode 100644
index 00000000000..2454c313e67
--- /dev/null
+++ b/dev-python/rpy/files/2.5.0-setup.patch
@@ -0,0 +1,45 @@
+https://bitbucket.org/lgautier/rpy2/commits/bf38fa9960aa
+# HG changeset patch
+# User Laurent Gautier <lgautier@gmail.com>
+# Date 1415656651 18000
+# Node ID bf38fa9960aacf7ba24a20cfae631aa695fea986
+# Parent 9c1212066f5c980a211b21943f62fd69743ca4bd
+Should fix issue #234
+
+diff --git a/setup.py b/setup.py
+--- a/setup.py
++++ b/setup.py
+@@ -136,8 +136,6 @@
+ return output
+
+ def getRinterface_ext():
+- #r_libs = [os.path.join(RHOME, 'lib'), os.path.join(RHOME, 'modules')]
+- r_libs = []
+ extra_link_args = []
+ extra_compile_args = []
+ include_dirs = []
+@@ -250,9 +248,9 @@
+ include_dirs = [os.path.join(package_prefix,
+ 'rpy', 'rinterface'),] + include_dirs,
+ libraries = libraries,
+- library_dirs = r_libs,
++ library_dirs = library_dirs,
+ define_macros = define_macros,
+- runtime_library_dirs = r_libs,
++ runtime_library_dirs = library_dirs,
+ extra_compile_args=extra_compile_args,
+ extra_link_args = extra_link_args
+ )
+@@ -266,9 +264,9 @@
+ include_dirs = include_dirs +
+ [os.path.join('rpy', 'rinterface'), ],
+ libraries = libraries,
+- library_dirs = r_libs,
++ library_dirs = library_dirs,
+ define_macros = define_macros,
+- runtime_library_dirs = r_libs,
++ runtime_library_dirs = library_dirs,
+ extra_compile_args=extra_compile_args,
+ extra_link_args = extra_link_args
+ )
+
diff --git a/dev-python/rpy/metadata.xml b/dev-python/rpy/metadata.xml
new file mode 100644
index 00000000000..44f552728e0
--- /dev/null
+++ b/dev-python/rpy/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ RPy provides a robust Python interface to the R programming
+ language. It can manage R objects and can execute arbitrary R
+ functions. All the errors from the R language are converted to
+ Python exceptions.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">rpy2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rpy/rpy-2.5.4.ebuild b/dev-python/rpy/rpy-2.5.4.ebuild
new file mode 100644
index 00000000000..fd4fe9abfcd
--- /dev/null
+++ b/dev-python/rpy/rpy-2.5.4.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 flag-o-matic
+
+MYSLOT=2
+MY_PN=${PN}${MYSLOT}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python interface to the R Programming Language"
+HOMEPAGE="http://rpy.sourceforge.net/ https://pypi.python.org/pypi/rpy2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="AGPL-3 GPL-2 LGPL-2.1 MPL-1.1"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-lang/R-3
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.13.1[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/singledispatch[${PYTHON_USEDEP}]' python2_7 python3_3) )"
+
+# ggplot2 is an optional test dep but not in portage
+S="${WORKDIR}/${MY_P}"
+
+# Tarball absent of doc files in doc folder
+# https://bitbucket.org/lgautier/rpy2/issue/229/
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ ${PYTHON} -m 'rpy2.tests' || die
+}
diff --git a/dev-python/rpy/rpy-2.6.0.ebuild b/dev-python/rpy/rpy-2.6.0.ebuild
new file mode 100644
index 00000000000..ea9c6e695ee
--- /dev/null
+++ b/dev-python/rpy/rpy-2.6.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 flag-o-matic
+
+MYSLOT=2
+MY_PN=${PN}${MYSLOT}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python interface to the R Programming Language"
+HOMEPAGE="http://rpy.sourceforge.net/ https://pypi.python.org/pypi/rpy2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="AGPL-3 GPL-2 LGPL-2.1 MPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-lang/R-3
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.13.1[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ virtual/python-singledispatch[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/singledispatch[${PYTHON_USEDEP}]' python2_7 python3_3) )"
+
+# ggplot2 is an optional test dep but not in portage
+S="${WORKDIR}/${MY_P}"
+
+# Tarball absent of doc files in doc folder
+# https://bitbucket.org/lgautier/rpy2/issue/229/
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ ${PYTHON} -m 'rpy2.tests' || die
+}
diff --git a/dev-python/rpy/rpy-2.6.1.ebuild b/dev-python/rpy/rpy-2.6.1.ebuild
new file mode 100644
index 00000000000..de5f7205b05
--- /dev/null
+++ b/dev-python/rpy/rpy-2.6.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 flag-o-matic
+
+MYSLOT=2
+MY_PN=${PN}${MYSLOT}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python interface to the R Programming Language"
+HOMEPAGE="http://rpy.sourceforge.net/ https://pypi.python.org/pypi/rpy2"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="AGPL-3 GPL-2 LGPL-2.1 MPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ >=dev-lang/R-3
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.13.1[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ virtual/python-singledispatch[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( $(python_gen_cond_dep 'dev-python/singledispatch[${PYTHON_USEDEP}]' python2_7 python3_3) )"
+
+# ggplot2 is an optional test dep but not in portage
+S="${WORKDIR}/${MY_P}"
+
+# Tarball absent of doc files in doc folder
+# https://bitbucket.org/rpy2/rpy2/issues/229
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ ${PYTHON} -m 'rpy2.tests' || die
+}
diff --git a/dev-python/rpyc/Manifest b/dev-python/rpyc/Manifest
new file mode 100644
index 00000000000..be397d9c47d
--- /dev/null
+++ b/dev-python/rpyc/Manifest
@@ -0,0 +1 @@
+DIST rpyc-3.2.3.tar.gz 48371 SHA256 80782d78863bc4f803b2534452dc37c5dcb6e85230af77fe0ce5a0206e37f661 SHA512 b0cc7a9429b062b0b796a7e4f6bc8056041db7e63b04dc8cbc67c5e2f343f1c1299e0e3fc88ff651f484caf5d3305cb4346523dee555e8315c9a1e1141da8b28 WHIRLPOOL 4fc6383571bb84aaed7c6e1b360c2e9b55c40f3ba2a7ca9dfd41527b889f3713003f5286edda625fcfbe4e293854389ddff437f54d18188187b3fd2a83a35cbe
diff --git a/dev-python/rpyc/metadata.xml b/dev-python/rpyc/metadata.xml
new file mode 100644
index 00000000000..f485ab29dd3
--- /dev/null
+++ b/dev-python/rpyc/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>Remote python call</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">rpyc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rpyc/rpyc-3.2.3-r1.ebuild b/dev-python/rpyc/rpyc-3.2.3-r1.ebuild
new file mode 100644
index 00000000000..a542fc7c7ce
--- /dev/null
+++ b/dev-python/rpyc/rpyc-3.2.3-r1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Remote Python Call (RPyC), a transparent and symmetric RPC library"
+HOMEPAGE="http://rpyc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/rsa/Manifest b/dev-python/rsa/Manifest
new file mode 100644
index 00000000000..124f0b9ae6a
--- /dev/null
+++ b/dev-python/rsa/Manifest
@@ -0,0 +1 @@
+DIST rsa-3.1.4.tar.gz 36181 SHA256 e2b0b05936c276b1edd2e1525553233b666df9e29b5c3ba223eed738277c82a0 SHA512 b6ff7b91909b58359bda5da99ca4297337da5985c5430d2e96663c8bcf599b2180d54afa3316d4c3b11a8f79ddcb1f41d6942a0c8db2f0d27221c3aee132f3c1 WHIRLPOOL bc71d736cb72d222243055ac336ed3d42fde680ad0bc8261802926adfc3c9d8f1321351fbd951c495da843cc6c16bde9dbd27cb235a870dc8817ebfd35c55c7b
diff --git a/dev-python/rsa/metadata.xml b/dev-python/rsa/metadata.xml
new file mode 100644
index 00000000000..310d6b44cf3
--- /dev/null
+++ b/dev-python/rsa/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">rsa</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rsa/rsa-3.1.4-r1.ebuild b/dev-python/rsa/rsa-3.1.4-r1.ebuild
new file mode 100644
index 00000000000..d9e2a43530b
--- /dev/null
+++ b/dev-python/rsa/rsa-3.1.4-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure-Python RSA implementation"
+HOMEPAGE="http://stuvel.eu/rsa http://pypi.python.org/pypi/rsa"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/pyasn1-0.0.13[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-0.6.10[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ )
+ "
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/rst2pdf/Manifest b/dev-python/rst2pdf/Manifest
new file mode 100644
index 00000000000..45714eb79ac
--- /dev/null
+++ b/dev-python/rst2pdf/Manifest
@@ -0,0 +1 @@
+DIST rst2pdf-0.93.tar.gz 1301775 SHA256 3af44283ced19030a8286e8f8d71106ca6c78efe4bc95e9af42d678c363efcbc SHA512 75423b75504d31995d449f4e90fa73ce755bf167d18a38f42f73fe6d76b4d0e5c38bc28cd2cce5a3e485a0a8c5529667d689dc4b41a125c14c9e023b7d6ff7d3 WHIRLPOOL 5203ca75c86440e97af92a5001fc5871308afc662056551797df02356654c9cc6ba08d96a301140fe1cfaf4dd48fefb213bd87b31811143489a1f380dc34bc9d
diff --git a/dev-python/rst2pdf/files/rst2pdf-0.93-fix-logging.patch b/dev-python/rst2pdf/files/rst2pdf-0.93-fix-logging.patch
new file mode 100644
index 00000000000..52acf04171d
--- /dev/null
+++ b/dev-python/rst2pdf/files/rst2pdf-0.93-fix-logging.patch
@@ -0,0 +1,26 @@
+--- rst2pdf/log.py
++++ rst2pdf/log.py
+@@ -4,11 +4,12 @@
+ import logging
+ import sys
+
+-logging.basicConfig(
+- format='[%(levelname)s] %(filename)s:%(lineno)d %(message)s',
+- level=logging.WARNING)
+-
+ log = logging.getLogger('rst2pdf')
++_fmt = logging.Formatter('[%(levelname)s] %(filename)s:%(lineno)d %(message)s')
++_hdlr = logging.StreamHandler()
++_hdlr.setFormatter(_fmt)
++log.addHandler(_hdlr)
++log.setLevel(logging.WARNING)
+
+ def nodeid(node):
+ """Given a node, tries to return a way to see where it was in the
+@@ -23,4 +24,4 @@
+ if node.source: fname=str(node.source)
+ except:
+ pass
+- return 'near line %s in file %s'%(line,fname)
+\ No newline at end of file
++ return 'near line %s in file %s'%(line,fname)
diff --git a/dev-python/rst2pdf/metadata.xml b/dev-python/rst2pdf/metadata.xml
new file mode 100644
index 00000000000..792f0123242
--- /dev/null
+++ b/dev-python/rst2pdf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">rst2pdf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rst2pdf/rst2pdf-0.93-r2.ebuild b/dev-python/rst2pdf/rst2pdf-0.93-r2.ebuild
new file mode 100644
index 00000000000..5cedc238598
--- /dev/null
+++ b/dev-python/rst2pdf/rst2pdf-0.93-r2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Tool for transforming reStructuredText to PDF using ReportLab"
+HOMEPAGE="http://rst2pdf.ralsina.com.ar/ http://pypi.python.org/pypi/rst2pdf"
+SRC_URI="http://rst2pdf.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ppc ~ppc64 x86"
+IUSE="svg"
+
+DEPEND="dev-python/docutils[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/pdfrw[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/reportlab-2.6[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ svg? ( media-gfx/svg2rlg )"
+RDEPEND="${DEPEND}"
+# >=reportlab-2.6: https://code.google.com/p/rst2pdf/issues/detail?id=474
+
+python_prepare_all() {
+ epatch "${FILESDIR}/${P}-fix-logging.patch"
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ dodoc doc/*.pdf
+ doman doc/rst2pdf.1
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "rst2pdf can work with the following packages for additional functionality:"
+ elog " dev-python/sphinx - versatile documentation creation"
+ elog " dev-python/pythonmagick - image processing with ImageMagick"
+ elog " dev-python/matplotlib - mathematical formulae"
+ elog "It can also use wordaxe for hyphenation, but this package is not"
+ elog "available in the portage tree yet. Please refer to the manual"
+ elog "installed in /usr/share/doc/${PF}/ for more information."
+ fi
+}
diff --git a/dev-python/rtf2xml/Manifest b/dev-python/rtf2xml/Manifest
new file mode 100644
index 00000000000..5fdcbc0de05
--- /dev/null
+++ b/dev-python/rtf2xml/Manifest
@@ -0,0 +1 @@
+DIST rtf2xml-1.33.tar.gz 421817 SHA256 8dbfd3b8f266568775c2de812620288543771135212a836d1dd43d5dd45575a0 SHA512 ffca0f091319432e7d3f3b94fe8946a4665b026fe91ad90f3b9fa8671e3d7c31b71739df3655e368c44c26ad3b5d0e6a5b80ebd58856fb135253337b6b703031 WHIRLPOOL ebb8f284b0f257b2de2ef89b25e3f6cda320f398a98e47a0ed0a5740537351dbf5cbc4af7a5d4208d5da3c5fbf7c3c0c1ace4e60719e379210d85830532ee04b
diff --git a/dev-python/rtf2xml/metadata.xml b/dev-python/rtf2xml/metadata.xml
new file mode 100644
index 00000000000..9e010f32aff
--- /dev/null
+++ b/dev-python/rtf2xml/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">rtf2xml</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rtf2xml/rtf2xml-1.33-r1.ebuild b/dev-python/rtf2xml/rtf2xml-1.33-r1.ebuild
new file mode 100644
index 00000000000..cc42f6d5bfe
--- /dev/null
+++ b/dev-python/rtf2xml/rtf2xml-1.33-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Converts a Microsoft RTF file to structured XML"
+HOMEPAGE="http://rtf2xml.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND=""
+RDEPEND=""
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/rtgraph/Manifest b/dev-python/rtgraph/Manifest
new file mode 100644
index 00000000000..90c5c58331b
--- /dev/null
+++ b/dev-python/rtgraph/Manifest
@@ -0,0 +1 @@
+DIST rtgraph-0.70.tar.gz 16141 SHA256 e8030cfb63dcd13aa4eca08ea3c5b90f97678fcd5a3be1fecd65e124d93b397a SHA512 73d226ba09a658f6957fa82e4956de967ef7b02ca08ac1e33a16c1c0ffe1426afef35e7c720342524c6389e42d994db9ff3404d413ddec5168980e2e1982ea34 WHIRLPOOL 02bc67d436202be8e772385ddf2146f62c63f600db7186b825c111d2b46feb0ed08f7536653b45d175fbacb8bc59bf668c43d72bbddc4f185ff4ce7db0229a7f
diff --git a/dev-python/rtgraph/metadata.xml b/dev-python/rtgraph/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/rtgraph/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/rtgraph/rtgraph-0.70-r1.ebuild b/dev-python/rtgraph/rtgraph-0.70-r1.ebuild
new file mode 100644
index 00000000000..7f367bdfd7f
--- /dev/null
+++ b/dev-python/rtgraph/rtgraph-0.70-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Widgets for graphing data in real-time using PyGTK, and UI components for controlling the graphs"
+HOMEPAGE="http://navi.cx/svn/misc/trunk/rtgraph/web/index.html"
+SRC_URI="http://navi.picogui.org/releases/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/pygtk:2[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if use examples; then
+ mkdir examples || die
+ mv ./{cpu_meter.py,graph_ui.py,isometric_graph.py,line_graph.py,polar_graph.py,tweak_graph.py} examples || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/rtslib-fb/Manifest b/dev-python/rtslib-fb/Manifest
new file mode 100644
index 00000000000..22ef9aa7079
--- /dev/null
+++ b/dev-python/rtslib-fb/Manifest
@@ -0,0 +1 @@
+DIST rtslib-fb-2.1.47.tar.gz 27131 SHA256 63348b0c88b542caa0729f8d3fa94623c4c616ed8e22757b41acf456928e576a SHA512 ada6a7dba7fe7172389c53f72e9941b715b2c49487acf32a66f247f5d258bc0568b6dae33fcd27f869b910c504ca434e85f8aa0cc670aeefdc4ce76d8bb734f4 WHIRLPOOL c613fb816f016f7867fc105ad0a2722bfb33ae544ec8ebce1adebe654fa2c200cd1ba848db302ab3eb1808705c0f5e9352872ecbfcd66def6ac913fd3269844b
diff --git a/dev-python/rtslib-fb/metadata.xml b/dev-python/rtslib-fb/metadata.xml
new file mode 100644
index 00000000000..42140b4d7f4
--- /dev/null
+++ b/dev-python/rtslib-fb/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A Python object API for managing the Linux LIO kernel target
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">rtslib-fb</remote-id>
+ <remote-id type="github">agrover/rtslib-fb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/rtslib-fb/rtslib-fb-2.1.47.ebuild b/dev-python/rtslib-fb/rtslib-fb-2.1.47.ebuild
new file mode 100644
index 00000000000..c660de9cb9f
--- /dev/null
+++ b/dev-python/rtslib-fb/rtslib-fb-2.1.47.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python object API for managing the Linux LIO kernel target"
+HOMEPAGE="https://github.com/agrover/rtslib-fb"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/rtslib/metadata.xml b/dev-python/rtslib/metadata.xml
new file mode 100644
index 00000000000..59fc80b97cf
--- /dev/null
+++ b/dev-python/rtslib/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>cluster</herd>
+ <maintainer>
+ <email>alexxy@gentoo.org</email>
+ <name>Alexey Shvetsov</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/rtslib/rtslib-9999.ebuild b/dev-python/rtslib/rtslib-9999.ebuild
new file mode 100644
index 00000000000..4902bf63ed2
--- /dev/null
+++ b/dev-python/rtslib/rtslib-9999.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI="git://linux-iscsi.org/${PN}.git"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="RTSLib Community Edition for target_core_mod/ConfigFS"
+HOMEPAGE="http://linux-iscsi.org/"
+SRC_URI=""
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="
+ dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/netifaces[${PYTHON_USEDEP}]
+ "
+RDEPEND="${DEPEND}"
+
+src_install() {
+ distutils-r1_src_install
+ keepdir /var/target/fabric
+ insinto /var/target/fabric
+ doins specs/*.spec
+}
diff --git a/dev-python/ruledispatch/Manifest b/dev-python/ruledispatch/Manifest
new file mode 100644
index 00000000000..61c2aeaf284
--- /dev/null
+++ b/dev-python/ruledispatch/Manifest
@@ -0,0 +1 @@
+DIST RuleDispatch-0.5a0.dev-r2306.tar.gz 186405 SHA256 0ce33a6ddda379f8a14c12e43286c31b54a24ccb1cf990078a634722c80d01c6 SHA512 5ee5f22b6ba755e79c108925d321ade10c6a2e06c309e753650385d2dfbeb2830eaeccee6b71338ec38598c877625b95acf21b6059faf91e9f6119e533b133b1 WHIRLPOOL 840b2176f61505619cc9fb615577f839523d68fc644b9b0c48b738744c8f20b0e054c23f951541734f52d605eab8967b0488f23145067b15c78c1127db4bbd33
diff --git a/dev-python/ruledispatch/files/ruledispatch_as_syntax_fix.patch b/dev-python/ruledispatch/files/ruledispatch_as_syntax_fix.patch
new file mode 100644
index 00000000000..47960b3c23f
--- /dev/null
+++ b/dev-python/ruledispatch/files/ruledispatch_as_syntax_fix.patch
@@ -0,0 +1,49 @@
+Added by: Jesus Rivero (Neurogeek)
+On: 25 Jul 2009
+Per Upstream bug: https://bugs.launchpad.net/ubuntu/+source/ruledispatch/+bug/342916
+
+diff -uNr RuleDispatch.orig/src/dispatch/__init__.py RuleDispatch/src/dispatch/__init__.py
+--- RuleDispatch.orig/src/dispatch/__init__.py 2009-07-25 13:25:08.000000000 +0000
++++ RuleDispatch/src/dispatch/__init__.py 2009-07-25 13:27:19.000000000 +0000
+@@ -95,7 +95,7 @@
+ return decorate_assignment(callback)
+
+
+-def as(*decorators):
++def as_(*decorators):
+ """Use Python 2.4 decorators w/Python 2.2+
+
+ Example:
+Files RuleDispatch.orig/src/dispatch/__init__.pyc and RuleDispatch/src/dispatch/__init__.pyc differ
+Files RuleDispatch.orig/src/dispatch/interfaces.pyc and RuleDispatch/src/dispatch/interfaces.pyc differ
+diff -uNr RuleDispatch.orig/src/dispatch/predicates.py RuleDispatch/src/dispatch/predicates.py
+--- RuleDispatch.orig/src/dispatch/predicates.py 2009-07-25 13:25:08.000000000 +0000
++++ RuleDispatch/src/dispatch/predicates.py 2009-07-25 13:27:58.000000000 +0000
+@@ -236,7 +236,7 @@
+
+ return or_, (EXPR_GETTER_ID,)
+
+- [as(classmethod)]
++ [as_(classmethod)]
+ def immediate(klass,seq):
+ for item in seq:
+ if item:
+@@ -260,7 +260,7 @@
+
+ return and_, (EXPR_GETTER_ID,)
+
+- [as(classmethod)]
++ [as_(classmethod)]
+ def immediate(klass,seq):
+ for item in seq:
+ if not item:
+@@ -278,7 +278,7 @@
+ return get(argIds[2])
+ return ifelse, (EXPR_GETTER_ID,)
+
+- [as(classmethod)]
++ [as_(classmethod)]
+ def immediate(klass,seq):
+ if seq[1]: return seq[0]
+ return seq[2]
+
diff --git a/dev-python/ruledispatch/metadata.xml b/dev-python/ruledispatch/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/ruledispatch/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/ruledispatch/ruledispatch-0.5_pre2306-r2.ebuild b/dev-python/ruledispatch/ruledispatch-0.5_pre2306-r2.ebuild
new file mode 100644
index 00000000000..ee6a2828e8e
--- /dev/null
+++ b/dev-python/ruledispatch/ruledispatch-0.5_pre2306-r2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils versionator flag-o-matic
+
+MY_PN="RuleDispatch"
+MY_P="${MY_PN}-$(get_version_component_range 1-2)a0.dev-$(get_version_component_range 3-)"
+MY_P="${MY_P/pre/r}"
+
+DESCRIPTION="Rule-based Dispatching and Generic Functions"
+HOMEPAGE="http://peak.telecommunity.com/"
+# http://svn.eby-sarna.com/RuleDispatch/
+SRC_URI="mirror://gentoo/${MY_P}.tar.gz"
+
+LICENSE="|| ( PSF-2.4 ZPL )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-python/pyprotocols-1.0_pre2306[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_PN}"
+
+PATCHES=( "${FILESDIR}/${PN}_as_syntax_fix.patch" )
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_test() {
+ cd "${BUILD_DIR}/lib" || die
+ # parallel build makes a salad; einfo msg lets us see what's occuring
+ for test in dispatch/tests/test_*.py; do
+ "${PYTHON}" $test && einfo "Tests $test passed under ${EPYTHON}" \
+ || die "Tests failed under ${EPYTHON}"
+ done
+ # doctest appears old and unmaintained, left for just in case
+ # "${PYTHON}" dispatch/tests/doctest.py
+ einfo "Tests passed under ${EPYTHON}"
+}
diff --git a/dev-python/runsnakerun/Manifest b/dev-python/runsnakerun/Manifest
new file mode 100644
index 00000000000..ff9a033c761
--- /dev/null
+++ b/dev-python/runsnakerun/Manifest
@@ -0,0 +1 @@
+DIST RunSnakeRun-2.0.4.tar.gz 447278 SHA256 61d03a13f1dcb3c1829f5a146da1fe0cc0e27947558a51e848b6d469902815ef SHA512 2338d44ea57e7e9610e85dda5b2d806795d259e4e33e57e15f0ff8c938ba3dbcfc6df46d69f2fff3558879dd3b14725fdb7e0da939bf803776dc6bc95618ec24 WHIRLPOOL f8796d96a954b5d1b9556ef4e2113f494520b2a99142677581f1aca131c90bbeb9f1277d7892f6d58a9b750cc5a546e7f4c3b37c4372c31734a23e898a068aed
diff --git a/dev-python/runsnakerun/metadata.xml b/dev-python/runsnakerun/metadata.xml
new file mode 100644
index 00000000000..afc69a78027
--- /dev/null
+++ b/dev-python/runsnakerun/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>swegener@gentoo.org</email>
+ <name>Sven Wegener</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">RunSnakeRun</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/runsnakerun/runsnakerun-2.0.4.ebuild b/dev-python/runsnakerun/runsnakerun-2.0.4.ebuild
new file mode 100644
index 00000000000..a547cd93a8f
--- /dev/null
+++ b/dev-python/runsnakerun/runsnakerun-2.0.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_PN="RunSnakeRun"
+MY_P="${MY_PN}-${PV/_beta/b}"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="GUI Viewer for Python profiling runs"
+HOMEPAGE="http://www.vrplumber.com/programming/runsnakerun/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+ dev-python/squaremap
+ dev-python/wxpython"
+
+S="${WORKDIR}"/${MY_P}
diff --git a/dev-python/sampy/Manifest b/dev-python/sampy/Manifest
new file mode 100644
index 00000000000..d4ec221e134
--- /dev/null
+++ b/dev-python/sampy/Manifest
@@ -0,0 +1 @@
+DIST sampy-1.2.1.tar.gz 63520 SHA256 5c8d913d95cb432c11be29ab42414f05ce13ef16a811b8118d5ff69dceb1fc67 SHA512 a531d797b1ce3539a78cdb6ea9b943adad1537ce4e151925b9ed44513fcff1de625026e2d23abc39cd326f69cf71849124395c3cc874c603ecc60ab14e188d13 WHIRLPOOL 9536e320e983ac1f7e31eb1d4de2ba60834f29dc3000b8b5dd87e70fa6881650b4c2e4cc11478b28046e2cc01974441b1310b4fae76ba550578169cb30ccdf80
diff --git a/dev-python/sampy/metadata.xml b/dev-python/sampy/metadata.xml
new file mode 100644
index 00000000000..0a569a2a9a2
--- /dev/null
+++ b/dev-python/sampy/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ SAMPy is a Python implementation of the Internation Virtual
+ Astronomy Organiztion of the Simple Application
+ Messaging Protocol (with Web Profile support).
+</longdescription>
+<upstream>
+ <remote-id type="pypi">sampy</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/sampy/sampy-1.2.1.ebuild b/dev-python/sampy/sampy-1.2.1.ebuild
new file mode 100644
index 00000000000..2b6ec1c54a6
--- /dev/null
+++ b/dev-python/sampy/sampy-1.2.1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="tk(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Simple Application Messaging Protocol messaging system implementation in Python"
+HOMEPAGE="http://packages.python.org/sampy/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/sancho/Manifest b/dev-python/sancho/Manifest
new file mode 100644
index 00000000000..8c992d59a3e
--- /dev/null
+++ b/dev-python/sancho/Manifest
@@ -0,0 +1 @@
+DIST Sancho-2.4.tar.gz 7962 SHA256 52fdaa6e13e242d0b3be09bac733595a2d6602e0a975d00c72233505a14f35db SHA512 49230ee8a05dbc5bf3d7b3900504f47a3a47f013878e75f93c277610e4d22f9714b9a58a41a779e25b0ddb9c24ff351508c0b72c78fe146b8371024345629e21 WHIRLPOOL 204db0afe5bae499a985b2c41c5b5939a6817c2251a29c39a0797ee26da99195f2a802647586968464f9307ac63283ca6aa2fa4254f753a440436066f6531703
diff --git a/dev-python/sancho/metadata.xml b/dev-python/sancho/metadata.xml
new file mode 100644
index 00000000000..a816521c48d
--- /dev/null
+++ b/dev-python/sancho/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<maintainer>
+ <email>robbat2@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-python/sancho/sancho-2.4-r1.ebuild b/dev-python/sancho/sancho-2.4-r1.ebuild
new file mode 100644
index 00000000000..031675c67a3
--- /dev/null
+++ b/dev-python/sancho/sancho-2.4-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="Sancho-${PV}"
+
+DESCRIPTION="Sancho is a unit testing framework"
+HOMEPAGE="http://www.mems-exchange.org/software/sancho/"
+SRC_URI="http://www.mems-exchange.org/software/files/${PN}/${MY_P}.tar.gz"
+
+LICENSE="CNRI"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ cd test
+ local test test_failure test_failure_count=0
+ for test in *.py; do
+ test_failure="0"
+ ebegin "Testing ${test}"
+ "${PYTHON}" "${test}" > "${test}.output"
+ grep -Eqv "^${test}: .*:$" "${test}.output" && test_failure="1"
+ eend "${test_failure}"
+ if [[ "${test_failure}" == "1" ]]; then
+ ((test_failure_count++))
+ eerror "Failure output for ${test}"
+ cat "${test}.output"
+ fi
+ done
+ if [[ "${test_failure_count}" -gt "0" ]]; then
+ die "${test_failure_count} tests failed"
+ fi
+}
diff --git a/dev-python/sancho/sancho-2.4.ebuild b/dev-python/sancho/sancho-2.4.ebuild
new file mode 100644
index 00000000000..4fb69f347f8
--- /dev/null
+++ b/dev-python/sancho/sancho-2.4.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit distutils
+
+MY_P="Sancho-${PV}"
+
+DESCRIPTION="Sancho is a unit testing framework"
+HOMEPAGE="http://www.mems-exchange.org/software/sancho/"
+SRC_URI="http://www.mems-exchange.org/software/files/${PN}/${MY_P}.tar.gz"
+
+LICENSE="CNRI"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="CHANGES.txt"
+
+src_test() {
+ cd test
+ testing() {
+ local test test_failure test_failure_count=0
+ for test in *.py; do
+ test_failure="0"
+ ebegin "Testing ${test}"
+ PYTHONPATH="../build-${PYTHON_ABI}/lib" "$(PYTHON)" "${test}" > "${test}.output"
+ grep -Eqv "^${test}: .*:$" "${test}.output" && test_failure="1"
+ eend "${test_failure}"
+ if [[ "${test_failure}" == "1" ]]; then
+ ((test_failure_count++))
+ eerror "Failure output for ${test}"
+ cat "${test}.output"
+ fi
+ done
+ if [[ "${test_failure_count}" -gt "0" ]]; then
+ die "${test_failure_count} tests failed with Python ${PYTHON_ABI}"
+ fi
+ }
+ python_execute_function testing
+}
diff --git a/dev-python/scientificpython/Manifest b/dev-python/scientificpython/Manifest
new file mode 100644
index 00000000000..a3ffbf9380d
--- /dev/null
+++ b/dev-python/scientificpython/Manifest
@@ -0,0 +1,3 @@
+DIST ScientificPython-2.9.1.tar.gz 595239 SHA256 b45305b03d8238fe1be74d6bbd5541d452d9705ab15069dcd506d38e137e9c5c SHA512 08c609d9204088fa1f9a2563f5321ed7e248469e44c86b5d5bc56dc3f975854c4e2b266a8e750fbdc858ed58a466487da4fe986c15a077319ab1a73d8e9b0305 WHIRLPOOL b731e0aaac972c118519cea9b9076cb449294c3929b4f7baceda69293a1a5c153952b5e46b54e111d1bcdcb2f1ea05162141c8c1f88d284071a7a341218b730d
+DIST ScientificPython-2.9.3.tar.gz 689431 SHA256 a4dfc55c2ec84a0795b0641e5571b79b25a5ef6d92bbb01e934c298ee34b5bc8 SHA512 8633726c8a05f45ac4262dd52213c2dc10148a03b67364d4e50d57953ca410a596f9ba64ee68d3b058dcdc1e7decab21c8b8e9b58e5ac1cf5049cb4588117fa8 WHIRLPOOL 2a7d47770dd1ec7b6eadc85ebdd10ad40f6f3eca873cfc3f4937fdf678d697ac5947e7af9b8caf866b4fe0efb7a2746e684ff8d5775f4f53aafddaed6d110c23
+DIST ScientificPython-2.9.4.tar.gz 688704 SHA256 c397fedf76500dc4c010785a82204a45ee51a04a54fabfb6142d594de14f8639 SHA512 8bd3ce3ead090832582711c25f7d4c7a5a55642ef9a1e845fb68b4b3dba833ba86baf9c444fd9948ce761a5357dbf388a2c1a860a66ee13fdf1f26d1010cc8c8 WHIRLPOOL 7890b534cffa53f258a5db8aa974805055773dc9be5ee9862e9c66f7c07df52e2abb36cc30a07e9bb9c8ee61183f44336643191f41e757ce31fa63773b0df8de
diff --git a/dev-python/scientificpython/files/scientificpython-2.9-mpi.patch b/dev-python/scientificpython/files/scientificpython-2.9-mpi.patch
new file mode 100644
index 00000000000..3140779c74a
--- /dev/null
+++ b/dev-python/scientificpython/files/scientificpython-2.9-mpi.patch
@@ -0,0 +1,40 @@
+--- Src/MPI/compile.py
++++ Src/MPI/compile.py
+@@ -4,7 +4,7 @@
+ # Normally nothing needs to be changed below
+ import distutils
+ import distutils.sysconfig
+-import os, sys
++import os, subprocess, sys
+ from Scientific import N
+
+ cfgDict = distutils.sysconfig.get_config_vars()
+@@ -32,16 +32,16 @@
+ items[i] = os.path.join(frameworkdir[0], items[i])
+ linkforshared = ' '.join(items)
+
+-cmd = '%s %s -o mpipython -I%s %s %s -L%s -lpython%s %s %s' % \
+- (mpicompiler,
+- linkforshared,
+- cfgDict['INCLUDEPY'],
+- extra_compile_args,
+- sources,
+- cfgDict['LIBPL'],
+- cfgDict['VERSION'],
+- cfgDict['LIBS'],
+- cfgDict['LIBM'])
++cmd = [mpicompiler]
++cmd.extend(linkforshared.split())
++cmd.extend(os.environ.get("CFLAGS", "").split())
++cmd.extend(os.environ.get("LDFLAGS", "").split())
++cmd.extend(["-o", "mpipython"])
++cmd.extend(["-I" + x for x in cfgDict['INCLUDEPY'].split()])
++cmd.extend(["-I../../Include"])
++cmd.extend(extra_compile_args.split())
++cmd.extend(sources.split())
++cmd.extend(["-lpython%s" % cfgDict['VERSION']])
+
+-print 'cmd = ', cmd
+-os.system(cmd)
++print 'cmd =', " ".join(cmd)
++sys.exit(subprocess.call(cmd))
diff --git a/dev-python/scientificpython/files/scientificpython-2.9.1-mpi-netcdf.patch b/dev-python/scientificpython/files/scientificpython-2.9.1-mpi-netcdf.patch
new file mode 100644
index 00000000000..622032d4d17
--- /dev/null
+++ b/dev-python/scientificpython/files/scientificpython-2.9.1-mpi-netcdf.patch
@@ -0,0 +1,29 @@
+--- setup.py
++++ setup.py
+@@ -2,7 +2,7 @@
+
+ from distutils.core import setup, Extension
+ from distutils.command.install_headers import install_headers
+-import os, sys, platform
++import os, sys, platform, subprocess
+ from glob import glob
+
+ class Dummy:
+@@ -103,13 +103,16 @@
+ netcdf_include = os.path.join(netcdf_prefix, 'include')
+ netcdf_h_file = os.path.join(netcdf_prefix, 'include', 'netcdf.h')
+ netcdf_lib = os.path.join(netcdf_prefix, 'lib')
++ mpi_cflags = subprocess.Popen(["mpicc", "-showme:compile"], stdout=subprocess.PIPE).communicate()[0].rstrip().split()
++ mpi_ldflags = subprocess.Popen(["mpicc", "-showme:link"], stdout=subprocess.PIPE).communicate()[0].rstrip().split()
+ ext_modules = [Extension('Scientific_netcdf',
+ ['Src/Scientific_netcdf.c'],
+ include_dirs=['Include', netcdf_include]
+ + arrayobject_h_include,
+ library_dirs=[netcdf_lib],
+ libraries = ['netcdf'],
+- extra_compile_args=extra_compile_args)]
++ extra_compile_args=extra_compile_args + mpi_cflags,
++ extra_link_args=mpi_ldflags)]
+
+ try:
+ # Add code for including documentation in Mac packages
diff --git a/dev-python/scientificpython/files/scientificpython-2.9.3-mpi-netcdf.patch b/dev-python/scientificpython/files/scientificpython-2.9.3-mpi-netcdf.patch
new file mode 100644
index 00000000000..c9672948f2f
--- /dev/null
+++ b/dev-python/scientificpython/files/scientificpython-2.9.3-mpi-netcdf.patch
@@ -0,0 +1,43 @@
+From 71a5e881290c1cec2506a346e2740a1b821c36aa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 13 Mar 2014 15:29:33 +0100
+Subject: [PATCH] Include MPI cflags/ldflags for netcdf.
+
+---
+ setup.py | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 7f01656..71ac92a 100644
+--- a/setup.py
++++ b/setup.py
+@@ -2,7 +2,7 @@
+
+ from distutils.core import setup, Extension
+ from distutils.command.install_headers import install_headers
+-import os, sys, platform
++import os, sys, platform, subprocess
+ from glob import glob
+
+ class Dummy:
+@@ -92,13 +92,16 @@ else:
+ netcdf_include = os.path.join(netcdf_prefix, 'include')
+ netcdf_h_file = os.path.join(netcdf_prefix, 'include', 'netcdf.h')
+ netcdf_lib = os.path.join(netcdf_prefix, 'lib')
++ mpi_cflags = subprocess.Popen(["mpicc", "-showme:compile"], stdout=subprocess.PIPE).communicate()[0].rstrip().split()
++ mpi_ldflags = subprocess.Popen(["mpicc", "-showme:link"], stdout=subprocess.PIPE).communicate()[0].rstrip().split()
+ ext_modules = [Extension('Scientific._netcdf',
+ ['Scientific/_netcdf.c'],
+ include_dirs=['Include', netcdf_include]
+ + numpy_include,
+ library_dirs=[netcdf_lib],
+ libraries = ['netcdf'],
+- extra_compile_args=extra_compile_args)]
++ extra_compile_args=extra_compile_args + mpi_cflags,
++ extra_link_args=mpi_ldflags)]
+
+ try:
+ # Add code for including documentation in Mac packages
+--
+1.9.0
+
diff --git a/dev-python/scientificpython/metadata.xml b/dev-python/scientificpython/metadata.xml
new file mode 100644
index 00000000000..60d277ea12f
--- /dev/null
+++ b/dev-python/scientificpython/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <herd>python</herd>
+ <longdescription lang="en">
+ ScientificPython is a collection of Python modules that are useful for
+ scientific computing. In this collection you will find modules that
+ cover basic geometry (vectors, tensors, transformations, vector and
+ tensor fields), quaternions, automatic derivatives, linear
+ interpolation, polynomials, elementary statistics, nonlinear
+ least-squares fits, unit calculations, Fortran-compatible text
+ formatting, 3D visualization via VRML, and two Tk widgets for simple
+ line plots and 3D wireframe models.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/scientificpython/scientificpython-2.9.1.ebuild b/dev-python/scientificpython/scientificpython-2.9.1.ebuild
new file mode 100644
index 00000000000..b8619890c09
--- /dev/null
+++ b/dev-python/scientificpython/scientificpython-2.9.1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*"
+
+inherit distutils eutils
+
+MY_PN="ScientificPython"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Scientific Module for Python"
+DOWNLOAD_NUMBER="3420"
+SRC_URI="http://sourcesup.cru.fr/frs/download.php/${DOWNLOAD_NUMBER}/${MY_P}.tar.gz"
+HOMEPAGE="http://sourcesup.cru.fr/projects/scientific-py/"
+
+LICENSE="CeCILL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
+IUSE="doc mpi test"
+
+RDEPEND="
+ <dev-python/numpy-1.9
+ dev-python/pyro:3
+ sci-libs/netcdf
+ mpi? ( virtual/mpi )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose )"
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
+
+PYTHON_MODNAME="Scientific"
+
+src_prepare() {
+ distutils_src_prepare
+ epatch "${FILESDIR}/${PN}-2.9-mpi.patch"
+ use mpi && epatch "${FILESDIR}/${P}-mpi-netcdf.patch"
+}
+
+src_compile() {
+ distutils_src_compile
+
+ if use mpi; then
+ cd Src/MPI
+ building_of_mpipython() {
+ PYTHONPATH="$(ls -d ../../build-${PYTHON_ABI}/lib*)" "$(PYTHON)" compile.py
+ mv -f mpipython mpipython-${PYTHON_ABI}
+ }
+ python_execute_function \
+ --action-message 'Building of mpipython with $(python_get_implementation) $(python_get_version)' \
+ --failure-message 'Building of mpipython failed with $(python_get_implementation) $(python_get_version)' \
+ building_of_mpipython
+ fi
+}
+
+src_test() {
+ cd Tests
+ python_execute_nosetests -P '$(ls -d ../build-${PYTHON_ABI}/lib.*)'
+}
+
+src_install() {
+ distutils_src_install
+ # do not install bsp related stuff, since we don't compile the interface
+ dodoc README README.MPI Doc/CHANGELOG || die "dodoc failed"
+ insinto /usr/share/doc/${PF}
+ doins Examples/{demomodule.c,netcdf_demo.py} || die "doins examples failed"
+
+ if use mpi; then
+ installation_of_mpipython() {
+ dobin Src/MPI/mpipython-${PYTHON_ABI}
+ }
+ python_execute_function -q installation_of_mpipython
+ python_generate_wrapper_scripts "${ED}usr/bin/mpipython"
+ doins Examples/mpi.py || die "doins mpi example failed failed"
+ fi
+
+ if use doc; then
+ dohtml Doc/Reference/* || die "dohtml failed"
+ fi
+}
diff --git a/dev-python/scientificpython/scientificpython-2.9.3.ebuild b/dev-python/scientificpython/scientificpython-2.9.3.ebuild
new file mode 100644
index 00000000000..805e26d45d4
--- /dev/null
+++ b/dev-python/scientificpython/scientificpython-2.9.3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="ScientificPython"
+MY_P="${MY_PN}-${PV}"
+DOWNLOAD_NUMBER=4425
+
+DESCRIPTION="Scientific Module for Python"
+SRC_URI="http://sourcesup.cru.fr/frs/download.php/${DOWNLOAD_NUMBER}/${MY_P}.tar.gz"
+HOMEPAGE="http://sourcesup.cru.fr/projects/scientific-py/"
+
+LICENSE="CeCILL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc mpi test"
+
+RDEPEND="
+ <dev-python/numpy-1.9[${PYTHON_USEDEP}]
+ dev-python/pyro:3[${PYTHON_USEDEP}]
+ sci-libs/netcdf
+ mpi? ( virtual/mpi )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/${PN}-2.9-mpi.patch )
+DOCS=( README README.MPI Doc/CHANGELOG Examples/demomodule.c Examples/netcdf_demo.py )
+
+python_prepare_all() {
+ use mpi && PATCHES+=( "${FILESDIR}"/${PN}-2.9.3-mpi-netcdf.patch )
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use mpi; then
+ cd Src/MPI || die
+ ${PYTHON} compile.py || die
+ mv -f mpipython mpipython-${EPYTHON} || die
+ fi
+}
+
+python_test() {
+ cd "${S}"/Tests || die
+ python_foreach_impl nosetests
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ if use mpi; then
+ cd Src/MPI || die
+ python_newexe mpipython-${EPYTHON} mpipython
+ fi
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( Doc/Reference/. )
+ use mpi && EXAMPLES=( Examples/mpi.py )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/scientificpython/scientificpython-2.9.4.ebuild b/dev-python/scientificpython/scientificpython-2.9.4.ebuild
new file mode 100644
index 00000000000..93af0d21a04
--- /dev/null
+++ b/dev-python/scientificpython/scientificpython-2.9.4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="ScientificPython"
+MY_P="${MY_PN}-${PV}"
+DOWNLOAD_NUMBER=4570
+
+DESCRIPTION="Scientific Module for Python"
+SRC_URI="http://sourcesup.cru.fr/frs/download.php/${DOWNLOAD_NUMBER}/${MY_P}.tar.gz"
+HOMEPAGE="http://sourcesup.cru.fr/projects/scientific-py/"
+
+LICENSE="CeCILL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc mpi test"
+
+RDEPEND="
+ <dev-python/numpy-1.9[${PYTHON_USEDEP}]
+ dev-python/pyro:3[${PYTHON_USEDEP}]
+ sci-libs/netcdf
+ mpi? ( virtual/mpi )"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/${PN}-2.9-mpi.patch )
+DOCS=( README README.MPI Doc/CHANGELOG Examples/demomodule.c Examples/netcdf_demo.py )
+
+python_prepare_all() {
+ use mpi && PATCHES+=( "${FILESDIR}"/${PN}-2.9.3-mpi-netcdf.patch )
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use mpi; then
+ cd Src/MPI || die
+ ${PYTHON} compile.py || die
+ mv -f mpipython mpipython-${EPYTHON} || die
+ fi
+}
+
+python_test() {
+ cd "${S}"/Tests || die
+ python_foreach_impl nosetests
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ if use mpi; then
+ cd Src/MPI || die
+ python_newexe mpipython-${EPYTHON} mpipython
+ fi
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( Doc/Reference/. )
+ use mpi && EXAMPLES=( Examples/mpi.py )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/scimath/Manifest b/dev-python/scimath/Manifest
new file mode 100644
index 00000000000..cca091b1120
--- /dev/null
+++ b/dev-python/scimath/Manifest
@@ -0,0 +1 @@
+DIST scimath-4.1.2.tar.gz 119399 SHA256 f175ba482dbd4fa8154c6cb44ce8a582b0724c174b401642319f2316af70147e SHA512 2ceeeca5402da2b8745e0af5dac6a470c47b80529ec56aeb758cea815785be8a38b4ee3a052780c532b474acc4bf36474dd67c802a94971f3010148987c24257 WHIRLPOOL 3e5ef8135086a323429994d1831124d3912b1e765ef65610bd6bdd94ee18a170fd90bc4a3f6f8fa9cc026c635ce368a6c8eb79a3a47bb58db03df6507cc58c5b
diff --git a/dev-python/scimath/metadata.xml b/dev-python/scimath/metadata.xml
new file mode 100644
index 00000000000..67f15cfd0d0
--- /dev/null
+++ b/dev-python/scimath/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ The SciMath project from the Enthought Tool Suite includes
+ packages to support scientific and mathematical calculations,
+ beyond the capabilities offered by SciPy:
+ * enthought.interpolate
+ * enthought.mathematics
+ * enthought.units
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/scimath/scimath-4.1.2-r1.ebuild b/dev-python/scimath/scimath-4.1.2-r1.ebuild
new file mode 100644
index 00000000000..f7702d61779
--- /dev/null
+++ b/dev-python/scimath/scimath-4.1.2-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Scientific and mathematical tools"
+HOMEPAGE="http://code.enthought.com/projects/sci_math/ http://pypi.python.org/pypi/scimath"
+SRC_URI="http://www.enthought.com/repo/ets/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+RDEPEND=">=dev-python/traits-4.1[${PYTHON_USEDEP}]
+ >=dev-python/traitsui-4.1[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ x11-apps/xhost
+ )"
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # ONE test assumes PYTHONPATH in its own dir!!!
+ PYTHONPATH=build/lib/:build/lib/scimath/interpolate/
+ VIRTUALX_COMMAND="nosetests" virtualmake
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/sclapp/Manifest b/dev-python/sclapp/Manifest
new file mode 100644
index 00000000000..aa7e7a823da
--- /dev/null
+++ b/dev-python/sclapp/Manifest
@@ -0,0 +1 @@
+DIST sclapp-0.5.3.tar.gz 47646 SHA256 e8e8b60cea9b09acc08f237e92c8b86057bdfd735412aa88cc993fea29031768 SHA512 e615310b2ede517717cf8ef70aca02c070676d71fb8880e381e3cc66d5c6006e47b4dd7c4355dbcb34e76898ce7a7a2e4522454490353970ac185c5d1963e49f WHIRLPOOL 49b940319e4f87dbc973081ec2ec7ad3b445d79a56ab23bf1ba58950ca3010eb5b2fb8666fe26677214bc07cb5bb2a8d7faeec0878e55c27e3644a19cf46d49f
diff --git a/dev-python/sclapp/files/sclapp-0.5.3-testsuite-fix-from-r235.patch b/dev-python/sclapp/files/sclapp-0.5.3-testsuite-fix-from-r235.patch
new file mode 100644
index 00000000000..45965f01b1d
--- /dev/null
+++ b/dev-python/sclapp/files/sclapp-0.5.3-testsuite-fix-from-r235.patch
@@ -0,0 +1,40 @@
+=== modified file 'NEWS'
+--- NEWS 2009-01-14 11:11:28 +0000
++++ NEWS 2009-12-21 14:12:02 +0000
+@@ -25,6 +25,9 @@
+
+ (Forest Bond)
+
++ * Fixed output protection test that was failing on some systems.
++ (Forest Bond)
++
+
+ sclapp 0.5.3 2008-07-21
+ =======================
+
+=== modified file 'tests/output_protection.py'
+--- tests/output_protection.py 2008-05-18 21:46:03 +0000
++++ tests/output_protection.py 2009-12-21 14:12:02 +0000
+@@ -109,8 +109,10 @@
+ exceptions = ()):
+ def test_fn():
+ pid = failure_fn(main_fn)
+- assertLogFileContainsExactly('foo', foos)
+- assertLogFileContainsExactly('bar', bars)
++ if foos is not None:
++ assertLogFileContainsExactly('foo', foos)
++ if bars is not None:
++ assertLogFileContainsExactly('bar', bars)
+ for signal in signals:
+ assertSignalCaught(signal, pid)
+ for exception in exceptions:
+@@ -171,7 +173,7 @@
+ 'test_stdout_fails_without_signal_handling_without_output_protection',
+ _stdout_fails,
+ main_without_signal_handling_without_output_protection,
+- 2, 2, ()
++ 2, None, ()
+ )))
+ test_stdout_stderr_fail_without_signal_handling_without_output_protection = (
+ staticmethod(_make_test_fn(
+
diff --git a/dev-python/sclapp/metadata.xml b/dev-python/sclapp/metadata.xml
new file mode 100644
index 00000000000..16bcc9f800a
--- /dev/null
+++ b/dev-python/sclapp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/sclapp/sclapp-0.5.3-r1.ebuild b/dev-python/sclapp/sclapp-0.5.3-r1.ebuild
new file mode 100644
index 00000000000..41d8de2c996
--- /dev/null
+++ b/dev-python/sclapp/sclapp-0.5.3-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Framework for writing simple command-line applications"
+HOMEPAGE="http://forestbond.com/media/docs/${P}.html"
+SRC_URI="http://www.alittletooquiet.net/media/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/pexpect[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-testsuite-fix-from-r235.patch"
+)
+
+src_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/scoop/Manifest b/dev-python/scoop/Manifest
new file mode 100644
index 00000000000..b6a81e4464d
--- /dev/null
+++ b/dev-python/scoop/Manifest
@@ -0,0 +1 @@
+DIST scoop-0.7.0.release.tar.gz 598566 SHA256 5f4630884bc4e2821f79766e57c07b19c5cb1f6a2440bb8f427f0ef2532be908 SHA512 4e8378b6c73ef7d3d2d6ad8387220e0659b12eed008d834fb99a661ff1ff5f6b842e897156cec41119f5c392e341c3e8e5b912f01f0728b585daab46aa07d270 WHIRLPOOL 48427059868c3fe6cc662c40cfb0cd5c11e34c440084d2b3fb0aab951a41c4d43f67a4b78ef3ba2b2ef29a9584587b3767a6b1469d8313df572cf8188a74b300
diff --git a/dev-python/scoop/metadata.xml b/dev-python/scoop/metadata.xml
new file mode 100644
index 00000000000..c699c152e1b
--- /dev/null
+++ b/dev-python/scoop/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>slis@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ SCOOP (Scalable COncurrent Operations in Python) is a distributed task module
+ allowing concurrent parallel programming on various environments, from
+ heterogeneous grids to supercomputers.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">scoop</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/scoop/scoop-0.7.0-r1.ebuild b/dev-python/scoop/scoop-0.7.0-r1.ebuild
new file mode 100644
index 00000000000..978e3e8d352
--- /dev/null
+++ b/dev-python/scoop/scoop-0.7.0-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Distributed Evolutionary Algorithms in Python"
+HOMEPAGE="https://code.google.com/p/scoop/ http://pypi.python.org/pypi/scoop"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.release.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/greenlet-0.3.4
+ >=dev-python/pyzmq-13.1.0"
+DEPEND="${RDEPEND}
+ dev-python/setuptools"
+
+S="${WORKDIR}/${P}.release"
diff --git a/dev-python/scrapy/Manifest b/dev-python/scrapy/Manifest
new file mode 100644
index 00000000000..1856c8064f6
--- /dev/null
+++ b/dev-python/scrapy/Manifest
@@ -0,0 +1,3 @@
+DIST scrapy-0.25.1.tar.gz 986555 SHA256 11e6496b7196239f395c977c432667466cdef6984dff164337bca7aa37049ed5 SHA512 7c1afbf942c06ab6a849fe609ad8d582de5d42041181bb22b2388bfe13ce23438c3c6ce936953f819e4b897aadbf682cc04f8cd0805f44157b10a583c668f924 WHIRLPOOL 692f0e11065d9b149d7bdcdd9414d718f05986767a5cd3632ad3f5db23904b42a5af5609468f2bc321f827d6e3352eb0ce36cb797d68228c608ae8fa57f940c4
+DIST scrapy-1.0.0.tar.gz 1006570 SHA256 3ae419f876902e376abe6de207f91ea383ce1e385d21784965a90617985fb1d6 SHA512 72bd686da3e4d789ca51b5f90f726ece678f64dcbfe7f25cd2c377536ece9ec8c9cf49fc018ef383a910f190a32e46e7894fd165d34e191249f7bd9ae018499f WHIRLPOOL f9b26256c0d0b0ba4d088538b3f6d967eb6f0294312da61adc2d2a790bc4851555f019b1e139f7c3a83b4922065593a41606f155d9b953ded2124e551af2d194
+DIST scrapy-1.0.1.tar.gz 1006619 SHA256 713ffd19616057d10addea2cba92cb6eee1642f59c803942b029cd02baa1be37 SHA512 99a6c99816c94c936c87c3f282bcc3866786b4d1adc57e00c8812c3761ef05279f0ded6746d3fdc947496549d22090f59a22392b207d56b24ca537b0e1e30372 WHIRLPOOL 3e3aef1d5416c009903a6a37df5e3f33237a50555a6dd09bde4ed6fe303473f1ef44501a04754f3d1ab2fe61668c6f7f56d507a77d89060b6fca7054f05af65c
diff --git a/dev-python/scrapy/files/0.25.1-setup.patch b/dev-python/scrapy/files/0.25.1-setup.patch
new file mode 100644
index 00000000000..05727c6d472
--- /dev/null
+++ b/dev-python/scrapy/files/0.25.1-setup.patch
@@ -0,0 +1,40 @@
+https://github.com/scrapy/scrapy/commit/480cfa199475d867cb51cb04ce76ed54809514f6
+https://github.com/scrapy/scrapy/commit/3b64b2449ed2afd3bd4a2173c186fd44c6efac86
+diff --git a/setup.py b/setup.py
+index 6efe640..252068c 100644
+--- a/setup.py
++++ b/setup.py
+@@ -124,7 +124,7 @@ def is_not_module(filename):
+ else:
+ setup_args['install_requires'] = [
+ 'Twisted>=10.0.0',
+- 'w3lib>=1.2',
++ 'w3lib>=1.8.0',
+ 'queuelib',
+ 'lxml',
+ 'pyOpenSSL',
+diff --git a/requirements.txt b/requirements.txt
+index 0df9a55..005b8f4 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -2,6 +2,6 @@ Twisted>=10.0.0
+ lxml
+ pyOpenSSL
+ cssselect>=0.9
+-w3lib>=1.2
++w3lib>=1.8.0
+ queuelib
+ six>=1.5.2
+diff --git a/tox.ini b/tox.ini
+index 20d54b6..38ef6c4 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -48,7 +48,7 @@ deps = (re-based)
+ pyOpenSSL>=0.13.1
+ cssselect>=0.9
+ queuelib>=1.1.1
+- w3lib>=1.5
++ w3lib>=1.8.0
+ # tests requirements
+ mock
+ :HPK:pytest>2.5.2
diff --git a/dev-python/scrapy/metadata.xml b/dev-python/scrapy/metadata.xml
new file mode 100644
index 00000000000..4733256d88a
--- /dev/null
+++ b/dev-python/scrapy/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="boto">Add support for Amazon S3 via <pkg>dev-python/boto</pkg></flag>
+ <flag name="ibl">Use Instace Based Learning alrogirithm for automatic extraction</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">scrapy/scrapy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/scrapy/scrapy-0.25.1.ebuild b/dev-python/scrapy/scrapy-0.25.1.ebuild
new file mode 100644
index 00000000000..ac6644a2ffe
--- /dev/null
+++ b/dev-python/scrapy/scrapy-0.25.1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite(+)"
+
+inherit vcs-snapshot distutils-r1
+
+DESCRIPTION="A high-level Python Screen Scraping framework"
+HOMEPAGE="http://scrapy.org http://pypi.python.org/pypi/Scrapy/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="boto doc ibl test ssl"
+
+RDEPEND=">=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ dev-libs/libxml2[python,${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ ibl? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ boto? ( dev-python/boto[${PYTHON_USEDEP}] )
+ >=dev-python/twisted-core-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-conch-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-mail-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/w3lib-1.6[${PYTHON_USEDEP}]
+ dev-python/queuelib[${PYTHON_USEDEP}]
+ >=dev-python/cssselect-0.9[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/boto[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=net-proxy/mitmproxy-0.10[${PYTHON_USEDEP}]
+ net-ftp/vsftpd )"
+# pytest-twisted listed as a test dep but not in portage.
+# Testsuite currently survives without it, so appears optional
+
+REQUIRED_USE="test? ( ssl boto )"
+
+PATCHES=( "${FILESDIR}"/${PV}-setup.patch )
+
+python_compile_all() {
+ if use doc; then
+ PYTHONPATH="${S}" emake -C docs html || die "emake html failed"
+ fi
+}
+
+python_test() {
+ py.test ${PN} || die "tests failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/scrapy/scrapy-1.0.0.ebuild b/dev-python/scrapy/scrapy-1.0.0.ebuild
new file mode 100644
index 00000000000..59ac85121a1
--- /dev/null
+++ b/dev-python/scrapy/scrapy-1.0.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite(+)"
+
+inherit vcs-snapshot distutils-r1
+
+DESCRIPTION="A high-level Python Screen Scraping framework"
+HOMEPAGE="http://scrapy.org http://pypi.python.org/pypi/Scrapy/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="boto doc ibl test ssl"
+
+RDEPEND=">=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ dev-libs/libxml2[python,${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ ibl? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ boto? ( dev-python/boto[${PYTHON_USEDEP}] )
+ >=dev-python/twisted-core-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-conch-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-mail-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/w3lib-1.8.0[${PYTHON_USEDEP}]
+ dev-python/queuelib[${PYTHON_USEDEP}]
+ >=dev-python/cssselect-0.9[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/boto[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=net-proxy/mitmproxy-0.10.1[${PYTHON_USEDEP}]
+ ~dev-python/netlib-0.10.1[${PYTHON_USEDEP}]
+ dev-python/jmespath[${PYTHON_USEDEP}]
+ dev-python/testfixtures[${PYTHON_USEDEP}]
+ net-ftp/vsftpd )"
+# pytest-twisted listed as a test dep but not in portage.
+# Testsuite currently survives without it, so appears optional
+
+REQUIRED_USE="test? ( ssl boto )"
+
+python_compile_all() {
+ if use doc; then
+ PYTHONPATH="${S}" emake -C docs html || die "emake html failed"
+ fi
+}
+
+python_test() {
+ py.test ${PN} || die "tests failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/scrapy/scrapy-1.0.1.ebuild b/dev-python/scrapy/scrapy-1.0.1.ebuild
new file mode 100644
index 00000000000..16f55ff2179
--- /dev/null
+++ b/dev-python/scrapy/scrapy-1.0.1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite(+)"
+
+inherit vcs-snapshot distutils-r1
+
+DESCRIPTION="A high-level Python Screen Scraping framework"
+HOMEPAGE="http://scrapy.org http://pypi.python.org/pypi/Scrapy/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="boto doc ibl test ssl"
+
+RDEPEND=">=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ dev-libs/libxml2[python,${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ ibl? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ ssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ boto? ( dev-python/boto[${PYTHON_USEDEP}] )
+ >=dev-python/twisted-core-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-conch-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-mail-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-10.0.0[${PYTHON_USEDEP}]
+ >=dev-python/w3lib-1.8.0[${PYTHON_USEDEP}]
+ dev-python/queuelib[${PYTHON_USEDEP}]
+ >=dev-python/cssselect-0.9[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ dev-python/boto[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=net-proxy/mitmproxy-0.10.1[${PYTHON_USEDEP}]
+ dev-python/netlib[${PYTHON_USEDEP}]
+ dev-python/jmespath[${PYTHON_USEDEP}]
+ dev-python/testfixtures[${PYTHON_USEDEP}]
+ net-ftp/vsftpd )"
+# pytest-twisted listed as a test dep but not in portage.
+# Testsuite currently survives without it, so appears optional
+
+REQUIRED_USE="test? ( ssl boto )"
+
+python_compile_all() {
+ if use doc; then
+ PYTHONPATH="${S}" emake -C docs html || die "emake html failed"
+ fi
+}
+
+python_test() {
+ py.test ${PN} || die "tests failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/scripttest/Manifest b/dev-python/scripttest/Manifest
new file mode 100644
index 00000000000..7d557ad8321
--- /dev/null
+++ b/dev-python/scripttest/Manifest
@@ -0,0 +1 @@
+DIST ScriptTest-1.2.tar.gz 7208 SHA256 158c34cfa736288c33177588572c2bb3372b836eb4c90b05222911b4ff976942 SHA512 0dc09e6af5554f38aca6ee45b9afad2fa4c1c53a4d3c43edff95bbd6ea8d57e94bf6b7bdcfd26afff6bf2b10690795bd2816013801911f726c67e8171546cad2 WHIRLPOOL 2d23a9fec63c34bd6cf4a06fa01167a9fc05017950fa05bf39a14b5f44393ca38b11d4c7b6c8285ba49cd1a535520ebd83901fadc41497ce7513899356d935d3
diff --git a/dev-python/scripttest/metadata.xml b/dev-python/scripttest/metadata.xml
new file mode 100644
index 00000000000..7881e9f8727
--- /dev/null
+++ b/dev-python/scripttest/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">ScriptTest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/scripttest/scripttest-1.2-r1.ebuild b/dev-python/scripttest/scripttest-1.2-r1.ebuild
new file mode 100644
index 00000000000..89c076526da
--- /dev/null
+++ b/dev-python/scripttest/scripttest-1.2-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="ScriptTest"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A very small text templating language"
+HOMEPAGE="http://pythonpaste.org/scripttest/ http://pypi.python.org/pypi/ScriptTest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/seaborn/Manifest b/dev-python/seaborn/Manifest
new file mode 100644
index 00000000000..24006cdc711
--- /dev/null
+++ b/dev-python/seaborn/Manifest
@@ -0,0 +1,2 @@
+DIST seaborn-0.5.1.tar.gz 104426 SHA256 8c8f7f1036cf6155be3d987ee23d2eeeed8c272b0803b32b7d524614f8526688 SHA512 bbcdf0625e096b8f41d56521f3e319a64d82632131d80ed1e81144362fe881d9b5df4d3b5a5fa09363b1782897d9ac68d3fc647d82da4e0017c5dba21c897b8d WHIRLPOOL 682a32f2d40a742e87659f27a675c437875a4b4dfcfd8195b774c49ae38f5ad73ee4b73aa00dabab33ccb6015e5eb5326605c897c8b1cac341cc9db0d6143f73
+DIST seaborn-0.6.0.tar.gz 145188 SHA256 e078399b56ed0d53a4aa8bd4d6bd4a9a9deebc0b4acad259d0ef81830affdb68 SHA512 3b7e7c1b72bd55aba012f312b43920044ea011648b4d855f4acd813ae644a75b4c60aa56c35ea759dcd7683bb6d9ea3b4f1209215950a5014ad46ebe04088fb1 WHIRLPOOL 66c9834f982f4a27c1a884bd4c8f73bb718fe0948bc7b3bde86f7d9bd354bbf783e36c576b8e2b0ded50cdf63244f463b9419e808ab70f6d5c2a24e89c570e99
diff --git a/dev-python/seaborn/metadata.xml b/dev-python/seaborn/metadata.xml
new file mode 100644
index 00000000000..13c0d0709aa
--- /dev/null
+++ b/dev-python/seaborn/metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <longdescription lang="en">
+Seaborn is a library for making attractive and informative statistical graphics
+in Python. It is built on top of matplotlib and tightly integrated with the
+PyData stack, including support for numpy and pandas data structures and
+statistical routines from scipy and statsmodels.
+
+Some of the features that seaborn offers are
+
+* Several built-in themes that improve on the default matplotlib aesthetics
+* Tools for choosing color palettes to make beautiful plots that reveal
+ patterns in your data
+* Functions for visualizing univariate and bivariate distributions or for
+ comparing them between subsets of data
+* Tools that fit and visualize linear regression models for different kinds
+ of independent and dependent variables
+* Functions that visualize matrices of data and use clustering algorithms to
+ discover structure in those matrices
+* A function to plot statistical timeseries data with flexible estimation and
+ representation of uncertainty around the estimate
+* High-level abstractions for structuring grids of plots that let you easily
+ build complex visualizations
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">seaborne</remote-id>
+ <remote-id type="github">mwaskom/seaborn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/seaborn/seaborn-0.5.1.ebuild b/dev-python/seaborn/seaborn-0.5.1.ebuild
new file mode 100644
index 00000000000..50675a3099c
--- /dev/null
+++ b/dev-python/seaborn/seaborn-0.5.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Statistical data visualization"
+HOMEPAGE="http://stanford.edu/~mwaskom/software/seaborn/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/patsy[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ VIRTUALX_COMMAND="nosetests"
+ virtualmake --verbosity=3
+}
diff --git a/dev-python/seaborn/seaborn-0.6.0.ebuild b/dev-python/seaborn/seaborn-0.6.0.ebuild
new file mode 100644
index 00000000000..18e22f1910f
--- /dev/null
+++ b/dev-python/seaborn/seaborn-0.6.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Statistical data visualization"
+HOMEPAGE="http://stanford.edu/~mwaskom/software/seaborn/ https://github.com/mwaskom/seaborn"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/patsy[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ VIRTUALX_COMMAND="nosetests"
+ virtualmake --verbosity=3
+}
diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest
new file mode 100644
index 00000000000..8b6505131f1
--- /dev/null
+++ b/dev-python/selenium/Manifest
@@ -0,0 +1,3 @@
+DIST selenium-2.42.1.tar.gz 2512942 SHA256 96ea31c628f1d908572422c7caba074efba86422005a6d43fd55428d20f960c6 SHA512 78278ea33058527ee402ffab3c101d70df2608549753a935ba940e09ca7fb6d2a725a74984475aa1fb297ab88ad38c2358f8ae02fc247a6db31c6ec5cdff6651 WHIRLPOOL e0ff9572a333af9f72fc4f16885d957b022a6f80d2f11a5039292b591405e66a2da314f98171b4e895cd819eb785f40f9f4f509982c083d7383a675e0365aaa0
+DIST selenium-2.45.0.tar.gz 2622200 SHA256 72394ce72928c87d36501a75fcc535737d16654fefd6c216c315158294bcc126 SHA512 c9943ebf9a4b00ebe2bb68514936444e864849e721a016e924cde08dc28883782de8415ae6524b3cdac240ca547298c113ede646fc1645f3f1e9ead893d21490 WHIRLPOOL eb24294a3860bc599b4126f8bf64ad4a0bdaeac534443386732a2932d232ae12107e2e041cb60961a80ed804e74dcf27359aca3b7594a588c889c1e984ec1d94
+DIST selenium-2.46.0.tar.gz 2621186 SHA256 fffce2696f1dfd64662086aac276e657e33953b32e265e34c4d28f5f1787e62c SHA512 58d2bbc2768ccee7c238ed64c0e73d6e56977581ebda5d71a58dfd262e6b724501b49cac11a56fc79b700810ac8f7e09d968f4135f6aed4abf8147eecdce99ea WHIRLPOOL fb537963360abf0950ee71fff2a6db889800692434f4b98412d52249054cbbf177c8e4bdf19ab1640a825f7bee072af2c4a9fcf8dfc9f9c365de4639bf69c063
diff --git a/dev-python/selenium/metadata.xml b/dev-python/selenium/metadata.xml
new file mode 100644
index 00000000000..db4d8b6b09a
--- /dev/null
+++ b/dev-python/selenium/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">selenium</remote-id>
+ <remote-id type="github">SeleniumHQ/selenium</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/selenium/selenium-2.42.1.ebuild b/dev-python/selenium/selenium-2.42.1.ebuild
new file mode 100644
index 00000000000..f4a0a93a3e3
--- /dev/null
+++ b/dev-python/selenium/selenium-2.42.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python language binding for Selenium Remote Control (version 1.0 and 2.0)"
+HOMEPAGE="http://pypi.python.org/pypi/selenium/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 arm x86"
+IUSE="doc"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DOCS=( py/CHANGES py/README )
+DISTUTILS_IN_SOURCE_BUILD=1
+QA_PREBUILT="/usr/lib*/python*/site-packages/${PN}/webdriver/firefox/*/x_ignore_nofocus.so"
diff --git a/dev-python/selenium/selenium-2.45.0.ebuild b/dev-python/selenium/selenium-2.45.0.ebuild
new file mode 100644
index 00000000000..de354a923e9
--- /dev/null
+++ b/dev-python/selenium/selenium-2.45.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python language binding for Selenium Remote Control (version 1.0 and 2.0)"
+HOMEPAGE="http://pypi.python.org/pypi/selenium/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+IUSE="doc"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( py/CHANGES py/README )
+DISTUTILS_IN_SOURCE_BUILD=1
+QA_PREBUILT="/usr/lib*/python*/site-packages/${PN}/webdriver/firefox/*/x_ignore_nofocus.so"
diff --git a/dev-python/selenium/selenium-2.46.0.ebuild b/dev-python/selenium/selenium-2.46.0.ebuild
new file mode 100644
index 00000000000..d7d0e52d74a
--- /dev/null
+++ b/dev-python/selenium/selenium-2.46.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python language binding for Selenium Remote Control (version 1.0 and 2.0)"
+HOMEPAGE="http://pypi.python.org/pypi/selenium/ https://github.com/SeleniumHQ/selenium http://www.seleniumhq.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+IUSE="doc"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( py/CHANGES py/README )
+DISTUTILS_IN_SOURCE_BUILD=1
+QA_PREBUILT="/usr/lib*/python*/site-packages/${PN}/webdriver/firefox/*/x_ignore_nofocus.so"
diff --git a/dev-python/semantic_version/Manifest b/dev-python/semantic_version/Manifest
new file mode 100644
index 00000000000..dfcefcbcd44
--- /dev/null
+++ b/dev-python/semantic_version/Manifest
@@ -0,0 +1 @@
+DIST semantic_version-2.4.1.tar.gz 32260 SHA256 33018ab2807ba395c418b4633993a7572b8a4b3e924823f5828788023b3c9b30 SHA512 b7a2a7d6e3fe19bc79f1545c1de2f44909e65286e8ff91f856b76db255b205da06657d519d64435c3d0a6dfe3d2f86ee1d3be1a19eccefdc313fbc7e5a09031d WHIRLPOOL a4623125bf662fb4a337a7c98258b6a829ff917293fc45b621adbc28afd406dd08c64fbc6c7f3cfa64da4bc9b5ebdcb996ab758fcc6ffc0c22712e71486f8dbe
diff --git a/dev-python/semantic_version/metadata.xml b/dev-python/semantic_version/metadata.xml
new file mode 100644
index 00000000000..6529a29c0fd
--- /dev/null
+++ b/dev-python/semantic_version/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ This small python library provides a few tools to handle SemVer in Python. It follows strictly the 2.0.0 version of the SemVer scheme.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">semantic_version</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/semantic_version/semantic_version-2.4.1.ebuild b/dev-python/semantic_version/semantic_version-2.4.1.ebuild
new file mode 100644
index 00000000000..8cf23d176d5
--- /dev/null
+++ b/dev-python/semantic_version/semantic_version-2.4.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="This small python library provides a few tools to handle SemVer in Python."
+HOMEPAGE="https://pypi.python.org/pypi/semantic_version"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/send2trash/Manifest b/dev-python/send2trash/Manifest
new file mode 100644
index 00000000000..379e2724505
--- /dev/null
+++ b/dev-python/send2trash/Manifest
@@ -0,0 +1 @@
+DIST send2trash-1.3.0.tar.gz 5563 SHA256 33f4461eae831eb09a21b70ca202c2a6dfd83db6bafa1e1ca11b5001e22c58fe SHA512 d308dd06ef7a11ad7bcb5d9195fb52aa0c0b8e76590ef11b1576d14815501c32c48b96167eb0a325e4f27d0dbf77f41c012a128d30c8f05d9d5ebec9967e21f3 WHIRLPOOL 15d286964183ad44ae51dfed29aa97456d5460b68fd176dd021f7d093d8e6e213818df2fd4346554601b5f87ea1f95727248544e2e78094f696dd7d50d0e89cf
diff --git a/dev-python/send2trash/metadata.xml b/dev-python/send2trash/metadata.xml
new file mode 100644
index 00000000000..149121d3eff
--- /dev/null
+++ b/dev-python/send2trash/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Send2Trash</remote-id>
+ <remote-id type="github">hsoft/send2trash</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/send2trash/send2trash-1.3.0.ebuild b/dev-python/send2trash/send2trash-1.3.0.ebuild
new file mode 100644
index 00000000000..e27f139a863
--- /dev/null
+++ b/dev-python/send2trash/send2trash-1.3.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Send2Trash"
+
+DESCRIPTION="Sends files to the Trash (or Recycle Bin)"
+HOMEPAGE="http://hg.hardcoded.net/send2trash https://pypi.python.org/pypi/Send2Trash https://github.com/hsoft/send2trash"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_PN}-${PV}
diff --git a/dev-python/sepolgen/Manifest b/dev-python/sepolgen/Manifest
new file mode 100644
index 00000000000..2d8159aed89
--- /dev/null
+++ b/dev-python/sepolgen/Manifest
@@ -0,0 +1,3 @@
+DIST patchbundle-sepolgen-1.2.1-r1.tar.gz 762 SHA256 f6c83b003df65cd2a11c689cb8a1f37e519bb706de17383fa0d9ff79e80adc11 SHA512 1eb83c118b4c6611c868213b802358c32e6863f2fc68cfed92d32f9e119de1ee9d128c3994bb1b71da1e36f1925d2fb71523498afb63cc3b5d2dd7c9290ebb8d WHIRLPOOL 37dd39a4ef28d8df3d6f2c031df556997ff836d8aa9962d69417dae2dc1ca82bd0d12d21df774231ce28b9f1ec2ecdfff710c452e69ee5de6dc0322b0b24f458
+DIST sepolgen-1.2.1.tar.gz 366214 SHA256 438c246bdc6b3cf1b12116831f4c601aaae6e93decb007dddab212a3c88781b0 SHA512 ec71126eaf6ecb18d989821753c04f3325de2188bafe161deff5733ebb95c3589e06198666f0502169cfa7d3a2b8ec509ff62098dc11b66b4f0883e1d8703a6e WHIRLPOOL efdbbb9771f68921a5fd3824267c7716ca48ab1f40395aea5c27ac4f7f3b8bf71f718da5ada40eed6c1b2de5341f3d5f10c7ad6086b5ac017d4898136ded6fe0
+DIST sepolgen-1.2.2.tar.gz 366343 SHA256 bebda8eeb2d386d26823d724ea320508a02b50828d44aff47c3f907cf54c2324 SHA512 83d56c31a87da8e271d6f436878a61f21c508ed8e26fa71f57ef109f432b10e310520c45bdb027f89a1edae12568d827ce3159bd8b6b9cf07c572b9a7225acee WHIRLPOOL 449f540caf2aa653bf2b2638ef310d2b710503744e1387119a66d3039253f537ea7ba987b0e5887e004f76485b1ae2e4a84c192a2e0e3423c9c8e61d8bb0198b
diff --git a/dev-python/sepolgen/files/0030-default-path-for-tests-also-needed-bug-467264.patch b/dev-python/sepolgen/files/0030-default-path-for-tests-also-needed-bug-467264.patch
new file mode 100644
index 00000000000..c8678604c4f
--- /dev/null
+++ b/dev-python/sepolgen/files/0030-default-path-for-tests-also-needed-bug-467264.patch
@@ -0,0 +1,12 @@
+diff -uNr sepolgen-1.2.1.orig/src/sepolgen/defaults.py sepolgen-1.2.1/src/sepolgen/defaults.py
+--- sepolgen-1.2.1.orig/src/sepolgen/defaults.py 2013-11-04 22:24:13.620024022 +0100
++++ sepolgen-1.2.1/src/sepolgen/defaults.py 2013-11-04 22:25:05.619024133 +0100
+@@ -27,7 +27,7 @@
+ self.config = dict()
+ if not os.path.exists(pathname):
+ self.config_pathname = "(defaults)"
+- self.config["SELINUX_DEVEL_PATH"] = "/usr/share/selinux/default:/usr/share/selinux/mls:/usr/share/selinux/devel"
++ self.config["SELINUX_DEVEL_PATH"] = "/usr/share/selinux/strict/include:/usr/share/selinux/mcs/include:/usr/share/selinux/targeted/include:/usr/share/selinux/mls/include:/usr/share/selinux/default:/usr/share/selinux/mls:/usr/share/selinux/devel"
+ return
+ self.config_pathname = pathname
+ ignore = re.compile(r"^\s*(?:#.+)?$")
diff --git a/dev-python/sepolgen/files/0040-have-test-run-with-PYTHON-variable-python-bug-467264.patch b/dev-python/sepolgen/files/0040-have-test-run-with-PYTHON-variable-python-bug-467264.patch
new file mode 100644
index 00000000000..a039236bf8c
--- /dev/null
+++ b/dev-python/sepolgen/files/0040-have-test-run-with-PYTHON-variable-python-bug-467264.patch
@@ -0,0 +1,16 @@
+diff -uNr sepolgen-1.2.1.orig/tests/Makefile sepolgen-1.2.1/tests/Makefile
+--- sepolgen-1.2.1.orig/tests/Makefile 2013-11-04 22:25:44.704024216 +0100
++++ sepolgen-1.2.1/tests/Makefile 2013-11-04 22:26:09.718024270 +0100
+@@ -1,3 +1,5 @@
++PYTHON ?= /usr/bin/python
++
+ clean:
+ rm -f *~ *.pyc
+ rm -f parser.out parsetab.py
+@@ -6,4 +8,4 @@
+ rm -f output
+
+ test:
+- python run-tests.py
+\ No newline at end of file
++ $(PYTHON) run-tests.py
diff --git a/dev-python/sepolgen/metadata.xml b/dev-python/sepolgen/metadata.xml
new file mode 100644
index 00000000000..0e4542860a1
--- /dev/null
+++ b/dev-python/sepolgen/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>selinux</herd>
+ <longdescription>Python module needed for audit2allow</longdescription>
+ <upstream>
+ <remote-id type="github">SELinuxProject/selinux</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sepolgen/sepolgen-1.2.1-r1.ebuild b/dev-python/sepolgen/sepolgen-1.2.1-r1.ebuild
new file mode 100644
index 00000000000..aced50b9f03
--- /dev/null
+++ b/dev-python/sepolgen/sepolgen-1.2.1-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1 eutils
+
+DESCRIPTION="SELinux policy generation library"
+HOMEPAGE="http://userspace.selinuxproject.org"
+SRC_URI="https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20140506/${P}.tar.gz
+ http://dev.gentoo.org/~swift/patches/sepolgen/patchbundle-${P}-r1.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=">=sys-libs/libselinux-2.0[python]
+ app-admin/setools[python]
+ ${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ EPATCH_MULTI_MSG="Applying sepolgen patches ... " \
+ EPATCH_SUFFIX="patch" \
+ EPATCH_SOURCE="${WORKDIR}/gentoo-patches" \
+ EPATCH_FORCE="yes" \
+ epatch
+
+ epatch_user
+
+ python_copy_sources
+}
+
+src_compile() {
+ :
+}
+
+src_test() {
+ if has_version sec-policy/selinux-base-policy; then
+ invoke_sepolgen_test() {
+ emake test
+ }
+ python_foreach_impl invoke_sepolgen_test
+ else
+ ewarn "Sepolgen requires sec-policy/selinux-base-policy to run tests."
+ fi
+}
+
+src_install() {
+ installation() {
+ emake DESTDIR="${D}" PYTHONLIBDIR="$(python_get_sitedir)" install
+ python_optimize
+ }
+ python_foreach_impl installation
+
+ # Create sepolgen.conf with different devel location definition
+ if [[ -f /etc/selinux/config ]];
+ then
+ local selinuxtype=$(awk -F'=' '/^SELINUXTYPE/ {print $2}' /etc/selinux/config);
+ mkdir -p "${D}"/etc/selinux || die "Failed to create selinux directory";
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/${selinuxtype}/include:/usr/share/selinux/${selinuxtype}" > "${D}"/etc/selinux/sepolgen.conf;
+ else
+ local selinuxtype="${POLICY_TYPES%% *}";
+ if [[ -n "${selinuxtype}" ]];
+ then
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/${selinuxtype}/include:/usr/share/selinux/${selinuxtype}" > "${D}"/etc/selinux/sepolgen.conf;
+ else
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/strict/include:/usr/share/selinux/strict" > "${D}"/etc/selinux/sepolgen.conf;
+ fi
+ fi
+}
diff --git a/dev-python/sepolgen/sepolgen-1.2.2.ebuild b/dev-python/sepolgen/sepolgen-1.2.2.ebuild
new file mode 100644
index 00000000000..9484ac359e6
--- /dev/null
+++ b/dev-python/sepolgen/sepolgen-1.2.2.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1 eutils
+
+MY_P="${P//_/-}"
+
+DESCRIPTION="SELinux policy generation library"
+HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki"
+SRC_URI="https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20150202/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=">=sys-libs/libselinux-2.0[python]
+ app-admin/setools[python]
+ ${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}/0030-default-path-for-tests-also-needed-bug-467264.patch"
+
+ epatch_user
+
+ python_copy_sources
+}
+
+src_compile() {
+ :
+}
+
+src_test() {
+ if has_version sec-policy/selinux-base-policy; then
+ invoke_sepolgen_test() {
+ emake test
+ }
+ python_foreach_impl invoke_sepolgen_test
+ else
+ ewarn "Sepolgen requires sec-policy/selinux-base-policy to run tests."
+ fi
+}
+
+src_install() {
+ installation() {
+ emake DESTDIR="${D}" PYTHONLIBDIR="$(python_get_sitedir)" install
+ python_optimize
+ }
+ python_foreach_impl installation
+
+ # Create sepolgen.conf with different devel location definition
+ if [[ -f /etc/selinux/config ]];
+ then
+ local selinuxtype=$(awk -F'=' '/^SELINUXTYPE/ {print $2}' /etc/selinux/config);
+ mkdir -p "${D}"/etc/selinux || die "Failed to create selinux directory";
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/${selinuxtype}/include:/usr/share/selinux/${selinuxtype}" > "${D}"/etc/selinux/sepolgen.conf;
+ else
+ local selinuxtype="${POLICY_TYPES%% *}";
+ if [[ -n "${selinuxtype}" ]];
+ then
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/${selinuxtype}/include:/usr/share/selinux/${selinuxtype}" > "${D}"/etc/selinux/sepolgen.conf;
+ else
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/strict/include:/usr/share/selinux/strict" > "${D}"/etc/selinux/sepolgen.conf;
+ fi
+ fi
+}
diff --git a/dev-python/sepolgen/sepolgen-9999.ebuild b/dev-python/sepolgen/sepolgen-9999.ebuild
new file mode 100644
index 00000000000..549d87598e2
--- /dev/null
+++ b/dev-python/sepolgen/sepolgen-9999.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1 eutils
+
+MY_P="${P//_/-}"
+MY_RELEASEDATE="20150202"
+
+DESCRIPTION="SELinux policy generation library"
+HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git"
+ S="${WORKDIR}/${MY_P}/${PN}"
+else
+ SRC_URI="https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20150202/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND=">=sys-libs/libselinux-2.0[python]
+ app-admin/setools[python(+)]
+ ${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]] ; then
+ # If needed for live ebuilds please use /etc/portage/patches
+ epatch "${FILESDIR}/0030-default-path-for-tests-also-needed-bug-467264.patch"
+ fi
+
+ epatch_user
+
+ python_copy_sources
+}
+
+src_compile() {
+ :
+}
+
+src_test() {
+ if has_version sec-policy/selinux-base-policy; then
+ invoke_sepolgen_test() {
+ emake test
+ }
+ python_foreach_impl invoke_sepolgen_test
+ else
+ ewarn "Sepolgen requires sec-policy/selinux-base-policy to run tests."
+ fi
+}
+
+src_install() {
+ installation() {
+ emake DESTDIR="${D}" PYTHONLIBDIR="$(python_get_sitedir)" install
+ python_optimize
+ }
+ python_foreach_impl installation
+
+ # Create sepolgen.conf with different devel location definition
+ if [[ -f /etc/selinux/config ]];
+ then
+ local selinuxtype=$(awk -F'=' '/^SELINUXTYPE/ {print $2}' /etc/selinux/config);
+ mkdir -p "${D}"/etc/selinux || die "Failed to create selinux directory";
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/${selinuxtype}/include:/usr/share/selinux/${selinuxtype}" > "${D}"/etc/selinux/sepolgen.conf;
+ else
+ local selinuxtype="${POLICY_TYPES%% *}";
+ if [[ -n "${selinuxtype}" ]];
+ then
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/${selinuxtype}/include:/usr/share/selinux/${selinuxtype}" > "${D}"/etc/selinux/sepolgen.conf;
+ else
+ echo "SELINUX_DEVEL_PATH=/usr/share/selinux/strict/include:/usr/share/selinux/strict" > "${D}"/etc/selinux/sepolgen.conf;
+ fi
+ fi
+}
diff --git a/dev-python/serpent/Manifest b/dev-python/serpent/Manifest
new file mode 100644
index 00000000000..d1fae55ebe4
--- /dev/null
+++ b/dev-python/serpent/Manifest
@@ -0,0 +1,4 @@
+DIST serpent-1.10.tar.gz 10846 SHA256 06f4863c1b2ace6871dcbf69f74d50a08afc8bd427445d1f5c59b03d976e204b SHA512 ff47c9bd6f5dd6bd60f367f3f9215d4f73e13a2156dd4fdd5121d57929aa1826c905ccb0d995b4dedf9a0c94de01dd0e59b144a5c35a5300bf5e6723315b67ce WHIRLPOOL a43cb7f99963ecb4bea16b0c398b59bd87717ad1f455abe48aefd06eed79b9eebbb30cf08ea6884b1981808fd8eba032b9a1cf0a4fd91ac1fdcdf41e5f0a3111
+DIST serpent-1.11.tar.gz 11321 SHA256 ab5df8f28574552bdbaf8d3774e6d0faff62f0aa6d5e6bb33b6b0c46937001ad SHA512 d6c51cc7c5f4f7439dbb134484bef085fc278c1e2f4f84efb35cc7354d862b7522ee5ea7a06280818e6e539e8c4054ba96f4e5779a406cc9780440c0967f0052 WHIRLPOOL 0f479e97f758fba1069abb7643f8379faa60bddf7efc308727aaae3d0cf4e7b52fb316aa959dd52eb8cebb61d554caebe80b4ca9bc0d0a26f8b9f4439425bc16
+DIST serpent-1.7.tar.gz 8799 SHA256 5345587dff787431df668c19de56b74ada02fb893c2d9687572ffecc63d4d33a SHA512 2e885fb06404915506665b2ba6c7fa6dd7a74e31f814fe88f21c847eade5c307f932d45371252d7b690bf95677031a5b5128d9cc5974733dba127e0eab222fa3 WHIRLPOOL 4c3a10fd2519be1ee2d60ae204d949b899e8d77627084ad3ea2eb5b23002a6529cf490ff0503cd5479261ea2fe617b3056518bb6fe838ebc84c008225b9ff10f
+DIST serpent-1.9.tar.gz 9402 SHA256 46311ae0e93c30c3b93e9153ffd6c76e595aaaca9d390f0cda1a750d5957f90f SHA512 27f24f55a2a9af66f7621d1b60b106a6bc76b516faa83b0e995b81ab19ae021e220b96b441d91b31613b82ccba6d64611bbc50356c957bd7c5a701ebf9feba12 WHIRLPOOL 2eeb4e5602674d86be0053f11e9a88c3fc45b5eb232b8acbd67a76047c4d0add102d934fba9aca869e795f066a6a79f0cd5b1de12a25b36e6225e327a88ba69d
diff --git a/dev-python/serpent/metadata.xml b/dev-python/serpent/metadata.xml
new file mode 100644
index 00000000000..cb9922fc2d0
--- /dev/null
+++ b/dev-python/serpent/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">serpent</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/serpent/serpent-1.10.ebuild b/dev-python/serpent/serpent-1.10.ebuild
new file mode 100644
index 00000000000..483d33ab226
--- /dev/null
+++ b/dev-python/serpent/serpent-1.10.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple serialization library based on ast.literal_eval"
+HOMEPAGE="https://pypi.python.org/packages/source/s/serpent/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
diff --git a/dev-python/serpent/serpent-1.11.ebuild b/dev-python/serpent/serpent-1.11.ebuild
new file mode 100644
index 00000000000..483d33ab226
--- /dev/null
+++ b/dev-python/serpent/serpent-1.11.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple serialization library based on ast.literal_eval"
+HOMEPAGE="https://pypi.python.org/packages/source/s/serpent/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
diff --git a/dev-python/serpent/serpent-1.7.ebuild b/dev-python/serpent/serpent-1.7.ebuild
new file mode 100644
index 00000000000..c2e5eb2014d
--- /dev/null
+++ b/dev-python/serpent/serpent-1.7.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple serialization library based on ast.literal_eval"
+HOMEPAGE="https://pypi.python.org/packages/source/s/serpent/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
diff --git a/dev-python/serpent/serpent-1.9.ebuild b/dev-python/serpent/serpent-1.9.ebuild
new file mode 100644
index 00000000000..483d33ab226
--- /dev/null
+++ b/dev-python/serpent/serpent-1.9.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple serialization library based on ast.literal_eval"
+HOMEPAGE="https://pypi.python.org/packages/source/s/serpent/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
diff --git a/dev-python/service_identity/Manifest b/dev-python/service_identity/Manifest
new file mode 100644
index 00000000000..4d5625d2214
--- /dev/null
+++ b/dev-python/service_identity/Manifest
@@ -0,0 +1 @@
+DIST service_identity-14.0.0.tar.gz 26033 SHA256 3105a319a7c558490666694f599be0c377ad54824eefb404cde4ce49e74a4f5a SHA512 d504ad388defb38a86ca82c8ff9582dbb664a929e4b4ee7f6732b2da5326c33b1764384a8d849972f83ae7800c775daf90c1f3fbc61b8d2c29294f44c7cd36d2 WHIRLPOOL bc6f3cba3e3bec83c527df60dc3cd4387d74baab5a88b5c2cb731661804139c78c86074902060b64e402364ac641b4b2617c98448d4a9e6b367dc0f9d6cd5dac
diff --git a/dev-python/service_identity/metadata.xml b/dev-python/service_identity/metadata.xml
new file mode 100644
index 00000000000..9b8cc20e222
--- /dev/null
+++ b/dev-python/service_identity/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">service_identity</remote-id>
+ <remote-id type="github">pyca/service_identity</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/service_identity/service_identity-14.0.0.ebuild b/dev-python/service_identity/service_identity-14.0.0.ebuild
new file mode 100644
index 00000000000..8857b7b8a50
--- /dev/null
+++ b/dev-python/service_identity/service_identity-14.0.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Service identity verification for pyOpenSSL"
+HOMEPAGE="https://github.com/pyca/service_identity"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE=" MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ppc ppc64 s390 sh x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.12[${PYTHON_USEDEP}]
+ >=dev-python/characteristic-14.0.0[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # testsuite not supported by py3.2 which is about to become deprecated
+ if ! [[ "${EPYTHON}" == python3.2 ]]; then
+ py.test --cov service_identity --cov-report term-missing || die "tests failed under ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/setproctitle/Manifest b/dev-python/setproctitle/Manifest
new file mode 100644
index 00000000000..dc79bcb9f0d
--- /dev/null
+++ b/dev-python/setproctitle/Manifest
@@ -0,0 +1 @@
+DIST setproctitle-1.1.8.tar.gz 23208 SHA256 b564cf6488217c7a4632a9fe646fc3a3bea2f9712b4e667e9632b870d1a58211 SHA512 9d0ab8e65afd7e1ac019ea47995498dae1f82d8aebb333dfc4c953e745441cb9a8db942ad8417522d1f9a805bc50ad680f3a37cb4cbbd4214d261d4fed600b20 WHIRLPOOL 4014739eab6ba3d91a15e2c11d9e91ee6a0254a23be1c2f8a7963bc327559a5a7c6197398d6053743a9479562e76873fe47f11a6c810f2c21d3e462440183166
diff --git a/dev-python/setproctitle/metadata.xml b/dev-python/setproctitle/metadata.xml
new file mode 100644
index 00000000000..4f5a535f3b4
--- /dev/null
+++ b/dev-python/setproctitle/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">setproctitle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/setproctitle/setproctitle-1.1.8.ebuild b/dev-python/setproctitle/setproctitle-1.1.8.ebuild
new file mode 100644
index 00000000000..d955b403686
--- /dev/null
+++ b/dev-python/setproctitle/setproctitle-1.1.8.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Allow customization of the process title"
+HOMEPAGE="http://code.google.com/p/py-setproctitle/ http://pypi.python.org/pypi/setproctitle"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+RDEPEND=""
+# on <py2.7 the test suite uses SkipTest from nose,
+# so we need to run it using nose.
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+DOCS=( HISTORY.rst README.rst )
+
+python_prepare_all() {
+ sed -i -e "/pyrun/s:%s'.*):'):" tests/*.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if [[ ${EPYTHON} == python3.* ]]; then
+ # Notes:
+ # -W is not supported by python3.1
+ # -n causes Python to write into hardlinked files
+ 2to3 --no-diffs -w "${BUILD_DIR}"/tests/*.py || die
+ fi
+
+ cd "${BUILD_DIR}" || die
+
+ # prepare embedded executable
+ emake tests/pyrun CC="$(tc-getCC)" \
+ CPPFLAGS="${CPPFLAGS} $(python-config --cflags)" \
+ LDLIBS="${LDLIBS} $(python-config --libs)"
+
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/setuptools-git/Manifest b/dev-python/setuptools-git/Manifest
new file mode 100644
index 00000000000..b0b6f68a178
--- /dev/null
+++ b/dev-python/setuptools-git/Manifest
@@ -0,0 +1,2 @@
+DIST setuptools-git-1.0.tar.gz 8561 SHA256 eb75844bd56bd33f7c461246cdf99e6fa50b6a8dde2c56c967db54cd47b51af4 SHA512 be83dcbdff84de808a3760710ea2bcffecae2ef1fcccb67598b29e273a47d56d689dc97bd8f0889df5f4181367314a680e03030ef21d7c05dd3126789e344fa8 WHIRLPOOL 6a01a4219bd50d22ab13b4f8c97d8d3e2ebd71319e375f62d98215b62e3809d077d6efb7bb009316f3578b8e91fac888281d6e9e5ec84d3b6118754778078fd0
+DIST setuptools-git-1.1.tar.gz 9450 SHA256 047d7595546635edebef226bc566579d422ccc48a8a91c7d32d8bd174f68f831 SHA512 39e19c107f6398aaa1b78961c3b0d9d7b57b181d8ce0d93780460867fb7535ce45d266b93af43f45aa7afb89299199df22b0fdea61e9090932aeb4bd69c5f1f0 WHIRLPOOL 76a1ff0944c233655c6966fb8e0787d89b8ceb40a09fedb729d67d15905dd82dead4ed88a682db1b4a9ff664f354963b110339f4d96706e19451058dbe870483
diff --git a/dev-python/setuptools-git/metadata.xml b/dev-python/setuptools-git/metadata.xml
new file mode 100644
index 00000000000..cb6a3ae1a4e
--- /dev/null
+++ b/dev-python/setuptools-git/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Setuptools revision control system plugin for Git
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">setuptools-git</remote-id>
+ <remote-id type="github">wichert/setuptools-git</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/setuptools-git/setuptools-git-1.0.ebuild b/dev-python/setuptools-git/setuptools-git-1.0.ebuild
new file mode 100644
index 00000000000..7463f239fdb
--- /dev/null
+++ b/dev-python/setuptools-git/setuptools-git-1.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Setuptools revision control system plugin for Git"
+HOMEPAGE="https://github.com/wichert/setuptools-git"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/setuptools-git/setuptools-git-1.1.ebuild b/dev-python/setuptools-git/setuptools-git-1.1.ebuild
new file mode 100644
index 00000000000..548fae8bc79
--- /dev/null
+++ b/dev-python/setuptools-git/setuptools-git-1.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Setuptools revision control system plugin for Git"
+HOMEPAGE="https://github.com/wichert/setuptools-git"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-vcs/git"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ git config --global user.name "test user" || die
+ git config --global user.email "test@email.com" || die
+ esetup.py test
+ retr=$?
+}
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest
new file mode 100644
index 00000000000..ebe0236eb42
--- /dev/null
+++ b/dev-python/setuptools/Manifest
@@ -0,0 +1,15 @@
+DIST setuptools-12.0.1.tar.gz 626735 SHA256 35c3d6db79c662f1fc1c5105bc7cd3983d44071ebf5f9e00453792ea1335d5ab SHA512 fd7ce2f50b38e53cfbaa3c7d493f1cb50c7153009221b4b9cf1222ffac784f1c47b3d5da02395b2e5385f62f14c0ce6b6265f538edfe7ff38559f2905f0dc86b WHIRLPOOL 7180885fa3fada912e253c16eb28da6aac607cb1b6a67434888f6e8962eaf7d7e935176f3362182560f4f47547f1acbb7b65e5031ef7851357886d8fc3991069
+DIST setuptools-12.0.3.tar.gz 626842 SHA256 aa995fc91d203d02630bf54f9d898b7b337cbefb3f8d05d33de2b0d64a601ef8 SHA512 5a6e3d9ed6e6a184c40ad850435818157fff76d900300dfe5c5e96ba31f67d9f23098e61b357f76c235b1eec11676038cbbb90e65ba6b0194753acb340eb7e46 WHIRLPOOL bc03b6d8bc6c05568923dcc3498012d8e0f09562b37e7df73d6a48927dbcea3f88046483f47c13be12bb9c82440f73bfa55cb5688f99fda67bb7ee086fe5eb08
+DIST setuptools-12.0.5.tar.gz 626973 SHA256 bda326cad34921060a45004b0dd81f828d471695346e303f4ca53b8ba6f4547f SHA512 d4d3a0decc9e77abf12ee5121df0cbf9863f9f8cf680a728bf581484587bbd1f1abc523a8ce3b35ab0ffce08d8de8728b450aee8738b67d2046460da4122fb7e WHIRLPOOL aa5997fa8360bf23ff2b3f49c376adf4580958dfe5bbfffcfbc107d8fddd2974be1ccddf8e8c3753a36c5ef3202bffa31876836e14ecbcd6b071a1782d23e22a
+DIST setuptools-15.0.tar.gz 627831 SHA256 718d13adf87f99a45835bb20e0a1c4c036de644cd32b3f112639403aa04ebeb5 SHA512 ecefbd90d3733adfcf308b78ddb9490d99bebae30334436e6c0ea19edec27ccb26a159f2957e939e537f2c7ab5572524f32ab74b9e59684f1c5f2ebecf98b551 WHIRLPOOL 64daa854c88c644005dc53e17b1eb698d83aaecce76e591150f368d2633f2f6285612bd33cbdc281d9213c53e2b36a8f1aebdaffa3ab35d6e0bf5262e0e857af
+DIST setuptools-15.2.tar.gz 628101 SHA256 381e78471fb0eff89c4b1a219e8739f48dd87c76ad2d3a790010ca3a62ee29a4 SHA512 32497b9b5d32e9e04a7338227db9d4f0e09606ac547b9d6f1be230e9ba719a30cbdaf51e134f8826347673235db2f77cd33c8974634618696ce3308d278d3fbe WHIRLPOOL b091234de002d6a65e3215695c19a7af8bd8826693dbc43e7fcc0ad4aaca74cb3f607702cdfe2d52bd5ca8ab60e6b42f7351de2abf9c5ae1cbec46a4f217b1cf
+DIST setuptools-16.0.tar.gz 629567 SHA256 aa86255dee2c4a0056509750008007667c29306b7a6c13801468515b2c672845 SHA512 38a89aad89dc9aa682dbfbca623e2f69511f5e20d4a3526c01aabbc7e93ae78f20aac566676b431e111540b41540a1c4f644ce4174e7ecf052318612075e02dc WHIRLPOOL fc2f8c66fdb1329436d491cf62af3c989ec1885ce10ec02f9e1b5cfbab5a8ad6ea86b20c4790848d995b1c5b87838cc1acb24944df84392976eb03bc9eebf325
+DIST setuptools-17.0.tar.gz 629845 SHA256 561b33819ef3da2bff89cc8b05fd9b5ea3caeb31ad588b53fdf06f886ac3d200 SHA512 504ec0bd3ac0f9982da7cdcfb38bd8a54680aa52363b6654273c8ecb8046147b712025d2d3965475c8407b923b0a58e96dabf173a47cf36b1343a0d7a15eb991 WHIRLPOOL 0ddc8cdbb2151f71a9de8fbfe22aca30cd365a399881bff1568926ebe6c771b421a187ac007555447f18a2372195eba070ccf7a130a48f3672025c87553a9888
+DIST setuptools-17.1.1.tar.gz 630390 SHA256 5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431 SHA512 69b32baaac2954d7a9fb4df8738489c6abec090a69dc44781e60fae302443f28628730d0b72d9fa19a14045df0e512b6830be6bc603b97f73c16e7ba29b3b9c9 WHIRLPOOL 1a8b283a81ddb5cd5e393153db9b7f2a0ebb61c78c991558ae8c64706e17bb9db0597f34f577d1af9e9d4e2ec71eebba79553a3ee84ecada6f536b8d9657120e
+DIST setuptools-18.0.1.tar.gz 630585 SHA256 4d49c99fd51edf22baa997fb6105b07482feaebcb174b7d348a4307c29264b94 SHA512 9b318ce2ee2cf787929dcb886d76c492b433e71024fda9452d8b4927652a298d6bd1bdb7a4c73883a98e100024f89b46ea8aa14b250f896e549e6dd7e10a6b41 WHIRLPOOL 03a8aba7af5980d4e7680af1d7d2df2a16fb015e994e166f9f380119c4af136bad635a8ac90095a086c35dc90cf6872ea1aba190269425267bd844b37f8e50fe
+DIST setuptools-18.1.tar.gz 630700 SHA256 ad52a9d5b3a6f39c2a1c2deb96cc4f6aff29d6511bdea2994322c40b60c9c36a SHA512 1367f3a10c1fef2f8061e430585f1927f6bd7c416e764d65cea1f4255824d549efa77beef8ff784bbd62c307b4b1123502e7b3fd01a243c0cc5b433a841cc8b5 WHIRLPOOL bbd3c540ff4233052be9b46f6b389900513f06aa1f79ad09495aa2c7fbdfa7bdf0e0766257a13fb9be01ce5288fdc1b3573d6411f71beb614fecc8fa72dd9e94
+DIST setuptools-2.2.tar.gz 786831 SHA256 6fb1f21dea64e323e7ad2531a6795eeb6f5e17a85189dee61a86baca60b18984 SHA512 b5472e20f13c62ddc06513a964d8d85230a6cb8f4b0a6bc05c57d42aa3e682a850418246b5c1d769dba0cea18d7b262817f743b49a73383157a6b76d5637c296 WHIRLPOOL 6377efcf56082fdbea79cba7ae7c7d125d2368ea2309c9d655e4a568d40c8a6c9673dc1db63a2cb1f143436da411e664281ba239a058b5dff91b99cd2b5b332d
+DIST setuptools-7.0.tar.gz 793737 SHA256 dd9c1a2a0fdf37a7b142626700e0a0b7a3a0657b735c50d367fca932803be061 SHA512 0c52bf2d22f7bbd7560e8bb3184406426cf759980add0e60a864f15d9bcf10f01a2bfe0eb598c8c965b2e89df8c4159c2b43028b560f04192bba47e67d9cda18 WHIRLPOOL 70c0076960af3c00d49f79d5a0c3e3ec47a0b5009a20377cb7eca1e0747d6249d433ae14a0b86e5ac1f3bcc1efd99b68e48bd741458389c27ea05406af64e55f
+DIST setuptools-8.0.1.tar.gz 801353 SHA256 ab8eb279ca9062efc7e70f74a35f3dd9315835139ecaf3ae5bfdf4a7dc768e30 SHA512 c86a2c6ae5ed8205b9b37911002a8f551f2607ecab8b74b9eae6a7b92713c0d0a3d6aa54c4428df48765c1a2c9e21f53128bb1f138f7753e1f45188b0e357ff2 WHIRLPOOL 0ee70ee0a00118cb41005f77614bade6d5198a9164718bd7bb595b5cea0456ff829ac48cc8113c91d2f7830c4b4e9f4bd73245393621ae87e581b1e9b497f95d
+DIST setuptools-8.2.1.tar.gz 803909 SHA256 c2a0b4e3c980903f587896174c3829dc838f50995990ce93c95f93e70f1250aa SHA512 58325d322dca058865453b18e403f7913e8bdbcb52a908f74ac511c43cf4eeeeef50744471ec5738ced513c50a9947f5bb3eb0b3e9d18ba97b933142e0ca2b3c WHIRLPOOL 19d926512f8c9f4ce793fc590825040ada9321c771bfc0d8bdf843ed320345314586ef8876b566722bf6c98e8c99cb77f552e362cd6ed530d18b6022a81e6247
+DIST setuptools-9.1.tar.gz 808393 SHA256 742409700dc6c367dc3ac2cb9fd3179453e1e6082b63d9563470f779dba38ef7 SHA512 19fbf0ea842cc2a15d3f9f817719219748a10dca7909fe2f5dcd05c00a93a7ea115d75df416148cb9457ffaaa13582302d47af0df7cd1a8deb1f4e27d5031c27 WHIRLPOOL 55b9a59a1758e24527b5a3a6ba20ff323e11e162531eda71f260331c1a9dca57c495018cc1b8390f9ae1d8078e241276cc7339a5f5f8b3b2882a16bb1598a049
diff --git a/dev-python/setuptools/metadata.xml b/dev-python/setuptools/metadata.xml
new file mode 100644
index 00000000000..b05fb95fd33
--- /dev/null
+++ b/dev-python/setuptools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">setuptools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/setuptools/setuptools-12.0.1.ebuild b/dev-python/setuptools/setuptools-12.0.1.ebuild
new file mode 100644
index 00000000000..a1ccc647a80
--- /dev/null
+++ b/dev-python/setuptools/setuptools-12.0.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-12.0.3.ebuild b/dev-python/setuptools/setuptools-12.0.3.ebuild
new file mode 100644
index 00000000000..4e0570ed5dc
--- /dev/null
+++ b/dev-python/setuptools/setuptools-12.0.3.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-12.0.5.ebuild b/dev-python/setuptools/setuptools-12.0.5.ebuild
new file mode 100644
index 00000000000..4e0570ed5dc
--- /dev/null
+++ b/dev-python/setuptools/setuptools-12.0.5.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-15.0.ebuild b/dev-python/setuptools/setuptools-15.0.ebuild
new file mode 100644
index 00000000000..df74a226551
--- /dev/null
+++ b/dev-python/setuptools/setuptools-15.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-15.2.ebuild b/dev-python/setuptools/setuptools-15.2.ebuild
new file mode 100644
index 00000000000..df74a226551
--- /dev/null
+++ b/dev-python/setuptools/setuptools-15.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-16.0.ebuild b/dev-python/setuptools/setuptools-16.0.ebuild
new file mode 100644
index 00000000000..df74a226551
--- /dev/null
+++ b/dev-python/setuptools/setuptools-16.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-17.0.ebuild b/dev-python/setuptools/setuptools-17.0.ebuild
new file mode 100644
index 00000000000..df74a226551
--- /dev/null
+++ b/dev-python/setuptools/setuptools-17.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-17.1.1.ebuild b/dev-python/setuptools/setuptools-17.1.1.ebuild
new file mode 100644
index 00000000000..b37c7b61a90
--- /dev/null
+++ b/dev-python/setuptools/setuptools-17.1.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-18.0.1.ebuild b/dev-python/setuptools/setuptools-18.0.1.ebuild
new file mode 100644
index 00000000000..b37c7b61a90
--- /dev/null
+++ b/dev-python/setuptools/setuptools-18.0.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-18.1.ebuild b/dev-python/setuptools/setuptools-18.1.ebuild
new file mode 100644
index 00000000000..b37c7b61a90
--- /dev/null
+++ b/dev-python/setuptools/setuptools-18.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )
+"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # disable tests requiring a network connection
+ rm setuptools/tests/test_packageindex.py || die
+
+ # don't run integration tests
+ rm setuptools/tests/test_integration.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" py.test ${PN} || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-2.2.ebuild b/dev-python/setuptools/setuptools-2.2.ebuild
new file mode 100644
index 00000000000..9f06f5888ea
--- /dev/null
+++ b/dev-python/setuptools/setuptools-2.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ rm -f setuptools/tests/test_packageindex.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" esetup.py test
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-7.0.ebuild b/dev-python/setuptools/setuptools-7.0.ebuild
new file mode 100644
index 00000000000..aeff423918d
--- /dev/null
+++ b/dev-python/setuptools/setuptools-7.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ rm -f setuptools/tests/test_packageindex.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" esetup.py test
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-8.0.1.ebuild b/dev-python/setuptools/setuptools-8.0.1.ebuild
new file mode 100644
index 00000000000..d21d786db35
--- /dev/null
+++ b/dev-python/setuptools/setuptools-8.0.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ rm -f setuptools/tests/test_packageindex.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" esetup.py test
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-8.2.1.ebuild b/dev-python/setuptools/setuptools-8.2.1.ebuild
new file mode 100644
index 00000000000..d21d786db35
--- /dev/null
+++ b/dev-python/setuptools/setuptools-8.2.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ rm -f setuptools/tests/test_packageindex.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" esetup.py test
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-9.1.ebuild b/dev-python/setuptools/setuptools-9.1.ebuild
new file mode 100644
index 00000000000..d21d786db35
--- /dev/null
+++ b/dev-python/setuptools/setuptools-9.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+DEPEND="test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ rm -f setuptools/tests/test_packageindex.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" esetup.py test
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools/setuptools-9999.ebuild b/dev-python/setuptools/setuptools-9999.ebuild
new file mode 100644
index 00000000000..eead5ca0b16
--- /dev/null
+++ b/dev-python/setuptools/setuptools-9999.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+#if LIVE
+inherit mercurial
+#endif
+
+DESCRIPTION="a collection of extensions to Distutils"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+#if LIVE
+SRC_URI=""
+KEYWORDS=""
+EHG_REPO_URI="https://bitbucket.org/pypa/setuptools"
+#endif
+
+DEPEND="test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+# Force in-source build because build system modifies sources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+DOCS=( README.txt docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
+
+python_prepare_all() {
+ # Disable tests requiring network connection.
+ rm -f setuptools/tests/test_packageindex.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
+ # It tries to sandbox the test in a tempdir
+ HOME="${PWD}" esetup.py test
+}
+
+python_install() {
+ export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
+ distutils-r1_python_install
+}
diff --git a/dev-python/setuptools_hg/Manifest b/dev-python/setuptools_hg/Manifest
new file mode 100644
index 00000000000..ddf073b2c9a
--- /dev/null
+++ b/dev-python/setuptools_hg/Manifest
@@ -0,0 +1 @@
+DIST setuptools_hg-0.4.tar.gz 11059 SHA256 a41c3f9e7e503d760068aefd707ad82297a8d734078f478013b50be0dbe28f4e SHA512 95fd8930a8893b8db3f94ca42e51fb0b417818fc96842b0824318a383f4eff2ca54d8e0d51cacfe856abbcfa386aadb0a9cd05017f4b3b26fe8d634d8b5d3908 WHIRLPOOL 92887e231b906b22358806f1e04ae345a58341182745a70acdca8ce9b1831f55ccab129faf4ade6ad56bebfbea45a6b870ebf3e51315f8c08013de6fc479a997
diff --git a/dev-python/setuptools_hg/metadata.xml b/dev-python/setuptools_hg/metadata.xml
new file mode 100644
index 00000000000..7d3dea218e1
--- /dev/null
+++ b/dev-python/setuptools_hg/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>setuptools_hg is a plugin for setuptools/distribute to enable it to find files under the Mercurial version control system.</longdescription>
+ <upstream>
+ <remote-id type="pypi">setuptools_hg</remote-id>
+ <remote-id type="bitbucket">jezdez/setuptools_hg</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/setuptools_hg/setuptools_hg-0.4-r1.ebuild b/dev-python/setuptools_hg/setuptools_hg-0.4-r1.ebuild
new file mode 100644
index 00000000000..7c006ff9793
--- /dev/null
+++ b/dev-python/setuptools_hg/setuptools_hg-0.4-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Setuptools/distribute plugin for finding files under Mercurial version control"
+HOMEPAGE="http://pypi.python.org/pypi/setuptools_hg http://bitbucket.org/jezdez/setuptools_hg/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE=""
+
+RDEPEND="dev-vcs/mercurial"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/setuptools_scm/Manifest b/dev-python/setuptools_scm/Manifest
new file mode 100644
index 00000000000..c40609edd40
--- /dev/null
+++ b/dev-python/setuptools_scm/Manifest
@@ -0,0 +1,2 @@
+DIST setuptools_scm-1.5.4.tar.gz 15647 SHA256 756fb77b82c5e22818683b838c978537f4894f468ea074f0e8a99d8aaf689022 SHA512 c1e7c6b510761a3dcf3ebfed4988db924f9203c9f919891c94623f07935b101690ff2671ff3e153906a89f05d4002154e671196ba711597d4e3e7c8d0602289e WHIRLPOOL a02209c4c3c8ef6de63463ec163c018906de88abc5e1786b9506c4fc71dfdbe4b576cce94d19d653f1eb6f21f86292a645823b009107a07801056fb1f90a79b0
+DIST setuptools_scm-1.5.5.tar.gz 17442 SHA256 63f56843b9cc18743c843e43d54fd78ab091cb82d01f5acb64655743e8002134 SHA512 39516db6164dc0d6179922fd79b012950c0684c8f6d4dbf71c2fcae661d1a54ef745c48c8d521ed3906c4f74d91b79fe4a94b5e27ab6a84701964494057c2494 WHIRLPOOL 929e5c38aaef9c247a451382842bf16faf44528858981af7c29133d5b3f4693414b85d076ade33c033dfbadb5803bf1b95fa5d8fa942725af2c3b01534d72a72
diff --git a/dev-python/setuptools_scm/metadata.xml b/dev-python/setuptools_scm/metadata.xml
new file mode 100644
index 00000000000..3799991af72
--- /dev/null
+++ b/dev-python/setuptools_scm/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">setuptools_scm</remote-id>
+ <remote-id type="bitbucket">pypa/setuptools_scm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/setuptools_scm/setuptools_scm-1.5.4.ebuild b/dev-python/setuptools_scm/setuptools_scm-1.5.4.ebuild
new file mode 100644
index 00000000000..46e3f9b7fbe
--- /dev/null
+++ b/dev-python/setuptools_scm/setuptools_scm-1.5.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="package to manage versions by scm tags via setuptools"
+HOMEPAGE="http://bitbucket.org/pypa/setuptools_scm/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/setuptools_scm/setuptools_scm-1.5.5.ebuild b/dev-python/setuptools_scm/setuptools_scm-1.5.5.ebuild
new file mode 100644
index 00000000000..0d9a43c28f9
--- /dev/null
+++ b/dev-python/setuptools_scm/setuptools_scm-1.5.5.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="package to manage versions by scm tags via setuptools"
+HOMEPAGE="https://github.com/pypa/setuptools_scm"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/sexpdata/Manifest b/dev-python/sexpdata/Manifest
new file mode 100644
index 00000000000..dd704821f6e
--- /dev/null
+++ b/dev-python/sexpdata/Manifest
@@ -0,0 +1 @@
+DIST sexpdata-0.0.3.tar.gz 13105 SHA256 6cfa0ddfd69410599d143a5b4fe8bf80fafbf325fd10ec86a0ff49eda5cc2afa SHA512 03d4d1557bcc950124e408d6870894c8ee9e72a2ee83c881adf48f8e53bdf3744b4f3e3e133a74a195d236424b434cc690583a68d8395324ca4e84947e548501 WHIRLPOOL 654a37e8352dc947775e9375e929016e9074f17d4625037627e7416637aa38cdefd4d3fed0be4c388b28fc3a22a89122a028896c5d865f3fa54f369aba273390
diff --git a/dev-python/sexpdata/metadata.xml b/dev-python/sexpdata/metadata.xml
new file mode 100644
index 00000000000..aa9397ab302
--- /dev/null
+++ b/dev-python/sexpdata/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jauhien@gentoo.org</email>
+ <name>Jauhien Piatlicki</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">tkf/sexpdata</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sexpdata/sexpdata-0.0.3.ebuild b/dev-python/sexpdata/sexpdata-0.0.3.ebuild
new file mode 100644
index 00000000000..36d1814c28a
--- /dev/null
+++ b/dev-python/sexpdata/sexpdata-0.0.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="a simple S-expression parser/serializer"
+HOMEPAGE="http://github.com/tkf/sexpdata"
+SRC_URI="https://github.com/tkf/sexpdata/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/sh/Manifest b/dev-python/sh/Manifest
new file mode 100644
index 00000000000..296eec730af
--- /dev/null
+++ b/dev-python/sh/Manifest
@@ -0,0 +1,4 @@
+DIST sh-1.07.tar.gz 24554 SHA256 8eb743d1ccf03508022e5b5cd76063320cfe36f039a3625dce703a810a5f57e1 SHA512 922d674c0378fdc13b2934e345d9d0e63b1e9ad1e0fe140cfac981546b50fb5a66f6c423382a60a87c2acd44c625d1d4e6036587015cdbaa682b471678dde185 WHIRLPOOL f649a09433fcb4c7d1d79e6fa39fd137b288f6413c2dec0e092831d063c63dfbd344746a1e4c29ac476b46955989c4eeadce6c26f2a4011d28c696186a3b1587
+DIST sh-1.08.tar.gz 26310 SHA256 4b9700496659e1aa44bb2292ecb6c7d0c5d7763b184fd7eac37df0f2ded4bae8 SHA512 84c8c4f2f5e35ac329e892266e16a9ec23cf363456ba94f43488c0aad8a323ee5881287dea34d1b3b37431e0a6e52c989de0f9296a8eab8434ac22da5b88d8fa WHIRLPOOL 4a4daea1252d3a6b1de8bbeb7ed1831ab90942910c67b28b293133ca844b441376a03becd6ac41420b73d9c85b0aba882bc0e30441f7899e6fc67820bfbe4dd2
+DIST sh-1.09.tar.gz 26382 SHA256 f3d174e2ad25c39f28935bae672be51aa083063d3122405ceeb2a3e7a8239d45 SHA512 a4540a924ff8698c795a618ba8d5ef3dc0dca1880f2f6152393be204008059adda867deb7cc97db361a0011573e5dda6f4daef6cb60f637aa40a710915236771 WHIRLPOOL 9e83d6c231fc24a538544d7920c572f4f5aa3e98e5d82b6b4f478fe828e59ba511685643db31a626bec01751c227a881c93d6f828b35aa3aa7d2b5f5b0c92720
+DIST sh-1.11.tar.gz 36821 SHA256 590fb9b84abf8b1f560df92d73d87965f1e85c6b8330f8a5f6b336b36f0559a4 SHA512 ccaf178384b5a609c00bb44796a6bec088750414385f19b2d8ffcb93cc8f5ddb6bf82fb966d2bf519651f6efed54258a3c6542a9827d01e6be64af8cb8f86d3d WHIRLPOOL 9d13a3364ec467b492fb5818ae00e3a02f81aa779319382450df76a3041efb047dac82bd249cb51bf819664a5e7a8f9def3a672b8eb2edaa24f2a2aa80d66129
diff --git a/dev-python/sh/metadata.xml b/dev-python/sh/metadata.xml
new file mode 100644
index 00000000000..c8283ffb27e
--- /dev/null
+++ b/dev-python/sh/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <longdescription lang="en">
+ sh (previously pbs) is a full-fledged subprocess interface
+ for Python 2.6 - 3.2 that allows you to call any program
+ as if it were a function:
+
+ from sh import ifconfig
+ print ifconfig("eth0")
+
+ sh is not a collection of system commands implemented in Python.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">sh</remote-id>
+ <remote-id type="github">amoffat/sh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sh/sh-1.07.ebuild b/dev-python/sh/sh-1.07.ebuild
new file mode 100644
index 00000000000..43ed031468f
--- /dev/null
+++ b/dev-python/sh/sh-1.07.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3})
+inherit distutils-r1
+
+DESCRIPTION="Python subprocess interface"
+HOMEPAGE="https://github.com/amoffat/sh"
+SRC_URI="https://github.com/amoffat/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sh/sh-1.08.ebuild b/dev-python/sh/sh-1.08.ebuild
new file mode 100644
index 00000000000..e50de463a3d
--- /dev/null
+++ b/dev-python/sh/sh-1.08.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3})
+
+inherit distutils-r1
+
+DESCRIPTION="Python subprocess interface"
+HOMEPAGE="https://github.com/amoffat/sh"
+SRC_URI="https://github.com/amoffat/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+python_test() {
+ ${PYTHON} test.py || die
+}
diff --git a/dev-python/sh/sh-1.09.ebuild b/dev-python/sh/sh-1.09.ebuild
new file mode 100644
index 00000000000..1a2892d40cb
--- /dev/null
+++ b/dev-python/sh/sh-1.09.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_{3,4}})
+
+inherit distutils-r1
+
+DESCRIPTION="Python subprocess interface"
+HOMEPAGE="https://github.com/amoffat/sh"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${PYTHON} test.py || die
+}
diff --git a/dev-python/sh/sh-1.11.ebuild b/dev-python/sh/sh-1.11.ebuild
new file mode 100644
index 00000000000..60adfa6a283
--- /dev/null
+++ b/dev-python/sh/sh-1.11.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python subprocess interface"
+HOMEPAGE="https://github.com/amoffat/sh"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${PYTHON} test.py || die
+}
diff --git a/dev-python/shiboken/Manifest b/dev-python/shiboken/Manifest
new file mode 100644
index 00000000000..362dcd50ce2
--- /dev/null
+++ b/dev-python/shiboken/Manifest
@@ -0,0 +1 @@
+DIST shiboken-1.2.2.tar.bz2 1073776 SHA256 7625bbcf1fe313fd910c6b8c9cf49ac5495499f9d00867115a2f1f2a69fce5c4 SHA512 9f5c1219ce699df6b5ee4bd68cf422cb69476bd062346fcc8b4d34d314001ba60dbd52a73d772aec16285a0aabb600034630beba754ca54f5e6a4b744a720073 WHIRLPOOL 3d585201e88ea969e07595c5364eb630d0a8ce8096104bd0177aae26e549a10eedd8a930ce2bda88fdf3b6a50e0a5eff7494707642032e779a61a8cf110552d2
diff --git a/dev-python/shiboken/files/1.2.2-Fix-tests-with-Python-3.patch b/dev-python/shiboken/files/1.2.2-Fix-tests-with-Python-3.patch
new file mode 100644
index 00000000000..48e401d1be1
--- /dev/null
+++ b/dev-python/shiboken/files/1.2.2-Fix-tests-with-Python-3.patch
@@ -0,0 +1,49 @@
+From 7f793442316599ca25014a3d39c5de56c384990f Mon Sep 17 00:00:00 2001
+From: Michael Palimaka <kensington@gentoo.org>
+Date: Fri, 23 May 2014 18:10:20 +1000
+Subject: [PATCH] Fix tests with Python 3.
+
+Change-Id: Ibbf54406ba33dd1f645a46d63c04269868288768
+---
+ tests/minimalbinding/typedef_test.py | 2 +-
+ tests/samplebinding/overflow_test.py | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tests/minimalbinding/typedef_test.py b/tests/minimalbinding/typedef_test.py
+index 089b279..b5535fb 100644
+--- a/tests/minimalbinding/typedef_test.py
++++ b/tests/minimalbinding/typedef_test.py
+@@ -30,7 +30,7 @@ from py3kcompat import IS_PY3K
+
+ try:
+ import numpy as np
+-except ImportError, e:
++except ImportError:
+ np = None
+
+
+diff --git a/tests/samplebinding/overflow_test.py b/tests/samplebinding/overflow_test.py
+index 5020872..c294c13 100644
+--- a/tests/samplebinding/overflow_test.py
++++ b/tests/samplebinding/overflow_test.py
+@@ -45,7 +45,7 @@ class OverflowTest(unittest.TestCase):
+ '''C++ function receives an long long argument and raise OverflowError if the value is negative.'''
+ val = 100
+ self.assertEqual(doubleLongLong(val), 2 * val)
+- val = long(100)
++ val = int(100)
+ self.assertEqual(doubleLongLong(val), 2 * val)
+ val = (2 << 64) + 1
+ self.assertRaises(OverflowError, doubleLongLong, val)
+@@ -54,7 +54,7 @@ class OverflowTest(unittest.TestCase):
+ '''C++ function receives an unsigned long long argument and raise OverflowError if the value is negative.'''
+ val = 100
+ self.assertEqual(doubleUnsignedLongLong(val), 2 * val)
+- val = long(100)
++ val = int(100)
+ self.assertEqual(doubleUnsignedLongLong(val), 2 * val)
+ val *= -1
+ self.assertRaises(OverflowError, doubleUnsignedLongLong, val)
+--
+2.1.0
+
diff --git a/dev-python/shiboken/files/rpath.cmake b/dev-python/shiboken/files/rpath.cmake
new file mode 100644
index 00000000000..b896c878918
--- /dev/null
+++ b/dev-python/shiboken/files/rpath.cmake
@@ -0,0 +1,10 @@
+# use, i.e. don't skip the full RPATH for the build tree
+SET(CMAKE_SKIP_BUILD_RPATH FALSE)
+
+# when building, don't use the install RPATH already
+# (but later on when installing)
+SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+
+# add the automatically determined parts of the RPATH
+# which point to directories outside the build tree to the install RPATH
+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
diff --git a/dev-python/shiboken/metadata.xml b/dev-python/shiboken/metadata.xml
new file mode 100644
index 00000000000..3cbebd85b7e
--- /dev/null
+++ b/dev-python/shiboken/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+</pkgmetadata>
diff --git a/dev-python/shiboken/shiboken-1.2.2.ebuild b/dev-python/shiboken/shiboken-1.2.2.ebuild
new file mode 100644
index 00000000000..7fc66eaffcc
--- /dev/null
+++ b/dev-python/shiboken/shiboken-1.2.2.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit cmake-utils multilib python-r1
+
+DESCRIPTION="A tool for creating Python bindings for C++ libraries"
+HOMEPAGE="http://qt-project.org/wiki/PySide"
+SRC_URI="http://download.qt-project.org/official_releases/pyside/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+
+IUSE="test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ dev-libs/libxml2
+ dev-libs/libxslt
+ dev-qt/qtcore:4
+ dev-qt/qtxmlpatterns:4
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-qt/qtgui:4
+ dev-qt/qttest:4
+ )"
+
+DOCS=( AUTHORS ChangeLog )
+PATCHES=(
+ "${FILESDIR}/${PV}-Fix-tests-with-Python-3.patch"
+)
+
+src_prepare() {
+ # Fix inconsistent naming of libshiboken.so and ShibokenConfig.cmake,
+ # caused by the usage of a different version suffix with python >= 3.2
+ sed -i -e "/get_config_var('SOABI')/d" \
+ cmake/Modules/FindPython3InterpWithDebug.cmake || die
+
+ if use prefix; then
+ cp "${FILESDIR}"/rpath.cmake . || die
+ sed -i -e '1iinclude(rpath.cmake)' CMakeLists.txt || die
+ fi
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ configuration() {
+ local mycmakeargs=(
+ $(cmake-utils_use_build test TESTS)
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DPYTHON_SITE_PACKAGES="$(python_get_sitedir)"
+ -DPYTHON_SUFFIX="-${EPYTHON}"
+ )
+
+ if [[ ${EPYTHON} == python3* ]]; then
+ mycmakeargs+=(
+ -DUSE_PYTHON3=ON
+ -DPYTHON3_EXECUTABLE="${PYTHON}"
+ -DPYTHON3_INCLUDE_DIR="$(python_get_includedir)"
+ -DPYTHON3_LIBRARY="$(python_get_library_path)"
+ )
+ fi
+
+ cmake-utils_src_configure
+ }
+ python_foreach_impl configuration
+}
+
+src_compile() {
+ python_foreach_impl cmake-utils_src_compile
+}
+
+src_test() {
+ python_foreach_impl cmake-utils_src_test
+}
+
+src_install() {
+ installation() {
+ cmake-utils_src_install
+ mv "${ED}"usr/$(get_libdir)/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
+ }
+ python_foreach_impl installation
+}
diff --git a/dev-python/shm/Manifest b/dev-python/shm/Manifest
new file mode 100644
index 00000000000..577a6b995df
--- /dev/null
+++ b/dev-python/shm/Manifest
@@ -0,0 +1 @@
+DIST shm-1.2.2.tar.gz 25258 SHA256 5d733f61b26c2b71e46add5db6a74b50cb88e7339a30d91931bd10b85ddc8189 SHA512 d3da728d7c314b208b235490ae45b9f9ed4e7ac5c233867844b842ee511e50b684c52e75cc9258d0f65aa93ff2b10bca6a4bebfa6aef9b43d07ab284c0cab2a6 WHIRLPOOL 77c4ceb2e666aa3fa412de80dd25712d81d48cc859e1a2d993a08f82644dbbcee439396dc7a06a53dd408b3d38ee053399e23d8c5e3e82e437bfacd6300bbc1b
diff --git a/dev-python/shm/files/shm-1.2.2-compiler.patch b/dev-python/shm/files/shm-1.2.2-compiler.patch
new file mode 100644
index 00000000000..e9e1bd22a3a
--- /dev/null
+++ b/dev-python/shm/files/shm-1.2.2-compiler.patch
@@ -0,0 +1,11 @@
+--- setup.py 2010-06-26 03:29:30.000000000 +0200
++++ setup.py 2010-06-26 03:30:10.000000000 +0200
+@@ -84,7 +84,7 @@
+ filename = "%d.c" % i
+ file(path + filename, "w").write(src % ('_' * i))
+
+- cmd = ["cc", "-c", "-o", "/dev/null", "%s" % path + filename]
++ cmd = [os.environ.get("CC", "cc"), "-c", "-o", "/dev/null", "%s" % path + filename]
+
+ po = popen2.Popen4(cmd)
+ if not po.wait(): underscores[i] = True
diff --git a/dev-python/shm/metadata.xml b/dev-python/shm/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/shm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/shm/shm-1.2.2-r1.ebuild b/dev-python/shm/shm-1.2.2-r1.ebuild
new file mode 100644
index 00000000000..135c9631743
--- /dev/null
+++ b/dev-python/shm/shm-1.2.2-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python modules to access System V shared memory and semaphores"
+HOMEPAGE="http://nikitathespider.com/python/shm/"
+SRC_URI="http://nikitathespider.com/python/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${P}-compiler.patch )
+
+python_install_all() {
+ dohtml ReadMe.html
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/shortuuid/Manifest b/dev-python/shortuuid/Manifest
new file mode 100644
index 00000000000..e1e192058c4
--- /dev/null
+++ b/dev-python/shortuuid/Manifest
@@ -0,0 +1 @@
+DIST shortuuid-0.4.2.tar.gz 5367 SHA256 47fa452b53fcf15427e539efd9fee8e625a9aebeb81db9339df7aeede52c2b61 SHA512 c60122bffdf458fb6aaf8ff4883d15f121ce8e5c0b24b99609171cc7bb103a1dbbf876b39e84129b50cc6ebfc1310740ffe684f7dfd93c750d0ff55d483273a3 WHIRLPOOL 648a63a48ecc2b8609b6d83cff41314b90b78488d85cfa2eed4b363029905d0d0238e52dad4f014dc419a6e8ed72fe1cdfc48f02d6e363aaf0ef1ac5b387a7f9
diff --git a/dev-python/shortuuid/metadata.xml b/dev-python/shortuuid/metadata.xml
new file mode 100644
index 00000000000..89724cd47c3
--- /dev/null
+++ b/dev-python/shortuuid/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <longdescription>A library that generates short, pretty, unambiguous unique IDs by using an extensive, case-sensitive alphabet and omitting similar-looking letters and numbers.</longdescription>
+ <upstream>
+ <remote-id type="pypi">shortuuid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/shortuuid/shortuuid-0.4.2.ebuild b/dev-python/shortuuid/shortuuid-0.4.2.ebuild
new file mode 100644
index 00000000000..b3146ad684e
--- /dev/null
+++ b/dev-python/shortuuid/shortuuid-0.4.2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A generator library for concise, unambiguous and URL-safe UUIDs"
+HOMEPAGE="https://pypi.python.org/pypi/shortuuid"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/simplecv/Manifest b/dev-python/simplecv/Manifest
new file mode 100644
index 00000000000..ecdc747a25d
--- /dev/null
+++ b/dev-python/simplecv/Manifest
@@ -0,0 +1 @@
+DIST simplecv-1.3.tar.gz 42860284 SHA256 3510727fa5e219c811cf89bce21ecf29647bdd4ef48a0a78aa29b10b9f583947 SHA512 47fa3c0bb41057ae17323aeb68711ef4716c4fe6607162218477af9070a1b1a03a7300f38b2c2a5c54ff69b916267504aeeac7c3108d6a45045a1469a93005b8 WHIRLPOOL 0206dfc06627b78e96aa7487b6c3450cde043e1527044e413b6111831aa48b32dd043fbebbb33c61ffb1aab7683187bf76db4f0a641cdcd0c3dbd6c8d36e1b18
diff --git a/dev-python/simplecv/files/new-support-for-opencv-2.4.3-added.patch b/dev-python/simplecv/files/new-support-for-opencv-2.4.3-added.patch
new file mode 100644
index 00000000000..58f8639ea06
--- /dev/null
+++ b/dev-python/simplecv/files/new-support-for-opencv-2.4.3-added.patch
@@ -0,0 +1,111 @@
+From 164d39c1be66eb35b02fb7c30f65b5929c9e407d Mon Sep 17 00:00:00 2001
+From: Vijay Mahantesh SM <vijay@vijay.(none)>
+Date: Sat, 8 Dec 2012 01:55:24 +0530
+Subject: [PATCH] new support for opencv 2.4.3 added
+
+---
+ SimpleCV/ImageClass.py | 52 ++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 33 insertions(+), 19 deletions(-)
+
+diff --git a/SimpleCV/ImageClass.py b/SimpleCV/ImageClass.py
+index a545b50..6fab39a 100644
+--- a/SimpleCV/ImageClass.py
++++ b/SimpleCV/ImageClass.py
+@@ -7610,11 +7610,12 @@ class Image:
+ new_version = 0
+ #For OpenCV versions till 2.4.0, cv2.__versions__ are of the form "$Rev: 4557 $"
+ if not ver.startswith('$Rev:'):
+- if int(ver.replace('.','0'))>=20400 :
+- new_version = 1
+- if int(ver.replace('.','0'))>=20402 :
+- new_version = 2
+-
++ if int(ver.replace('.','0'))>=20400:
++ new_version = 1
++ if int(ver.replace('.','0'))>=20402:
++ new_version = 2
++ if int(ver.replace('.','0'))>=20403:
++ new_version = 3
+ except:
+ logger.warning("Can't run Keypoints without OpenCV >= 2.3.0")
+ return
+@@ -7622,11 +7623,11 @@ class Image:
+ if( forceReset ):
+ self._mKeyPoints = None
+ self._mKPDescriptors = None
+-
+- if( self._mKeyPoints is None or self._mKPFlavor != flavor ):
++
++ if( not(self._mKeyPoints) or self._mKPFlavor != flavor ):
+ if ( new_version == 0):
+ if( flavor == "SURF" ):
+- surfer = cv2.SURF(thresh,_extended=highQuality,_upright=1)
++ surfer = cv2.SURF(thresh,_extended=highQuality,_upright=1)
+ self._mKeyPoints,self._mKPDescriptors = surfer.detect(self.getGrayNumpy(),None,False)
+ if( len(self._mKPDescriptors) == 0 ):
+ return None, None
+@@ -7659,10 +7660,9 @@ class Image:
+ self._mKPDescriptors = None
+ self._mKPFlavor = "STAR"
+ del starer
+-
+-
+- elif( new_version == 2 and flavor in ["SURF", "FAST"] ):
+- if( flavor == "SURF" ):
++
++ elif( new_version >= 2 and flavor in ["SURF", "FAST"] ):
++ if( flavor == "SURF" and new_version==2):
+ surfer = cv2.SURF(hessianThreshold=thresh,extended=highQuality,upright=1)
+ #mask = self.getGrayNumpy()
+ #mask.fill(255)
+@@ -7678,6 +7678,20 @@ class Image:
+ self._mKPFlavor = "SURF"
+ del surfer
+
++ if( flavor == "SURF" and new_version==3):
++ surfer = cv2.SURF(hessianThreshold=thresh,extended=highQuality,upright=1)
++ self._mKeyPoints,self._mKPDescriptors = surfer.detectAndCompute(self.getGrayNumpy(),None,useProvidedKeypoints = False)
++ if( len(self._mKPDescriptors) == 0 ):
++ return None, None
++
++ if( highQuality == 1 ):
++ self._mKPDescriptors = self._mKPDescriptors.reshape((-1,128))
++ else:
++ self._mKPDescriptors = self._mKPDescriptors.reshape((-1,64))
++
++ self._mKPFlavor = "SURF"
++ del surfer
++
+ elif( flavor == "FAST" ):
+ faster = cv2.FastFeatureDetector(threshold=int(thresh),nonmaxSuppression=True)
+ self._mKeyPoints = faster.detect(self.getGrayNumpy())
+@@ -7693,19 +7707,19 @@ class Image:
+ if( len(self._mKPDescriptors) == 0 ):
+ return None, None
+ self._mKPFlavor = flavor
+- del FeatureDetector
++ del FeatureDetector
+
+ elif( new_version >= 1 and flavor in ["FAST", "STAR", "MSER", "Dense"] ):
+ FeatureDetector = cv2.FeatureDetector_create(flavor)
+ self._mKeyPoints = FeatureDetector.detect(self.getGrayNumpy())
+ self._mKPDescriptors = None
+ self._mKPFlavor = flavor
+- del FeatureDetector
+-
+- else:
+- logger.warning("ImageClass.Keypoints: I don't know the method you want to use")
+- return None, None
+-
++ del FeatureDetector
++
++ else:
++ logger.warning("ImageClass.Keypoints: I don't know the method you want to use")
++ return None, None
++
+ return self._mKeyPoints,self._mKPDescriptors
+
+ def _getFLANNMatches(self,sd,td):
+--
+1.8.1.5
+
diff --git a/dev-python/simplecv/files/remove-failing-test.patch b/dev-python/simplecv/files/remove-failing-test.patch
new file mode 100644
index 00000000000..7ee326df02a
--- /dev/null
+++ b/dev-python/simplecv/files/remove-failing-test.patch
@@ -0,0 +1,57 @@
+From d8abe3346d7aa2b192d384476d5f2c89ca9c70e9 Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@gmail.com>
+Date: Fri, 14 Jun 2013 20:35:11 -0400
+Subject: [PATCH] remove failing test
+
+According to the docs, the UserWarning that is raised should not be an
+issue. Ignore the failure during testings.
+---
+ SimpleCV/tests/tests.py | 32 --------------------------------
+ 1 file changed, 32 deletions(-)
+
+diff --git a/SimpleCV/tests/tests.py b/SimpleCV/tests/tests.py
+index 94f4fc7..ce442e3 100644
+--- a/SimpleCV/tests/tests.py
++++ b/SimpleCV/tests/tests.py
+@@ -1731,38 +1731,6 @@ def test_movement_feature():
+
+ pass
+
+-def test_keypoint_extraction():
+- try:
+- import cv2
+- except:
+- pass
+- return
+-
+- img1 = Image("../sampleimages/KeypointTemplate2.png")
+- img2 = Image("../sampleimages/KeypointTemplate2.png")
+- img3 = Image("../sampleimages/KeypointTemplate2.png")
+-
+- kp1 = img1.findKeypoints()
+- kp2 = img2.findKeypoints(highQuality=True)
+- kp3 = img3.findKeypoints(flavor="STAR")
+- kp1.draw()
+- kp2.draw()
+- kp3.draw()
+- #TODO: Fix FAST binding
+- #~ kp4 = img.findKeypoints(flavor="FAST",min_quality=10)
+- if( len(kp1)==190 and
+- len(kp2)==190 and
+- len(kp3)==37
+- #~ and len(kp4)==521
+- ):
+- pass
+- else:
+- assert False
+- results = [img1,img2,img3]
+- name_stem = "test_keypoint_extraction"
+- perform_diff(results,name_stem,tolerance=3.0)
+-
+-
+ def test_keypoint_match():
+ try:
+ import cv2
+--
+1.8.1.5
+
diff --git a/dev-python/simplecv/files/remove-failing-tests.patch b/dev-python/simplecv/files/remove-failing-tests.patch
new file mode 100644
index 00000000000..7b2e60da711
--- /dev/null
+++ b/dev-python/simplecv/files/remove-failing-tests.patch
@@ -0,0 +1,301 @@
+From 77a76251ac911367e94c3b035e1ec243d2846e38 Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@gmail.com>
+Date: Fri, 14 Jun 2013 20:06:49 -0400
+Subject: [PATCH] remove failing tests
+
+---
+ SimpleCV/tests/tests.py | 250 ------------------------------------------------
+ 1 file changed, 250 deletions(-)
+
+diff --git a/SimpleCV/tests/tests.py b/SimpleCV/tests/tests.py
+index 94f4fc7..d8e79d8 100644
+--- a/SimpleCV/tests/tests.py
++++ b/SimpleCV/tests/tests.py
+@@ -1649,39 +1649,6 @@ def test_blob_isa_methods():
+ else:
+ assert False
+
+-def test_findKeypoints():
+- try:
+- import cv2
+- except:
+- pass
+- return
+- img = Image(testimage2)
+- kp = img.findKeypoints()
+- for k in kp:
+- k.getObject()
+- k.descriptor()
+- k.quality()
+- k.octave()
+- k.flavor()
+- k.angle()
+- k.coordinates()
+- k.draw()
+- k.distanceFrom()
+- k.meanColor()
+- k.area()
+- k.perimeter()
+- k.width()
+- k.height()
+- k.radius()
+- k.crop()
+-
+- kp.draw()
+- results = [img]
+- name_stem = "test_findKeypoints"
+- #~ perform_diff(results,name_stem)
+-
+- pass
+-
+ def test_movement_feature():
+ current1 = Image("../sampleimages/flow_simple1.png")
+ prev = Image("../sampleimages/flow_simple2.png")
+@@ -1731,96 +1698,6 @@ def test_movement_feature():
+
+ pass
+
+-def test_keypoint_extraction():
+- try:
+- import cv2
+- except:
+- pass
+- return
+-
+- img1 = Image("../sampleimages/KeypointTemplate2.png")
+- img2 = Image("../sampleimages/KeypointTemplate2.png")
+- img3 = Image("../sampleimages/KeypointTemplate2.png")
+-
+- kp1 = img1.findKeypoints()
+- kp2 = img2.findKeypoints(highQuality=True)
+- kp3 = img3.findKeypoints(flavor="STAR")
+- kp1.draw()
+- kp2.draw()
+- kp3.draw()
+- #TODO: Fix FAST binding
+- #~ kp4 = img.findKeypoints(flavor="FAST",min_quality=10)
+- if( len(kp1)==190 and
+- len(kp2)==190 and
+- len(kp3)==37
+- #~ and len(kp4)==521
+- ):
+- pass
+- else:
+- assert False
+- results = [img1,img2,img3]
+- name_stem = "test_keypoint_extraction"
+- perform_diff(results,name_stem,tolerance=3.0)
+-
+-
+-def test_keypoint_match():
+- try:
+- import cv2
+- except:
+- pass
+- return
+-
+- template = Image("../sampleimages/KeypointTemplate2.png")
+- match0 = Image("../sampleimages/kptest0.png")
+- match1 = Image("../sampleimages/kptest1.png")
+- match3 = Image("../sampleimages/kptest2.png")
+- match2 = Image("../sampleimages/aerospace.jpg")# should be none
+-
+- fs0 = match0.findKeypointMatch(template)#test zero
+- fs1 = match1.findKeypointMatch(template,quality=300.00,minDist=0.5,minMatch=0.2)
+- fs3 = match3.findKeypointMatch(template,quality=300.00,minDist=0.5,minMatch=0.2)
+- print "This should fail"
+- fs2 = match2.findKeypointMatch(template,quality=500.00,minDist=0.2,minMatch=0.1)
+- if( fs0 is not None and fs1 is not None and fs2 is None and fs3 is not None):
+- fs0.draw()
+- fs1.draw()
+- fs3.draw()
+- f = fs0[0]
+- f.drawRect()
+- f.draw()
+- f.getHomography()
+- f.getMinRect()
+- f.meanColor()
+- f.crop()
+- f.x
+- f.y
+- f.coordinates()
+- else:
+- assert False
+-
+- results = [match0,match1,match2,match3]
+- name_stem = "test_find_keypoint_match"
+- perform_diff(results,name_stem)
+-
+-
+-def test_draw_keypoint_matches():
+- try:
+- import cv2
+- except:
+- pass
+- return
+- template = Image("../sampleimages/KeypointTemplate2.png")
+- match0 = Image("../sampleimages/kptest0.png")
+- result = match0.drawKeypointMatches(template,thresh=500.00,minDist=0.15,width=1)
+-
+- results = [result]
+- name_stem = "test_draw_keypoint_matches"
+- perform_diff(results,name_stem,tolerance=4.0)
+-
+-
+- pass
+-
+-
+ def test_basic_palette():
+ img = Image(testimageclr)
+ img._generatePalette(10,False)
+@@ -2303,29 +2180,6 @@ def test_blob_spatial_relationships():
+ if( not center.contains(inside) ):
+ assert False
+
+-def test_get_aspectratio():
+- img = Image("../sampleimages/EdgeTest1.png")
+- img2 = Image("../sampleimages/EdgeTest2.png")
+- b = img.findBlobs()
+- l = img2.findLines()
+- c = img2.findCircle(thresh=200)
+- c2 = img2.findCorners()
+- kp = img2.findKeypoints()
+- bb = b.aspectRatios()
+- ll = l.aspectRatios()
+- cc = c.aspectRatios()
+- c22 = c2.aspectRatios()
+- kp2 = kp.aspectRatios()
+-
+- if( len(bb) > 0 and
+- len(ll) > 0 and
+- len(cc) > 0 and
+- len(c22) > 0 and
+- len(kp2) > 0 ):
+- pass
+- else:
+- assert False
+-
+ def test_line_crop():
+ img = Image("../sampleimages/EdgeTest2.png")
+ l = img.findLines().sortArea()
+@@ -2391,74 +2245,6 @@ def test_save_kwargs():
+ s80 = os.remove(l80)
+ s70 = os.remove(l70)
+
+-def test_on_edge():
+- img1 = "./../sampleimages/EdgeTest1.png"
+- img2 = "./../sampleimages/EdgeTest2.png"
+- imgA = Image(img1)
+- imgB = Image(img2)
+- imgC = Image(img2)
+- imgD = Image(img2)
+- imgE = Image(img2)
+-
+- blobs = imgA.findBlobs()
+- circs = imgB.findCircle(thresh=200)
+- corners = imgC.findCorners()
+- kp = imgD.findKeypoints()
+- lines = imgE.findLines()
+-
+- rim = blobs.onImageEdge()
+- inside = blobs.notOnImageEdge()
+- rim.draw(color=Color.RED)
+- inside.draw(color=Color.BLUE)
+-
+- rim = circs.onImageEdge()
+- inside = circs.notOnImageEdge()
+- rim.draw(color=Color.RED)
+- inside.draw(color=Color.BLUE)
+-
+- #rim = corners.onImageEdge()
+- inside = corners.notOnImageEdge()
+- #rim.draw(color=Color.RED)
+- inside.draw(color=Color.BLUE)
+-
+- #rim = kp.onImageEdge()
+- inside = kp.notOnImageEdge()
+- #rim.draw(color=Color.RED)
+- inside.draw(color=Color.BLUE)
+-
+- rim = lines.onImageEdge()
+- inside = lines.notOnImageEdge()
+- rim.draw(color=Color.RED)
+- inside.draw(color=Color.BLUE)
+-
+- results = [imgA,imgB,imgC,imgD,imgE]
+- name_stem = "test_onEdge_Features"
+- #~ perform_diff(results,name_stem,tolerance=8.0)
+-
+-def test_feature_angles():
+- img = Image("../sampleimages/rotation2.png")
+- img2 = Image("../sampleimages/rotation.jpg")
+- img3 = Image("../sampleimages/rotation.jpg")
+- b = img.findBlobs()
+- l = img2.findLines()
+- k = img3.findKeypoints()
+-
+- for bs in b:
+- tl = bs.topLeftCorner()
+- img.drawText(str(bs.angle()),tl[0],tl[1],color=Color.RED)
+-
+- for ls in l:
+- tl = ls.topLeftCorner()
+- img2.drawText(str(ls.angle()),tl[0],tl[1],color=Color.GREEN)
+-
+- for ks in k:
+- tl = ks.topLeftCorner()
+- img3.drawText(str(ks.angle()),tl[0],tl[1],color=Color.BLUE)
+-
+- results = [img,img2,img3]
+- name_stem = "test_feature_angles"
+- perform_diff(results,name_stem,tolerance=9.0)
+-
+ def test_feature_angles_rotate():
+ img = Image("../sampleimages/rotation2.png")
+ b = img.findBlobs()
+@@ -2740,42 +2526,6 @@ def test_getSkintoneMask():
+ name_stem = 'test_skintone'
+ perform_diff(masks,name_stem,tolerance=17)
+
+-def test_findKeypoints_all():
+- try:
+- import cv2
+- except:
+- pass
+- return
+- img = Image(testimage2)
+- methods = ["ORB", "SIFT", "SURF","FAST", "STAR", "MSER", "Dense"]
+- for i in methods :
+- print i
+- kp = img.findKeypoints(flavor = i)
+- if kp!=None :
+- for k in kp:
+- k.getObject()
+- k.descriptor()
+- k.quality()
+- k.octave()
+- k.flavor()
+- k.angle()
+- k.coordinates()
+- k.draw()
+- k.distanceFrom()
+- k.meanColor()
+- k.area()
+- k.perimeter()
+- k.width()
+- k.height()
+- k.radius()
+- k.crop()
+- kp.draw()
+- results = [img]
+- name_stem = "test_findKeypoints"
+- #~ perform_diff(results,name_stem,tolerance=8)
+- pass
+-
+-
+ def test_upload_flickr():
+ try:
+ import flickrapi
+--
+1.8.1.5
+
diff --git a/dev-python/simplecv/metadata.xml b/dev-python/simplecv/metadata.xml
new file mode 100644
index 00000000000..204edf0c738
--- /dev/null
+++ b/dev-python/simplecv/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jsbronder@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="shell">Enable the iPython SimpleCV shell</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">sightmachine/SimpleCV</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simplecv/simplecv-1.3.ebuild b/dev-python/simplecv/simplecv-1.3.ebuild
new file mode 100644
index 00000000000..56988ebb3d8
--- /dev/null
+++ b/dev-python/simplecv/simplecv-1.3.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 vcs-snapshot
+
+MY_PN=SimpleCV
+
+DESCRIPTION="Python interface to several powerful open source computer vision libraries"
+HOMEPAGE="http://simplecv.org/"
+SRC_URI="https://github.com/sightmachine/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="shell test"
+
+DEPEND="
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+RDEPEND="
+ >=media-libs/opencv-2.4.8[python,${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/pygame[${PYTHON_USEDEP}]
+ shell? ( dev-python/ipython[${PYTHON_USEDEP}] )"
+
+# 1. FeatureDetector being called with the wrong number of arguments
+# 2. Remove test that according to docs shouldn't be an issue
+PATCHES=(
+ "${FILESDIR}"/new-support-for-opencv-2.4.3-added.patch
+ "${FILESDIR}"/remove-failing-test.patch
+)
+
+src_test() {
+ cd "${S}/SimpleCV/tests"
+ nosetests tests.py || die "tests failed"
+}
+
+src_install() {
+ distutils-r1_src_install
+ if ! use shell; then
+ rm -rf "${D}"/usr/bin
+ fi
+}
diff --git a/dev-python/simpleeval/Manifest b/dev-python/simpleeval/Manifest
new file mode 100644
index 00000000000..59a820c6861
--- /dev/null
+++ b/dev-python/simpleeval/Manifest
@@ -0,0 +1,2 @@
+DIST simpleeval-0.8.2.tar.gz 8282 SHA256 828e79056ae2083ff6091dd8d33855974300241c3dd7d4a173faf901a17c7b09 SHA512 288d597c646ee0c70e3a6e04fd8db112b7b7a00ad53101114cc1724110c2f71d7b5f382f9052ebdb8dbc6b48c1391c870966b72df368701548d513d3053c1759 WHIRLPOOL 88edf67da8cda1bc1ab0c66a908fc12b2e5a4b14db9f6f0e8dc771c53a4c731c38d2dbad3a8d2c2f2d8efc3b3f86ed7be1eceffa5c3d5b8cd5a096ee99c87d5c
+DIST simpleeval-0.8.5.tar.gz 13858 SHA256 76fb692abfc45c57a25540b976ddb4b3029162015e4f13735ac783bc4437a99b SHA512 da913e7dba3af05488e3bfa105c42ecc8d7ee74d3e520e32c362051b8c123b9357876cd23e400e34171042538297f32b1903f40f2b854759c856abd89548093f WHIRLPOOL c28f5e12e2032f4b0c65acefbaf2100d25124c8425c0018d0a1f9160ac082fd6c1f171f2a11b530c7c8aaaa512f21d61f222ce292d792384fd0930b4c9af769b
diff --git a/dev-python/simpleeval/metadata.xml b/dev-python/simpleeval/metadata.xml
new file mode 100644
index 00000000000..235315bac19
--- /dev/null
+++ b/dev-python/simpleeval/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>cedk@gentoo.org</email>
+ <name>Cédric Krier</name>
+ </maintainer>
+ <longdescription lang="en">
+ A simple, safe single expression evaluator library.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">simpleeval</remote-id>
+ <remote-id type="github">danthedeckie/simpleeval</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simpleeval/simpleeval-0.8.2.ebuild b/dev-python/simpleeval/simpleeval-0.8.2.ebuild
new file mode 100644
index 00000000000..12ddb70ac07
--- /dev/null
+++ b/dev-python/simpleeval/simpleeval-0.8.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple, safe single expression evaluator library"
+HOMEPAGE="https://github.com/danthedeckie/simpleeval"
+SRC_URI="mirror://pypi/s/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+DOCS="README.rst"
diff --git a/dev-python/simpleeval/simpleeval-0.8.5.ebuild b/dev-python/simpleeval/simpleeval-0.8.5.ebuild
new file mode 100644
index 00000000000..7a8a0953b6f
--- /dev/null
+++ b/dev-python/simpleeval/simpleeval-0.8.5.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple, safe single expression evaluator library"
+HOMEPAGE="https://github.com/danthedeckie/simpleeval"
+SRC_URI="mirror://pypi/s/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="
+ ${DEPEND}
+ dev-python/setuptools"
+
+DOCS="README.rst"
+
+python_test() {
+ esetup.py test || die
+}
diff --git a/dev-python/simplegeneric/Manifest b/dev-python/simplegeneric/Manifest
new file mode 100644
index 00000000000..a23c80616f2
--- /dev/null
+++ b/dev-python/simplegeneric/Manifest
@@ -0,0 +1 @@
+DIST simplegeneric-0.8.1.zip 12663 SHA256 dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173 SHA512 74c25d4e04fe197058cb43fabe3702cc5901989dc0b0bcf7511369f4f3d90fd98e4225174db0680c8f39389914f82824bdbdaf4c302b53998fbabbf0dba393e4 WHIRLPOOL 6aca8477513ce67c97d5e172a1e2445eb89a44c936733b2f6493cf5876b104bcd992617602713dba85d81539ddd1b8670991f482ae0a6ff963753699a047f8e6
diff --git a/dev-python/simplegeneric/metadata.xml b/dev-python/simplegeneric/metadata.xml
new file mode 100644
index 00000000000..81395895b62
--- /dev/null
+++ b/dev-python/simplegeneric/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>The simplegeneric module lets you define simple single-dispatch
+ generic functions, akin to Python's built-in generic functions like len(),
+ iter() and so on. However, instead of using specially-named methods, these
+ generic functions use simple lookup tables, akin to those used by
+ e.g. pickle.dump() and other generic functions found in the Python
+ standard library.</longdescription>
+ <upstream>
+ <remote-id type="pypi">simplegeneric</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simplegeneric/simplegeneric-0.8.1-r1.ebuild b/dev-python/simplegeneric/simplegeneric-0.8.1-r1.ebuild
new file mode 100644
index 00000000000..fdb94c7e951
--- /dev/null
+++ b/dev-python/simplegeneric/simplegeneric-0.8.1-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple generic functions for Python"
+HOMEPAGE="http://pypi.python.org/pypi/simplegeneric"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/simplegui/Manifest b/dev-python/simplegui/Manifest
new file mode 100644
index 00000000000..d103aad2d88
--- /dev/null
+++ b/dev-python/simplegui/Manifest
@@ -0,0 +1 @@
+DIST simplegui-0.1.0.zip 15821 SHA256 e852bef6a5f799c3f19b78dac6a0a58f3d29773651d0fa26768030ead4d74037 SHA512 b09bad388dfeff4778c4ed1ebaaf9a01a802c023b272a7bce8efe4091e8dbe658a2bcba56663e686cc76cfd907b6b54da7033946ee989b600e4d5269ad43315c WHIRLPOOL 701153e16e540ba8dfc13609cbceb37eac75e061109b9ae7afe677ac60f8ed03c7e2dd8a761a626b786473983f85b822870d9a593b88bc32016d40b0d91d3c17
diff --git a/dev-python/simplegui/metadata.xml b/dev-python/simplegui/metadata.xml
new file mode 100644
index 00000000000..2ccc7474c09
--- /dev/null
+++ b/dev-python/simplegui/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">simplegui</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simplegui/simplegui-0.1.0.ebuild b/dev-python/simplegui/simplegui-0.1.0.ebuild
new file mode 100644
index 00000000000..c8929d8580b
--- /dev/null
+++ b/dev-python/simplegui/simplegui-0.1.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 )
+PYTHON_REQ_USE="tk"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+inherit distutils-r1
+
+DESCRIPTION="Simplified GUI generation using Tkinter"
+HOMEPAGE="http://florian-berger.de/en/software/simplegui"
+SRC_URI="http://static.florian-berger.de/simplegui-0.1.0.zip"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="app-arch/unzip
+ dev-python/cx_Freeze[${PYTHON_USEDEP}]"
+
+python_compile() {
+ if [[ ${EPYTHON} == python3.* ]]; then
+ 2to3 --no-diffs -w *.py || die
+ fi
+
+ distutils-r1_python_compile
+}
diff --git a/dev-python/simplejson/Manifest b/dev-python/simplejson/Manifest
new file mode 100644
index 00000000000..a8819822508
--- /dev/null
+++ b/dev-python/simplejson/Manifest
@@ -0,0 +1,2 @@
+DIST simplejson-3.7.2.tar.gz 74877 SHA256 8358ecc05541be4068109acf26a4ae89ba14450d20e92e0973d0d67bea3d7431 SHA512 5e2874c4d627035b3e205b5208b46beb172ac934742b0cb68f43f70aa2f401ec568c2b69fccdb1d870bf5196df0f6e37b790332a6e4d7969a296c8c104bdfe0b WHIRLPOOL 26f5e23250031d9b20b121a7110a1b623f32128721281b2554f2727f815b03b39b0680d21b41bb8729288f2774d38e92301bcf72188d054aa03497818edefdca
+DIST simplejson-3.8.0.tar.gz 75875 SHA256 217e4797da3a9a4a9fbe6722e0db98070b8443a88212d7acdbd241a7668141d9 SHA512 c985a0f56170f78b6c6e8f0e4b4bf50f258c8f2639524f5b14d8e07b547e336acf96ac55cf562243fff06752ceba4a05f1e6dd43f6c918159a7b3640af0f0c1d WHIRLPOOL 368779f57bc1186d3b30ae80f74d0eca50709dfe6063d52c359d665eaacc9caa751fbbb9f4437e8bf8908f3569f85424632208d8f7c6146ebc8e8cc9c77b723d
diff --git a/dev-python/simplejson/metadata.xml b/dev-python/simplejson/metadata.xml
new file mode 100644
index 00000000000..a53cc93ce1e
--- /dev/null
+++ b/dev-python/simplejson/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">simplejson</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simplejson/simplejson-3.7.2.ebuild b/dev-python/simplejson/simplejson-3.7.2.ebuild
new file mode 100644
index 00000000000..958813e009b
--- /dev/null
+++ b/dev-python/simplejson/simplejson-3.7.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Simple, fast, extensible JSON encoder/decoder for Python"
+HOMEPAGE="http://undefined.org/python/#simplejson http://pypi.python.org/pypi/simplejson"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( MIT AFL-2.1 )"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( README.rst CHANGES.txt )
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/simplejson/simplejson-3.8.0.ebuild b/dev-python/simplejson/simplejson-3.8.0.ebuild
new file mode 100644
index 00000000000..2cc471b206b
--- /dev/null
+++ b/dev-python/simplejson/simplejson-3.8.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1 flag-o-matic
+
+DESCRIPTION="Simple, fast, extensible JSON encoder/decoder for Python"
+HOMEPAGE="http://undefined.org/python/#simplejson http://pypi.python.org/pypi/simplejson"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( MIT AFL-2.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( README.rst CHANGES.txt )
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/simplekv/Manifest b/dev-python/simplekv/Manifest
new file mode 100644
index 00000000000..2503d42448b
--- /dev/null
+++ b/dev-python/simplekv/Manifest
@@ -0,0 +1,2 @@
+DIST simplekv-0.9.2.tar.gz 13750 SHA256 448608199a9f76a25529005b5a28a4e548afd623e2b7109563b9ebe6ef4f3aac SHA512 cfa17cc0920d4a0513c56443c30ed07a77130f689d71130a058e2a46a5b9dbfc22b1fd21d6fee973fc00242c6b9391143a4db91f9c1937ea7f64daa898a8f045 WHIRLPOOL 40f62efaba344aed99b3e6bae80eb22021a93958654a2fe2d881ece808a93f830923fbd2f00d96adb46442d6bcf3c66a71fc805a49f46e331db10df24c1b2621
+DIST simplekv-0.9.3.tar.gz 14585 SHA256 f82e11b42222c13201ff7bc97b4684953287150e8c51c28b0028be489bb214d1 SHA512 1d83c485b4e3d28ce2e0080b6ef424393ea26ae9fcce75a0852b07d66bcf134815e292b590f1a1ff4083b5202633d2cf837a5ebd7b577353ae94a0be5491436b WHIRLPOOL 3793ba874530087854a57613504c6344bcb69c41bb49268f7e92edd02c54979ee5b08308bc9651c4983b756d7057398d837cf8366cef8d37114528630c971340
diff --git a/dev-python/simplekv/metadata.xml b/dev-python/simplekv/metadata.xml
new file mode 100644
index 00000000000..4b9133c78f3
--- /dev/null
+++ b/dev-python/simplekv/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aballier@gentoo.org</email>
+ <name>Alexis Ballier</name>
+ <description>Python team can take the package if they wish.</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">simplekv</remote-id>
+ <remote-id type="github">mbr/simplekv</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simplekv/simplekv-0.9.2.ebuild b/dev-python/simplekv/simplekv-0.9.2.ebuild
new file mode 100644
index 00000000000..5eeab945644
--- /dev/null
+++ b/dev-python/simplekv/simplekv-0.9.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A key-value storage for binary data, support many backends."
+HOMEPAGE="https://pypi.python.org/pypi/simplekv/ https://github.com/mbr/simplekv"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/simplekv/simplekv-0.9.3.ebuild b/dev-python/simplekv/simplekv-0.9.3.ebuild
new file mode 100644
index 00000000000..de2f9537a8c
--- /dev/null
+++ b/dev-python/simplekv/simplekv-0.9.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A key-value storage for binary data, support many backends."
+HOMEPAGE="https://pypi.python.org/pypi/simplekv/ https://github.com/mbr/simplekv"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/simpleparse/Manifest b/dev-python/simpleparse/Manifest
new file mode 100644
index 00000000000..d3a1dfdcf79
--- /dev/null
+++ b/dev-python/simpleparse/Manifest
@@ -0,0 +1 @@
+DIST SimpleParse-2.1.1.tar.gz 207078 SHA256 2f1393790dd7b0af9775bd9c828430ffdd8bccd6227783c09e835e1aced415d9 SHA512 b0a46b8b708ba711c81f739177d7df3814dc7f0ba3a0a7e4ec9b9ade045f1ee90dfdaf76de96306c490238b901275adafbff4efdd2ab46d7a78bf9082c2da0a8 WHIRLPOOL 31a27f533942f07324684969fb8a6d687753b7f105942c7a7e660f670ed11b6009b62c56d4ddc7e2933bbb82f0b1f75a5db1d5748744c45f04f2006696a76e93
diff --git a/dev-python/simpleparse/metadata.xml b/dev-python/simpleparse/metadata.xml
new file mode 100644
index 00000000000..16b5a011d5d
--- /dev/null
+++ b/dev-python/simpleparse/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">SimpleParse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simpleparse/simpleparse-2.1.1-r1.ebuild b/dev-python/simpleparse/simpleparse-2.1.1-r1.ebuild
new file mode 100644
index 00000000000..0dfb017083f
--- /dev/null
+++ b/dev-python/simpleparse/simpleparse-2.1.1-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+inherit distutils-r1
+
+MY_PN="SimpleParse"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Parser Generator for mxTextTools"
+HOMEPAGE="http://simpleparse.sourceforge.net http://pypi.python.org/pypi/SimpleParse"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="eGenixPublic-1.1 HPND"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="doc examples test"
+
+S="${WORKDIR}/${MY_P}"
+
+# tests segfault, bug #454680
+RESTRICT=test
+
+src_prepare() {
+ distutils-r1_src_prepare
+ rm -f {examples,tests}/__init__.py
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ if use doc ; then
+ dohtml -r doc/*
+ fi
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
+
+python_test() {
+ PYTHONPATH=${BUILD_DIR}/lib python tests/test.py || die
+}
diff --git a/dev-python/simpleparse/simpleparse-2.1.1.ebuild b/dev-python/simpleparse/simpleparse-2.1.1.ebuild
new file mode 100644
index 00000000000..e1f6aa73d25
--- /dev/null
+++ b/dev-python/simpleparse/simpleparse-2.1.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*"
+
+inherit distutils
+
+MY_PN="SimpleParse"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="A Parser Generator for mxTextTools"
+HOMEPAGE="http://simpleparse.sourceforge.net http://pypi.python.org/pypi/SimpleParse"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="eGenixPublic-1.1 HPND"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
+
+src_prepare() {
+ distutils_src_prepare
+ rm -f {examples,tests}/__init__.py
+}
+
+src_test() {
+ testing() {
+ PYTHONPATH="$(ls -d build-${PYTHON_ABI}/lib.*):." "$(PYTHON)" tests/test.py
+ }
+ python_execute_function testing
+}
+
+src_install() {
+ distutils_src_install
+
+ if use doc ; then
+ dohtml -r doc/*
+ fi
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/simples3/Manifest b/dev-python/simples3/Manifest
new file mode 100644
index 00000000000..4d927e6e880
--- /dev/null
+++ b/dev-python/simples3/Manifest
@@ -0,0 +1 @@
+DIST simples3-1.0.tar.gz 14630 SHA256 2f3d3ef5a691741a489971e292cca2fd69bb11937b542bd1838793da2014f0fc SHA512 3f715eb9dc7cae22f0d08e01599d15e33f5f52441d17a85b6017c15bdfeb125d473ef0d0f19de712f7d09d4127f71e423adc6aaeec461c32fd7568e9ed4c7e54 WHIRLPOOL f0a32d367cf3fc208d0cd6b6254c6bba96dcf8d3ec90350595f468d4254429b3c30949643ab0d17ad9d60e80e01a1f0c956deb42d74ea59fe8e7b13a7fb52000
diff --git a/dev-python/simples3/metadata.xml b/dev-python/simples3/metadata.xml
new file mode 100644
index 00000000000..f98bb7f53d6
--- /dev/null
+++ b/dev-python/simples3/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>bugs@bergstroem.nu</email>
+ <name>Johan Bergström</name>
+ <description>Proxy-Maintainer, assign bugs</description>
+ </maintainer>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">simples3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simples3/simples3-1.0.ebuild b/dev-python/simples3/simples3-1.0.ebuild
new file mode 100644
index 00000000000..e0dc24084c6
--- /dev/null
+++ b/dev-python/simples3/simples3-1.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A fairly simple, decently quick python interface to Amazon's S3 storage service"
+HOMEPAGE="http://sendapatch.se/projects/simples3/ http://pypi.python.org/pypi/simples3/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+DOCS=( changes.rst README TODO )
+
+python_prepare_all() {
+ sed -i -e "s/setuptools/distutils.core/" setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/simplesettings/Manifest b/dev-python/simplesettings/Manifest
new file mode 100644
index 00000000000..1faea947b49
--- /dev/null
+++ b/dev-python/simplesettings/Manifest
@@ -0,0 +1 @@
+DIST simplesettings-0.5.tar.gz 5998 SHA256 477096c53a6f9a6287232a626cec65011bbc550410b2624f4fe6d80bf241486e SHA512 7d7fdfb827dcf86558560b96594016896b9c62843509acf4fb47b8b669e12bb3cb3093eb65312198978c1ace689b848c251f1943fa9fc9952479618ecc9658b5 WHIRLPOOL 19fd7d581e98e139d63e614c0b02bcab37c774cdee9b0c3fcd05ee88fd0ee3870ba4e0811b2d7fed87151a40d6385c2b9c8647ce2d5b1ac3507532c6a619fe11
diff --git a/dev-python/simplesettings/metadata.xml b/dev-python/simplesettings/metadata.xml
new file mode 100644
index 00000000000..9c4eac8d5bc
--- /dev/null
+++ b/dev-python/simplesettings/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">simplesettings</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simplesettings/simplesettings-0.5-r1.ebuild b/dev-python/simplesettings/simplesettings-0.5-r1.ebuild
new file mode 100644
index 00000000000..e5571525860
--- /dev/null
+++ b/dev-python/simplesettings/simplesettings-0.5-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple settings initialization"
+HOMEPAGE="http://pypi.python.org/pypi/simplesettings"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/simpletal/Manifest b/dev-python/simpletal/Manifest
new file mode 100644
index 00000000000..201509527bb
--- /dev/null
+++ b/dev-python/simpletal/Manifest
@@ -0,0 +1,3 @@
+DIST SimpleTAL-4.2.tar.gz 96011 SHA256 3f2983773382491c981e8f621094be4ea4e202336c96f81f9a1f7305e4b2eb08 SHA512 ce816a9c7c66ffa96da0968cea60d838b7e9ed5608a0eae05c40fbbacddec2ca369944f820237d9c3756cd14552d7957c86f8f3e8067cb944ac86529232aa0c8 WHIRLPOOL 6dd675f113d37209a4d10945c0f7116e3d4b45f31bbdfe4488e17150d3969a27e1cb348c3d0136878bae456de646fa8ab086c78d67b8a49046e0b7261261a484
+DIST SimpleTAL-5.1.tar.gz 90604 SHA256 00118ccf7eb74cb3e536a891a1858ad31a2416f63a85cf61fd538bde4c760057 SHA512 51fc5bcfdb4a5ac06b06d7aca20d13cb964a625d0167cc723e8b7352cf154bcde9f14aff96eaa42a5b299c8439336cd35d8fc8f927ae1352be7e7ca5f12aba52 WHIRLPOOL 25e40138a4e53a6f8a6aaa6d607e082ac8ba428ff8b99336d91c5d10e3a6ae8d203e6a49756c96d5357b8605ad4a6eafc3501403a62dce63127eb3ff8ff485bd
+DIST SimpleTAL-5.2.tar.gz 96986 SHA256 ddff80acdebfffc9cb7de2e20761936ea06fcc7cf362678d4b66bd7bbce9e8e2 SHA512 16b46886af50f697e706c6b3f0400707299cfe40a81773fbd094de2f52ca8a87438f3ae7477462d0523570b3e3248d2ad4bb2affd3a7088fc45b1201ed228fbe WHIRLPOOL ea412134f341b572936f0543a944d1d9cae4394be801cf879fdf0859379eb0bc17eda781a62f165e54ce90c511ae7d5dec180f9c718e3ec88fb65fd113c9e284
diff --git a/dev-python/simpletal/metadata.xml b/dev-python/simpletal/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/simpletal/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/simpletal/simpletal-4.2-r1.ebuild b/dev-python/simpletal/simpletal-4.2-r1.ebuild
new file mode 100644
index 00000000000..9c0a71a2b69
--- /dev/null
+++ b/dev-python/simpletal/simpletal-4.2-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="SimpleTAL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Stand alone Python implementation of the Zope TAL, TALES and METAL specs for HTML/XML templates"
+HOMEPAGE="http://www.owlfish.com/software/simpleTAL/ http://pypi.python.org/pypi/SimpleTAL"
+SRC_URI="http://www.owlfish.com/software/simpleTAL/downloads/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="4"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/pyxml[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e "s/^TEMP_DIR=.*/TEMP_DIR=os.curdir/" \
+ -i tests/TALUtilsTests/TemplateCacheTestCases.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" runtests.py || die "tests failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/simpletal/simpletal-5.1-r1.ebuild b/dev-python/simpletal/simpletal-5.1-r1.ebuild
new file mode 100644
index 00000000000..b7e40a3356c
--- /dev/null
+++ b/dev-python/simpletal/simpletal-5.1-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_3 )
+
+inherit distutils-r1
+
+MY_PN="SimpleTAL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Stand alone Python implementation of the Zope TAL, TALES and METAL specs for HTML/XML templates"
+HOMEPAGE="http://www.owlfish.com/software/simpleTAL/ http://pypi.python.org/pypi/SimpleTAL"
+SRC_URI="http://www.owlfish.com/software/simpleTAL/downloads/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="5"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e "s/^TEMP_DIR=.*/TEMP_DIR=os.curdir/" \
+ -i tests/TALUtilsTests/TemplateCacheTestCases.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" runtests.py || die "tests failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/simpletal/simpletal-5.2.ebuild b/dev-python/simpletal/simpletal-5.2.ebuild
new file mode 100644
index 00000000000..b7e40a3356c
--- /dev/null
+++ b/dev-python/simpletal/simpletal-5.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_3 )
+
+inherit distutils-r1
+
+MY_PN="SimpleTAL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Stand alone Python implementation of the Zope TAL, TALES and METAL specs for HTML/XML templates"
+HOMEPAGE="http://www.owlfish.com/software/simpleTAL/ http://pypi.python.org/pypi/SimpleTAL"
+SRC_URI="http://www.owlfish.com/software/simpleTAL/downloads/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="5"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="doc examples"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e "s/^TEMP_DIR=.*/TEMP_DIR=os.curdir/" \
+ -i tests/TALUtilsTests/TemplateCacheTestCases.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" runtests.py || die "tests failed"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/simpy/Manifest b/dev-python/simpy/Manifest
new file mode 100644
index 00000000000..4e480d088e0
--- /dev/null
+++ b/dev-python/simpy/Manifest
@@ -0,0 +1,3 @@
+DIST SimPy-2.3.1.tar.gz 6296235 SHA256 7f5ab61409b4fa28d08a7ed8b903eda8195dc3220cb64eb177a7bb62be89e387 SHA512 39b003ba29df70a3b1a13917f2439b523c06a4f0491b1421023697adb52d096aadc281812ae97a0e7b9498dcaab6bf7a3cd42a26dcce5ec67265e0f95884a828 WHIRLPOOL 1eb975c15859322ea02c27ce78cdd27ffe5c5ae7e070447660010f1eaeb9ec43d987b0af07376d459a118d8b61003b36e86ac34c9d6a4faa1100f94d5b9f3d23
+DIST simpy-3.0.3.tar.gz 1695886 SHA256 f1ea029a67bcc58ae88f8e3ce90bd86533a92d791684186ba21d9a0499b54bc9 SHA512 ed494596664b104a467a916ef99e4205af93aa7c4dcb3210fc722ae81e199a5421a9f20fea999d68e5b3c029f14c951e7f0659ead7880c760b9c7b2b64dc19cf WHIRLPOOL d52b1ccbe6b1471dc4db28b9a2d1a73d3710f968a56af0f56cf67bacc477c43238fd636feba5a3f0312e99f93117e39abf77a54a90b458d8b127f240c114a87f
+DIST simpy-3.0.8.tar.gz 402664 SHA256 e127921510773f7b6189ab3596362809a37b87b7c2ae298b29ba3a6cca03e677 SHA512 c8c468ab60da1b357a1c62ca516a0cce51c6941f7b7795ee57c905cd8457f5614c5ff1f6d7586c0b9d9148e03251fd4f77b4e2c3c3d438e532e49bc4583fb08b WHIRLPOOL 736b72632cba64f419512fda90565bfe912c120f9bd9647bbe0446d926485819c760c51594e68d6d410f95fbce99ad7a27687cb607030864459cf53ed64036ba
diff --git a/dev-python/simpy/metadata.xml b/dev-python/simpy/metadata.xml
new file mode 100644
index 00000000000..20ac9d1cc7d
--- /dev/null
+++ b/dev-python/simpy/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">simpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/simpy/simpy-2.3.1-r1.ebuild b/dev-python/simpy/simpy-2.3.1-r1.ebuild
new file mode 100644
index 00000000000..1e8e98eae58
--- /dev/null
+++ b/dev-python/simpy/simpy-2.3.1-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="tk"
+
+inherit distutils-r1
+
+MY_P="${P/simpy/SimPy}"
+
+DESCRIPTION="Simulation in Python is an object-oriented, process-based discrete-event simulation language"
+HOMEPAGE="http://simpy.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/SimPy-2.3/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-2.1"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ ${PYTHON} -c "import SimPy; SimPy.test()" || die
+}
+
+python_install_all() {
+ DOCS=( AUTHORS.txt CHANGES.txt README.txt )
+ if use doc; then
+ pushd docs > /dev/null || die
+ PYTHONPATH=.. emake html && HTML_DOCS=( docs/html/. docs/build/doctrees/. )
+ popd > /dev/null || die
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/simpy/simpy-3.0.3.ebuild b/dev-python/simpy/simpy-3.0.3.ebuild
new file mode 100644
index 00000000000..1899aa7e85c
--- /dev/null
+++ b/dev-python/simpy/simpy-3.0.3.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="tk"
+
+inherit distutils-r1
+
+MY_P="${P/simpy/SimPy}"
+
+DESCRIPTION="Simulation in Python is an object-oriented, process-based discrete-event simulation language"
+HOMEPAGE="http://simpy.readthedocs.org/en/latest/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-2.1"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test -vv || die
+}
+
+python_install_all() {
+ DOCS=( AUTHORS.txt CHANGES.txt README.txt )
+ if use doc; then
+ pushd docs > /dev/null || die
+ PYTHONPATH=.. emake html && HTML_DOCS=( docs/_build/html/. docs/_build/doctrees/. )
+ popd > /dev/null || die
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/simpy/simpy-3.0.8.ebuild b/dev-python/simpy/simpy-3.0.8.ebuild
new file mode 100644
index 00000000000..1899aa7e85c
--- /dev/null
+++ b/dev-python/simpy/simpy-3.0.8.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="tk"
+
+inherit distutils-r1
+
+MY_P="${P/simpy/SimPy}"
+
+DESCRIPTION="Simulation in Python is an object-oriented, process-based discrete-event simulation language"
+HOMEPAGE="http://simpy.readthedocs.org/en/latest/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-2.1"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_test() {
+ py.test -vv || die
+}
+
+python_install_all() {
+ DOCS=( AUTHORS.txt CHANGES.txt README.txt )
+ if use doc; then
+ pushd docs > /dev/null || die
+ PYTHONPATH=.. emake html && HTML_DOCS=( docs/_build/html/. docs/_build/doctrees/. )
+ popd > /dev/null || die
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/singledispatch/Manifest b/dev-python/singledispatch/Manifest
new file mode 100644
index 00000000000..51f7fc8c00b
--- /dev/null
+++ b/dev-python/singledispatch/Manifest
@@ -0,0 +1 @@
+DIST singledispatch-3.4.0.3.tar.gz 9529 SHA256 5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c SHA512 ba065d36092ddee6527be3d7cb777c51c0949855bf6dd0ffb7c25acaedaa35d36fe6dc096587acddcd1e9e54c6ac5f92c196b11f9ee1270cc0c1cf2f410446cf WHIRLPOOL 183ff853db1743b9a55023a62afc806d60dc095f8a1a32392ad3d48c31f0c9b2b2001dc9bd264c90dbfc7acb92670342a2ff770886aa81afe9b5badde4dbe22a
diff --git a/dev-python/singledispatch/metadata.xml b/dev-python/singledispatch/metadata.xml
new file mode 100644
index 00000000000..b66ef245427
--- /dev/null
+++ b/dev-python/singledispatch/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>timo@rothenpieler.org</email>
+ <name>Timo Rothenpieler</name>
+ <description>proxy maintainer</description>
+ </maintainer>
+ <maintainer>
+ <email>realnc@gmail.com</email>
+ <name>Nikos Chantziaras</name>
+ <description>proxy maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">singledispatch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/singledispatch/singledispatch-3.4.0.3.ebuild b/dev-python/singledispatch/singledispatch-3.4.0.3.ebuild
new file mode 100644
index 00000000000..3cb00c89e9e
--- /dev/null
+++ b/dev-python/singledispatch/singledispatch-3.4.0.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to bring functools.singledispatch from Python 3.4 to Python 2.6-3.3"
+HOMEPAGE="http://docs.python.org/3/library/functools.html#functools.singledispatch"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${PF}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~hppa ~ppc64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
diff --git a/dev-python/sip/Manifest b/dev-python/sip/Manifest
new file mode 100644
index 00000000000..97d41cc6d24
--- /dev/null
+++ b/dev-python/sip/Manifest
@@ -0,0 +1,3 @@
+DIST sip-4.16.2.tar.gz 793663 SHA256 a55a2324a46ab42e42ae57c52ef06583b17d25c987973fe2e7ff2e8a649294ce SHA512 07ced0188bd4dc897ddacbce226b33ac9d236455a95018e900fd5f652439c905ddd56688f8bb29f704fcf201a8e668d5cc89ba887065826653087cf0a9f6dbfb WHIRLPOOL 47c741f1b787ba147e7a299e3c93a7537f14f1b192726e39f3679d0b0e0a991df603509c5674f262311259d9ad2e1e845746d215d5ef70eb7b827c1557eb8b82
+DIST sip-4.16.8.tar.gz 957083 SHA256 d3141b65e48a30c9ce36612f8bcd1730ebf02d044757e4d6c5234927e2063e18 SHA512 aa63ab9925d581e929613cfd9c5804489a0702b8380958874cc1bd364030e21b30816493c7f38ceccdffc9da310d2c793ea438ce458ed06511ede7fbb913ef8d WHIRLPOOL 3c84a4de2be0458ec90dc2b266c0435808f0e92db09bae92e7ce1a24b2dd1bdf6037cdcec322a7c92266cf591e95bd36e812434aaf3dbfe8c71cf882dcba72f5
+DIST sip-4.16.9.tar.gz 957858 SHA256 dbe173aa566e26ca0bb5bcbc1d30ef780f416267bb3b5df48149a737ea6b0555 SHA512 f9e7deac3462f71e809fce29aea4b7e7e3d1acb7600252178459cfb9e09d1543e9a189bdc66c946c9d11c4a6f3175a6d6b306481cadab70ed7f17f6e7c328ddc WHIRLPOOL f4cfcb5ecc945332683bdcbd6913b87fc975f8e268e02e6bdeaadebf578e40f1e94a3c76cdb1ea3890ec969d1454560d58df01ba4ad507d914a300076365ade0
diff --git a/dev-python/sip/files/sip-4.15.5-darwin.patch b/dev-python/sip/files/sip-4.15.5-darwin.patch
new file mode 100644
index 00000000000..b625d15c27c
--- /dev/null
+++ b/dev-python/sip/files/sip-4.15.5-darwin.patch
@@ -0,0 +1,30 @@
+diff -ur sip-4.15.5.orig/siputils.py sip-4.15.5/siputils.py
+--- siputils.py 2014-02-21 18:31:35.000000000 +0800
++++ siputils.py 2014-04-01 23:21:41.895036589 +0800
+@@ -945,8 +945,6 @@
+ """
+ if self.generator in ("MSVC", "MSVC.NET", "MSBUILD", "BMAKE"):
+ plib = clib + ".lib"
+- elif sys.platform == "darwin" and framework:
+- plib = "-framework " + clib
+ else:
+ plib = "-l" + clib
+
+@@ -961,8 +959,6 @@
+ """
+ if self.generator in ("MSVC", "MSVC.NET", "MSBUILD", "BMAKE"):
+ prl_name = os.path.join(self.config.qt_lib_dir, clib + ".prl")
+- elif sys.platform == "darwin" and framework:
+- prl_name = os.path.join(self.config.qt_lib_dir, clib + ".framework", clib + ".prl")
+ else:
+ prl_name = os.path.join(self.config.qt_lib_dir, "lib" + clib + ".prl")
+
+@@ -1633,7 +1629,7 @@
+ if sys.platform == "win32":
+ ext = "pyd"
+ elif sys.platform == "darwin":
+- ext = "so"
++ ext = "bundle"
+ elif sys.platform == "cygwin":
+ ext = "dll"
+ else:
diff --git a/dev-python/sip/metadata.xml b/dev-python/sip/metadata.xml
new file mode 100644
index 00000000000..318329c4c49
--- /dev/null
+++ b/dev-python/sip/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qt</herd>
+ <upstream>
+ <maintainer status="active">
+ <email>phil@riverbankcomputing.com</email>
+ <name>Phil Thompson</name>
+ </maintainer>
+ <bugs-to>mailto:pyqt@riverbankcomputing.com</bugs-to>
+ <remote-id type="pypi">SIP</remote-id>
+ <remote-id type="sourceforge">pyqt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sip/sip-4.16.2.ebuild b/dev-python/sip/sip-4.16.2.ebuild
new file mode 100644
index 00000000000..bc856bfd77a
--- /dev/null
+++ b/dev-python/sip/sip-4.16.2.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils python-r1 toolchain-funcs
+
+DESCRIPTION="Python extension module generator for C and C++ libraries"
+HOMEPAGE="http://www.riverbankcomputing.co.uk/software/sip/intro https://pypi.python.org/pypi/SIP"
+LICENSE="|| ( GPL-2 GPL-3 SIP )"
+
+if [[ ${PV} == *9999* ]]; then
+ # live version from mercurial repo
+ EHG_REPO_URI="http://www.riverbankcomputing.com/hg/sip"
+ inherit mercurial
+elif [[ ${PV} == *_pre* ]]; then
+ # development snapshot
+ HG_REVISION=
+ MY_P=${PN}-${PV%_pre*}-snapshot-${HG_REVISION}
+ SRC_URI="http://dev.gentoo.org/~hwoarang/distfiles/${MY_P}.tar.gz"
+ S=${WORKDIR}/${MY_P}
+else
+ # official release
+ SRC_URI="mirror://sourceforge/pyqt/${P}.tar.gz"
+fi
+
+# Sub-slot based on SIP_API_MAJOR_NR from siplib/sip.h.in
+SLOT="0/11"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="debug doc"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
+
+[[ ${PV} == *9999* ]] && DEPEND+="
+ =dev-lang/python-2*
+ sys-devel/bison
+ sys-devel/flex
+ doc? ( dev-python/sphinx[$(python_gen_usedep 'python2*')] )
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-4.15.5-darwin.patch
+
+ if [[ ${PV} == *9999* ]]; then
+ python2 build.py prepare || die
+ if use doc; then
+ python2 build.py doc || die
+ fi
+ fi
+
+ # Sub-slot sanity check
+ local sub_slot=${SLOT#*/}
+ local sip_api_major_nr=$(sed -nre 's:^#define SIP_API_MAJOR_NR\s+([0-9]+):\1:p' siplib/sip.h.in)
+ if [[ ${sub_slot} != ${sip_api_major_nr} ]]; then
+ eerror
+ eerror "Ebuild sub-slot (${sub_slot}) does not match SIP_API_MAJOR_NR (${sip_api_major_nr})"
+ eerror "Please update SLOT variable as follows:"
+ eerror " SLOT=\"${SLOT%%/*}/${sip_api_major_nr}\""
+ eerror
+ die "sub-slot sanity check failed"
+ fi
+
+ python_copy_sources
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}" configure.py
+ --bindir="${EPREFIX}/usr/bin"
+ --destdir="$(python_get_sitedir)"
+ --incdir="$(python_get_includedir)"
+ --sipdir="${EPREFIX}/usr/share/sip"
+ $(use debug && echo --debug)
+ AR="$(tc-getAR) cqs"
+ CC="$(tc-getCC)"
+ CFLAGS="${CFLAGS}"
+ CFLAGS_RELEASE=
+ CXX="$(tc-getCXX)"
+ CXXFLAGS="${CXXFLAGS}"
+ CXXFLAGS_RELEASE=
+ LINK="$(tc-getCXX)"
+ LINK_SHLIB="$(tc-getCXX)"
+ LFLAGS="${LDFLAGS}"
+ LFLAGS_RELEASE=
+ RANLIB=
+ STRIP=
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}"
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ emake DESTDIR="${D}" install
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc NEWS
+ use doc && dohtml -r doc/html/*
+}
diff --git a/dev-python/sip/sip-4.16.8.ebuild b/dev-python/sip/sip-4.16.8.ebuild
new file mode 100644
index 00000000000..2a55a046e69
--- /dev/null
+++ b/dev-python/sip/sip-4.16.8.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils python-r1 toolchain-funcs
+
+DESCRIPTION="Python extension module generator for C and C++ libraries"
+HOMEPAGE="http://www.riverbankcomputing.com/software/sip/intro https://pypi.python.org/pypi/SIP"
+LICENSE="|| ( GPL-2 GPL-3 SIP )"
+
+if [[ ${PV} == *9999* ]]; then
+ # live version from mercurial repo
+ EHG_REPO_URI="http://www.riverbankcomputing.com/hg/sip"
+ inherit mercurial
+elif [[ ${PV} == *_pre* ]]; then
+ # development snapshot
+ HG_REVISION=
+ MY_P=${PN}-${PV%_pre*}-snapshot-${HG_REVISION}
+ SRC_URI="http://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.gz"
+ S=${WORKDIR}/${MY_P}
+else
+ # official release
+ SRC_URI="mirror://sourceforge/pyqt/${P}.tar.gz"
+fi
+
+# Sub-slot based on SIP_API_MAJOR_NR from siplib/sip.h.in
+SLOT="0/11"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="debug doc"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
+
+[[ ${PV} == *9999* ]] && DEPEND+="
+ =dev-lang/python-2*
+ sys-devel/bison
+ sys-devel/flex
+ doc? ( dev-python/sphinx[$(python_gen_usedep 'python2*')] )
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-4.15.5-darwin.patch
+
+ if [[ ${PV} == *9999* ]]; then
+ python2 build.py prepare || die
+ if use doc; then
+ python2 build.py doc || die
+ fi
+ fi
+
+ # Sub-slot sanity check
+ local sub_slot=${SLOT#*/}
+ local sip_api_major_nr=$(sed -nre 's:^#define SIP_API_MAJOR_NR\s+([0-9]+):\1:p' siplib/sip.h.in)
+ if [[ ${sub_slot} != ${sip_api_major_nr} ]]; then
+ eerror
+ eerror "Ebuild sub-slot (${sub_slot}) does not match SIP_API_MAJOR_NR (${sip_api_major_nr})"
+ eerror "Please update SLOT variable as follows:"
+ eerror " SLOT=\"${SLOT%%/*}/${sip_api_major_nr}\""
+ eerror
+ die "sub-slot sanity check failed"
+ fi
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}"
+ "${S}"/configure.py
+ --destdir="$(python_get_sitedir)"
+ --incdir="$(python_get_includedir)"
+ $(use debug && echo --debug)
+ AR="$(tc-getAR) cqs"
+ CC="$(tc-getCC)"
+ CFLAGS="${CFLAGS}"
+ CFLAGS_RELEASE=
+ CXX="$(tc-getCXX)"
+ CXXFLAGS="${CXXFLAGS}"
+ CXXFLAGS_RELEASE=
+ LINK="$(tc-getCXX)"
+ LINK_SHLIB="$(tc-getCXX)"
+ LFLAGS="${LDFLAGS}"
+ LFLAGS_RELEASE=
+ RANLIB=
+ STRIP=
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ emake DESTDIR="${D}" install
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc ChangeLog NEWS
+ use doc && dodoc -r doc/html
+}
diff --git a/dev-python/sip/sip-4.16.9.ebuild b/dev-python/sip/sip-4.16.9.ebuild
new file mode 100644
index 00000000000..e589f78e1a8
--- /dev/null
+++ b/dev-python/sip/sip-4.16.9.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils python-r1 toolchain-funcs
+
+DESCRIPTION="Python extension module generator for C and C++ libraries"
+HOMEPAGE="http://www.riverbankcomputing.com/software/sip/intro https://pypi.python.org/pypi/SIP"
+LICENSE="|| ( GPL-2 GPL-3 SIP )"
+
+if [[ ${PV} == *9999* ]]; then
+ # live version from mercurial repo
+ EHG_REPO_URI="http://www.riverbankcomputing.com/hg/sip"
+ inherit mercurial
+elif [[ ${PV} == *_pre* ]]; then
+ # development snapshot
+ HG_REVISION=
+ MY_P=${PN}-${PV%_pre*}-snapshot-${HG_REVISION}
+ SRC_URI="http://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.gz"
+ S=${WORKDIR}/${MY_P}
+else
+ # official release
+ SRC_URI="http://www.riverbankcomputing.com/static/Downloads/sip4/${P}.tar.gz"
+fi
+
+# Sub-slot based on SIP_API_MAJOR_NR from siplib/sip.h.in
+SLOT="0/11"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="debug doc"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
+[[ ${PV} == *9999* ]] && DEPEND+="
+ sys-devel/bison
+ sys-devel/flex
+ doc? ( dev-python/sphinx[$(python_gen_usedep 'python2*')] )
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+[[ ${PV} == *9999* ]] && REQUIRED_USE+="
+ || ( $(python_gen_useflags 'python2*') )
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-4.15.5-darwin.patch
+
+ if [[ ${PV} == *9999* ]]; then
+ python_setup 'python2*'
+ "${PYTHON}" build.py prepare || die
+ if use doc; then
+ "${PYTHON}" build.py doc || die
+ fi
+ fi
+
+ # Sub-slot sanity check
+ local sub_slot=${SLOT#*/}
+ local sip_api_major_nr=$(sed -nre 's:^#define SIP_API_MAJOR_NR\s+([0-9]+):\1:p' siplib/sip.h.in)
+ if [[ ${sub_slot} != ${sip_api_major_nr} ]]; then
+ eerror
+ eerror "Ebuild sub-slot (${sub_slot}) does not match SIP_API_MAJOR_NR (${sip_api_major_nr})"
+ eerror "Please update SLOT variable as follows:"
+ eerror " SLOT=\"${SLOT%%/*}/${sip_api_major_nr}\""
+ eerror
+ die "sub-slot sanity check failed"
+ fi
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}"
+ "${S}"/configure.py
+ --destdir="$(python_get_sitedir)"
+ --incdir="$(python_get_includedir)"
+ $(use debug && echo --debug)
+ AR="$(tc-getAR) cqs"
+ CC="$(tc-getCC)"
+ CFLAGS="${CFLAGS}"
+ CFLAGS_RELEASE=
+ CXX="$(tc-getCXX)"
+ CXXFLAGS="${CXXFLAGS}"
+ CXXFLAGS_RELEASE=
+ LINK="$(tc-getCXX)"
+ LINK_SHLIB="$(tc-getCXX)"
+ LFLAGS="${LDFLAGS}"
+ LFLAGS_RELEASE=
+ RANLIB=
+ STRIP=
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ emake DESTDIR="${D}" install
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc ChangeLog NEWS
+ use doc && dodoc -r doc/html
+}
diff --git a/dev-python/sip/sip-4.9999.ebuild b/dev-python/sip/sip-4.9999.ebuild
new file mode 100644
index 00000000000..8397da722d1
--- /dev/null
+++ b/dev-python/sip/sip-4.9999.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils python-r1 toolchain-funcs
+
+DESCRIPTION="Python extension module generator for C and C++ libraries"
+HOMEPAGE="http://www.riverbankcomputing.com/software/sip/intro https://pypi.python.org/pypi/SIP"
+LICENSE="|| ( GPL-2 GPL-3 SIP )"
+
+if [[ ${PV} == *9999* ]]; then
+ # live version from mercurial repo
+ EHG_REPO_URI="http://www.riverbankcomputing.com/hg/sip"
+ inherit mercurial
+elif [[ ${PV} == *_pre* ]]; then
+ # development snapshot
+ HG_REVISION=
+ MY_P=${PN}-${PV%_pre*}-snapshot-${HG_REVISION}
+ SRC_URI="http://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.gz"
+ S=${WORKDIR}/${MY_P}
+else
+ # official release
+ SRC_URI="mirror://sourceforge/pyqt/${P}.tar.gz"
+fi
+
+# Sub-slot based on SIP_API_MAJOR_NR from siplib/sip.h.in
+SLOT="0/11"
+KEYWORDS=""
+IUSE="debug doc"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}"
+[[ ${PV} == *9999* ]] && DEPEND+="
+ sys-devel/bison
+ sys-devel/flex
+ doc? ( dev-python/sphinx[$(python_gen_usedep 'python2*')] )
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+[[ ${PV} == *9999* ]] && REQUIRED_USE+="
+ || ( $(python_gen_useflags 'python2*') )
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-4.15.5-darwin.patch
+
+ if [[ ${PV} == *9999* ]]; then
+ python_setup 'python2*'
+ "${PYTHON}" build.py prepare || die
+ if use doc; then
+ "${PYTHON}" build.py doc || die
+ fi
+ fi
+
+ # Sub-slot sanity check
+ local sub_slot=${SLOT#*/}
+ local sip_api_major_nr=$(sed -nre 's:^#define SIP_API_MAJOR_NR\s+([0-9]+):\1:p' siplib/sip.h.in)
+ if [[ ${sub_slot} != ${sip_api_major_nr} ]]; then
+ eerror
+ eerror "Ebuild sub-slot (${sub_slot}) does not match SIP_API_MAJOR_NR (${sip_api_major_nr})"
+ eerror "Please update SLOT variable as follows:"
+ eerror " SLOT=\"${SLOT%%/*}/${sip_api_major_nr}\""
+ eerror
+ die "sub-slot sanity check failed"
+ fi
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ "${PYTHON}"
+ "${S}"/configure.py
+ --destdir="$(python_get_sitedir)"
+ --incdir="$(python_get_includedir)"
+ $(use debug && echo --debug)
+ AR="$(tc-getAR) cqs"
+ CC="$(tc-getCC)"
+ CFLAGS="${CFLAGS}"
+ CFLAGS_RELEASE=
+ CXX="$(tc-getCXX)"
+ CXXFLAGS="${CXXFLAGS}"
+ CXXFLAGS_RELEASE=
+ LINK="$(tc-getCXX)"
+ LINK_SHLIB="$(tc-getCXX)"
+ LFLAGS="${LDFLAGS}"
+ LFLAGS_RELEASE=
+ RANLIB=
+ STRIP=
+ )
+ echo "${myconf[@]}"
+ "${myconf[@]}" || die
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ emake DESTDIR="${D}" install
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc ChangeLog NEWS
+ use doc && dodoc -r doc/html
+}
diff --git a/dev-python/six/Manifest b/dev-python/six/Manifest
new file mode 100644
index 00000000000..db42ca02890
--- /dev/null
+++ b/dev-python/six/Manifest
@@ -0,0 +1,4 @@
+DIST six-1.3.0.tar.gz 17701 SHA256 d59793f9b255bd00de800b97f9a50cce4fc8a44c205f7defa5bb7d691d13b852 SHA512 e8974d4bf62325f98e301e68c237489ca39cfa9ed1066f1cdfa34e18d20d0baf788cb515e44f00f1c823f9f923d2b30f63443dbc5df8c934b1a69b8c68210130 WHIRLPOOL bd259a4e2cd0ae2629a8998a01641874266928d6fe3e65669198a9706cd4f90579902196680932b5c9207db1005376ae8b4cbc7b63f30afabe8993e719df9a5e
+DIST six-1.6.1.tar.gz 24792 SHA256 d4392a7c8d91b005c002568a85faf617c67241c8cd8399cc395e8f1005aff80d SHA512 bd925295964696dc8632eb0b9d6632f25d4b461fefceb470d2bb537e98b0db9dddf9c2abb363657451b950572e91f1ab5973d12739781823f9b845abe5061057 WHIRLPOOL 54ee9309a0433231530962e64f19246cda75b36c191f6b567ccef4bb4c4cd631785d0641bc958b1cf360bc3eedcbc5bb268bc9ddf645b68c5c54bc80e184b3bc
+DIST six-1.8.0.tar.gz 26925 SHA256 047bbbba41bac37c444c75ddfdf0573dd6e2f1fbd824e6247bb26fa7d8fa3830 SHA512 e705c0213396d1220f02f2c6f724ddb9d95eefc38459b6d9bc547be859303bd404969965416f7d1614d2eab416d647d0b53502414cdc46bcb597675cf509b9ff WHIRLPOOL 1a84ecd8635e93f104447b78a6beb577639a5eebef79af40fd8c8e9796ae35c1f49dea64546f46ec31e5589c86c4b36c9fc2e28226e0c9540aabd49ebcf7bf07
+DIST six-1.9.0.tar.gz 29127 SHA256 e24052411fc4fbd1f672635537c3fc2330d9481b18c0317695b46259512c91d5 SHA512 bcd94367a26c326ff9cc884e67cd705077366b6c091ad4ec805791f0ddc05452fe046c0ad843fbd530fa956ef240b951e69a7fedd41f5e7aaaabdc4761e987ea WHIRLPOOL a71ed4a8c7688cf2fee668ea203e767a2ad073797d1a4c651704d3e6ee9070b32cf43b89bace98fd07781af98016bbe2d9ec1b2b7d67de02912cfa30be65052f
diff --git a/dev-python/six/files/1.9.0-mapping.patch b/dev-python/six/files/1.9.0-mapping.patch
new file mode 100644
index 00000000000..96ca9b649c5
--- /dev/null
+++ b/dev-python/six/files/1.9.0-mapping.patch
@@ -0,0 +1,12 @@
+Patch prevents downloading non essential .inv files during the doc build
+diff -ur six-1.5.2.orig/documentation/conf.py six-1.5.2/documentation/conf.py
+--- documentation/conf.py 2013-09-15 21:52:34.000000000 +0800
++++ documentation/conf.py 2014-01-07 18:19:24.958916446 +0800
+@@ -211,7 +211,3 @@
+ [u"Benjamin Peterson"], 1)
+ ]
+
+-# -- Intersphinx ---------------------------------------------------------------
+-
+-intersphinx_mapping = {"py2" : ("https://docs.python.org/2/", None),
+- "py3" : ("https://docs.python.org/3/", None)}
diff --git a/dev-python/six/files/six-1.5.2-mapping.patch b/dev-python/six/files/six-1.5.2-mapping.patch
new file mode 100644
index 00000000000..44481765c12
--- /dev/null
+++ b/dev-python/six/files/six-1.5.2-mapping.patch
@@ -0,0 +1,12 @@
+Patch prevents downloading non essential .inv files during the doc build
+diff -ur six-1.5.2.orig/documentation/conf.py six-1.5.2/documentation/conf.py
+--- documentation/conf.py 2013-09-15 21:52:34.000000000 +0800
++++ documentation/conf.py 2014-01-07 18:19:24.958916446 +0800
+@@ -211,7 +211,3 @@
+ [u"Benjamin Peterson"], 1)
+ ]
+
+-# -- Intersphinx ---------------------------------------------------------------
+-
+-intersphinx_mapping = {"py2" : ("http://docs.python.org/2/", None),
+- "py3" : ("http://docs.python.org/3/", None)}
diff --git a/dev-python/six/files/six-1.9.0-winreg.patch b/dev-python/six/files/six-1.9.0-winreg.patch
new file mode 100644
index 00000000000..57e2074c826
--- /dev/null
+++ b/dev-python/six/files/six-1.9.0-winreg.patch
@@ -0,0 +1,27 @@
+# HG changeset patch
+# User Benjamin Peterson <benjamin@python.org>
+# Date 1426865725 18000
+# Node ID c996ed1dc0064f45e691f1664d06001ae07fff00
+# Parent 7638872a6c760448ed8648d692c8eb702a29c361
+# Parent 24dc6a6f7384712152dd1e881c115fb4805be9ea
+Merged in mrossini/six (pull request #55)
+
+_winreg is added to the moves module under windows only
+
+diff --git a/six.py b/six.py
+--- a/six.py
++++ b/six.py
+@@ -298,8 +298,12 @@
+ MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"),
+ MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"),
+ MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"),
+- MovedModule("winreg", "_winreg"),
+ ]
++#Add windows specific modules if needed
++if sys.platform in ('win32', 'cygwin'):
++ _moved_attributes += [
++ MovedModule("winreg", "_winreg"),
++ ]
+ for attr in _moved_attributes:
+ setattr(_MovedItems, attr.name, attr)
+ if isinstance(attr, MovedModule):
diff --git a/dev-python/six/metadata.xml b/dev-python/six/metadata.xml
new file mode 100644
index 00000000000..ce1e3409b59
--- /dev/null
+++ b/dev-python/six/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">six</remote-id>
+ <remote-id type="bitbucket">gutworth/six</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/six/six-1.3.0.ebuild b/dev-python/six/six-1.3.0.ebuild
new file mode 100644
index 00000000000..80f254d4f87
--- /dev/null
+++ b/dev-python/six/six-1.3.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python 2 and 3 compatibility library"
+HOMEPAGE="https://bitbucket.org/gutworth/six http://pypi.python.org/pypi/six"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos"
+IUSE="doc test"
+
+DEPEND="doc? ( dev-python/sphinx )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C documentation html
+}
+
+python_test() {
+ py.test || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/_build/html/ )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/six/six-1.6.1.ebuild b/dev-python/six/six-1.6.1.ebuild
new file mode 100644
index 00000000000..dbace39ef66
--- /dev/null
+++ b/dev-python/six/six-1.6.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python 2 and 3 compatibility library"
+HOMEPAGE="https://bitbucket.org/gutworth/six http://pypi.python.org/pypi/six"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ~ppc ~ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="doc? ( dev-python/sphinx )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.5.2-mapping.patch )
+
+python_compile_all() {
+ use doc && emake -C documentation html
+}
+
+python_test() {
+ py.test -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/_build/html/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/six/six-1.8.0.ebuild b/dev-python/six/six-1.8.0.ebuild
new file mode 100644
index 00000000000..7bec6183129
--- /dev/null
+++ b/dev-python/six/six-1.8.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python 2 and 3 compatibility library"
+HOMEPAGE="https://bitbucket.org/gutworth/six http://pypi.python.org/pypi/six"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc test"
+
+DEPEND="doc? ( dev-python/sphinx )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.5.2-mapping.patch )
+
+python_compile_all() {
+ use doc && emake -C documentation html
+}
+
+python_test() {
+ py.test -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/_build/html/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/six/six-1.9.0-r1.ebuild b/dev-python/six/six-1.9.0-r1.ebuild
new file mode 100644
index 00000000000..c2ee46db986
--- /dev/null
+++ b/dev-python/six/six-1.9.0-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python 2 and 3 compatibility library"
+HOMEPAGE="https://bitbucket.org/gutworth/six http://pypi.python.org/pypi/six"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-mapping.patch
+ "${FILESDIR}"/${P}-winreg.patch
+ )
+
+python_compile_all() {
+ use doc && emake -C documentation html
+}
+
+python_test() {
+ py.test -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/_build/html/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/six/six-1.9.0.ebuild b/dev-python/six/six-1.9.0.ebuild
new file mode 100644
index 00000000000..08cf8137a90
--- /dev/null
+++ b/dev-python/six/six-1.9.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python 2 and 3 compatibility library"
+HOMEPAGE="https://bitbucket.org/gutworth/six http://pypi.python.org/pypi/six"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="doc test"
+
+DEPEND="doc? ( dev-python/sphinx )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/${PV}-mapping.patch )
+
+python_compile_all() {
+ use doc && emake -C documentation html
+}
+
+python_test() {
+ py.test -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/_build/html/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/six/six-9999.ebuild b/dev-python/six/six-9999.ebuild
new file mode 100644
index 00000000000..f0d81184fb9
--- /dev/null
+++ b/dev-python/six/six-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1 mercurial
+
+DESCRIPTION="Python 2 and 3 compatibility library"
+HOMEPAGE="https://bitbucket.org/gutworth/six http://pypi.python.org/pypi/six"
+SRC_URI=""
+EHG_REPO_URI="https://bitbucket.org/gutworth/six"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS=""
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C documentation html
+}
+
+python_test() {
+ py.test -v || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( documentation/_build/html/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/skype4py/Manifest b/dev-python/skype4py/Manifest
new file mode 100644
index 00000000000..8df23a98e3b
--- /dev/null
+++ b/dev-python/skype4py/Manifest
@@ -0,0 +1 @@
+DIST skype4py-1.0.35.tar.gz 143453 SHA256 47b61664a47d29f3d5d4a3d6f01a7c5c13c1610767b6ed9e48c07439003533b8 SHA512 daf07b08e5a3dda47f1e643ebbf6d8d01175e7f3a23cf6daf852c75f4b2552b8c68f255e27c89ea8773836b2b154193fed1b3b5e28ed07b503b5c2f95ee4314f WHIRLPOOL 567aa5247959881277449a49f3250831fbd3ce416eadb78f3931b6b2a6a6812dbf2bfbf4cff3a1bef2a53791aaecf124ef152146de0f1c1c22f62047ea6da964
diff --git a/dev-python/skype4py/metadata.xml b/dev-python/skype4py/metadata.xml
new file mode 100644
index 00000000000..75a0c402451
--- /dev/null
+++ b/dev-python/skype4py/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Skype4Py</remote-id>
+ <remote-id type="github">awahlig/skype4py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/skype4py/skype4py-1.0.35-r1.ebuild b/dev-python/skype4py/skype4py-1.0.35-r1.ebuild
new file mode 100644
index 00000000000..fef9178ad73
--- /dev/null
+++ b/dev-python/skype4py/skype4py-1.0.35-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for the Skype API"
+HOMEPAGE="https://github.com/awahlig/skype4py http://pypi.python.org/pypi/Skype4Py/"
+SRC_URI="https://github.com/awahlig/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="net-im/skype
+ dev-python/pygobject:2[${PYTHON_USEDEP}]
+ || ( dev-python/dbus-python[${PYTHON_USEDEP}] x11-libs/libX11 )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( CHANGES.rst README.rst )
diff --git a/dev-python/sleekxmpp/Manifest b/dev-python/sleekxmpp/Manifest
new file mode 100644
index 00000000000..26d6fd4b66b
--- /dev/null
+++ b/dev-python/sleekxmpp/Manifest
@@ -0,0 +1,2 @@
+DIST sleekxmpp-1.3.0.tar.gz 1013915 SHA256 1665b42ed489c7f0411b466172b72752a6caeeb19310314763b447d9a31980e8 SHA512 e48a9b8da8bfbcd97ed372b7fafab82727851f1b1a09870c652dbbdbd6d529d6da26c5778e3d23e2f67aa837713ac14475f9c2cbca708153c3d06960e8cbe53b WHIRLPOOL c7e8a771f015f8f1adfa1e15f4799d55d9590db668a8ddd10065353a793ea93dabe1b8f921d31246934d57de24fad12692ec7fbdecf505116efd618fa4c4a078
+DIST sleekxmpp-1.3.1.tar.gz 1014004 SHA256 72f2887ccb29bd53f9bbf09225274d11d75e88507ea3ddee97cef0b289bcb04f SHA512 1f3c68672536da0d20cd8717f7835096003019f03a05fb08ce87f784b0636d781aa78691ee54927d4755e71a57956972af0a653deb6eff0f7eb16b9a236baa65 WHIRLPOOL 464de44bff78c294d35c01b89319b82bb6f782269c0b880ddb2692b85b0e05ed5ab47e0acb3476187c10440f3bb77f1487f6795a6a08dd6f34cdcfdf8a5ff6cb
diff --git a/dev-python/sleekxmpp/metadata.xml b/dev-python/sleekxmpp/metadata.xml
new file mode 100644
index 00000000000..e75375bafac
--- /dev/null
+++ b/dev-python/sleekxmpp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">fritzy/SleekXMPP</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sleekxmpp/sleekxmpp-1.3.0.ebuild b/dev-python/sleekxmpp/sleekxmpp-1.3.0.ebuild
new file mode 100644
index 00000000000..e92474c9ed1
--- /dev/null
+++ b/dev-python/sleekxmpp/sleekxmpp-1.3.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit eutils distutils-r1
+
+MY_PN=SleekXMPP
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python library for XMPP"
+HOMEPAGE="http://sleekxmpp.com/ https://github.com/fritzy/SleekXMPP/"
+SRC_URI="https://github.com/fritzy/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="crypt"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="crypt? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/sleekxmpp/sleekxmpp-1.3.1.ebuild b/dev-python/sleekxmpp/sleekxmpp-1.3.1.ebuild
new file mode 100644
index 00000000000..67b298a0d5d
--- /dev/null
+++ b/dev-python/sleekxmpp/sleekxmpp-1.3.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit eutils distutils-r1
+
+MY_PN=SleekXMPP
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python library for XMPP"
+HOMEPAGE="http://sleekxmpp.com/ https://github.com/fritzy/SleekXMPP/"
+SRC_URI="https://github.com/fritzy/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="crypt"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="crypt? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/slowaes/Manifest b/dev-python/slowaes/Manifest
new file mode 100644
index 00000000000..a901de7aa00
--- /dev/null
+++ b/dev-python/slowaes/Manifest
@@ -0,0 +1 @@
+DIST slowaes-0.1a1.tar.gz 7017 SHA256 83658ae54cc116b96f7fdb12fdd0efac3a4e8c7c7064e3fac3f4a881aa54bf09 SHA512 09126a6cf2a0da27c45b12d25c3a9147f47448311f9e36b6db2aa62d8b85f3fdf66f10f8f5d84edf48cde7f6c766d9ed384832f9ca0e28f95104149a7f424d95 WHIRLPOOL 85090de0ddb947470bc932ddc80f28316bd193329711c9e4e83982914ab18379b0fbdd986c087ba1ea9929a80bb0975bc09610a92d3b0d3d05d046e561c3f27e
diff --git a/dev-python/slowaes/metadata.xml b/dev-python/slowaes/metadata.xml
new file mode 100644
index 00000000000..8de95c1970c
--- /dev/null
+++ b/dev-python/slowaes/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <maintainer>
+ <email>luke-jr+gentoobugs@utopios.org</email>
+ <name>Luke Dashjr</name>
+ </maintainer>
+ <maintainer>
+ <email>maksverver@geocities.com</email>
+ <name>Maks Verver</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">slowaes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/slowaes/slowaes-0.1-r1.ebuild b/dev-python/slowaes/slowaes-0.1-r1.ebuild
new file mode 100644
index 00000000000..91c240785bb
--- /dev/null
+++ b/dev-python/slowaes/slowaes-0.1-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_P=${P}a1
+DESCRIPTION="AES implementation in pure Python"
+HOMEPAGE="http://code.google.com/p/slowaes/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPENDS="dev-python/setuptools"
+
+S=${WORKDIR}/${MY_P}
diff --git a/dev-python/smmap/Manifest b/dev-python/smmap/Manifest
new file mode 100644
index 00000000000..5bb42a07b6f
--- /dev/null
+++ b/dev-python/smmap/Manifest
@@ -0,0 +1,2 @@
+DIST smmap-0.8.3.tar.gz 21787 SHA256 9b336afff785e8934afe22a520d2c88574ae716aaf3ce8290581af943ba6fdde SHA512 dff14f25487d83ac348d3f4c9556f6e972c4e1166ac70cc9ca0b70a7e210750a67f4ed85203bebdacc6e8f912cabf55135a0da26c7ae2b017caf2f1682b22608 WHIRLPOOL 3eb3979877ff43c1c518b9313228f52627621ac187c416b61e43f1be1dbb1efc5661ba62a4d3088ed8143a780404296d26b729dab9ff6e9432f78069dfb95b1a
+DIST smmap-0.9.0.tar.gz 22082 SHA256 0e2b62b497bd5f0afebc002eda4d90df9d209c30ef257e8673c90a6b5c119d62 SHA512 704e1c67b1f3e1303578cc26d4af8296a11b5f5013e8e8d933d3096e588911b801ddfb162d0e35a49c00256032824386d77e4f38d58704cd57baf21586b40e03 WHIRLPOOL 9fb316ee42e7d0e9ee46cda05659d3abbe1c0b17917d675c774b1b34e35e16497afef97b0575478bf7d795c6242d77e1456630b3d7739ef979ca8d08ba042498
diff --git a/dev-python/smmap/metadata.xml b/dev-python/smmap/metadata.xml
new file mode 100644
index 00000000000..e4c82cb2ad4
--- /dev/null
+++ b/dev-python/smmap/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">smmap</remote-id>
+ <remote-id type="github">Byron/smmap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/smmap/smmap-0.8.3.ebuild b/dev-python/smmap/smmap-0.8.3.ebuild
new file mode 100644
index 00000000000..661af0d7b2b
--- /dev/null
+++ b/dev-python/smmap/smmap-0.8.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A pure git implementation of a sliding window memory map manager"
+HOMEPAGE="
+ http://pypi.python.org/pypi/smmap
+ https://github.com/Byron/smmap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nosexcover[${PYTHON_USEDEP}]
+ )
+ "
+RDEPEND=""
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/smmap/smmap-0.9.0.ebuild b/dev-python/smmap/smmap-0.9.0.ebuild
new file mode 100644
index 00000000000..4a804cfb7ad
--- /dev/null
+++ b/dev-python/smmap/smmap-0.9.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A pure git implementation of a sliding window memory map manager"
+HOMEPAGE="
+ http://pypi.python.org/pypi/smmap
+ https://github.com/Byron/smmap"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nosexcover[${PYTHON_USEDEP}]
+ )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/snakefood/Manifest b/dev-python/snakefood/Manifest
new file mode 100644
index 00000000000..b7b05392ba8
--- /dev/null
+++ b/dev-python/snakefood/Manifest
@@ -0,0 +1 @@
+DIST snakefood-1.3.1.tar.bz2 1026656 SHA256 3f8dd02c3cd4a5ef3524db9c81f3fe2a6fc10c7355399874213d76832e0a247d SHA512 9609e593e3d0adc946cc78ee1734f6f0ab710205b8fbbbddac9fd25525522c31864b3593476b3f0dd319986238f270e5a1854b9e0abee96f8be3ca2f4bf81a38 WHIRLPOOL 7ab2f0dad2a01e97d363c21ff5463c871ca17f954fb36f928f397291568bf4fcd45b21f261c2cdee9b31a18e983d7565470a614f05a7af19cefd7817feba1a70
diff --git a/dev-python/snakefood/metadata.xml b/dev-python/snakefood/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/snakefood/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/snakefood/snakefood-1.3.1-r1.ebuild b/dev-python/snakefood/snakefood-1.3.1-r1.ebuild
new file mode 100644
index 00000000000..a03c7757898
--- /dev/null
+++ b/dev-python/snakefood/snakefood-1.3.1-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Generate dependency graphs from Python code"
+HOMEPAGE="http://furius.ca/snakefood/"
+SRC_URI="http://furius.ca/downloads/${PN}/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/snakeoil/Manifest b/dev-python/snakeoil/Manifest
new file mode 100644
index 00000000000..cfb1dccb003
--- /dev/null
+++ b/dev-python/snakeoil/Manifest
@@ -0,0 +1 @@
+DIST snakeoil-0.6.4.tar.gz 192291 SHA256 8636918381db16bf910afcb30a5e8722038afda32fbf41a977fabea75775131e SHA512 c2290801426de1fd6fe3e668edfc36e05cf50a6990f336eb604eece27f56716b5cff672ca7642906636fa1a8afa82f37867e898680f54b154c37cf51ef72eb9e WHIRLPOOL 08c778296f0881c1884eb0c23fc2e4e81b28f406971d84d71641ac4b4b864e8f472c06fad2937d279565b627ef983f89dbe6e6e1a5dbe7b4263ac00b5d76aea5
diff --git a/dev-python/snakeoil/metadata.xml b/dev-python/snakeoil/metadata.xml
new file mode 100644
index 00000000000..d50cede24ba
--- /dev/null
+++ b/dev-python/snakeoil/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">pkgcore/snakeoil</remote-id>
+ <remote-id type="pypi">snakeoil</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/snakeoil/snakeoil-0.6.4.ebuild b/dev-python/snakeoil/snakeoil-0.6.4.ebuild
new file mode 100644
index 00000000000..34870683e28
--- /dev/null
+++ b/dev-python/snakeoil/snakeoil-0.6.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/pkgcore/snakeoil.git"
+ inherit git-r3
+else
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+fi
+
+DESCRIPTION="Miscellaneous python utility code"
+HOMEPAGE="http://github.com/pkgcore/snakeoil"
+
+LICENSE="BSD"
+SLOT="0"
+
+python_configure_all() {
+ # disable snakeoil 2to3 caching
+ unset PY2TO3_CACHEDIR
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/snakeoil/snakeoil-9999.ebuild b/dev-python/snakeoil/snakeoil-9999.ebuild
new file mode 100644
index 00000000000..218588cbde6
--- /dev/null
+++ b/dev-python/snakeoil/snakeoil-9999.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/pkgcore/snakeoil.git"
+ inherit git-r3
+else
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+fi
+
+DESCRIPTION="Miscellaneous python utility code"
+HOMEPAGE="http://github.com/pkgcore/snakeoil"
+
+LICENSE="BSD"
+SLOT="0"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_configure_all() {
+ # disable snakeoil 2to3 caching
+ unset PY2TO3_CACHEDIR
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/snappy/Manifest b/dev-python/snappy/Manifest
new file mode 100644
index 00000000000..8177e7ed6d7
--- /dev/null
+++ b/dev-python/snappy/Manifest
@@ -0,0 +1 @@
+DIST python-snappy-0.5.tar.gz 12495 SHA256 c7fe37679ebfc73840c7cc83657a76bc1ac978efa286b8ac3569fd0630d2b80d SHA512 0be15ea133e3a47c6cdb2a340061bf2779d4aae4b34848cd60e6657c168a76970c41f2bae4f57993862bb65c75baa7cf6a562fcbff4c81e22fe7bac69e7d73b1 WHIRLPOOL e0a3afb0d21bd11f6935701fdd7ebc4f0149502d36852c930ea8600cef44f25eb68d3848c96560090d56e4a1c88990d8a3fb9ac6cc854e0b9eb00496501f9759
diff --git a/dev-python/snappy/metadata.xml b/dev-python/snappy/metadata.xml
new file mode 100644
index 00000000000..265fef81218
--- /dev/null
+++ b/dev-python/snappy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">python-snappy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/snappy/snappy-0.5-r2.ebuild b/dev-python/snappy/snappy-0.5-r2.ebuild
new file mode 100644
index 00000000000..671eede3c0e
--- /dev/null
+++ b/dev-python/snappy/snappy-0.5-r2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+MY_PN=python-${PN}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python library for the snappy compression library from Google"
+HOMEPAGE="http://pypi.python.org/pypi/python-snappy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="amd64 arm x86"
+SLOT="0"
+
+DEPEND=">=app-arch/snappy-1.0.2"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+python_test() {
+ "${PYTHON}" test_snappy.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/snowballstemmer/Manifest b/dev-python/snowballstemmer/Manifest
new file mode 100644
index 00000000000..07f34b9d542
--- /dev/null
+++ b/dev-python/snowballstemmer/Manifest
@@ -0,0 +1 @@
+DIST snowballstemmer-1.2.0.tar.gz 49639 SHA256 6d54f350e7a0e48903a4e3b6b2cabd1b43e23765fbc975065402893692954191 SHA512 3359657867b9478bb58e6cc67a08212a490d5af07fed7098871b1e6a59def0031bd0c2a846cc9a0d70c94c64ba4d2ccb2f41afedde61d4a7235d26f68374bd02 WHIRLPOOL bf84c482c35ef9e121f13865e43bfc4bcc6ed13959069d5da4f047309986795bcaf09a5cecaf16361d8ea8365f9bf26ca6987574b7ad2cc25572d0992946a44b
diff --git a/dev-python/snowballstemmer/metadata.xml b/dev-python/snowballstemmer/metadata.xml
new file mode 100644
index 00000000000..b37f5be03c6
--- /dev/null
+++ b/dev-python/snowballstemmer/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">snowballstemmer</remote-id>
+ <remote-id type="github">shibukawa/snowball_py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/snowballstemmer/snowballstemmer-1.2.0.ebuild b/dev-python/snowballstemmer/snowballstemmer-1.2.0.ebuild
new file mode 100644
index 00000000000..b4dc132b11b
--- /dev/null
+++ b/dev-python/snowballstemmer/snowballstemmer-1.2.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Stemmer algorithms generated from Snowball algorithms"
+HOMEPAGE="https://github.com/shibukawa/snowball_py https://pypi.python.org/pypi/snowballstemmer/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
diff --git a/dev-python/soappy/Manifest b/dev-python/soappy/Manifest
new file mode 100644
index 00000000000..51dc30ce745
--- /dev/null
+++ b/dev-python/soappy/Manifest
@@ -0,0 +1,3 @@
+DIST SOAPpy-0.12.20.zip 172192 SHA256 ed42ee76a1f1c6ce767296d67ef482059e32eb66cdcbc3ed6b6b9c3922444277 SHA512 f4140327295d0d301093aa13ae35ebc1faabd4aafc259b9866072d57da82bc7742fc852904bddc978792f97cb577afc97e35d47f350c9e5f1426a4928aeb8351 WHIRLPOOL a5568ba25f9e3b22310f447c35f612038f32fc60b20b28aa292b4db7239bb9247772a1192eb2ec1e2f51429c1c1f99dc54ac37b6aae9b4d1418841ae07072f28
+DIST SOAPpy-0.12.22.zip 172855 SHA256 e70845906bb625144ae6a8df4534d66d84431ff8e21835d7b401ec6d8eb447a5 SHA512 d75d0bf8e88c8ecae57f51a201f9ab6f24fc41856ee2093e7e2e73e5d8618c9a766a69140df28a24b6d8493b53555c09502684c6d2fd78e90a3c53bba52f388b WHIRLPOOL 8ac248d98f9da45bcbdd9a9bf55bb7fd4b83de097ca641453c7cf18833c4dc5cd5b4e09e3e5bce3cf4be0c6c09e4e10638aa6a5244afc6cc791996b63a1c3d5e
+DIST SOAPpy-0.12.5.tar.gz 153106 SHA256 8d8e3bf304f5669432d58cc0c2870766096ef5e4e89889aa1bce6d7a68994ef7 SHA512 cee6a4556beac20c68c3bcfe14454b9911655f78987c6fe9a6ce5f08090ded7bbf71a067d848368cf20101ff374e0992f34428b48b9a451eb67a925e92a149a9 WHIRLPOOL 2ba4b0a7cacbf132ca824a1703c811ecba19f852c88b9ac994feba10cce5e9f98769f284cc080c4a6dfd1cba3db7c2d1d69a258bdd3c3f1aeadb11b4cbfbc137
diff --git a/dev-python/soappy/files/soappy-0.12.0-python-2.5-compat.patch b/dev-python/soappy/files/soappy-0.12.0-python-2.5-compat.patch
new file mode 100644
index 00000000000..297bcc4b0c2
--- /dev/null
+++ b/dev-python/soappy/files/soappy-0.12.0-python-2.5-compat.patch
@@ -0,0 +1,68 @@
+diff -urN SOAPpy.orig/Client.py SOAPpy/Client.py
+--- SOAPpy.orig/Client.py 2005-02-21 21:27:09.000000000 +0100
++++ SOAPpy/Client.py 2007-01-07 15:46:13.000000000 +0100
+@@ -40,11 +40,11 @@
+ ################################################################################
+ """
+
++from __future__ import nested_scopes
++
+ ident = '$Id: Client.py,v 1.27 2005/02/21 20:27:09 warnes Exp $'
+ from version import __version__
+
+-from __future__ import nested_scopes
+-
+ #import xml.sax
+ import urllib
+ from types import *
+diff -urN SOAPpy.orig/GSIServer.py SOAPpy/GSIServer.py
+--- SOAPpy.orig/GSIServer.py 2005-02-15 17:32:22.000000000 +0100
++++ SOAPpy/GSIServer.py 2007-01-07 15:46:38.000000000 +0100
+@@ -43,11 +43,11 @@
+ ################################################################################
+ """
+
++from __future__ import nested_scopes
++
+ ident = '$Id: GSIServer.py,v 1.5 2005/02/15 16:32:22 warnes Exp $'
+ from version import __version__
+
+-from __future__ import nested_scopes
+-
+ #import xml.sax
+ import re
+ import socket
+diff -urN SOAPpy.orig/Server.py SOAPpy/Server.py
+--- SOAPpy.orig/Server.py 2005-02-15 17:32:22.000000000 +0100
++++ SOAPpy/Server.py 2007-01-07 15:46:59.000000000 +0100
+@@ -40,11 +40,11 @@
+ ################################################################################
+ """
+
++from __future__ import nested_scopes
++
+ ident = '$Id: Server.py,v 1.21 2005/02/15 16:32:22 warnes Exp $'
+ from version import __version__
+
+-from __future__ import nested_scopes
+-
+ #import xml.sax
+ import re
+ import socket
+diff -urN SOAPpy.orig/Types.py SOAPpy/Types.py
+--- SOAPpy.orig/Types.py 2005-02-22 05:29:43.000000000 +0100
++++ SOAPpy/Types.py 2007-01-07 15:47:17.000000000 +0100
+@@ -33,11 +33,11 @@
+ ################################################################################
+ """
+
++from __future__ import nested_scopes
++
+ ident = '$Id: Types.py,v 1.19 2005/02/22 04:29:43 warnes Exp $'
+ from version import __version__
+
+-from __future__ import nested_scopes
+-
+ import UserList
+ import base64
+ import cgi
diff --git a/dev-python/soappy/metadata.xml b/dev-python/soappy/metadata.xml
new file mode 100644
index 00000000000..8ffda60e16d
--- /dev/null
+++ b/dev-python/soappy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">SOAPpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/soappy/soappy-0.12.20.ebuild b/dev-python/soappy/soappy-0.12.20.ebuild
new file mode 100644
index 00000000000..60df7df9ab1
--- /dev/null
+++ b/dev-python/soappy/soappy-0.12.20.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="ssl?,xml"
+
+inherit distutils-r1
+
+MY_PN="SOAPpy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SOAP Services for Python"
+HOMEPAGE="http://pywebsvcs.sourceforge.net/ http://pypi.python.org/pypi/SOAPpy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x64-macos ~x86-macos"
+IUSE="examples ssl"
+
+RDEPEND="dev-python/fpconst[${PYTHON_USEDEP}]
+ dev-python/wstools[${PYTHON_USEDEP}]
+ ssl? ( dev-python/m2crypto[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( CHANGES.txt README.txt docs/. )
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ docinto examples
+ dodoc -r bid contrib tools validate
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/soappy/soappy-0.12.22.ebuild b/dev-python/soappy/soappy-0.12.22.ebuild
new file mode 100644
index 00000000000..530a3659f39
--- /dev/null
+++ b/dev-python/soappy/soappy-0.12.22.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="ssl?,xml"
+
+inherit distutils-r1
+
+MY_PN="SOAPpy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SOAP Services for Python"
+HOMEPAGE="http://pywebsvcs.sourceforge.net/ http://pypi.python.org/pypi/SOAPpy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc64 ~x86"
+
+IUSE="examples ssl"
+
+RDEPEND="dev-python/wstools[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ ssl? ( dev-python/m2crypto[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( CHANGES.txt README.txt docs/. )
+
+python_install_all() {
+ if use examples; then
+ docinto examples
+ dodoc -r bid contrib tools validate
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/soappy/soappy-0.12.5-r2.ebuild b/dev-python/soappy/soappy-0.12.5-r2.ebuild
new file mode 100644
index 00000000000..f504dd50e28
--- /dev/null
+++ b/dev-python/soappy/soappy-0.12.5-r2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="ssl?,xml"
+
+inherit distutils-r1
+
+MY_PN="SOAPpy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SOAP Services for Python"
+HOMEPAGE="http://pywebsvcs.sourceforge.net/ http://pypi.python.org/pypi/SOAPpy"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x64-macos ~x86-macos"
+IUSE="examples ssl"
+
+RDEPEND="dev-python/fpconst[${PYTHON_USEDEP}]
+ dev-python/wstools[${PYTHON_USEDEP}]
+ ssl? ( dev-python/m2crypto[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( CHANGES.txt README.txt docs/. )
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ docinto examples
+ dodoc -r bid contrib tools validate
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/socketio-client/Manifest b/dev-python/socketio-client/Manifest
new file mode 100644
index 00000000000..300887009fe
--- /dev/null
+++ b/dev-python/socketio-client/Manifest
@@ -0,0 +1 @@
+DIST socketio-client-0.5.6.tar.gz 12069 SHA256 540d8ab209154d1d9cdb97c170c589a14f7d7f17e19c14e2f59f0307e6175485 SHA512 2ab316823cce0201b0c3a55b04a04fa39fe97f990b879fd5b45ccf6fa2ee6412d8c08d9892120f9a98fcf438e7e6302cf319a4df6cda061b90e1d802580563b9 WHIRLPOOL 6ba7f776ab0af9ae5efb0aca3d908daa018a83dd69e0a490efcd03c912c1c402d5c9a1381804df8cce333566182c76b321c4dd6bf14c948ede984aa752152dab
diff --git a/dev-python/socketio-client/metadata.xml b/dev-python/socketio-client/metadata.xml
new file mode 100644
index 00000000000..d807809d831
--- /dev/null
+++ b/dev-python/socketio-client/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">socketIO-client</remote-id>
+ <remote-id type="github">invisibleroads/socketIO-client</remote-id>
+ </upstream>
+ <maintainer>
+ <email>zmedico@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/socketio-client/socketio-client-0.5.6.ebuild b/dev-python/socketio-client/socketio-client-0.5.6.ebuild
new file mode 100644
index 00000000000..0b67809aa15
--- /dev/null
+++ b/dev-python/socketio-client/socketio-client-0.5.6.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_{3,4}} )
+
+inherit distutils-r1
+
+MY_PN="socketIO-client"
+DESCRIPTION="A socket.io client library for Python"
+HOMEPAGE="https://github.com/invisibleroads/${MY_PN}/ https://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/websocket-client[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+RESTRICT="test"
+
+python_test() {
+ PYTHONPATH="${PWD}" python -m unittest
+}
diff --git a/dev-python/socketpool/Manifest b/dev-python/socketpool/Manifest
new file mode 100644
index 00000000000..b59a0f74562
--- /dev/null
+++ b/dev-python/socketpool/Manifest
@@ -0,0 +1,2 @@
+DIST socketpool-0.5.2.tar.gz 10351 SHA256 5f381048763e26d59ccd8343c2c349c06117ce09154e24f777d8364a1f5d0036 SHA512 6600719ad8cd70f4085f65b364594f3aa118a8c3b8e2cbfb7af43d09fca9a42858b67d95f0499b74f1f3bf7dcb163bf8f3500e705f147a3009accc8c4a44528d WHIRLPOOL 799d424483d090cce1f0cb7392aea755d0aebe5221d731030688d105f5e9efca428eb6d3fa1cc106daa3033ce9bd9a5bcd893d7293bd15120ab8948fa31969df
+DIST socketpool-0.5.3.tar.gz 9793 SHA256 a06733434a56c4b60b8fcaa168102d2386253d36425804d55532a6bbbda6e2ec SHA512 6d16a18927672157703fb5a29f4332241f9ddf743dfee8f2606d600dbb75d547f2e0dcc0398febe55df3319829a80b3f537b5877679e4f674569ef55de78c1b7 WHIRLPOOL 048693619a9813d97a82408ca26c66e847fa4710fc6051379a36e26f32f0310ae33561a6e2529a584e14795de577ce424af5b793fd4fbae9aa53c324c437fa85
diff --git a/dev-python/socketpool/files/socketpool-0.5.2-locale.patch b/dev-python/socketpool/files/socketpool-0.5.2-locale.patch
new file mode 100644
index 00000000000..aa0af681a76
--- /dev/null
+++ b/dev-python/socketpool/files/socketpool-0.5.2-locale.patch
@@ -0,0 +1,21 @@
+diff -ur socketpool-0.5.2.orig/setup.py socketpool-0.5.2/setup.py
+--- socketpool-0.5.2.orig/setup.py 2012-08-05 12:33:47.000000000 +0800
++++ socketpool-0.5.2/setup.py 2013-02-05 00:22:13.685705089 +0800
+@@ -5,7 +5,7 @@
+ # See the NOTICE for more information.
+
+
+-import os
++import os, io
+ from setuptools import setup, find_packages
+
+ CLASSIFIERS = [
+@@ -22,7 +22,7 @@
+
+
+ # read long description
+-with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as f:
++with io.open(os.path.join(os.path.dirname(__file__), 'README.rst'), encoding='utf8') as f:
+ long_description = f.read()
+
+ DATA_FILES = [
diff --git a/dev-python/socketpool/files/socketpool-0.5.2-pool.patch b/dev-python/socketpool/files/socketpool-0.5.2-pool.patch
new file mode 100644
index 00000000000..b6ce4965d04
--- /dev/null
+++ b/dev-python/socketpool/files/socketpool-0.5.2-pool.patch
@@ -0,0 +1,35 @@
+patch made from https://github.com/benoitc/socketpool/blob/06d659612f15cb4c207a2fc508b6099e09d3fde7/socketpool/pool.py
+in reply to; size is supposed to be a property. fix #20
+commit 06d659612f15cb4c207a2fc508b6099e09d3fde7.
+file included changes making the first hunk
+diff -ur socketpool-0.5.2.orig/socketpool/pool.py socketpool-0.5.2/socketpool/pool.py
+--- socketpool/pool.py 2012-08-05 12:22:13.000000000 +0800
++++ socketpool/pool.py 2013-02-10 22:51:45.607637365 +0800
+@@ -48,8 +48,12 @@
+ max_size=10, options=None,
+ reap_connections=True, backend="thread"):
+
+- self.backend_mod = load_backend(backend)
+- self.backend = backend
++ if isinstance(backend, str):
++ self.backend_mod = load_backend(backend)
++ self.backend = backend
++ else:
++ self.backend_mod = backend
++ self.backend = str(getattr(backend, '__name__', backend))
+ self.max_size = max_size
+ self.pool = getattr(self.backend_mod, 'PriorityQueue')()
+ self._free_conns = 0
+@@ -97,6 +101,7 @@
+ if conn.is_connected():
+ conn.invalidate()
+
++ @property
+ def size(self):
+ return self.pool.qsize()
+
+@@ -193,3 +198,4 @@
+ finally:
+ self.release_connection(conn)
+
++
diff --git a/dev-python/socketpool/metadata.xml b/dev-python/socketpool/metadata.xml
new file mode 100644
index 00000000000..5d682bb96d1
--- /dev/null
+++ b/dev-python/socketpool/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">socketpool</remote-id>
+ <remote-id type="github">benoitc/socketpool</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/socketpool/socketpool-0.5.2-r1.ebuild b/dev-python/socketpool/socketpool-0.5.2-r1.ebuild
new file mode 100644
index 00000000000..df3dbb514d9
--- /dev/null
+++ b/dev-python/socketpool/socketpool-0.5.2-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A simple Python socket pool"
+HOMEPAGE="http://github.com/benoitc/socketpool/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="examples"
+LICENSE="|| ( MIT public-domain )"
+SLOT="0"
+
+RDEPEND="dev-python/gevent"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+PATCHES=( "${FILESDIR}"/${P}-locale.patch
+ "${FILESDIR}"/${P}-pool.patch )
+
+src_install() {
+ distutils-r1_src_install
+ if use examples; then
+ docompress -x usr/share/doc/${P}/examples
+ insinto usr/share/doc/${P}
+ doins -r examples/
+ fi
+}
+
+python_test() {
+ PYTHONPATH=. py.test tests/test_pool_01.py
+}
diff --git a/dev-python/socketpool/socketpool-0.5.2.ebuild b/dev-python/socketpool/socketpool-0.5.2.ebuild
new file mode 100644
index 00000000000..45e2e7bd508
--- /dev/null
+++ b/dev-python/socketpool/socketpool-0.5.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple Python socket pool"
+HOMEPAGE="http://github.com/benoitc/socketpool/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+LICENSE="|| ( MIT public-domain )"
+SLOT="0"
+
+RDEPEND="dev-python/gevent"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_install() {
+ distutils-r1_src_install
+ if use examples; then
+ docompress -x usr/share/doc/${P}/examples
+ insinto usr/share/doc/${P}
+ doins -r examples/
+ fi
+}
+src_test() {
+ PYTHONPATH=. py.test tests/test_pool_01.py
+}
diff --git a/dev-python/socketpool/socketpool-0.5.3.ebuild b/dev-python/socketpool/socketpool-0.5.3.ebuild
new file mode 100644
index 00000000000..bd6296d6100
--- /dev/null
+++ b/dev-python/socketpool/socketpool-0.5.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple Python socket pool"
+HOMEPAGE="http://github.com/benoitc/socketpool/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="amd64 arm ppc ppc64 x86"
+IUSE="examples test"
+LICENSE="|| ( MIT public-domain )"
+SLOT="0"
+
+RDEPEND="$(python_gen_cond_dep 'dev-python/gevent[${PYTHON_USEDEP}]' 'python2*')"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.5.2-locale.patch )
+
+python_test() {
+ py.test tests || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/socksipy/Manifest b/dev-python/socksipy/Manifest
new file mode 100644
index 00000000000..a90712890de
--- /dev/null
+++ b/dev-python/socksipy/Manifest
@@ -0,0 +1,2 @@
+DIST SocksiPy-branch-1.02.zip 10650 SHA256 6f0fb4224bf2ed48e2302d3fa226bb94ba1d138dfb03aa0ba88747ad8bdfd471 SHA512 6d17de2bbefac123e447d46dae082e46246132e582ab4f129661c0bfb090df3acf0ee0ea074a80882b835c4fa5346808e530da0170ecf01b610ce6f799aa6234 WHIRLPOOL c98290445311efafa145efd89a16ea2401a20bf3c1bf6a70cd4a245b5ba17ba2b53efcb5e3ec92a7689f08bd03c559218fc7e5afb67f509642f6bf1299e8a46a
+DIST socksipy-1.00.tar.gz 7627 SHA256 4a7dc98f5a39b797e4bbb3db13747954836a3ac94c29880849538effdbce0639 SHA512 21d28ccd0616bf0cef1aa2260e32e5862dfcdd7d2dc83448aa58948144af0134d8371fafea5644d983b2b49d5cce3df6606d77126941b8f36f53be74d6fab479 WHIRLPOOL 31f40e4a8bd3cef0eff80d7061e91e5fb6951cce4ab6f1bb1541542668915ac1e8ce6ddb384c66608d6ddccd3983fd53fb35eed0f034b961665fa8b95ed84703
diff --git a/dev-python/socksipy/metadata.xml b/dev-python/socksipy/metadata.xml
new file mode 100644
index 00000000000..9e396139c96
--- /dev/null
+++ b/dev-python/socksipy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-python/socksipy/socksipy-1.00.ebuild b/dev-python/socksipy/socksipy-1.00.ebuild
new file mode 100644
index 00000000000..df8b15cfae4
--- /dev/null
+++ b/dev-python/socksipy/socksipy-1.00.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1
+
+DESCRIPTION="SOCKS proxy implementation for python"
+HOMEPAGE="http://socksipy.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/SocksiPy%20${PV}/SocksiPy.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"
+
+src_install() {
+ python_foreach_impl python_domodule socks.py
+}
diff --git a/dev-python/socksipy/socksipy-1.02.ebuild b/dev-python/socksipy/socksipy-1.02.ebuild
new file mode 100644
index 00000000000..bf01e3ce468
--- /dev/null
+++ b/dev-python/socksipy/socksipy-1.02.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="SocksiPy-branch"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SOCKS proxy implementation for python"
+HOMEPAGE="http://socksipy.sourceforge.net/ http://code.google.com/p/socksipy-branch/"
+SRC_URI="http://socksipy-branch.googlecode.com/files/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+RDEPEND="${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( BUGS README )
diff --git a/dev-python/south/Manifest b/dev-python/south/Manifest
new file mode 100644
index 00000000000..5ff5118eb43
--- /dev/null
+++ b/dev-python/south/Manifest
@@ -0,0 +1 @@
+DIST south-1.0.tar.gz 97890 SHA256 017ecc2d66818580e1131af61b8d96901c4a2d05b051186196d9d4f35bdbb901 SHA512 8f181e8879734ddc3bba4e6f9e0efc3d4db4783fbd629c56c4f72401d161080bed51e3955bc37b7796160145c733321f356c63aece22da752695fc3e24c9b90b WHIRLPOOL 8f7949c96394906a53ecfcedcbe3c9b9fdae32db4c28fb7f507c8529fc586947021eebee259b5caab5a03550a4003b0d8aed9a1f6bcc658fb1b48dbdd64ddf6f
diff --git a/dev-python/south/files/south-0.7.5-tests.patch b/dev-python/south/files/south-0.7.5-tests.patch
new file mode 100644
index 00000000000..2e4da84d975
--- /dev/null
+++ b/dev-python/south/files/south-0.7.5-tests.patch
@@ -0,0 +1,23 @@
+http://south.aeracode.org/ticket/1256
+diff -ur south-0.7.5.orig/south/tests/db.py south-0.7.5/south/tests/db.py
+--- south/tests/db.py 2012-05-08 18:37:14.000000000 +0800
++++ south/tests/db.py 2013-05-18 15:46:23.920225709 +0800
+@@ -1,5 +1,8 @@
+-import datetime
+-import unittest
++import datetime, sys
++if sys.version_info == (2, 7):
++ import unittest
++else:
++ import unittest2 as unittest
+
+ from south.db import db, generic
+ from django.db import connection, models
+@@ -71,6 +74,7 @@
+ else:
+ self.fail("Just-deleted table could be selected!")
+
++ @unittest.expectedFailure
+ def test_nonexistent_delete(self):
+ """
+ Test deletion of nonexistent tables.
diff --git a/dev-python/south/files/south-1.0-3753b49c-Replace-dict.iteritems-with-six.patch b/dev-python/south/files/south-1.0-3753b49c-Replace-dict.iteritems-with-six.patch
new file mode 100644
index 00000000000..07c50edabce
--- /dev/null
+++ b/dev-python/south/files/south-1.0-3753b49c-Replace-dict.iteritems-with-six.patch
@@ -0,0 +1,60 @@
+# HG changeset patch
+# User Gary Wilson Jr. <gary@thegarywilson.com>
+# Date 1397849538 18000
+# Branch python3-iteritems
+# Node ID 3753b49ca9f3d34c94156622b380def245d88e80
+# Parent 0e17add9b5e0f30f7cf5acf47961eea6a7f4032c
+Fixed a Python 3 incompatibility by replacing dict.iteritems() usage with an iteritems py3 util function from six.
+
+diff --git a/south/migration/migrators.py b/south/migration/migrators.py
+--- a/south/migration/migrators.py
++++ b/south/migration/migrators.py
+@@ -16,7 +16,7 @@
+ from south.db import DEFAULT_DB_ALIAS
+ from south.models import MigrationHistory
+ from south.signals import ran_migration
+-from south.utils.py3 import StringIO
++from south.utils.py3 import StringIO, iteritems
+
+
+ class Migrator(object):
+@@ -161,7 +161,7 @@
+ if self.verbosity:
+ print(" - Migration '%s' is marked for no-dry-run." % migration)
+ return
+- for name, db in south.db.dbs.iteritems():
++ for name, db in iteritems(south.db.dbs):
+ south.db.dbs[name].dry_run = True
+ # preserve the constraint cache as it can be mutated by the dry run
+ constraint_cache = deepcopy(south.db.db._constraint_cache)
+@@ -181,7 +181,7 @@
+ if self._ignore_fail:
+ south.db.db.debug = old_debug
+ south.db.db.clear_run_data(pending_creates)
+- for name, db in south.db.dbs.iteritems():
++ for name, db in iteritems(south.db.dbs):
+ south.db.dbs[name].dry_run = False
+ # restore the preserved constraint cache from before dry run was
+ # executed
+diff --git a/south/utils/py3.py b/south/utils/py3.py
+--- a/south/utils/py3.py
++++ b/south/utils/py3.py
+@@ -26,3 +26,18 @@
+ def with_metaclass(meta, base=object):
+ """Create a base class with a metaclass."""
+ return meta("NewBase", (base,), {})
++
++
++def _add_doc(func, doc):
++ """Add documentation to a function."""
++ func.__doc__ = doc
++
++if PY3:
++ def iteritems(d, **kw):
++ return iter(d.items(**kw))
++else:
++ def iteritems(d, **kw):
++ return iter(d.iteritems(**kw))
++
++_add_doc(iteritems,
++ "Return an iterator over the (key, value) pairs of a dictionary.")
diff --git a/dev-python/south/metadata.xml b/dev-python/south/metadata.xml
new file mode 100644
index 00000000000..e049460bf25
--- /dev/null
+++ b/dev-python/south/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">south</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/south/south-1.0.ebuild b/dev-python/south/south-1.0.ebuild
new file mode 100644
index 00000000000..c4e66755de1
--- /dev/null
+++ b/dev-python/south/south-1.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="South"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Intelligent schema migrations for Django apps"
+HOMEPAGE="http://south.aeracode.org/"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="<dev-python/django-1.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/django[sqlite] )"
+
+PATCHES=( "${FILESDIR}"/${P}-3753b49c-Replace-dict.iteritems-with-six.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ django-admin.py startproject southtest || die "setting up test env failed"
+ pushd southtest > /dev/null
+ sed -i \
+ -e "/^INSTALLED_APPS/a\ 'south'," \
+ southtest/settings.py || die "sed failed"
+ echo "SKIP_SOUTH_TESTS=False" >> southtest/settings.py
+ "${EPYTHON}" manage.py test south || die "tests failed for ${EPYTHON}"
+ popd > /dev/null
+}
+
+pkg_postinst() {
+ elog "In order to use the south schema migrations for your Django project,"
+ elog "just add 'south' to your INSTALLED_APPS in the settings.py file."
+ elog "manage.py will now automagically offer the new functions."
+}
diff --git a/dev-python/soya/Manifest b/dev-python/soya/Manifest
new file mode 100644
index 00000000000..a8bd0d0c919
--- /dev/null
+++ b/dev-python/soya/Manifest
@@ -0,0 +1,2 @@
+DIST Soya-0.14.tar.bz2 905659 SHA256 dcb93206d7154dc575ec6eeb7fa3ecfd6bfb78fa233db639e423857cd2a99590 SHA512 3a6d8d0523cd13d1e9e8e2260612f23dfd2d33526b40d11ea1568a3b3c3eb7172ab94b8c8e9490203128c1fbe0b840d29a04d1c7b9d93bd273eb318ad286b711 WHIRLPOOL 1e0df42cb2a066ed9d5faa043c85844729a8f637051c945ad573c3d9510b8c650583b0e5e4162b8ca4ea098c500181e2d11729e39272c9a2fadecf6b0cb83141
+DIST SoyaTutorial-0.14.tar.bz2 5223674 SHA256 86d5b8189e7f7b4269976a65f23a51291bb99c6272f2884cbd129a6e9cc6cbec SHA512 484bc93c2561aa1f2c8bd7101b75c8ea5d42a2bae7c0431ef1e7719bd86da2f47fb68129d60ce1923b26cce1b7915ab6576d0c5f6c8ee889736971be166b4623 WHIRLPOOL 035bb56a66e231cb2d7600003519c9eeca540a9eae2ccbfd15c7bda09450bc4ad5ef086f8f871d0f8284cd397e26df34a74a74e7323272b972f1789de771a612
diff --git a/dev-python/soya/files/soya-0.14-freetype-2.5.patch b/dev-python/soya/files/soya-0.14-freetype-2.5.patch
new file mode 100644
index 00000000000..a4d56803310
--- /dev/null
+++ b/dev-python/soya/files/soya-0.14-freetype-2.5.patch
@@ -0,0 +1,16 @@
+diff -ru soya.old/include_freetype.h soya/include_freetype.h
+--- soya.old/include_freetype.h 2014-06-01 23:27:17.970830047 +0900
++++ soya/include_freetype.h 2014-06-01 23:27:35.320864678 +0900
+@@ -21,8 +21,8 @@
+
+ #include <ft2build.h>
+ #include FT_FREETYPE_H // this is not do-able in Pyrex
+-#include <freetype/freetype.h>
+-#include <freetype/ftoutln.h>
+-#include <freetype/ftimage.h>
+-#include <freetype/ftglyph.h>
++#include <freetype.h>
++#include <ftoutln.h>
++#include <ftimage.h>
++#include <ftglyph.h>
+
diff --git a/dev-python/soya/files/soya-0.14-glu.patch b/dev-python/soya/files/soya-0.14-glu.patch
new file mode 100644
index 00000000000..606114a22fb
--- /dev/null
+++ b/dev-python/soya/files/soya-0.14-glu.patch
@@ -0,0 +1,13 @@
+Index: setup.py
+===================================================================
+--- setup.py (revision 550)
++++ setup.py (working copy)
+@@ -130,7 +130,7 @@
+ if sys.platform[:3] == "win":
+ LIBS = ["m", "glew32", "SDL", "SDL_mixer", "freetype", "cal3d", "stdc++", "ode"]
+ else:
+- LIBS = ["m", "GLEW", "SDL", "freetype", "cal3d", "stdc++","ode"]
++ LIBS = ["m", "GLEW", "GLU" , "SDL", "freetype", "cal3d", "stdc++","ode"]
+ FRAMEWORKS=[]
+
+ SOYA_PYREX_SOURCES = ["_soya.pyx", "matrix.c", "chunk.c"]
diff --git a/dev-python/soya/files/soya-pillow.patch b/dev-python/soya/files/soya-pillow.patch
new file mode 100644
index 00000000000..4f8df982ccf
--- /dev/null
+++ b/dev-python/soya/files/soya-pillow.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/show_bug.cgi?id=471510
+--- a/editor/__init__.py
++++ b/editor/__init__.py
+@@ -52,7 +52,7 @@
+
+ if obj.face.material and obj.face.material.texture:
+ try:
+- import Image, ImageTk
++ from PIL import Image, ImageTk
+
+ self.image = Image.open(os.path.join(soya.path[0], obj.face.material.texture.filename))
+
+@@ -71,7 +71,7 @@
+ self.cancel = self.master.cancel
+
+ def label_conf(self, event = None):
+- import Image, ImageTk
++ from PIL import Image, ImageTk
+
+ if self.image_width != self.label.winfo_width():
+ self.image_width = self.label.winfo_width()
diff --git a/dev-python/soya/metadata.xml b/dev-python/soya/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/soya/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/soya/soya-0.14-r1.ebuild b/dev-python/soya/soya-0.14-r1.ebuild
new file mode 100644
index 00000000000..8191ec0f426
--- /dev/null
+++ b/dev-python/soya/soya-0.14-r1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PV="${PV/_}"
+MY_P="Soya-${MY_PV}"
+TUT_P="SoyaTutorial-${MY_PV}"
+
+DESCRIPTION="A high-level 3D engine for Python, designed with games in mind"
+HOMEPAGE="http://oomadness.nekeme.net/Soya/FrontPage"
+SRC_URI="http://download.gna.org/soya/${MY_P}.tar.bz2
+ doc? ( http://download.gna.org/soya/${TUT_P}.tar.bz2 )
+ examples? ( http://download.gna.org/soya/${TUT_P}.tar.bz2 )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="doc examples"
+
+DEPEND="=dev-games/ode-0.11.1
+ dev-python/editobj
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ >=dev-python/pyopenal-0.1.6[${PYTHON_USEDEP}]
+ media-fonts/freefonts
+ >=media-libs/cal3d-0.10
+ media-libs/freeglut
+ >=media-libs/freetype-2.5
+ >=media-libs/glew-1.3.3
+ >=media-libs/libsdl-1.2.8[opengl]
+ media-libs/openal
+ virtual/opengl"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-glu.patch"
+ "${FILESDIR}/${PN}-pillow.patch"
+ "${FILESDIR}/${P}-freetype-2.5.patch"
+)
+
+python_compile() {
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ distutils-r1_python_compile
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/${PF}
+ if use doc; then
+ cd "${WORKDIR}/${TUT_P}/doc"
+ doins soya_guide.pdf pudding/pudding.pdf || die "doins failed"
+ fi
+ if use examples; then
+ cd "${WORKDIR}/${TUT_P}"
+ doins -r tutorial || die "doins failed"
+ fi
+}
diff --git a/dev-python/sparql-wrapper/Manifest b/dev-python/sparql-wrapper/Manifest
new file mode 100644
index 00000000000..c7ed13b50b2
--- /dev/null
+++ b/dev-python/sparql-wrapper/Manifest
@@ -0,0 +1,5 @@
+DIST SPARQLWrapper-1.5.2.tar.gz 24953 SHA256 65254c7c3cae093fbd5e6b65e2c725db3ad80ab7402c4aa59d18a9cb8f5695b4 SHA512 adb70599d5c67c4cbd5277de30325a993057ff50c72eba89cea6b5ba8daea9bd7717fef4cd62e250b77c818498580d7f26e359fc4a9e344b2ba82c71912fcee3 WHIRLPOOL a8231a0745e798240620f46af625ff325a770f97f100fbfa5cda4f2e8e1dd1f8b8900fae13a8ade9ba0f71a3fc714be14d83e34848479e7a4e93c7993a1b207c
+DIST SPARQLWrapper-1.6.0.tar.gz 20698 SHA256 dadcbf190dd090d90325ca4126e96f262d620c45c4693ee9f168cf39af2fa373 SHA512 e70a003807329602360e0c1ffc4091668e5a7bbce84305ecee5a381759500282abc57f39879a8372a35f7edd36bf7d4f2dc8efad717bb620e430d207c52a4754 WHIRLPOOL f76f9ebc20daac75f0cdbddccd7bb48695289829ab08d9e013ab2e9c0220a7bd770afd5dc1431d520369dd8a1c6cd96034c4452537fb50b58d41b36fa0eb7b20
+DIST SPARQLWrapper-1.6.1.tar.gz 25894 SHA256 809ecc29ca6d3dcfdfd75163173d00b45405ddf5e848edc648b8aec553c765d0 SHA512 2500133ea235c1c91ef0f9479f570ec9376704e2ba39ec9d044bb24dfa56dd8613d4677d473d0694edd7095874c17f2277ccb2ef3c07ffff9c50b5b814f26812 WHIRLPOOL a460d9d82c0b0854a9eadefd242b7cac4daaa870e42ae6b9d5eed94cfc0fe76c914bd68517bec6449c1b614e40a684231b70982f95f2f39e8f8c01f5d56cc579
+DIST SPARQLWrapper-1.6.2.tar.gz 25939 SHA256 1af3dcccf5cfbc0c078f95109138a8be221d29e158a2ae81b239d857f7c3224d SHA512 a75cb881b34fd8963c35b9fb7bb3fb1662257c9a36a03d22227968fc8f23c7813b73d29d3bdc26f362023a871960ce6326d70f8fdfb911ceec88212ed3737831 WHIRLPOOL fe2a29206f0f8730e3046ee67649370f866043dfcaf42416753ec6f3e1795fa4372ef48db9a95b87e116e6f007d3c4d8d7b357622dc40d52448cb5dc8d73848f
+DIST SPARQLWrapper-1.6.4.tar.gz 27467 SHA256 2899dae6baa88d5c3209408e70a1a9de04f0f4dd25f4e9480eb6707a398d1693 SHA512 49e4eea8cf6e0625ee3a259b4314b630eddb30475a786525f94f827353898c6d90b88e6b7b2bb65270cf8baec781b9bafa98df3cdbbb65a722d6f0af07906ce5 WHIRLPOOL 6e8f64a76d24fd864ab830bc86cbf4e97191ca19b3495f5446bd56f76e8cb4d4a8315d7ac38693776f8c063e58c873db3249cbe44aa7822daebc6c85a0893477
diff --git a/dev-python/sparql-wrapper/metadata.xml b/dev-python/sparql-wrapper/metadata.xml
new file mode 100644
index 00000000000..2eb3da498b1
--- /dev/null
+++ b/dev-python/sparql-wrapper/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">SPARQLWrapper</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sparql-wrapper/sparql-wrapper-1.5.2.ebuild b/dev-python/sparql-wrapper/sparql-wrapper-1.5.2.ebuild
new file mode 100644
index 00000000000..4806d383fb1
--- /dev/null
+++ b/dev-python/sparql-wrapper/sparql-wrapper-1.5.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+MY_PN=SPARQLWrapper
+DESCRIPTION="Wrapper around a SPARQL service"
+HOMEPAGE="http://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="W3C"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/rdflib[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_PN}-${PV}
diff --git a/dev-python/sparql-wrapper/sparql-wrapper-1.6.0.ebuild b/dev-python/sparql-wrapper/sparql-wrapper-1.6.0.ebuild
new file mode 100644
index 00000000000..4806d383fb1
--- /dev/null
+++ b/dev-python/sparql-wrapper/sparql-wrapper-1.6.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+MY_PN=SPARQLWrapper
+DESCRIPTION="Wrapper around a SPARQL service"
+HOMEPAGE="http://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="W3C"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/rdflib[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_PN}-${PV}
diff --git a/dev-python/sparql-wrapper/sparql-wrapper-1.6.1.ebuild b/dev-python/sparql-wrapper/sparql-wrapper-1.6.1.ebuild
new file mode 100644
index 00000000000..b69bd408501
--- /dev/null
+++ b/dev-python/sparql-wrapper/sparql-wrapper-1.6.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN=SPARQLWrapper
+DESCRIPTION="Wrapper around a SPARQL service"
+HOMEPAGE="http://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="W3C"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/rdflib[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_PN}-${PV}
diff --git a/dev-python/sparql-wrapper/sparql-wrapper-1.6.2.ebuild b/dev-python/sparql-wrapper/sparql-wrapper-1.6.2.ebuild
new file mode 100644
index 00000000000..1e9cf6fafa4
--- /dev/null
+++ b/dev-python/sparql-wrapper/sparql-wrapper-1.6.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN=SPARQLWrapper
+DESCRIPTION="Wrapper around a SPARQL service"
+HOMEPAGE="http://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="W3C"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/rdflib[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_PN}-${PV}
diff --git a/dev-python/sparql-wrapper/sparql-wrapper-1.6.4.ebuild b/dev-python/sparql-wrapper/sparql-wrapper-1.6.4.ebuild
new file mode 100644
index 00000000000..3429970c44e
--- /dev/null
+++ b/dev-python/sparql-wrapper/sparql-wrapper-1.6.4.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN=SPARQLWrapper
+DESCRIPTION="Wrapper around a SPARQL service"
+HOMEPAGE="http://pypi.python.org/pypi/${MY_PN}"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="W3C"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
+
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/rdflib-2.4.2[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_PN}-${PV}
diff --git a/dev-python/speaklater/Manifest b/dev-python/speaklater/Manifest
new file mode 100644
index 00000000000..fbf9617b6dd
--- /dev/null
+++ b/dev-python/speaklater/Manifest
@@ -0,0 +1 @@
+DIST speaklater-1.3.tar.gz 3582 SHA256 59fea336d0eed38c1f0bf3181ee1222d0ef45f3a9dd34ebe65e6bfffdd6a65a9 SHA512 ae137d94c497cd4214e230c8906f3ba40e092f248206d37b61de2571567e39e27b7f58bcf2145bd0c81c195c3c5ed03fc0428e0a50c657c5c909ec82719454ef WHIRLPOOL 9e9edc0f6b9943f515eb36a13b038402e4093dfeb302f856858000ce87316508d31aafaf85e67e332b8bdfccec518912d87c61b3e45c930bd22bafc3dae8e1f9
diff --git a/dev-python/speaklater/metadata.xml b/dev-python/speaklater/metadata.xml
new file mode 100644
index 00000000000..8ca5f2f0f58
--- /dev/null
+++ b/dev-python/speaklater/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">speaklater</remote-id>
+ <remote-id type="github">mitsuhiko/speaklater</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/speaklater/speaklater-1.3-r1.ebuild b/dev-python/speaklater/speaklater-1.3-r1.ebuild
new file mode 100644
index 00000000000..a02509c16ff
--- /dev/null
+++ b/dev-python/speaklater/speaklater-1.3-r1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Lazy strings for Python"
+HOMEPAGE="https://github.com/mitsuhiko/speaklater"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/sphinx-better-theme/Manifest b/dev-python/sphinx-better-theme/Manifest
new file mode 100644
index 00000000000..af95d2913ea
--- /dev/null
+++ b/dev-python/sphinx-better-theme/Manifest
@@ -0,0 +1 @@
+DIST sphinx-better-theme-0.1.5.tar.gz 7276 SHA256 420570d80d8cab25b35cef2b79619104675777dff5a23deebe9ba2191d48c1ce SHA512 06e50079967e166d5daf58a44c18e477cfc71d326ecf2e0a5932200c911e73ee188f720fd5bd15c2e298e14f7e3358e02e94381470bb7958edb0b0aed334ef9c WHIRLPOOL 41d09f5c94d9473af8096896291c2ee464eef5a80c29dd4347b009da43510f31b1859e357b871cc598a3be0c66182e6d213c3755a63c3f9446c8fe6570a8e2a3
diff --git a/dev-python/sphinx-better-theme/metadata.xml b/dev-python/sphinx-better-theme/metadata.xml
new file mode 100644
index 00000000000..3f80e6c2f78
--- /dev/null
+++ b/dev-python/sphinx-better-theme/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">sphinx-better-theme</remote-id>
+ <remote-id type="github">irskep/sphinx-better-theme</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinx-better-theme/sphinx-better-theme-0.1.5.ebuild b/dev-python/sphinx-better-theme/sphinx-better-theme-0.1.5.ebuild
new file mode 100644
index 00000000000..8d292a3c809
--- /dev/null
+++ b/dev-python/sphinx-better-theme/sphinx-better-theme-0.1.5.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A nice-looking, customizable theme for Sphinx"
+HOMEPAGE="https://github.com/irskep/sphinx-better-theme
+ https://pypi.python.org/pypi/sphinx-better-theme"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE=""
diff --git a/dev-python/sphinx-bootstrap-theme/Manifest b/dev-python/sphinx-bootstrap-theme/Manifest
new file mode 100644
index 00000000000..1922c72c926
--- /dev/null
+++ b/dev-python/sphinx-bootstrap-theme/Manifest
@@ -0,0 +1,3 @@
+DIST sphinx-bootstrap-theme-0.4.5.tar.gz 1015290 SHA256 f36d32aeeb4d08a1b281e745db4228b5e40ddacf7928a68e26b7f909fa391d85 SHA512 e5696b8fa41d63ce97ee45c622a10bfd812b4179596024895ec2c76a3c79dbc6d7117043b001bb8caeada204052757cfc83815cfc7f1f7f7506a9c0ef4ac7c2d WHIRLPOOL edbe912150a7dbb0f797c742af24e5f9a85b1b4e568925a2d8a123abd8f42f016f32dfa828ddd1200e4b3d2aa49f6773976ee3fa40c45de982df969fa2e5f0c9
+DIST sphinx-bootstrap-theme-0.4.6.tar.gz 1110111 SHA256 27dc1253016d965f0ba0b1ef592c3fbbe1817c55d1400131df422979ace2958c SHA512 b6660a26006d8ad6d97cb1ead339408a875bbbf69101f29d48a16e3b4031bfa0cff78e855851196d23f0a8fd73a32ae1ffc42c763726a6385bb9f61aa1b47851 WHIRLPOOL e93fb36cf98d9efcff7c8a199f182617f9e89a0689c12f9bb9108c4b430efba01fa2dbebd9f4b9b95247a198c62fd72a8fac8ba14d219ac121c06b15f531e328
+DIST sphinx-bootstrap-theme-0.4.7.tar.gz 1108321 SHA256 ee76d8c75f20bccf6dc54df2cd75e7f012cbb82f32edb7b088635d5765519120 SHA512 bf12c4b950b344df6d7c4b4c026389538476f13bc612f5c3deefc4a2ae3a2e8eda7223794e34dc022898e808d90639b3c58e2cfa810eac64790f9c6b11c63113 WHIRLPOOL 1e042f0880de9533b3bdf287b831a125cfab40c67889967ccbe0a4821700958ee29877825f674a7c8557e84309a7df197751d6c67d33928a55e469741f8e009e
diff --git a/dev-python/sphinx-bootstrap-theme/metadata.xml b/dev-python/sphinx-bootstrap-theme/metadata.xml
new file mode 100644
index 00000000000..e8b48e0cf59
--- /dev/null
+++ b/dev-python/sphinx-bootstrap-theme/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<upstream>
+ <remote-id type="pypi">sphinx-bootstrap-theme</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.5.ebuild b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.5.ebuild
new file mode 100644
index 00000000000..06480452026
--- /dev/null
+++ b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.5.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx theme integrates the Bootstrap CSS / JavaScript framework"
+HOMEPAGE="http://ryan-roemer.github.com/sphinx-bootstrap-theme/README.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.6.ebuild b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.6.ebuild
new file mode 100644
index 00000000000..3b48aa3f409
--- /dev/null
+++ b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.6.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx theme integrates the Bootstrap CSS / JavaScript framework"
+HOMEPAGE="http://ryan-roemer.github.com/sphinx-bootstrap-theme/README.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.7.ebuild b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.7.ebuild
new file mode 100644
index 00000000000..3b48aa3f409
--- /dev/null
+++ b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.7.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx theme integrates the Bootstrap CSS / JavaScript framework"
+HOMEPAGE="http://ryan-roemer.github.com/sphinx-bootstrap-theme/README.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinx/Manifest b/dev-python/sphinx/Manifest
new file mode 100644
index 00000000000..f2db4fd8877
--- /dev/null
+++ b/dev-python/sphinx/Manifest
@@ -0,0 +1,4 @@
+DIST Sphinx-1.1.3.tar.gz 2632059 SHA256 34dc95b70a2b07a61b5d61034c34b05f82514aab54ad27adedb49cee911bb8e9 SHA512 b8312140d752bf557c8e41728513812aff3e5d0a89af88dea9da0df21bf09c8315f13305d7a724a5596d0192b167d613065ea564c6d92e4ffb23f1f246dbf052 WHIRLPOOL a40c4d0f5c32cf1d4b9b662b0fb2b2b0956e0455abbc88d6b5f95c54f93cc2baae25e8b9196dd0b64090d30a1a796c336ca4b6866243be4198ccdf67a7e18b48
+DIST Sphinx-1.2.2.tar.gz 3143671 SHA256 2d3415f5b3e6b7535877f4c84fe228bdb802a8993c239b2d02c23169d67349bd SHA512 44073c215f9d0e7f6c7bc91cb85b0508a96e5cfff5f940fef86e2fc6f11281d03b54e87e51e5a99a23e96b470a93f3af86a6a3ab7c317c747406c55b4c37791c WHIRLPOOL c5ed15b51682d3be9f8349ab838c6758cb4e25023b6ad13622d748b771594ed75f786709a25fb2d61ad245ecef0925e5bcc1aafb93fc355a0f0ea50df63efcd7
+DIST Sphinx-1.2.3.tar.gz 3200548 SHA256 94933b64e2fe0807da0612c574a021c0dac28c7bd3c4a23723ae5a39ea8f3d04 SHA512 00346516e826a65145a3a7fd25ef7cee569ae7fdcc0c1bec3a7301fc08d5d8730d02eee792c3efedfcac17e712ea7e2ad70ea1fcdedc11720ad54f6bcb51ad05 WHIRLPOOL 0c0e2e21a52829893857939f977e8312c4eac11f5d2aec3b8e4f9c8ffdbf14c4aa46a6c26dac0ad4abfe92b3bdad72a3468e6d2ff2485df6efaf3fccd17ae69b
+DIST Sphinx-1.3.1.tar.gz 3469782 SHA256 1a6e5130c2b42d2de301693c299f78cc4bd3501e78b610c08e45efc70e2b5114 SHA512 8b92b69c4ced242c5e608ea03a7a061b0d2908f34f3150048ff4ce08b5d56be4a642a6aec13fa249ff8208fa8dd2d38d8a10d37ebbcc68385ee51f527ede0b94 WHIRLPOOL f3e442fd1f1c260b21f3e2381f028884b6247758448439e7be4cf784f50ec12494e384c77a0c4ccac473f25d7bb88f5424be937d72bb3fac1b6f6387a5746f66
diff --git a/dev-python/sphinx/files/sphinx-1.1.3-docutils-manpage.patch b/dev-python/sphinx/files/sphinx-1.1.3-docutils-manpage.patch
new file mode 100644
index 00000000000..82609f4afdc
--- /dev/null
+++ b/dev-python/sphinx/files/sphinx-1.1.3-docutils-manpage.patch
@@ -0,0 +1,35 @@
+# HG changeset patch
+# User Georg Brandl <georg@python.org>
+# Date 1351590528 -3600
+# Node ID ffb145b7884fc926d6a68f4aaeede1d4964f727c
+# Parent 2c107bc997e8817c451ba24089766eefb6e60fc3
+Closes #998: fix manpage writer in expectation of docutils 0.10 API change
+
+diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
+--- a/sphinx/writers/manpage.py
++++ b/sphinx/writers/manpage.py
+@@ -72,6 +72,11 @@
+ # since self.append_header() is never called, need to do this here
+ self.body.append(MACRO_DEF)
+
++ # Overwrite admonition label translations with our own
++ for label, translation in admonitionlabels.items():
++ self.language.labels[label] = self.deunicode(translation)
++
++
+ # overwritten -- added quotes around all .TH arguments
+ def header(self):
+ tmpl = (".TH \"%(title_upper)s\" \"%(manual_section)s\""
+@@ -193,12 +198,6 @@
+ def depart_seealso(self, node):
+ self.depart_admonition(node)
+
+- # overwritten -- use our own label translations
+- def visit_admonition(self, node, name=None):
+- if name:
+- self.body.append('.IP %s\n' %
+- self.deunicode(admonitionlabels.get(name, name)))
+-
+ def visit_productionlist(self, node):
+ self.ensure_eol()
+ names = []
diff --git a/dev-python/sphinx/files/sphinx-1.1.3-python3.patch b/dev-python/sphinx/files/sphinx-1.1.3-python3.patch
new file mode 100644
index 00000000000..4817034eb68
--- /dev/null
+++ b/dev-python/sphinx/files/sphinx-1.1.3-python3.patch
@@ -0,0 +1,45 @@
+# HG changeset patch
+# User Rob Reilink <r.reilink@science-applied.nl>
+# Date 1331657734 -3600
+# Node ID 8aba132b1337fc351fe1464f3a4b61f21f55e64e
+# Parent 4a6d33249418befdf587603fc31db58fb863fee4
+fixed encoding for hashing functions for Python 3
+
+diff -r 4a6d33249418befdf587603fc31db58fb863fee4 -r 8aba132b1337fc351fe1464f3a4b61f21f55e64e sphinx/ext/graphviz.py
+--- a/sphinx/ext/graphviz.py Sat Mar 10 22:24:59 2012 +0100
++++ b/sphinx/ext/graphviz.py Tue Mar 13 17:55:34 2012 +0100
+@@ -121,9 +121,11 @@
+
+ def render_dot(self, code, options, format, prefix='graphviz'):
+ """Render graphviz code into a PNG or PDF output file."""
+- hashkey = code.encode('utf-8') + str(options) + \
++ hashkey = (code + str(options) + \
+ str(self.builder.config.graphviz_dot) + \
+ str(self.builder.config.graphviz_dot_args)
++ ).encode('utf-8')
++
+ fname = '%s-%s.%s' % (prefix, sha(hashkey).hexdigest(), format)
+ if hasattr(self.builder, 'imgpath'):
+ # HTML
+diff -r 4a6d33249418befdf587603fc31db58fb863fee4 -r 8aba132b1337fc351fe1464f3a4b61f21f55e64e sphinx/ext/inheritance_diagram.py
+--- a/sphinx/ext/inheritance_diagram.py Sat Mar 10 22:24:59 2012 +0100
++++ b/sphinx/ext/inheritance_diagram.py Tue Mar 13 17:55:34 2012 +0100
+@@ -39,7 +39,7 @@
+ import re
+ import sys
+ import inspect
+-import __builtin__
++import __builtin__ as __builtin__ # as __builtin__ is for lib2to3 compatibility
+ try:
+ from hashlib import md5
+ except ImportError:
+@@ -314,7 +314,8 @@
+
+
+ def get_graph_hash(node):
+- return md5(node['content'] + str(node['parts'])).hexdigest()[-10:]
++ encoded = (node['content'] + str(node['parts'])).encode('utf-8')
++ return md5(encoded).hexdigest()[-10:]
+
+
+ def html_visit_inheritance_diagram(self, node):
diff --git a/dev-python/sphinx/metadata.xml b/dev-python/sphinx/metadata.xml
new file mode 100644
index 00000000000..647e8ec840a
--- /dev/null
+++ b/dev-python/sphinx/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Sphinx is a tool to create documentation for Python projects (or
+ other documents consisting of multiple reStructuredText sources).</longdescription>
+ <upstream>
+ <remote-id type="pypi">Sphinx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinx/sphinx-1.1.3-r7.ebuild b/dev-python/sphinx/sphinx-1.1.3-r7.ebuild
new file mode 100644
index 00000000000..0c93ef42d27
--- /dev/null
+++ b/dev-python/sphinx/sphinx-1.1.3-r7.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1 eutils versionator
+
+MY_PN="Sphinx"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python documentation generator"
+HOMEPAGE="http://sphinx.pocoo.org/ http://pypi.python.org/pypi/Sphinx"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc latex test"
+
+# Split the jinja dep to allow different slots to satisfy it
+RDEPEND=">=dev-python/docutils-0.7[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.3[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.2[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ latex? (
+ dev-texlive/texlive-latexextra
+ app-text/dvipng
+ )"
+DEPEND="${DEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-python3.patch
+ "${FILESDIR}"/${P}-docutils-manpage.patch
+)
+
+python_compile() {
+ distutils-r1_python_compile
+
+ # Generate the grammar. It will be caught by install somehow.
+ # Note that the tests usually do it for us. However, I don't want
+ # to trust USE=test really running all the tests, especially
+ # with FEATURES=test-fail-continue.
+ cd "${BUILD_DIR}"/lib || die
+ "${PYTHON}" -m sphinx.pycode.__init__ \
+ || die "Grammar generation failed."
+}
+
+python_compile_all() {
+ use doc && emake -C doc SPHINXBUILD="${PYTHON} -m sphinx.__init__" html
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if [[ ${EPYTHON} == python3* ]]; then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
+
+replacing_python_eclass() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 1.1.3-r4 ${pv}; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+pkg_preinst() {
+ if replacing_python_eclass; then
+ # the old python.eclass ebuild will want to remove our pickles...
+ backup_pickle() {
+ # array to enable filename expansion
+ local pickle_name=(
+ "${D}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle
+ )
+
+ local dest=${ROOT}${pickle_name[0]#${D}}.backup
+
+ eumask_push 022
+ mkdir -p "${dest%/*}" || die
+ eumask_pop
+
+ cp -p -v "${pickle_name[0]}" "${dest}" \
+ || die "Unable to backup grammar pickle from overwriting"
+ }
+
+ python_foreach_impl backup_pickle
+ fi
+}
+
+pkg_postinst() {
+ if replacing_python_eclass; then
+ local warned
+
+ restore_pickle() {
+ local backup_name=(
+ "${ROOT}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle.backup
+ )
+ local dest=${backup_name[0]%.backup}
+
+ mv -v "${backup_name[0]}" "${dest}" \
+ || die "Unable to restore grammar pickle backup"
+ }
+
+ python_foreach_impl restore_pickle
+
+ [[ ${warned} ]] && ewarn "Please try rebuilding the package."
+ fi
+}
diff --git a/dev-python/sphinx/sphinx-1.2.2.ebuild b/dev-python/sphinx/sphinx-1.2.2.ebuild
new file mode 100644
index 00000000000..d5ddf6c8898
--- /dev/null
+++ b/dev-python/sphinx/sphinx-1.2.2.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils versionator
+
+MY_PN="Sphinx"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python documentation generator"
+HOMEPAGE="http://sphinx.pocoo.org/ http://pypi.python.org/pypi/Sphinx"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc latex test"
+
+# Split the jinja dep to allow different slots to satisfy it
+RDEPEND="
+ >=dev-python/docutils-0.7[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.3[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.2[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ latex? (
+ dev-texlive/texlive-latexextra
+ app-text/dvipng
+ )"
+DEPEND="${DEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ distutils-r1_python_compile
+
+ # Generate the grammar. It will be caught by install somehow.
+ # Note that the tests usually do it for us. However, I don't want
+ # to trust USE=test really running all the tests, especially
+ # with FEATURES=test-fail-continue.
+ pushd "${BUILD_DIR}"/lib > /dev/null || die
+ "${PYTHON}" -m sphinx.pycode.__init__ || die "Grammar generation failed."
+ popd > /dev/null || die
+}
+
+python_compile_all() {
+ use doc && emake -C doc SPHINXBUILD='"${PYTHON}" "${S}/sphinx-build.py"' html
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if $(python_is_python3); then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests -v \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
+
+replacing_python_eclass() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 1.1.3-r4 ${pv}; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+pkg_preinst() {
+ if replacing_python_eclass; then
+ # the old python.eclass ebuild will want to remove our pickles...
+ backup_pickle() {
+ # array to enable filename expansion
+ local pickle_name=(
+ "${D}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle
+ )
+
+ local dest=${ROOT}${pickle_name[0]#${D}}.backup
+
+ eumask_push 022
+ mkdir -p "${dest%/*}" || die
+ eumask_pop
+
+ cp -p -v "${pickle_name[0]}" "${dest}" \
+ || die "Unable to backup grammar pickle from overwriting"
+ }
+
+ python_foreach_impl backup_pickle
+ fi
+}
+
+pkg_postinst() {
+ if replacing_python_eclass; then
+ local warned
+
+ restore_pickle() {
+ local backup_name=(
+ "${ROOT}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle.backup
+ )
+ local dest=${backup_name[0]%.backup}
+
+ mv -v "${backup_name[0]}" "${dest}" \
+ || die "Unable to restore grammar pickle backup"
+ }
+
+ python_foreach_impl restore_pickle
+
+ [[ ${warned} ]] && ewarn "Please try rebuilding the package."
+ fi
+}
diff --git a/dev-python/sphinx/sphinx-1.2.3.ebuild b/dev-python/sphinx/sphinx-1.2.3.ebuild
new file mode 100644
index 00000000000..5079b677613
--- /dev/null
+++ b/dev-python/sphinx/sphinx-1.2.3.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1 eutils versionator
+
+MY_PN="Sphinx"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python documentation generator"
+HOMEPAGE="http://sphinx.pocoo.org/ http://pypi.python.org/pypi/Sphinx"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc latex test"
+
+# Portage has only >= minimum required versions of all rdeps making
+# setting of version borders unnecessary
+RDEPEND="
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ latex? (
+ dev-texlive/texlive-latexextra
+ app-text/dvipng
+ )"
+DEPEND="${DEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ distutils-r1_python_compile
+
+ # Generate the grammar. It will be caught by install somehow.
+ # Note that the tests usually do it for us. However, I don't want
+ # to trust USE=test really running all the tests, especially
+ # with FEATURES=test-fail-continue.
+ pushd "${BUILD_DIR}"/lib > /dev/null || die
+ "${PYTHON}" -m sphinx.pycode.__init__ \
+ || die "Grammar generation failed."
+ popd > /dev/null || die
+}
+
+python_compile_all() {
+ use doc && emake -C doc SPHINXBUILD='"${PYTHON}" "${S}/sphinx-build.py"' html
+}
+
+python_test() {
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if $(python_is_python3); then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests -v \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
+
+replacing_python_eclass() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 1.1.3-r4 ${pv}; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+pkg_preinst() {
+ if replacing_python_eclass; then
+ # the old python.eclass ebuild will want to remove our pickles...
+ backup_pickle() {
+ # array to enable filename expansion
+ local pickle_name=(
+ "${D}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle
+ )
+
+ local dest=${ROOT}${pickle_name[0]#${D}}.backup
+
+ eumask_push 022
+ mkdir -p "${dest%/*}" || die
+ eumask_pop
+
+ cp -p -v "${pickle_name[0]}" "${dest}" \
+ || die "Unable to backup grammar pickle from overwriting"
+ }
+
+ python_foreach_impl backup_pickle
+ fi
+}
+
+pkg_postinst() {
+ if replacing_python_eclass; then
+ local warned
+
+ restore_pickle() {
+ local backup_name=(
+ "${ROOT}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle.backup
+ )
+ local dest=${backup_name[0]%.backup}
+
+ mv -v "${backup_name[0]}" "${dest}" \
+ || die "Unable to restore grammar pickle backup"
+ }
+
+ python_foreach_impl restore_pickle
+
+ [[ ${warned} ]] && ewarn "Please try rebuilding the package."
+ fi
+}
diff --git a/dev-python/sphinx/sphinx-1.3.1.ebuild b/dev-python/sphinx/sphinx-1.3.1.ebuild
new file mode 100644
index 00000000000..c576038fbde
--- /dev/null
+++ b/dev-python/sphinx/sphinx-1.3.1.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils versionator
+
+MY_PN="Sphinx"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python documentation generator"
+HOMEPAGE="http://sphinx.pocoo.org/ http://pypi.python.org/pypi/Sphinx"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc64 ~x86"
+IUSE="doc latex test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.11[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.3[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.0.1-r1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ =dev-python/alabaster-0.7*[${PYTHON_USEDEP}]
+ =dev-python/sphinx_rtd_theme-0.1*[${PYTHON_USEDEP}]
+ >=dev-python/snowballstemmer-1.1[${PYTHON_USEDEP}]
+ latex? (
+ dev-texlive/texlive-latexextra
+ app-text/dvipng
+ )"
+DEPEND="${DEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy) )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile() {
+ distutils-r1_python_compile
+
+ # Generate the grammar. It will be caught by install somehow.
+ # Note that the tests usually do it for us. However, I don't want
+ # to trust USE=test really running all the tests, especially
+ # with FEATURES=test-fail-continue.
+ pushd "${BUILD_DIR}"/lib > /dev/null || die
+ "${PYTHON}" -m sphinx.pycode.__init__ \
+ || die "Grammar generation failed."
+ popd > /dev/null || die
+}
+
+python_compile_all() {
+ use doc && emake -C doc SPHINXBUILD='"${PYTHON}" "${S}/sphinx-build.py"' html
+}
+
+python_test() {
+ mkdir -p "${BUILD_DIR}/sphinx_tempdir"
+ export SPHINX_TEST_TEMPDIR="${BUILD_DIR}/sphinx_tempdir"
+ cp -r -l tests "${BUILD_DIR}"/ || die
+
+ if $(python_is_python3); then
+ 2to3 -w --no-diffs "${BUILD_DIR}"/tests || die
+ fi
+
+ nosetests -w "${BUILD_DIR}"/tests -v \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
+
+replacing_python_eclass() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 1.1.3-r4 ${pv}; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+pkg_preinst() {
+ if replacing_python_eclass; then
+ # the old python.eclass ebuild will want to remove our pickles...
+ backup_pickle() {
+ # array to enable filename expansion
+ local pickle_name=(
+ "${D}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle
+ )
+
+ local dest=${ROOT}${pickle_name[0]#${D}}.backup
+
+ eumask_push 022
+ mkdir -p "${dest%/*}" || die
+ eumask_pop
+
+ cp -p -v "${pickle_name[0]}" "${dest}" \
+ || die "Unable to backup grammar pickle from overwriting"
+ }
+
+ python_foreach_impl backup_pickle
+ fi
+}
+
+pkg_postinst() {
+ if replacing_python_eclass; then
+ local warned
+
+ restore_pickle() {
+ local backup_name=(
+ "${ROOT}$(python_get_sitedir)"/sphinx/pycode/Grammar*.pickle.backup
+ )
+ local dest=${backup_name[0]%.backup}
+
+ mv -v "${backup_name[0]}" "${dest}" \
+ || die "Unable to restore grammar pickle backup"
+ }
+
+ python_foreach_impl restore_pickle
+
+ [[ ${warned} ]] && ewarn "Please try rebuilding the package."
+ fi
+}
diff --git a/dev-python/sphinx_rtd_theme/Manifest b/dev-python/sphinx_rtd_theme/Manifest
new file mode 100644
index 00000000000..916db4c3e19
--- /dev/null
+++ b/dev-python/sphinx_rtd_theme/Manifest
@@ -0,0 +1,3 @@
+DIST sphinx_rtd_theme-0.1.6.tar.gz 217067 SHA256 0f29f544f6d037989fa0c7729a9eab7e4d8ea50d6f0ef37363f472756c1edca6 SHA512 f79e8192264ef01675240853e9be8a5bd0c86808f0e918e60c7c6e0c078caeef87c76421db795149214ef4edc1389e7c2001a98436611292ff826e7b9b9d0f15 WHIRLPOOL 110494f3c9bb6e838557fa4bcb1ac8f33e91b30d2da780720e897cfc4f635c0a14f502d5aac50115495bcc591de79eae83a2e359b81b917e524c9459194420f6
+DIST sphinx_rtd_theme-0.1.7.tar.gz 220230 SHA256 9a490c861f6cf96a0050c29a92d5d1e01eda02ae6f50760ad5c96a327cdf14e8 SHA512 390f007ecba0a59ef92e1aab3457e7c09fa7ff45690f9351857d8aa635371c81329b12e7d4052ba9abaabb82a28a911334c4dc601105ee97cb0eb2b1be0ae426 WHIRLPOOL 00150c49a8e1a56aa378cac795b7ed7a681aef59c7a70294b1b3e582fa1d13ce7abc251567219422fa495c610dfda2a40c1255c2c8306af72188294fa1a84ec2
+DIST sphinx_rtd_theme-0.1.8.tar.gz 424804 SHA256 74f633ed3a61da1d1d59c3185483c81a9d7346bf0e7b5f29ad0764a6f159b68a SHA512 2ade6b86f88fa9e8fa3242b4f5fcf665016098a3819e08400fbe216ccb8ab6e1d0786fba20c1ed722525bc5fd088bc70ceb93c0ed4c5a8ac79ab6499a0a98994 WHIRLPOOL 7bfdd8679d4300a9cef03ca5bbff01cc2cfbc241244f26f08c0356aba8da5bcfdd2bba4603cc687ba5bfbc2b3c7dbf69a5169d88c215173d3dd686fed035704b
diff --git a/dev-python/sphinx_rtd_theme/metadata.xml b/dev-python/sphinx_rtd_theme/metadata.xml
new file mode 100644
index 00000000000..f1054646c76
--- /dev/null
+++ b/dev-python/sphinx_rtd_theme/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">sphinx_rtd_theme</remote-id>
+ <remote-id type="github">snide/sphinx_rtd_theme</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.6.ebuild b/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.6.ebuild
new file mode 100644
index 00000000000..90f36578109
--- /dev/null
+++ b/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.6.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="ReadTheDocs.org theme for Sphinx"
+HOMEPAGE="https://github.com/snide/sphinx_rtd_theme/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/sphinx[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.7.ebuild b/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.7.ebuild
new file mode 100644
index 00000000000..7985fb1c946
--- /dev/null
+++ b/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.7.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="ReadTheDocs.org theme for Sphinx"
+HOMEPAGE="https://github.com/snide/sphinx_rtd_theme/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+PDEPEND="dev-python/sphinx[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.8.ebuild b/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.8.ebuild
new file mode 100644
index 00000000000..7985fb1c946
--- /dev/null
+++ b/dev-python/sphinx_rtd_theme/sphinx_rtd_theme-0.1.8.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="ReadTheDocs.org theme for Sphinx"
+HOMEPAGE="https://github.com/snide/sphinx_rtd_theme/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+PDEPEND="dev-python/sphinx[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinxcontrib-cheeseshop/Manifest b/dev-python/sphinxcontrib-cheeseshop/Manifest
new file mode 100644
index 00000000000..a2300ef2a5f
--- /dev/null
+++ b/dev-python/sphinxcontrib-cheeseshop/Manifest
@@ -0,0 +1 @@
+DIST sphinxcontrib-cheeseshop-0.2.tar.gz 3568 SHA256 d1a3bc4c1842868f959f7e14fa7390e64fa717823144286e7d15a25c3624b1ec SHA512 5d6c88c0c43f37b94ebe6a2a62f795a6f7d5d6c407b808d6b21d54c1775fc4b5f22466c13e61adc16ac7973ba11e99a66da8650c869856f766e6bb3a6e99923b WHIRLPOOL 171762e8e197b54412a48db928395a62a8003eec614584df36d427afb44ee55cbfb8d75534dc38046cfef1a72c1f9eb2e37617afc755ea5b40187f48a493fbf2
diff --git a/dev-python/sphinxcontrib-cheeseshop/metadata.xml b/dev-python/sphinxcontrib-cheeseshop/metadata.xml
new file mode 100644
index 00000000000..0f5079b0d60
--- /dev/null
+++ b/dev-python/sphinxcontrib-cheeseshop/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">sphinxcontrib-cheeseshop</remote-id>
+ <remote-id type="bitbucket">birkenfeld/sphinx-contrib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxcontrib-cheeseshop/sphinxcontrib-cheeseshop-0.2.ebuild b/dev-python/sphinxcontrib-cheeseshop/sphinxcontrib-cheeseshop-0.2.ebuild
new file mode 100644
index 00000000000..75a71064dbf
--- /dev/null
+++ b/dev-python/sphinxcontrib-cheeseshop/sphinxcontrib-cheeseshop-0.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy)
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx extension cheeseshop"
+HOMEPAGE="http://bitbucket.org/birkenfeld/sphinx-contrib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=dev-python/sphinx-1.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ ebegin 'patching setup.py'
+ sed \
+ -e '5s/file/open/' \
+ -i setup.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/sphinxcontrib-doxylink/Manifest b/dev-python/sphinxcontrib-doxylink/Manifest
new file mode 100644
index 00000000000..b454aaab54e
--- /dev/null
+++ b/dev-python/sphinxcontrib-doxylink/Manifest
@@ -0,0 +1 @@
+DIST sphinxcontrib-doxylink-1.3.tar.gz 12401 SHA256 95dd12637b2d28aae50f2abbf57dcb339be01f7b829dc435432d314a8f37a9c4 SHA512 5a53061cddda22b682b4b640725d4cd763b54d9dfa3599b666dd55d72660f07fc89318abeab07d114d01313b215e69e421a3b5251125d28c3dd326426830f9ee WHIRLPOOL 6db488051e0b2758182a1be6f21601500f473974a1d780e986a7347dceac8f441744c29ded49312021947bd623421237d36f395aac285ff0acba01b78e715f68
diff --git a/dev-python/sphinxcontrib-doxylink/metadata.xml b/dev-python/sphinxcontrib-doxylink/metadata.xml
new file mode 100644
index 00000000000..229aef6d540
--- /dev/null
+++ b/dev-python/sphinxcontrib-doxylink/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>aballier@gentoo.org</email>
+ <name>Alexis Ballier</name>
+ <description>Python team can take the package if they wish.</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">sphinxcontrib-doxylink</remote-id>
+ <remote-id type="bitbucket">birkenfeld/sphinx-contrib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxcontrib-doxylink/sphinxcontrib-doxylink-1.3.ebuild b/dev-python/sphinxcontrib-doxylink/sphinxcontrib-doxylink-1.3.ebuild
new file mode 100644
index 00000000000..e3096cd5e8e
--- /dev/null
+++ b/dev-python/sphinxcontrib-doxylink/sphinxcontrib-doxylink-1.3.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension to link to external Doxygen API documentation"
+HOMEPAGE="https://pypi.python.org/pypi/sphinxcontrib-doxylink https://pythonhosted.org/sphinxcontrib-doxylink/ https://bitbucket.org/birkenfeld/sphinx-contrib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm"
+
+RDEPEND="
+ >=dev-python/sphinx-1.0[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_prepare() {
+ # any better idea ?
+ rm -rf tests
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/sphinxcontrib-googleanalytics/Manifest b/dev-python/sphinxcontrib-googleanalytics/Manifest
new file mode 100644
index 00000000000..f338270f7ea
--- /dev/null
+++ b/dev-python/sphinxcontrib-googleanalytics/Manifest
@@ -0,0 +1 @@
+DIST sphinxcontrib-googleanalytics-0.1.tar.gz 2892 SHA256 92b7d74a45defb01e7d29e86fd8206eba42c896b2272cbd1b4b4f6a7d178d5a8 SHA512 fdec9108f9c1d86c6c59cd2bcfa55d82cd5cd48aca5b7aecec7734f3cd29b0f6c080aad7b7009148e3d95b7cf80af38ffb6ba230879495f3c1488ddb661fbf48 WHIRLPOOL 32115511eb21cdb7a202b9b63a4568f31f64a9d98d4dfd25cd6d15628cbd7873d8666f9969d25a3db569f25389d43028214d7d805ec07961c9d96f9991f9c10f
diff --git a/dev-python/sphinxcontrib-googleanalytics/files/setup.py.utf-8.patch b/dev-python/sphinxcontrib-googleanalytics/files/setup.py.utf-8.patch
new file mode 100644
index 00000000000..b3b9f58d1b2
--- /dev/null
+++ b/dev-python/sphinxcontrib-googleanalytics/files/setup.py.utf-8.patch
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/show_bug.cgi?id=429914
+--- setup.py
++++ setup.py
+@@ -1,10 +1,11 @@
+ # -*- coding: utf-8 -*-
+
++import codecs
+ import os
+ from setuptools import setup, find_packages
+
+ HERE = os.path.dirname(os.path.abspath(__file__))
+-long_desc = open(os.path.join(HERE, 'README')).read()
++long_desc = codecs.open(os.path.join(HERE, 'README'), encoding='utf-8').read()
+
+ requires = ['Sphinx>=0.6']
+
diff --git a/dev-python/sphinxcontrib-googleanalytics/metadata.xml b/dev-python/sphinxcontrib-googleanalytics/metadata.xml
new file mode 100644
index 00000000000..f312ebabd5e
--- /dev/null
+++ b/dev-python/sphinxcontrib-googleanalytics/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">sphinxcontrib-googleanalytics</remote-id>
+ <remote-id type="bitbucket">birkenfeld/sphinx-contrib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxcontrib-googleanalytics/sphinxcontrib-googleanalytics-0.1-r1.ebuild b/dev-python/sphinxcontrib-googleanalytics/sphinxcontrib-googleanalytics-0.1-r1.ebuild
new file mode 100644
index 00000000000..e289002df14
--- /dev/null
+++ b/dev-python/sphinxcontrib-googleanalytics/sphinxcontrib-googleanalytics-0.1-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx extension googleanalytics"
+HOMEPAGE="http://bitbucket.org/birkenfeld/sphinx-contrib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/sphinx-0.6[${PYTHON_USEDEP}]"
+
+PATCHES=( "${FILESDIR}/setup.py.utf-8.patch" )
diff --git a/dev-python/sphinxcontrib-httpdomain/Manifest b/dev-python/sphinxcontrib-httpdomain/Manifest
new file mode 100644
index 00000000000..55a483adccf
--- /dev/null
+++ b/dev-python/sphinxcontrib-httpdomain/Manifest
@@ -0,0 +1,5 @@
+DIST sphinxcontrib-httpdomain-1.1.8.tar.gz 8844 SHA256 29ff90b9e51a8e0cee4372c8f39d85edd0a88747dd0ae5e7734a66f63e256279 SHA512 fa6abe4c6b42844dd0b066c591e8780e01ed006304b31af0ffe6bc89a08c31cca71510d3013b45014409784fce6b0f869d117a34759856b54356d5a4ca7398d1 WHIRLPOOL 95a17f70df2bc51c07432e1966135464b530ca1f9e532bdbf4a07e05fe67eb9a1150d1a13ed4c6e2e2faaefa91fd4915adf701811ad83766cc0b80a6a5b0002f
+DIST sphinxcontrib-httpdomain-1.1.9.tar.gz 9589 SHA256 560eec7b60872cb570dd6a4f29f8d717a2217dfec775919651e8adf0e55a585a SHA512 015ff76b7f6f6639e6b9e228209b8dc06ce435049d08cf513d40914015c17ca21df905f7d505951508e7255ce273c95700e3ae415f54afdebc8ef03fd3707283 WHIRLPOOL 49049c807163ff1496dd777ba4dd439d49dd6ffbdeb1a4fd45d70d8a6167928b342429d03e7b023f192e2580e79b05b9b3de1ad3f58c82fe6f870315415238d6
+DIST sphinxcontrib-httpdomain-1.2.0.tar.gz 10054 SHA256 015e2e4327278a5903a4c060a19bfae821df2d33179c960a301c5383523a4c62 SHA512 d8c2158c81e0b0691c99176dc50d217e69b564d55e72e2878847e032dc60a4097d767bfb717f2425c2e5d37f9462cb95e15b1072b6dbb5191b9f402bc4981fe1 WHIRLPOOL 0c2482047b038f0a14b4b999ce3d24e932d3e7372af17a65fd1bb3a977acaf5a265e5df649eb06765919191181145e6bea69d03cf6b6f4b94fb5364d281b1c1a
+DIST sphinxcontrib-httpdomain-1.2.1.tar.gz 10061 SHA256 68b7cca5910309dcf89b1d7fc978f2bb64c7b7e45e5b67438defed7356d96562 SHA512 0e6605e12312468ebd8d8173ac58e6ceae8823d06c9db13ee6857c9e436f8ddb14241304f1c0632cf15e616eab574107b00c79da9179e530aec099b573ad581e WHIRLPOOL a9f6d8c1a6bda6b97204855fc9809ce3658811dec981b2f7e0c3cb1e95c5a24d83ceca72374a0caa699646fee6a041da2ea77e14a075f8fc52aef0b5fb1971f9
+DIST sphinxcontrib-httpdomain-1.3.0.tar.gz 11486 SHA256 ba8fbe82eddc96cfa9d7b975b0422801a14ace9d7e051b8b2c725b92ea6137b5 SHA512 2f6df6375337d651f4ed26c2aaf20929a4b31fae881ebc68fcab5cd085f52661c00a943872a9e7199d5af893b3f77434346fd493925cd148681da048aead20af WHIRLPOOL 52539d525114a2fc1b0f288cea82918724d7c4ad7af22c27efda3dcdae10ba9f800933ea163f840b12bc78413f06f0ca9bec361e0fb2da8c9430f413b1f89f7a
diff --git a/dev-python/sphinxcontrib-httpdomain/metadata.xml b/dev-python/sphinxcontrib-httpdomain/metadata.xml
new file mode 100644
index 00000000000..3759492bd55
--- /dev/null
+++ b/dev-python/sphinxcontrib-httpdomain/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">sphinxcontrib-httpdomain</remote-id>
+ <remote-id type="bitbucket">birkenfeld/sphinx-contrib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.8.ebuild b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.8.ebuild
new file mode 100644
index 00000000000..66ee275c1d9
--- /dev/null
+++ b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.8.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension providing a Sphinx domain for describing RESTful HTTP APIs"
+HOMEPAGE="http://bitbucket.org/birkenfeld/sphinx-contrib/ \
+ http://packages.python.org/sphinxcontrib-httpdomain/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+
+RDEPEND=">=dev-python/sphinx-1.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.9.ebuild b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.9.ebuild
new file mode 100644
index 00000000000..66ee275c1d9
--- /dev/null
+++ b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.1.9.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension providing a Sphinx domain for describing RESTful HTTP APIs"
+HOMEPAGE="http://bitbucket.org/birkenfeld/sphinx-contrib/ \
+ http://packages.python.org/sphinxcontrib-httpdomain/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+
+RDEPEND=">=dev-python/sphinx-1.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.0.ebuild b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.0.ebuild
new file mode 100644
index 00000000000..66ee275c1d9
--- /dev/null
+++ b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension providing a Sphinx domain for describing RESTful HTTP APIs"
+HOMEPAGE="http://bitbucket.org/birkenfeld/sphinx-contrib/ \
+ http://packages.python.org/sphinxcontrib-httpdomain/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+
+RDEPEND=">=dev-python/sphinx-1.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.1.ebuild b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.1.ebuild
new file mode 100644
index 00000000000..764f9297c86
--- /dev/null
+++ b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.2.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension providing a Sphinx domain for describing RESTful HTTP APIs"
+HOMEPAGE="http://bitbucket.org/birkenfeld/sphinx-contrib/ \
+ http://packages.python.org/sphinxcontrib-httpdomain/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=dev-python/sphinx-1.1[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.3.0.ebuild b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.3.0.ebuild
new file mode 100644
index 00000000000..0e105ab838c
--- /dev/null
+++ b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.3.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension providing a Sphinx domain for describing RESTful HTTP APIs"
+HOMEPAGE="http://bitbucket.org/birkenfeld/sphinx-contrib/ \
+ http://packages.python.org/sphinxcontrib-httpdomain/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND=">=dev-python/sphinx-1.0[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinxcontrib-issuetracker/Manifest b/dev-python/sphinxcontrib-issuetracker/Manifest
new file mode 100644
index 00000000000..1098b9c59db
--- /dev/null
+++ b/dev-python/sphinxcontrib-issuetracker/Manifest
@@ -0,0 +1 @@
+DIST sphinxcontrib-issuetracker-0.11.tar.gz 30351 SHA256 843753d8b5e989116378ab45ecccb368fb78dc56eaa1554ed25e4fbf22745f4e SHA512 fb4a977bea22451a3d90b16821fc2a38ed53b17913666ca250e9aab8bb1726bbdb52fb2b6dbb2ae512a0ca6cc3d33dcddeba758c02c77b099180443d67e147c9 WHIRLPOOL f49f01b6b9de9bb21473ee810c9bb663ec76e7744c4c58b96c698d1ffb177bdcda08c9de60311d62789a065fd0322336a60930715d362691e74458070df2c7ca
diff --git a/dev-python/sphinxcontrib-issuetracker/metadata.xml b/dev-python/sphinxcontrib-issuetracker/metadata.xml
new file mode 100644
index 00000000000..92945277e20
--- /dev/null
+++ b/dev-python/sphinxcontrib-issuetracker/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>kde</herd>
+ <upstream>
+ <remote-id type="pypi">sphinxcontrib-issuetracker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxcontrib-issuetracker/sphinxcontrib-issuetracker-0.11-r1.ebuild b/dev-python/sphinxcontrib-issuetracker/sphinxcontrib-issuetracker-0.11-r1.ebuild
new file mode 100644
index 00000000000..61fee2c722f
--- /dev/null
+++ b/dev-python/sphinxcontrib-issuetracker/sphinxcontrib-issuetracker-0.11-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension to sphinx to create links to issue trackers"
+HOMEPAGE="http://sphinxcontrib-issuetracker.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+
+IUSE="doc test"
+
+RDEPEND=">=dev-python/requests-0.13[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ # test requires network access (bug #425694)
+ rm tests/test_builtin_trackers.py || die
+
+ # Tests from tests/test_stylesheet.py require dev-python/PyQt4[X,webkit]
+ # and virtualx.eclass.
+ rm tests/test_stylesheet.py || die
+
+ # Avoid redundant objects.inv from downloading, sed more lightwieght
+ if use doc; then
+ sed -e "s:^intersphinx_mapping:#intersphinx_mapping:" \
+ -e "s:^ 'sphinx':#:" \
+ -i doc/conf.py || die
+ fi
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/sphinxcontrib-plantuml/Manifest b/dev-python/sphinxcontrib-plantuml/Manifest
new file mode 100644
index 00000000000..3549c540e67
--- /dev/null
+++ b/dev-python/sphinxcontrib-plantuml/Manifest
@@ -0,0 +1 @@
+DIST sphinxcontrib-plantuml-0.4.tar.gz 4944 SHA256 2305cb631f6bea2bdae7c69d841b92c451115433c6b3b8fb1bee5fec323dd857 SHA512 a00760146ab56a96035d511fdf01d5dfbca5ef077b40ac00087267a702d7367d706f9956774af6acd7154d3b425452169d02f98170a765280e4d0b77e14b7438 WHIRLPOOL 7a4e4332b7f488c6e050c84670d1d06afc7b6375aa0b00231134c1fb24b63d8be73216b400c1c1417a1a3302421e045b9495f6906942fb6ebf0321f6c2b8aa1e
diff --git a/dev-python/sphinxcontrib-plantuml/metadata.xml b/dev-python/sphinxcontrib-plantuml/metadata.xml
new file mode 100644
index 00000000000..c58b58dc580
--- /dev/null
+++ b/dev-python/sphinxcontrib-plantuml/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pva@gentoo.org</email>
+ <name>Peter Volkov</name>
+ </maintainer>
+ <longdescription lang="en">
+ This package allows inline plantuml diagrams inside sphinx text files.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">sphinxcontrib-plantuml</remote-id>
+ <remote-id type="bitbucket">birkenfeld/sphinx-contrib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.4.ebuild b/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.4.ebuild
new file mode 100644
index 00000000000..93d63c6294b
--- /dev/null
+++ b/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension to embed UML diagram by using PlantUML"
+HOMEPAGE="https://bitbucket.org/birkenfeld/sphinx-contrib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+
+DEPEND="
+ >=dev-python/sphinx-1.1[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+RDEPEND="${DEPEND}
+ media-gfx/plantuml
+"
+
+DOCS="README.rst"
diff --git a/dev-python/sphinxcontrib-programoutput/Manifest b/dev-python/sphinxcontrib-programoutput/Manifest
new file mode 100644
index 00000000000..85bd1a09df4
--- /dev/null
+++ b/dev-python/sphinxcontrib-programoutput/Manifest
@@ -0,0 +1 @@
+DIST sphinxcontrib-programoutput-0.8.tar.gz 14419 SHA256 1776a03124bab87e35576f7f3992fc21d5bb457321b35e6023eb011dbed10a25 SHA512 9ab769f794cf8c47f2d755b343c1326b8335c1f8161294727abada81af189545d549350536d28ac2c5f27cc309330f875b7affef6f997651e3a9f9dfbe6bd174 WHIRLPOOL a6cf5edfd1ba9926af1327e95cc923147cae3c4d297ddb0ae7577f676c6bcb928b396459113cac3226f74446ea38ee9604722da5b4ddeebeb2f6bc6bc0d5fb52
diff --git a/dev-python/sphinxcontrib-programoutput/metadata.xml b/dev-python/sphinxcontrib-programoutput/metadata.xml
new file mode 100644
index 00000000000..16650eae0eb
--- /dev/null
+++ b/dev-python/sphinxcontrib-programoutput/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+ A Sphinx extension to literally insert the output of arbitrary
+ commands into documents, helping you to keep your command examples
+ up to date.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">sphinxcontrib-programoutput</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.8.ebuild b/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.8.ebuild
new file mode 100644
index 00000000000..96543ce78c1
--- /dev/null
+++ b/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.8.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extension to sphinx to include program output"
+HOMEPAGE="http://sphinxcontrib-programoutput.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+
+IUSE="doc test"
+
+RDEPEND=">=dev-python/sphinx-1.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/sphinxtogithub/Manifest b/dev-python/sphinxtogithub/Manifest
new file mode 100644
index 00000000000..bfdf46e485b
--- /dev/null
+++ b/dev-python/sphinxtogithub/Manifest
@@ -0,0 +1,2 @@
+DIST sphinxtogithub-1.0.0.tar.gz 9872 SHA256 71e191b38defcfcff4acd918190a6322d8b7374fe84b97b6bc17d74c550c5759 SHA512 1eca486fc78715281b1e55fddabe2c161ca15d8b54981618de233e8eba9e14be575c5e3b6b1e4664186fce1414877d501c8f563c8771ff46c2d26ea96810450b WHIRLPOOL 0ac54064fd05e109505444fe9d1d3b8c12b7fa4b00dc5d6f7e713ede81a6ce6d723f2c983aabde5ed180467409234133ea88a4224bcc5248d7b33365c5b044a9
+DIST sphinxtogithub-1.1.0.tar.gz 11103 SHA256 15222b1ea55f83dfdf1e09a76d4ef1b9273a2590b73a5a16c4bff972894eae4e SHA512 190c57535c58f86a84a3e80bde61f99d35b8d3826d18d77d9eaf857be853c84b35e49cbb517fb13d8993934757892cbda4a820ecd24f3e5ff2908e814e53d664 WHIRLPOOL 232d8ecccab473bf690275883eed4e2a8bf6a10b8d3f52da56287fba8aefe9a75aee5ccbae1f70f9746d0732254bf8da7a953c65d10153f72a3a6377f674f7aa
diff --git a/dev-python/sphinxtogithub/metadata.xml b/dev-python/sphinxtogithub/metadata.xml
new file mode 100644
index 00000000000..807e5f4823f
--- /dev/null
+++ b/dev-python/sphinxtogithub/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">sphinxtogithub</remote-id>
+ <remote-id type="github">michaeljones/sphinx-to-github</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sphinxtogithub/sphinxtogithub-1.0.0.ebuild b/dev-python/sphinxtogithub/sphinxtogithub-1.0.0.ebuild
new file mode 100644
index 00000000000..04f6dc79d8e
--- /dev/null
+++ b/dev-python/sphinxtogithub/sphinxtogithub-1.0.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A python script for preparing the html output of Sphinx documentation for github pages"
+HOMEPAGE="http://github.com/michaeljones/sphinx-to-github/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/sphinx-1.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/sphinxtogithub/sphinxtogithub-1.1.0.ebuild b/dev-python/sphinxtogithub/sphinxtogithub-1.1.0.ebuild
new file mode 100644
index 00000000000..3dc0aaf611d
--- /dev/null
+++ b/dev-python/sphinxtogithub/sphinxtogithub-1.1.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A python script for preparing the html output of Sphinx documentation for github pages"
+HOMEPAGE="http://github.com/michaeljones/sphinx-to-github/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+
+IUSE=""
+
+RDEPEND=">=dev-python/sphinx-1.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Req'd to avoid file collisions
+ sed -e s":find_packages():find_packages(exclude=['tests']):" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/spyder/Manifest b/dev-python/spyder/Manifest
new file mode 100644
index 00000000000..3aad7ffffe6
--- /dev/null
+++ b/dev-python/spyder/Manifest
@@ -0,0 +1,2 @@
+DIST spyder-2.3.4.zip 3707063 SHA256 da4b13d6faed3e8810c0418f8274b26fde4f265ea4f93bee154af128a755c184 SHA512 7a4ea65ea06e9944094fc94db78327f9e23a8fd6dda5d0e9aa0e82ba4cd7d9f50b1eb837395a3fa2fabe814df873ad8ddbcca223144c47af4007b0493575e41e WHIRLPOOL 53e8f42bdafe01072457f27e45a279f92a198f181344f8267be2b3940cbd6d3743685ffe3264b04344f83bcb73b3eb8c9ec0e6bf8ccef26e19901324bfacb682
+DIST spyder-2.3.5.2.zip 3039104 SHA256 40e589467b561af534aac6d8cc2ea0dc244d3ae4457afb41b3aec6db6f8b2336 SHA512 ac8e078991b2889c3359e700bd89d4c8487eeba412512bc9bd7685214f687001bcc411016283bcde4eb73f6186ffc5cadc9614d911acd8b788899ef5aafd66e1 WHIRLPOOL e2b2bca44bd2ec1461875a358868ab34c60f30ac5164ff6312302b495e859000b97afc78ce12c69dbc328fdcbead247a9defce9e29c08de367fc7d3a321ff007
diff --git a/dev-python/spyder/files/spyder-2.3.1-build.patch b/dev-python/spyder/files/spyder-2.3.1-build.patch
new file mode 100644
index 00000000000..4300c3010bd
--- /dev/null
+++ b/dev-python/spyder/files/spyder-2.3.1-build.patch
@@ -0,0 +1,154 @@
+--- setup.py
++++ setup.py
+@@ -21,8 +21,6 @@
+ import shutil
+
+ from distutils.core import setup
+-from distutils.command.build import build
+-from distutils.command.install_data import install_data
+
+ # Check for Python 3
+ PY3 = sys.version_info[0] == 3
+@@ -66,12 +64,7 @@
+ def get_data_files():
+ """Return data_files in a platform dependent manner"""
+ if sys.platform.startswith('linux'):
+- if PY3:
+- data_files = [('share/applications', ['scripts/spyder3.desktop']),
+- ('share/pixmaps', ['img_src/spyder3.png'])]
+- else:
+- data_files = [('share/applications', ['scripts/spyder.desktop']),
+- ('share/pixmaps', ['img_src/spyder.png'])]
++ data_files = [('share/pixmaps', ['img_src/spyder.png'])]
+ elif os.name == 'nt':
+ data_files = [('scripts', ['img_src/spyder.ico',
+ 'img_src/spyder_light.ico'])]
+@@ -80,97 +73,6 @@
+ return data_files
+
+
+-class MyInstallData(install_data):
+- def run(self):
+- install_data.run(self)
+- if sys.platform.startswith('linux'):
+- try:
+- subprocess.call(['update-desktop-database'])
+- except:
+- print("ERROR: unable to update desktop database",
+- file=sys.stderr)
+-CMDCLASS = {'install_data': MyInstallData}
+-
+-
+-# Sphinx build (documentation)
+-def get_html_help_exe():
+- """Return HTML Help Workshop executable path (Windows only)"""
+- if os.name == 'nt':
+- hhc_base = r'C:\Program Files%s\HTML Help Workshop\hhc.exe'
+- for hhc_exe in (hhc_base % '', hhc_base % ' (x86)'):
+- if osp.isfile(hhc_exe):
+- return hhc_exe
+- else:
+- return
+-
+-try:
+- from sphinx import setup_command
+-
+- class MyBuild(build):
+- user_options = [('no-doc', None, "Don't build Spyder documentation")] \
+- + build.user_options
+- def __init__(self, *args, **kwargs):
+- build.__init__(self, *args, **kwargs)
+- self.no_doc = False
+- def with_doc(self):
+- setup_dir = os.path.dirname(os.path.abspath(__file__))
+- is_doc_dir = os.path.isdir(os.path.join(setup_dir, 'doc'))
+- install_obj = self.distribution.get_command_obj('install')
+- return (is_doc_dir and not self.no_doc and not install_obj.no_doc)
+- sub_commands = build.sub_commands + [('build_doc', with_doc)]
+- CMDCLASS['build'] = MyBuild
+-
+-
+- class MyInstall(install):
+- user_options = [('no-doc', None, "Don't build Spyder documentation")] \
+- + install.user_options
+- def __init__(self, *args, **kwargs):
+- install.__init__(self, *args, **kwargs)
+- self.no_doc = False
+- CMDCLASS['install'] = MyInstall
+-
+-
+- class MyBuildDoc(setup_command.BuildDoc):
+- def run(self):
+- build = self.get_finalized_command('build')
+- sys.path.insert(0, os.path.abspath(build.build_lib))
+- dirname = self.distribution.get_command_obj('build').build_purelib
+- self.builder_target_dir = osp.join(dirname, 'spyderlib', 'doc')
+-
+- if not osp.exists(self.builder_target_dir):
+- os.mkdir(self.builder_target_dir)
+-
+- hhc_exe = get_html_help_exe()
+- self.builder = "html" if hhc_exe is None else "htmlhelp"
+-
+- try:
+- setup_command.BuildDoc.run(self)
+- except UnicodeDecodeError:
+- print("ERROR: unable to build documentation because Sphinx "\
+- "do not handle source path with non-ASCII characters. "\
+- "Please try to move the source package to another "\
+- "location (path with *only* ASCII characters).",
+- file=sys.stderr)
+- sys.path.pop(0)
+-
+- # Building chm doc, if HTML Help Workshop is installed
+- if hhc_exe is not None:
+- fname = osp.join(self.builder_target_dir, 'Spyderdoc.chm')
+- subprocess.call('"%s" %s' % (hhc_exe, fname), shell=True)
+- if osp.isfile(fname):
+- dest = osp.join(dirname, 'spyderlib')
+- try:
+- shutil.move(fname, dest)
+- except shutil.Error:
+- print("Unable to replace %s" % dest)
+- shutil.rmtree(self.builder_target_dir)
+-
+- CMDCLASS['build_doc'] = MyBuildDoc
+-except ImportError:
+- print('WARNING: unable to build documentation because Sphinx '\
+- 'is not installed', file=sys.stderr)
+-
+-
+ NAME = 'spyder'
+ LIBNAME = 'spyderlib'
+ from spyderlib import __version__, __project_url__
+@@ -204,13 +106,7 @@
+ packages = get_subpackages(LIBNAME)+get_subpackages('spyderplugins')
+ return packages
+
+-# NOTE: the '[...]_win_post_install.py' script is installed even on non-Windows
+-# platforms due to a bug in pip installation process (see Issue 1158)
+-SCRIPTS = ['%s_win_post_install.py' % NAME]
+-if PY3 and sys.platform.startswith('linux'):
+- SCRIPTS.append('spyder3')
+-else:
+- SCRIPTS.append('spyder')
++SCRIPTS = ['spyder']
+ EXTLIST = ['.mo', '.svg', '.png', '.css', '.html', '.js', '.chm', '.ini',
+ '.txt', '.rst']
+ if os.name == 'nt':
+@@ -246,7 +142,7 @@
+ package_data={LIBNAME: get_package_data(LIBNAME, EXTLIST),
+ 'spyderplugins':
+ get_package_data('spyderplugins', EXTLIST)},
+- requires=["rope (>=0.9.2)", "sphinx (>=0.6.0)", "PyQt4 (>=4.4)"],
++ requires=["rope (>=0.9.2)", "PyQt4 (>=4.4)"],
+ scripts=[osp.join('scripts', fname) for fname in SCRIPTS],
+ data_files=get_data_files(),
+ options={"bdist_wininst":
+@@ -267,5 +163,4 @@
+ 'Programming Language :: Python :: 3',
+ 'Development Status :: 5 - Production/Stable',
+ 'Topic :: Scientific/Engineering',
+- 'Topic :: Software Development :: Widget Sets'],
+- cmdclass=CMDCLASS)
++ 'Topic :: Software Development :: Widget Sets'])
diff --git a/dev-python/spyder/metadata.xml b/dev-python/spyder/metadata.xml
new file mode 100644
index 00000000000..c4364ce877c
--- /dev/null
+++ b/dev-python/spyder/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription lang="en">
+ Spyder development environment and its PyQt4-based IDE tools:
+ interactive Python shell, Python code editor, workspace
+ (dict/list/string/array editor), doc viewer, history log,
+ environment variables editor, ...
+</longdescription>
+ <use>
+ <flag name="ipython">Add support for <pkg>dev-python/ipython</pkg></flag>
+ <flag name="matplotlib">Add support for <pkg>dev-python/matplotlib</pkg></flag>
+ <flag name="numpy">Add support for <pkg>dev-python/numpy</pkg></flag>
+ <flag name="pep8">Add support for <pkg>dev-python/pep8</pkg></flag>
+ <flag name="pyflakes">Add support for <pkg>dev-python/pyflakes</pkg></flag>
+ <flag name="pylint">Add support for <pkg>dev-python/pylint</pkg></flag>
+ <flag name="rope">Add support for <pkg>dev-python/rope</pkg></flag>
+ <flag name="scipy">Add support for <pkg>sci-libs/scipy</pkg></flag>
+ <flag name="sphinx">Add support for <pkg>dev-python/sphinx</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">spyder</remote-id>
+ <remote-id type="bitbucket">spyder-ide/spyderlib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/spyder/spyder-2.3.4.ebuild b/dev-python/spyder/spyder-2.3.4.ebuild
new file mode 100644
index 00000000000..65b4f1a02fa
--- /dev/null
+++ b/dev-python/spyder/spyder-2.3.4.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python IDE with matlab-like features"
+HOMEPAGE="http://code.google.com/p/spyderlib/ https://bitbucket.org/spyder-ide/spyderlib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc ipython matplotlib numpy pep8 +pyflakes pylint +rope scipy sphinx"
+
+# rope requires no version bordering since all are >= miniumum version
+RDEPEND="
+ || ( dev-python/PyQt4[${PYTHON_USEDEP},svg,webkit]
+ dev-python/pyside[${PYTHON_USEDEP},svg,webkit] )
+ ipython? ( dev-python/ipython[qt4,${PYTHON_USEDEP}] )
+ matplotlib? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ pep8? ( dev-python/pep8[${PYTHON_USEDEP}] )
+ pyflakes? ( >=dev-python/pyflakes-0.5[${PYTHON_USEDEP}] )
+ pylint? ( dev-python/pylint[${PYTHON_USEDEP}] )
+ rope? ( $(python_gen_cond_dep 'dev-python/rope[${PYTHON_USEDEP}]' python2_7) )
+ scipy? ( sci-libs/scipy[${PYTHON_USEDEP}] )
+ sphinx? ( >=dev-python/sphinx-0.6.0[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ doc? ( >=dev-python/sphinx-0.6.0[${PYTHON_USEDEP}] )"
+
+# Courtesy of Arfrever
+PATCHES=( "${FILESDIR}"/${PN}-2.3.1-build.patch )
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ PYTHONPATH="{BUILD_DIR}" \
+ sphinx-build doc doc/html || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doicon spyderlib/images/spyder.svg
+ make_desktop_entry spyder Spyder spyder "Development;IDE"
+ use doc && dohtml -r doc/html/
+}
diff --git a/dev-python/spyder/spyder-2.3.5.2.ebuild b/dev-python/spyder/spyder-2.3.5.2.ebuild
new file mode 100644
index 00000000000..405c654abdc
--- /dev/null
+++ b/dev-python/spyder/spyder-2.3.5.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python IDE with matlab-like features"
+HOMEPAGE="http://code.google.com/p/spyderlib/ https://bitbucket.org/spyder-ide/spyderlib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc ipython matplotlib numpy pep8 +pyflakes pylint +rope scipy sphinx"
+
+# rope requires no version bordering since all are >= miniumum version
+RDEPEND="
+ || ( dev-python/PyQt4[${PYTHON_USEDEP},svg,webkit]
+ dev-python/pyside[${PYTHON_USEDEP},svg,webkit] )
+ ipython? ( dev-python/ipython[qt4,${PYTHON_USEDEP}] )
+ matplotlib? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ pep8? ( dev-python/pep8[${PYTHON_USEDEP}] )
+ pyflakes? ( >=dev-python/pyflakes-0.5[${PYTHON_USEDEP}] )
+ pylint? ( dev-python/pylint[${PYTHON_USEDEP}] )
+ rope? ( $(python_gen_cond_dep 'dev-python/rope[${PYTHON_USEDEP}]' python2_7) )
+ scipy? ( sci-libs/scipy[${PYTHON_USEDEP}] )
+ sphinx? ( >=dev-python/sphinx-0.6.0[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ doc? ( >=dev-python/sphinx-0.6.0[${PYTHON_USEDEP}] )"
+
+# Courtesy of Arfrever
+PATCHES=( "${FILESDIR}"/${PN}-2.3.1-build.patch )
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build doc doc/html || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doicon spyderlib/images/spyder.svg
+ make_desktop_entry spyder Spyder spyder "Development;IDE"
+ use doc && dodoc -r doc/html/
+}
diff --git a/dev-python/sqlalchemy-migrate/Manifest b/dev-python/sqlalchemy-migrate/Manifest
new file mode 100644
index 00000000000..caa4fbd8a2b
--- /dev/null
+++ b/dev-python/sqlalchemy-migrate/Manifest
@@ -0,0 +1,5 @@
+DIST sqlalchemy-migrate-0.7.2.tar.gz 105862 SHA256 7f55c768ee26f143fedb11b365a4c57c3bbdb5211e049c7f04b8ae8107c28333 SHA512 31c56da755ccccdc0aa5eacddcb097a4bd6431ab72a5b964689b0943b50ae4b23e034ae84d8dad4707d4cf9bea5b538e015ff755318685cc17dd82497a4cb4a9 WHIRLPOOL 51a058edea0b48db8377a69366f2b30a44e0ed9621d662fa347df3b2a6b9605ee8866ee21e86153c649f5e4e627fef39dc1a68d333c5f334e96be2cf20aceee1
+DIST sqlalchemy-migrate-0.9.1.tar.gz 123104 SHA256 16e327c9642ca4c99a70dcac3b39aeb821edaf5214834b47fb0a89bac44af23b SHA512 8b1e87238a4993c2abf61cc554afe0369bf34006a01237b0667d4b7fe4b85cca4f8a26968e2c20f7ed09a1f129c300f8f88ce19c61a325925fe56a16f873c627 WHIRLPOOL 110a26f73f3814870e37fb1496cb4419844344e2195db63d633a64899b85d40b6e0acc6d5d11bbe8110410ecb4a4ea7411bc8e54a5223374a0c2c199d75284ec
+DIST sqlalchemy-migrate-0.9.2.tar.gz 124175 SHA256 578fa857615f05f9c73f024147c75019535d3d276ca46f5ec84cc0d606820893 SHA512 25b218ae97e9a99ad126e4185621bff04da2e9d47d2e47620965974a0b865a9dad161c4d284aaf316f01f0241743d11dd6578942ad6673f2843476fbeaaa4688 WHIRLPOOL ca9952c56dafde150126001aa1b58b43cb95fd751c4d2361037424bca8d5b2080f72f7ed3c5b39a2a504fa30f5f310857331b23d9f244b1106858d068c4cbb49
+DIST sqlalchemy-migrate-0.9.5.tar.gz 125820 SHA256 d36ae0879b418c4a7011c081a7b05aa9eaf2f2bc38402cdad4ad64369de31d9c SHA512 2e6e36fe68c5e3c5cb0b2c12c9d00168389461d28606facb34c7d8e6aa2807e4f7c41182140a7b8e933be73ef19af652177687c9af3b9b2e59c318f1e16efb30 WHIRLPOOL eec61bc839c926279452063b31966a6800d0be6bd5bb3654515dcf32a41f0b6dcdf1ac0ef2abdb0d1ccb5bc3f06f4ef272b2b37223a580e9c9b7888c8e8be4a0
+DIST sqlalchemy-migrate-0.9.6.tar.gz 126368 SHA256 c2c73d8dbeb29a96459d8622e3bac2e97cf6f74ed0564469486fe7ffe0ef3d97 SHA512 4f82ae63037803d2f0b270bb597894e58994e2bbc364d6ca4582b979441d936d56d5fe3d15e59ddc810252149866b3dba85c041a17f47cbe2537c3e167b51334 WHIRLPOOL 0b059414221a74c0d71f821398fb9d7db82e68064d947be2d135b7314bf26241df23836a2ef3421b33264dbfae953c337d7b8fd44996b215594dd36e1be34385
diff --git a/dev-python/sqlalchemy-migrate/metadata.xml b/dev-python/sqlalchemy-migrate/metadata.xml
new file mode 100644
index 00000000000..e72e7712b79
--- /dev/null
+++ b/dev-python/sqlalchemy-migrate/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">sqlalchemy-migrate</remote-id>
+ <remote-id type="pypi">sqlalchemy-migrate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.7.2-r1.ebuild b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.7.2-r1.ebuild
new file mode 100644
index 00000000000..d71568fc0fa
--- /dev/null
+++ b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.7.2-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SQLAlchemy Schema Migration Tools"
+HOMEPAGE="http://code.google.com/p/sqlalchemy-migrate/ http://pypi.python.org/pypi/sqlalchemy-migrate"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc x86"
+IUSE=""
+
+DEPEND="dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.6[${PYTHON_USEDEP}]
+ <dev-python/sqlalchemy-0.8[${PYTHON_USEDEP}]
+ dev-python/tempita[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+# for tests: unittest2 and scripttest
diff --git a/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.1.ebuild b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.1.ebuild
new file mode 100644
index 00000000000..b5f538c7776
--- /dev/null
+++ b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py3 has a syntax errors. On testing it is underdone
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SQLAlchemy Schema Migration Tools"
+HOMEPAGE="http://code.google.com/p/sqlalchemy-migrate/ http://pypi.python.org/pypi/sqlalchemy-migrate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.7.8[${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/tempita-0.4[${PYTHON_USEDEP}]
+ dev-python/python-sqlparse[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.2.ebuild b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.2.ebuild
new file mode 100644
index 00000000000..0ea2259193b
--- /dev/null
+++ b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py3 has a syntax errors. On testing it is underdone
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SQLAlchemy Schema Migration Tools"
+HOMEPAGE="http://code.google.com/p/sqlalchemy-migrate/ http://pypi.python.org/pypi/sqlalchemy-migrate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.5.21[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.7.8[${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/tempita-0.4[${PYTHON_USEDEP}]
+ dev-python/python-sqlparse[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.5.ebuild b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.5.ebuild
new file mode 100644
index 00000000000..1868d13111b
--- /dev/null
+++ b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py3 has a syntax errors. On testing it is underdone
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SQLAlchemy Schema Migration Tools"
+HOMEPAGE="http://code.google.com/p/sqlalchemy-migrate/ http://pypi.python.org/pypi/sqlalchemy-migrate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.7.8[${PYTHON_USEDEP}]
+ !~dev-python/sqlalchemy-0.9.5[${PYTHON_USEDEP}]
+ <dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/tempita-0.4[${PYTHON_USEDEP}]
+ dev-python/python-sqlparse[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.6.ebuild b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.6.ebuild
new file mode 100644
index 00000000000..03599b02b22
--- /dev/null
+++ b/dev-python/sqlalchemy-migrate/sqlalchemy-migrate-0.9.6.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py3 has a syntax errors. On testing it is underdone
+PYTHON_COMPAT=( python2_7 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="SQLAlchemy Schema Migration Tools"
+HOMEPAGE="http://code.google.com/p/sqlalchemy-migrate/ http://pypi.python.org/pypi/sqlalchemy-migrate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-issuetracker[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/sqlalchemy-0.7.8[${PYTHON_USEDEP}]
+ !~dev-python/sqlalchemy-0.9.5[${PYTHON_USEDEP}]
+ <dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/tempita-0.4[${PYTHON_USEDEP}]
+ dev-python/python-sqlparse[${PYTHON_USEDEP}]"
+# Testsuite requires a missing dep and errors with poor report output
+
+python_prepare_all() {
+ # Prevent d'loading during the doc build via sphinx.ext.intersphinx
+ sed -e "s: 'sphinx.ext.intersphinx',::" -i doc/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ einfo ""; einfo "The build seeks to import modules from an installed state of the package"
+ einfo "simply ignore all warnings / errors of failure to import module migrate.<module>"; einfo ""
+ emake -C doc/source html || die "Generation of documentation failed"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/source/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
new file mode 100644
index 00000000000..3a8fa138aeb
--- /dev/null
+++ b/dev-python/sqlalchemy/Manifest
@@ -0,0 +1,7 @@
+DIST SQLAlchemy-0.7.10.tar.gz 3541639 SHA256 77aa39d65c9d043eba6ba329b359ff867424fd6c403b7c0cb112b65e507e1d66 SHA512 631bc4ffb419defa531a66d82449fe48f93c88371ba0b8ab4217d900a0d1d90efe9699d8a9048d5c2ed33948c6d2f7cae46452ee45d442914018f3361e804367 WHIRLPOOL 74ffc17efbcbb2ac67712b9e11aa48431d18970f46ae5985aaa345aa8691f96e4acc4cf6fa37606699fbba83fcb7f74b0360fea2ac5e93a451585019e110f2ed
+DIST SQLAlchemy-0.9.2.tar.gz 4389966 SHA256 1411b6e93446350e533ed0b892ba5cbce9afdfab8ce09f060add8ada8911e1ee SHA512 1d4baa0ea02e4f6ee70ff00dbda77c6c814adab6f45df89765123045ced4d65bceb9c7640aa16b60e45887d4454584d49f4a5b06db0fbd9f7770cf78da5ecda3 WHIRLPOOL 79e06d8987dad3bd12cc412980978f670888595b6e7805e17ccc3f0face39d5500b6299a81f5424fe7a77005e928d88e3eec34300075c03a4d788b19c47be2c3
+DIST SQLAlchemy-0.9.8.tar.gz 4080098 SHA256 de3ac04ecab0a7e0af64eee30a71e723ba5886b958205f7354dd62439da60389 SHA512 3df7d7a64cdfe7b684be98e7e9d6836da54c391343bb047224a11df888041034bcc54cc30d15dc3d56b5d397b35e6aabe5732e7ca8fbf553bd8d98731c249ea5 WHIRLPOOL 2cedf7713753a6cf8838741fcf06c5510387aa4e661ea3c0ecc2bb7bdb5b03fb90f072ccd1a5671f03943952340c6c3525836e1ebe9246506143b055a1ca1991
+DIST SQLAlchemy-0.9.9.tar.gz 4213948 SHA256 72a51f6ae99116ea969381f65fe471aafe14c21f6760f259b46f919f21345f91 SHA512 a28c83645ddddc17825f7d76443350ef22b23be72524aeb22665b4f8b92e0bf7dd79f9628841732973a565f5edb64b687f9e49daa1af11b1778b854b66728fa0 WHIRLPOOL e60a8ef79da0547b58a53c5f567e6abeba7408cd4cc398feaa7c61dcad7fa344dd31691fee25d4738bc25bb956ecf2b20cbeb6caf29114066dfbec26c2f07695
+DIST SQLAlchemy-1.0.5.tar.gz 4600531 SHA256 b57d3a35c39ed956e3002118a51502918b2fd357eca7523a6b50ef8d329a29be SHA512 d898c2b74132a3f1ea9c2aecd761af6788f6dc2c76b471dfed5b0c6f69eb273b6b4602028ad0a142129311be08da97d74d277db2150c169c51385bb7d28f843e WHIRLPOOL 204c8079ca8a2ab43e363f3e8ea0dbc436e12ec9c7dd0bc9201eef85e9d7717084c38e4655def400c19706c9c80f91baed9bee2c206e670ae8de030be27ed167
+DIST SQLAlchemy-1.0.6.tar.gz 4615939 SHA256 99a8a54bec4988f704c54ee9f769aa196db43a5ef7ed655b78a80a129c9c65f3 SHA512 188e2ce1c38819318c7561fa2cc663a8421ea6869abd2b0b355986b8326c481a62cd073a52cb90ad967cbcc7c2bfe64aecee2280423a40b4bc23f779c92bcd63 WHIRLPOOL d5a4035d21c74378e162719ba3b09d5554e218aefe273d9676158e2c02715a827edeb652714a7964d19cacacf45436b4ca1ef490ce6ff9631362f53a6a1c5190
+DIST SQLAlchemy-1.0.8.tar.gz 4627601 SHA256 950c79c0abf9e9f99c43c627c51d40d14a946810a90c35e7cd827bfd0bffe46f SHA512 921f847a20548095cb1f41fe6147b393110e08f8f3ff0aee6081e7811e7c15b3c03583afd41ddf5aacdc1dde090c0512afb94c7cc33d9c27135a5525ed121e74 WHIRLPOOL 757f2a3832c8fefd5789cd981eb1b2028419362ed2714927198df6b91742236896d4ab0131969afa08e5508843e32e018a1361e28df3f22a15f811d78275f8cf
diff --git a/dev-python/sqlalchemy/files/0.9.7-test-fix.patch b/dev-python/sqlalchemy/files/0.9.7-test-fix.patch
new file mode 100644
index 00000000000..ca1809bb832
--- /dev/null
+++ b/dev-python/sqlalchemy/files/0.9.7-test-fix.patch
@@ -0,0 +1,38 @@
+From 405c223ae50e78dacac08783c414619db20df0b7 Mon Sep 17 00:00:00 2001
+From: Mike Bayer <mike_mp@zzzcomputing.com>
+Date: Tue, 29 Jul 2014 13:32:05 -0400
+Subject: [PATCH] - Fixed 0.9.7 regression caused by :ticket:`3067` in
+ conjunction with a mis-named unit test such that so-called "schema" types
+ like :class:`.Boolean` and :class:`.Enum` could no longer be pickled. fixes
+ #3144
+
+diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py
+index 6114460..6cbf583 100644
+--- a/lib/sqlalchemy/sql/elements.py
++++ b/lib/sqlalchemy/sql/elements.py
+@@ -3276,6 +3276,9 @@ class _defer_name(_truncated_label):
+ else:
+ return super(_defer_name, cls).__new__(cls, value)
+
++ def __reduce__(self):
++ return self.__class__, (util.text_type(self), )
++
+
+ class _defer_none_name(_defer_name):
+ """indicate a 'deferred' name that was ultimately the value None."""
+diff --git a/test/sql/test_types.py b/test/sql/test_types.py
+index 03d3997..efa0f90 100644
+--- a/test/sql/test_types.py
++++ b/test/sql/test_types.py
+@@ -234,9 +234,9 @@ class TypeAffinityTest(fixtures.TestBase):
+ assert t1.dialect_impl(d)._type_affinity is postgresql.UUID
+
+
+-class PickleMetadataTest(fixtures.TestBase):
++class PickleTypesTest(fixtures.TestBase):
+
+- def testmeta(self):
++ def test_pickle_types(self):
+ for loads, dumps in picklers():
+ column_types = [
+ Column('Boo', Boolean()),
diff --git a/dev-python/sqlalchemy/files/lru_cache_timestamping.patch b/dev-python/sqlalchemy/files/lru_cache_timestamping.patch
new file mode 100644
index 00000000000..41cd3915669
--- /dev/null
+++ b/dev-python/sqlalchemy/files/lru_cache_timestamping.patch
@@ -0,0 +1,33 @@
+diff -r d1c7b3df098a lib/sqlalchemy/util/_collections.py
+
+Index: lib/sqlalchemy/util/_collections.py
+===================================================================
+--- a/lib/sqlalchemy/util/_collections.py Wed Jan 18 12:42:54 2012 -0500
++++ b/lib/sqlalchemy/util/_collections.py Thu Jan 19 10:01:28 2012 -0500
+@@ -769,10 +769,15 @@
+ def __init__(self, capacity=100, threshold=.5):
+ self.capacity = capacity
+ self.threshold = threshold
++ self._counter = 0
++
++ def _inc_counter(self):
++ self._counter += 1
++ return self._counter
+
+ def __getitem__(self, key):
+ item = dict.__getitem__(self, key)
+- item[2] = time_func()
++ item[2] = self._inc_counter()
+ return item[1]
+
+ def values(self):
+@@ -788,7 +793,7 @@
+ def __setitem__(self, key, value):
+ item = dict.get(self, key)
+ if item is None:
+- item = [key, value, time_func()]
++ item = [key, value, self._inc_counter()]
+ dict.__setitem__(self, key, item)
+ else:
+ item[1] = value
+
diff --git a/dev-python/sqlalchemy/files/sqlalchemy-0.7-logging.handlers.patch b/dev-python/sqlalchemy/files/sqlalchemy-0.7-logging.handlers.patch
new file mode 100644
index 00000000000..122ae43fe33
--- /dev/null
+++ b/dev-python/sqlalchemy/files/sqlalchemy-0.7-logging.handlers.patch
@@ -0,0 +1,12 @@
+https://bitbucket.org/sqlalchemy/sqlalchemy/pull-request/41
+--- a/test/engine/test_execute.py
++++ b/test/engine/test_execute.py
+@@ -9,7 +9,7 @@
+ import sqlalchemy as tsa
+ from test.lib import testing, engines
+ from test.lib.engines import testing_engine
+-import logging
++import logging, logging.handlers
+ from sqlalchemy.dialects.oracle.zxjdbc import ReturningParam
+ from sqlalchemy.engine import base, default
+ from sqlalchemy.engine.base import Connection, Engine
diff --git a/dev-python/sqlalchemy/files/sqlalchemy-0.8.1-pypy-fixtests.patch b/dev-python/sqlalchemy/files/sqlalchemy-0.8.1-pypy-fixtests.patch
new file mode 100644
index 00000000000..39b0281c98f
--- /dev/null
+++ b/dev-python/sqlalchemy/files/sqlalchemy-0.8.1-pypy-fixtests.patch
@@ -0,0 +1,50 @@
+# http://www.sqlalchemy.org/trac/ticket/2719
+diff -ur SQLAlchemy-0.8.1.orig/test/ext/test_serializer.py SQLAlchemy-0.8.1/test/ext/test_serializer.py
+--- test/ext/test_serializer.py 2013-04-28 05:24:34.000000000 +0800
++++ test/ext/test_serializer.py 2013-05-02 01:02:25.376203511 +0800
+@@ -114,6 +114,7 @@
+ Address(email='ed@lala.com'),
+ Address(email='ed@bettyboop.com')])
+
++ @testing.skip_if(lambda: util.pypy, "problems with pypy pickle reported")
+ def test_query_two(self):
+ q = \
+ Session.query(User).join(User.addresses).\
+@@ -123,6 +124,7 @@
+ eq_(q2.all(), [User(name='fred')])
+ eq_(list(q2.values(User.id, User.name)), [(9, u'fred')])
+
++ @testing.skip_if(lambda: util.pypy, "problems with pypy pickle reported")
+ def test_query_three(self):
+ ua = aliased(User)
+ q = \
+@@ -136,6 +138,7 @@
+ ua_2 = q2._entities[0].entity_zero.entity
+ eq_(list(q2.values(ua_2.id, ua_2.name)), [(9, u'fred')])
+
++ @testing.skip_if(lambda: util.pypy, "problems with pypy pickle reported")
+ def test_orm_join(self):
+ from sqlalchemy.orm.util import join
+
+diff -ur SQLAlchemy-0.8.1.orig/test/orm/test_manytomany.py SQLAlchemy-0.8.1/test/orm/test_manytomany.py
+--- test/orm/test_manytomany.py 2013-04-28 05:24:34.000000000 +0800
++++ test/orm/test_manytomany.py 2013-05-02 01:05:08.073213015 +0800
+@@ -233,6 +233,9 @@
+ p2 = Place('place2')
+ p3 = Place('place3')
+
++ sess = Session()
++ sess.add_all([p3, p1, t1, t2, p2, t3])
++
+ t1.inputs.append(p1)
+ t1.inputs.append(p2)
+ t1.outputs.append(p3)
+@@ -240,8 +243,6 @@
+ p2.inputs.append(t2)
+ p3.inputs.append(t2)
+ p1.outputs.append(t1)
+- sess = Session()
+- sess.add_all((t1, t2, t3, p1, p2, p3))
+ sess.commit()
+
+ self.assert_result([t1],
diff --git a/dev-python/sqlalchemy/metadata.xml b/dev-python/sqlalchemy/metadata.xml
new file mode 100644
index 00000000000..e289219495d
--- /dev/null
+++ b/dev-python/sqlalchemy/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">SQLAlchemy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sqlalchemy/sqlalchemy-0.7.10.ebuild b/dev-python/sqlalchemy/sqlalchemy-0.7.10.ebuild
new file mode 100644
index 00000000000..e198bfc937c
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-0.7.10.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py3 appears underdone,
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils flag-o-matic
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="http://www.sqlalchemy.org/ http://pypi.python.org/pypi/SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples firebird mssql mysql postgres +sqlite test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ firebird? ( dev-python/kinterbasdb )
+ mssql? ( dev-python/pymssql )
+ mysql? ( dev-python/mysql-python )
+ postgres? ( >=dev-python/psycopg-2 )
+ sqlite? (
+ >=dev-db/sqlite-3.3.13 )"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-db/sqlite-3.3.13
+ >=dev-python/nose-0.10.4[${PYTHON_USEDEP}]
+ )"
+
+# py26 tests needs
+DISTUTILS_NO_PARALLEL_BUILD=1
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}/${PN}-0.7-logging.handlers.patch" )
+
+python_prepare_all() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ rm -fr test/aaa_profiling
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+}
+
+python_test() {
+ "${PYTHON}" sqla_nose.py || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use doc; then
+ pushd doc > /dev/null
+ rm -fr build
+ dohtml -r [a-z]* _images _static
+ popd > /dev/null
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-0.9.2.ebuild b/dev-python/sqlalchemy/sqlalchemy-0.9.2.ebuild
new file mode 100644
index 00000000000..fff487e6096
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-0.9.2.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 eutils flag-o-matic
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="http://www.sqlalchemy.org/ http://pypi.python.org/pypi/SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples +sqlite test"
+REQUIRED_USE="test? ( sqlite )"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ sqlite? ( >=dev-db/sqlite-3.3.13 )"
+
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-db/sqlite-3.3.13
+ >=dev-python/nose-0.10.4[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ rm -r test/aaa_profiling || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # Create copies of necessary files in BUILD_DIR.
+ cp -pR examples sqla_nose.py setup.cfg test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null
+ if [[ "${EPYTHON}" == "python3.2" ]]; then
+ 2to3 --no-diffs -w test
+ "${PYTHON}" sqla_nose.py -e test_reflect || die "Testsuite failed under ${EPYTHON}"
+ else
+ "${PYTHON}" sqla_nose.py || die "Testsuite failed under ${EPYTHON}"
+ fi
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/. )
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if ! has_version dev-python/mysql-python; then
+ elog "For MySQL support, install dev-python/mysql-python"
+ fi
+
+ if ! has_version dev-python/pymssql; then
+ elog "For mssql support, install dev-python/pymssql"
+ fi
+
+ if ! has_version dev-python/psycopg:2; then
+ elog "For postgresql support, install dev-python/psycopg:2"
+ fi
+ fi
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-0.9.8.ebuild b/dev-python/sqlalchemy/sqlalchemy-0.9.8.ebuild
new file mode 100644
index 00000000000..abe7371ca7f
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-0.9.8.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="http://www.sqlalchemy.org/ http://pypi.python.org/pypi/SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples +sqlite test"
+REQUIRED_USE="test? ( sqlite )"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ rm -r test/aaa_profiling || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # Create copies of necessary files in BUILD_DIR.
+ # https://bitbucket.org/zzzeek/sqlalchemy/issue/3144/
+ cp -pR examples sqla_nose.py setup.cfg test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null
+ if [[ "${EPYTHON}" == "python3.2" ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ # Recently upstream elected to make the testsuite also pytest capable
+ # "${PYTHON}" sqla_nose.py || die "Testsuite failed under ${EPYTHON}"
+ py.test test || die "Testsuite failed under ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/. )
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if ! has_version dev-python/mysql-python; then
+ elog "For MySQL support, install dev-python/mysql-python"
+ fi
+
+ if ! has_version dev-python/pymssql; then
+ elog "For mssql support, install dev-python/pymssql"
+ fi
+
+ if ! has_version dev-python/psycopg:2; then
+ elog "For postgresql support, install dev-python/psycopg:2"
+ fi
+ fi
+
+ elog "mysql backend support can be enabled by installing mysql-python for cpython py2.7 only,"
+ elog "or mysql-connector-python for support of cpythons 2.7 3.3 and 3.4"
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-0.9.9.ebuild b/dev-python/sqlalchemy/sqlalchemy-0.9.9.ebuild
new file mode 100644
index 00000000000..463dd600ff6
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-0.9.9.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="http://www.sqlalchemy.org/ http://pypi.python.org/pypi/SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples +sqlite test"
+REQUIRED_USE="test? ( sqlite )"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ rm -r test/aaa_profiling || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # Create copies of necessary files in BUILD_DIR.
+ # https://bitbucket.org/zzzeek/sqlalchemy/issue/3144/
+ cp -pR examples sqla_nose.py setup.cfg test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null
+ if [[ "${EPYTHON}" == "python3.2" ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ # Recently upstream elected to make the testsuite also pytest capable
+ # "${PYTHON}" sqla_nose.py || die "Testsuite failed under ${EPYTHON}"
+ py.test test || die "Testsuite failed under ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/. )
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if ! has_version dev-python/mysql-python; then
+ elog "For MySQL support, install dev-python/mysql-python"
+ fi
+
+ if ! has_version dev-python/pymssql; then
+ elog "For mssql support, install dev-python/pymssql"
+ fi
+
+ if ! has_version dev-python/psycopg:2; then
+ elog "For postgresql support, install dev-python/psycopg:2"
+ fi
+ fi
+
+ elog "mysql backend support can be enabled by installing mysql-python for cpython py2.7 only,"
+ elog "or mysql-connector-python for support of cpythons 2.7 3.3 and 3.4"
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-1.0.5.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.0.5.ebuild
new file mode 100644
index 00000000000..d291d176d64
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-1.0.5.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_beta/b}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="http://www.sqlalchemy.org/ http://pypi.python.org/pypi/SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples +sqlite test"
+REQUIRED_USE="test? ( sqlite )"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ rm -r test/aaa_profiling || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # Create copies of necessary files in BUILD_DIR.
+ # https://bitbucket.org/zzzeek/sqlalchemy/issue/3144/
+ cp -pR examples sqla_nose.py setup.cfg test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null
+ if [[ "${EPYTHON}" == "python3.2" ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ # Recently upstream elected to make the testsuite also pytest capable
+ # "${PYTHON}" sqla_nose.py || die "Testsuite failed under ${EPYTHON}"
+ py.test test || die "Testsuite failed under ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/. )
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if ! has_version dev-python/mysql-python; then
+ elog "For MySQL support, install dev-python/mysql-python"
+ fi
+
+ if ! has_version dev-python/pymssql; then
+ elog "For mssql support, install dev-python/pymssql"
+ fi
+
+ if ! has_version dev-python/psycopg:2; then
+ elog "For postgresql support, install dev-python/psycopg:2"
+ fi
+ fi
+
+ elog "mysql backend support can be enabled by installing mysql-python for cpython py2.7 only,"
+ elog "or mysql-connector-python for support of cpythons 2.7 3.3 and 3.4"
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-1.0.6.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.0.6.ebuild
new file mode 100644
index 00000000000..d291d176d64
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-1.0.6.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_beta/b}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="http://www.sqlalchemy.org/ http://pypi.python.org/pypi/SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples +sqlite test"
+REQUIRED_USE="test? ( sqlite )"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ rm -r test/aaa_profiling || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # Create copies of necessary files in BUILD_DIR.
+ # https://bitbucket.org/zzzeek/sqlalchemy/issue/3144/
+ cp -pR examples sqla_nose.py setup.cfg test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null
+ if [[ "${EPYTHON}" == "python3.2" ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ # Recently upstream elected to make the testsuite also pytest capable
+ # "${PYTHON}" sqla_nose.py || die "Testsuite failed under ${EPYTHON}"
+ py.test test || die "Testsuite failed under ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/. )
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if ! has_version dev-python/mysql-python; then
+ elog "For MySQL support, install dev-python/mysql-python"
+ fi
+
+ if ! has_version dev-python/pymssql; then
+ elog "For mssql support, install dev-python/pymssql"
+ fi
+
+ if ! has_version dev-python/psycopg:2; then
+ elog "For postgresql support, install dev-python/psycopg:2"
+ fi
+ fi
+
+ elog "mysql backend support can be enabled by installing mysql-python for cpython py2.7 only,"
+ elog "or mysql-connector-python for support of cpythons 2.7 3.3 and 3.4"
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-1.0.8.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.0.8.ebuild
new file mode 100644
index 00000000000..d291d176d64
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-1.0.8.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_beta/b}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="http://www.sqlalchemy.org/ http://pypi.python.org/pypi/SQLAlchemy"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples +sqlite test"
+REQUIRED_USE="test? ( sqlite )"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ test? ( dev-python/pytest[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ rm -r test/aaa_profiling || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # Create copies of necessary files in BUILD_DIR.
+ # https://bitbucket.org/zzzeek/sqlalchemy/issue/3144/
+ cp -pR examples sqla_nose.py setup.cfg test "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" > /dev/null
+ if [[ "${EPYTHON}" == "python3.2" ]]; then
+ 2to3 --no-diffs -w test
+ fi
+ # Recently upstream elected to make the testsuite also pytest capable
+ # "${PYTHON}" sqla_nose.py || die "Testsuite failed under ${EPYTHON}"
+ py.test test || die "Testsuite failed under ${EPYTHON}"
+ popd > /dev/null
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/. )
+
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if ! has_version dev-python/mysql-python; then
+ elog "For MySQL support, install dev-python/mysql-python"
+ fi
+
+ if ! has_version dev-python/pymssql; then
+ elog "For mssql support, install dev-python/pymssql"
+ fi
+
+ if ! has_version dev-python/psycopg:2; then
+ elog "For postgresql support, install dev-python/psycopg:2"
+ fi
+ fi
+
+ elog "mysql backend support can be enabled by installing mysql-python for cpython py2.7 only,"
+ elog "or mysql-connector-python for support of cpythons 2.7 3.3 and 3.4"
+}
diff --git a/dev-python/sqlite3dbm/Manifest b/dev-python/sqlite3dbm/Manifest
new file mode 100644
index 00000000000..012313d27b0
--- /dev/null
+++ b/dev-python/sqlite3dbm/Manifest
@@ -0,0 +1 @@
+DIST sqlite3dbm-0.1.4-git.tar.gz 18962 SHA256 635cbf3f554c0cd75d68a6ebff57b2e29686bad1469a283a70f28ae8dd71c905 SHA512 1b420839482cf5881b744855393afa9eaa1cd0ea2195d03c6576f97804851dcfa5b5fe6a80d9d77eb00b9ee49ebb7cdb7ba7b86f57e4c700178a0bf46d598bab WHIRLPOOL 5e7789b042732edd8c4f3b06868582fff4164b4fa461d297f44ba2a3491a71b607f1b0b4b910e2edc1cddd1b86cc3c6a0bec482be7b36185d59d812a78ea7b8c
diff --git a/dev-python/sqlite3dbm/metadata.xml b/dev-python/sqlite3dbm/metadata.xml
new file mode 100644
index 00000000000..a461b42c335
--- /dev/null
+++ b/dev-python/sqlite3dbm/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">Yelp/sqlite3dbm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sqlite3dbm/sqlite3dbm-0.1.4-r1.ebuild b/dev-python/sqlite3dbm/sqlite3dbm-0.1.4-r1.ebuild
new file mode 100644
index 00000000000..9d56da483f0
--- /dev/null
+++ b/dev-python/sqlite3dbm/sqlite3dbm-0.1.4-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+# TODO: strip the -git at some version bump, introduced to avoid clash with
+# earlier tarball
+DESCRIPTION="An sqlite-backed dictionary"
+HOMEPAGE="https://github.com/Yelp/sqlite3dbm http://pypi.python.org/pypi/sqlite3dbm/"
+SRC_URI="https://github.com/Yelp/${PN}/archive/v${PV}.tar.gz -> ${P}-git.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx )
+ test? ( dev-python/testify[${PYTHON_USEDEP}] )"
+
+DOCS=(AUTHORS.txt CHANGES.txt README.md)
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+src_test() {
+ testify tests || die
+}
diff --git a/dev-python/sqlitecachec/Manifest b/dev-python/sqlitecachec/Manifest
new file mode 100644
index 00000000000..86ed6277a62
--- /dev/null
+++ b/dev-python/sqlitecachec/Manifest
@@ -0,0 +1 @@
+DIST yum-metadata-parser-1.1.4.tar.gz 16469 SHA256 f1560a284541feb720c3ae35b6b31f80c2be5cb9ca86b3a1ee9459846f821ada SHA512 51c1c3652171713a6decc165a4f8c4ddb5641f2ad3ee9b84fba3514d5c9afbb0c7ebc7dbb26156194b58c29227ef7b8d40ad760082da1c568254bcbee129d68c WHIRLPOOL ae479b4f93f605b0f19ec7f1c729cac2e19af408e46568209be711aae22b1296b45f77b0eb5309ff855545fdc323dcd64899541156a9f0079ab6afd504b1eb4c
diff --git a/dev-python/sqlitecachec/metadata.xml b/dev-python/sqlitecachec/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/sqlitecachec/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/sqlitecachec/sqlitecachec-1.1.4-r1.ebuild b/dev-python/sqlitecachec/sqlitecachec-1.1.4-r1.ebuild
new file mode 100644
index 00000000000..6cb096a0d2e
--- /dev/null
+++ b/dev-python/sqlitecachec/sqlitecachec-1.1.4-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+MY_P="yum-metadata-parser-${PV}"
+
+DESCRIPTION="sqlite cacher for python applications"
+HOMEPAGE="http://yum.baseurl.org/"
+SRC_URI="http://yum.baseurl.org/download/yum-metadata-parser/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
+
+# glib and libxml2 are used via an extension module written in C.
+# No need to add PYTHON_USEDEP here.
+RDEPEND="dev-db/sqlite:3
+ dev-libs/glib:2
+ dev-libs/libxml2"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/sqlobject/Manifest b/dev-python/sqlobject/Manifest
new file mode 100644
index 00000000000..b58c36de2a3
--- /dev/null
+++ b/dev-python/sqlobject/Manifest
@@ -0,0 +1 @@
+DIST SQLObject-2.1.1.tar.gz 888532 SHA256 35675d9c6c5a373b68c1e597a51c2723e1a8471911f89b7ec9ab3cc380064874 SHA512 9f51452afb728b3eaa0b113aca7086af6cd858d3b6e84c557af56a086d9a04c7e061f1b45179d0c74ef6a175e593376e1ea3ce561a337d71df6eea0f7bd09fee WHIRLPOOL 0526d02b1815281724b1c5ad1fadf16a5dc3e765bb6c9e6b59db83e95a1f3bfa20134acad459e19583694739a38b3dece3bdc328ad7f57f09c95094759143a50
diff --git a/dev-python/sqlobject/metadata.xml b/dev-python/sqlobject/metadata.xml
new file mode 100644
index 00000000000..69b386336af
--- /dev/null
+++ b/dev-python/sqlobject/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>SQLObject is an object-relational mapper. It allows you to translate RDBMS table rows into Python objects and manipulate
+ those objects to transparently manipulate the database.</longdescription>
+ <longdescription lang="ja">SQLObject はオブジェクト・リレーショナル・マッパです。これはデータベースの操作を明瞭にするため、RDBMS のテーブル列を Python
+ 言語のオブジェクトとして操作できるようにします。</longdescription>
+ <upstream>
+ <remote-id type="pypi">SQLObject</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sqlobject/sqlobject-2.1.1-r1.ebuild b/dev-python/sqlobject/sqlobject-2.1.1-r1.ebuild
new file mode 100644
index 00000000000..6ec9266805a
--- /dev/null
+++ b/dev-python/sqlobject/sqlobject-2.1.1-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1
+
+MY_PN="SQLObject"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Object-Relational Manager, aka database wrapper"
+HOMEPAGE="http://sqlobject.org/ http://pypi.python.org/pypi/SQLObject"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc mysql postgres sqlite"
+
+RDEPEND="
+ >=dev-python/formencode-1.1.1[${PYTHON_USEDEP}]
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ postgres? ( dev-python/psycopg[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ sed -e '/..docs/d' -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ if use doc; then
+ HTML_DOCS=( docs/html/. )
+ DOCS=( docs/europython/. )
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/squaremap/Manifest b/dev-python/squaremap/Manifest
new file mode 100644
index 00000000000..4127c6a81fe
--- /dev/null
+++ b/dev-python/squaremap/Manifest
@@ -0,0 +1,2 @@
+DIST SquareMap-1.0.3.tar.gz 7433 SHA256 d56f4d6db4b49a03d66dcdc844507684eacb9f9a5a4b7874753808a158bd82a8 SHA512 a106bb61d5e8b54691b6ea80fc7d3e202346f6ea0a0323a8f3bae3accd9b6fe4f280e2dc4c9ce5b5333c0c0c32f295f3021ed240fa540d4669dd83e31a7dbf48 WHIRLPOOL 266f4eec61c9b83b2c262d3dcdcde0bfb9c4c2805c326c5ab6c21cefee61968f98d16595d3fe64dcaeb208af5bdba1fc2d246fce4ebb6deb46f7c2f9d8c9bc9d
+DIST SquareMap-1.0.4.tar.gz 7439 SHA256 feab6cb3b222993df68440e34825d8a16de2c74fdb290ae3974c86b1d5f3eef8 SHA512 d01e61697571360b58e762787237bb8533b3de238f26323380a8b0b90d72d2f00e2a43e7f6742fbbb3483573493b0d83568e0651cbf9bdd463b911d09bf27e76 WHIRLPOOL 482682b6aff35cbe3c3605266f9b08ba5f4e6fdf8bf41a31843d04a5b280976e8144e61f1e23ce6aa376af9b14658f687e7b89bec77414aed3817a9a53b2a0f5
diff --git a/dev-python/squaremap/metadata.xml b/dev-python/squaremap/metadata.xml
new file mode 100644
index 00000000000..7ca81b3ec34
--- /dev/null
+++ b/dev-python/squaremap/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>swegener@gentoo.org</email>
+ <name>Sven Wegener</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">SquareMap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/squaremap/squaremap-1.0.3.ebuild b/dev-python/squaremap/squaremap-1.0.3.ebuild
new file mode 100644
index 00000000000..fe5906092f2
--- /dev/null
+++ b/dev-python/squaremap/squaremap-1.0.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_PN="SquareMap"
+MY_P="${MY_PN}-${PV/_beta/b}"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Hierarchic data-visualisation control for wxPython"
+HOMEPAGE="http://pypi.python.org/pypi/SquareMap"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+ <dev-python/wxpython-3"
+
+S="${WORKDIR}"/${MY_P}
diff --git a/dev-python/squaremap/squaremap-1.0.4.ebuild b/dev-python/squaremap/squaremap-1.0.4.ebuild
new file mode 100644
index 00000000000..883695b1147
--- /dev/null
+++ b/dev-python/squaremap/squaremap-1.0.4.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_PN="SquareMap"
+MY_P="${MY_PN}-${PV/_beta/b}"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Hierarchic data-visualisation control for wxPython"
+HOMEPAGE="http://pypi.python.org/pypi/SquareMap"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+ dev-python/wxpython"
+
+S="${WORKDIR}"/${MY_P}
diff --git a/dev-python/ssh/Manifest b/dev-python/ssh/Manifest
new file mode 100644
index 00000000000..f0a6b456b2b
--- /dev/null
+++ b/dev-python/ssh/Manifest
@@ -0,0 +1 @@
+DIST ssh-1.8.0.tar.gz 795832 SHA256 b0aca1faf8a12e6aae24ab9cfae90d061a8741b680c8afad21da6ff8b8ae28d7 SHA512 bac32c2cf078c2a06b4b530c905e4b8e0c09b457d9d9feaee163d3a96d71b43c74d159a25ad65bcb4beba692b05b7587e60b4a13be7d049f8493977f9a032da7 WHIRLPOOL 78dd28b1c5a26f4beeca07cb85761dbf1d9b4c17ec656e882163b383b30e6307a2dad34ceafb2ed0500afff0593c908e7da4180955f1fca98d6aa68be710b28d
diff --git a/dev-python/ssh/metadata.xml b/dev-python/ssh/metadata.xml
new file mode 100644
index 00000000000..a1fdb467c66
--- /dev/null
+++ b/dev-python/ssh/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">ssh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ssh/ssh-1.8.0-r1.ebuild b/dev-python/ssh/ssh-1.8.0-r1.ebuild
new file mode 100644
index 00000000000..d8bf53b3666
--- /dev/null
+++ b/dev-python/ssh/ssh-1.8.0-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="http://pypi.python.org/pypi/ssh"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc examples"
+
+RDEPEND=">=dev-python/pycrypto-2.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test.py --verbose || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc; then
+ dohtml docs/*
+ fi
+
+ if use examples; then
+ docompress -x usr/share/doc/${PF}/demos/
+ insinto /usr/share/doc/${PF}
+ doins -r demos
+ fi
+}
diff --git a/dev-python/ssl-fetch/Manifest b/dev-python/ssl-fetch/Manifest
new file mode 100644
index 00000000000..cc4a9ac591a
--- /dev/null
+++ b/dev-python/ssl-fetch/Manifest
@@ -0,0 +1,3 @@
+DIST ssl-fetch-0.2.1.tar.gz 10703 SHA256 2905a8301477cf309484e3beef892d68b33910db71be45c08720f70791690b9d SHA512 ca4c4d29463d5761fbcea151f1229152bd0092418254ce614154b012af9a23c0c52bb733f64815499b5ae0ae9325a808ae2157e7ff707345e92352b672c98966 WHIRLPOOL 4bea8540fce0a2bcc0f8d55b4d87e7c544321b14967af95ded400f4ae0af3fd14c8390ed808352aa89c6ba7d267536d2ef8956dcba4b871226e2be9d4e71a2f8
+DIST ssl-fetch-0.2.tar.gz 10945 SHA256 027f63c5797e0fd84d4ed2195e42141316cceeed0b91058dd700b55482e40a78 SHA512 30aa040503eb05d8b0a7775ce843215ebbc198483fba2133e78a5da57f8b998c65018a1241f4f7bb3fbf66045c45bf050b59adb94a68c694aa3aeb6c0b5f726f WHIRLPOOL b4442b55d98741906eb1f3c0fda80cfbb0be42d2d8491c6bf1b86c0833a021ccfbae2887d2f833e9a297556d25c49cb4d617743a338e02299061f6e281d3563c
+DIST ssl-fetch-0.3.tar.gz 11283 SHA256 cee2f05899e729bba8942b26d17b0a97ddfb0a5d0beea4123bf7f2635db088e8 SHA512 82fddbccd3a5da73e81803ce252171d42428d88d301a772127071130ce4336742e46093359f0a996c679cd12ced02d09035af283d4d2f505c67a551283328756 WHIRLPOOL 49938e39c386a83e60caa0260643c31d2c180e93f3be59757dd17c1c9bc05338d5c580e997a96f698d4e1f4cf317bba9f6738044696c6949fcc1a5351e19f6c2
diff --git a/dev-python/ssl-fetch/metadata.xml b/dev-python/ssl-fetch/metadata.xml
new file mode 100644
index 00000000000..8d318a8ca73
--- /dev/null
+++ b/dev-python/ssl-fetch/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <maintainer>
+ <email>dolsen@gentoo.org</email>
+ <name>Brian Dolbec</name>
+ </maintainer>
+ <maintainer>
+ <email>dastergon@gentoo.org</email>
+ <name>Pavlos Ratis</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">dol-sen/ssl-fetch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ssl-fetch/ssl-fetch-0.2.1.ebuild b/dev-python/ssl-fetch/ssl-fetch-0.2.1.ebuild
new file mode 100644
index 00000000000..d60ff7ffdaa
--- /dev/null
+++ b/dev-python/ssl-fetch/ssl-fetch-0.2.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A small convenience library for fetching files securely"
+HOMEPAGE="https://github.com/dol-sen/ssl-fetch"
+SRC_URI="https://github.com/dol-sen/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x64-macos ~x86-macos"
+
+DEPEND=""
+
+RDEPEND="${DEPEND}
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ python_targets_python2_7? (
+ dev-python/ndg-httpsclient[python_targets_python2_7]
+ dev-python/pyasn1[python_targets_python2_7]
+ >=dev-python/pyopenssl-0.13[python_targets_python2_7]
+ )
+ "
+
+pkg_postinst() {
+ einfo
+ einfo "This is beta software."
+ einfo "The APIs it installs should be considered unstable"
+ einfo "and are subject to change in these early versions."
+ einfo
+ einfo "Please file any enhancement requests, or bugs"
+ einfo "at https://github.com/dol-sen/ssl-fetch/issues"
+ einfo "I am also on IRC @ #gentoo-portage, #gentoo-keys,... of the freenode network"
+ einfo
+}
diff --git a/dev-python/ssl-fetch/ssl-fetch-0.2.ebuild b/dev-python/ssl-fetch/ssl-fetch-0.2.ebuild
new file mode 100644
index 00000000000..7daa072c483
--- /dev/null
+++ b/dev-python/ssl-fetch/ssl-fetch-0.2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A small convenience library for fetching files securely"
+HOMEPAGE="https://github.com/dol-sen/ssl-fetch"
+SRC_URI="http://dev.gentoo.org/~dolsen/releases/ssl-fetch/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+
+DEPEND=""
+
+RDEPEND="${DEPEND}
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ python_targets_python2_7? (
+ dev-python/ndg-httpsclient[python_targets_python2_7]
+ dev-python/pyasn1[python_targets_python2_7]
+ >=dev-python/pyopenssl-0.13[python_targets_python2_7]
+ )
+ "
+
+pkg_postinst() {
+ einfo
+ einfo "This is beta software."
+ einfo "The APIs it installs should be considered unstable"
+ einfo "and are subject to change in these early versions."
+ einfo
+ einfo "Please file any enhancement requests, or bugs"
+ einfo "at https://github.com/dol-sen/ssl-fetch/issues"
+ einfo "I am also on IRC @ #gentoo-portage, #gentoo-keys,... of the freenode network"
+ einfo
+}
diff --git a/dev-python/ssl-fetch/ssl-fetch-0.3.ebuild b/dev-python/ssl-fetch/ssl-fetch-0.3.ebuild
new file mode 100644
index 00000000000..955698a7266
--- /dev/null
+++ b/dev-python/ssl-fetch/ssl-fetch-0.3.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A small convenience library for fetching files securely"
+HOMEPAGE="https://github.com/dol-sen/ssl-fetch"
+SRC_URI="http://dev.gentoo.org/~dolsen/releases/ssl-fetch/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+
+DEPEND=""
+
+RDEPEND="${DEPEND}
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ python_targets_python2_7? (
+ dev-python/ndg-httpsclient[python_targets_python2_7]
+ dev-python/pyasn1[python_targets_python2_7]
+ >=dev-python/pyopenssl-0.13[python_targets_python2_7]
+ )
+ "
+
+pkg_postinst() {
+ einfo
+ einfo "This is beta software."
+ einfo "The APIs it installs should be considered unstable"
+ einfo "and are subject to change in these early versions."
+ einfo
+ einfo "Please file any enhancement requests, or bugs"
+ einfo "at https://github.com/dol-sen/ssl-fetch/issues"
+ einfo "I am also on IRC @ #gentoo-portage, #gentoo-keys,... of the Freenode network"
+ einfo
+}
diff --git a/dev-python/ssl-fetch/ssl-fetch-9999.ebuild b/dev-python/ssl-fetch/ssl-fetch-9999.ebuild
new file mode 100644
index 00000000000..7fcd986339c
--- /dev/null
+++ b/dev-python/ssl-fetch/ssl-fetch-9999.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4} pypy)
+
+EGIT_BRANCH="master"
+
+inherit distutils-r1 git-2
+
+EGIT_REPO_URI="git://github.com/dol-sen/ssl-fetch.git"
+
+DESCRIPTION="A small convenience library for fetching files securely"
+HOMEPAGE="https://github.com/dol-sen/ssl-fetch"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS=""
+
+DEPEND=""
+
+RDEPEND="${DEPEND}
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ python_targets_python2_7? (
+ dev-python/ndg-httpsclient[python_targets_python2_7]
+ dev-python/pyasn1[python_targets_python2_7]
+ >=dev-python/pyopenssl-0.13[python_targets_python2_7]
+ )
+ "
+
+pkg_postinst() {
+ einfo
+ einfo "This is experimental software."
+ einfo "The APIs it installs should be considered unstable"
+ einfo "and are subject to change."
+ einfo
+ einfo "Please file any enhancement requests, or bugs"
+ einfo "at https://github.com/dol-sen/ssl-fetch/issues"
+ einfo "I am also on IRC @ #gentoo-portage, #gentoo-keys,... of the freenode network"
+ einfo
+}
diff --git a/dev-python/starcluster/Manifest b/dev-python/starcluster/Manifest
new file mode 100644
index 00000000000..d68905d648e
--- /dev/null
+++ b/dev-python/starcluster/Manifest
@@ -0,0 +1 @@
+DIST StarCluster-0.93.3.tar.gz 2334885 SHA256 fcda894be33ba309b1c7a94d6c28f1674c3f05ec756133138a39db2138d080d0 SHA512 f81cfc528a00f45f6e720645f44666947f1c51dd3453ac5d78b201d6c3a3cd9f6d97cb7a2802eaf04603d9a19810045ca6071722c9af884ba7e407ffc99078ea WHIRLPOOL b6bfde98f3b660211c5e08965cc6ee31fc9038ec4039ef5aa12ab9c5d474f60f66c1745fb93cce7e05cb361cff6091f60714168ffca81e4033f2fecc5d9d448f
diff --git a/dev-python/starcluster/files/starcluster-0.93.3-requires.patch b/dev-python/starcluster/files/starcluster-0.93.3-requires.patch
new file mode 100644
index 00000000000..fb3f284ecb7
--- /dev/null
+++ b/dev-python/starcluster/files/starcluster-0.93.3-requires.patch
@@ -0,0 +1,19 @@
+Patch by JT Riley, Bug #437912
+diff --git a/setup.py b/setup.py
+index 241b7ce..3c52c68 100644
+--- a/setup.py
++++ b/setup.py
+@@ -12,9 +12,9 @@ try:
+ console_scripts = ['starcluster = starcluster.cli:main']
+ extra = dict(test_suite="starcluster.tests",
+ tests_require="nose",
+- install_requires=["ssh==1.7.13", "boto==2.3.0",
+- "workerpool==0.9.2", "Jinja2==2.6",
+- "decorator==3.3.1", "pyasn1==0.0.13b"],
++ install_requires=["ssh>=1.7.13", "boto>=2.3.0",
++ "workerpool>=0.9.2", "Jinja2>=2.6",
++ "decorator>=3.3.1", "pyasn1>=0.0.13b"],
+ include_package_data=True,
+ entry_points=dict(console_scripts=console_scripts),
+ zip_safe=False)
+
diff --git a/dev-python/starcluster/metadata.xml b/dev-python/starcluster/metadata.xml
new file mode 100644
index 00000000000..d4c7dbd1c8e
--- /dev/null
+++ b/dev-python/starcluster/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="epydoc">Enable build of apidocs in html using epydoc</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">StarCluster</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/starcluster/starcluster-0.93.3-r2.ebuild b/dev-python/starcluster/starcluster-0.93.3-r2.ebuild
new file mode 100644
index 00000000000..375f63a262d
--- /dev/null
+++ b/dev-python/starcluster/starcluster-0.93.3-r2.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 bash-completion-r1
+MY_PN=StarCluster
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Utility for creating / managing general purpose computing clusters"
+HOMEPAGE="http://web.mit.edu/star/cluster"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-3"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="doc epydoc"
+
+RDEPEND=">=dev-python/ssh-1.7.13[${PYTHON_USEDEP}]
+ >=dev-python/boto-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.6-r1[${PYTHON_USEDEP}]
+ >=dev-python/decorator-3.1.1[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.0.13_beta[${PYTHON_USEDEP}]
+ >=dev-python/workerpool-0.9.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/epydoc[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${P}-requires.patch )
+
+python_compile_all() {
+ use doc && emake -C docs/sphinx html
+ mkdocs() {
+ local exit_status=0
+ local msg="build with epydoc failed"
+ pushd docs/epydoc/
+ PATH=$PATH:./ PYTHONPATH="${BUILD_DIR}/lib" ./build.sh || exit_status=1
+ [[ $exit_status != 0 ]] && eerror "$msg"
+ popd sets
+ return $exit_status
+ }
+ use epydoc && mkdocs
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ newbashcomp "${S}"/completion/${PN}-completion.sh ${PN}
+ use doc && dohtml -r docs/sphinx/_build/html/
+ if use epydoc; then
+ docompress -x usr/share/doc/${PF}/apidocs/api-objects.txt
+ insinto usr/share/doc/${PF}/
+ doins -r "${S}"/docs/apidocs/
+ fi
+}
+
+python_test() {
+ nosetests || die -v ${PN}/tests || die
+}
diff --git a/dev-python/statsmodels/Manifest b/dev-python/statsmodels/Manifest
new file mode 100644
index 00000000000..2e761505dd7
--- /dev/null
+++ b/dev-python/statsmodels/Manifest
@@ -0,0 +1,2 @@
+DIST statsmodels-0.5.0.tar.gz 5519668 SHA256 65398518bdd414c712362738e61d34ee5ec07b4c084bba17c65af5f20ae109d0 SHA512 24526200f212c1ad4492b84aad65967254d89aecee4c9f5d76ed499aa9b8c7fe619ca7301810ff5e7aec407f2f01b139c9f9c152a4597fe21736d04b24f6dd0a WHIRLPOOL c2719d25873ea949da30c63895c4536c559c0f45923eb885a3f7f664f3b82783d9945b346032513c4e0f1df9b82f9657956885e05d94505207a4c9ddb10a489e
+DIST statsmodels-0.6.1.tar.gz 6980841 SHA256 be4e44374aec9e848b73e5a230dee190ac0c4519e1d40f69a5813190b13ec676 SHA512 9047b8cf4b9d19bd697867cecef1c4608fd86f3d16e67e44d8c152e1e25918f5aff6b4843c58395e71614be401551e3e48d4dcf158480cbdb45d9735b1c5ea77 WHIRLPOOL b14c7f5b734b26190f23edbf4020ace135571d4c0fa45e3e174647879d4c6547273abbab6c8911c346bf85b433a1908bd230fa52a1e09ede0e74c5e5167a8ecf
diff --git a/dev-python/statsmodels/metadata.xml b/dev-python/statsmodels/metadata.xml
new file mode 100644
index 00000000000..81cea1512e6
--- /dev/null
+++ b/dev-python/statsmodels/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>sci-mathematics</herd>
+ <longdescription lang="en">
+ statsmodels is a Python module that allows users to explore data,
+ estimate statistical models, and perform statistical tests. An
+ extensive list of descriptive statistics, statistical tests,
+ plotting functions, and result statistics are available for
+ different types of data and each estimator. Researchers across
+ fields may find that statsmodels fully meets their needs for
+ statistical computing and data analysis in Python.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">statsmodels</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/statsmodels/statsmodels-0.5.0.ebuild b/dev-python/statsmodels/statsmodels-0.5.0.ebuild
new file mode 100644
index 00000000000..7fca799149b
--- /dev/null
+++ b/dev-python/statsmodels/statsmodels-0.5.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Statistical computations and models for use with SciPy"
+HOMEPAGE="http://statsmodels.sourceforge.net/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/patsy[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ examples? ( dev-python/matplotlib[${PYTHON_USEDEP}] )"
+DEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/patsy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/matplotlib
+ dev-python/sphinx
+ dev-python/ipython )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+pkg_setup() {
+ export MPLCONFIGDIR="${T}" HOME="${T}"
+}
+
+python_compile_all() {
+ if use doc; then
+ VARTEXFONTS="${T}"/fonts ${EPYTHON} setup.py build_sphinx || die
+ fi
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ VIRTUALX_COMMAND="nosetests"
+ virtualmake --verbosity=3
+}
+
+python_install() {
+ distutils-r1_python_install
+ rm -r "${D}/$(python_get_sitedir)/statsmodels/examples" || die
+}
+
+python_install_all() {
+ find "${S}" -name \*LICENSE.txt -delete
+ use doc && HTML_DOCS=( build/sphinx/html/* )
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/statsmodels/statsmodels-0.6.1.ebuild b/dev-python/statsmodels/statsmodels-0.6.1.ebuild
new file mode 100644
index 00000000000..5224bb0efcc
--- /dev/null
+++ b/dev-python/statsmodels/statsmodels-0.6.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Statistical computations and models for use with SciPy"
+HOMEPAGE="http://statsmodels.sourceforge.net/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+CDEPEND="
+ >=dev-python/numpy-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/pandas-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/patsy-0.3.0[${PYTHON_USEDEP}]
+ >=sci-libs/scipy-0.9.0[${PYTHON_USEDEP}]
+ "
+RDEPEND="${CDEPEND}
+ examples? ( dev-python/matplotlib[${PYTHON_USEDEP}] )"
+DEPEND="${CDEPEND}
+ >=dev-python/cython-0.20.1[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/matplotlib-1.1[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+pkg_setup() {
+ export MPLCONFIGDIR="${T}" HOME="${T}"
+}
+
+python_compile_all() {
+ if use doc; then
+ VARTEXFONTS="${T}"/fonts ${EPYTHON} setup.py build_sphinx || die
+ fi
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ VIRTUALX_COMMAND="nosetests"
+ virtualmake --verbosity=3
+}
+
+python_install() {
+ distutils-r1_python_install
+}
+
+python_install_all() {
+ find "${S}" -name \*LICENSE.txt -delete
+ use doc && HTML_DOCS=( build/sphinx/html/* )
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "plotting functionality" ">=dev-python/matplotlib-1.1"
+}
diff --git a/dev-python/steadymark/Manifest b/dev-python/steadymark/Manifest
new file mode 100644
index 00000000000..7d81e3b6aca
--- /dev/null
+++ b/dev-python/steadymark/Manifest
@@ -0,0 +1 @@
+DIST steadymark-0.5.3.tar.gz 8180 SHA256 1e38274f27516fe337279b41049603e18aa3383980dc2665b836e3e0461b7cae SHA512 c30971675216f2afcb9f59fba5239fd6f37bc0d570b1ab34820f2fb83388330886a53ff3a31bf96e07b455ccfa8df3fda5bcd3d2212360419ec2b7290d1ddbaa WHIRLPOOL 0b48afe16589aeecec5a4622a6e89f47560d4c989b326edf8803549fc86f42cd320e7b01d6682633999ca429ac5b657e22218f316a3fc52a9f567fd0285f70b9
diff --git a/dev-python/steadymark/metadata.xml b/dev-python/steadymark/metadata.xml
new file mode 100644
index 00000000000..8d39b56b2cd
--- /dev/null
+++ b/dev-python/steadymark/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">steadymark</remote-id>
+ <remote-id type="github">gabrielfalcao/steadymark</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/steadymark/steadymark-0.5.3.ebuild b/dev-python/steadymark/steadymark-0.5.3.ebuild
new file mode 100644
index 00000000000..34041e1363d
--- /dev/null
+++ b/dev-python/steadymark/steadymark-0.5.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Markdown-based test runner for python"
+HOMEPAGE="http://github.com/gabrielfalcao/steadymark"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/misaka[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/stevedore/Manifest b/dev-python/stevedore/Manifest
new file mode 100644
index 00000000000..a96cb4c5399
--- /dev/null
+++ b/dev-python/stevedore/Manifest
@@ -0,0 +1,4 @@
+DIST stevedore-1.1.0.tar.gz 352294 SHA256 f98381d12a6bfff718328d14d0d26cae6c83e39feb787e7b38acfe1089c3f1d3 SHA512 70f8629fdd455421871753810c14462ba66f81d1478ea45696c400a68f034a77c2a3efaac3c96bebe7293c42f73715681161b7fca8897d545a7ae06d64ad0c44 WHIRLPOOL 1f3e5380792cea8b3ef67fc4a4f8be40fd3cb2f048caa71c0c774990dc45d9981edec599312301b3f7a54955b941a421574e3c23c794fc3f117251e845ea214d
+DIST stevedore-1.3.0.tar.gz 354869 SHA256 beab2b7f91966d259796392c39ed6f260b32851861561dd9f3b9be2fd0c426a5 SHA512 68583c8e7c9c667c4456754a973d344f79ca141d380e6e568d82f8b36fc77e8debc4d77a006eb7b6e580edf017307f748842f1cae8a82ef101114eebdab82c26 WHIRLPOOL 16eb37416b4dccf8606aca2d407eda9060549e014f41db0f54982707f9a9d51cb7bdfcb048b8bac494f707dce042e22a7ff87c210aff8e39d4940717a5f5a6ca
+DIST stevedore-1.4.0.tar.gz 353953 SHA256 4a8d80b0a232746c09e0173bd61d60a18e9864e3dc87e3ebefa3ba3d8a00232f SHA512 a947d13ef15b2a5210da7115de7b49b4297f811a8237f0d205c2e2a676747255a852300ca99dd5279ae0de49f706b380fc8a09921c9a1e9f0bf6ad7ea34023e3 WHIRLPOOL 7c4ab9ce986cec938772ed63094a8f2d6a5072be948845dd324c7c68cae4082781babd36d87d832bae37d30960efa76309350cfafa725555e02ca6354dd7c2aa
+DIST stevedore-1.6.0.tar.gz 500868 SHA256 dab2aa31ec742f651e6a2fe0429560aebbbe0fb7fc462fa0ff565c8f5ff2ec25 SHA512 bdcf3ab8f539ad2df65cb6f1d0eecf77e98a7b579ea50ccb419979ce419632963c199e3e473a36072ba303d3fbdbfea3f0f56a27831c35c65a1874ebc8b6b0b4 WHIRLPOOL 65f6a08f6fa19214725c972bdbc39f605b4a852376ad19c5c29c4bb1a361dea69677e4f7a5061f7ce6201b8da06bd12b8693256cc7b562e4f92b866fcaffd013
diff --git a/dev-python/stevedore/files/1.1.0-requirements.patch b/dev-python/stevedore/files/1.1.0-requirements.patch
new file mode 100644
index 00000000000..cc4649752e3
--- /dev/null
+++ b/dev-python/stevedore/files/1.1.0-requirements.patch
@@ -0,0 +1,13 @@
+pbr is used only at build time
+argparse is in the standard library
+six is used only in examples
+https://bugs.gentoo.org/show_bug.cgi?id=546776
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -2,6 +2,3 @@
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+
+-pbr>=0.6,!=0.7,<1.0
+-argparse
+-six>=1.7.0
diff --git a/dev-python/stevedore/files/1.4.0-requirements.patch b/dev-python/stevedore/files/1.4.0-requirements.patch
new file mode 100644
index 00000000000..e06ce7bd02d
--- /dev/null
+++ b/dev-python/stevedore/files/1.4.0-requirements.patch
@@ -0,0 +1,13 @@
+pbr is used only at build time
+argparse is in the standard library
+six is used only in examples
+https://bugs.gentoo.org/show_bug.cgi?id=546776
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -2,6 +2,3 @@
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+
+-pbr>=0.6,!=0.7,<1.0
+-argparse
+-six>=1.9.0
diff --git a/dev-python/stevedore/metadata.xml b/dev-python/stevedore/metadata.xml
new file mode 100644
index 00000000000..a93084d00c4
--- /dev/null
+++ b/dev-python/stevedore/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">stevedore</remote-id>
+ <remote-id type="github">openstack/stevedore</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/stevedore/stevedore-1.1.0-r1.ebuild b/dev-python/stevedore/stevedore-1.1.0-r1.ebuild
new file mode 100644
index 00000000000..e448740a7d5
--- /dev/null
+++ b/dev-python/stevedore/stevedore-1.1.0-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Manage dynamic plugins for Python applications"
+HOMEPAGE="https://github.com/dreamhost/stevedore https://pypi.python.org/pypi/stevedore"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/pillow-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}/1.1.0-requirements.patch" )
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests stevedore || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/build/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/stevedore/stevedore-1.3.0.ebuild b/dev-python/stevedore/stevedore-1.3.0.ebuild
new file mode 100644
index 00000000000..6b454f11aaf
--- /dev/null
+++ b/dev-python/stevedore/stevedore-1.3.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Manage dynamic plugins for Python applications"
+HOMEPAGE="https://github.com/openstack/stevedore https://pypi.python.org/pypi/stevedore"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/pillow-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=">=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_compile_all() {
+ use doc && ${EPYTHON} setup.py build_sphinx
+}
+
+python_test() {
+ nosetests stevedore || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/stevedore/stevedore-1.4.0-r1.ebuild b/dev-python/stevedore/stevedore-1.4.0-r1.ebuild
new file mode 100644
index 00000000000..b445f7daf24
--- /dev/null
+++ b/dev-python/stevedore/stevedore-1.4.0-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Manage dynamic plugins for Python applications"
+HOMEPAGE="https://github.com/openstack/stevedore https://pypi.python.org/pypi/stevedore"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/pillow-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}/1.4.0-requirements.patch" )
+
+python_compile_all() {
+ use doc && ${EPYTHON} setup.py build_sphinx
+}
+
+python_test() {
+ nosetests stevedore || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/stevedore/stevedore-1.6.0-r1.ebuild b/dev-python/stevedore/stevedore-1.6.0-r1.ebuild
new file mode 100644
index 00000000000..58656c79c23
--- /dev/null
+++ b/dev-python/stevedore/stevedore-1.6.0-r1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Manage dynamic plugins for Python applications"
+HOMEPAGE="https://github.com/openstack/stevedore https://pypi.python.org/pypi/stevedore"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/pillow-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=">=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Delete spurious data in requirements.txt
+ sed -e '/^pbr/d' -e '/^argparse/d' \
+ -i requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ esetup.py testr
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/stevedore/stevedore-1.6.0.ebuild b/dev-python/stevedore/stevedore-1.6.0.ebuild
new file mode 100644
index 00000000000..00453d33191
--- /dev/null
+++ b/dev-python/stevedore/stevedore-1.6.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Manage dynamic plugins for Python applications"
+HOMEPAGE="https://github.com/openstack/stevedore https://pypi.python.org/pypi/stevedore"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/pillow-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=">=dev-python/six-1.9.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Delete spurious data in requirements.txt
+ sed -e '/pbr<2.0,/d' -e '/argparse/d' \
+ -i requirements.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ esetup.py testr
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/stomper/Manifest b/dev-python/stomper/Manifest
new file mode 100644
index 00000000000..edb32d6fb2e
--- /dev/null
+++ b/dev-python/stomper/Manifest
@@ -0,0 +1 @@
+DIST stomper-0.3.0.tar.gz 21051 SHA256 ceaacc016c0e8e98c3d3155f22069d18d403637d57492d9cf678813e27c9ecb0 SHA512 ba6feef44bb33a9b63f789043b131a314b903fda847dbb3ad909614a2a6b2b39f2d98dcd5bf19b070f4de9cec9dbce9cd79eb135911f16c1e8dc6d5f52158516 WHIRLPOOL 002bc793f6451ebcea03a1345930ba72df4e34aab288031371ba708daf06e58cb556c333f8c4fc640d129c2754171106679c28f983ceada4c5159208b6c895ff
diff --git a/dev-python/stomper/metadata.xml b/dev-python/stomper/metadata.xml
new file mode 100644
index 00000000000..98087bc50e6
--- /dev/null
+++ b/dev-python/stomper/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">stomper</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/stomper/stomper-0.3.0.ebuild b/dev-python/stomper/stomper-0.3.0.ebuild
new file mode 100644
index 00000000000..e123d4fb604
--- /dev/null
+++ b/dev-python/stomper/stomper-0.3.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# Supports only py2 pypy
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Transport neutral client implementation of the STOMP protocol"
+HOMEPAGE="http://pypi.python.org/pypi/stomper"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~ppc ~ppc64 ~sparc x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+python_prepare_all() {
+ mv lib/${PN}/examples . || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/storm/Manifest b/dev-python/storm/Manifest
new file mode 100644
index 00000000000..3361beec202
--- /dev/null
+++ b/dev-python/storm/Manifest
@@ -0,0 +1 @@
+DIST storm-0.20.tar.bz2 213069 SHA256 1fe016c9ec40520eafc3cf359f1ec2b7fa86be91e45c9279bfb0ea3b06390a82 SHA512 7a22c6a6fa45f7bbeeb5c6f934d6f889a6d90d78a6d3e3b9c6a6825485ec35301f573d08c619693a2587e795582db633254631c0be7cd8f1fee6b03a88378a8d WHIRLPOOL e18fb39e127eedd0f7691fc9b3c043b79da02beaab8088dc1f461cfdd23c91034ae6dbf3450a778ea2e06b93239463d5813015f5b6b6901f775da38b4188d2b1
diff --git a/dev-python/storm/metadata.xml b/dev-python/storm/metadata.xml
new file mode 100644
index 00000000000..eb2ab1aa0af
--- /dev/null
+++ b/dev-python/storm/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="launchpad">storm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/storm/storm-0.20-r1.ebuild b/dev-python/storm/storm-0.20-r1.ebuild
new file mode 100644
index 00000000000..dc45516f891
--- /dev/null
+++ b/dev-python/storm/storm-0.20-r1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1
+
+DESCRIPTION="An object-relational mapper for Python developed at Canonical"
+HOMEPAGE="https://storm.canonical.com/ http://pypi.python.org/pypi/storm"
+SRC_URI="http://launchpad.net/storm/trunk/${PV}/+download/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="mysql postgres sqlite test"
+
+RDEPEND="mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ postgres? ( =dev-python/psycopg-2*[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/fixtures[${PYTHON_USEDEP}] )"
+
+CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+DOCS="tests/tutorial.txt"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+python_prepare_all() {
+ sed -e "s:find_packages():find_packages(exclude=['tests','tests.*']):" \
+ -i setup.py || die
+
+ # delete rogue errors in setting exceptions
+ sed -e '/module_exception is not None:/d' \
+ -e '/module_exception.__bases__ += (exception,)/d' \
+ -i storm/exceptions.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ if use mysql; then
+ elog "To run the MySQL-tests, you need:"
+ elog " - a running mysql-server"
+ elog " - an already existing database 'db'"
+ elog " - a user 'user' with full permissions on that database"
+ elog " - and an environment variable STORM_MYSQL_URI=\"mysql://user:password@host:1234/db\""
+ fi
+ if use postgres; then
+ elog "To run the PostgreSQL-tests, you need:"
+ elog " - a running postgresql-server"
+ elog " - an already existing database 'db'"
+ elog " - a user 'user' with full permissions on that database"
+ elog " - and an environment variable STORM_POSTGRES_URI=\"postgres://user:password@host:1234/db\""
+ fi
+
+ # Some tests require a server instance which is absent
+ "${PYTHON}" test --verbose || die
+}
diff --git a/dev-python/stripogram/Manifest b/dev-python/stripogram/Manifest
new file mode 100644
index 00000000000..ad72f42e2cd
--- /dev/null
+++ b/dev-python/stripogram/Manifest
@@ -0,0 +1 @@
+DIST stripogram-1.5.tar.gz 12195 SHA256 8666a1884b9c356cb69bd307d8e728b3b5a7dbc777c0daa3df99f7491eb2007f SHA512 7973f22492bdc564b8aa6cefd68c3c52cb77a079d97c867cec9e2e69dd495a2f9cd555ef3ea48c4b90897fd21fe0509fbc22a59f4de3f56bfddcb15e803bbf68 WHIRLPOOL fea0eeb6ac16ef4fade469be8b97db743966e869925353181b8422dc04de3ce47314248590404e0f87d1dfe35a04ea46365a639edbcffbe8c61cdc57fb4bd678
diff --git a/dev-python/stripogram/metadata.xml b/dev-python/stripogram/metadata.xml
new file mode 100644
index 00000000000..d3c511b1b70
--- /dev/null
+++ b/dev-python/stripogram/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">stripogram</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/stripogram/stripogram-1.5-r1.ebuild b/dev-python/stripogram/stripogram-1.5-r1.ebuild
new file mode 100644
index 00000000000..c04c87e524b
--- /dev/null
+++ b/dev-python/stripogram/stripogram-1.5-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Strip-o-Gram HTML Conversion Library"
+HOMEPAGE="http://pypi.python.org/pypi/stripogram"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/stsci-distutils/Manifest b/dev-python/stsci-distutils/Manifest
new file mode 100644
index 00000000000..f4e44b092a6
--- /dev/null
+++ b/dev-python/stsci-distutils/Manifest
@@ -0,0 +1 @@
+DIST stsci.distutils-0.3.7.tar.gz 48831 SHA256 e0f115126ec1e27b345e338ce9cbca0fe87cd30e409e052acccfea05a9e9783c SHA512 8ef81afe43dc080d28ce7e640c1e03cd0e0a857151ad307af742ef434e3a1abb489213a63a95618bac39a743624510a0d59a2817b6cadb929a2bcf64406ac85e WHIRLPOOL ae63e727add7e8eefb3c38f35f5f9bea7caaf9f75e74cdbfd04135184e5710d35bb3014712c6de0440375dcfa2f86b75ee31324a0108f06fd348882324477b72
diff --git a/dev-python/stsci-distutils/metadata.xml b/dev-python/stsci-distutils/metadata.xml
new file mode 100644
index 00000000000..075a4ef1271
--- /dev/null
+++ b/dev-python/stsci-distutils/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<herd>sci-astronomy</herd>
+<longdescription>
+ This package contains utilities used to package some of STScI's Python
+ projects; specifically those projects that comprise stsci_python and
+ Astrolib.
+ It currently consists mostly of some setup_hook scripts meant for use with
+ distutils2/packaging and/or d2to1, and a customized easy_install command
+ meant for use with distribute.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">stsci.distutils</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/stsci-distutils/stsci-distutils-0.3.7.ebuild b/dev-python/stsci-distutils/stsci-distutils-0.3.7.ebuild
new file mode 100644
index 00000000000..e984e71f8ab
--- /dev/null
+++ b/dev-python/stsci-distutils/stsci-distutils-0.3.7.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+MY_PN=${PN/-/.}
+MY_P=${MY_PN}-${PV}
+
+inherit distutils-r1
+
+DESCRIPTION="Utilities used to package some of STScI's Python projects"
+HOMEPAGE="http://www.stsci.edu/resources/software_hardware/stsci_python"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/d2to1[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/stsci-sphinxext/Manifest b/dev-python/stsci-sphinxext/Manifest
new file mode 100644
index 00000000000..418989f9c9a
--- /dev/null
+++ b/dev-python/stsci-sphinxext/Manifest
@@ -0,0 +1 @@
+DIST stsci.sphinxext-1.2.1.tar.gz 75591 SHA256 17ae92d3ee683b0ac11a0f9a8b3862207aa7790f188147dd0de6a99721776f5a SHA512 98860d6748a6be00a853b12adb283ec138c8111d7c990c5ae7f493089eb5974943aa9fb101ec8b4f280b77c49d07ce6d44c50384477d57710ded0f3382155943 WHIRLPOOL 7a44b4097e1adb88cd8bbc7c900f42702eb8cc9f100239cbdc902ec0be667085bf639c7bd37ca633e33a873edd570fd3f8b624134dd68213d49173de2e701f9d
diff --git a/dev-python/stsci-sphinxext/metadata.xml b/dev-python/stsci-sphinxext/metadata.xml
new file mode 100644
index 00000000000..fcf407b8d4a
--- /dev/null
+++ b/dev-python/stsci-sphinxext/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+ This project contains extensions to Sphinx to build documentation
+ from Space Telescope Science Institute.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">stsci.sphinxext</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/stsci-sphinxext/stsci-sphinxext-1.2.1.ebuild b/dev-python/stsci-sphinxext/stsci-sphinxext-1.2.1.ebuild
new file mode 100644
index 00000000000..76fcf034336
--- /dev/null
+++ b/dev-python/stsci-sphinxext/stsci-sphinxext-1.2.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+MY_PN=${PN/-/.}
+MY_P=${MY_PN}-${PV}
+
+inherit distutils-r1
+
+DESCRIPTION="Tools and templates to customize Sphinx for STScI projects"
+HOMEPAGE="http://www.stsci.edu/resources/software_hardware/stsci_python"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/numpydoc[$(python_gen_usedep python2_7)]"
+DEPEND="${RDEPEND}
+ >=dev-python/d2to1-0.2.9[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/stsci-distutils-0.3.2[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/subunit/Manifest b/dev-python/subunit/Manifest
new file mode 100644
index 00000000000..bf25c7731d8
--- /dev/null
+++ b/dev-python/subunit/Manifest
@@ -0,0 +1,8 @@
+DIST subunit-0.0.10.tar.gz 418118 SHA256 94a9837086ff773b00b097dbf877ab5b1d2255a003542f66e5720c867940912f SHA512 a61254a2f80785928c5645e4d88128c76dd4b4c9e1977c81fc356423ada58bd6acf9694894cbaa1e63648cf52c6691eb998b73829e51270a5d418ad639f1482c WHIRLPOOL 89f7352a1518074f05a678548eacb1be06a85178ecc5d28d4be22065fa8f9a27566c4787674ba32957f946b18f200052b0524ebb4599475bac47e677f430d814
+DIST subunit-0.0.16.tar.gz 437895 SHA256 47dbeacd39ada80e52d5db3258fbe40a42f096450ef8a674071166594b0e56c3 SHA512 1e1c75e6df505661ca67ffe7dfacf0cf91399ffd3e383dd873fed9991f1d04959dfef2ca4db03a415bacd9ea5d0267a8504cd0b0e5d532808aa58a20233e13ad WHIRLPOOL cf68385a6f39b048324be1e708254bcc05e9faaa55316f883eb40649e9a2bda746ad22b4f2f51019ce9015cf35ccd6feb43a3cf8e67f36c610c8adbc645ead20
+DIST subunit-0.0.18.tar.gz 439455 SHA256 f4508a83b1206a85f6c1cfc57f83edc2ca13d62cc65be90ec27eadfa792a6eb4 SHA512 d992207398fa29ac61b32b4b671c686c6af4de804bc9ef9b5bde78f5036880cfa670dded10fb272f41f7d57d68f91061c1c7b89039bda0c3c775df329ce912f6 WHIRLPOOL 8730b140dc886a57517d6e5be24e1ddb316761e2e7eae0eeb8f949a09a9312195e503032dabab20172a79d08d93d74ea041a445742adbf81f4e3bf877d2df54f
+DIST subunit-0.0.19.tar.gz 441610 SHA256 cd2921c49b07e1f524582d57f2d3b496ae4557ffe350a47d8f1722311356fdb3 SHA512 0e879046b31076a200fe26ebcca6dd162a90f25b125a757e370b6c0aa95fd4ce351f2f84448c90ba982676468155254e8a29ad03ed98ca472e3e19b93a2a4761 WHIRLPOOL d5a7dfa85cf64d3b079b8caf4d5418c84caad9d1485e3f545650e1414fb1d1ebabbcf372f387a7fbf7ded9017145351bb6b315f0288d6c04cc17a278522f1b9c
+DIST subunit-0.0.21.tar.gz 441691 SHA256 f12565cb0c6efdee4d96e9e640db4bcbfbede734223de940f9f3969c4a8e2f4c SHA512 2bbf312c7d80c3bea02163924a205df5553be3eceab5b2951512f9d71110608f1243440491a22c878d0691b9197dfe19c5c49fbb608883a038fa86626144ab12 WHIRLPOOL 749b0763d568f6a9803de11a59b92b357b41b8ae64e531e6cdefcc6114d6c4f2799c6c36e8372b92f1d173123d7a5847782d1f3ff193c83a7755a95a773204e3
+DIST subunit-0.0.6.tar.gz 388872 SHA256 98f5e72107322dc1c502543384e1ed790671d319a5096eab4f4d20641555de77 SHA512 79aa46a2cbdbe27bb1fcfa02a65bd10ba9ccf5013f9cbd8549d5aad304b8d451ed6a854b1b77415601aab8f6966b7004337634ea5e7bd8387dda8209781b118f WHIRLPOOL fd05cfed6e7cd50df57dfc3dd0c45bf955a033abf7c43849193a9f7515847eb7d2df5819e964407dac253c46ba5073f2bb1499a92a94a072591a4db4d5128c2b
+DIST subunit-1.0.0.tar.gz 441964 SHA256 55dc2c1c22c650ad9f109516a72a9d37b986939de25b6195210724ce79ced0ba SHA512 082990e777667edb7d3666b554a1818a976369742a1ed9bbc47a9c59f97937c0619a315893f532e49c2cd798537b320ca2aa9df916906b85a75db8a7d4f8bc84 WHIRLPOOL e6650f991ecb0c7d0fc6001947cc5f11740c34783e62485bf5e8acebc9369665a8658789c7b7df5608efe8c5931b263952383231e8989f3be98cca2a807ba471
+DIST subunit-1.1.0.tar.gz 441946 SHA256 4869a5bec96b7b4e760d053f842d80548008740cda1a7efbb9053063ee818a51 SHA512 11aaa8f2ae04232623fbfb7b9561aa15bddbc55201a3a16eea1319a076de3417977590c57bb7ab0bbd86b321b203241ba5ea8050932759aeb3f3ed71b723a98b WHIRLPOOL 2705fcb98d0b67b5d2cddff87095a9b65782467f3e9b84f956ac29c85c2995881dcd63468a144277fb76b7adfdbbb2ecdc36eae8413886a72028e3565edbdf47
diff --git a/dev-python/subunit/files/0.0.21-tests.patch b/dev-python/subunit/files/0.0.21-tests.patch
new file mode 100644
index 00000000000..178fc1215d2
--- /dev/null
+++ b/dev-python/subunit/files/0.0.21-tests.patch
@@ -0,0 +1,25 @@
+diff -ur subunit-0.0.21.orig/python/subunit/tests/test_run.py subunit-0.0.21/python/subunit/tests/test_run.py
+--- python/subunit/tests/test_run.py 2014-08-24 13:27:32.000000000 +0800
++++ python/subunit/tests/test_run.py 2014-09-23 14:03:54.731069912 +0800
+@@ -65,21 +65,6 @@
+ exc = self.assertRaises(SystemExit, runner.list, None)
+ self.assertEqual((2,), exc.args)
+
+- class FailingTest(TestCase):
+- def test_fail(self):
+- 1/0
+-
+- def test_exits_zero_when_tests_fail(self):
+- bytestream = io.BytesIO()
+- stream = io.TextIOWrapper(bytestream, encoding="utf8")
+- try:
+- self.assertEqual(None, run.main(
+- argv=["progName", "subunit.tests.test_run.TestSubunitTestRunner.FailingTest"],
+- stdout=stream))
+- except SystemExit:
+- self.fail("SystemExit raised")
+- self.assertThat(bytestream.getvalue(), StartsWith(_b('\xb3')))
+-
+ def test_exits_nonzero_when_execution_errors(self):
+ bytestream = io.BytesIO()
+ stream = io.TextIOWrapper(bytestream, encoding="utf8")
diff --git a/dev-python/subunit/files/1.0.0-tests.patch b/dev-python/subunit/files/1.0.0-tests.patch
new file mode 100644
index 00000000000..d83a1900cbe
--- /dev/null
+++ b/dev-python/subunit/files/1.0.0-tests.patch
@@ -0,0 +1,25 @@
+diff -ur subunit-1.0.0.orig/python/subunit/tests/test_run.py subunit-1.0.0/python/subunit/tests/test_run.py
+--- python/subunit/tests/test_run.py 2014-11-18 16:59:26.000000000 +0800
++++ python/subunit/tests/test_run.py 2015-03-26 13:25:19.193341069 +0800
+@@ -77,21 +77,6 @@
+ exc = self.assertRaises(SystemExit, runner.list, None, loader=loader)
+ self.assertEqual((2,), exc.args)
+
+- class FailingTest(TestCase):
+- def test_fail(self):
+- 1/0
+-
+- def test_exits_zero_when_tests_fail(self):
+- bytestream = io.BytesIO()
+- stream = io.TextIOWrapper(bytestream, encoding="utf8")
+- try:
+- self.assertEqual(None, run.main(
+- argv=["progName", "subunit.tests.test_run.TestSubunitTestRunner.FailingTest"],
+- stdout=stream))
+- except SystemExit:
+- self.fail("SystemExit raised")
+- self.assertThat(bytestream.getvalue(), StartsWith(_b('\xb3')))
+-
+ class ExitingTest(TestCase):
+ def test_exit(self):
+ raise SystemExit(0)
diff --git a/dev-python/subunit/files/shell-tests.patch b/dev-python/subunit/files/shell-tests.patch
new file mode 100644
index 00000000000..46d72c168fc
--- /dev/null
+++ b/dev-python/subunit/files/shell-tests.patch
@@ -0,0 +1,24 @@
+diff -ur subunit-0.0.10.orig/shell/tests/test_function_output.sh subunit-0.0.10/shell/tests/test_function_output.sh
+--- shell/tests/test_function_output.sh 2013-06-17 19:02:34.378260908 +0800
++++ tests/test_function_output.sh 2013-06-17 19:03:49.082260928 +0800
+@@ -22,7 +22,7 @@
+ # it is assumed that we are running from the 'shell' tree root in the source
+ # of subunit, and that the library sourcing tests have all passed - if they
+ # have not, this test script may well fail strangely.
+-
++SHELL_SHARE="shell/share/"
+ # import the library.
+ . ${SHELL_SHARE}subunit.sh
+
+diff -ur subunit-0.0.10.orig/shell/tests/test_source_library.sh subunit-0.0.10/shell/tests/test_source_library.sh
+--- shell/tests/test_source_library.sh 2013-06-17 19:03:01.322260915 +0800
++++ shell/tests/test_source_library.sh 2013-06-17 18:53:46.634260762 +0800
+@@ -20,7 +20,7 @@
+ # bindings being complete yet.
+
+ # we expect to be run from the tree root.
+-
++SHELL_SHARE="shell/share/"
+ echo 'test: shell bindings can be sourced'
+ # if any output occurs, this has failed to source cleanly
+ source_output=$(. ${SHELL_SHARE}subunit.sh 2>&1)
diff --git a/dev-python/subunit/metadata.xml b/dev-python/subunit/metadata.xml
new file mode 100644
index 00000000000..77be1e060a1
--- /dev/null
+++ b/dev-python/subunit/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>bazaar</herd>
+ <herd>python</herd>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="launchpad">subunit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/subunit/subunit-0.0.10-r1.ebuild b/dev-python/subunit/subunit-0.0.10-r1.ebuild
new file mode 100644
index 00000000000..77a525a42f4
--- /dev/null
+++ b/dev-python/subunit/subunit-0.0.10-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit autotools-utils python-single-r1
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=dev-python/testtools-0.9.23[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ dev-libs/check
+ dev-util/cppunit
+ >=sys-devel/automake-1.12
+ virtual/pkgconfig"
+
+src_prepare() {
+ # update py-compile to handle py3 properly
+ # XXX: handle it in the eclass?
+ cp "$(automake --print-libdir || die)"/py-compile . || die
+ epatch "${FILESDIR}"/shell-tests.patch
+
+ autotools-utils_src_prepare
+}
+
+src_test() {
+ if ! PYTHONPATH="${S}"/python/ "${PYTHON}" runtests.py; then
+ die "Tests failed under ${EPYTHON}"
+ fi
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ python_fix_shebang "${D}"/usr/bin
+}
diff --git a/dev-python/subunit/subunit-0.0.16.ebuild b/dev-python/subunit/subunit-0.0.16.ebuild
new file mode 100644
index 00000000000..e0f2e4a0044
--- /dev/null
+++ b/dev-python/subunit/subunit-0.0.16.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ~ia64 ~mips ppc ppc64 x86 ~x86-fbsd"
+#need to keyword the following in =dev-python/extras-0.0.3 then readd the keywords here
+#ia64 s390 sh sparc amd64-fbsd
+IUSE="static-libs"
+
+RDEPEND=">=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-lang/perl:=
+ dev-libs/check
+ dev-util/cppunit
+ virtual/pkgconfig"
+
+src_configure() {
+ econf --enable-shared $(use_enable static-libs static)
+ distutils-r1_src_configure
+}
+
+src_compile() {
+ emake
+ distutils-r1_src_compile
+}
+
+python_test() {
+ local -x PATH="${PWD}/shell/share:${PATH}"
+ local -x PYTHONPATH=python
+ "${PYTHON}" -m testtools.run all_tests.test_suite || die "Testing failed with ${EPYTHON}"
+}
+
+src_install() {
+ local targets=(
+ install-include_subunitHEADERS
+ install-pcdataDATA
+ install-exec-local
+ install-libLTLIBRARIES
+ )
+ emake DESTDIR="${D}" "${targets[@]}"
+ prune_libtool_files
+ distutils-r1_src_install
+}
diff --git a/dev-python/subunit/subunit-0.0.18-r2.ebuild b/dev-python/subunit/subunit-0.0.18-r2.ebuild
new file mode 100644
index 00000000000..36d3150bbf8
--- /dev/null
+++ b/dev-python/subunit/subunit-0.0.18-r2.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils multilib-minimal
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd"
+#need to keyword the following in =dev-python/extras-0.0.3 then readd the keywords here
+#ia64 s390 sh sparc amd64-fbsd
+IUSE="static-libs"
+
+RDEPEND=">=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]"
+# test? ( dev-python/testscenarios[${PYTHON_USEDEP}] )
+#requires keywording first; Bug #506510
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-lang/perl:=
+ >=dev-libs/check-0.9.11[${MULTILIB_USEDEP}]
+ >=dev-util/cppunit-1.13.2[${MULTILIB_USEDEP}]
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+#requires keywording first; Bug #506510
+RESTRICT="test"
+
+src_prepare() {
+ # needed for perl modules
+ multilib_copy_sources
+ distutils-r1_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ default
+ multilib_is_native_abi && distutils-r1_src_compile
+}
+
+python_test() {
+ local -x PATH="${PWD}/shell/share:${PATH}"
+ local -x PYTHONPATH=python
+ "${PYTHON}" -m testtools.run all_tests.test_suite || die "Testing failed with ${EPYTHON}"
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && distutils-r1_src_test
+}
+
+multilib_src_install() {
+ local targets=(
+ install-include_subunitHEADERS
+ install-pcdataDATA
+ install-exec-local
+ install-libLTLIBRARIES
+ )
+ emake DESTDIR="${D}" "${targets[@]}"
+
+ multilib_is_native_abi && distutils-r1_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ prune_libtool_files
+}
diff --git a/dev-python/subunit/subunit-0.0.19.ebuild b/dev-python/subunit/subunit-0.0.19.ebuild
new file mode 100644
index 00000000000..96dde06b9d3
--- /dev/null
+++ b/dev-python/subunit/subunit-0.0.19.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils multilib-minimal
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd"
+#need to keyword the following in =dev-python/extras-0.0.3 then readd the keywords here
+#ia64 s390 sh sparc amd64-fbsd
+IUSE="static-libs"
+
+RDEPEND=">=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]"
+# test? ( dev-python/testscenarios[${PYTHON_USEDEP}] )
+#requires keywording first; Bug #506510
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-lang/perl:=
+ >=dev-libs/check-0.9.11[${MULTILIB_USEDEP}]
+ >=dev-util/cppunit-1.13.2[${MULTILIB_USEDEP}]
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+#requires keywording first; Bug #506510
+RESTRICT="test"
+
+src_prepare() {
+ sed -i -e 's/os.chdir(os.path.dirname(__file__))//' setup.py || die
+ # needed for perl modules
+ multilib_copy_sources
+ distutils-r1_src_prepare
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ default
+ multilib_is_native_abi && distutils-r1_src_compile
+}
+
+python_test() {
+ local -x PATH="${PWD}/shell/share:${PATH}"
+ local -x PYTHONPATH=python
+ "${PYTHON}" -m testtools.run all_tests.test_suite || die "Testing failed with ${EPYTHON}"
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && distutils-r1_src_test
+}
+
+multilib_src_install() {
+ local targets=(
+ install-include_subunitHEADERS
+ install-pcdataDATA
+ install-exec-local
+ install-libLTLIBRARIES
+ )
+ emake DESTDIR="${D}" "${targets[@]}"
+
+ multilib_is_native_abi && distutils-r1_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ prune_libtool_files
+}
diff --git a/dev-python/subunit/subunit-0.0.21-r1.ebuild b/dev-python/subunit/subunit-0.0.21-r1.ebuild
new file mode 100644
index 00000000000..7fd6dad87a5
--- /dev/null
+++ b/dev-python/subunit/subunit-0.0.21-r1.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils multilib-minimal
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 x86 ~x86-fbsd"
+IUSE="static-libs test"
+
+RDEPEND=">=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-lang/perl:=
+ >=dev-libs/check-0.9.11[${MULTILIB_USEDEP}]
+ >=dev-util/cppunit-1.13.2[${MULTILIB_USEDEP}]
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+ test? ( dev-python/testscenarios[${PYTHON_USEDEP}] )"
+
+# Take out rogue & trivial failing tests that exit the suite before it even gets started
+PATCHES=( "${FILESDIR}"/${PV}-tests.patch )
+
+src_prepare() {
+ sed -i -e 's/os.chdir(os.path.dirname(__file__))//' setup.py || die
+
+ # Install perl modules in vendor_perl, bug 534654.
+ export INSTALLDIRS=vendor
+
+ # needed for perl modules
+ distutils-r1_src_prepare
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ default
+ multilib_is_native_abi && distutils-r1_src_compile
+}
+
+python_test() {
+ local -x PATH="${PWD}/shell/share:${PATH}"
+ local -x PYTHONPATH=python
+ "${PYTHON}" -m testtools.run all_tests.test_suite || die "Testing failed with ${EPYTHON}"
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && distutils-r1_src_test
+}
+
+multilib_src_install() {
+ local targets=(
+ install-include_subunitHEADERS
+ install-pcdataDATA
+ install-exec-local
+ install-libLTLIBRARIES
+ )
+ emake DESTDIR="${D}" "${targets[@]}"
+
+ multilib_is_native_abi && distutils-r1_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ prune_libtool_files
+}
diff --git a/dev-python/subunit/subunit-0.0.6.ebuild b/dev-python/subunit/subunit-0.0.6.ebuild
new file mode 100644
index 00000000000..ff5dbf7dc02
--- /dev/null
+++ b/dev-python/subunit/subunit-0.0.6.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_EXPORT_PHASE_FUNCTIONS="1"
+
+inherit python
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=dev-python/testtools-0.9.4"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ dev-libs/check
+ dev-util/cppunit
+ virtual/pkgconfig"
+RESTRICT_PYTHON_ABIS="3.*"
+
+pkg_postinst() {
+ python_mod_optimize subunit
+}
+
+pkg_postrm() {
+ python_mod_cleanup subunit
+}
diff --git a/dev-python/subunit/subunit-1.0.0.ebuild b/dev-python/subunit/subunit-1.0.0.ebuild
new file mode 100644
index 00000000000..8c792b85866
--- /dev/null
+++ b/dev-python/subunit/subunit-1.0.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils multilib-minimal
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd"
+IUSE="static-libs test"
+
+RDEPEND=">=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-lang/perl:=
+ >=dev-libs/check-0.9.11[${MULTILIB_USEDEP}]
+ >=dev-util/cppunit-1.13.2[${MULTILIB_USEDEP}]
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+ test? ( dev-python/testscenarios[${PYTHON_USEDEP}] )"
+
+# Take out rogue & trivial failing tests that exit the suite before it even gets started
+# The removed class in fact works fine in py3 and fails with py2.7 & pupu
+# The setu to restrict this patch is just those 2 is not worth it.
+PATCHES=( "${FILESDIR}"/${PV}-tests.patch )
+
+src_prepare() {
+ sed -i -e 's/os.chdir(os.path.dirname(__file__))//' setup.py || die
+
+ # Install perl modules in vendor_perl, bug 534654.
+ export INSTALLDIRS=vendor
+
+ # needed for perl modules
+ distutils-r1_src_prepare
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ default
+ multilib_is_native_abi && distutils-r1_src_compile
+}
+
+python_test() {
+ local -x PATH="${PWD}/shell/share:${PATH}"
+ local -x PYTHONPATH=python
+ # Following tests are known to fail in py2.7 & pypy. They pass under py3.
+ # DO NOT re-file
+ # test_add_error test_add_error_details test_add_expected_failure
+ # test_add_expected_failure_details test_add_failure test_add_failure
+ # https://bugs.launchpad.net/subunit/+bug/1436686
+
+ "${PYTHON}" -m testtools.run all_tests.test_suite || die "Testing failed with ${EPYTHON}"
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && distutils-r1_src_test
+}
+
+multilib_src_install() {
+ local targets=(
+ install-include_subunitHEADERS
+ install-pcdataDATA
+ install-exec-local
+ install-libLTLIBRARIES
+ )
+ emake DESTDIR="${D}" "${targets[@]}"
+
+ multilib_is_native_abi && distutils-r1_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ prune_libtool_files
+}
diff --git a/dev-python/subunit/subunit-1.1.0.ebuild b/dev-python/subunit/subunit-1.1.0.ebuild
new file mode 100644
index 00000000000..67a737edf28
--- /dev/null
+++ b/dev-python/subunit/subunit-1.1.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 eutils multilib-minimal
+
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="https://launchpad.net/subunit http://pypi.python.org/pypi/python-subunit"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd"
+IUSE="static-libs test"
+
+RDEPEND=">=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-lang/perl:=
+ >=dev-libs/check-0.9.11[${MULTILIB_USEDEP}]
+ >=dev-util/cppunit-1.13.2[${MULTILIB_USEDEP}]
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+ test? ( dev-python/testscenarios[${PYTHON_USEDEP}] )"
+
+# Take out rogue & trivial failing tests that exit the suite before it even gets started
+# The removed class in fact works fine in py3 and fails with py2.7 & pupu
+# The setu to restrict this patch is just those 2 is not worth it.
+PATCHES=( "${FILESDIR}"/1.0.0-tests.patch )
+
+src_prepare() {
+ sed -i -e 's/os.chdir(os.path.dirname(__file__))//' setup.py || die
+
+ # Install perl modules in vendor_perl, bug 534654.
+ export INSTALLDIRS=vendor
+
+ # needed for perl modules
+ distutils-r1_src_prepare
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ default
+ multilib_is_native_abi && distutils-r1_src_compile
+}
+
+python_test() {
+ local -x PATH="${PWD}/shell/share:${PATH}"
+ local -x PYTHONPATH=python
+ # Following tests are known to fail in py2.7 & pypy. They pass under py3.
+ # DO NOT re-file
+ # test_add_error test_add_error_details test_add_expected_failure
+ # test_add_expected_failure_details test_add_failure test_add_failure
+ # https://bugs.launchpad.net/subunit/+bug/1436686
+
+ "${PYTHON}" -m testtools.run all_tests.test_suite || die "Testing failed with ${EPYTHON}"
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && distutils-r1_src_test
+}
+
+multilib_src_install() {
+ local targets=(
+ install-include_subunitHEADERS
+ install-pcdataDATA
+ install-exec-local
+ install-libLTLIBRARIES
+ )
+ emake DESTDIR="${D}" "${targets[@]}"
+
+ multilib_is_native_abi && distutils-r1_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ prune_libtool_files
+}
diff --git a/dev-python/subvertpy/Manifest b/dev-python/subvertpy/Manifest
new file mode 100644
index 00000000000..f0eb7b0cf2b
--- /dev/null
+++ b/dev-python/subvertpy/Manifest
@@ -0,0 +1 @@
+DIST subvertpy-0.9.1.tar.gz 110972 SHA256 8a5bc24f1abf273de22f0caf1d76a63b51ed5cfb6cd62f6ef58807adb9aaf6a7 SHA512 977e291c011e680cff9e26312b4235c0479374076964c7c4a4c3c7ec75bcc44ff7c458513ab89f1aa2b599d3bd8f94cbc6d1000afcf725a9f937a90b39456148 WHIRLPOOL c8dcc98750107110251c51a7d47b073de2ea07200fdc44fad6494be69909563a4ec1a49c085d73d820acc8a6c30c6506eb0844351e43785b0b5d3d74d1027dc0
diff --git a/dev-python/subvertpy/metadata.xml b/dev-python/subvertpy/metadata.xml
new file mode 100644
index 00000000000..a05c0b585be
--- /dev/null
+++ b/dev-python/subvertpy/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>bazaar</herd>
+</pkgmetadata>
diff --git a/dev-python/subvertpy/subvertpy-0.9.1.ebuild b/dev-python/subvertpy/subvertpy-0.9.1.ebuild
new file mode 100644
index 00000000000..d9f51030eae
--- /dev/null
+++ b/dev-python/subvertpy/subvertpy-0.9.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Alternative Python bindings for Subversion"
+HOMEPAGE="http://samba.org/~jelmer/subvertpy/ http://pypi.python.org/pypi/subvertpy"
+SRC_URI="http://samba.org/~jelmer/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( LGPL-2.1 LGPL-3 )"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=">=dev-vcs/subversion-1.4"
+DEPEND="${RDEPEND}
+ test? ( || (
+ dev-python/testtools
+ ) )"
+
+DOCS=( NEWS AUTHORS )
+S=${WORKDIR}
+
+python_compile() {
+ python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ distutils_install_for_testing
+ pushd man > /dev/null
+ # hack: the subvertpy in . has no compiled modules, so cd into any
+ # directory to give the installed version precedence on PYTHONPATH
+ ${PYTHON} -m unittest subvertpy.tests.test_suite
+ popd man > /dev/null
+}
diff --git a/dev-python/suds/Manifest b/dev-python/suds/Manifest
new file mode 100644
index 00000000000..f9fbfb71a01
--- /dev/null
+++ b/dev-python/suds/Manifest
@@ -0,0 +1,2 @@
+DIST suds-0.4.tar.gz 104013 SHA256 d5524ae523bb9e09c57bcdbd1efae2c287d20603688ea31f6020ed180a489af0 SHA512 5ec53c3e834947a394fec8d51b497d6e5824fd5e6e51addce98d552cfa692cac99e159e270d247fff98a0f669506f4c179fad3f43452600bae1db08f851dec1b WHIRLPOOL 84a63b343e96d06f85757b97c51582305ec0d6d634171260723cafc356b76266f0f2ece5f16ea6772a35a76f0587a15871e3801eb53db7171c5761d74b4ecc18
+DIST suds-0.6.tar.bz2 143985 SHA256 29edb72fd21e3044093d86f33c66cf847c5aaab26d64cb90e69e528ef014e57f SHA512 ec078b159bd83c5799e293d9607138ee1da90fdc64da203999555a4324ce7be0235156d3c7ad28e46f84180a6e51e2f3f82228e5e77ae41c61ee20f3db2c916b WHIRLPOOL 9c62762f1c865cf7763d9a7332dfa9927dcb693a99414de063451a11581a7e303b19c3c0f840db339829bd59c116565fba26d98aaa520739a6aa84edaabc90aa
diff --git a/dev-python/suds/metadata.xml b/dev-python/suds/metadata.xml
new file mode 100644
index 00000000000..ec200de6696
--- /dev/null
+++ b/dev-python/suds/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">A lightweight SOAP python client for consuming Web Services.</longdescription>
+ <upstream>
+ <remote-id type="pypi">suds</remote-id>
+ <remote-id type="bitbucket">jurko/suds</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/suds/suds-0.4-r1.ebuild b/dev-python/suds/suds-0.4-r1.ebuild
new file mode 100644
index 00000000000..2a05169a546
--- /dev/null
+++ b/dev-python/suds/suds-0.4-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Lightweight SOAP client"
+HOMEPAGE="https://fedorahosted.org/suds/ http://pypi.python.org/pypi/suds"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/epydoc[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_compile_all() {
+ if use doc; then
+ epydoc -n "Suds - ${DESCRIPTION}" -o doc suds || die
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/suds/suds-0.6-r1.ebuild b/dev-python/suds/suds-0.6-r1.ebuild
new file mode 100644
index 00000000000..f38a4629c56
--- /dev/null
+++ b/dev-python/suds/suds-0.6-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+DISTUTILS_IN_SOURCE_BUILD=1
+
+inherit distutils-r1
+
+DESCRIPTION="Lightweight SOAP client (Jurko's fork) (py3 support) (active development)"
+HOMEPAGE="http://bitbucket.org/jurko/suds"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}-jurko/${PN}-jurko-${PV}.tar.bz2 -> ${P}.tar.bz2"
+S="${WORKDIR}/${PN}-jurko-${PV}"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+REQUIRED_USE="doc? ( $(python_gen_useflags python2_7) )"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/epydoc[$(python_gen_usedep python2_7)] )
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+DOCS=( README.rst notes/{argument_parsing.rst,readme.txt,traversing_client_data.rst} )
+
+python_compile_all() {
+ # to say that it's both, because it kinda is...
+ ! use doc || epydoc -n "Suds - ${DESCRIPTION}" -o doc suds || die
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ # test folder makes for file collisions by the eclass
+ sed -i -e '/^tests/d' suds_jurko.egg-info/top_level.txt suds_jurko.egg-info/SOURCES.txt || die
+ cp -r suds_jurko.egg-info suds.egg-info || die
+ sed -i -e 's/Name\:\ suds-jurko/Name:\ suds/g' -e '/^Obsoletes/d' suds.egg-info/PKG-INFO || die
+ rm -rf ./{tests,build/lib/tests,lib/tests}/ || die
+ distutils-r1_python_install
+}
diff --git a/dev-python/suds/suds-0.6.ebuild b/dev-python/suds/suds-0.6.ebuild
new file mode 100644
index 00000000000..accbbcdb4df
--- /dev/null
+++ b/dev-python/suds/suds-0.6.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="Lightweight SOAP client (Jurko's fork) (py3 support) (active development)"
+HOMEPAGE="http://bitbucket.org/jurko/suds"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}-jurko/${PN}-jurko-${PV}.tar.bz2 -> ${P}.tar.bz2"
+S="${WORKDIR}/${PN}-jurko-${PV}"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare() {
+ rm -R tests
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ mv suds_jurko.egg-info suds.egg-info || die
+ sed -i -e 's/Name\:\ suds-jurko/Name:\ suds/g' -e '/^Obsoletes/d' suds.egg-info/PKG-INFO || die
+}
diff --git a/dev-python/sudsds/Manifest b/dev-python/sudsds/Manifest
new file mode 100644
index 00000000000..0ae8a34dcec
--- /dev/null
+++ b/dev-python/sudsds/Manifest
@@ -0,0 +1 @@
+DIST sudsds-1.0.1.tar.gz 84196 SHA256 eea36b873a98cce4b5597812f62e2c20eb534dd520a569d6aa250e29ea83ea9c SHA512 11f064702300651dc7f7100698d20946f1ee06c8d08963fcb123620fd8ce34608ffb5a5df9d28f5b241080ead32680a6376ba224253383901a0d81240957be36 WHIRLPOOL 6a5a25129a7b9b0819eb848c312dfc7e0e5b1120be044357124c17cfb09a33953e7d2a17ec651d09d4877141d5aea3f53aaf0515c563798a1a07ca21b14e63b9
diff --git a/dev-python/sudsds/metadata.xml b/dev-python/sudsds/metadata.xml
new file mode 100644
index 00000000000..091da0683b5
--- /dev/null
+++ b/dev-python/sudsds/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ A lightweight SOAP python client for consuming Web Services. Czech NIC labs fork.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/dev-python/sudsds/sudsds-1.0.1-r1.ebuild b/dev-python/sudsds/sudsds-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..4e550c358f8
--- /dev/null
+++ b/dev-python/sudsds/sudsds-1.0.1-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Lightweight SOAP client - Czech NIC labs fork"
+HOMEPAGE="https://labs.nic.cz/page/969/"
+SRC_URI="http://www.nic.cz/public_media/datove_schranky/releases/src/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/sure/Manifest b/dev-python/sure/Manifest
new file mode 100644
index 00000000000..051f282e677
--- /dev/null
+++ b/dev-python/sure/Manifest
@@ -0,0 +1,3 @@
+DIST sure-1.2.3.tar.gz 16921 SHA256 f6200277de5b63094f2d1d384967e19a95be53ba664bb7a748b3b183e5cfadf7 SHA512 79f9e7639e468e61858d70cb3184c44e9de30d1ecefb4701e3a305b9fc231b9a4df27e795f8b31da6ddc221ba002bc83dd59621e7f364598c80b831a4bcc9fa9 WHIRLPOOL 1c2d5d58b2765e1ea89bb27d079083479f4460a01ae735268fbc82148643348a8796ec6142b39e4a188fb6bad16a130578b66ae52bd2ebe112bd2972cd6cc54a
+DIST sure-1.2.5-r1.tar.gz 52128 SHA256 8a77c1372f3bf9784310b3cf0ab66e86190b531a2b68e47616bce0e4e4983fbe SHA512 733df3a9482cc23e5f078b554a80a726ed87f4ac307b00166d5ad7d8d40de47fe7d77a7373b213d75fc78849a2ba0dbea89f71c6f29449f52eab448fdf847c45 WHIRLPOOL d466c9a6016f636f2b388ed001c12f7e050184b2b54507e1ef5ead4899b2ab8433022254645bd7a989f15105d768902e18289c8f23cff82277d422811f1b7cfb
+DIST sure-1.2.5.tar.gz 19048 SHA256 63f9861f607c5a27d090edaf91e6c93421a11ae1c011171f7394f44ccc391cdc SHA512 41f097318093b7e1683c38cae7aad3551bcc4e82918d3005388ce660c81a014b0939d3ad9dc12905c50892c82282c3e90aadb01ca7600b593d09afa2549c7135 WHIRLPOOL ea3bb51d9f0b375656b248c80c0a381fc026347efb0a94c856fb319c1e6f1e7d9e6e5a665f57e835a4fdb50060f3b2fa4c9168e8f61ae01af5a05bfc337a9481
diff --git a/dev-python/sure/metadata.xml b/dev-python/sure/metadata.xml
new file mode 100644
index 00000000000..86a8cab220a
--- /dev/null
+++ b/dev-python/sure/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">sure</remote-id>
+ <remote-id type="github">gabrielfalcao/sure</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sure/sure-1.2.3.ebuild b/dev-python/sure/sure-1.2.3.ebuild
new file mode 100644
index 00000000000..0aaec82c76f
--- /dev/null
+++ b/dev-python/sure/sure-1.2.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A utility belt for automated testing in python for python"
+HOMEPAGE="http://github.com/gabrielfalcao/sure"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+LICENSE="GPL-3"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/sure/sure-1.2.5-r1.ebuild b/dev-python/sure/sure-1.2.5-r1.ebuild
new file mode 100644
index 00000000000..3a67273f032
--- /dev/null
+++ b/dev-python/sure/sure-1.2.5-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="utility belt for automated testing in python for python"
+HOMEPAGE="http://github.com/gabrielfalcao/sure"
+SRC_URI="https://github.com/gabrielfalcao/${PN}/archive/${PV}.tar.gz -> ${P}-r1.tar.gz"
+
+S="${WORKDIR}/${P}-r1"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+CDEPEND="
+ >=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
+ ~dev-python/rednose-0.4.1[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${CDEPEND} )
+"
+RDEPEND="${CDEPEND}"
+
+python_prepare_all() {
+ ebegin 'patching setup.py'
+ sed \
+ -e "82s/read_version()/'${PV}'/" \
+ -i setup.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests -s tests --rednose || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/sure/sure-1.2.5.ebuild b/dev-python/sure/sure-1.2.5.ebuild
new file mode 100644
index 00000000000..0aaec82c76f
--- /dev/null
+++ b/dev-python/sure/sure-1.2.5.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A utility belt for automated testing in python for python"
+HOMEPAGE="http://github.com/gabrielfalcao/sure"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+LICENSE="GPL-3"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/symboltype/Manifest b/dev-python/symboltype/Manifest
new file mode 100644
index 00000000000..a03b78e32de
--- /dev/null
+++ b/dev-python/symboltype/Manifest
@@ -0,0 +1 @@
+DIST symboltype-1.0.zip 9507 SHA256 bcc311398c7dbcc9cbde9fe68bba89b0efe45103410b5949f3acf484fcb14f39 SHA512 1484adf4bd2df4f6def5cb6dab50e17d21a2baacb12af8a03aa981478deb97d1cfd3620c0e7d0e6e8c631b0c6bfc3912196c20a0feb39a3ddd4cf9e9dc42b6b2 WHIRLPOOL b92f3369f928f0021e6fe44877b2842cba18416cf0c3a0cb95c82a87604c227a927fa59fab28d98acad806eb864d80f9f319f53c965fa7bbfa7b37d4e1aa77a9
diff --git a/dev-python/symboltype/metadata.xml b/dev-python/symboltype/metadata.xml
new file mode 100644
index 00000000000..9258479a4ac
--- /dev/null
+++ b/dev-python/symboltype/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">SymbolType</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/symboltype/symboltype-1.0.ebuild b/dev-python/symboltype/symboltype-1.0.ebuild
new file mode 100644
index 00000000000..d387df496b8
--- /dev/null
+++ b/dev-python/symboltype/symboltype-1.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="SymbolType"
+
+DESCRIPTION="Gives access to the peak.util.symbols module"
+HOMEPAGE=" http://peak.telecommunity.com/DevCenter/SymbolType http://pypi.python.org/pypi/SymbolType"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip -> ${P}.zip"
+
+KEYWORDS="amd64 x86"
+IUSE="doc"
+LICENSE="ZPL"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_PN}-${PV}
+
+python_test() {
+ "${PYTHON}" test_symbols.py && einfo "Tests passed under ${EPYTHON}" \
+ || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/sympy/Manifest b/dev-python/sympy/Manifest
new file mode 100644
index 00000000000..16e28e4563f
--- /dev/null
+++ b/dev-python/sympy/Manifest
@@ -0,0 +1,4 @@
+DIST sympy-0.7.4.1-system-mpmath.patch.gz 7350 SHA256 d7f2acd0ccfb06eb8c102dd7fae2325b35a5105a5853e01dcb863c0841dedc75 SHA512 761cdc6259101d6023d83cfea311a5547762c192b3c661ab3bc0ded20911ce464d0326a9b16d899ad35280a65046e621670e7de64ec40df740bfeb8bf667fb3d WHIRLPOOL 24693863da03dab6ed67131f46c4e18dfdc8110d0a23f49825dcb835909fa157781791680cfe46092c41c526fe281370aa7ce341f7fbccae02351d34c29bffd3
+DIST sympy-0.7.4.1.tar.gz 6824862 SHA256 51a8c2377c240a2cdb418bc59dac9ab106258196d04ce131d06806dbea2af456 SHA512 8d4d87428c202407ff364ef503634529500c1656cf5ddbb4de19b838499593c58d227f0b619541ce86cdc15157e3a5b48a95c906a5d05d4606ef95f1aa8fa2dc WHIRLPOOL 620d255e0cf289ac392328ad64e93d93489d8664df13498bac8933221c8edb80a45a8ea26da6cb8e1139ec2ca159c8f83ad196d96ee6afceb4fc8bb2a0eccfd7
+DIST sympy-0.7.6-system-mpmath.patch.gz 5030 SHA256 d5ff8ff4f79ed66714486954633d18f865820197081230b82ff8e2093751e073 SHA512 b8475f2a0c1320c7e5e1403476e011fae0997f07afba3fd892ad5e95e89b5cdfa5f92b778eb406b27f2c0edb2a119ee636c57ff32585360c26d38202ea09b075 WHIRLPOOL d03273573237b04c403438a75e4a4c21cf89a6b93e642a71126a136c6e4e9e07db3e5ebc8e5a4724b792e0d4885f38a7d30759e26fa61146f929a1447e16e64c
+DIST sympy-0.7.6.tar.gz 6430549 SHA256 dfa3927e9befdfa7da7a18783ccbc2fe489ce4c46aa335a879e49e48fc03d7a7 SHA512 ce0f1a17ac01eb48aec31fc0ad431d9d7ed9907f0e8584a6d79d0ffe6864fe62e203fe3f2a3c3e4e3d485809750ce07507a6488e776a388a7a9a713110882fcf WHIRLPOOL 850c27ae73f92f224826e5c00e41a0d4644fcb290767963744a947b03b704557423c00ed9a14ad696630c4611c3ed684926d58d7873127de76530325aae08ae2
diff --git a/dev-python/sympy/files/sympy-0.7.6-doc-makefile.patch b/dev-python/sympy/files/sympy-0.7.6-doc-makefile.patch
new file mode 100644
index 00000000000..b4beca8c2a1
--- /dev/null
+++ b/dev-python/sympy/files/sympy-0.7.6-doc-makefile.patch
@@ -0,0 +1,10 @@
+diff -r -U2 sympy-0.7.6.orig/doc/Makefile sympy-0.7.6/doc/Makefile
+--- sympy-0.7.6.orig/doc/Makefile 2014-11-21 02:00:41.000000000 +0600
++++ sympy-0.7.6/doc/Makefile 2014-12-07 20:49:01.091613474 +0600
+@@ -118,5 +118,5 @@
+ pdflatex -output-directory=_build/cheatsheet cheatsheet/cheatsheet.tex
+
+-_build/cheatsheet/cheatsheet.pdf: cheatsheet/combinatoric_cheatsheet.tex
++_build/cheatsheet/combinatoric_cheatsheet.pdf: cheatsheet/combinatoric_cheatsheet.tex
+ mkdir -p _build/cheatsheet
+ pdflatex -output-directory=_build/cheatsheet cheatsheet/combinatoric_cheatsheet.tex
diff --git a/dev-python/sympy/metadata.xml b/dev-python/sympy/metadata.xml
new file mode 100644
index 00000000000..6a28c74a99d
--- /dev/null
+++ b/dev-python/sympy/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-mathematics</herd>
+ <maintainer>
+ <email>grozin@gentoo.org</email>
+ <name>Andrey Grozin</name>
+ </maintainer>
+ <longdescription>
+ SymPy is a Python library for symbolic mathematics (manipulation). It
+ aims to become a full-featured computer algebra system (CAS) while keeping
+ the code as simple as possible in order to be comprehensible and easily
+ extensible. SymPy is written entirely in Python and does not require
+ any external libraries, except optionally for plotting support.
+</longdescription>
+ <use>
+ <flag name="ipython">Add support for <pkg>dev-python/ipython</pkg></flag>
+ <flag name="imaging">Add support for <pkg>dev-python/imaging</pkg></flag>
+ <flag name="mathml">Add support for mathml</flag>
+ <flag name="pyglet">Use <pkg>dev-python/pyglet</pkg> for plots and print preview</flag>
+ <flag name="texmacs">Add <pkg>app-office/texmacs</pkg>
+ interface</flag>
+ <flag name="theano">Add support for <pkg>dev-python/theano</pkg></flag>
+ <flag name="system-mpmath">Use mpmath from portage instead of the bundled one</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">sympy</remote-id>
+ <remote-id type="github">sympy/sympy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/sympy/sympy-0.7.4.1.ebuild b/dev-python/sympy/sympy-0.7.4.1.ebuild
new file mode 100644
index 00000000000..939beb11baa
--- /dev/null
+++ b/dev-python/sympy/sympy-0.7.4.1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1 eutils virtualx
+
+DESCRIPTION="Computer Algebra System in pure Python"
+HOMEPAGE="http://sympy.org"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.gz
+ http://dev.gentoo.org/~bicatali/distfiles/${P}-system-mpmath.patch.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x64-macos"
+IUSE="doc examples gtk imaging ipython latex mathml opengl pdf png pyglet +system-mpmath test texmacs theano"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ $(python_gen_cond_dep '>=dev-python/pexpect-2.0[${PYTHON_USEDEP}]' python2_7)
+ imaging? ( virtual/python-imaging[${PYTHON_USEDEP}] )
+ ipython? ( dev-python/ipython[${PYTHON_USEDEP}] )
+ latex? (
+ virtual/latex-base
+ dev-texlive/texlive-fontsextra
+ png? ( app-text/dvipng )
+ pdf? ( app-text/ghostscript-gpl )
+ )
+ mathml? (
+ dev-libs/libxml2:2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-libs/libxslt[${PYTHON_USEDEP}]' python2_7)
+ gtk? ( x11-libs/gtkmathview[gtk] )
+ )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )
+ pyglet? ( $(python_gen_cond_dep 'dev-python/pyglet[${PYTHON_USEDEP}]' python2_7) )
+ system-mpmath? ( >=dev-python/mpmath-0.18[${PYTHON_USEDEP}] )
+ texmacs? ( app-office/texmacs )
+ theano? ( $(python_gen_cond_dep 'dev-python/theano[${PYTHON_USEDEP}]' python2_7) )
+"
+
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND} dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use system-mpmath; then
+ rm -r sympy/mpmath doc/src/modules/mpmath || die
+ epatch "${WORKDIR}"/${P}-system-mpmath.patch
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ PYTHONPATH="." distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ export XDG_CONFIG_HOME="${T}/config-dir"
+ mkdir "${XDG_CONFIG_HOME}" || die
+ chmod 0700 "${XDG_CONFIG_HOME}" || die
+ emake -C doc html cheatsheet
+ fi
+}
+
+python_test() {
+ VIRTUALX_COMMAND="./setup.py" virtualmake test
+}
+
+python_install() {
+ PYTHONPATH="." distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/. ) && \
+ dodoc doc/_build/cheatsheet/cheatsheet.pdf
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+
+ if use texmacs; then
+ exeinto /usr/libexec/TeXmacs/bin/
+ doexe data/TeXmacs/bin/tm_sympy
+ insinto /usr/share/TeXmacs/plugins/sympy/
+ doins -r data/TeXmacs/progs
+ fi
+}
diff --git a/dev-python/sympy/sympy-0.7.6.ebuild b/dev-python/sympy/sympy-0.7.6.ebuild
new file mode 100644
index 00000000000..fa8f6053c2b
--- /dev/null
+++ b/dev-python/sympy/sympy-0.7.6.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils virtualx
+
+DESCRIPTION="Computer Algebra System in pure Python"
+HOMEPAGE="http://sympy.org"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.gz
+ http://dev.gentoo.org/~grozin/${P}-system-mpmath.patch.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x64-macos"
+IUSE="doc examples gtk imaging ipython latex mathml opengl pdf png pyglet +system-mpmath test texmacs theano"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ doc? ( python_targets_python2_7 )"
+
+RDEPEND="
+ $(python_gen_cond_dep '>=dev-python/pexpect-2.0[${PYTHON_USEDEP}]' python2_7)
+ imaging? ( virtual/python-imaging[${PYTHON_USEDEP}] )
+ ipython? ( dev-python/ipython[${PYTHON_USEDEP}] )
+ latex? (
+ virtual/latex-base
+ dev-texlive/texlive-fontsextra
+ png? ( app-text/dvipng )
+ pdf? ( app-text/ghostscript-gpl )
+ )
+ mathml? (
+ dev-libs/libxml2:2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-libs/libxslt[${PYTHON_USEDEP}]' python2_7)
+ gtk? ( x11-libs/gtkmathview[gtk] )
+ )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )
+ pyglet? ( $(python_gen_cond_dep 'dev-python/pyglet[${PYTHON_USEDEP}]' python2_7) )
+ system-mpmath? ( >=dev-python/mpmath-0.18[${PYTHON_USEDEP}] )
+ texmacs? ( app-office/texmacs )
+ theano? ( $(python_gen_cond_dep 'dev-python/theano[${PYTHON_USEDEP}]' python2_7) )
+"
+
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND} dev-python/pytest[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/${P}-doc-makefile.patch
+ if use system-mpmath; then
+ rm -r sympy/mpmath doc/src/modules/mpmath || die
+ epatch "${WORKDIR}"/${P}-system-mpmath.patch
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ PYTHONPATH="." distutils-r1_python_compile
+}
+
+python_compile_all() {
+ if use doc; then
+ export XDG_CONFIG_HOME="${T}/config-dir"
+ mkdir "${XDG_CONFIG_HOME}" || die
+ chmod 0700 "${XDG_CONFIG_HOME}" || die
+ emake -j1 -C doc html info cheatsheet
+ fi
+}
+
+python_test() {
+ VIRTUALX_COMMAND="./setup.py" virtualmake test
+}
+
+python_install() {
+ PYTHONPATH="." distutils-r1_python_install
+}
+
+python_install_all() {
+ local DOCS=( AUTHORS README.rst )
+ use doc &&\
+ DOCS=( ${DOCS[*]} doc/_build/cheatsheet/cheatsheet.pdf doc/_build/cheatsheet/combinatoric_cheatsheet.pdf ) &&\
+ local HTML_DOCS=( doc/_build/html/. ) &&\
+ doinfo doc/_build/texinfo/${PN}.info
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+
+ if use texmacs; then
+ exeinto /usr/libexec/TeXmacs/bin/
+ doexe data/TeXmacs/bin/tm_sympy
+ insinto /usr/share/TeXmacs/plugins/sympy/
+ doins -r data/TeXmacs/progs
+ fi
+}
diff --git a/dev-python/tablib/Manifest b/dev-python/tablib/Manifest
new file mode 100644
index 00000000000..5812f34a0ff
--- /dev/null
+++ b/dev-python/tablib/Manifest
@@ -0,0 +1,2 @@
+DIST tablib-0.10.0.tar.gz 724961 SHA256 41c2dad7f491f5557e22783a9af81bed62f7b6fb0d7afd4c2ee301f3eb428c93 SHA512 1582e574297386d20908aee00eeef415258fbcfe5387e6bbcb3a0e497662e7f107c35596624ca31b2b6ad49045a7a388ddb6f64171b9eb2a1b386324a7b29b47 WHIRLPOOL 39b3d792858a9ce08e6f0276a070575c2c3546e3377b15d98b130a288ecdc3c91ea671fa43790928aa4ee641616ee6fc1b3a7c008c0c40d243b2338e1892b0b8
+DIST tablib-0.9.11.tar.gz 571410 SHA256 05d7a1bcf5e723f1051b87bc4a699fce6f5a3fa158d91308c478ec7cd74290fd SHA512 bdc11b8d54c5d9edb7ac980859cdbb932162b1db5161c582a141b2a6a5b8f0742f3d55f248d3e4e5b4173727a5916af385b607ce807f7d2e4402b7ef62c5bad0 WHIRLPOOL 61a5bf5e26d9b2999857597dd4574f76b3fdc0762f86588e539bd6a70109ea464a7ff0f07145592e3ddcf1712df13fd6defbc9fb9a9c5a1ae558c870df0da82a
diff --git a/dev-python/tablib/metadata.xml b/dev-python/tablib/metadata.xml
new file mode 100644
index 00000000000..f253786e7ca
--- /dev/null
+++ b/dev-python/tablib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">tablib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tablib/tablib-0.10.0.ebuild b/dev-python/tablib/tablib-0.10.0.ebuild
new file mode 100644
index 00000000000..e2b109b0dd3
--- /dev/null
+++ b/dev-python/tablib/tablib-0.10.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A format-agnostic tabular dataset library written in Python"
+HOMEPAGE="http://python-tablib.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/ujson[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/tablib/tablib-0.9.11.ebuild b/dev-python/tablib/tablib-0.9.11.ebuild
new file mode 100644
index 00000000000..b0b029efe61
--- /dev/null
+++ b/dev-python/tablib/tablib-0.9.11.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A format-agnostic tabular dataset library written in Python"
+HOMEPAGE="http://python-tablib.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/ujson[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/tabulate/Manifest b/dev-python/tabulate/Manifest
new file mode 100644
index 00000000000..b0f127b6942
--- /dev/null
+++ b/dev-python/tabulate/Manifest
@@ -0,0 +1,3 @@
+DIST tabulate-0.7.2.tar.gz 19792 SHA256 532ccab8d9e4659a5f016d84814df86cc04763785e9de2739e890d956dc82d8f SHA512 49cbaf26004032889743937615a6f27a0728016013d81a3a0dfea0d3b25904aed333e59e697fb5040a61d68dfa6c8f8e7c1dd0b0ac4b470f424a26e62bf0a5d8 WHIRLPOOL 30cf8386c5961e3c0674e1c4b490cc21789644d6ad37e0dd9cdb46608220a26fd377b2ed8c34522c7dd8284692287c713b4bed58b229541cfb7aecc5d74c9ca7
+DIST tabulate-0.7.3.tar.gz 22315 SHA256 8a59a61ed6ddfdb009f15917e0f006cc5842f9daa72c519593b7a095e645532a SHA512 1932627e50f00caa14b8a393dd005cf5cc096c80918c4f943526560c0409561e9f8063e4ca0610b1c7e9006119ba6f56294c3b256d1ba60c1c52ea7da62ad67b WHIRLPOOL 77f8794536ab4a72eb32708296f24c68889877228cc9d4735ec177cf5e82b0bdd17cd46854e2a3ebf84b7295b897b6c171a842faf22538f157b7b681e1124ef0
+DIST tabulate-0.7.5.tar.gz 29844 SHA256 9071aacbd97a9a915096c1aaf0dc684ac2672904cd876db5904085d6dac9810e SHA512 dfc79e5fc2774520c117c4a2ee65ebe38f65430bda19697d443893a6eaad117de56c4b4c5157cdb8b09871c4eb452bc0b040b331602b6ab547b4326eb5c145eb WHIRLPOOL 719d507db5796960535c56e15f472130830715433f620bd92cb8c521a9ea58780286bf0f5f6fc32abe357cc185053d68505381e32b8e75c9334d5b5965ee85f2
diff --git a/dev-python/tabulate/metadata.xml b/dev-python/tabulate/metadata.xml
new file mode 100644
index 00000000000..e503ed4a5b7
--- /dev/null
+++ b/dev-python/tabulate/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">tabulate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tabulate/tabulate-0.7.2.ebuild b/dev-python/tabulate/tabulate-0.7.2.ebuild
new file mode 100644
index 00000000000..916d1514d58
--- /dev/null
+++ b/dev-python/tabulate/tabulate-0.7.2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pretty-print tabular data"
+HOMEPAGE="https://pypi.python.org/pypi/tabulate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? ( virtual/funcsigs[${PYTHON_USEDEP}] )
+"
+
+# Missing something:
+#
+# from common import assert_equal
+RESTRICT=test
+
+python_test() {
+ local testcase
+ for testcase in test/*py; do
+ ${PYTHON} ${testcase} || die
+ done
+}
diff --git a/dev-python/tabulate/tabulate-0.7.3.ebuild b/dev-python/tabulate/tabulate-0.7.3.ebuild
new file mode 100644
index 00000000000..7776a856ad5
--- /dev/null
+++ b/dev-python/tabulate/tabulate-0.7.3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pretty-print tabular data"
+HOMEPAGE="https://pypi.python.org/pypi/tabulate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? ( virtual/funcsigs[${PYTHON_USEDEP}] )
+"
+
+# Missing something:
+#
+# from common import assert_equal
+RESTRICT=test
+
+python_test() {
+ local testcase
+ for testcase in test/*py; do
+ ${PYTHON} ${testcase} || die
+ done
+}
diff --git a/dev-python/tabulate/tabulate-0.7.5.ebuild b/dev-python/tabulate/tabulate-0.7.5.ebuild
new file mode 100644
index 00000000000..7776a856ad5
--- /dev/null
+++ b/dev-python/tabulate/tabulate-0.7.5.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pretty-print tabular data"
+HOMEPAGE="https://pypi.python.org/pypi/tabulate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ test? ( virtual/funcsigs[${PYTHON_USEDEP}] )
+"
+
+# Missing something:
+#
+# from common import assert_equal
+RESTRICT=test
+
+python_test() {
+ local testcase
+ for testcase in test/*py; do
+ ${PYTHON} ${testcase} || die
+ done
+}
diff --git a/dev-python/tagpy/Manifest b/dev-python/tagpy/Manifest
new file mode 100644
index 00000000000..4eab93223ab
--- /dev/null
+++ b/dev-python/tagpy/Manifest
@@ -0,0 +1,2 @@
+DIST tagpy-0.94.8.tar.gz 151986 SHA256 56eab8dd81510f8af18e19375a0ffd5cd25c8e555104be46a92c3dc08634a0dc SHA512 430ae545065e5358dab6021a47b3b176934bc0901058daace35f98b645f7b087859930566d951c30e0e03d91ad46771a5bddc2a6f48a7196cf66b994699b39f1 WHIRLPOOL 164a2c56f86c7174976c9c5d55cf4097a0b992809812524a63a6c2bf4476d189fdb8dad01431ce2b62337a57d25efea90081a2291bb396345dac15f79a3d3056
+DIST tagpy-2013.1.tar.gz 151463 SHA256 80481c78ce34878e7a1f3231acd781a3bf1b0b569c70ce0e8d63af58061152f4 SHA512 4068b33fcbee2d5037149fda3ad0b256a31187ee35146392d0e187acb1d8e57c249da5356cb396cb9f027ed47ff44016466a1faaea0912494535c631f8271d58 WHIRLPOOL b47f349bc7f328ee4c18856e7f817f35868529afa0b7a820ec614cb003b3f4c4c84fabc4bd6c5a93ce12d0721e9127cf0dc806df4977fbb505934b9ba5233c20
diff --git a/dev-python/tagpy/files/tagpy-0.94.8-taglib-1.8_compat.patch b/dev-python/tagpy/files/tagpy-0.94.8-taglib-1.8_compat.patch
new file mode 100644
index 00000000000..084ea983a6d
--- /dev/null
+++ b/dev-python/tagpy/files/tagpy-0.94.8-taglib-1.8_compat.patch
@@ -0,0 +1,29 @@
+https://github.com/inducer/tagpy/commit/d0759c0ec7d24ae8d1af395a1032521eb00b4d1f
+https://github.com/inducer/tagpy/commit/813ec4f03bb4411c7ffd15dcb3974da04a3f109c
+
+--- tagpy-0.94.8/src/wrapper/id3.cpp
++++ tagpy-0.94.8/src/wrapper/id3.cpp
+@@ -79,6 +79,10 @@
+ MF_OL(setVolumeAdjustment, 1, 2);
+ MF_OL(setPeakVolume, 1, 2);
+
++ #if (TAGPY_TAGLIB_HEX_VERSION >= 0x10800)
++ MF_OL(render, 0, 1)
++ #endif
++
+ // -------------------------------------------------------------
+ // MPEG
+ // -------------------------------------------------------------
+@@ -212,7 +216,11 @@
+ .DEF_SIMPLE_METHOD(removeFrame)
+ .DEF_SIMPLE_METHOD(removeFrames)
+
+- .DEF_SIMPLE_METHOD(render)
++ #if (TAGPY_TAGLIB_HEX_VERSION >= 0x10800)
++ .DEF_OVERLOADED_METHOD(render, ByteVector (cl::*)(int) const)
++ #else
++ .DEF_SIMPLE_METHOD(render)
++ #endif
+ ;
+ }
+
diff --git a/dev-python/tagpy/metadata.xml b/dev-python/tagpy/metadata.xml
new file mode 100644
index 00000000000..92c517ef03a
--- /dev/null
+++ b/dev-python/tagpy/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">TagPy is a Python crust (or a set of Python bindings) for Scott
+ Wheeler's TagLib. It builds upon Boost.Python, a wrapper generation
+ library which is part of the Boost set of C++ libraries.</longdescription>
+ <upstream>
+ <remote-id type="pypi">tagpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tagpy/tagpy-0.94.8-r1.ebuild b/dev-python/tagpy/tagpy-0.94.8-r1.ebuild
new file mode 100644
index 00000000000..bf0810f2c3a
--- /dev/null
+++ b/dev-python/tagpy/tagpy-0.94.8-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.5 3.* *-jython 2.7-pypy-*"
+
+inherit distutils eutils
+
+DESCRIPTION="Python Bindings for TagLib"
+HOMEPAGE="http://mathema.tician.de//software/tagpy http://pypi.python.org/pypi/tagpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 ~sparc x86"
+IUSE="examples"
+
+RDEPEND=">=dev-libs/boost-1.48[python]
+ >=media-libs/taglib-1.4"
+DEPEND="${RDEPEND}
+ dev-python/setuptools"
+
+DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES="1"
+
+src_prepare() {
+ # bug #440740
+ epatch "${FILESDIR}"/${P}-taglib-1.8_compat.patch
+
+ # Disable broken check for Distribute.
+ sed -e "s/if 'distribute' not in setuptools.__file__:/if False:/" -i aksetup_helper.py
+
+ distutils_src_prepare
+}
+
+src_configure() {
+ configuration() {
+ "$(PYTHON)" configure.py \
+ --taglib-inc-dir="${EPREFIX}/usr/include/taglib" \
+ --boost-python-libname="boost_python-${PYTHON_ABI}-mt"
+ }
+ python_execute_function -s configuration
+}
+
+src_install() {
+ distutils_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins test/*
+ fi
+}
diff --git a/dev-python/tagpy/tagpy-2013.1.ebuild b/dev-python/tagpy/tagpy-2013.1.ebuild
new file mode 100644
index 00000000000..ccea56b1bfd
--- /dev/null
+++ b/dev-python/tagpy/tagpy-2013.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Bindings for TagLib"
+HOMEPAGE="http://mathema.tician.de//software/tagpy http://pypi.python.org/pypi/tagpy"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND=">=dev-libs/boost-1.49.0[python]
+ >=media-libs/taglib-1.7.2"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_configure() {
+ "${PYTHON}" configure.py \
+ --taglib-inc-dir="${EPREFIX}/usr/include/taglib" \
+ --boost-python-libname="boost_python-${EPYTHON#python}"
+ distutils-r1_python_configure
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( test/* )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/taskflow/Manifest b/dev-python/taskflow/Manifest
new file mode 100644
index 00000000000..05f73f617e2
--- /dev/null
+++ b/dev-python/taskflow/Manifest
@@ -0,0 +1,6 @@
+DIST taskflow-0.1.3.tar.gz 144130 SHA256 ab81452748c9fdb84e59525a58acff202b698f467d2d0290bf29c78774bfd796 SHA512 61f445146bf361d47a4519298f9c70ca07c3a644df9ef758a1113eea297caaeed9fe4222ea37dccbfe952f1416d0851501ea43cf6de3cca8f4cc0e37ff4cd30a WHIRLPOOL de6b32ef22384ae0d49c0a1eafa09098ef52a5a8fd12070ff60d85081001674a346b34c61683089f9c41f8f17c75ca15e31e0308a4e2689e9f09f0347cef8864
+DIST taskflow-0.10.0.tar.gz 672492 SHA256 7278b8abb3f359f8ecf3e80bd0ae82c1992679f7f5f0ba1ce0125f18b47e8da7 SHA512 4e0afed3ce7a3ed1b0d3dfbbbd253e3983ed5e1268308809504c2428d8ff7e4870a5bf3950ccc839672fa967560d96bf7908cdfad2efe438f164079d5ef435f5 WHIRLPOOL 6a95e789aade37c47aa3d2fc2877db8278887af90a28e1fc03f5a0d588aa5c83940dda5209176d0c292ce0f98ffa3a5969c6e75060cf9d73630f51a60f58df05
+DIST taskflow-0.10.1.tar.gz 672564 SHA256 717d6666e5dabcce615745d15a89f75f4bebc062b82288ebd54d657a2a15aeea SHA512 62178bc55f0bf3609a540a723c6955a793fbcc0ab5353929ffc4d54e4d3683ba19dd044773554ff3a8dcc145699fed48307c69432e650f08cbb9b207f11c87fd WHIRLPOOL 3c8e37c9d39105aaa3177f6f0ce5b2ef234a9183419d13cfb2bb069a2ec47832ce9d192ee80915082f9a5531f16f364bdb0bfdaa0d838c302fbc2e459e5fdd7f
+DIST taskflow-0.2.tar.gz 238352 SHA256 7cfbf08bfd52b9f652294cc914ad0e6032c209e5ae00a7cdbd2ac7ec2508d147 SHA512 6082ef47617d10157e4f91581dcebcd7f21d2d30ab687545c2c1af0bfa3471b27c96de87adafa7a54fe8bbd168500314f87ddb86db4a36b07d8aaf8e8cccb4eb WHIRLPOOL 9cf24c034b705a1ffc60d6a676d6a1e6aa7d480faf898891a44110a35ddf4bec6f7e0bf94462cefa7a7e4ec5ef2f544f01dcdc21a8e84c17ad8a0eb4762f033b
+DIST taskflow-0.5.0.tar.gz 415045 SHA256 1df392fba696b978be62364abc4d14bec3a4fd9007974631a2405356a43482ce SHA512 d7a0be2cab55c17ed572391bbe8c9d833272897765bb824de1db14f4e056010d736a54098986ea6c07c419b4ca3f62d2d403c884e8fb182bc9b6bf64124ebc74 WHIRLPOOL 82083edb9df4b2c7bb515eedaf6931d0fe83b93bd08fd177c5d0b3cd4dbe6f8946cdfc1f06f37faf61dc3e1394b93630ef739cef2580079feaf677b7b188ed1c
+DIST taskflow-0.7.1.tar.gz 631738 SHA256 bf1f833184c12787d09ab1b587b41d4feec631f2b9d7fc55e63ef3098e74ad5b SHA512 f3e06bec83c5ef963a386dafa80239b48595e1a3ed9857a4dabc3bf41114de49cc1d5282ae11508164b926a16c721be7e9d25bf51be0f86b7f7dda8ec5817f59 WHIRLPOOL d4f3e55c479437a2f373ca6f1c559c474ae7c935e79f9b7c26e6fd978c67bf58c63dccc7c755b33d9ccb7bbeab2ac7440b783222a0291e5ac93d02d972ea0a56
diff --git a/dev-python/taskflow/metadata.xml b/dev-python/taskflow/metadata.xml
new file mode 100644
index 00000000000..1a22092d6b2
--- /dev/null
+++ b/dev-python/taskflow/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A library to do [jobs, tasks, flows] in a HA manner
+ using different backends to be used with OpenStack projects.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">taskflow</remote-id>
+ <remote-id type="github">openstack/taskflow</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/taskflow/taskflow-0.1.3.ebuild b/dev-python/taskflow/taskflow-0.1.3.ebuild
new file mode 100644
index 00000000000..85a7efa30d8
--- /dev/null
+++ b/dev-python/taskflow/taskflow-0.1.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+#not dealing with yet another dep
+RESTRICT="test"
+
+DESCRIPTION="A library to do [jobs, tasks, flows] in a HA manner using different backends"
+HOMEPAGE="https://github.com/openstack/taskflow"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/networkx-1.8[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.3[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/taskflow/taskflow-0.10.0.ebuild b/dev-python/taskflow/taskflow-0.10.0.ebuild
new file mode 100644
index 00000000000..e37823b548a
--- /dev/null
+++ b/dev-python/taskflow/taskflow-0.10.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to do [jobs, tasks, flows] in a HA manner using different backends"
+HOMEPAGE="https://github.com/openstack/taskflow"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/kombu-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/zake-0.1.6[${PYTHON_USEDEP}]
+ >=dev-python/kazoo-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/alembic-0.7.2[${PYTHON_USEDEP}]
+ dev-python/psycopg[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ dev-python/enum34[$(python_gen_usedep 'python2_7' 'python3_3')]
+ >=dev-python/networkx-1.8[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # this is py2.4-6 only so remove it
+ sed -i '/ordereddict/d' requirements*
+ # only needed by py2.7 and included by the virtual
+ sed -i '/futures/d' requirements*
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "failed testsuite under python2.7"
+}
diff --git a/dev-python/taskflow/taskflow-0.10.1.ebuild b/dev-python/taskflow/taskflow-0.10.1.ebuild
new file mode 100644
index 00000000000..e37823b548a
--- /dev/null
+++ b/dev-python/taskflow/taskflow-0.10.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to do [jobs, tasks, flows] in a HA manner using different backends"
+HOMEPAGE="https://github.com/openstack/taskflow"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/kombu-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/zake-0.1.6[${PYTHON_USEDEP}]
+ >=dev-python/kazoo-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/alembic-0.7.2[${PYTHON_USEDEP}]
+ dev-python/psycopg[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ dev-python/enum34[$(python_gen_usedep 'python2_7' 'python3_3')]
+ >=dev-python/networkx-1.8[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.3.0[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # this is py2.4-6 only so remove it
+ sed -i '/ordereddict/d' requirements*
+ # only needed by py2.7 and included by the virtual
+ sed -i '/futures/d' requirements*
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "failed testsuite under python2.7"
+}
diff --git a/dev-python/taskflow/taskflow-0.2.ebuild b/dev-python/taskflow/taskflow-0.2.ebuild
new file mode 100644
index 00000000000..d39dd0e5e42
--- /dev/null
+++ b/dev-python/taskflow/taskflow-0.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to do [jobs, tasks, flows] in a HA manner using different backends"
+HOMEPAGE="https://github.com/openstack/taskflow"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/keyring-2.1[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] )"
+RDEPEND=">=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
+ >=dev-python/networkx-1.8[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.3[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/taskflow/taskflow-0.5.0.ebuild b/dev-python/taskflow/taskflow-0.5.0.ebuild
new file mode 100644
index 00000000000..472429c42a5
--- /dev/null
+++ b/dev-python/taskflow/taskflow-0.5.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to do [jobs, tasks, flows] in a HA manner using different backends"
+HOMEPAGE="https://github.com/openstack/taskflow"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/kazoo-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/alembic-0.6.4[${PYTHON_USEDEP}]
+ dev-python/psycopg[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}] )"
+RDEPEND="
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/networkx-1.8[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/futures-2.1.6[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.0.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ testr init
+ testr run --parallel || die "testsuite failed under python2.7"
+}
diff --git a/dev-python/taskflow/taskflow-0.7.1.ebuild b/dev-python/taskflow/taskflow-0.7.1.ebuild
new file mode 100644
index 00000000000..1b4cb7c3b1a
--- /dev/null
+++ b/dev-python/taskflow/taskflow-0.7.1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to do [jobs, tasks, flows] in a HA manner using different backends"
+HOMEPAGE="https://github.com/openstack/taskflow"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hacking-0.10.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.11[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/kombu-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/kazoo-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/alembic-0.7.2[${PYTHON_USEDEP}]
+ dev-python/psycopg[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ )"
+RDEPEND="
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/networkx-1.8[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.1.0[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.2.0[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # this is py2.4-6 only so remove it
+ sed -i '/ordereddict/d' requirements*
+ # only needed by py2.7 and included by the virtual
+ sed -i '/futures/d' requirements*
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ testr init
+ testr run --parallel || die "failed testsuite under python2.7"
+}
diff --git a/dev-python/tdaemon/Manifest b/dev-python/tdaemon/Manifest
new file mode 100644
index 00000000000..c6afc92ea5e
--- /dev/null
+++ b/dev-python/tdaemon/Manifest
@@ -0,0 +1 @@
+DIST tdaemon-0.1.6.tar.gz 37206 SHA256 9f2ed243f1d4b20bd54da505912c82c65dd3cbaf3e247d17a15f42dd0a3e5d56 SHA512 b0d49cc3ca4acef8bdb38cde4c1d17cd973215a8cedeb5716831ea129e8fc69a0c890eda7740a35a238ce39272278d8a80c3e4fc26099317bd7b86e80b36def5 WHIRLPOOL 39f72d4e381cf836b1d288a4d2807383e095241268b52cc8450c2d118182ee3befda5f9b5138f0f3ed9e3998ef4b1718c1ac02c86529df44bd3c17f8a3771dc4
diff --git a/dev-python/tdaemon/metadata.xml b/dev-python/tdaemon/metadata.xml
new file mode 100644
index 00000000000..75c15f48523
--- /dev/null
+++ b/dev-python/tdaemon/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="coverage">Enable code coverage support</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">tampakrap/tdaemon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tdaemon/tdaemon-0.1.6.ebuild b/dev-python/tdaemon/tdaemon-0.1.6.ebuild
new file mode 100644
index 00000000000..a8a3d2876d7
--- /dev/null
+++ b/dev-python/tdaemon/tdaemon-0.1.6.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Test Daemon"
+HOMEPAGE="http://github.com/brunobord/tdaemon"
+SRC_URI="https://github.com/tampakrap/tdaemon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="coverage"
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="dev-python/notify-python[${PYTHON_USEDEP}]
+ coverage? ( dev-python/coverage[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ if "${PYTHON}" -m test; then
+ einfo "Test passed under ${EPYTHON}"
+ else
+ die "Test failed under ${EPYTHON}"
+ fi
+}
diff --git a/dev-python/tempest-lib/Manifest b/dev-python/tempest-lib/Manifest
new file mode 100644
index 00000000000..8217374defd
--- /dev/null
+++ b/dev-python/tempest-lib/Manifest
@@ -0,0 +1,3 @@
+DIST tempest-lib-0.3.0.tar.gz 53341 SHA256 0b2fdfe904b6bea12f5572f03307623ad43256694c17a5bd92ee837d8698d3c5 SHA512 e03617bd5e19b5872e4ae1e60c0eef2dfe325646f0b9d1c518f668bd7d054866b79aed494820f6ca99ee3d0735cc807aae7942f5f343e4d6c663368197be0f2c WHIRLPOOL 5f06bbaeeeb95b4724878481ddb500e1f7eaca98110cbcd2fe768917ed986656e64fae2e78e97cb099b776dbe069ad50f5c7717927ee78a5bf54f4638e8c9eec
+DIST tempest-lib-0.4.0.tar.gz 68776 SHA256 b1d00f9da6d14b5ffac87710efd9d533361b8af11003728ee3b47591358f17b0 SHA512 f0f959de4f003971929c015a5a020921f9338805d9f1109e8d42ec9b5eb43702858182c5eaf43bc1b1c4006a01f96243ec6aad9fa9b93823f04b499ad09f5c81 WHIRLPOOL 01b147dd7f5929407c1d01dc8ad10ae2cbd6c0f2f08e628689025cb649dec9446d881245ab81d1370a7ff93c4ab0d5b9fb4c7ac0837b5ba3ad0c8b7b90bf46a8
+DIST tempest-lib-0.5.0.tar.gz 74579 SHA256 696c6ccbbe13236096a94176ba2970e44853962c5ab93186286316696f384b29 SHA512 3408cabec205c6c1b830a20a8e96333b69afeeaad35d5342aae8c13e01b5df177958fe2050eb24a37d572a495411f04675e9d9727f6ae34aed22093c9621cde4 WHIRLPOOL 1b8f138bd45a168e2c203ff31de19ddc0aecda8d377925223798d01de3a0ff16f55fb874b1297b7a80178ae4f8948528a0e58b8d2388d464b8afd56b30d8991c
diff --git a/dev-python/tempest-lib/metadata.xml b/dev-python/tempest-lib/metadata.xml
new file mode 100644
index 00000000000..074404a5ec3
--- /dev/null
+++ b/dev-python/tempest-lib/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+tempest-lib is a library of common functionality that was originally in tempest (or similar in scope to tempest)
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">tempest-lib</remote-id>
+ <remote-id type="github">openstack/tempest-lib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tempest-lib/tempest-lib-0.3.0.ebuild b/dev-python/tempest-lib/tempest-lib-0.3.0.ebuild
new file mode 100644
index 00000000000..c8683792591
--- /dev/null
+++ b/dev-python/tempest-lib/tempest-lib-0.3.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to assist in creating functional or integrated test suites for OpenStack projects."
+HOMEPAGE="http://pypi.python.org/pypi/tempest-lib https://github.com/openstack/tempest-lib"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-0.1.0[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests tempest_lib/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/tempest-lib/tempest-lib-0.4.0.ebuild b/dev-python/tempest-lib/tempest-lib-0.4.0.ebuild
new file mode 100644
index 00000000000..a0b6496f727
--- /dev/null
+++ b/dev-python/tempest-lib/tempest-lib-0.4.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to assist in creating functional or integrated test suites for OpenStack projects."
+HOMEPAGE="http://pypi.python.org/pypi/tempest-lib https://github.com/openstack/tempest-lib"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-0.4.0[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests tempest_lib/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/tempest-lib/tempest-lib-0.5.0.ebuild b/dev-python/tempest-lib/tempest-lib-0.5.0.ebuild
new file mode 100644
index 00000000000..ef71f314705
--- /dev/null
+++ b/dev-python/tempest-lib/tempest-lib-0.5.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A library to assist in creating functional or integrated test suites for OpenStack projects."
+HOMEPAGE="http://pypi.python.org/pypi/tempest-lib https://github.com/openstack/tempest-lib"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
+ >=dev-python/paramiko-1.13.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-1.0.0[${PYTHON_USEDEP}]"
+DEPEND="
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
+ <dev-python/pbr-1.0[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
+ >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-1.5.1[${PYTHON_USEDEP}]
+ >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.36[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/ddt-0.4.0[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests tempest_lib/tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/tempita/Manifest b/dev-python/tempita/Manifest
new file mode 100644
index 00000000000..b6aaba6aa9c
--- /dev/null
+++ b/dev-python/tempita/Manifest
@@ -0,0 +1 @@
+DIST tempita-0.5.3.tar.gz 12707 SHA256 38392bb708a10128419f75fa9120a6d2c8d137013b353968e5008a77a5c7a2ca SHA512 43bafd42ab0c07bec636d637bfcd42053559d188e13bccc66527dc5f735fd9c3ec30fcf29f3e650d88315fe8f2eb2c5af280f51d2c64db099e08d8a70969a1c4 WHIRLPOOL 0c78ac7e92b16556e295fb807e87665977ea2df14211c3254efcf3ffade8a1318a89e5887dfa3ce44ac7cb6c608a35a51f70856f5e56c1e07c09a9f0fa9c6388
diff --git a/dev-python/tempita/metadata.xml b/dev-python/tempita/metadata.xml
new file mode 100644
index 00000000000..0a1092e0a2b
--- /dev/null
+++ b/dev-python/tempita/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Tempita</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tempita/tempita-0.5.3.ebuild b/dev-python/tempita/tempita-0.5.3.ebuild
new file mode 100644
index 00000000000..d8c68e9c414
--- /dev/null
+++ b/dev-python/tempita/tempita-0.5.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Tempita"
+MY_P="${MY_PN}-${PV}dev"
+
+DESCRIPTION="A very small text templating language"
+HOMEPAGE="http://pythonpaste.org/tempita http://pypi.python.org/pypi/Tempita"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86"
+IUSE=""
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND=""
+
+S="${WORKDIR}/${MY_PN}-${PV}dev"
+# Source for tests incomplete
diff --git a/dev-python/termcolor/Manifest b/dev-python/termcolor/Manifest
new file mode 100644
index 00000000000..adb65379e9c
--- /dev/null
+++ b/dev-python/termcolor/Manifest
@@ -0,0 +1 @@
+DIST termcolor-1.1.0.tar.gz 3912 SHA256 1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b SHA512 4bd06bf4405a9ef6c005cd4d159ef602f7fc7fccb3e57586da1187c402f4d0b9051ef930cae423065c51ff4be8a22ceae556a61a6b3c8c519d623c066c340b53 WHIRLPOOL 49b7d1bd89bc1eb579c6f54f176267a547ba687b27899045d3240f93a797a103048e88a40501aa6c52c487312df8e7053811b08791923c4b18cfe7bf964c6640
diff --git a/dev-python/termcolor/metadata.xml b/dev-python/termcolor/metadata.xml
new file mode 100644
index 00000000000..e3fd6420d6d
--- /dev/null
+++ b/dev-python/termcolor/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ ANSII Color formatting for output in terminal.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">termcolor</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/termcolor/termcolor-1.1.0-r1.ebuild b/dev-python/termcolor/termcolor-1.1.0-r1.ebuild
new file mode 100644
index 00000000000..cc11b7b80b7
--- /dev/null
+++ b/dev-python/termcolor/termcolor-1.1.0-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="ANSII Color formatting for output in terminal"
+HOMEPAGE="http://pypi.python.org/pypi/termcolor"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/terminado/Manifest b/dev-python/terminado/Manifest
new file mode 100644
index 00000000000..95ea497a5f1
--- /dev/null
+++ b/dev-python/terminado/Manifest
@@ -0,0 +1 @@
+DIST terminado-0.5.tar.gz 10491 SHA256 63e893eff1ba84f1ee7c4bfcca7676ba1de6394538bb9aa80cbbc8866cb875b6 SHA512 8c53e2c8fa837c171a8790744770f41d4fc8fe15fe8abd28af17317950c615e4c75c22ab896fd98984fd9c2bbbc7798e5ffe319827d84eb77889bca63660e421 WHIRLPOOL 0e603e49a754a4c5fa68b1df3416a6355357ab5af6801968385525bb2df2a558ffe73030f1789610b731638b57d9d5c1a5661c86de93984f8e2047bf205925b1
diff --git a/dev-python/terminado/metadata.xml b/dev-python/terminado/metadata.xml
new file mode 100644
index 00000000000..501d5f659b9
--- /dev/null
+++ b/dev-python/terminado/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">terminado</remote-id>
+ <remote-id type="github">takluyver/terminado</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/terminado/terminado-0.5.ebuild b/dev-python/terminado/terminado-0.5.ebuild
new file mode 100644
index 00000000000..1009e17abad
--- /dev/null
+++ b/dev-python/terminado/terminado-0.5.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Terminals served to term.js using Tornado websockets"
+HOMEPAGE="https://pypi.python.org/pypi/terminado https://github.com/takluyver/terminado"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD-2"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/ptyprocess[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests --verbosity=3 || die
+}
diff --git a/dev-python/testfixtures/Manifest b/dev-python/testfixtures/Manifest
new file mode 100644
index 00000000000..38267a5ba93
--- /dev/null
+++ b/dev-python/testfixtures/Manifest
@@ -0,0 +1,3 @@
+DIST testfixtures-3.0.0.tar.gz 75303 SHA256 20e82e23ffc39bd7d55317f2e87e49aa33ac15142f2bd38fedde696ccaa9469f SHA512 9bc7e30cad6a0c932f23de49f9aff099cb4de824f20b4f98bf1fb4a7313d7ac8d763f7c8208bc0f5351dcd899daa3d2fbc18cdc2143c1b65cefbe0f3ba29df0c WHIRLPOOL 5d51daa288f0c31ce0547815b15f7242df4d3309f2c0845cfa36241ba6d16b151caa1924977a35ae9753c1243724d1aac74cda2b7f5e64e981c378fa6696a512
+DIST testfixtures-4.1.1.tar.gz 81356 SHA256 c61b13fd9cac0313e2aafd565a007860d83b218a138117ac421368d2896bc215 SHA512 08785961560218c3a06043158af8364b46b850c159a82e5fd05ccd88133786aed1a0ec9038ef0c0e36430853559e29fefca8f6bfee1b942730010cd3fb8e9ae4 WHIRLPOOL be548f4fa3bf9428cf683d229c9c4569ba2028a05aa284d803a282af293999fd38565f2b9701751c8f84d57faea6efd3a9e1e5ee5375b719957fe6dc7c4cbdf5
+DIST testfixtures-4.1.2.tar.gz 81689 SHA256 bc27063ac9bce80ac99fe315f2b34053b113ca420b6bbbaf0c19c49c09bb286a SHA512 bf5171b1e1918e88dd887a7dbca6c340e1c197224135e4080551d1830187aa868e53d8302751059da478e2452b1f68a49ae5fba206e48fec554e6d5f237ee5a4 WHIRLPOOL 8d10fb590bb31ff4b5f24f941c41349ac606d91bf62679f70356cddfbdedb7b64f9addca1a419432987a78ebd520ae5b7ce5ddfb043f6452c3e364f266854ed8
diff --git a/dev-python/testfixtures/files/docbuild.patch b/dev-python/testfixtures/files/docbuild.patch
new file mode 100644
index 00000000000..dcdef327054
--- /dev/null
+++ b/dev-python/testfixtures/files/docbuild.patch
@@ -0,0 +1,25 @@
+diff -ur testfixtures-3.0.0.orig/docs/conf.py testfixtures-3.0.0/docs/conf.py
+--- docs/conf.py 2011-09-23 16:55:53.000000000 +0800
++++ docs/conf.py 2014-06-30 15:36:43.591451878 +0800
+@@ -4,8 +4,7 @@
+ pkg_info = pkginfo.Develop(os.path.join(os.path.dirname(__file__),'..'))
+
+ extensions = [
+- 'sphinx.ext.autodoc',
+- 'sphinx.ext.intersphinx'
++ 'sphinx.ext.autodoc'
+ ]
+
+ intersphinx_mapping = {'http://docs.python.org': None}
+diff -ur testfixtures-3.0.0.orig/docs/Makefile testfixtures-3.0.0/docs/Makefile
+--- docs/Makefile 2011-07-19 00:43:59.000000000 +0800
++++ docs/Makefile 2014-06-30 15:36:31.703450934 +0800
+@@ -3,7 +3,7 @@
+
+ # You can set these variables from the command line.
+ SPHINXOPTS =
+-SPHINXBUILD = ../bin/sphinx-build
++SPHINXBUILD = /usr/bin/sphinx-build
+ PAPER =
+
+ # Internal variables.
diff --git a/dev-python/testfixtures/metadata.xml b/dev-python/testfixtures/metadata.xml
new file mode 100644
index 00000000000..740a54631c1
--- /dev/null
+++ b/dev-python/testfixtures/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">testfixtures</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/testfixtures/testfixtures-3.0.0.ebuild b/dev-python/testfixtures/testfixtures-3.0.0.ebuild
new file mode 100644
index 00000000000..088b0285f3f
--- /dev/null
+++ b/dev-python/testfixtures/testfixtures-3.0.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A collection of helpers and mock objects for unit tests and doc tests"
+HOMEPAGE="http://pypi.python.org/pypi/testfixtures/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND=" dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/pkginfo[${PYTHON_USEDEP}]' python2_7) )
+ test? ( dev-python/manuel[${PYTHON_USEDEP}] )"
+
+# Prevent un-needed download during build, fix Makefile for doc build
+PATCHES=( "${FILESDIR}"/docbuild.patch )
+
+python_prepare() {
+ # remove test that tests the stripped zope-component test_components.ComponentsTests
+ rm -f testfixtures/tests/test_components.py || die
+
+ distutils-r1_python_prepare
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test -v ${PN}/tests || die
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testfixtures/testfixtures-4.1.1.ebuild b/dev-python/testfixtures/testfixtures-4.1.1.ebuild
new file mode 100644
index 00000000000..269771843cf
--- /dev/null
+++ b/dev-python/testfixtures/testfixtures-4.1.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A collection of helpers and mock objects for unit tests and doc tests"
+HOMEPAGE="http://pypi.python.org/pypi/testfixtures/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/pkginfo[${PYTHON_USEDEP}]' python2_7 pypy ) )
+ test? ( dev-python/manuel[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/nose_fixes[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7)
+ )"
+
+python_prepare_all() {
+ # Makefile comes set pointing at a wrong location
+ sed -e 's:../bin/sphinx-build:/usr/bin/sphinx-build:' -i docs/Makefile || die
+ # Prevent un-needed download during build, fix Makefile for doc build
+ sed -e '/'sphinx.ext.intersphinx'/d' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_prepare() {
+ # remove test that tests the stripped zope-component test_components.ComponentsTests
+ rm -f testfixtures/tests/test_components.py || die
+
+ distutils-r1_python_prepare
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests ${PN}/tests || die
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testfixtures/testfixtures-4.1.2.ebuild b/dev-python/testfixtures/testfixtures-4.1.2.ebuild
new file mode 100644
index 00000000000..fd1a72d49ec
--- /dev/null
+++ b/dev-python/testfixtures/testfixtures-4.1.2.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A collection of helpers and mock objects for unit tests and doc tests"
+HOMEPAGE="http://pypi.python.org/pypi/testfixtures/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/pkginfo[${PYTHON_USEDEP}]' python2_7 pypy ) )
+ test? ( dev-python/manuel[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/nose_fixes[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7)
+ )"
+
+python_prepare_all() {
+ # Makefile comes set pointing at a wrong location
+ sed -e 's:../bin/sphinx-build:/usr/bin/sphinx-build:' -i docs/Makefile || die
+ # Prevent un-needed download during build, fix Makefile for doc build
+ sed -e '/'sphinx.ext.intersphinx'/d' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_prepare() {
+ # remove test that tests the stripped zope-component test_components.ComponentsTests
+ rm -f testfixtures/tests/test_components.py || die
+
+ distutils-r1_python_prepare
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests ${PN}/tests || die
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testify/Manifest b/dev-python/testify/Manifest
new file mode 100644
index 00000000000..884d8e0516c
--- /dev/null
+++ b/dev-python/testify/Manifest
@@ -0,0 +1,2 @@
+DIST testify-0.5.7.tar.gz 166954 SHA256 153796d3b20b2d8554e52af26a8c891e6f02dfd6cc7be29f9241dad244cff044 SHA512 410ac412306c11bba992b882624fcacdbff00e2865cd986c560d8b50ea8dff0ead8603b18f40414d8dbbe1f3ab9426e0f61170dc450927f6d2282e389800ff21 WHIRLPOOL 2cc958efea71bd475c698cee36e4f1bdb7197c8cb54c38efbf66927d5abc60e769a8995ae7fb4107fab8b74e4b05afcaf16e5c0aec9db3471ddbd771bafa3adf
+DIST testify-0.7.2.tar.gz 102858 SHA256 7c209530fbb67344fe8985012056116d7d8eadd6ff126f91c93aa19208fd3ec9 SHA512 4b470aabe1ada88ddaf89145c77dbc5c2d000c8e0fab431535c08b4ff05a04c12f215d4c05d678ba718fdf3295be74fef23041d01d3c05e0b9e2c43c5ab0ed1e WHIRLPOOL 37ff8d7068ba4569215e3df440186ef3149a5fde0e12ec5efefc5b666adf2958b11f4db18995b46536cbf504dadec48f00b5f38e524ae09eb815c8170b8cf669
diff --git a/dev-python/testify/metadata.xml b/dev-python/testify/metadata.xml
new file mode 100644
index 00000000000..24da195dd28
--- /dev/null
+++ b/dev-python/testify/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">testify</remote-id>
+ <remote-id type="github">Yelp/testify</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/testify/testify-0.5.7.ebuild b/dev-python/testify/testify-0.5.7.ebuild
new file mode 100644
index 00000000000..2e5e730293d
--- /dev/null
+++ b/dev-python/testify/testify-0.5.7.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Still appears to no support >=py3.3
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="A more pythonic replacement for the unittest module and nose"
+HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+python_prepare_all() {
+ # Correct typo in setup.py
+ sed -e 's:mock,:mock:' -i setup.py || die
+ # Correct use of local importing in test_ file
+ sed -e s':from .test_runner_subdir:from test.test_runner_subdir:' \
+ -e s':from .test_runner_bucketing:from test.test_runner_bucketing:' \
+ -i test/test_runner_test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ PYTHONPATH="${PYTHONPATH}:${S}"
+ for test in test/*_test.py;
+ do
+ "${PYTHON}" $test || die "test $test failed under ${EPYTHON}"
+ done
+}
diff --git a/dev-python/testify/testify-0.7.2.ebuild b/dev-python/testify/testify-0.7.2.ebuild
new file mode 100644
index 00000000000..ed7ef7659ce
--- /dev/null
+++ b/dev-python/testify/testify-0.7.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Still appears to not support >=py3.3
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="A more pythonic replacement for the unittest module and nose"
+HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.3[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+python_prepare_all() {
+ # Correct typo in setup.py
+ sed -e 's:mock,:mock:' -i setup.py || die
+
+ # Correct use of local importing in pertinent test_ files
+ sed -e s':from .test:from test:' \
+ -i test/test_runner_test.py || die
+
+ sed -e s':from .discovery:from discovery:' \
+ -i test/test_runner_server_test.py || die
+
+ sed -e s':from .test:from test:' \
+ -i test/test_runner_server_test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ einfo; einfo "Output reporting exceptions \"ImportError: No module named <module>\""
+ einfo "are instances of exceptions expected to be raised, similar to xfails by nose"; einfo""
+ for test in test/test_*_test.py;
+ do
+ "${PYTHON}" $test || die "test $test failed under ${EPYTHON}"
+ done
+}
diff --git a/dev-python/testrepository/Manifest b/dev-python/testrepository/Manifest
new file mode 100644
index 00000000000..c040589a9fc
--- /dev/null
+++ b/dev-python/testrepository/Manifest
@@ -0,0 +1,2 @@
+DIST testrepository-0.0.17.tar.gz 84255 SHA256 70b70e0ba6aacb44036ed5dcbdbe36008816fc7098c2e3e4891734fc09ecd36e SHA512 c5b7a0a0b6494166f85be86a85821d36922e754e02a487605b5e6cf2ae52ff1f9c37b48bd07f7acc1d9dc9450fcf17311f5ffb6bb8bd31d7a26f5c53de88f94d WHIRLPOOL 0fe9a003af396462d9aa73a73da2f0253fd247e4025ae9dc0047e3fdf02d872189eaf96416750206612419d048eeeb49699a54c6cf1b95fa66cc444b5fbd05fe
+DIST testrepository-0.0.18.tar.gz 84886 SHA256 ba15301c6ec6bf1b8e0dad10ac7313b11e17ceb8d28ec4a3625c9aaa766727fd SHA512 4e90db6364f77f464ae063020b016367529588f581af001c2564bf4babb264fc37bb7231413725211c6d483a269360d86201f81d2b24d7eb162dca2463d13c92 WHIRLPOOL c6ced39884ea731173b59a0cbd283d474b3a658e94e2f94a87b5b5e8461d82790cfda2d3e834d51e90b6e57299163cf2dc9ef2cb62440104ac6a046039196abb
diff --git a/dev-python/testrepository/metadata.xml b/dev-python/testrepository/metadata.xml
new file mode 100644
index 00000000000..741bc3417c1
--- /dev/null
+++ b/dev-python/testrepository/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A repository of test results.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">testrepository</remote-id>
+ <remote-id type="launchpad">testscenarios</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/testrepository/testrepository-0.0.17-r1.ebuild b/dev-python/testrepository/testrepository-0.0.17-r1.ebuild
new file mode 100644
index 00000000000..54eebcdb8cf
--- /dev/null
+++ b/dev-python/testrepository/testrepository-0.0.17-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# Although package supports alt. py impls, only works fully under py2.7
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A repository of test results"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/subunit[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.30[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/testresources[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )"
+#bzr is listed but presumably req'd for a live repo test run
+RDEPEND="dev-python/subunit[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.30[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" ./testr init || die
+ "${PYTHON}" ./testr run || die "tests failed under python2.7"
+}
diff --git a/dev-python/testrepository/testrepository-0.0.17-r2.ebuild b/dev-python/testrepository/testrepository-0.0.17-r2.ebuild
new file mode 100644
index 00000000000..78b8870e928
--- /dev/null
+++ b/dev-python/testrepository/testrepository-0.0.17-r2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A repository of test results"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/testresources[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )"
+#>=dev-python/subunit-0.0.10[${PYTHON_USEDEP}]
+#>=dev-python/testtools-0.9.30[${PYTHON_USEDEP}]
+#dev-python/fixtures[${PYTHON_USEDEP}]
+#bzr is listed but presumably req'd for a live repo test run
+RDEPEND=">=dev-python/subunit-0.0.10[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.30[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]"
+
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ "${PYTHON}" ./testr init || die
+ "${PYTHON}" setup.py testr --coverage || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/testrepository/testrepository-0.0.18-r1.ebuild b/dev-python/testrepository/testrepository-0.0.18-r1.ebuild
new file mode 100644
index 00000000000..411e30fc462
--- /dev/null
+++ b/dev-python/testrepository/testrepository-0.0.18-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A repository of test results"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=">=dev-python/subunit-0.0.10[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.30[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]"
+#bzr is listed but presumably req'd for a live repo test run
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/testresources[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )"
+
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_test() {
+ # some errors appear to have crept in the suite undert py3 since addition.
+ # Python2.7 now passes all.
+
+ esetup.py testr --coverage # || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/testresources/Manifest b/dev-python/testresources/Manifest
new file mode 100644
index 00000000000..00ce0840b27
--- /dev/null
+++ b/dev-python/testresources/Manifest
@@ -0,0 +1 @@
+DIST testresources-0.2.7.tar.gz 32050 SHA256 ad0a117383dd463827b199eaa92829b4d6a3147fbd97459820df53bae81d7231 SHA512 29518f7326272c56a5f2f3f1f7741959dde9265ba5ce7e0c7d7afabd91bd44a519d1cad82a11a41944ff12d65e541536476f87afcac9a7cbb4869743a38547b7 WHIRLPOOL c414223960fbd6a1c612d2c79c8b8956ab858aaaa76331ddefb1315dbdd6c6bc1d3a7641c098d7d558b332ee8f4262d8921240adb63f581a3127da6a617dc200
diff --git a/dev-python/testresources/metadata.xml b/dev-python/testresources/metadata.xml
new file mode 100644
index 00000000000..e8c27a4d1dc
--- /dev/null
+++ b/dev-python/testresources/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Testresources extends unittest with a clean and simple api to provide test
+ optimisation where expensive common resources are needed for test cases
+ for example sample working trees for VCS systems, reference databases for
+ enterprise applications, or web servers ... let imagination run wild.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">testresources</remote-id>
+ <remote-id type="launchpad">testresources</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/testresources/testresources-0.2.7-r2.ebuild b/dev-python/testresources/testresources-0.2.7-r2.ebuild
new file mode 100644
index 00000000000..b4f611fc6a0
--- /dev/null
+++ b/dev-python/testresources/testresources-0.2.7-r2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Testresources, a pyunit extension for managing expensive test resources"
+HOMEPAGE="https://launchpad.net/testresources"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/testscenarios/Manifest b/dev-python/testscenarios/Manifest
new file mode 100644
index 00000000000..0c854c3c337
--- /dev/null
+++ b/dev-python/testscenarios/Manifest
@@ -0,0 +1,2 @@
+DIST testscenarios-0.4.tar.gz 22768 SHA256 4feeee84f7fd8a6258fc00671e1521f80cb68d2fec1e2908b3ab52bcf396e198 SHA512 1b3fbc11b0a6a9cdd4afd569374cde92c291d925f76295e191b91285e88c17a9e693e10972538d146f97c889c5c1fa4545c79b0e6b9d71265abc82cf2700a3f9 WHIRLPOOL fe8769be1ccbeda81dc8f5f19f0e74a1ab616eac1389dca487427d77ddbf25f5c569445fb4e3f3732c117d61b0c22588ae2b8334cfb5b68afa227ee51bf8dc10
+DIST testscenarios-0.5.0.tar.gz 20951 SHA256 c257cb6b90ea7e6f8fef3158121d430543412c9a87df30b5dde6ec8b9b57a2b6 SHA512 f08b868babf504482369c5cb945d3e95bca1cc00f92d5013f6898c488051be0c26dc49aaabcef362aea45450a8d041d9826fb6b5c848beec013fb102d6935521 WHIRLPOOL 7b02c7a61933a8e603074321e0b4357485dad72ccffca5b28fc423da76159e6c8a4d778a431d607bff43563bc6971d66d38d7e3f89973f9c2838e569a947c0c1
diff --git a/dev-python/testscenarios/metadata.xml b/dev-python/testscenarios/metadata.xml
new file mode 100644
index 00000000000..5c275d80b9b
--- /dev/null
+++ b/dev-python/testscenarios/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Testscenarios provides clean dependency injection for
+ python unittest style tests. This can be used for interface testing
+ (testing many implementations via a single test suite) or for classic
+ dependency injection (provide tests with dependencies externally to the
+ test code itself, allowing easy testing in different situations).
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">testscenarios</remote-id>
+ <remote-id type="launchpad">testscenarios</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/testscenarios/testscenarios-0.4-r2.ebuild b/dev-python/testscenarios/testscenarios-0.4-r2.ebuild
new file mode 100644
index 00000000000..2514e5892ca
--- /dev/null
+++ b/dev-python/testscenarios/testscenarios-0.4-r2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Testscenarios, a pyunit extension for dependency injection"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}] )"
+# dev-python/testresources[${PYTHON_USEDEP}]
+RDEPEND=""
+
+python_test() {
+ PYTHONPATH=./lib ${EPYTHON} -m testtools.run testscenarios.test_suite
+}
diff --git a/dev-python/testscenarios/testscenarios-0.4-r4.ebuild b/dev-python/testscenarios/testscenarios-0.4-r4.ebuild
new file mode 100644
index 00000000000..85d952d483b
--- /dev/null
+++ b/dev-python/testscenarios/testscenarios-0.4-r4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Testscenarios, a pyunit extension for dependency injection"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="dev-python/testtools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ PYTHONPATH=./lib ${EPYTHON} -m testtools.run testscenarios.test_suite
+}
diff --git a/dev-python/testscenarios/testscenarios-0.4-r5.ebuild b/dev-python/testscenarios/testscenarios-0.4-r5.ebuild
new file mode 100644
index 00000000000..fab332d8a57
--- /dev/null
+++ b/dev-python/testscenarios/testscenarios-0.4-r5.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Testscenarios, a pyunit extension for dependency injection"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="dev-python/testtools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ PYTHONPATH=./lib ${EPYTHON} -m testtools.run testscenarios.test_suite
+}
diff --git a/dev-python/testscenarios/testscenarios-0.4.ebuild b/dev-python/testscenarios/testscenarios-0.4.ebuild
new file mode 100644
index 00000000000..f50754fa736
--- /dev/null
+++ b/dev-python/testscenarios/testscenarios-0.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Testscenarios, a pyunit extension for dependency injection"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ dev-python/testresources[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_test() {
+ # https://bugs.launchpad.net/testscenarios/+bug/1260573
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/testscenarios/testscenarios-0.5.0.ebuild b/dev-python/testscenarios/testscenarios-0.5.0.ebuild
new file mode 100644
index 00000000000..5a70e5f2727
--- /dev/null
+++ b/dev-python/testscenarios/testscenarios-0.5.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Testscenarios, a pyunit extension for dependency injection"
+HOMEPAGE="https://launchpad.net/testscenarios"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="dev-python/testtools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Remove a faulty file from tests, missing a required attribute
+ rm ${PN}/tests/test_testcase.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover
+}
diff --git a/dev-python/testtools/Manifest b/dev-python/testtools/Manifest
new file mode 100644
index 00000000000..9ba454caefb
--- /dev/null
+++ b/dev-python/testtools/Manifest
@@ -0,0 +1,6 @@
+DIST testtools-0.9.36.tar.gz 201717 SHA256 20a1b0d6325f1303ff8112a272047057b73217aac85424aa4065b87641a04499 SHA512 1cb29deb2fb7cd0eebd9affb06e877487989163d0c4452db8051d75b936b0c4ac6443649d52f83cd3695421b361af7dc75507b037528ac0f7cfde9b4b201ad08 WHIRLPOOL 5561c4ef316c31f5c0099beb93eba307328669e43bef36e8da6b1856bf3f75c6b4d81fc0cb777e8397cb246512203c7951c93a52b2a5877e4764cf2e0a749e22
+DIST testtools-1.2.1.tar.gz 204223 SHA256 83dde6f4d986fc8941906d373543246c84b935a54e9b2db520ae4676857cecfc SHA512 64669b44891bd9203f869fdf08ef06604b93bed519ca0afe38fa0cadf03fdb0dd129de34dedca847e6b416889aa53eba0a50d025660b273fe228821db11dc65e WHIRLPOOL 480c8500b159942e5797567d6c124abff6b87ef668a298a40b97c04aa0001003fd5dea1f5b9903bb008ddc52d7be8e70aaea0818a09bd0ba6b35543f53d773e5
+DIST testtools-1.3.0.tar.gz 204755 SHA256 3bf0be7c76587e8318936462438124ffb74372f3718def71fe8bd5ba28e1e394 SHA512 319cb0630bfd63c5d87061073358be7b0270bb30c5d94156b7c84ad6563a6ac0267503f6c3b31ab18f45b523719ed9dc69a89b175763225fdf6857989f4340fe WHIRLPOOL 41271a1edfa7ed71cab28fc6a766909f49bf4a810302a7d7137d92fcb1b9ec13b4fe5083ff561b9993f42bfa2ce28ef884bffcb432b032f3c14bf1dacb2de599
+DIST testtools-1.5.0.tar.gz 205197 SHA256 8d22a559f15b4540e069df0d69698d5bc70d9c42c8694c5e253595d70283511a SHA512 187a3f65eb3b00382853b8490d598f71990398f5867e985be00d13b87bb3ed155e9ecd3c16a268adf16ddf730b58a7d8849a8ba313668fc10af317e3eb3c825e WHIRLPOOL de91a36d9abc18680dba0f1c2b94133fe07d387093ee70a8f7bed2685faf55bbcbb46b5f9fcab0cdab73de382fabf800e78fa48889a733b9bceee06a61d3cbf9
+DIST testtools-1.7.1.tar.gz 202573 SHA256 e9999eecf002a9fdc499ab82c13cc7b40226ed4b5fc4ed2a2c1cfb08fe23cfea SHA512 ca38d61abf2fa9589177f986f57f15abd3105ed26b834c136cb12592a0aaa1bbe62d5bc3914ec958daad323091e8d88fd3ccad68c5d970a67d84188baa53ba41 WHIRLPOOL b38f00016d82852a58350d1a456b861af9c6a3e1f97d40463b225c7b6349b765680b45af6e18f21e05c88d40ce3c02445b04072c48d0f433176a4d718f907f88
+DIST testtools-1.8.0.tar.gz 207976 SHA256 8afd6400fb4e75adb0b29bd09695ecb2024cd7befab4677a58c147701afadd97 SHA512 b5f0201222d1e8c60fb7c2793bcd38e1c96c6f9fae99e9f3e784d17230c9abbf7325053d501c07e752bad2da36b49e2c79a25d0c20cb9a2f426057f839a77b3a WHIRLPOOL 71d4082197a9c179862fc3c63eadc37d6ff776f0a62e5fb08c296a5bf7109dc5110a2104a1ed15ca97c523aa0afb9e7124805ec6a6ae18f7605d7641abd9c54a
diff --git a/dev-python/testtools/metadata.xml b/dev-python/testtools/metadata.xml
new file mode 100644
index 00000000000..dc83b4a762a
--- /dev/null
+++ b/dev-python/testtools/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>bazaar</herd>
+ <herd>python</herd>
+ <herd>openstack</herd>
+ <upstream>
+ <remote-id type="pypi">testtools</remote-id>
+ <remote-id type="github">testing-cabal/testtools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/testtools/testtools-0.9.36.ebuild b/dev-python/testtools/testtools-0.9.36.ebuild
new file mode 100644
index 00000000000..5c58e68da24
--- /dev/null
+++ b/dev-python/testtools/testtools-0.9.36.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 versionator
+
+#SERIES="$(get_version_component_range 1-2)"
+SERIES="trunk"
+
+DESCRIPTION="Extensions to the Python unittest library"
+HOMEPAGE="https://launchpad.net/testtools http://pypi.python.org/pypi/testtools"
+SRC_URI="http://launchpad.net/${PN}/${SERIES}/${PV}/+download/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/mimeparse[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( $(python_gen_cond_dep 'dev-python/twisted-core[${PYTHON_USEDEP}]' python2_7) )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_prepare_all() {
+ # Take out failing tests
+ # https://bugs.launchpad.net/testtools/+bug/1380918
+ sed -e 's:test_test_module:_&:' -e 's:test_test_suite:_&:' \
+ -i testtools/tests/test_distutilscmd.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ # Required to allow / ensure all impls to pass run of testsuite
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testtools/testtools-1.2.1.ebuild b/dev-python/testtools/testtools-1.2.1.ebuild
new file mode 100644
index 00000000000..2215d035683
--- /dev/null
+++ b/dev-python/testtools/testtools-1.2.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 versionator
+
+#SERIES="$(get_version_component_range 1-2)"
+SERIES="trunk"
+
+DESCRIPTION="Extensions to the Python unittest library"
+HOMEPAGE="https://launchpad.net/testtools http://pypi.python.org/pypi/testtools"
+SRC_URI="http://launchpad.net/${PN}/${SERIES}/${PV}/+download/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/mimeparse[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( $(python_gen_cond_dep 'dev-python/twisted-core[${PYTHON_USEDEP}]' python2_7) )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testtools/testtools-1.3.0.ebuild b/dev-python/testtools/testtools-1.3.0.ebuild
new file mode 100644
index 00000000000..8367169d86d
--- /dev/null
+++ b/dev-python/testtools/testtools-1.3.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 versionator
+
+#SERIES="$(get_version_component_range 1-2)"
+SERIES="trunk"
+
+DESCRIPTION="Extensions to the Python unittest library"
+HOMEPAGE="https://launchpad.net/testtools http://pypi.python.org/pypi/testtools"
+SRC_URI="http://launchpad.net/${PN}/${SERIES}/${PV}/+download/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/mimeparse[${PYTHON_USEDEP}]
+ dev-python/extras[${PYTHON_USEDEP}]
+ >=dev-python/unittest2-0.8.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( $(python_gen_cond_dep 'dev-python/twisted-core[${PYTHON_USEDEP}]' python2_7) )"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testtools/testtools-1.5.0.ebuild b/dev-python/testtools/testtools-1.5.0.ebuild
new file mode 100644
index 00000000000..7094cbd3ac2
--- /dev/null
+++ b/dev-python/testtools/testtools-1.5.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the Python standard library unit testing framework"
+HOMEPAGE="https://github.com/testing-cabal/testtools"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+CDEPEND="
+ dev-python/extras[${PYTHON_USEDEP}]
+ dev-python/mimeparse[${PYTHON_USEDEP}]
+ >=dev-python/unittest2-0.8.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ esetup.py test || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testtools/testtools-1.7.1.ebuild b/dev-python/testtools/testtools-1.7.1.ebuild
new file mode 100644
index 00000000000..44d5c42f194
--- /dev/null
+++ b/dev-python/testtools/testtools-1.7.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the Python standard library unit testing framework"
+HOMEPAGE="https://github.com/testing-cabal/testtools"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc64"
+IUSE="doc"
+
+CDEPEND="
+ dev-python/extras[${PYTHON_USEDEP}]
+ dev-python/mimeparse[${PYTHON_USEDEP}]
+ >=dev-python/unittest2-1.0.0[${PYTHON_USEDEP}]
+ dev-python/traceback2[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" -m testtools.run testtools.tests.test_suite || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/testtools/testtools-1.8.0.ebuild b/dev-python/testtools/testtools-1.8.0.ebuild
new file mode 100644
index 00000000000..de905ca473d
--- /dev/null
+++ b/dev-python/testtools/testtools-1.8.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Extensions to the Python standard library unit testing framework"
+HOMEPAGE="https://github.com/testing-cabal/testtools"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc64"
+IUSE="doc test"
+
+CDEPEND="
+ dev-python/extras[${PYTHON_USEDEP}]
+ dev-python/mimeparse[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ >=dev-python/unittest2-1.0.0[${PYTHON_USEDEP}]
+ dev-python/traceback2[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ "${PYTHON}" -m testtools.run testtools.tests.test_suite || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/texttable/Manifest b/dev-python/texttable/Manifest
new file mode 100644
index 00000000000..a759efbf561
--- /dev/null
+++ b/dev-python/texttable/Manifest
@@ -0,0 +1,2 @@
+DIST texttable-0.8.1.tar.gz 6033 SHA256 3d143a71c37c38e25c7b5cef3a861d3c2a0fcbfbeefc150483c9ccd999c3ee5e SHA512 f7bada98b993531a4150961e143760b6e34532ea0f49a92964fe7149989164bad6380222e896bc81907ac99ee775e926de543d95f351a66e96ccedf4d081a646 WHIRLPOOL d817fa1d9bebcf0563a558ce1ace8cb2e782de2efb572b63031bf37434e091500fb0b2d81eeb39ce7acc6ea7b5d84e619715aab3c9b6a438828303b6729eb582
+DIST texttable-0.8.2.tar.gz 8538 SHA256 c0c5b2aa4eab132d40aadb7c4e81f98fc93d3a1e6cb44e9be76779d74f32e6be SHA512 af37f9bcbcf59e7887af612c36c93cb1cd98f5e724c2db91a81320d69d77aa662d5c0ed2e3dcd5a5f48c957e14682deae0fa7e026ecbc5f7803cc8bd151aeb28 WHIRLPOOL 44ace160697916abadc2ba30368de12d858255b3e69b4142b7ead90d64c279008f24452039ed3c4e65d2412481a446917721e1c1c54dcb6c830fa14714fb3af2
diff --git a/dev-python/texttable/metadata.xml b/dev-python/texttable/metadata.xml
new file mode 100644
index 00000000000..44d9cd4e607
--- /dev/null
+++ b/dev-python/texttable/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">texttable</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/texttable/texttable-0.8.1.ebuild b/dev-python/texttable/texttable-0.8.1.ebuild
new file mode 100644
index 00000000000..04d2104d9ca
--- /dev/null
+++ b/dev-python/texttable/texttable-0.8.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="module for creating simple ASCII tables"
+HOMEPAGE="http://foutaise.org/code/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/texttable/texttable-0.8.2.ebuild b/dev-python/texttable/texttable-0.8.2.ebuild
new file mode 100644
index 00000000000..bf99f6b8f4f
--- /dev/null
+++ b/dev-python/texttable/texttable-0.8.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="module for creating simple ASCII tables"
+HOMEPAGE="http://foutaise.org/code/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
diff --git a/dev-python/tgmochikit/Manifest b/dev-python/tgmochikit/Manifest
new file mode 100644
index 00000000000..d4d64c207ed
--- /dev/null
+++ b/dev-python/tgmochikit/Manifest
@@ -0,0 +1 @@
+DIST tgMochiKit-1.4.2.tar.gz 686356 SHA256 cc7308115c8cd587bb0ce6a300f7a9b2789eb2b3758610a835e1432bb9bbe89e SHA512 2c384dec39c2da46ab0420d2d672af2eba97c638a3cfe3077ec66a7858ec655c457b99f6b33956e4c70baf3c8dbdd160d1c4c11f05088ff2f6eacbfa244b18fa WHIRLPOOL 4c981c7a0fc0fd0cb1815e9a2e2b1adb10d1d7e7b9200127f507d34d51df121919854cae548b6dda7a9146649aaaf5c3ff2d904d5dd9779c0bcad478c3a7dc13
diff --git a/dev-python/tgmochikit/metadata.xml b/dev-python/tgmochikit/metadata.xml
new file mode 100644
index 00000000000..74549fa84d6
--- /dev/null
+++ b/dev-python/tgmochikit/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">tgMochiKit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tgmochikit/tgmochikit-1.4.2-r1.ebuild b/dev-python/tgmochikit/tgmochikit-1.4.2-r1.ebuild
new file mode 100644
index 00000000000..18e4d66ab61
--- /dev/null
+++ b/dev-python/tgmochikit/tgmochikit-1.4.2-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="tgMochiKit"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="MochiKit packaged as TurboGears widgets"
+HOMEPAGE="http://pypi.python.org/pypi/tgMochiKit"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="|| ( AFL-2.1 MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "tests failed"
+}
diff --git a/dev-python/theano/Manifest b/dev-python/theano/Manifest
new file mode 100644
index 00000000000..41b7d8ab8dd
--- /dev/null
+++ b/dev-python/theano/Manifest
@@ -0,0 +1 @@
+DIST Theano-0.6.0.tar.gz 1763756 SHA256 aaa75f9a9b7bf50f09ddcc01fb993cf47513179d0a7bee3d96bfeebd66e76083 SHA512 6333c673df809bed3af952e0759cce4878ed21684367c6eb20e422363c7c5696ea59239ff6a448c6a32771b1069d441b0e3d049f9708ae69d790412303b8ebbd WHIRLPOOL 946fcacb87b7745e72282f5f7e6b67db5fd0e365f55b2c97a8e9e506e30986d90da7c3789636892ca316da33f4f064f99d31fc3771678457dd609fd0c43d9010
diff --git a/dev-python/theano/metadata.xml b/dev-python/theano/metadata.xml
new file mode 100644
index 00000000000..e92a8dee3bd
--- /dev/null
+++ b/dev-python/theano/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ Theano is a numerical computation library for the Python. In Theano,
+ computations are expressed using a NumPy-like syntax and compiled to
+ run efficiently on either CPU or GPU architectures.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">Theano</remote-id>
+ <remote-id type="github">Theano/Theano</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/theano/theano-0.6.0.ebuild b/dev-python/theano/theano-0.6.0.ebuild
new file mode 100644
index 00000000000..148376601c9
--- /dev/null
+++ b/dev-python/theano/theano-0.6.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator
+
+MYPN=Theano
+MYP=${MYPN}-$(replace_version_separator 3 '')
+
+DESCRIPTION="Python library to define and optimize multi-dimensional arrays mathematical expressions"
+HOMEPAGE="https://github.com/Theano/Theano"
+LICENSE="BSD"
+
+SRC_URI="mirror://pypi/${MYPN:0:1}/${MYPN}/${MYP}.tar.gz"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+SLOT="0"
+IUSE="test"
+
+RDEPEND="sci-libs/scipy[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MYP}"
+
+python_test() {
+ nosetests || die
+}
diff --git a/dev-python/thunarx-python/Manifest b/dev-python/thunarx-python/Manifest
new file mode 100644
index 00000000000..9832d095047
--- /dev/null
+++ b/dev-python/thunarx-python/Manifest
@@ -0,0 +1 @@
+DIST thunarx-python-0.3.0.tar.bz2 303035 SHA256 5650e045565af82f3a5f67bbecb46182b502a37f94d08c23adac697dbb4ce258 SHA512 9be3e8b50cd668e0b63fbf54da5dec3685dde40528067b35bd1cfa87db7e037962baafce3059818a7de76101472a2b07ae209c590f2f143dbc71646e8addb28f WHIRLPOOL cfcf986b7ca9bc2fd50d4d5bbb80c6df7ac557e3ca15703eada5c71a302d4275cee7972d13cb3d746e064caeb9e90f366819045bc109d761bcc898ce5a70d577
diff --git a/dev-python/thunarx-python/metadata.xml b/dev-python/thunarx-python/metadata.xml
new file mode 100644
index 00000000000..db7cdefa7c6
--- /dev/null
+++ b/dev-python/thunarx-python/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>xfce@gentoo.org</email>
+ <name>XFCE Team</name>
+ </maintainer>
+ <maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/thunarx-python/thunarx-python-0.3.0-r1.ebuild b/dev-python/thunarx-python/thunarx-python-0.3.0-r1.ebuild
new file mode 100644
index 00000000000..d9056e221cd
--- /dev/null
+++ b/dev-python/thunarx-python/thunarx-python-0.3.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-single-r1 xfconf
+
+DESCRIPTION="Python bindings for the Thunar file manager"
+HOMEPAGE="http://goodies.xfce.org/projects/bindings/thunarx-python"
+SRC_URI="mirror://xfce/src/bindings/${PN}/0.3/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug"
+
+RDEPEND="${PYTHON_DEPS}
+ x11-libs/gtk+:2
+ dev-libs/glib:2
+ >=dev-python/pygobject-2.16:2[${PYTHON_USEDEP}]
+ dev-python/pygtk:2[${PYTHON_USEDEP}]
+ >=xfce-base/thunar-1.1.0"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+REQUIRED_USE=${PYTHON_REQUIRED_USE}
+
+pkg_setup() {
+ XFCONF=(
+ --disable-dependency-tracking
+ $(xfconf_use_debug)
+ )
+
+ DOCS=( AUTHORS ChangeLog NEWS README )
+
+ python-single-r1_pkg_setup
+}
+
+src_install() {
+ xfconf_src_install \
+ docsdir=/usr/share/doc/${PF} \
+ examplesdir=/usr/share/doc/${PF}/examples
+}
diff --git a/dev-python/timelib/Manifest b/dev-python/timelib/Manifest
new file mode 100644
index 00000000000..a0da5d42edd
--- /dev/null
+++ b/dev-python/timelib/Manifest
@@ -0,0 +1 @@
+DIST timelib-0.2.4.zip 281070 SHA256 49142233bdb5971d64a41e05a1f80a408a02be0dc7d9f8c99e7bdd0613ba81cb SHA512 871683756318f8896592e154a6949e6c96f9b9177ecd8694db2a48b16104cf35d11f550355a4723a097e9f17e3b7020d09a23916bd55a3dd463c22bed68991af WHIRLPOOL 941e3bccb1fba22eb54530c111ed0cbad136481e1e4f9c7107ae82625452b3534ad0b218b08eaf542efa159bc5df3afd49346cbc4fa297471998bd4412d3154b
diff --git a/dev-python/timelib/metadata.xml b/dev-python/timelib/metadata.xml
new file mode 100644
index 00000000000..5d5c6fdbe60
--- /dev/null
+++ b/dev-python/timelib/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">timelib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/timelib/timelib-0.2.4-r1.ebuild b/dev-python/timelib/timelib-0.2.4-r1.ebuild
new file mode 100644
index 00000000000..cd225a2b075
--- /dev/null
+++ b/dev-python/timelib/timelib-0.2.4-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="parse english textual date descriptions"
+HOMEPAGE="http://pypi.python.org/pypi/timelib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="PHP-3.01 ZLIB"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/tinycss/Manifest b/dev-python/tinycss/Manifest
new file mode 100644
index 00000000000..28f31721e82
--- /dev/null
+++ b/dev-python/tinycss/Manifest
@@ -0,0 +1 @@
+DIST tinycss-0.3.tar.gz 72860 SHA256 a4adabd1c417080372c789220f7f9985995e74f2fb612848306872a232862cde SHA512 1fdf29777ee7b3ef39cf2169d8f464a7e5aea850de8a7976acf3ed9e73e831ea0d7ee52b4c8c9979b2263509cbffe1bde85cf6da178ddeaac9009ace7a2b4441 WHIRLPOOL 2fc7433e2410e8641f2c939f2d22ba3ab423908e20213559b34e8fb5002776a9ddfe7640c8a68c59af05b1c0e1493481c315011bef8055afd858e7a4c66ebdd4
diff --git a/dev-python/tinycss/metadata.xml b/dev-python/tinycss/metadata.xml
new file mode 100644
index 00000000000..dbd435291a8
--- /dev/null
+++ b/dev-python/tinycss/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">tinycss</remote-id>
+ <remote-id type="github">SimonSapin/tinycss</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tinycss/tinycss-0.3.ebuild b/dev-python/tinycss/tinycss-0.3.ebuild
new file mode 100644
index 00000000000..a0a41deb439
--- /dev/null
+++ b/dev-python/tinycss/tinycss-0.3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A complete yet simple CSS parser for Python"
+HOMEPAGE="http://github.com/SimonSapin/tinycss/ http://packages.python.org/tinycss/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/lxml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+DOCS=( CHANGES README.rst )
+
+python_test() {
+ export TINYCSS_SKIP_SPEEDUPS_TESTS=1
+ local test
+ for test in ${PN}/tests/test_*.py; do
+ py.test $test
+ done
+}
diff --git a/dev-python/tlslite/Manifest b/dev-python/tlslite/Manifest
new file mode 100644
index 00000000000..7b6d1a69e09
--- /dev/null
+++ b/dev-python/tlslite/Manifest
@@ -0,0 +1 @@
+DIST tlslite-0.4.3.tar.gz 562090 SHA256 6a67d8a0bec66183719c19c91f383bc1555545055aae4498af2e91fe9d79f813 SHA512 d1f451ebc2f7bd4d5436f1ca8ecfdbaa403f3dbbae9f9ac3900131e5d168e3267e22fcf23d85f87457f06468997cb01a51683d028a67fde58820b15f97689a0c WHIRLPOOL 555f2659f0bb5080519edd5f4325953e13109367ef21e1595816ab4f3956233bb541940f65f2cfa95c041b7f2cc080b8c4ee10719be79edfa11076a2c834fff6
diff --git a/dev-python/tlslite/metadata.xml b/dev-python/tlslite/metadata.xml
new file mode 100644
index 00000000000..74bb6e1c1a1
--- /dev/null
+++ b/dev-python/tlslite/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ TLS Lite is a free python library that implements SSL 3.0, TLS 1.0, and
+ TLS 1.1. TLS Lite supports non-traditional authentication methods such
+ as SRP, shared keys, and cryptoIDs in addition to X.509 certificates.
+ TLS Lite is pure Python, however it can access OpenSSL, cryptlib,
+ pycrypto, and GMPY for faster crypto operations. TLS Lite integrates
+ with httplib, xmlrpclib, poplib, imaplib, smtplib, SocketServer,
+ asyncore, and Twisted.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">trevp/tlslite</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tlslite/tlslite-0.4.3-r1.ebuild b/dev-python/tlslite/tlslite-0.4.3-r1.ebuild
new file mode 100644
index 00000000000..42359865625
--- /dev/null
+++ b/dev-python/tlslite/tlslite-0.4.3-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="TLS Lite is a free python library that implements SSL 3.0 and TLS 1.0/1.1"
+HOMEPAGE="http://trevp.net/tlslite/ http://pypi.python.org/pypi/tlslite"
+SRC_URI="http://github.com/trevp/tlslite/downloads/${P}.tar.gz"
+
+LICENSE="BSD public-domain"
+SLOT="0"
+KEYWORDS="amd64 x86"
+#Refrain for now setting IUSE test and deps of test given test restricted.
+IUSE="doc gmp"
+RESTRICT="test"
+
+DEPEND=">=dev-libs/cryptlib-3.3.3[python,${PYTHON_USEDEP}]
+ || (
+ dev-python/m2crypto[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ )
+ gmp? ( dev-python/gmpy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+# Tests still hang
+python_test() {
+ "${S}"/tests/tlstest.py client localhost:4443 .
+ "${S}"/tests/tlstest.py server localhost:4442 .
+}
+
+python_install_all(){
+ distutils-r1_python_install_all
+ use doc && dohtml -r docs/
+}
diff --git a/dev-python/tmdb3/Manifest b/dev-python/tmdb3/Manifest
new file mode 100644
index 00000000000..89804659a3c
--- /dev/null
+++ b/dev-python/tmdb3/Manifest
@@ -0,0 +1,2 @@
+DIST tmdb3-0.6.17.zip 38179 SHA256 64a6c3f1a60a9d8bf18f96a5403f3735b334040345ac3646064931c209720972 SHA512 ad2cd838a9127e4839572590d1083a0b1f3f23d5fd52aff2dcdc159ed189b4f73acad0b916d807c8ee77cc434102d7a6e99d4f7a0d560bdcb8fdbd1f9f6f4a72 WHIRLPOOL 4454bf25a4d6c073e4a469a7558deafb50dad2d55649ed2cddd3d40ca0e100fd4df00c89a843a7285103ddd208a1e741513217a10df62a2897d2b2dd8b2f6c29
+DIST tmdb3-0.7.2.tar.gz 39545 SHA256 9b6e043b8a65d159e7fc8f720badc7ffee5109296e38676c107454e03a895983 SHA512 d4294cbc5811776f7514f5dca82421c61538409c6d76704ed22272bbd9b6a362b7887c392526f285d81da29500530e684f1e829722f646d1d3eea4293a748a64 WHIRLPOOL 4cc02bf35891e3a460d205e1eedda365167bd8193b670b65732c5457e2ebfa16822b53a40eeffb62ec65923b047f51596a0b02ae40af5fa61c1aa2e7e34a8e04
diff --git a/dev-python/tmdb3/metadata.xml b/dev-python/tmdb3/metadata.xml
new file mode 100644
index 00000000000..2878da44759
--- /dev/null
+++ b/dev-python/tmdb3/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">tmdb3</remote-id>
+ <remote-id type="github">wagnerrp/pytmdb3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tmdb3/tmdb3-0.6.17.ebuild b/dev-python/tmdb3/tmdb3-0.6.17.ebuild
new file mode 100644
index 00000000000..be4ca2f26b8
--- /dev/null
+++ b/dev-python/tmdb3/tmdb3-0.6.17.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="TheMovieDB.org APIv3 interface"
+HOMEPAGE="https://github.com/wagnerrp/pytmdb3 https://pypi.python.org/pypi/tmdb3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
diff --git a/dev-python/tmdb3/tmdb3-0.7.2.ebuild b/dev-python/tmdb3/tmdb3-0.7.2.ebuild
new file mode 100644
index 00000000000..67087604f1c
--- /dev/null
+++ b/dev-python/tmdb3/tmdb3-0.7.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="TheMovieDB.org APIv3 interface"
+HOMEPAGE="https://github.com/wagnerrp/pytmdb3 https://pypi.python.org/pypi/tmdb3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/toolz/Manifest b/dev-python/toolz/Manifest
new file mode 100644
index 00000000000..b4cf9b56fcd
--- /dev/null
+++ b/dev-python/toolz/Manifest
@@ -0,0 +1,3 @@
+DIST toolz-0.7.0.tar.gz 18692 SHA256 8f88590f960c16db2146b6ecae31f9d048865612b69e197907e886c963fad6f3 SHA512 7542d814d5e749a6dd0599b0af2640dd4c1225655f41c15fdbae1d9e74dc5c46875ac44a77178b9c4f27828077229aada6592fe6f3c80b1d9c8391a17c3089f5 WHIRLPOOL 07dcb967b5787902552fa7bc5dae420322c1c050bcaf5fad55d3326a0a1e4fd3370c2d2172d6db6bb9404dfd1672cec8c5af394b14861888e5f9b845257716c2
+DIST toolz-0.7.1.tar.gz 19283 SHA256 cc71fd92a2f9edbf554c23534150f13f0f589baf2404da4b42686f0b08085db5 SHA512 57362f5f4a24ee4384e474b996d1195e9450c3583068632294f10cc342b9bb11d13ca811c83cc8f75bd845e14869cd1f3b96bf49e98ae677343fa2ab11a9d664 WHIRLPOOL eca4afb9347a99ed8a36b858c23964645740d7cde98109f7f5fd54682d2c6315504b6823cd7c2c8d08cd340b64d78a43e97d76539543bb6775a34ce31d2d1b95
+DIST toolz-0.7.2.tar.gz 27275 SHA256 56b2fc25d48337c39a30545ae28d643df28a2d63be12aae3c1336edc485098b1 SHA512 f7a1433060820c5ce1cd0892e8487b2fb6a49631a9155dbc94fa17601f5951797ef5bc9a9df3bc83c384c45a7965392aa68fd2f43cec0f651edfb011d4bbf458 WHIRLPOOL 121061d9f0a474e7de9adec34c7ede336a700f9769be338a4987cd7bfe7cdf4f66c7f8dbbef15db2db4f68a59f1822b2d134b01be7cb8a90cc632cfed9f96fe9
diff --git a/dev-python/toolz/metadata.xml b/dev-python/toolz/metadata.xml
new file mode 100644
index 00000000000..082526d7d67
--- /dev/null
+++ b/dev-python/toolz/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">toolz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/toolz/toolz-0.7.0.ebuild b/dev-python/toolz/toolz-0.7.0.ebuild
new file mode 100644
index 00000000000..50b411dc3cc
--- /dev/null
+++ b/dev-python/toolz/toolz-0.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="List processing tools and functional utilities"
+HOMEPAGE="https://pypi.python.org/pypi/toolz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/toolz/toolz-0.7.1.ebuild b/dev-python/toolz/toolz-0.7.1.ebuild
new file mode 100644
index 00000000000..8fa3d5f2a42
--- /dev/null
+++ b/dev-python/toolz/toolz-0.7.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="List processing tools and functional utilities"
+HOMEPAGE="https://pypi.python.org/pypi/toolz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/toolz/toolz-0.7.2.ebuild b/dev-python/toolz/toolz-0.7.2.ebuild
new file mode 100644
index 00000000000..7334537e160
--- /dev/null
+++ b/dev-python/toolz/toolz-0.7.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="List processing tools and functional utilities"
+HOMEPAGE="https://pypi.python.org/pypi/toolz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/torment/Manifest b/dev-python/torment/Manifest
new file mode 100644
index 00000000000..9bb7cb2c61b
--- /dev/null
+++ b/dev-python/torment/Manifest
@@ -0,0 +1,3 @@
+DIST torment-2.0.1.tar.gz 23272 SHA256 882f33063ade787ea94ee7b69755632b2a28b26502441732bb381eb6adbe5e6c SHA512 a14645d945c9efe1a84005d098f7ea9a108316295d900c9b78746dc7b2472d9062be6de27f6cfbb4a35e36f118fc768a09a9eab414174fdabd07d895f5fb1a53 WHIRLPOOL e444c27873224751d5fb067c949e27cfcaf54f2ef49b083cc8af6b66ac93485e4f0559c36d6b047896651e04db73a244a7e019b469217acc89c069a0535e5ab6
+DIST torment-2.0.2.tar.gz 23291 SHA256 09950e60289921cd21403f00b1dc5643dd1c143b6e963bd0ca1e7a6928b18425 SHA512 4f0cbfd080053cc7a8f4556012516d8e7647d6f42e232288b24e84fafdcb36a5098f1e24b734ca62d2e4ce34883e25fdc94795b71835ad3863af670edc200853 WHIRLPOOL 1a3b7e352d2e1667d2b513b8810b58cf01cc15d4439b6a3f2b578d88928b1d687d6e60037e061e3dd412a064dca65909a191e93785bbfa5285a023d8d548ba15
+DIST torment-2.0.3.tar.gz 23457 SHA256 577fb8227087100ec1e3c29fc422dfab8813f77881f74b7f68b41a7a9abde9ca SHA512 a112fdd20da24ecf2ac0d8acb50e226bdc60cd78ce2b903333cde20fa78c593e31ff5ef9922c0b9f5cd32ac5c910ee287f2534ff5669cd21b12a66a485d0f409 WHIRLPOOL 060fa7ec2200b7fddddd1fd128ca09ad0f30314707da7cf393e30c614f894169f3724c51ab4e2c2627ba51a1345a6079b804c5ce0f02f2dae54090bbd2b20cb9
diff --git a/dev-python/torment/metadata.xml b/dev-python/torment/metadata.xml
new file mode 100644
index 00000000000..797131eaeeb
--- /dev/null
+++ b/dev-python/torment/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">torment</remote-id>
+ <remote-id type="github">kumoru/torment</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/torment/torment-2.0.1.ebuild b/dev-python/torment/torment-2.0.1.ebuild
new file mode 100644
index 00000000000..f890bde9a25
--- /dev/null
+++ b/dev-python/torment/torment-2.0.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Study in Fixture Based Testing Frameworking"
+HOMEPAGE="https://github.com/kumoru/torment"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="dev-python/mypy[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests || die "Tests failed on ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/torment/torment-2.0.2.ebuild b/dev-python/torment/torment-2.0.2.ebuild
new file mode 100644
index 00000000000..f890bde9a25
--- /dev/null
+++ b/dev-python/torment/torment-2.0.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Study in Fixture Based Testing Frameworking"
+HOMEPAGE="https://github.com/kumoru/torment"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="dev-python/mypy[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests || die "Tests failed on ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/torment/torment-2.0.3.ebuild b/dev-python/torment/torment-2.0.3.ebuild
new file mode 100644
index 00000000000..f890bde9a25
--- /dev/null
+++ b/dev-python/torment/torment-2.0.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Study in Fixture Based Testing Frameworking"
+HOMEPAGE="https://github.com/kumoru/torment"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+CDEPEND="dev-python/mypy[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${CDEPEND}
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx
+}
+
+python_test() {
+ nosetests || die "Tests failed on ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
new file mode 100644
index 00000000000..2110d77f73c
--- /dev/null
+++ b/dev-python/tox/Manifest
@@ -0,0 +1,4 @@
+DIST tox-1.8.0.tar.gz 89667 SHA256 4583b8340279d8cf080082550f7a5f14ba838bed3b217a37f0ea305c271281c7 SHA512 8ca009406b9d99de01877eb38401534b5185b5c049f51703c7637fa09f58544e74187e001b311b8ef9d0b5f13de27941f242612b9ecc22837f0442fade51aca2 WHIRLPOOL fb8d9f75ad03bddf02565dbc076a87ab76da996e6d228d57f374c0f57bd0ffeaad6f58d41a5a98a707641f98b24d4a957779c18afafe0b50f11a6d81936679b1
+DIST tox-1.8.1.tar.gz 90120 SHA256 44ca1e038cb57fe40ac0dff8b67b258efe05517bf9b4b4b07035f8be830aac01 SHA512 eb669c62e1943462513d66760e6275458e448552ec18a79776bceddeb686deea62280913dfe3d338809b8622dbc3fff24321f68ec6263e447ddf5099a36047bc WHIRLPOOL 240f8ab6df2bce1febb828058b2ba204ba5d48de17ccfa457e66392a9c3c49444439b5cda69e34c94e464f4bab91634104b0f935e5ac465528a2d9cfb7c14d80
+DIST tox-1.9.0.tar.gz 92574 SHA256 817ad1eaeb6b46e68b322d9ff41244be3c15315833df5762216ffe3629a21219 SHA512 71e36b7524662bc751e7260e8a589d73c1a6070e17ca5b51fb8831ad5ea54cff5404b37fb7ff8db9d62a98f496a24b3fb41d93cde9ff723b91ed931760274384 WHIRLPOOL fa4fb9f72261498c56e6489e96aab19e6d1f7418b1b487378230f62851911279afe32c9cef672c05643de1bbac5bc069437cfc53e65aeaff118e1418b91d3e96
+DIST tox-1.9.2.tar.gz 93029 SHA256 3125a15da7381f59f835a25bd259a84acb7a69858c81e386c50027bd842bb91b SHA512 a6521300825ac8b11576a224748aedefb183890bd7e3586c0c7340761e00778d20cff9cb4140ec452e62de5c2d6fc0c014b17bd45a43e45ac6a83e2394ef72b4 WHIRLPOOL 659ac6878fc845f3979d69b7d5a4d9bbd16716bb43dd5a41ac5f603d5172bef475f1da98eb806da0b16df62dd86ea03e978045bab62ccdec563261a34fbdc1a8
diff --git a/dev-python/tox/metadata.xml b/dev-python/tox/metadata.xml
new file mode 100644
index 00000000000..15f2cb67d80
--- /dev/null
+++ b/dev-python/tox/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">tox</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tox/tox-1.8.0.ebuild b/dev-python/tox/tox-1.8.0.ebuild
new file mode 100644
index 00000000000..410db2f21f5
--- /dev/null
+++ b/dev-python/tox/tox-1.8.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="http://tox.testrun.org http://pypi.python.org/pypi/tox"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-1.11.2[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ >=dev-python/py-1.4.17[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/pytest-2.3.5[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Take out failing tests known to pass when run manually
+ # # Run from ebuild interferes in subtle & mysterious ways, inducing these erroroneous fails
+ sed -e 's:test_package_install_fails:_&:' -e 's:test_different_config_cwd:_&:' \
+ -e 's:test_develop:_&:' -e 's:test_usedevelop:_&:' \
+ -e 's:test_usedevelop_mixed:_&:' -e 's:test__test_usedevelop:_&:' \
+ -e 's:test_env_VIRTUALENV_PYTHON:_&:' \
+ -i tests/test_z_cmdline.py || die
+
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test tests || die "Testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( "${S}"/doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/tox/tox-1.8.1.ebuild b/dev-python/tox/tox-1.8.1.ebuild
new file mode 100644
index 00000000000..a317d9d7f61
--- /dev/null
+++ b/dev-python/tox/tox-1.8.1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="http://tox.testrun.org http://pypi.python.org/pypi/tox"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-1.11.2[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ >=dev-python/py-1.4.17[${PYTHON_USEDEP}]"
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ >=dev-python/pytest-2.3.5[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Take out failing tests known to pass when run manually
+ # # Run from ebuild interferes in subtle & mysterious ways, inducing these erroroneous fails
+ sed -e 's:test_package_install_fails:_&:' -e 's:test_different_config_cwd:_&:' \
+ -e 's:test_develop:_&:' -e 's:test_usedevelop:_&:' \
+ -e 's:test_usedevelop_mixed:_&:' -e 's:test__test_usedevelop:_&:' \
+ -e 's:test_env_VIRTUALENV_PYTHON:_&:' \
+ -i tests/test_z_cmdline.py || die
+
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test tests || die "Testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( "${S}"/doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/tox/tox-1.9.0.ebuild b/dev-python/tox/tox-1.9.0.ebuild
new file mode 100644
index 00000000000..b592eef3b2f
--- /dev/null
+++ b/dev-python/tox/tox-1.9.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="http://tox.testrun.org http://pypi.python.org/pypi/tox"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-1.11.2[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ >=dev-python/py-1.4.17[${PYTHON_USEDEP}]"
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ >=dev-python/pytest-2.3.5[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Take out failing tests known to pass when run manually
+ # # Run from ebuild interferes in subtle & mysterious ways, inducing these erroroneous fails
+ sed -e 's:test_package_install_fails:_&:' -e 's:test_different_config_cwd:_&:' \
+ -e 's:test_develop:_&:' -e 's:test_usedevelop:_&:' \
+ -e 's:test_usedevelop_mixed:_&:' -e 's:test__test_usedevelop:_&:' \
+ -e 's:test_env_VIRTUALENV_PYTHON:_&:' \
+ -i tests/test_z_cmdline.py || die
+
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test tests || die "Testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( "${S}"/doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/tox/tox-1.9.2.ebuild b/dev-python/tox/tox-1.9.2.ebuild
new file mode 100644
index 00000000000..b592eef3b2f
--- /dev/null
+++ b/dev-python/tox/tox-1.9.2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="http://tox.testrun.org http://pypi.python.org/pypi/tox"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-1.11.2[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ >=dev-python/py-1.4.17[${PYTHON_USEDEP}]"
+DEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( ${RDEPEND}
+ >=dev-python/pytest-2.3.5[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # Take out failing tests known to pass when run manually
+ # # Run from ebuild interferes in subtle & mysterious ways, inducing these erroroneous fails
+ sed -e 's:test_package_install_fails:_&:' -e 's:test_different_config_cwd:_&:' \
+ -e 's:test_develop:_&:' -e 's:test_usedevelop:_&:' \
+ -e 's:test_usedevelop_mixed:_&:' -e 's:test__test_usedevelop:_&:' \
+ -e 's:test_env_VIRTUALENV_PYTHON:_&:' \
+ -i tests/test_z_cmdline.py || die
+
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'http://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test tests || die "Testsuite failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( "${S}"/doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/tpg/Manifest b/dev-python/tpg/Manifest
new file mode 100644
index 00000000000..5b4903e463e
--- /dev/null
+++ b/dev-python/tpg/Manifest
@@ -0,0 +1 @@
+DIST TPG-3.2.2.tar.gz 377142 SHA256 f33c6d2cb9e0bae78faa85e852a67437ae7128208812f126f3f01938a594ae33 SHA512 c60a8ff644377abc3edea766d33b911c85a131d0c0ca70175b7614901d316efc4b4d2fba0f17938ab104511fcfe8bd73fb4b6cf295f6465ec08f5c0ccab1d358 WHIRLPOOL 6962eec1e51e5d5d4483171deefbab84c0201816cc50b14ae427d8412028284e00e3e4af187d05297f81692beb34722000e2e34d49fcb6c3453b7426718a30f0
diff --git a/dev-python/tpg/metadata.xml b/dev-python/tpg/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/tpg/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/tpg/tpg-3.2.2-r1.ebuild b/dev-python/tpg/tpg-3.2.2-r1.ebuild
new file mode 100644
index 00000000000..6dc7eebee70
--- /dev/null
+++ b/dev-python/tpg/tpg-3.2.2-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+# py2.6 doesn't pass tests
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_P="TPG-${PV}"
+
+DESCRIPTION="Toy Parser Generator for Python"
+HOMEPAGE="http://christophe.delord.free.fr/tpg/index.html"
+SRC_URI="http://christophe.delord.free.fr/tpg/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc x86"
+IUSE="doc examples"
+DOCS=( ChangeLog README THANKS doc/tpg.pdf )
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ "${PYTHON}" tpg_tests.py -v || die
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/traceback2/Manifest b/dev-python/traceback2/Manifest
new file mode 100644
index 00000000000..b3de5ac5dd1
--- /dev/null
+++ b/dev-python/traceback2/Manifest
@@ -0,0 +1 @@
+DIST traceback2-1.4.0.tar.gz 15872 SHA256 05acc67a09980c2ecfedd3423f7ae0104839eccb55fc645773e1caa0951c3030 SHA512 84c7fc291c8f2d4cee10441cdef1820aa453e631dfa91ed58e40fc205e97a9dd2101388d5689e4fdf10edfbf06bdb5b895d1635ae7218ba0c9b697d3f95f9342 WHIRLPOOL a2bcc135f1585d777dc94992bfb5bab3ce36f00f84ab3aceefba4a0864a1b51ee523d2095906d57321e8ff22ea534b1b559a192270a154fc7c674ad6725d68d5
diff --git a/dev-python/traceback2/metadata.xml b/dev-python/traceback2/metadata.xml
new file mode 100644
index 00000000000..e1e19aefdee
--- /dev/null
+++ b/dev-python/traceback2/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">traceback2</remote-id>
+ <remote-id type="github">testing-cabal/traceback2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/traceback2/traceback2-1.4.0.ebuild b/dev-python/traceback2/traceback2-1.4.0.ebuild
new file mode 100644
index 00000000000..7871bfe0158
--- /dev/null
+++ b/dev-python/traceback2/traceback2-1.4.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Backports of the traceback module"
+HOMEPAGE="https://github.com/testing-cabal/traceback2"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc64"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+"
+RDEPEND="dev-python/linecache2[${PYTHON_USEDEP}]"
diff --git a/dev-python/tracing/Manifest b/dev-python/tracing/Manifest
new file mode 100644
index 00000000000..1c4116932d6
--- /dev/null
+++ b/dev-python/tracing/Manifest
@@ -0,0 +1,2 @@
+DIST python-tracing_0.7.orig.tar.gz 18670 SHA256 9954a1b0cc6b957d15975b048f929bbdd46766d397a6fa51bf8f6498b9459276 SHA512 4d6f2fb6cef9dfa90bcd786d5d32c4974a3e2a60cb616a41931e88e474fe016e72863e4831c88363242cb4daed9e061a5380bf33903e3385ee0eeadd4ec24f93 WHIRLPOOL 221d6812efe8a3a9c6359dad0cd2ec0a4cd79871b9f3dd23b55c5215a19634f796a0f391f58c4e0b0d4c76368cebf7410503bf10c376897bc692ad1008445c6f
+DIST python-tracing_0.8.orig.tar.gz 18796 SHA256 808a064cc5fd1972fb07a7d72b4069cbff284ac7077bcd90eb2ce79d8b5c9ed0 SHA512 9a5262ce63dbcafff83a75586e90be280ff41f902d9f71f4274dac944db4196c6a5777e290ca5e49aa010fb3129d5352d8c10a554918375557525b9a56ac9096 WHIRLPOOL 0dbe1760553177669ce9f43f49ede989f8f51e68efa8d024dc6a862d0f8f1593058d6231b41b2ead1a085a8d771c6528f99d7b77f35145484f911f5fd62d36db
diff --git a/dev-python/tracing/metadata.xml b/dev-python/tracing/metadata.xml
new file mode 100644
index 00000000000..ea7bd021a21
--- /dev/null
+++ b/dev-python/tracing/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mschiff@gentoo.org</email>
+ <name>Marc Schiffbauer</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/tracing/tracing-0.7-r1.ebuild b/dev-python/tracing/tracing-0.7-r1.ebuild
new file mode 100644
index 00000000000..cf8eab9aaa1
--- /dev/null
+++ b/dev-python/tracing/tracing-0.7-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+MY_P="python-${P}"
+
+inherit distutils-r1
+
+DESCRIPTION="Debug log/trace messages"
+HOMEPAGE="http://liw.fi/tracing/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ dodoc README
+ use doc && dohtml -r doc/_build/html/
+ if use examples; then
+ docompress -x usr/share/doc/${PF}/examples/
+ insinto usr/share/doc/${PF}/examples/
+ doins example.py
+ fi
+}
diff --git a/dev-python/tracing/tracing-0.8.ebuild b/dev-python/tracing/tracing-0.8.ebuild
new file mode 100644
index 00000000000..af7c703a4f5
--- /dev/null
+++ b/dev-python/tracing/tracing-0.8.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+MY_P="python-${P}"
+
+inherit distutils-r1
+
+DESCRIPTION="Debug log/trace messages"
+HOMEPAGE="http://liw.fi/tracing/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc examples"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ dodoc README
+ use doc && dohtml -r doc/_build/html/
+ if use examples; then
+ docompress -x usr/share/doc/${PF}/examples/
+ insinto usr/share/doc/${PF}/examples/
+ doins example.py
+ fi
+}
diff --git a/dev-python/traits/Manifest b/dev-python/traits/Manifest
new file mode 100644
index 00000000000..7fb3adc7675
--- /dev/null
+++ b/dev-python/traits/Manifest
@@ -0,0 +1 @@
+DIST traits-4.5.0.tar.gz 4853612 SHA256 5293a8786030b0b243e059f52004355b6939d7c0f1be2eb5a605b63cca484c84 SHA512 d506b4395395898eb824896d299bfcde609e100025cf9a55cd7d7c47615545efd3b007e46549e564fbfb2d5882b36ae676843f211f168b2557c504849c5ef582 WHIRLPOOL fc9a1c41d09579df7cbb63ba17696b343bda707f0f95a2a5dd289b36fa4ded8088ea46f03259f616d9f081ff20fbce208adbc7913e0466ee6de56bc7e08718ae
diff --git a/dev-python/traits/metadata.xml b/dev-python/traits/metadata.xml
new file mode 100644
index 00000000000..f5194078267
--- /dev/null
+++ b/dev-python/traits/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription lang="en">
+ The traits package from the Enthought Tool Suite provides a
+ metaclass with special attributes that are called traits. A trait
+ is a type definition that can be used for normal Python object
+ attributes, giving the attributes some additional characteristics:
+ * Initialization: A trait attribute can have a default value
+ * Validation: A trait attribute is manifestly typed.
+ * Delegation: The value of a trait attribute can be contained in another
+ object
+ * Notification: Setting the value of a trait attribute can fired
+ callbacks
+ * Visualization: With the TraitsUI package, GUIs can be generated
+ automatically from traited objects.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">traits</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/traits/traits-4.5.0.ebuild b/dev-python/traits/traits-4.5.0.ebuild
new file mode 100644
index 00000000000..388d99d83d3
--- /dev/null
+++ b/dev-python/traits/traits-4.5.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Explicitly typed attributes for Python"
+HOMEPAGE="http://code.enthought.com/projects/traits/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND} )"
+
+python_prepare_all() {
+ sed -i -e "s/'-O3'//g" setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}"/lib || die
+ nosetests || die
+}
diff --git a/dev-python/traitsui/Manifest b/dev-python/traitsui/Manifest
new file mode 100644
index 00000000000..4ca12695701
--- /dev/null
+++ b/dev-python/traitsui/Manifest
@@ -0,0 +1 @@
+DIST traitsui-4.4.0.tar.gz 598148 SHA256 68a10c4f86cf0f5ba5d9fac5caece73e0a76256a4175efcded5edec03949cf60 SHA512 bd563330aa80acbf4087b54f42ffb94856495cf82da8b9c5ae54bdcda2d2544e4293a427ed3b28de7622c2fe063cd14f969b894735eb81cb4932cc3e2ad27bef WHIRLPOOL f49f6278d1b9ec0cc35af5f5f8b695c34082fd3ae8acdc0990634b15305d09b5f975f8906e568ca8ca25a746822c1d11c0c2c7933ad429856ec614fad51c84b6
diff --git a/dev-python/traitsui/files/traitsui-4.3.0-tests.patch b/dev-python/traitsui/files/traitsui-4.3.0-tests.patch
new file mode 100644
index 00000000000..2712203dfb5
--- /dev/null
+++ b/dev-python/traitsui/files/traitsui-4.3.0-tests.patch
@@ -0,0 +1,34 @@
+https://github.com/enthought/traitsui/issues/74
+diff -ur traitsui-4.3.0.orig/traitsui/qt4/ui_panel.py traitsui-4.3.0/traitsui/qt4/ui_panel.py
+--- traitsui/qt4/ui_panel.py 2013-03-29 04:08:54.000000000 +0800
++++ traitsui/qt4/ui_panel.py 2013-04-12 13:23:09.499989912 +0800
+@@ -977,7 +977,7 @@
+
+ if (label is not None
+ and not is_label_left
+- and item_policy == QtGui.QSizePolicy.Policy.Minimum):
++ and item_policy == QtGui.QSizePolicy.Minimum):
+ # this item cannot be stretched horizontally, and the label
+ # exists and is on the right -> make label stretchable if necessary
+
+@@ -1012,7 +1012,7 @@
+ label_policy = label.sizePolicy()
+ label_policy.setHorizontalStretch(stretch)
+ label_policy.setHorizontalPolicy(
+- QtGui.QSizePolicy.Policy.Expanding)
++ QtGui.QSizePolicy.Expanding)
+ label.setSizePolicy(label_policy)
+
+
+diff -ur traitsui-4.3.0.orig/traitsui/tests/_tools.py traitsui-4.3.0/traitsui/tests/_tools.py
+--- traitsui/tests/_tools.py 2013-03-29 04:08:54.000000000 +0800
++++ traitsui/tests/_tools.py 2013-04-12 13:23:09.502989914 +0800
+@@ -173,7 +173,7 @@
+ return ui_control.GetSizeTuple()
+
+ elif is_current_backend_qt4():
+- return ui_control.size().toTuple()
++ return ui_control.size().width(), ui_control.size().height()
+
+
+ # ######### Debug tools
diff --git a/dev-python/traitsui/metadata.xml b/dev-python/traitsui/metadata.xml
new file mode 100644
index 00000000000..89dc0b65760
--- /dev/null
+++ b/dev-python/traitsui/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ The traitsui project contains a toolkit-independent GUI abstraction
+ layer, which is used to support the "visualization" features of the
+ Traits package. Thus, you can write code in terms of the Traits API
+ (views, items, editors, etc.), and let traitsui and your selected
+ toolkit and back-end take care of the details of displaying them.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">traitsui</remote-id>
+ <remote-id type="github">enthought/traitsui</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/traitsui/traitsui-4.4.0.ebuild b/dev-python/traitsui/traitsui-4.4.0.ebuild
new file mode 100644
index 00000000000..b55644f4c1c
--- /dev/null
+++ b/dev-python/traitsui/traitsui-4.4.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Enthought Tool Suite: Traits-capable user interfaces"
+HOMEPAGE="https://github.com/enthought/traitsui"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/pyface[${PYTHON_USEDEP}]
+ dev-python/traits[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ media-fonts/font-cursor-misc
+ media-fonts/font-misc-misc
+ )"
+
+python_test() {
+ export ETS_TOOLKIT=qt4
+ export QT_API=pyqt
+ VIRTUALX_COMMAND="nosetests -v" virtualmake
+
+}
diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest
new file mode 100644
index 00000000000..918c0489cda
--- /dev/null
+++ b/dev-python/translate-toolkit/Manifest
@@ -0,0 +1 @@
+DIST translate-toolkit-1.12.0.tar.bz2 5329772 SHA256 11e332f2a29d8644364b4ca79b4ac079df328626ec8c27ac0e8cc454696719ca SHA512 c84424790ad66492dec97a5ec5601f5ffa68d23b219836def998847449b902970ac32fcb7d06455365e00c7b06f49d7dedda5257275bf7e845b16100153922dd WHIRLPOOL 866eb62056a30c8042d96a1ec06a23e56c2a5121dd66234a8b0889193548fff962d4c56700bb50a01c793e2443d49e33a02d92d5b53513f6c7b0805af827decf
diff --git a/dev-python/translate-toolkit/metadata.xml b/dev-python/translate-toolkit/metadata.xml
new file mode 100644
index 00000000000..0cb702435e1
--- /dev/null
+++ b/dev-python/translate-toolkit/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="html">Support conversion between po and html files</flag>
+ <flag name="ical">Support conversion between po and ical files</flag>
+ <flag name="ini">Support conversion between po and ini files</flag>
+ <flag name="subtitles">Support conversion between po and sub files</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">translate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/translate-toolkit/translate-toolkit-1.12.0.ebuild b/dev-python/translate-toolkit/translate-toolkit-1.12.0.ebuild
new file mode 100644
index 00000000000..c35718f7d3b
--- /dev/null
+++ b/dev-python/translate-toolkit/translate-toolkit-1.12.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+DESCRIPTION="Toolkit to convert between many translation formats"
+HOMEPAGE="http://translate.sourceforge.net"
+SRC_URI="mirror://sourceforge/translate/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc +html +ical +ini +subtitles"
+
+RDEPEND="
+ app-text/iso-codes
+ sys-devel/gettext
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/python-levenshtein-0.10.2[${PYTHON_USEDEP}]
+ !=dev-python/python-levenshtein-0.11.0[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/diff-match-patch[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ html? ( dev-python/utidylib[${PYTHON_USEDEP}] )
+ ical? ( dev-python/vobject[${PYTHON_USEDEP}] )
+ ini? ( dev-python/iniparse[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ ${RDEPEND}"
+
+python_prepare_all() {
+ # Prevent unwanted d'loading in doc build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${S}"/docs/_build/html/. )
+ distutils-r1_python_install_all
+ rm -Rf docs || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ if ! use html; then
+ rm "${ED}"/usr/bin/html2po || die
+ rm "${ED}"/usr/bin/po2html || die
+ fi
+ if ! use ical; then
+ rm "${ED}"/usr/bin/ical2po || die
+ rm "${ED}"/usr/bin/po2ical || die
+ fi
+ if ! use ini; then
+ rm "${ED}"/usr/bin/ini2po || die
+ rm "${ED}"/usr/bin/po2ini || die
+ fi
+ if ! use subtitles; then
+ rm "${ED}"/usr/bin/sub2po || die
+ rm "${ED}"/usr/bin/po2sub || die
+ fi
+}
diff --git a/dev-python/translationstring/Manifest b/dev-python/translationstring/Manifest
new file mode 100644
index 00000000000..5c92e18b14d
--- /dev/null
+++ b/dev-python/translationstring/Manifest
@@ -0,0 +1 @@
+DIST translationstring-1.3.tar.gz 29259 SHA256 4ee44cfa58c52ade8910ea0ebc3d2d84bdcad9fa0422405b1801ec9b9a65b72d SHA512 deba5b460d9ea640087cff8b5d7b9256708abd4340a54556f1f0542e2e4f9f0ae0a3482b66a176712fcd6925c470da621adbc5e4c4173c0ef29b9cca5fba1102 WHIRLPOOL bfc0f2d469718d6b27083feb10189dcab4e310183604c550314f4ecffaf38a8738bf2213e03eece6ce52dbf914c70b0629a44e5d1d7d1dcc4dfd9faa55b75191
diff --git a/dev-python/translationstring/metadata.xml b/dev-python/translationstring/metadata.xml
new file mode 100644
index 00000000000..fa2a3ed870b
--- /dev/null
+++ b/dev-python/translationstring/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">translationstring</remote-id>
+ <remote-id type="github">Pylons/translationstring</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/translationstring/translationstring-1.3.ebuild b/dev-python/translationstring/translationstring-1.3.ebuild
new file mode 100644
index 00000000000..735f15f16d5
--- /dev/null
+++ b/dev-python/translationstring/translationstring-1.3.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Utility library for i18n relied on by various Repoze packages"
+HOMEPAGE="https://github.com/Pylons/translationstring http://pypi.python.org/pypi/translationstring"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+# Include COPYRIGHT.txt because the license seems to require it.
+DOCS=( COPYRIGHT.txt README.rst )
+
+python_test() {
+ esetup.py test || die
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # Install only the .rst source, as sphinx processing requires a
+ # theme only available from git that contains hardcoded references
+ # to files on https://static.pylonsproject.org/ (so the docs would
+ # not actually work offline). Install into a "docs" subdirectory
+ # so the reference in the README remains correct.
+ docinto docs
+ docompress -x usr/share/doc/${PF}/docs
+ dodoc docs/*.rst
+}
diff --git a/dev-python/transmissionrpc/Manifest b/dev-python/transmissionrpc/Manifest
new file mode 100644
index 00000000000..26ba5ce77c0
--- /dev/null
+++ b/dev-python/transmissionrpc/Manifest
@@ -0,0 +1,2 @@
+DIST transmissionrpc-0.11.tar.gz 96091 SHA256 ec43b460f9fde2faedbfa6d663ef495b3fd69df855a135eebe8f8a741c0dde60 SHA512 778c4099264d38deefbcf05c8f9e5d165ce113b4180e3797eb3cf11f0a9ba5393c0b2e6f1f0ae7c2dcfc679bfc1d0d69cb3715b3db6ac90a1a840fbd0775f82f WHIRLPOOL fabee8985ce38d6430aa80fdda1ea90d244a33cd50f1cb8200b10e81b607000e119cb70a9dd7ed5276ed8384e5dc32f1fb47ab50143b4cbec535ed759989ec64
+DIST ubuntu-12.04.2-alternate-amd64.iso.torrent 28541 SHA256 2fe13c38b0b9ab9b1d3d92c53af8f8c0be5e9d36dd270591deee922bdcceaf64 SHA512 a597d9c5258111cb9c42dfcbb0804e093b6c69d4cdf178c961de1d52ec64e75f76d078700b59535e631575e42d3a995844ac0d30c9f7e852ab1ece149ec1f6de WHIRLPOOL 36323cf11643be4fd51b2dc658c0bd96b2dafc5ceffeed71cfdc6603520e78cc52ba19ace46b642e03fb950aae7b6b9ca7e3c0ee2f2790341820cf06ff52f71d
diff --git a/dev-python/transmissionrpc/metadata.xml b/dev-python/transmissionrpc/metadata.xml
new file mode 100644
index 00000000000..ad30f06856c
--- /dev/null
+++ b/dev-python/transmissionrpc/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">transmissionrpc</remote-id>
+ <remote-id type="bitbucket">blueluna/transmissionrpc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/transmissionrpc/transmissionrpc-0.11.ebuild b/dev-python/transmissionrpc/transmissionrpc-0.11.ebuild
new file mode 100644
index 00000000000..cb0bbd3e195
--- /dev/null
+++ b/dev-python/transmissionrpc/transmissionrpc-0.11.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+if [[ ${PV} != 9999 ]]; then
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ https://bitbucket.org/blueluna/transmissionrpc/src/release-0.10/test/data/ubuntu-12.04.2-alternate-amd64.iso.torrent"
+ KEYWORDS="~amd64 ~x86"
+else
+ inherit mercurial
+ EHG_REPO_URI="https://bitbucket.org/blueluna/${PN}"
+ KEYWORDS=""
+fi
+
+DESCRIPTION="Python module that implements the Transmission bittorrent client RPC protocol"
+HOMEPAGE="https://bitbucket.org/blueluna/transmissionrpc"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
+
+RDEPEND=">=dev-python/six-1.1.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ cp "${DISTDIR}/ubuntu-12.04.2-alternate-amd64.iso.torrent" ${P}/test/data/ || die
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/transmissionrpc/transmissionrpc-9999.ebuild b/dev-python/transmissionrpc/transmissionrpc-9999.ebuild
new file mode 100644
index 00000000000..80cf369aedf
--- /dev/null
+++ b/dev-python/transmissionrpc/transmissionrpc-9999.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+if [[ ${PV} != 9999 ]]; then
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+else
+ inherit mercurial
+ EHG_REPO_URI="https://bitbucket.org/blueluna/${PN}"
+ KEYWORDS=""
+fi
+
+DESCRIPTION="Python module that implements the Transmission bittorrent client RPC protocol"
+HOMEPAGE="https://bitbucket.org/blueluna/transmissionrpc"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
+
+RDEPEND=">=dev-python/six-1.1.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/treq/Manifest b/dev-python/treq/Manifest
new file mode 100644
index 00000000000..b8a8dc8871f
--- /dev/null
+++ b/dev-python/treq/Manifest
@@ -0,0 +1 @@
+DIST treq-0.2.1.tar.gz 30954 SHA256 487b9a48f15c1bc482b9be694ad436d70ecdc7a9f0fd3aaf02a30b7f547d9b9d SHA512 d9236c395dca66d358fc9bb1b752e02a7d6335195235808452542de33145057c1c2e959658015b3c89c9a20c35b1a8edb752e151230e72edd313dde6cd6a4cac WHIRLPOOL 2d9b4d5bbf6c8a274d43be6c92f26b4158cd4844074f84d5cd1ef09f49e3ee41454b1b7874074ec3a8c8617a299ddf6d8df6a12d41cd660a188811ae92a44573
diff --git a/dev-python/treq/metadata.xml b/dev-python/treq/metadata.xml
new file mode 100644
index 00000000000..061624702a4
--- /dev/null
+++ b/dev-python/treq/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ryao@gentoo.org</email>
+ <name>Richard Yao</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">treq</remote-id>
+ <remote-id type="github">dreid/treq</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/treq/treq-0.2.1.ebuild b/dev-python/treq/treq-0.2.1.ebuild
new file mode 100644
index 00000000000..78bb1bca8f6
--- /dev/null
+++ b/dev-python/treq/treq-0.2.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="Python requests like API built on top of Twisted's HTTP client."
+HOMEPAGE="https://github.com/dreid/${PN}"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+COMMON_DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+RDEPEND="${COMMON_DEPEND}
+ >=dev-python/pyopenssl-0.11[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-12.1.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-12.1.0[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]"
+
+DEPEND="${COMMON_DEPEND}
+ doc? ( dev-python/sphinx
+ ${RDEPEND} )
+ test? ( dev-python/mock[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ use doc && emake -C "${S}/docs" html
+}
+
+python_install_all() {
+ use doc && dohtml -r "${S}/docs/_build/html/"*
+}
+
+python_test() {
+ trial treq || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/trollius/Manifest b/dev-python/trollius/Manifest
new file mode 100644
index 00000000000..2eb410cc63e
--- /dev/null
+++ b/dev-python/trollius/Manifest
@@ -0,0 +1 @@
+DIST trollius-1.0.4.tar.gz 259188 SHA256 8884cae4ec6a2d593abcffd5e700626ad4618f42b11beb2b75998f2e8247de76 SHA512 f8df8c9f0034e6075e2a356a0bcfcd7908d98d8d14b07332a71de0115753e17335f5b8030c06c6b2a5b79437392ccf13f92d46155622f789b13c36d04c6d1f9e WHIRLPOOL 0cc57bee6be7a2bd8785decc406792c0d354dfc24f4a51b40d0de9557e212cbda738f9aab0a41fcb1ebe1a4b72986c09db1e243fd6ca3398f1df400e8c4ae6ad
diff --git a/dev-python/trollius/metadata.xml b/dev-python/trollius/metadata.xml
new file mode 100644
index 00000000000..68aa3af684b
--- /dev/null
+++ b/dev-python/trollius/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">trollius</remote-id>
+ <remote-id type="bitbucket">enovance/trollius</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/trollius/trollius-1.0.4.ebuild b/dev-python/trollius/trollius-1.0.4.ebuild
new file mode 100644
index 00000000000..428f3627efd
--- /dev/null
+++ b/dev-python/trollius/trollius-1.0.4.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="A port of the Tulip project (asyncio module, PEP3156)"
+HOMEPAGE="https://bitbucket.org/enovance/trollius/ https://pypi.python.org/pypi/trollius/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+
+RDEPEND="virtual/python-futures[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" runtests.py || die "Testing failed under ${EPYTHON}"
+}
diff --git a/dev-python/ttfquery/Manifest b/dev-python/ttfquery/Manifest
new file mode 100644
index 00000000000..221b3c94461
--- /dev/null
+++ b/dev-python/ttfquery/Manifest
@@ -0,0 +1 @@
+DIST TTFQuery-1.0.5.tar.gz 17850 SHA256 d5b8d369903ee2754541819f27de8ea35486d124484e36a4869503d9a9ac7e4d SHA512 c5bbdd7cb020dd23f20341d53f400f592654293bd923f64a0d33e269cbd3bc44a97a5cf5bb16485a8978e0d35d729edefbdd6c7d2e51dc65820699bb1df0f60b WHIRLPOOL 66fb07b51abf816567b36536980943d6f55f3f8800dfbeb131d0089d53db1daf8740897feacb32b96d4f6b9654812a627bc5cdea8542b48cb14e68750f447f97
diff --git a/dev-python/ttfquery/metadata.xml b/dev-python/ttfquery/metadata.xml
new file mode 100644
index 00000000000..1a601e594b4
--- /dev/null
+++ b/dev-python/ttfquery/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>fonts</herd>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">TTFQuery</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ttfquery/ttfquery-1.0.5-r1.ebuild b/dev-python/ttfquery/ttfquery-1.0.5-r1.ebuild
new file mode 100644
index 00000000000..94c24cd46d0
--- /dev/null
+++ b/dev-python/ttfquery/ttfquery-1.0.5-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="TTFQuery"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Font metadata and glyph outline extraction utility library"
+HOMEPAGE="http://ttfquery.sourceforge.net/ http://pypi.python.org/pypi/TTFQuery"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc x86"
+IUSE=""
+
+DEPEND="dev-python/fonttools
+ dev-python/numpy"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/ttystatus/Manifest b/dev-python/ttystatus/Manifest
new file mode 100644
index 00000000000..a2c00a8c31e
--- /dev/null
+++ b/dev-python/ttystatus/Manifest
@@ -0,0 +1,2 @@
+DIST python-ttystatus_0.22.orig.tar.gz 30262 SHA256 ce3c0578364fab86278a694c2a193faf81c8e83df06f489d5395bd9d9706fbc3 SHA512 c6bf2a6dc81842799aecd9cacc0f91ea95cbe0befa80beef454c9f6e819f03180ee4964018c698a39cc2b7e245402a7c1d422fe5e0b750715bb068c22373d90a WHIRLPOOL 203446bfc2886b3a2c562675a6826ed0d8bcd475f77efc3326dbf2d2280cd17c77660d97041e3d3954243a34e1ac0d22f835b0d149c52db726a83783fad5ffe0
+DIST python-ttystatus_0.23.orig.tar.gz 30299 SHA256 1ecd58dff0049fdccedb6cd41ff0ddc51971c943e8d1887f8c027ae9e3aeb17a SHA512 29dd9ee0a063b4f49c72a1f08acfe80f4db9b3a374b1424a98926d25e22c8df0ed89441997322556edaad03a339dafdbf874a1247f095f1f857ef04f90b8a040 WHIRLPOOL 82576ac9346fe025d1ebc6d53e61cdfbcc3cb75f2c17e4bfb365d75088e5cf1bc00c6be6acfb729457324ea8e89d7d554efd2f3ab0c8a76103656a5a516e7172
diff --git a/dev-python/ttystatus/metadata.xml b/dev-python/ttystatus/metadata.xml
new file mode 100644
index 00000000000..ea7bd021a21
--- /dev/null
+++ b/dev-python/ttystatus/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mschiff@gentoo.org</email>
+ <name>Marc Schiffbauer</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/ttystatus/ttystatus-0.22.ebuild b/dev-python/ttystatus/ttystatus-0.22.ebuild
new file mode 100644
index 00000000000..17961ccedf7
--- /dev/null
+++ b/dev-python/ttystatus/ttystatus-0.22.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Terminal progress bar and status output for command line"
+HOMEPAGE="http://liw.fi/ttystatus/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="${PYTHON_DEPS}"
diff --git a/dev-python/ttystatus/ttystatus-0.23.ebuild b/dev-python/ttystatus/ttystatus-0.23.ebuild
new file mode 100644
index 00000000000..b6a512d499d
--- /dev/null
+++ b/dev-python/ttystatus/ttystatus-0.23.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Terminal progress bar and status output for command line"
+HOMEPAGE="http://liw.fi/ttystatus/"
+SRC_URI="http://code.liw.fi/debian/pool/main/p/python-${PN}/python-${PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86"
+IUSE=""
+
+DEPEND="${PYTHON_DEPS}"
diff --git a/dev-python/turbocheetah/Manifest b/dev-python/turbocheetah/Manifest
new file mode 100644
index 00000000000..6951fb5fecb
--- /dev/null
+++ b/dev-python/turbocheetah/Manifest
@@ -0,0 +1 @@
+DIST TurboCheetah-1.0.tar.gz 4335 SHA256 9e4c7ecb0d061bfb58281363ee1b09337083f013a8b4d0355326a5d8668f450c SHA512 7f231ee1e9f09c2c73a6a3c3be04643e6a13f2e488329d086cba759a75bfaf6c3f5b1670d21dec54bf3df8f2a449faa365c600ae47705295e13727ea4fccbb92 WHIRLPOOL 3a59280b1e805631043e06766a0df98e47d76d0b6c062c336a4daf205d1b8606f975d37c80e9d6374ca0365b910a67d7ad44e3b4bd8bc6b87e147c2c00033336
diff --git a/dev-python/turbocheetah/metadata.xml b/dev-python/turbocheetah/metadata.xml
new file mode 100644
index 00000000000..d0d144ae606
--- /dev/null
+++ b/dev-python/turbocheetah/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">TurboCheetah</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/turbocheetah/turbocheetah-1.0-r1.ebuild b/dev-python/turbocheetah/turbocheetah-1.0-r1.ebuild
new file mode 100644
index 00000000000..29dc58fc46a
--- /dev/null
+++ b/dev-python/turbocheetah/turbocheetah-1.0-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+#DISTUTILS_SRC_TEST="nosetests"
+
+MY_PN="TurboCheetah"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="TurboGears plugin to support use of Cheetah templates"
+HOMEPAGE="http://docs.turbogears.org/TurboCheetah http://pypi.python.org/pypi/TurboCheetah"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/cheetah-2.0.1[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "test failed"
+}
diff --git a/dev-python/turbojson/Manifest b/dev-python/turbojson/Manifest
new file mode 100644
index 00000000000..d6b321881f9
--- /dev/null
+++ b/dev-python/turbojson/Manifest
@@ -0,0 +1 @@
+DIST TurboJson-1.3.2.tar.gz 6613 SHA256 d517a7bde5346e17867f1eb42721f4d9c600e618e11ab7ad8b3536e66fda7ebe SHA512 5c3a2382f764ad42629b3f992f0fcef61b858a9ade4084b86d96c16efbf398a6ea5f8d04c3cc5618c681fe1a111877aa64777748535e9830495aaf59e53d11b1 WHIRLPOOL fd98bf4afa94b4f5892b09d2f357b3550b5a9bafdb76e638c25b945151cddb428dbc863408fa0e363538b4b561a653959f0672f40318f1c0dff46fe5ed12a4ea
diff --git a/dev-python/turbojson/metadata.xml b/dev-python/turbojson/metadata.xml
new file mode 100644
index 00000000000..7afac5bb2a5
--- /dev/null
+++ b/dev-python/turbojson/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">TurboJson</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/turbojson/turbojson-1.3.2-r1.ebuild b/dev-python/turbojson/turbojson-1.3.2-r1.ebuild
new file mode 100644
index 00000000000..1613740b75c
--- /dev/null
+++ b/dev-python/turbojson/turbojson-1.3.2-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="TurboJson"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="TurboGears JSON file format support plugin"
+HOMEPAGE="http://pypi.python.org/pypi/TurboJson"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=">=dev-python/simplejson-1.9.1[${PYTHON_USEDEP}]
+ >=dev-python/peak-rules-0.5[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+# Testsuite requires a package of peak not present in portage
diff --git a/dev-python/turbokid/Manifest b/dev-python/turbokid/Manifest
new file mode 100644
index 00000000000..a81d42f562c
--- /dev/null
+++ b/dev-python/turbokid/Manifest
@@ -0,0 +1 @@
+DIST TurboKid-1.0.5.tar.gz 6878 SHA256 25ff2b8a0b8d62c02c188931bb7a51fe6d421ed6db538cc07a9332ce4093c962 SHA512 13a7aba4773ceb5c591c9b5f33b585161a6b6bd92f13169291c20e2cb77b10fe97e3f2d5596d0498add34728a36f6e0968f236fca87f1091a92eee68704222a4 WHIRLPOOL 404a86ce7d3e1034f956e247a9f2c5c8cf02ddae37b5044859b6a48956dc0d6e586943424d5b363ea05abf90fa3d2e223d52cc996f72f4f1dc9096e0cb411841
diff --git a/dev-python/turbokid/metadata.xml b/dev-python/turbokid/metadata.xml
new file mode 100644
index 00000000000..3dd032502ba
--- /dev/null
+++ b/dev-python/turbokid/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">TurboKid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/turbokid/turbokid-1.0.5-r1.ebuild b/dev-python/turbokid/turbokid-1.0.5-r1.ebuild
new file mode 100644
index 00000000000..60c979c247e
--- /dev/null
+++ b/dev-python/turbokid/turbokid-1.0.5-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="TurboKid"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python template plugin that supports Kid templates"
+HOMEPAGE="http://pypi.python.org/pypi/TurboKid"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+S="${WORKDIR}/${MY_P}"
+
+RDEPEND=">=dev-python/kid-0.9.6[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/turbolift/Manifest b/dev-python/turbolift/Manifest
new file mode 100644
index 00000000000..186a2569537
--- /dev/null
+++ b/dev-python/turbolift/Manifest
@@ -0,0 +1 @@
+DIST turbolift-2.0.5.tar.gz 47316 SHA256 7ea374122855949481427201327f08198a5b164c59057e7f07f9812b9d0c5e0d SHA512 42b89d4dc1a4699bc4d43863f0d9faeb5cd1442222a7d93a008a8d335bee25112e16c2e0a05d05442e53a5e4e4f7a7012b420bd49d8d0e5668fe1b487b825834 WHIRLPOOL 9199fbdc62d15bd18227cc5deb84870f01ef8569be1f491292aa5c5c6b54afbdc5eedbae23a8eeb02f8bf92ca2694ec649417ea61f13a0fc2762a0790d24b90b
diff --git a/dev-python/turbolift/metadata.xml b/dev-python/turbolift/metadata.xml
new file mode 100644
index 00000000000..a809de117fa
--- /dev/null
+++ b/dev-python/turbolift/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Openstack Swift sync/backup utility
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">turbolift</remote-id>
+ <remote-id type="github">cloudnull/turbolift</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/turbolift/turbolift-2.0.5.ebuild b/dev-python/turbolift/turbolift-2.0.5.ebuild
new file mode 100644
index 00000000000..97f8c3fa981
--- /dev/null
+++ b/dev-python/turbolift/turbolift-2.0.5.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+# tests are not distributed with the release tarball
+RESTRICT="test"
+
+inherit distutils-r1
+
+DESCRIPTION="Openstack Swift sync/backup utility"
+HOMEPAGE="https://github.com/cloudnull/turbolift/wiki"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools
+ test? (
+ >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.9[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ dev-python/tox[${PYTHON_USEDEP}]
+ )"
+
+RDEPEND=">=dev-python/prettytable-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.0[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${PYTHON} -m unit discover turbolift/tests || die "failed testsuite"
+}
diff --git a/dev-python/tvdb_api/Manifest b/dev-python/tvdb_api/Manifest
new file mode 100644
index 00000000000..81f91771606
--- /dev/null
+++ b/dev-python/tvdb_api/Manifest
@@ -0,0 +1 @@
+DIST tvdb_api-1.9.tar.gz 32429 SHA256 516bd5f9150f7fcb1df11cd73b2af0e155eb8282e49c197449df295cd0e0f873 SHA512 6ce13f47275eb3f37897da1b9bfb2d101184e3797abeec965c170d9b007661c3e0745396bc93bf365d6a1552fb461a2fd7b33777b4a67e58281c8ac3efb788df WHIRLPOOL 596c680383fe43f4575e968358c6a839d070c1eb1561e7a7f673516d1fb445bc0f9927c22eecf2762be5d0fe5fd63c840ba95ff08779a218c1389b3d66ea8668
diff --git a/dev-python/tvdb_api/metadata.xml b/dev-python/tvdb_api/metadata.xml
new file mode 100644
index 00000000000..7af64a5cd5c
--- /dev/null
+++ b/dev-python/tvdb_api/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>thev00d00@gentoo.org</email>
+ <name>Ian Whyman</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">dbr/tvdb_api</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tvdb_api/tvdb_api-1.9.ebuild b/dev-python/tvdb_api/tvdb_api-1.9.ebuild
new file mode 100644
index 00000000000..c38fe939acb
--- /dev/null
+++ b/dev-python/tvdb_api/tvdb_api-1.9.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT="python2_7"
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Python interface to thetvdb.com API"
+HOMEPAGE="http://github.com/dbr/tvdb_api"
+SRC_URI="https://github.com/dbr/${PN}/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools"
+RDEPEND=""
diff --git a/dev-python/tweepy/Manifest b/dev-python/tweepy/Manifest
new file mode 100644
index 00000000000..b05219b9466
--- /dev/null
+++ b/dev-python/tweepy/Manifest
@@ -0,0 +1,2 @@
+DIST tweepy-2.3.tar.gz 52352 SHA256 bce05e6375d03b42ba7fef2a972635be6841dd0f26b86bc5704154d248cd29d7 SHA512 23317a507174e108cf8d13232aa467d892aba1789ee4f610eef4f5503b045841b5c85e8ae63ddcfd1e07178afbf3bf9f4a9fed939426411a8566f1c949b9b831 WHIRLPOOL b9adc746e498a0bde90dcb0b4a3ea5c6817e41c39980436ca42364dab21493b0201de6fb16a196b9f9171150d46cc1ad5e121710aaa62bf16b0875d0c6f73cd7
+DIST tweepy-3.3.0.tar.gz 23624 SHA256 2eb0b1396a9dbb29568bb037e77f2123c504bdc4055ac011f2027f3833b27068 SHA512 ca50fa4989f4fe45850c56b8bf327e8eab4f2b6c00e0dd3ade67f60349861ebfc1daa68b7f55284b527951e321661e15df8c198a2ac35e20d4adf1d24bf9bee3 WHIRLPOOL a07325535089769d9c8c40fd451f46c51439f6b97b4627f0364000487f9742feefd6ae8932f7b80c937274f0e4a88be89475bb03c152e73ddd859ae6c7155b5a
diff --git a/dev-python/tweepy/metadata.xml b/dev-python/tweepy/metadata.xml
new file mode 100644
index 00000000000..49b52e3a49c
--- /dev/null
+++ b/dev-python/tweepy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">tweepy/tweepy</remote-id>
+ <remote-id type="pypi">tweepy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tweepy/tweepy-2.3.ebuild b/dev-python/tweepy/tweepy-2.3.ebuild
new file mode 100644
index 00000000000..7968f4eeded
--- /dev/null
+++ b/dev-python/tweepy/tweepy-2.3.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="A Python library for accessing the Twitter API "
+HOMEPAGE="http://tweepy.github.com/"
+SRC_URI="https://github.com/tweepy/${PN}/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+#RESTRICT="test" #missing a required dep frpm portage
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Required to avoid file collisions at install
+ sed \
+ -e "/find_packages/s:]:,'tests.*','examples']:g" \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m tests || die "Tests failed"
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/tweepy/tweepy-3.3.0.ebuild b/dev-python/tweepy/tweepy-3.3.0.ebuild
new file mode 100644
index 00000000000..62821186bf7
--- /dev/null
+++ b/dev-python/tweepy/tweepy-3.3.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python library for accessing the Twitter API "
+HOMEPAGE="http://tweepy.github.com/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples test"
+
+RESTRICT="test" #missing in tarball
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ >=dev-python/requests-2.4.3[${PYTHON_USEDEP}]
+ >=dev-python/requests-oauthlib-0.4.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.3[${PYTHON_USEDEP}]
+"
+python_prepare_all() {
+ # Required to avoid file collisions at install
+ sed \
+ -e "/find_packages/s:]:,'tests.*','examples']:g" \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m tests || die "Tests failed"
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/twilio/Manifest b/dev-python/twilio/Manifest
new file mode 100644
index 00000000000..310a7ffb3e1
--- /dev/null
+++ b/dev-python/twilio/Manifest
@@ -0,0 +1 @@
+DIST twilio-3.6.9.tar.gz 226151 SHA256 0a6ce201edaf9f79a376f2713e10f3fc9cb8b64c046b1df5d1c87c56e8ec321b SHA512 f4e0f13e3f12ae8e15817a285a4388859b458ba7759acce4d5f6ee425bd6a06742bf271a01e1cc5140d63bc599828b940f1e96a6ed7f5744c1c9eaef2dd65b29 WHIRLPOOL 95fc4864dc63a5f18a3108014aca831da36ebfb4d8ff68cd739b768e6df81c56de8a2e1f4b138f927b4c5645ad0bf2a9d1330b81e34ca0e60bf6041fbd7ddf3f
diff --git a/dev-python/twilio/metadata.xml b/dev-python/twilio/metadata.xml
new file mode 100644
index 00000000000..a38887dd69f
--- /dev/null
+++ b/dev-python/twilio/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">twilio/twilio-python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/twilio/twilio-3.6.9.ebuild b/dev-python/twilio/twilio-3.6.9.ebuild
new file mode 100644
index 00000000000..66bba6f554a
--- /dev/null
+++ b/dev-python/twilio/twilio-3.6.9.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Helper library for the Twilio API"
+HOMEPAGE="https://github.com/twilio/twilio-python http://www.twilio.com/docs/python/install"
+SRC_URI="https://github.com/twilio/${PN}-python/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="test"
+
+CDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ dev-python/socksipy[${PYTHON_USEDEP}]"
+
+RDEPEND="${CDEPEND}"
+DEPEND="test? (
+ ${CDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ nosetests tests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/twill/Manifest b/dev-python/twill/Manifest
new file mode 100644
index 00000000000..566d4b10ae8
--- /dev/null
+++ b/dev-python/twill/Manifest
@@ -0,0 +1 @@
+DIST twill-0.9.tar.gz 242291 SHA256 8053c25fd6edf6ddf5e7583224e7b23ad947df1f90175b018af5cf7abeb42a86 SHA512 ea47400e236c4f5a4d38671bbc5690d004c4dbd20b6152c54c2fa64bae3e3ec68d16a5305d42e8631595cac25f5b2a08e0eb287b7e1ed7b90a8368d6063b1f1e WHIRLPOOL ee306acc4434b919119fa103d15f82909490b57440d61dc4193af3d11827759202949a8e568b356fcd52a34ec791f5f5adeedf7848471fe13f53fa7dbebc7ad3
diff --git a/dev-python/twill/metadata.xml b/dev-python/twill/metadata.xml
new file mode 100644
index 00000000000..9d2a9281f41
--- /dev/null
+++ b/dev-python/twill/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ twill is a simple language that allows users to browse the Web from a command-line interface. With twill, you can navigate through Web sites that use forms, cookies, and most standard Web features. twill supports automated Web testing and has a simple Python interface. Check out the examples! twill is open source and written in Python.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/dev-python/twill/twill-0.9-r1.ebuild b/dev-python/twill/twill-0.9-r1.ebuild
new file mode 100644
index 00000000000..1d397df7a63
--- /dev/null
+++ b/dev-python/twill/twill-0.9-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PV="${PV/_beta/b}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Simple scripting language for web browsing with Python API"
+HOMEPAGE="http://twill.idyll.org/"
+SRC_URI="http://darcs.idyll.org/~t/projects/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86"
+IUSE="doc examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( $(python_gen_cond_dep 'dev-python/epydoc[${PYTHON_USEDEP}]' python2_7)
+ $(python_gen_cond_dep 'dev-python/dnspython[${PYTHON_USEDEP}]' python2_7) )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_compile_all() {
+ if use doc; then
+ pushd doc > /dev/null
+ chmod +x make-epydoc.sh
+ ./make-epydoc.sh
+ popd> /dev/null
+ fi
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/epydoc-html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/twisted-conch/Manifest b/dev-python/twisted-conch/Manifest
new file mode 100644
index 00000000000..1bc41fc597f
--- /dev/null
+++ b/dev-python/twisted-conch/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedConch-13.0.0.tar.bz2 223663 SHA256 7ebbd2ff600a4ee7da3e683b22be4ad97db79ee3b0af0c2758ca3f3788cf9ef2 SHA512 80fc9e2ca1ebd5477964c0de4d0050f1e8ff81ad5f02f836bfa7dd20be487763add83b4df2a038b9cd6066b82cfee2dad932b0f6f7bcbd67428b6babddc3afb0 WHIRLPOOL 2b4b8599f28c0a5980903d0e678a3e05d4bac99a0bc5aa3db6f2fe0bfb3b6336434678f680fc8e3afeb443c470e10e9b08a28dfc7a02cd2ae0a070e7d4258de5
+DIST TwistedConch-13.2.0.tar.bz2 243977 SHA256 1559f2070e47a8dfb63a387a8d8deb4dae73226429b26bf2983dc7d1df86cc69 SHA512 3e9cfe76b5fdd8e18732d554721d493bed70b757b21029f8e126d486011b41da26a34409062cb5ffe4283a57b6d342434c84959b78b2781f069e22d2da610043 WHIRLPOOL 7ddf201c17f6625cac09197bfc1b532d1f6f8bd01b888668ccb16b5577b235a3379af11e436e0a4ed308218b6fc27e1250841367dc8c191bc420f4a90a7a2a49
+DIST TwistedConch-14.0.0.tar.bz2 219179 SHA256 5d1023bec87d2c1bf4d1e85f62a5fa304d9b3bf13e86c0af74cc8c9fb4916a83 SHA512 24826cad92b2f3b13cf4a3e731cfff9e36d703b45b15404fad2bba91df60bcc60f4cf687a3f2e646457f00d28b4ac3fa019ee1751a538b213a10526ab5aa24b8 WHIRLPOOL 71ddad3e483ccc9780eb2420cc04827d0809eb77e7d2e93ec886e3ccd4369193b34da905bddcc95414037fb27509cf33be334d39be969b7cb3749940263bab6b
+DIST TwistedConch-14.0.1.tar.bz2 219255 SHA256 41303b4f09ca7dcfc0b7e796f5f18f83d16cfde789f86364328a08217c18564e SHA512 a4800c437b15ca51fd9151b39e59771ba0a18ea2e9e07fcab2b26eabee925a272ab3dbed114197c9b52f1985f1dd23afacc91591c58fe9e64080394865a77a25 WHIRLPOOL d3551c7a4b412955f653eb1b004fbbca358523761b21578d7886756e180e791d90ef8240e4d5917d65a714a87e348c9fff6077c285e348517409babda90dff0f
+DIST TwistedConch-14.0.2.tar.bz2 219235 SHA256 6628807246be9dd2bea04222ebe2356f4a4a1accf38863983219df745052ad58 SHA512 dfceb9050ab5f1c9962e6ddc8568d546aea4f5028ba63a181b12b5880e130cfec1886fae5a74cd7e5bb79cf74cbcdae4fa7a4f5d814bd14f767ec9108fe83c19 WHIRLPOOL 99142269f412d82eb8e074dbab7f7d3925881e3d6c8e5823f2c72eff425625cf280ce82655d9f708ddb5db544cea8f4e0b02af3e0026133abe9343cb7c79ada4
+DIST TwistedConch-15.1.0.tar.bz2 222091 SHA256 51dc4d3ab3f13e64a196046e3d722689f87c586f3ebe42e287c2063fdd48bb4c SHA512 912d9a288fcc6bb3e8babee75325ea7a384e364d227f0629bbb5af8c813cff75dbeb38755d2f0eb5bd5ac243c45c4ed5f1c9e01bf0d693b027adeeef59ebd691 WHIRLPOOL 09717988167eaf7ed4ed48262ea344342125deae845b3dce0781a84122446922864d189943011d0be9ddc0711a2236637cb9d6c28e049f5e7c3a59440a65512b
+DIST TwistedConch-15.2.1.tar.bz2 222736 SHA256 77ad3f89fcad8918067e047831c0716a514ff5f9405d6896abf17fd3de05d634 SHA512 d21879801e3cc925345e6528a84fa031f5cc1c8a2b5aebc5d3540fdd356d9743fe827ab8060db13b462a6d8986ac23307feaf78725950cef462f06b4edb93df7 WHIRLPOOL 072a90c66380467354e32af702a0caef71bbd4de469681240e3e91deb74927e5364835d4065a72224433d716763b5eff503adc5205c28a61a07f7ec51c1fb671
diff --git a/dev-python/twisted-conch/metadata.xml b/dev-python/twisted-conch/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-conch/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-conch/twisted-conch-13.0.0-r1.ebuild b/dev-python/twisted-conch/twisted-conch-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..2389e7b781e
--- /dev/null
+++ b/dev-python/twisted-conch/twisted-conch-13.0.0-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted SSHv2 implementation"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86"
+IUSE=""
+
+DEPEND="
+ =dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_checkKeyAsRoot/_&/" -i twisted/conch/test/test_checkers.py
+ sed -e "s/test_getPrivateKeysAsRoot/_&/" -i twisted/conch/test/test_openssh_compat.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/twisted-conch/twisted-conch-13.2.0.ebuild b/dev-python/twisted-conch/twisted-conch-13.2.0.ebuild
new file mode 100644
index 00000000000..2389e7b781e
--- /dev/null
+++ b/dev-python/twisted-conch/twisted-conch-13.2.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted SSHv2 implementation"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86"
+IUSE=""
+
+DEPEND="
+ =dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_checkKeyAsRoot/_&/" -i twisted/conch/test/test_checkers.py
+ sed -e "s/test_getPrivateKeysAsRoot/_&/" -i twisted/conch/test/test_openssh_compat.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/twisted-conch/twisted-conch-14.0.0.ebuild b/dev-python/twisted-conch/twisted-conch-14.0.0.ebuild
new file mode 100644
index 00000000000..b09c365c71f
--- /dev/null
+++ b/dev-python/twisted-conch/twisted-conch-14.0.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted SSHv2 implementation"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+DEPEND="
+ =dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_checkKeyAsRoot/_&/" -i twisted/conch/test/test_checkers.py
+ sed -e "s/test_getPrivateKeysAsRoot/_&/" -i twisted/conch/test/test_openssh_compat.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/twisted-conch/twisted-conch-14.0.1.ebuild b/dev-python/twisted-conch/twisted-conch-14.0.1.ebuild
new file mode 100644
index 00000000000..adfda71ba44
--- /dev/null
+++ b/dev-python/twisted-conch/twisted-conch-14.0.1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted SSHv2 implementation"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+DEPEND="
+ =dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-conch/twisted-conch-14.0.2.ebuild b/dev-python/twisted-conch/twisted-conch-14.0.2.ebuild
new file mode 100644
index 00000000000..adfda71ba44
--- /dev/null
+++ b/dev-python/twisted-conch/twisted-conch-14.0.2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted SSHv2 implementation"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+DEPEND="
+ =dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-conch/twisted-conch-15.1.0.ebuild b/dev-python/twisted-conch/twisted-conch-15.1.0.ebuild
new file mode 100644
index 00000000000..504d38640e2
--- /dev/null
+++ b/dev-python/twisted-conch/twisted-conch-15.1.0.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted SSHv2 implementation"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~x86"
+IUSE=""
+
+DEPEND="
+ =dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-conch/twisted-conch-15.2.1.ebuild b/dev-python/twisted-conch/twisted-conch-15.2.1.ebuild
new file mode 100644
index 00000000000..504d38640e2
--- /dev/null
+++ b/dev-python/twisted-conch/twisted-conch-15.2.1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted SSHv2 implementation"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~x86"
+IUSE=""
+
+DEPEND="
+ =dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-core/Manifest b/dev-python/twisted-core/Manifest
new file mode 100644
index 00000000000..311de3c66a7
--- /dev/null
+++ b/dev-python/twisted-core/Manifest
@@ -0,0 +1,8 @@
+DIST TwistedCore-12.3.0.tar.bz2 1480622 SHA256 343dd7372b05d4aa0805406bcbee7db40514b6bb48aa2840e0e56d88a8970900 SHA512 86e9bbd4b8b0b5f70b62757f9ce93fd03c2766b4cb9722028ec7863d1b9dd19e6d3771472a86f1373a8320a98f5081ac76400ac6bb25a950b6fc50fb241ebeb8 WHIRLPOOL 77cb88bd53a5c489ad8781ebef10987766dfd42d8ad3bcd599b9ba2bbc77cf41bee8507a29727cb6d88590d8cb2ac118b1eeb553c034107513502cf7ae62f6aa
+DIST TwistedCore-13.0.0.tar.bz2 1495753 SHA256 989706fd39c8a28785bdecaa0145b81f7e159b9209d463b5885be7e5c34ff32f SHA512 624d73d267742cb5b97bed2a39e78caeb01ee5fa871a0a2133455809b1d2a695f0d375c022ae21e91ef20f92fdee05a08a11db7b6b1e92ec810d3e097f929972 WHIRLPOOL 02c25eb94ad0aaafea8e1599df387607c6a1323ac55c31b0e98a366f927da2245fc839f5a3509367ed18690694f8599ebb22c0b21b8c90dfbfe2e3727a7846ff
+DIST TwistedCore-13.2.0.tar.bz2 1496299 SHA256 396ee27f0e824772bf26c636c69c2751127738127e283112e72c2de6c28e36be SHA512 90cf2019f0d5b125c7bbb5a9e3e7d2dedcd8efd5f9b2ab057e0b41f899d394b995fe599128223c82b1a634fb881ad7ae8ddc5b86b26adb28a3834c05da45f2c6 WHIRLPOOL 21a90a98b36775db4e6154c30ea697ef53f4b94a30e1be125e420019d5200cbbf31178937c41b12ffb841b028875dbc6b1234cebf8036f4165d2908c431a6de4
+DIST TwistedCore-14.0.0.tar.bz2 1126188 SHA256 41fde42b917ea91c74e9ad15ae45a8104de156bcb32e7bb6a2dfa6c68141a72e SHA512 71294a10fb574d1794b730f11f89a689445ff13cf5553140dbbe049a03afe744bcc342cbff60b6d74714575bf840814fcddb0a7c94f5def1987966e0f1238704 WHIRLPOOL 1c68af280d33d0f6ce431a18f87bfa4f679aeab7f6217b388e8f7c7cb78d1b5e4587f3d3f02ccc0b7f87f6dc359c35aa15b0ee58f86385637a5d2236e7563c39
+DIST TwistedCore-14.0.1.tar.bz2 1126214 SHA256 4d80bb277bff34266fb03989d89f721ae41edfc755f4c0481813c04a759f16dc SHA512 44ef2e66636da1f7c6497cf1a4bacfdfdffd276e5b0f99b22c70f74a016de6f88a263fc549db3f04e09e86142514955bc79662760148680fb8ec823720a57a41 WHIRLPOOL ccd1acaf7f732d02b4fd45ca8285b8bbbcd3066176280b929a65879b4530f5158db8134296a35ffe565d2a8b72299ecf93329752bf5b409b60313a930cb1d876
+DIST TwistedCore-14.0.2.tar.bz2 1125732 SHA256 3d16cc6f432ecda1cc335b9a99592ee18d7eb8650e95d5f17895ab4e5e3a4ff8 SHA512 a361f5c9205eca3eda9bf222ed1894e1c55ff937e9950c0cfca193310a165486abffee529740c2c3cc0231c4ccba4d324e2ec7ef5d1aaa9516960b01e2e81ed9 WHIRLPOOL be3b1f70e616c48944741395e8c22240ea05d7f9c823b3b58ff9bebbe1d7293d0fb054b4820e19873aa1feb8d2c1e19fb84be1f632466b2c1d951900d1705d0b
+DIST TwistedCore-15.1.0.tar.bz2 1139396 SHA256 c769ecc62d65a33f04f932ec727c367eb557610392e9f7bab37eaf169fb1cebf SHA512 3978429d57b7929bd65103f86d5e150950de48d27382d23a08b97be5c62c218e7cbaa06067ba6c1b926fb372cc290baf5d629af91053cf338e331d996bf8c99a WHIRLPOOL 3baa9a5986e415fee15cbdb33263a9c9ba84a4c7c79a2f744acd28881de2043b56f97137acf5b97d243fe5d6b6885eebaae2b90cced5e81ac4bef5176fd6a1f7
+DIST TwistedCore-15.2.1.tar.bz2 1179442 SHA256 42efb31330e09b5ffdb8caf735fdb925692c6cfdc03ab7ad25104c3dc41154bb SHA512 c5923d71903afac7dec15d130ff3bd247dc1a6cdeb35cc642912a43f1e5640088971ddfc7abe3e18ca1853e59ba6a417d4b465fb422aba1a052bc156d7c6e820 WHIRLPOOL 8abb2522447fd2e9ad0d3d2e3e0cac8e17e07cd80695b95f12fda6af6ccd6576f4b808f322731445667d194c2216669ad3d4d58c0bc5f798449f1d0a35bcc638
diff --git a/dev-python/twisted-core/files/twistd.conf b/dev-python/twisted-core/files/twistd.conf
new file mode 100644
index 00000000000..53788cd0017
--- /dev/null
+++ b/dev-python/twisted-core/files/twistd.conf
@@ -0,0 +1,7 @@
+
+# These are passed to twistd.
+# TWISTD_OPTS="--no_save --logfile=/var/log/twistd -y /etc/twistd.tac"
+# TWISTD_OPTS="--no_save --logfile=/var/log/twistd -f /etc/twistd.tap"
+
+# Make any additions to PYTHONPATH the twistd needs here.
+# PYTHONPATH="/path/to/extra/python/modules"
diff --git a/dev-python/twisted-core/files/twistd.init b/dev-python/twisted-core/files/twistd.init
new file mode 100644
index 00000000000..e7b29f1a7e9
--- /dev/null
+++ b/dev-python/twisted-core/files/twistd.init
@@ -0,0 +1,25 @@
+#!/sbin/runscript
+
+depend() {
+ need net
+}
+
+start() {
+ if [ -z "${TWISTD_OPTS}" ]; then
+ eerror "TWISTD_OPTS is not set!"
+ eerror "You need to configure twistd in /etc/conf.d/twistd."
+ return 1
+ fi
+ export PYTHONPATH
+ ebegin "Starting twistd"
+ start-stop-daemon --start --quiet --pidfile /var/run/twistd.pid \
+ --exec /usr/bin/twistd -- --pidfile /var/run/twistd.pid \
+ ${TWISTD_OPTS}
+ eend $? "Failed to start twistd"
+}
+
+stop() {
+ ebegin "Stopping twistd"
+ start-stop-daemon --stop --quiet --pidfile /var/run/twistd.pid
+ eend $? "Failed to stop twistd"
+}
diff --git a/dev-python/twisted-core/files/twisted-core-12.0.0-fix-test-timeFormatting.patch b/dev-python/twisted-core/files/twisted-core-12.0.0-fix-test-timeFormatting.patch
new file mode 100644
index 00000000000..a466a973f95
--- /dev/null
+++ b/dev-python/twisted-core/files/twisted-core-12.0.0-fix-test-timeFormatting.patch
@@ -0,0 +1,26 @@
+Apply patch: use calendar.timegm instead of manual broken timezone math.
+
+Author: marienz
+Review: itamar
+Fixes: #5583
+
+Index: /trunk/twisted/test/test_log.py
+===================================================================
+--- /trunk/twisted/test/test_log.py (revision 32453)
++++ /trunk/twisted/test/test_log.py (revision 34145)
+@@ -6,5 +6,5 @@
+ """
+
+-import os, sys, time, logging, warnings
++import os, sys, time, logging, warnings, calendar
+ from cStringIO import StringIO
+
+@@ -392,7 +392,5 @@
+ human-readable string.
+ """
+- # There is no function in the time module which converts a UTC time
+- # tuple to a timestamp.
+- when = time.mktime((2001, 2, 3, 4, 5, 6, 7, 8, 0)) - time.timezone
++ when = calendar.timegm((2001, 2, 3, 4, 5, 6, 7, 8, 0))
+
+ # Pretend to be in US/Eastern for a moment
diff --git a/dev-python/twisted-core/files/twisted-core-12.1.0-remove-tests-conch-dependency.patch b/dev-python/twisted-core/files/twisted-core-12.1.0-remove-tests-conch-dependency.patch
new file mode 100644
index 00000000000..db2e2454bbc
--- /dev/null
+++ b/dev-python/twisted-core/files/twisted-core-12.1.0-remove-tests-conch-dependency.patch
@@ -0,0 +1,15 @@
+Index: twisted/test/test_strcred.py
+===================================================================
+--- twisted/test/test_strcred.py (revision 34525)
++++ twisted/test/test_strcred.py (working copy)
+@@ -352,6 +352,10 @@
+ except ImportError:
+ skip = "PyCrypto is not available"
+
++ try:
++ from twisted import conch
++ except ImportError:
++ skip = "Twisted Conch is not available"
+
+ def test_isChecker(self):
+ """
diff --git a/dev-python/twisted-core/files/twisted-core-2.1.0-echo-less.patch b/dev-python/twisted-core/files/twisted-core-2.1.0-echo-less.patch
new file mode 100644
index 00000000000..c180a111021
--- /dev/null
+++ b/dev-python/twisted-core/files/twisted-core-2.1.0-echo-less.patch
@@ -0,0 +1,13 @@
+=== modified file 'twisted/test/test_process.py'
+--- twisted/test/test_process.py
++++ twisted/test/test_process.py
+@@ -76,7 +76,7 @@
+
+ class EchoProtocol(protocol.ProcessProtocol):
+
+- s = "1234567" * 1001
++ s = "1234567" * 11
+ n = 10
+ finished = 0
+
+
diff --git a/dev-python/twisted-core/files/twisted-core-2.1.0-zsh-head.patch b/dev-python/twisted-core/files/twisted-core-2.1.0-zsh-head.patch
new file mode 100644
index 00000000000..236610ad994
--- /dev/null
+++ b/dev-python/twisted-core/files/twisted-core-2.1.0-zsh-head.patch
@@ -0,0 +1,13 @@
+Index: twisted/python/_twisted_zsh_stub
+===================================================================
+--- twisted/python/_twisted_zsh_stub (revision 14988)
++++ twisted/python/_twisted_zsh_stub (working copy)
+@@ -30,7 +30,7 @@
+
+ function load_twisted_completions() {
+ [[ -z $commands[twistd] ]] && echo 'ERROR: test command "twistd" not found in path' && return 1
+- shebang=$(head -1 $commands[twistd])
++ shebang=$(head -n1 $commands[twistd])
+ [[ $shebang != \#\!* ]] && echo 'ERROR: invalid shebang line for test script "twistd"' && return 1
+ PYTHON=$shebang[3,-1]
+
diff --git a/dev-python/twisted-core/files/twisted-core-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch b/dev-python/twisted-core/files/twisted-core-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch
new file mode 100644
index 00000000000..2fe22f1640b
--- /dev/null
+++ b/dev-python/twisted-core/files/twisted-core-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch
@@ -0,0 +1,11 @@
+--- twisted/plugin.py
++++ twisted/plugin.py
+@@ -174,7 +174,7 @@
+ if pluginKey not in existingKeys:
+ del dropinDotCache[pluginKey]
+ needsWrite = True
+- if needsWrite:
++ if needsWrite and os.environ.get("TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE") is None:
+ try:
+ dropinPath.setContent(pickle.dumps(dropinDotCache))
+ except:
diff --git a/dev-python/twisted-core/metadata.xml b/dev-python/twisted-core/metadata.xml
new file mode 100644
index 00000000000..3215da122b7
--- /dev/null
+++ b/dev-python/twisted-core/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name='serial'>include serial port support</flag>
+ </use>
+ <longdescription>
+ Twisted is an asynchronous networking framework written in Python,
+ supporting TCP, UDP, multicast, SSL/TLS, serial communication and
+ more. It is used by most of the servers, clients and protocols that
+ are part of other Twisted projects.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/twisted-core/twisted-core-12.3.0-r1.ebuild b/dev-python/twisted-core/twisted-core-12.3.0-r1.ebuild
new file mode 100644
index 00000000000..001b712bac9
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-12.3.0-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial"
+
+DEPEND="dev-python/zope-interface[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # Give a load-sensitive test a better chance of succeeding.
+ "${FILESDIR}/${PN}-2.1.0-echo-less.patch"
+
+ # Skip a test if twisted conch is not available
+ # (see Twisted ticket #5703)
+ "${FILESDIR}/${PN}-12.1.0-remove-tests-conch-dependency.patch"
+
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # NOTE: on pypy a couple of failures (refcounting, version-checking) is
+ # expected
+
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+ sed -e "s/test_buildAllTarballs/_&/" -i twisted/python/test/test_release.py || die "sed failed"
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py || die "sed failed"
+
+ # tap2rpm is already skipped if rpm is not installed, but fails for me on a Gentoo box with it present.
+ # I currently lack the cycles to track this failure down.
+ rm twisted/scripts/test/test_tap2rpm.py
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-core/twisted-core-13.0.0-r3.ebuild b/dev-python/twisted-core/twisted-core-13.0.0-r3.ebuild
new file mode 100644
index 00000000000..8de246fe45e
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-13.0.0-r3.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial"
+
+DEPEND="dev-python/zope-interface[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # Give a load-sensitive test a better chance of succeeding.
+ "${FILESDIR}/${PN}-2.1.0-echo-less.patch"
+
+ # Skip a test if twisted conch is not available
+ # (see Twisted ticket #5703)
+ "${FILESDIR}/${PN}-12.1.0-remove-tests-conch-dependency.patch"
+
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # NOTE: on pypy a couple of failures (refcounting, version-checking) is
+ # expected
+
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+ sed -e "s/test_buildAllTarballs/_&/" -i twisted/python/test/test_release.py || die "sed failed"
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py || die "sed failed"
+
+ # tap2rpm is already skipped if rpm is not installed, but fails for me on a Gentoo box with it present.
+ # I currently lack the cycles to track this failure down.
+ rm twisted/scripts/test/test_tap2rpm.py
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-core/twisted-core-13.2.0.ebuild b/dev-python/twisted-core/twisted-core-13.2.0.ebuild
new file mode 100644
index 00000000000..d1e11c4330d
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-13.2.0.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial"
+
+DEPEND=">=dev-python/zope-interface-3.6.0[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # Give a load-sensitive test a better chance of succeeding.
+ "${FILESDIR}/${PN}-2.1.0-echo-less.patch"
+
+ # Skip a test if twisted conch is not available
+ # (see Twisted ticket #5703)
+ "${FILESDIR}/${PN}-12.1.0-remove-tests-conch-dependency.patch"
+
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # NOTE: on pypy a couple of failures (refcounting, version-checking) is
+ # expected
+
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py \
+ || die "sed failed"
+
+ # tap2rpm is already skipped if rpm is not installed, but fails for me on a Gentoo box with it present.
+ # I currently lack the cycles to track this failure down.
+ rm twisted/scripts/test/test_tap2rpm.py
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ # https://twistedmatrix.com/trac/ticket/6920
+ sed -e 's:test_basicOperation:_&:' -i twisted/scripts/test/test_tap2deb.py || die
+ sed -e 's:test_inspectCertificate:_&:' -i twisted/test/test_sslverify.py || die
+
+ # Requires twisted-web creating a cric. dep
+ rm -f twisted/python/test/test_release.py || die
+
+ # Requires connection to the network
+ sed -e 's:test_multiListen:_&:' -i twisted/test/test_udp.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-core/twisted-core-14.0.0.ebuild b/dev-python/twisted-core/twisted-core-14.0.0.ebuild
new file mode 100644
index 00000000000..6a020c22489
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-14.0.0.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial test"
+
+RDEPEND=">=dev-python/zope-interface-3.6.0[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+DEPEND="test? ( ${RDEPEND} )"
+
+PATCHES=(
+ # Give a load-sensitive test a better chance of succeeding.
+ "${FILESDIR}/${PN}-2.1.0-echo-less.patch"
+
+ # Skip a test if twisted conch is not available
+ # (see Twisted ticket #5703)
+ "${FILESDIR}/${PN}-12.1.0-remove-tests-conch-dependency.patch"
+
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # NOTE: on pypy a couple of failures (refcounting, version-checking) is expected
+
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py \
+ || die "sed failed"
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ # https://twistedmatrix.com/trac/ticket/6920
+ sed -e 's:test_basicOperation:_&:' -i twisted/scripts/test/test_tap2deb.py || die
+ sed -e 's:test_inspectCertificate:_&:' -i twisted/test/test_sslverify.py || die
+
+ # Requires twisted-web, twisted-lore and twisted-names, creating a circ. dep and fail even if installed.
+ # test_loreDeprecation and test_exist failures appeared in version 14.0.0.
+ rm -f twisted/python/test/test_release.py || die
+ sed -e 's:test_loreDeprecation:_&:' -i twisted/test/test_twisted.py || die
+ sed -e 's:test_exist:_&:' -i twisted/python/test/test_dist3.py || die
+
+ # Requires connection to the network
+ sed -e 's:test_multiListen:_&:' -i twisted/test/test_udp.py || die
+
+ # Appeared in version 14.0.0; https://twistedmatrix.com/trac/ticket/7422
+ sed -e 's:test_dataReceivedThrows:_&:' \
+ -e 's:test_resumeProducingThrows:_&:' \
+ -e 's:test_resumeProducingAbortLater:_&:' \
+ -e 's:test_resumeProducingAbort:_&:' \
+ -e 's:test_fullWriteBufferAfterByteExchange:_&:' \
+ -i twisted/internet/test/test_tcp.py || die
+ sed -e 's:test_logPrefix:_&:' -i twisted/internet/test/connectionmixins.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-core/twisted-core-14.0.1.ebuild b/dev-python/twisted-core/twisted-core-14.0.1.ebuild
new file mode 100644
index 00000000000..becb46ff1b5
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-14.0.1.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial test"
+
+RDEPEND=">=dev-python/zope-interface-3.6.0[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+DEPEND="test? ( ${RDEPEND} )"
+
+PATCHES=(
+ # Give a load-sensitive test a better chance of succeeding.
+ "${FILESDIR}/${PN}-2.1.0-echo-less.patch"
+
+ # Skip a test if twisted conch is not available
+ # (see Twisted ticket #5703)
+ "${FILESDIR}/${PN}-12.1.0-remove-tests-conch-dependency.patch"
+
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py \
+ || die "sed failed"
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ # https://twistedmatrix.com/trac/ticket/6920 6921
+ # Just re-exposing them to list a full list of deficits
+# sed -e 's:test_basicOperation:_&:' -i twisted/scripts/test/test_tap2deb.py || die
+# sed -e 's:test_inspectCertificate:_&:' -i twisted/test/test_sslverify.py || die
+
+ # Requires twisted-web, twisted-lore and twisted-names, creating a circ. dep and fail even if installed.
+ # test_loreDeprecation and test_exist failures appeared in version 14.0.0.
+ # Possibly due to over taxing of the distutils_install_for_testing function
+ rm -f twisted/python/test/test_release.py || die
+ sed -e 's:test_loreDeprecation:_&:' -i twisted/test/test_twisted.py || die
+ sed -e 's:test_exist:_&:' -i twisted/python/test/test_dist3.py || die
+
+ # Requires connection to the network
+ sed -e 's:test_multiListen:_&:' -i twisted/test/test_udp.py || die
+
+ # Appeared in version 14.0.0; https://twistedmatrix.com/trac/ticket/7422; known failures
+ # Upstream somewhat unreceptive
+ # The last of these invokes a hang or a long delay
+ sed -e 's:test_dataReceivedThrows:_&:' \
+ -e 's:test_resumeProducingThrows:_&:' \
+ -e 's:test_resumeProducingAbortLater:_&:' \
+ -e 's:test_resumeProducingAbort:_&:' \
+ -e 's:test_fullWriteBufferAfterByteExchange:_&:' \
+ -i twisted/internet/test/test_tcp.py || die
+ sed -e 's:test_logPrefix:_&:' -i twisted/internet/test/connectionmixins.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-core/twisted-core-14.0.2.ebuild b/dev-python/twisted-core/twisted-core-14.0.2.ebuild
new file mode 100644
index 00000000000..becb46ff1b5
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-14.0.2.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial test"
+
+RDEPEND=">=dev-python/zope-interface-3.6.0[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+DEPEND="test? ( ${RDEPEND} )"
+
+PATCHES=(
+ # Give a load-sensitive test a better chance of succeeding.
+ "${FILESDIR}/${PN}-2.1.0-echo-less.patch"
+
+ # Skip a test if twisted conch is not available
+ # (see Twisted ticket #5703)
+ "${FILESDIR}/${PN}-12.1.0-remove-tests-conch-dependency.patch"
+
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py \
+ || die "sed failed"
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ # https://twistedmatrix.com/trac/ticket/6920 6921
+ # Just re-exposing them to list a full list of deficits
+# sed -e 's:test_basicOperation:_&:' -i twisted/scripts/test/test_tap2deb.py || die
+# sed -e 's:test_inspectCertificate:_&:' -i twisted/test/test_sslverify.py || die
+
+ # Requires twisted-web, twisted-lore and twisted-names, creating a circ. dep and fail even if installed.
+ # test_loreDeprecation and test_exist failures appeared in version 14.0.0.
+ # Possibly due to over taxing of the distutils_install_for_testing function
+ rm -f twisted/python/test/test_release.py || die
+ sed -e 's:test_loreDeprecation:_&:' -i twisted/test/test_twisted.py || die
+ sed -e 's:test_exist:_&:' -i twisted/python/test/test_dist3.py || die
+
+ # Requires connection to the network
+ sed -e 's:test_multiListen:_&:' -i twisted/test/test_udp.py || die
+
+ # Appeared in version 14.0.0; https://twistedmatrix.com/trac/ticket/7422; known failures
+ # Upstream somewhat unreceptive
+ # The last of these invokes a hang or a long delay
+ sed -e 's:test_dataReceivedThrows:_&:' \
+ -e 's:test_resumeProducingThrows:_&:' \
+ -e 's:test_resumeProducingAbortLater:_&:' \
+ -e 's:test_resumeProducingAbort:_&:' \
+ -e 's:test_fullWriteBufferAfterByteExchange:_&:' \
+ -i twisted/internet/test/test_tcp.py || die
+ sed -e 's:test_logPrefix:_&:' -i twisted/internet/test/connectionmixins.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-core/twisted-core-15.1.0.ebuild b/dev-python/twisted-core/twisted-core-15.1.0.ebuild
new file mode 100644
index 00000000000..becb46ff1b5
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-15.1.0.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial test"
+
+RDEPEND=">=dev-python/zope-interface-3.6.0[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+DEPEND="test? ( ${RDEPEND} )"
+
+PATCHES=(
+ # Give a load-sensitive test a better chance of succeeding.
+ "${FILESDIR}/${PN}-2.1.0-echo-less.patch"
+
+ # Skip a test if twisted conch is not available
+ # (see Twisted ticket #5703)
+ "${FILESDIR}/${PN}-12.1.0-remove-tests-conch-dependency.patch"
+
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py \
+ || die "sed failed"
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ # https://twistedmatrix.com/trac/ticket/6920 6921
+ # Just re-exposing them to list a full list of deficits
+# sed -e 's:test_basicOperation:_&:' -i twisted/scripts/test/test_tap2deb.py || die
+# sed -e 's:test_inspectCertificate:_&:' -i twisted/test/test_sslverify.py || die
+
+ # Requires twisted-web, twisted-lore and twisted-names, creating a circ. dep and fail even if installed.
+ # test_loreDeprecation and test_exist failures appeared in version 14.0.0.
+ # Possibly due to over taxing of the distutils_install_for_testing function
+ rm -f twisted/python/test/test_release.py || die
+ sed -e 's:test_loreDeprecation:_&:' -i twisted/test/test_twisted.py || die
+ sed -e 's:test_exist:_&:' -i twisted/python/test/test_dist3.py || die
+
+ # Requires connection to the network
+ sed -e 's:test_multiListen:_&:' -i twisted/test/test_udp.py || die
+
+ # Appeared in version 14.0.0; https://twistedmatrix.com/trac/ticket/7422; known failures
+ # Upstream somewhat unreceptive
+ # The last of these invokes a hang or a long delay
+ sed -e 's:test_dataReceivedThrows:_&:' \
+ -e 's:test_resumeProducingThrows:_&:' \
+ -e 's:test_resumeProducingAbortLater:_&:' \
+ -e 's:test_resumeProducingAbort:_&:' \
+ -e 's:test_fullWriteBufferAfterByteExchange:_&:' \
+ -i twisted/internet/test/test_tcp.py || die
+ sed -e 's:test_logPrefix:_&:' -i twisted/internet/test/connectionmixins.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-core/twisted-core-15.2.1.ebuild b/dev-python/twisted-core/twisted-core-15.2.1.ebuild
new file mode 100644
index 00000000000..a4424d9c22c
--- /dev/null
+++ b/dev-python/twisted-core/twisted-core-15.2.1.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic twisted-r1
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="crypt gtk serial test"
+
+RDEPEND=">=dev-python/zope-interface-3.6.0[${PYTHON_USEDEP}]
+ crypt? ( >=dev-python/pyopenssl-0.10[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}] )
+ gtk? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ serial? ( dev-python/pyserial[${PYTHON_USEDEP}] )"
+DEPEND="test? ( ${RDEPEND} )"
+
+PATCHES=(
+ # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable.
+ "${FILESDIR}/${PN}-9.0.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch"
+)
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed \
+ -e "s/test_newPluginsOnReadOnlyPath/_&/" \
+ -e "s/test_deployedMode/_&/" \
+ -i twisted/test/test_plugin.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ # Needed to make the sendmsg extension work
+ # (see http://twistedmatrix.com/trac/ticket/5701 )
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ pushd "${TEST_DIR}"/lib > /dev/null || die
+
+ # Skip broken tests.
+
+ # http://twistedmatrix.com/trac/ticket/5375
+ sed -e "/class ZshIntegrationTestCase/,/^$/d" -i twisted/scripts/test/test_scripts.py \
+ || die "sed failed"
+
+ # Prevent it from pulling in plugins from already installed twisted packages.
+ rm -f twisted/plugins/__init__.py
+
+ # An empty file doesn't work because the tests check for doc strings in all packages.
+ echo "'''plugins stub'''" > twisted/plugins/__init__.py || die
+
+ # https://twistedmatrix.com/trac/ticket/6920 6921
+ # Just re-exposing them to list a full list of deficits
+# sed -e 's:test_basicOperation:_&:' -i twisted/scripts/test/test_tap2deb.py || die
+# sed -e 's:test_inspectCertificate:_&:' -i twisted/test/test_sslverify.py || die
+
+ # Requires twisted-web, twisted-lore and twisted-names, creating a circ. dep and fail even if installed.
+ # test_loreDeprecation and test_exist failures appeared in version 14.0.0.
+ # Possibly due to over taxing of the distutils_install_for_testing function
+ rm -f twisted/python/test/test_release.py || die
+ sed -e 's:test_loreDeprecation:_&:' -i twisted/test/test_twisted.py || die
+ sed -e 's:test_exist:_&:' -i twisted/python/test/test_dist3.py || die
+
+ # Requires connection to the network
+ sed -e 's:test_multiListen:_&:' -i twisted/test/test_udp.py || die
+
+ # Appeared in version 14.0.0; https://twistedmatrix.com/trac/ticket/7422; known failures
+ # Upstream somewhat unreceptive
+ # The last of these invokes a hang or a long delay
+ sed -e 's:test_dataReceivedThrows:_&:' \
+ -e 's:test_resumeProducingThrows:_&:' \
+ -e 's:test_resumeProducingAbortLater:_&:' \
+ -e 's:test_resumeProducingAbort:_&:' \
+ -e 's:test_fullWriteBufferAfterByteExchange:_&:' \
+ -i twisted/internet/test/test_tcp.py || die
+ sed -e 's:test_logPrefix:_&:' -i twisted/internet/test/connectionmixins.py || die
+
+ if ! "${TEST_DIR}"/scripts/trial twisted; then
+ die "Tests failed with ${EPYTHON}"
+ fi
+
+ popd > /dev/null || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ cd "${D%/}$(python_get_sitedir)" || die
+
+ # create 'Twisted' egg wrt bug #299736
+ local egg=( Twisted_Core*.egg-info )
+ [[ -f ${egg[0]} ]] || die "Twisted_Core*.egg-info not found"
+ ln -s "${egg[0]}" "${egg[0]/_Core/}" || die
+
+ # own the dropin.cache so we don't leave orphans
+ touch twisted/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
diff --git a/dev-python/twisted-lore/Manifest b/dev-python/twisted-lore/Manifest
new file mode 100644
index 00000000000..f8826837991
--- /dev/null
+++ b/dev-python/twisted-lore/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedLore-13.0.0.tar.bz2 87133 SHA256 7874ecb0f79b015fb6183cf181f86ee96469b4e7420c0ff6d1028867d18777cc SHA512 783d5ccba84351f0bacf591d6b3c13765bb9e04bc3e89f217f2d52ff050a79d4b85ef6108bd00f706295928941082bb384e9c6a73171150ffde77d0826f9597e WHIRLPOOL a0550825038429176e36156d8fed4cbca1626afa3228c83cd837d746153acf5490eb1170592af27312abb8e64f380d623aa73af56b05ef1793327b7a2a37a6ef
+DIST TwistedLore-13.2.0.tar.bz2 88616 SHA256 53ca37c533048ddaf209548a21bf3078cb56dce48099251fb6bae107ed9d66df SHA512 a05752e2854c404da30562062e1d72d0376ebd5b82c3371183023936851bb6394dc3ff95160efc3e7e7781624ac48485d7c102e4487cf3bfda2a086bcc596ff6 WHIRLPOOL 380309ec38864a53605e4ab321b61d316f9edfad0696070f958151f66c0775f29b31e75305e94272cbcdb08210f35f0e43d4c717af521b29538ea9aec08b5fd3
+DIST TwistedLore-14.0.0.tar.bz2 53923 SHA256 d689acbff7e667eee9cc4e05ef7fa4a7de2667dfde062f487ddc33d44781b7c5 SHA512 148311175c66e934e80eb5007b616bdbde663793fe105a6ece346027598ab1b183ec55f189f153436a38615d3cc9a1ef43b8dd4b7875b975ce605442d8fda13d WHIRLPOOL 35daa28d74a3b7c16b8b9317628b8ae64468c14051f83e05c3681376e32fa623512bf34815656d2830c739fc52ca3555f51806e53afc55986ce9facc81a7467b
+DIST TwistedLore-14.0.1.tar.bz2 53945 SHA256 5fc9b933b1be160f4bf3702a95177b684e8b927d0e5103f4aa245f04dd4e2e26 SHA512 237011ad1868270512f169560a3b982f156beda7b4e36bf1bbd1d2f62fd11198a0f0b3efb70065e045844fb4641f53b3eee94da6f74a918b9acde741704b8d90 WHIRLPOOL 40f96bdb40d66743e286b3fa9341d1c9aa7b025a3a7e6d9014589e4cbfbc7d4a61d8e670cc669101629b4ca2db3b20149ef6b345b1a3f31144a6ac7d556fe64b
+DIST TwistedLore-14.0.2.tar.bz2 53980 SHA256 dcc3acf5d06b3cd4590c66354cc8dfb0491031686f30c5adb7b8c5b5bc50749b SHA512 f57cd80d61a33a2167967eed998ff8f26fb628c66fc3a16324dd82963e99679f8c036d2b028e554af184acdcdfe81673658bd88fc5acbce4fc9d8bf16e725640 WHIRLPOOL 88730c514c23b6f866c5222b15b7bd4e90ae2fec8e44d61c5fd287c653b848dfe7f0044c9bfefff4ff4c7766cc08659a0439652d68eaecb7465d03dbcc339b8e
+DIST TwistedLore-15.1.0.tar.bz2 54005 SHA256 62e3949683f5ec0cf0ee8160767dff2f5a3cc26c3474bedbafb2e007d5f746b4 SHA512 4a775705083e0fd180df6c2f514f97e79b76e9e6cd8c7ed4c3159ff3a604753dde59f5c780917ff1a136d7db76ed3048606df6c0babc01894746c3e6229f7a67 WHIRLPOOL 97f678887756d6663e22292f63b026fc8611fa017a460d2a11f02f1c60d958433d7bffd99194e93fac40cd2411f4ccbcabe2bef5de88da70440ac4e9e9dad4fe
+DIST TwistedLore-15.2.1.tar.bz2 54070 SHA256 0997d71f84de67fa11662d057ce6e42059fb389fd6bdfb09d8ed6b5df32efe8f SHA512 9d9c45443f702e527f82dd25b7ed73af24b1ff16d266eb0cb6cb5be230939ed2ba07dfcd9d7b02d48823043b64b33df916b58dd1d1280d3f4e4f7c3cec851d7a WHIRLPOOL e15cdf266975438965fdd4d6d0fd6693d3a3b5281601ac31af8b1aaa6cdea5dea21711ea28f6d2b381123134583f427b904a5a946e465267bccb4c69c7739c54
diff --git a/dev-python/twisted-lore/metadata.xml b/dev-python/twisted-lore/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-lore/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-lore/twisted-lore-13.0.0-r1.ebuild b/dev-python/twisted-lore/twisted-lore-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..a3f6e6d52ea
--- /dev/null
+++ b/dev-python/twisted-lore/twisted-lore-13.0.0-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted documentation system"
+
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-lore/twisted-lore-13.2.0.ebuild b/dev-python/twisted-lore/twisted-lore-13.2.0.ebuild
new file mode 100644
index 00000000000..a3f6e6d52ea
--- /dev/null
+++ b/dev-python/twisted-lore/twisted-lore-13.2.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted documentation system"
+
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-lore/twisted-lore-14.0.0.ebuild b/dev-python/twisted-lore/twisted-lore-14.0.0.ebuild
new file mode 100644
index 00000000000..a390d02a79b
--- /dev/null
+++ b/dev-python/twisted-lore/twisted-lore-14.0.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted documentation system"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-lore/twisted-lore-14.0.1.ebuild b/dev-python/twisted-lore/twisted-lore-14.0.1.ebuild
new file mode 100644
index 00000000000..c37cb74364f
--- /dev/null
+++ b/dev-python/twisted-lore/twisted-lore-14.0.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted documentation system"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-lore/twisted-lore-14.0.2.ebuild b/dev-python/twisted-lore/twisted-lore-14.0.2.ebuild
new file mode 100644
index 00000000000..c37cb74364f
--- /dev/null
+++ b/dev-python/twisted-lore/twisted-lore-14.0.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted documentation system"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-lore/twisted-lore-15.1.0.ebuild b/dev-python/twisted-lore/twisted-lore-15.1.0.ebuild
new file mode 100644
index 00000000000..06b1ed92dd3
--- /dev/null
+++ b/dev-python/twisted-lore/twisted-lore-15.1.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted documentation system"
+
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-lore/twisted-lore-15.2.1.ebuild b/dev-python/twisted-lore/twisted-lore-15.2.1.ebuild
new file mode 100644
index 00000000000..06b1ed92dd3
--- /dev/null
+++ b/dev-python/twisted-lore/twisted-lore-15.2.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted documentation system"
+
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-mail/Manifest b/dev-python/twisted-mail/Manifest
new file mode 100644
index 00000000000..1b5d0cb8839
--- /dev/null
+++ b/dev-python/twisted-mail/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedMail-13.0.0.tar.bz2 156220 SHA256 ff9c231dc9f1603374363ca7e5cb30c253032f551a02ca8ef74f0d5adcb99b2e SHA512 7d4be4d8bed37743696430aef4a827bdbaf7a5ea094259ef6fc7612955d95f3ef6b10cd08a6af5cf4111608ef93e07701be2f945e507f7c5c62e0997018e5b3f WHIRLPOOL c17423fd13b04a7a8f2a73883407e5b61d07d88dc849b86f44c6220a3f188badb4f0fa2ef9321d121460a1a0203b8c2622bbb4dcfe51257c2d2b161da00e87aa
+DIST TwistedMail-13.2.0.tar.bz2 160046 SHA256 6e4b3844a27bc1f85ae7529bf1c0574f6962c8ca66e08c3c06c2a5a2e39acfc8 SHA512 399e34dbf674e3e30acf49769fbb9c188f1dfc00187b82e67865490b5a9f2847ad1d70fc1bb930a50b4b77b3e017212590c93f3077a8464d9e1f662750f37314 WHIRLPOOL 274f5f60564d94beea5c4a4aa1593de4e602aa7f3fdd6cecfc25ab543d90e177e94b1a73c2857f00f870e3d37b0b427e31f424240fd499ec759ab16ee8797adf
+DIST TwistedMail-14.0.0.tar.bz2 157816 SHA256 6a4ac184a719cb273cb055869c2c42e4c96fd0cd8f56cc0ffdeff8cd68d22075 SHA512 0cff0f38d3a752d4ad48722b9138b4e0704668b06285f51a95ece14c265107c98bec7b01196ad52d676bbbb4e1c73b40fe9a663fcaf14ccbd8f824854eaa5025 WHIRLPOOL c3b704caa5396bd8e7e2e94f9a2f8a9e154a24476c9c72d71ff346c6c1bec5cb50986c50e220ffbaf06f1b96b3b53b7ddcc771349f3a7e47b0cac85d892c3a92
+DIST TwistedMail-14.0.1.tar.bz2 157660 SHA256 42aa76eff85a31d72162cfcea89d157d83e334f90e5c2ee59fc21e8f680c1450 SHA512 ef2071e24dcfabb0422f25ee529aa19cf8cda0d2f3e023a8672c0565511e1f6f899c6c88bb4adb79dd184f1a4d3dd4800332f33929fe5b6b922b1b7e44e39507 WHIRLPOOL 5e888367e5089f58ef0a132db5be315a670ed8b895c48d8248ae63727f398e1a323daaa35a5047ec513ad7be1e1bf05bac606d6a3c7ed01a431745d4fe1b782e
+DIST TwistedMail-14.0.2.tar.bz2 157653 SHA256 15d8d232e842fa7be639797eb132a87b5edf6a3cf08a732c471193b08bf925b3 SHA512 2ca682a838caf96139db6bb71b6ca536e9d8b403157e3293a097451760b3bb5a8e04777228e938dd4552a1ce3cd59ea560cf26a431d18bc77cbc8951be84fd3a WHIRLPOOL 3ce0a46976cb5315e9af87e9f601f4853d51cbd5875838a7928cd24da57b3f93508bff8353748f1b72736af108fc675df37b19bce47c7f1a6a13a802e55bd11a
+DIST TwistedMail-15.1.0.tar.bz2 161265 SHA256 fa83f1afc4c2f53321fc2911b64dc923755c0dd8f8f53cee1bbdecb6bcee6474 SHA512 2b5453e83185fa51222e26abf59a743c8cdc872f556c28135a7d7a717cf438f5a9d3ca6085ad4b35ae64509e49130812c3dba4cbe65aacdb738fc903492a1a15 WHIRLPOOL c762acb540f9a3be46788087c434ea8de42660f4ec5a646777d75b66a016d2ebb2fb4f15befa430e7ed01e2e0c7a65f3a47924eda8a6c6afa76febee4fe5391e
+DIST TwistedMail-15.2.1.tar.bz2 161891 SHA256 fc50bee5b5aa95164f5aaf09d29fff3897abb7902db508fa58a004fdeb20d324 SHA512 d3c29ad842610dde6697e76456125716a8657f9e7938ac6e66fd3c226fc339e04551a2074c8af8627882c2a761414d5f856fe647b3900ed4eae0fbe7fb5bba23 WHIRLPOOL 264dc5e931291b7398022d0f3cae0f1af8dc4675b12950adaaa1613a9aa3596c66ec081751bb929be417e29a80e235ccfad9f63893dca66544fe76c65e38568d
diff --git a/dev-python/twisted-mail/metadata.xml b/dev-python/twisted-mail/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-mail/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-mail/twisted-mail-13.0.0-r1.ebuild b/dev-python/twisted-mail/twisted-mail-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..f90bb3daeec
--- /dev/null
+++ b/dev-python/twisted-mail/twisted-mail-13.0.0-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted Mail library, server and client"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-names-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-mail/twisted-mail-13.2.0.ebuild b/dev-python/twisted-mail/twisted-mail-13.2.0.ebuild
new file mode 100644
index 00000000000..f90bb3daeec
--- /dev/null
+++ b/dev-python/twisted-mail/twisted-mail-13.2.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted Mail library, server and client"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-names-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-mail/twisted-mail-14.0.0.ebuild b/dev-python/twisted-mail/twisted-mail-14.0.0.ebuild
new file mode 100644
index 00000000000..62013346e1c
--- /dev/null
+++ b/dev-python/twisted-mail/twisted-mail-14.0.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted Mail library, server and client"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-names-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-mail/twisted-mail-14.0.1.ebuild b/dev-python/twisted-mail/twisted-mail-14.0.1.ebuild
new file mode 100644
index 00000000000..675bb8f371c
--- /dev/null
+++ b/dev-python/twisted-mail/twisted-mail-14.0.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted Mail library, server and client"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-names-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-mail/twisted-mail-14.0.2.ebuild b/dev-python/twisted-mail/twisted-mail-14.0.2.ebuild
new file mode 100644
index 00000000000..675bb8f371c
--- /dev/null
+++ b/dev-python/twisted-mail/twisted-mail-14.0.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted Mail library, server and client"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-names-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-mail/twisted-mail-15.1.0.ebuild b/dev-python/twisted-mail/twisted-mail-15.1.0.ebuild
new file mode 100644
index 00000000000..e4430ac47de
--- /dev/null
+++ b/dev-python/twisted-mail/twisted-mail-15.1.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted Mail library, server and client"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-names-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-mail/twisted-mail-15.2.1.ebuild b/dev-python/twisted-mail/twisted-mail-15.2.1.ebuild
new file mode 100644
index 00000000000..e4430ac47de
--- /dev/null
+++ b/dev-python/twisted-mail/twisted-mail-15.2.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted Mail library, server and client"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-names-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-names/Manifest b/dev-python/twisted-names/Manifest
new file mode 100644
index 00000000000..406fa61aa11
--- /dev/null
+++ b/dev-python/twisted-names/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedNames-13.0.0.tar.bz2 60955 SHA256 831741ec0abaf6fc13469d172152212ab3e8c112b0313c2c0614348e3f32d575 SHA512 37a4f4dc311243d18752cf9f27a0d65a9c6efa9600f59060e4bd62100863d7b14076d1e1fea51a0fdca67a5807803ebf36c262f44ee80ce2bf14ef1e1512639d WHIRLPOOL e99e693b7b0d551ddc45bcac4562d419557730447e0d6767ba6ee42c622a199b63f75855bab0c7d61a4902306cf2776f666effd5d25403a3ed2069ce793e3e7a
+DIST TwistedNames-13.2.0.tar.bz2 71127 SHA256 b8ed07790661eac454ee0bc424f9ede649dec87c11d423421ce2808795e131d5 SHA512 1dc7ac69f51a41f3fa6472ae633649d61935ca0c64233a86c69755e8a53100402842712beb2b555dfbf493696bcb4a0fa7d70fa2d3450fe0448b680f85eb9fb5 WHIRLPOOL b6d116781c9dbb408b0eac3fcd7c9ee5259e6d92fd6b7c737168dac14a6534c4f9f684170b6e0103f68703600284da68afb7dfc98f0d0d85117373ae41599053
+DIST TwistedNames-14.0.0.tar.bz2 88385 SHA256 6adf7fea6048bd2938c6aa8b7dab852dd8f372e2896d65745389e3c88fcbf612 SHA512 6b1353c4588a2cb235487a607bdf9d842ca87f5da9b8fffcd8aa6d3011adce4e2089146a41332f8a495a038bfcb91e3cb87b0d4e8316d443c0d7ea4809711c23 WHIRLPOOL 0c075a1edfe8824ba138cf0648f99832d3cb7dd3b6594134afd651059e152410e891f40972e29d59e526c509be99cd7e834b2adc49f2dbc765a4bac9fe7b8dc2
+DIST TwistedNames-14.0.1.tar.bz2 88381 SHA256 477b0185f67bf684a03deae1f6ed394ac203c3dd4bec1d163378280c9c1778b6 SHA512 b896b338262d9ace8d98ece2578489bb1a5cd104edcfecf3222f3de4ff950c385f06c4359f6d9aaf3340a43dee646aff5bd354302e094f6454daecc23a4a8daf WHIRLPOOL 77de0fe2e651cbe70e79a1035e248a78031e39382866c19a797ff3b78589efcb2f81f80142cad8744ce7b7bf05c3c18faaa55f3e424456e07225da537e33e1dd
+DIST TwistedNames-14.0.2.tar.bz2 88321 SHA256 ad6d0b527c88e1b70f97350e0d768b8373c43f5a4b6558be8e2c5d9d4a891d54 SHA512 f9b3a19856cad2b1437adf62ca0f187d14c570b83e9cce92db9f990171ee633b069e0cf9b4b841e51bdc00bde8b64a9bc0d3309df69d31404235996083de728f WHIRLPOOL bd22a4d7da4f3f31d717cfbb7954697e96e2bf507f2edbda81fc32621e90aabc795acc094922af50d1d727c08fc19487d8b79433291ab799372dbb7fc964ad6b
+DIST TwistedNames-15.1.0.tar.bz2 88684 SHA256 998821c69b8f950264985bcb296340023602d81899a8e3345b055fb05e1f9b28 SHA512 c03141bce0eb26de927d537a896b72823b8dbabde946a3dffd68331c6bb63deab4e7260e07540eb980d31a190c7d5b8224b46dc2e908e8b1aa8c6f869acf745a WHIRLPOOL 768b2d70b00bc12004481dc034dbb437d7fcb21940c590cafe02aab08b68181189967e0c19e46fdebdb776b0ecfaa9b5fa127198ec361554a308e2769557ce29
+DIST TwistedNames-15.2.1.tar.bz2 88688 SHA256 9da80426cd1a1a9951af0adcc54635abda63988761b6f6a92c356916184daf68 SHA512 2ca2c4e4e9a49e82246f781f2fd1eb86a85d78236251e085dc88a8b52b7b58964cac4ff2db75a97ea652350f650bc06fcc4d4964747b7e9c5a6631c2ea6aed80 WHIRLPOOL 23e38dea7be7a418b5efa38d9b100411d3cf24b0bbe87aa8048b463eac7cccd372b1423f546428392942841f3d7eb6ad900f03ef206ff685de215f0e91182493
diff --git a/dev-python/twisted-names/metadata.xml b/dev-python/twisted-names/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-names/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-names/twisted-names-13.0.0-r1.ebuild b/dev-python/twisted-names/twisted-names-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..c0d2cee6504
--- /dev/null
+++ b/dev-python/twisted-names/twisted-names-13.0.0-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted DNS implementation"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-names/twisted-names-13.2.0.ebuild b/dev-python/twisted-names/twisted-names-13.2.0.ebuild
new file mode 100644
index 00000000000..c0d2cee6504
--- /dev/null
+++ b/dev-python/twisted-names/twisted-names-13.2.0.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted DNS implementation"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-names/twisted-names-14.0.0.ebuild b/dev-python/twisted-names/twisted-names-14.0.0.ebuild
new file mode 100644
index 00000000000..d7f879cd5e2
--- /dev/null
+++ b/dev-python/twisted-names/twisted-names-14.0.0.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted DNS implementation"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-names/twisted-names-14.0.1.ebuild b/dev-python/twisted-names/twisted-names-14.0.1.ebuild
new file mode 100644
index 00000000000..1760913725f
--- /dev/null
+++ b/dev-python/twisted-names/twisted-names-14.0.1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted DNS implementation"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-names/twisted-names-14.0.2.ebuild b/dev-python/twisted-names/twisted-names-14.0.2.ebuild
new file mode 100644
index 00000000000..1760913725f
--- /dev/null
+++ b/dev-python/twisted-names/twisted-names-14.0.2.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted DNS implementation"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-names/twisted-names-15.1.0.ebuild b/dev-python/twisted-names/twisted-names-15.1.0.ebuild
new file mode 100644
index 00000000000..df8da10295d
--- /dev/null
+++ b/dev-python/twisted-names/twisted-names-15.1.0.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted DNS implementation"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-names/twisted-names-15.2.1.ebuild b/dev-python/twisted-names/twisted-names-15.2.1.ebuild
new file mode 100644
index 00000000000..df8da10295d
--- /dev/null
+++ b/dev-python/twisted-names/twisted-names-15.2.1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="A Twisted DNS implementation"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-news/Manifest b/dev-python/twisted-news/Manifest
new file mode 100644
index 00000000000..8413ec7c0ea
--- /dev/null
+++ b/dev-python/twisted-news/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedNews-13.0.0.tar.bz2 19638 SHA256 102f303fee6dc807d53ee281a2a15775a6b04e72e5b7b25ab77fc8faaa96dc3f SHA512 06c9372d5a54b80c6bef0124ad6d34acdb2543739319712f8e46286b284aacfa7c2a5052a6fa17ce4d2d3f5c89f389ce7d274a9f9085b5c21f985b32326e13b7 WHIRLPOOL ae0900a4af7e486b54ed7349ac9f385a511b3a367ef0cf73f3f8225bbe45471b504cef9b494d9e9389ca10e68b79d89a86730e4bf73da8d79ce7247aff61251a
+DIST TwistedNews-13.2.0.tar.bz2 19706 SHA256 e6499fdb79767fd620f8b3dfbf47b356343a92206dfb44833025159d69252f1e SHA512 439f35b882f28be1fa466fabe93c06cd688662a44dd21f58a3c2d9670f95910c038bb30b79c88f661f50be7eb9bb820f6d89a94fbf61bde2d8bb46af574c9274 WHIRLPOOL e989c04b9e89326ddae17ccbaf04e985c51f6dd1e69009b5b899131061f801e8503f9e952063ff1c65d31c04fbd65d418a698ad97b46116ceb4675007c50b112
+DIST TwistedNews-14.0.0.tar.bz2 19797 SHA256 1fbb80b64ef8631c48133bad58a7705893af8c4a5f4cb1a3407d76f623ba4a35 SHA512 fd3fd1bb7901409610ac4bb18b5ef4a35be320c7f80b6ecdf05b5d1a798ec3fe6c24ecff672aa645cc01a42ffbaef3422ca46557ac0e97a5a0bd14fdb6f8bc98 WHIRLPOOL 0105c513cb97c14fcfdb03e01448e6c49ad0d8c38c0e926ed90051fce1d0091b7b96919b86d853041935e596e572880de2aca6a6e4b616280389b9d7d582865d
+DIST TwistedNews-14.0.1.tar.bz2 19829 SHA256 d2dadbe2f845d0cb97c281ef05fff6be762ec862d2227f0d063936de1ff981c2 SHA512 81095ec412fe2cca39e08d1385539de0d5491aefb56d694d525849c45f648a52b685c3ee0d8b0c5f78d02158c5f2a29368285122a865af55ac9cc3a6781f943a WHIRLPOOL 2def3054e79b962949db3318ec9d11235b2fd19d01e0fed1d5dfd3b1dacda78f2bb2fdf4c4a9bc2d7b0e15a3ea4434ac67c7a2315938ca70dbf9ddb123e2161f
+DIST TwistedNews-14.0.2.tar.bz2 19805 SHA256 91c8e1201410264c81fc5771aa425ea5e67fad6a4b1e352df70824f387484092 SHA512 305ab6469cab30b775ed371280581289e59607f210d49e7f514d4f80235d44eb1ebcb19e05598a2b2b47a45cccc8a97db5088c7c78c6ee9d7a8107658cb84e67 WHIRLPOOL d2650a751ec61e2c30043a0577be0c31367d848c1b1a336565ab3855320b06eb150c173dc4d4f80fbebf5088432567dc2e10b750b7732838e2b2dffb39f4968c
+DIST TwistedNews-15.1.0.tar.bz2 19843 SHA256 8212888036f10fbae5932dfdbc593047edf08daabff3ba6fa391a8afe1c93186 SHA512 4a1111d0807d95506ad1a44dfd5f49ff72f7e8162e102a2a9945d5ffcc7f58d12f6df65e085f07e47c0fcee4c341bc0b9cdff918e062b450a2a1a0bf974e57f6 WHIRLPOOL 828ef667619d75e7f1d90902d87a462ab409b8925eece72fa0d7b26f857318d229a3b510a9a2625eb694b4b9b47ffe4822d874edda69350b5964b85847c8324b
+DIST TwistedNews-15.2.1.tar.bz2 19889 SHA256 56d5215e0971431dabedf7b5f9a162ae448c8e6d20b6318e627ab9eaeaf1e089 SHA512 faa3a2b7c6acf2d9f8a63ef79bf36fecc2d48101b701bf679b4837e54f8327e5dda75e207ac2cb03a35671781c9221f62f60885a0459e970f15d660d214e7342 WHIRLPOOL b0b4836fdc661c6daa663b13a589461a2579177867c0878d261dff7d7628c962b08f9b8cc1dcfa74b49035d473115a4b3dec8f289448502547c2edfbad130758
diff --git a/dev-python/twisted-news/metadata.xml b/dev-python/twisted-news/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-news/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-news/twisted-news-13.0.0-r1.ebuild b/dev-python/twisted-news/twisted-news-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..3807b992aaa
--- /dev/null
+++ b/dev-python/twisted-news/twisted-news-13.0.0-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted News is an NNTP server and programming library"
+
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-mail-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-news/twisted-news-13.2.0.ebuild b/dev-python/twisted-news/twisted-news-13.2.0.ebuild
new file mode 100644
index 00000000000..3807b992aaa
--- /dev/null
+++ b/dev-python/twisted-news/twisted-news-13.2.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted News is an NNTP server and programming library"
+
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-mail-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-news/twisted-news-14.0.0.ebuild b/dev-python/twisted-news/twisted-news-14.0.0.ebuild
new file mode 100644
index 00000000000..3a5793bc9c2
--- /dev/null
+++ b/dev-python/twisted-news/twisted-news-14.0.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted News is an NNTP server and programming library"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-mail-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-news/twisted-news-14.0.1.ebuild b/dev-python/twisted-news/twisted-news-14.0.1.ebuild
new file mode 100644
index 00000000000..d262487d914
--- /dev/null
+++ b/dev-python/twisted-news/twisted-news-14.0.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted News is an NNTP server and programming library"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-mail-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-news/twisted-news-14.0.2.ebuild b/dev-python/twisted-news/twisted-news-14.0.2.ebuild
new file mode 100644
index 00000000000..d262487d914
--- /dev/null
+++ b/dev-python/twisted-news/twisted-news-14.0.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted News is an NNTP server and programming library"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-mail-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-news/twisted-news-15.1.0.ebuild b/dev-python/twisted-news/twisted-news-15.1.0.ebuild
new file mode 100644
index 00000000000..7f5777b5149
--- /dev/null
+++ b/dev-python/twisted-news/twisted-news-15.1.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted News is an NNTP server and programming library"
+
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-mail-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-news/twisted-news-15.2.1.ebuild b/dev-python/twisted-news/twisted-news-15.2.1.ebuild
new file mode 100644
index 00000000000..7f5777b5149
--- /dev/null
+++ b/dev-python/twisted-news/twisted-news-15.2.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted News is an NNTP server and programming library"
+
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-mail-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-pair/Manifest b/dev-python/twisted-pair/Manifest
new file mode 100644
index 00000000000..205d9564bc9
--- /dev/null
+++ b/dev-python/twisted-pair/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedPair-13.0.0.tar.bz2 9187 SHA256 3773ea87a89e2cca402dc44015e14af0c8227a61d080f0e8d9deb801a4c04503 SHA512 66d9a51ec1a1a1075ac85aa5f157ffbf4158564ecb68ac74a9d52d72d0c58f70088efb463c4a7e17c187101aebbbc65e947a521661a862a6b6af7ee5aeafefe6 WHIRLPOOL bb6e0d45bb69605002891e2cd060da3aa23549a49426eb0f4422fefe744e17c27ec3e418686c26f7ff721ebb26d0420b0057f24b5660cc062d707773651ea12a
+DIST TwistedPair-13.2.0.tar.bz2 9251 SHA256 600c7dd1e9a4798540c16a7a94585a0e45e938b6f379ff863725bed85c91eb1d SHA512 931b2564e66d5056ce10695e7d9884b55d42c1081feaf9edc011aef9dff21f40e628312a89970f83619611967f155f26f4bbd9d1a325d30670e245e00f47e2d0 WHIRLPOOL 502e096358d0a92051f4b0179bb11d4884d5fac9bf4c4cd3e6b9620fa263f6ee69919c5bc89d7d9a427638e04694f19da529589bda88fa28faba610e8907625b
+DIST TwistedPair-14.0.0.tar.bz2 21665 SHA256 5452ea55fdabefb1f773eb8385b3015db53a0ff50052a4cf884e7908ec5f450a SHA512 f033748e6f9c0aaffa475469b0f87ebca80747762c4e2a474323810749f46efb91f7692873f281c179d1de25fc2d18850ea02404e1ea6bcf5a0965d0048feb9e WHIRLPOOL eea5c3c17d22d72a49d1ab68d70fc60cf5e8e587311a760f56a44d290e462d93b564ba827e5df9020d2f919331f5d92f0f2569edd8280b59e52eeb69fbd2f6f0
+DIST TwistedPair-14.0.1.tar.bz2 21676 SHA256 659fd17029fc73b75feefe06b6adb9850cc1aaa31af36f66c9ec8bab01bdcba3 SHA512 022345da61e0638dd38c32c47af23900514f6345bcfa256ac4c9674363f3c66d3ef34b337dab2275c7cc09dbde46802722fc26955cb4c4560545a8810e9a380c WHIRLPOOL 92f0fe2ee299896ea73a351bf8c3eb38e5c4fbd3771454c61c8df11f8964563db54e2302d7c14fc4a16642f22f20448efca85cf052254ef8fb7ad411dff2324e
+DIST TwistedPair-14.0.2.tar.bz2 21678 SHA256 1c2f40c4fbb089479c9615f9b96c10ed82be196a283e82132413db0a1dbc1ceb SHA512 6339541a7638ad99de9d534e36956cdadaeffc07dd86c2b24847a1e31042f832fdf51565e1528a9eae8e97918b565d8c1bc96807ea4efb04ee855745e93ce818 WHIRLPOOL f60f886d50791c6fee243b5569ca69b3dd8eb59bdb74a18b1d7f02030128001db204298c8acde6402899acaed19773a58d54e3077f8b740889274dbb539ce020
+DIST TwistedPair-15.1.0.tar.bz2 21712 SHA256 b12521b6668efd001c01f1a2703c64f586a4ebbc388b5aca56bb076795c0762c SHA512 3214017dfd4f62e074d486561ed9c7640d4f43f20fd21b3068427d482bfb3b0b723732b547a5467603b667aa62404e957343ead19a00a0b8a2f0221aa8a4691e WHIRLPOOL 8060d0653dd7e510efc32bc3da2ced56ca9066f0667b2167db455dbaca944982d5cfb2e462eb081415e757b3735bbcf2415ddbf35657ba4e024c0759f45c5987
+DIST TwistedPair-15.2.1.tar.bz2 21755 SHA256 50a95ea152272d98048d10b987805d0aadca5ad3cd9b04580c8bde69bf260583 SHA512 e7e9c8d88ca490c5e9f41ade6aede36dc23ea935f7c1658355bf685e21000e4e20ee1a3ccc3ebdba312fe026a8b7b25f2bcf51c3761668c2c3ce86b37ad3c725 WHIRLPOOL fbfcc763d2fb3b93b369426d7cfcb1bb1309b3720f5fb97193a7ffcdffe67c966b1c2e89ef824df106fe84d5f5d35d934449d0c8a5a73de995c03d7da0e14e65
diff --git a/dev-python/twisted-pair/files/14.0.0-tests.patch b/dev-python/twisted-pair/files/14.0.0-tests.patch
new file mode 100644
index 00000000000..0ec7a032eb7
--- /dev/null
+++ b/dev-python/twisted-pair/files/14.0.0-tests.patch
@@ -0,0 +1,26 @@
+Allows user to access /dev/net/tun
+--- twisted/pair/test/test_tuntap.py.orig 2014-05-27 22:55:56.230232748 -0400
++++ twisted/pair/test/test_tuntap.py 2014-05-27 23:30:02.769956742 -0400
+@@ -10,7 +10,7 @@
+ import os
+ import struct
+ import socket
+-from errno import EPERM, EBADF, EINVAL, EAGAIN, EWOULDBLOCK, ENOENT, ENODEV
++from errno import EPERM, EBADF, EINVAL, EAGAIN, EWOULDBLOCK, ENOENT, ENODEV, EACCES
+ from random import randrange
+ from collections import deque
+ from itertools import cycle
+@@ -582,8 +582,11 @@
+ except OSError as e:
+ # The device file may simply be missing. The device file may also
+ # exist but be unsupported by the kernel.
+- if e.errno in (ENOENT, ENODEV) and filename == b"/dev/net/tun":
+- raise SkipTest("Platform lacks /dev/net/tun")
++ if filename == b"/dev/net/tun":
++ if e.errno in (ENOENT, ENODEV):
++ raise SkipTest("Platform lacks /dev/net/tun")
++ elif e.errno == EACCES:
++ raise SkipTest("Access denied opening /dev/net/tun")
+ raise
+
+
diff --git a/dev-python/twisted-pair/metadata.xml b/dev-python/twisted-pair/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-pair/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-pair/twisted-pair-13.0.0-r1.ebuild b/dev-python/twisted-pair/twisted-pair-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..7c0b03d0628
--- /dev/null
+++ b/dev-python/twisted-pair/twisted-pair-13.0.0-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted low-level networking"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/eunuchs[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-pair/twisted-pair-13.2.0.ebuild b/dev-python/twisted-pair/twisted-pair-13.2.0.ebuild
new file mode 100644
index 00000000000..7c0b03d0628
--- /dev/null
+++ b/dev-python/twisted-pair/twisted-pair-13.2.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted low-level networking"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/eunuchs[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-pair/twisted-pair-14.0.0.ebuild b/dev-python/twisted-pair/twisted-pair-14.0.0.ebuild
new file mode 100644
index 00000000000..bdba2e0afbe
--- /dev/null
+++ b/dev-python/twisted-pair/twisted-pair-14.0.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted low-level networking"
+
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/eunuchs[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# https://twistedmatrix.com/trac/ticket/7433
+PATCHES=( "${FILESDIR}"/${PV}-tests.patch )
diff --git a/dev-python/twisted-pair/twisted-pair-14.0.1.ebuild b/dev-python/twisted-pair/twisted-pair-14.0.1.ebuild
new file mode 100644
index 00000000000..8b3a5883f7e
--- /dev/null
+++ b/dev-python/twisted-pair/twisted-pair-14.0.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted low-level networking"
+
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/eunuchs[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# https://twistedmatrix.com/trac/ticket/7433
+PATCHES=( "${FILESDIR}"/14.0.0-tests.patch )
diff --git a/dev-python/twisted-pair/twisted-pair-14.0.2.ebuild b/dev-python/twisted-pair/twisted-pair-14.0.2.ebuild
new file mode 100644
index 00000000000..8b3a5883f7e
--- /dev/null
+++ b/dev-python/twisted-pair/twisted-pair-14.0.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted low-level networking"
+
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/eunuchs[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# https://twistedmatrix.com/trac/ticket/7433
+PATCHES=( "${FILESDIR}"/14.0.0-tests.patch )
diff --git a/dev-python/twisted-pair/twisted-pair-15.1.0.ebuild b/dev-python/twisted-pair/twisted-pair-15.1.0.ebuild
new file mode 100644
index 00000000000..2c374df6278
--- /dev/null
+++ b/dev-python/twisted-pair/twisted-pair-15.1.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted low-level networking"
+
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/eunuchs[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# https://twistedmatrix.com/trac/ticket/7433
+PATCHES=( "${FILESDIR}"/14.0.0-tests.patch )
diff --git a/dev-python/twisted-pair/twisted-pair-15.2.1.ebuild b/dev-python/twisted-pair/twisted-pair-15.2.1.ebuild
new file mode 100644
index 00000000000..2c374df6278
--- /dev/null
+++ b/dev-python/twisted-pair/twisted-pair-15.2.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted low-level networking"
+
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/eunuchs[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+# https://twistedmatrix.com/trac/ticket/7433
+PATCHES=( "${FILESDIR}"/14.0.0-tests.patch )
diff --git a/dev-python/twisted-runner/Manifest b/dev-python/twisted-runner/Manifest
new file mode 100644
index 00000000000..7e35e1b5340
--- /dev/null
+++ b/dev-python/twisted-runner/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedRunner-13.0.0.tar.bz2 12879 SHA256 f469ebaa364c4fdcdb847b5cd3c614900457d476abaa96612f71a7ae652f56d7 SHA512 332b8ec0650eea8a1bf6a355a54a2ca05138d5859cec3317833369689f92e835ef6c02b7414d680e1019c503b85d87516e590ab23edccd29660880bdc4625c08 WHIRLPOOL 2fdf0a25d721f83aa33839796b1a03cf4303a9c928b7b94d02f03f63c371a650e5ace947c9d6b6142972756e9fe72d3f80745cf1253d973444c0b4e43d434929
+DIST TwistedRunner-13.2.0.tar.bz2 12944 SHA256 0609d2706da8ed0f6e96ca1d94c7dbcb90cd3972d26e1c471df8532a7553e9fb SHA512 1ede91957ecf349164fb63e284896f8909c88e54c032c6c326aabe2efa3058b5b9ba232e5ca60e71776dff4514a6c23483d9720e815f07c48c10232831741489 WHIRLPOOL 1095f5cceb565d1dbdb4232baf4575365d07dde14545eb6779ca9f898cc666724a529aa4531e81ecc367f3ac86b67cae63ff9e692e75e8b6e11d37fce8015942
+DIST TwistedRunner-14.0.0.tar.bz2 13020 SHA256 918c8a0ecfbb6362df8a794260eaea9c74f70e080dc3642179b2c5d838f719fe SHA512 c7101948ff46cd04e36b88fd3527b9a453c0f779608e12ca2b762ad6469e3c9dd9088ef472e53b7a649d5fc2ef1a6bed81ffbc05552f5602331cac22d3bad5ed WHIRLPOOL 9550d59e09f22b8176d70980baef86ca53989cbac18c6b6c21d9e4c03150946a2bacb63ac55c99d3ae470568b43c3559a5beda0b639f604f30a5b3b8d5f8a4c4
+DIST TwistedRunner-14.0.1.tar.bz2 13055 SHA256 2d7d9ee60f1e6b67af8daf9c68f65ee210e6f388141731280de6b3bd39818bf7 SHA512 cc897c272f6e95858deae155b096f458d2f61eb3f1ebb3e70a800aee873f26a64d3979f1d9abad73705d60c1411507b9e12c9998ba65f43acd91cf05dd637ba1 WHIRLPOOL b645ec0c6f5a6c8a7f875e47c302995889b4699c37cce1674d13f494c1fbf566661fb79667b49b4f13217e3d96df849aaaebfbbac4a0dc24431e799bfb26f177
+DIST TwistedRunner-14.0.2.tar.bz2 13042 SHA256 54864586896cb1b0a89936cd1451d3bb9c02133228d8cac5200f6b8fc6d2e0c4 SHA512 dd8609913e533ac5ca7e6f2e5d7fad4ffe4208cc03e84d1d10dc75d0ca858120bd7a35ac265a43db9e0b178b15c642219c7aeda2d7489b3e8671e1b6c52f2fa1 WHIRLPOOL 2bafb3ebeb8eaa9cd88b0c4e59ccac78099077e207767c4acdca18c344355cbab3148eca634fe829753b789a1e919fbb047669ff1fc792732d9256c4cb5cde0e
+DIST TwistedRunner-15.1.0.tar.bz2 13088 SHA256 c28ccd6f8105629c99584e7d9c9a04f90191085bf5e548d15aeb3c226a4c9e24 SHA512 335cb42dc3ecc7708ebb69d79fd2eadfa78d7ef804ad4f6d76660234cff0315aeafbe2a1a7a7e48d994f17ac4403fecb5dc6f987a8a67c9960faca2339afd1c9 WHIRLPOOL 9a735454c03187553deae94c1006b5de74cc3b0382ba2f82b4ab3888b86d520795a996d6a28de9c789a3bc59722dd355c1b1f33161bf31eb7ed3d6a5a2627a56
+DIST TwistedRunner-15.2.1.tar.bz2 13041 SHA256 5890b039f3dea6bdacd86a60de6eac299f96a180f35343d40273c7433afb0894 SHA512 9cf94b62cf978f0a11dcba7ee18632d94dbf27bf629f5632f6bdbfa21096a4a8ff5298df9e7e42f03469cf3b89dccc537b983cfb198e35ba01e0ef530baa3867 WHIRLPOOL 020d2b915119b7895479f53b40e55c12e779f937d58633d81a191fc5c0221793f2d51308e5120070ad5acabd4522d33a459a1aa764cb11528acde0ea60049cc8
diff --git a/dev-python/twisted-runner/metadata.xml b/dev-python/twisted-runner/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-runner/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-runner/twisted-runner-13.0.0-r1.ebuild b/dev-python/twisted-runner/twisted-runner-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..bb22b81f12c
--- /dev/null
+++ b/dev-python/twisted-runner/twisted-runner-13.0.0-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Runner is a process management library and inetd replacement"
+
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-runner/twisted-runner-13.2.0.ebuild b/dev-python/twisted-runner/twisted-runner-13.2.0.ebuild
new file mode 100644
index 00000000000..bb22b81f12c
--- /dev/null
+++ b/dev-python/twisted-runner/twisted-runner-13.2.0.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Runner is a process management library and inetd replacement"
+
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-runner/twisted-runner-14.0.0.ebuild b/dev-python/twisted-runner/twisted-runner-14.0.0.ebuild
new file mode 100644
index 00000000000..0b9ed5b71f4
--- /dev/null
+++ b/dev-python/twisted-runner/twisted-runner-14.0.0.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Runner is a process management library and inetd replacement"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-runner/twisted-runner-14.0.1.ebuild b/dev-python/twisted-runner/twisted-runner-14.0.1.ebuild
new file mode 100644
index 00000000000..f942e3922fd
--- /dev/null
+++ b/dev-python/twisted-runner/twisted-runner-14.0.1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Runner is a process management library and inetd replacement"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-runner/twisted-runner-14.0.2.ebuild b/dev-python/twisted-runner/twisted-runner-14.0.2.ebuild
new file mode 100644
index 00000000000..f942e3922fd
--- /dev/null
+++ b/dev-python/twisted-runner/twisted-runner-14.0.2.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Runner is a process management library and inetd replacement"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-runner/twisted-runner-15.1.0.ebuild b/dev-python/twisted-runner/twisted-runner-15.1.0.ebuild
new file mode 100644
index 00000000000..6a36287f4c0
--- /dev/null
+++ b/dev-python/twisted-runner/twisted-runner-15.1.0.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Runner is a process management library and inetd replacement"
+
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-runner/twisted-runner-15.2.1.ebuild b/dev-python/twisted-runner/twisted-runner-15.2.1.ebuild
new file mode 100644
index 00000000000..6a36287f4c0
--- /dev/null
+++ b/dev-python/twisted-runner/twisted-runner-15.2.1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Runner is a process management library and inetd replacement"
+
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-web/Manifest b/dev-python/twisted-web/Manifest
new file mode 100644
index 00000000000..ad5150a3d83
--- /dev/null
+++ b/dev-python/twisted-web/Manifest
@@ -0,0 +1,8 @@
+DIST TwistedWeb-12.3.0.tar.bz2 393179 SHA256 d13e220235788f5e2542c9f8f906fe79e59793f5212cd9862002ea084ea666ca SHA512 2c1d857a0f92b781cc683e59f7e0e16b6a1158b1a45a9b947635da2bbaf78f0988bcf6503ad58b6c5109ab710db3c2f860ac4d446654c55394c49fdc7dc5b3e4 WHIRLPOOL 59c4db46679d0c7de3b881256aee1e0a2c6a33e6a7a481554a3b9b419f172774ec28a30849d731479b1659a7eb6a30713bd033ec72ea5c6943cb15d09483dee1
+DIST TwistedWeb-13.0.0.tar.bz2 395974 SHA256 a3f6b3a47950d96a6da5cf28bf4c1e0bfa894ff2a1c38c38eac4876cac0bdc55 SHA512 d034a63a8d9a52f2db7967e57245a18ff288f1030579204286cc6d4990afe6fa30fb8aa73f62460ecaabaa76c1cc20be75aef0382f5c1bd565bef7923a9c86f8 WHIRLPOOL 93f8eab34be254c7f28aed1c95fcd9963f7038529a3d88ea014d0f2ea996f18955e3a672c89156d379b3fbe15822b21b0be0e7d35bf08bc6b0cf569607f87c0c
+DIST TwistedWeb-13.2.0.tar.bz2 403931 SHA256 aee160e0264d9dbaa0ec0613851128c91e3ac4246d3e9e13a6f2cfdfe7a4904f SHA512 69e721ec456214d000f88268340b7cf21186073af11e7f906bf95c9a1bfaf49fdc5832b4e39586ebdddd3f1378bf823ab147de58d7aa9e8491a2561a54389a1f WHIRLPOOL 9b6d02398cd29e763107338b7b0a2fd60f5ff9ea4d7578d179411c1e6470445621484cb532688d3d72f7634c5a119e52c5df86bfc462de0adf8da1ef875e3bf2
+DIST TwistedWeb-14.0.0.tar.bz2 228686 SHA256 02ee70e0fc06c6e35ef808321826bff1d64baae5331f69b179af80a7069f3573 SHA512 b157824257474da7f3a2e63aca4a3bc44ffbe529d87d30ab789d1203216b7cc4c386ed00b17530c537a0a9b77d74467366633915c562872c9d56ea0c1f29ed67 WHIRLPOOL 5ea6e4a8b533d2712fe352497d0f9a4e9404a9bb30ae5a4cef8f0ad8100a1e6e9626f216c45700da15342988afa00da16df08cbd18d866035c75fba9a34a63db
+DIST TwistedWeb-14.0.1.tar.bz2 228976 SHA256 1cbbe10bb006d1ce2cb656e2e28d504cba70d399b19ad065956e4f14661e376b SHA512 32132b93e23aa300facbfab1dddc6afba70c8e7f5d78007f401eb2fa6a1c902f21a7a92a33c8ee698e50786b1323aa2f4e4b6fb4577ecb3365060c875e94a7d3 WHIRLPOOL 3bbe4eb926c1e2b34cd9fabf69fb568184fdc2ff4502923fb214b812b1818535a3ec11b823c1f82e9fb8cd0fa2a26ed7d1ec4eeda0cf16bbb49123c5cfcb4fca
+DIST TwistedWeb-14.0.2.tar.bz2 228949 SHA256 363521b4fd0ec1bb057da010318b2b6913a9e9eb2adf8b05efc21bf3bbacdadc SHA512 272e8f1854d18514d13eda808da5fecd5f7e534d66938352f11064ef5961f912bd5981f3664551102b8596560081dc8138e51033924de7c0da03571ffc13ca83 WHIRLPOOL db5680de57f7917b04f43c075b14c2818750bb667835f0beebb63d9d14b2860569512ec308b0b11fa840ae2fb50a2507fdf22b15eb8834dd1af55e526aa25a76
+DIST TwistedWeb-15.1.0.tar.bz2 231028 SHA256 ef55ca0c425f3eed8080003cab080365d7dde038c6554581b4a06aab5a3285ce SHA512 3eccfafa1110b4fa85892fb3c8b0a37514c33c51f1edc6ac41c257dd198fa2f113e82b884dc6af3fa4dc1aefc69e8e6cc3ab1fc19a569c125e608a829c229748 WHIRLPOOL 4783613bfeda1ebd0ead1b4474cff7f3cd6317e7d8752117da99f7f3b340e5ff9d48700a737583a4b6f9d3c6aa7e750d1b45afc4aca32f2792ce802611544d86
+DIST TwistedWeb-15.2.1.tar.bz2 231092 SHA256 fa93a74a264284eb3123bc2481855e83d4901a818b8e4cbb4f7563ca72a12586 SHA512 e2b155deed9b240f92f173e0fb188c1538ef2275cc6564b838dac8a5ac4c460e664791623cd3e3cde996b63f1619eff8d62636c2813e8b81da5054b8eea365e1 WHIRLPOOL 559f56657e5169f477c74e3d8f41b35ad89580ffcee49fca183c9cf9415d89003e9fdaa711e3770848f974f4d4094dac9c4411c05c3aa1582db26bc0ff77a2fa
diff --git a/dev-python/twisted-web/metadata.xml b/dev-python/twisted-web/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-web/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-web/twisted-web-12.3.0-r1.ebuild b/dev-python/twisted-web/twisted-web-12.3.0-r1.ebuild
new file mode 100644
index 00000000000..e78984b1139
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-12.3.0-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/twisted-web/twisted-web-13.0.0-r1.ebuild b/dev-python/twisted-web/twisted-web-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..1db02f5dbde
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-13.0.0-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/twisted-web/twisted-web-13.2.0.ebuild b/dev-python/twisted-web/twisted-web-13.2.0.ebuild
new file mode 100644
index 00000000000..eee1947b802
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-13.2.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="TwistedWeb"
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+# testsuite has a PYTHONPATH oddity, currently appears to require a system install to effectively import,
+# putting in question as to whether it is a testsuite
diff --git a/dev-python/twisted-web/twisted-web-14.0.0.ebuild b/dev-python/twisted-web/twisted-web-14.0.0.ebuild
new file mode 100644
index 00000000000..8e1a67f5ead
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-14.0.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="TwistedWeb"
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+# testsuite has a PYTHONPATH oddity, currently appears to require a system install to effectively import,
+# putting in question as to whether it is a testsuite
diff --git a/dev-python/twisted-web/twisted-web-14.0.1.ebuild b/dev-python/twisted-web/twisted-web-14.0.1.ebuild
new file mode 100644
index 00000000000..048623cca60
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-14.0.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="TwistedWeb"
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+# testsuite has a PYTHONPATH oddity, currently appears to require a system install to effectively import,
+# putting in question as to whether it is a testsuite
diff --git a/dev-python/twisted-web/twisted-web-14.0.2.ebuild b/dev-python/twisted-web/twisted-web-14.0.2.ebuild
new file mode 100644
index 00000000000..048623cca60
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-14.0.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="TwistedWeb"
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+# testsuite has a PYTHONPATH oddity, currently appears to require a system install to effectively import,
+# putting in question as to whether it is a testsuite
diff --git a/dev-python/twisted-web/twisted-web-15.1.0.ebuild b/dev-python/twisted-web/twisted-web-15.1.0.ebuild
new file mode 100644
index 00000000000..039a4cbff40
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-15.1.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="TwistedWeb"
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+# testsuite has a PYTHONPATH oddity, currently appears to require a system install to effectively import,
+# putting in question as to whether it is a testsuite
diff --git a/dev-python/twisted-web/twisted-web-15.2.1.ebuild b/dev-python/twisted-web/twisted-web-15.2.1.ebuild
new file mode 100644
index 00000000000..039a4cbff40
--- /dev/null
+++ b/dev-python/twisted-web/twisted-web-15.2.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+MY_PN="TwistedWeb"
+DESCRIPTION="Twisted web server, programmable in Python"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="soap"
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ soap? ( dev-python/soappy[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ # Disable tests failing with root permissions.
+ sed -e "s/test_forbiddenResource/_&/" -i twisted/web/test/test_static.py
+ sed -e "s/testDownloadPageError3/_&/" -i twisted/web/test/test_webclient.py
+ fi
+
+ distutils-r1_python_prepare_all
+}
+# testsuite has a PYTHONPATH oddity, currently appears to require a system install to effectively import,
+# putting in question as to whether it is a testsuite
diff --git a/dev-python/twisted-words/Manifest b/dev-python/twisted-words/Manifest
new file mode 100644
index 00000000000..5a8dfe93fe8
--- /dev/null
+++ b/dev-python/twisted-words/Manifest
@@ -0,0 +1,7 @@
+DIST TwistedWords-13.0.0.tar.bz2 167286 SHA256 aec3ea773d7a6b3744edaa4206a9d9ce0f20c414c09bc8e53cbc8c96558acbe6 SHA512 5693eaee5dfe2687190e88cb0bc7f13ad7ab8dd1f5c3ac5a2ebf50cfdf667743d7f486d31e53de7d55bc3cfaa7f3e8cab500bd6da0a03a60522b815e4eac1dc5 WHIRLPOOL 021be2c046f05931b65056446b3ffa748e309b5850cfdd5a2d1613ba939b323fe4be8864567d2240d98f26bdf7ac2881956926b38116ae7b43bdff07b144faa8
+DIST TwistedWords-13.2.0.tar.bz2 176411 SHA256 079c4acc179d71058b4c5f802ceda4e3f31eddae1f09b1ab88d1c642fab746af SHA512 84ff45f86a0c3d7074fdfcd01159833b461780b75c5135d7a1cc2b3c4c918ad2299c217e8f5ef8e9a71f87a005ec1037fcf870e56601fcee50347ac2e1c39105 WHIRLPOOL 6c68fa2faaf5deeb33cffb92f182f45257e13db88251b447f6a0e9690f80621234a8de13d53e976cb141a729763419bff1db55db94e274b836d491545fa1fb2f
+DIST TwistedWords-14.0.0.tar.bz2 165343 SHA256 d7b7a604d8a35b62d255cac034e0890e231c41c0ab15b8756122f3b8e3c69b5a SHA512 22668b45377831be4db536544f6ec59437b8cd30dbd3b3cc72773e5a911bfa16ce9d774b171d4a31e9d1cafd42f8342931b513df27a4fdf60c74620e7cc25d64 WHIRLPOOL bd952477124d17a4b1a2343de363e1c68d92d7b240e7c6efad77a875041705eb6184697a7f5cf7f6283a60ddfb93729ac3d2e5ed15cc1edc568389efb8e2b081
+DIST TwistedWords-14.0.1.tar.bz2 165413 SHA256 e8f3e0bb91a7a69f743e102385f3347c3fbd05dc6f82fd0850d80976f7bf38a1 SHA512 d4e28be50c6893f5e0cee605d764b5cabed1fa100cb988165d330cebb676364eed74d8a8334a23e9fab667135a147d903f57137af3ff30d82c955504133a19c8 WHIRLPOOL 7d74c8146e8b80f9d6981a0393ffe56ae32374f0a109e8a3b47966f8ab3fedcbe5735cab546a3524908866dba5cd73c5cd942f11d289e1d47fe314af125a0cdb
+DIST TwistedWords-14.0.2.tar.bz2 165406 SHA256 f8810b5917da1a90471c6feb487d4ea058e87ae67862f0131dc331f4ad12f4ef SHA512 e551bfe4f1fa6a278a42b2fa295dbdf6b2d416beacf614819ae5a7ad1efb51b0d78cb5bd1c600c2d7a5cb2c3c2d064c0c2284a9b145633595f5cae67bfbb8d63 WHIRLPOOL dcfdccf5bb090b49102fdfea729477a768483b3e314db4968b872746479c94eed326215eb526cd68c992c1ffb89981cc36a8d071f14066ed012b0b6b8bf470dd
+DIST TwistedWords-15.1.0.tar.bz2 166836 SHA256 94863962e5dc339217c2c6dbeb081d78e8976a20bd588f287a23974bf58c1adc SHA512 1b711fea9aabc0d9f3e73e811cabbde41f1e5bdf4573dbe5fcbedb7da480aabe0ed23e006433ad3c425db39277c58804ef408c5d31d2b3e7c2c5564a9a631857 WHIRLPOOL 81e46ef43cf99e99b02348a89aff52d7b96b03180d09e27c9d76cb0887a3ccbfb54541497277d62c196f3cacab2c4b112cf7733df3f8ea5a5605dbb152d45a80
+DIST TwistedWords-15.2.1.tar.bz2 168483 SHA256 ac316d252cc807e0b35728fe8e61d3613e2b52b4991004f896d6faeab63d8189 SHA512 aca278a69f5c4deceab0e6f1c6461186131e4b9e7558970175cd5a70232eb7096c3c10fd300a9d22612e97dceeba71765118af45eed7a610678f66d9036452e7 WHIRLPOOL d35c2643265ebb3cf9a3f9060b151120476f7f1d8fd2b81618b276d0bcad2e16a1bb7b90589d70d219fee72611db6cfd5f871ef398515e5c20f487d69d6cb849
diff --git a/dev-python/twisted-words/files/twisted-words-10.2.0-twisted.words.protocols.jabber.jstrports.parse.patch b/dev-python/twisted-words/files/twisted-words-10.2.0-twisted.words.protocols.jabber.jstrports.parse.patch
new file mode 100644
index 00000000000..2f70d8e94cf
--- /dev/null
+++ b/dev-python/twisted-words/files/twisted-words-10.2.0-twisted.words.protocols.jabber.jstrports.parse.patch
@@ -0,0 +1,67 @@
+https://bugs.gentoo.org/show_bug.cgi?id=351468
+http://twistedmatrix.com/trac/ticket/4771
+http://twistedmatrix.com/trac/changeset/30430
+
+--- twisted/words/protocols/jabber/jstrports.py
++++ twisted/words/protocols/jabber/jstrports.py
+@@ -1,12 +1,12 @@
+ # -*- test-case-name: twisted.words.test -*-
+-# Copyright (c) 2001-2005 Twisted Matrix Laboratories.
++# Copyright (c) 2001-2011 Twisted Matrix Laboratories.
+ # See LICENSE for details.
+
+
+ """ A temporary placeholder for client-capable strports, until we
+ sufficient use cases get identified """
+
+-from twisted.application import strports
++from twisted.internet.endpoints import _parse
+
+ def _parseTCPSSL(factory, domain, port):
+ """ For the moment, parse TCP or SSL connections the same """
+@@ -22,7 +22,7 @@
+
+
+ def parse(description, factory):
+- args, kw = strports._parse(description)
++ args, kw = _parse(description)
+ return (args[0].upper(),) + _funcs[args[0]](factory, *args[1:], **kw)
+
+ def client(description, factory):
+--- twisted/words/test/test_jabberjstrports.py
++++ twisted/words/test/test_jabberjstrports.py
+@@ -0,0 +1,34 @@
++# Copyright (c) 2011 Twisted Matrix Laboratories.
++# See LICENSE for details.
++
++"""
++Tests for L{twisted.words.protocols.jabber.jstrports}.
++"""
++
++from twisted.trial import unittest
++
++from twisted.words.protocols.jabber import jstrports
++from twisted.application.internet import TCPClient
++
++
++class JabberStrPortsPlaceHolderTest(unittest.TestCase):
++ """
++ Tests for L{jstrports}
++ """
++
++ def test_parse(self):
++ """
++ L{jstrports.parse} accepts an endpoint description string and returns a
++ tuple and dict of parsed endpoint arguments.
++ """
++ expected = ('TCP', ('DOMAIN', 65535, 'Factory'), {})
++ got = jstrports.parse("tcp:DOMAIN:65535", "Factory")
++ self.assertEquals(expected, got)
++
++
++ def test_client(self):
++ """
++ L{jstrports.client} returns a L{TCPClient} service.
++ """
++ got = jstrports.client("tcp:DOMAIN:65535", "Factory")
++ self.assertIsInstance(got, TCPClient)
diff --git a/dev-python/twisted-words/metadata.xml b/dev-python/twisted-words/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/twisted-words/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/twisted-words/twisted-words-13.0.0-r1.ebuild b/dev-python/twisted-words/twisted-words-13.0.0-r1.ebuild
new file mode 100644
index 00000000000..a4c84517ff3
--- /dev/null
+++ b/dev-python/twisted-words/twisted-words-13.0.0-r1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Words contains Instant Messaging implementations"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-words/twisted-words-13.2.0.ebuild b/dev-python/twisted-words/twisted-words-13.2.0.ebuild
new file mode 100644
index 00000000000..a4c84517ff3
--- /dev/null
+++ b/dev-python/twisted-words/twisted-words-13.2.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Words contains Instant Messaging implementations"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-words/twisted-words-14.0.0.ebuild b/dev-python/twisted-words/twisted-words-14.0.0.ebuild
new file mode 100644
index 00000000000..4952fdee72b
--- /dev/null
+++ b/dev-python/twisted-words/twisted-words-14.0.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Words contains Instant Messaging implementations"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-words/twisted-words-14.0.1.ebuild b/dev-python/twisted-words/twisted-words-14.0.1.ebuild
new file mode 100644
index 00000000000..ece48d9b57d
--- /dev/null
+++ b/dev-python/twisted-words/twisted-words-14.0.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Words contains Instant Messaging implementations"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-words/twisted-words-14.0.2.ebuild b/dev-python/twisted-words/twisted-words-14.0.2.ebuild
new file mode 100644
index 00000000000..ece48d9b57d
--- /dev/null
+++ b/dev-python/twisted-words/twisted-words-14.0.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Words contains Instant Messaging implementations"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-words/twisted-words-15.1.0.ebuild b/dev-python/twisted-words/twisted-words-15.1.0.ebuild
new file mode 100644
index 00000000000..7697eda6178
--- /dev/null
+++ b/dev-python/twisted-words/twisted-words-15.1.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Words contains Instant Messaging implementations"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twisted-words/twisted-words-15.2.1.ebuild b/dev-python/twisted-words/twisted-words-15.2.1.ebuild
new file mode 100644
index 00000000000..7697eda6178
--- /dev/null
+++ b/dev-python/twisted-words/twisted-words-15.2.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="Twisted Words contains Instant Messaging implementations"
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~x86"
+IUSE=""
+
+DEPEND="=dev-python/twisted-core-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]
+ =dev-python/twisted-web-${TWISTED_RELEASE}*[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/twistedsnmp/Manifest b/dev-python/twistedsnmp/Manifest
new file mode 100644
index 00000000000..9bc56516e45
--- /dev/null
+++ b/dev-python/twistedsnmp/Manifest
@@ -0,0 +1 @@
+DIST TwistedSNMP-0.3.13.tar.gz 56256 SHA256 4e3d20110a3083bf4c602b57c5bcf447182bb0effcb8b0603f5da0314a804cce SHA512 547f7d20d473c11ae26d45c1ceee4670ee7445a18c52038336b00a79edaeb48f2f397e00ef0f5e9293c6334faa16edb8af3c17be124e1c862cc28f9bb4d7ba03 WHIRLPOOL 8b5456e5ee6e01a9429d6ad986bd31bfa973fefedfdc09cbf34234b45927e06b2f1c2dbd7a2d4519b3ff92cb9c9a4032ded3f9e97e353e092efdd17d93b8f71c
diff --git a/dev-python/twistedsnmp/metadata.xml b/dev-python/twistedsnmp/metadata.xml
new file mode 100644
index 00000000000..ccc5e328549
--- /dev/null
+++ b/dev-python/twistedsnmp/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>lordvan@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">twistedsnmp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/twistedsnmp/twistedsnmp-0.3.13-r1.ebuild b/dev-python/twistedsnmp/twistedsnmp-0.3.13-r1.ebuild
new file mode 100644
index 00000000000..9c15832b622
--- /dev/null
+++ b/dev-python/twistedsnmp/twistedsnmp-0.3.13-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+MY_PN="TwistedSNMP"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SNMP protocols and APIs for use with the Twisted networking framework"
+HOMEPAGE="http://twistedsnmp.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="examples test"
+
+RDEPEND="=dev-python/pysnmp-3*[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-1.3[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND} )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+python_prepare_all() {
+ # Disable broken test.
+ sed -e "s/test_tableGetWithStart/_&/" -i test/test_get.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" test/test.py || die "tests failed"
+}
+
+src_install() {
+ local HTML_DOCS=( doc/index.html )
+ use examples && local EXAMPLES=( doc/examples/. )
+ distutils-r1_src_install
+ insinto /usr/share/doc/${PF}/html/style/
+ doins doc/style/sitestyle.css
+}
diff --git a/dev-python/twitter/Manifest b/dev-python/twitter/Manifest
new file mode 100644
index 00000000000..0fcecf64b9e
--- /dev/null
+++ b/dev-python/twitter/Manifest
@@ -0,0 +1,4 @@
+DIST twitter-1.14.3.tar.gz 39538 SHA256 497fce2168cb57d5651932a39b70fc0c9304bebd53558107995102bca49210da SHA512 821af749b34d01319630388cb287af88f1e516d8d6117088e63d988cf2a397a70c2770df2e1f208bcfa9a18224aae98e7c2a6bb62b4fc8653e2bceed7f39a92c WHIRLPOOL 6ec6fa7a124aeceedc5a58a89f7ff5a6fed6d6f09993dbb3e581b7ef55810440390b8d8b22e4139aa7a770f203c065c2a75a149ff7d025491c7e11b3be97a00f
+DIST twitter-1.15.0.tar.gz 41074 SHA256 4c7079231c0826f3a4e8e28f9384ff928813ed2527a059c86074a695e309cbd4 SHA512 a0e97a9123afb19c3a57d2cfe0383aa87a8d1bd681a99895414bc304279bb3d638ddb14c9d01906f3ae78562a5447f027cad4e68175d1d3cdb6f408bcccef213 WHIRLPOOL 0a2aa6c7cd7cbc4e9e90eb5cb0edd5634df8dc5b4d721d8e3311b7113b6ae2347a2b7e3e7dadba003dfe42e03b7462d49f9e31909744cb3c206aa4169ffdb3c9
+DIST twitter-1.16.0.tar.gz 42597 SHA256 92a4c13570806cf3ae2aab10ff97000c1aa7fcc0ed5740ca1df01346642e3ec3 SHA512 090b8fc4a535d2b9be290e84a46b3d478e876fb4c9423266f385f33c5e325e1b9cbf8af039ac5066e7fca4f431abf2c64046af9ebd7a5884b5b2775292437246 WHIRLPOOL 4f2249a31f560e2e07d77a11366df68d1fa3f79cfa8e2fb2ec338a4278834ece111056089edaa4a58292678f243b4ef2fbb38acb59c2a83f5ce46776360f287f
+DIST twitter-1.17.0.tar.gz 42869 SHA256 85396c4c33b9b213f3d2d805caaf6b386b9e277af9117eb51e5a782f77257376 SHA512 26acaa2d608c09d749d95d27fb51f76df4bd4358d0f49ea5afe8ca0db0d06873d265d67c23858e26d8ce513041adaa0445221b09b0353c3508328e8715d1280c WHIRLPOOL 8196ad84473d24c3c55d342deae7c2dd7c0438be03749159a0488250d9fea2e99b54a1e13c3661cd8fc17c7484308b269611ec2b6dfe4262820173bb549c8408
diff --git a/dev-python/twitter/metadata.xml b/dev-python/twitter/metadata.xml
new file mode 100644
index 00000000000..b13a57cbfb4
--- /dev/null
+++ b/dev-python/twitter/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">twitter</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/twitter/twitter-1.14.3.ebuild b/dev-python/twitter/twitter-1.14.3.ebuild
new file mode 100644
index 00000000000..9f347f24db4
--- /dev/null
+++ b/dev-python/twitter/twitter-1.14.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An API and command-line toolset for Twitter (twitter.com)"
+HOMEPAGE="http://mike.verdone.ca/twitter/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/twitter/twitter-1.15.0.ebuild b/dev-python/twitter/twitter-1.15.0.ebuild
new file mode 100644
index 00000000000..4a0c8ba5ebd
--- /dev/null
+++ b/dev-python/twitter/twitter-1.15.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An API and command-line toolset for Twitter (twitter.com)"
+HOMEPAGE="http://mike.verdone.ca/twitter/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/twitter/twitter-1.16.0.ebuild b/dev-python/twitter/twitter-1.16.0.ebuild
new file mode 100644
index 00000000000..9f347f24db4
--- /dev/null
+++ b/dev-python/twitter/twitter-1.16.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An API and command-line toolset for Twitter (twitter.com)"
+HOMEPAGE="http://mike.verdone.ca/twitter/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/twitter/twitter-1.17.0.ebuild b/dev-python/twitter/twitter-1.17.0.ebuild
new file mode 100644
index 00000000000..9f347f24db4
--- /dev/null
+++ b/dev-python/twitter/twitter-1.17.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="An API and command-line toolset for Twitter (twitter.com)"
+HOMEPAGE="http://mike.verdone.ca/twitter/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/twython/Manifest b/dev-python/twython/Manifest
new file mode 100644
index 00000000000..b5780557199
--- /dev/null
+++ b/dev-python/twython/Manifest
@@ -0,0 +1,3 @@
+DIST twython-3.0.0.tar.gz 28543 SHA256 9ca7148836e9ec298212b946c8bf85776edc5afa7059486560476cb160efe8a3 SHA512 2ecd0954bfc8d442ab9e602ffd8bdb0ca241e7411b51dc3df4285a4ba0691fa6a5f5b4d188461f2248e6135f9e87e7ef973375448946898f3845c2cbde18beee WHIRLPOOL f46eed176cceccd41e7a1aa2c0b671205b9439f67153661430771ba693055707ce6d009ce81453f2c7a1804e65291641e72b29df6c5af7978828c40511c336c7
+DIST twython-3.2.0.tar.gz 33741 SHA256 ab0dec52286677e944ddc00eaf6a0eb89af48b1a6696324ea29351342d1c483f SHA512 809bc9fe3512b383b38e74929dadb4576bc9b51b0ce80ea444aadea44f95f2df0fc119bd0ea1982337e654bd5d92abb78671f20fe3b56e647f6caca00ec3791f WHIRLPOOL 5104295c2610ab76408047875aff2c7cfd49643344804676d7b04eb2e1727b2bfe4d70821505c7f7106744f6fb141adca7f78c19d6d209f3c54a220932a9ada5
+DIST twython-3.3.0.tar.gz 34164 SHA256 afe23e8a718500eb49d2e42375b2c251b58bf13a6f572d9e586fbeaeda18cf37 SHA512 888f37c37f39c603b08605d2e209afc329e079c405adbe3a03fde4dab2b76b07d2badf1956d255d4b7ff0bf2a4c308b20f2a3333a7ccd0e7b9c046e9172b1d5f WHIRLPOOL b1a3a4867bc82a3395e04c6a3a219e7482d585e5139fb5d25fd9eabfec9cc1c8d045d3f984fdb8aefb8d0252e946411bc6f03f196b0f61a682e78ca923f69697
diff --git a/dev-python/twython/metadata.xml b/dev-python/twython/metadata.xml
new file mode 100644
index 00000000000..0de0df0bb21
--- /dev/null
+++ b/dev-python/twython/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ryanmcgrath/twython</remote-id>
+ <remote-id type="pypi">twython</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/twython/twython-3.0.0.ebuild b/dev-python/twython/twython-3.0.0.ebuild
new file mode 100644
index 00000000000..ca5ae539322
--- /dev/null
+++ b/dev-python/twython/twython-3.0.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="An easy (and up to date) way to access Twitter data with Python"
+HOMEPAGE="https://github.com/ryanmcgrath/twython"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=dev-python/requests-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/requests-oauthlib-0.3.2[${PYTHON_USEDEP}]"
diff --git a/dev-python/twython/twython-3.2.0.ebuild b/dev-python/twython/twython-3.2.0.ebuild
new file mode 100644
index 00000000000..ed1e81ce54e
--- /dev/null
+++ b/dev-python/twython/twython-3.2.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="An easy (and up to date) way to access Twitter data with Python"
+HOMEPAGE="https://github.com/ryanmcgrath/twython"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=dev-python/requests-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/requests-oauthlib-0.4.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/twython/twython-3.3.0.ebuild b/dev-python/twython/twython-3.3.0.ebuild
new file mode 100644
index 00000000000..d440b0b9bc0
--- /dev/null
+++ b/dev-python/twython/twython-3.3.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="An easy (and up to date) way to access Twitter data with Python"
+HOMEPAGE="https://github.com/ryanmcgrath/twython"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=dev-python/requests-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-oauthlib-0.4.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/txAMQP/Manifest b/dev-python/txAMQP/Manifest
new file mode 100644
index 00000000000..a200d6f40b5
--- /dev/null
+++ b/dev-python/txAMQP/Manifest
@@ -0,0 +1 @@
+DIST txAMQP-0.6.2.tar.gz 20749 SHA256 ab70a5e443d7aa4488e48d683ad32cf152e1a347198dafdd5d87a42643d61cf0 SHA512 676797a5ae4e013d3cbf42e94f2a3e0421c9db0056e2abaee7bfacbb2b31b50948b5ac51d389ba6f8c609207a294c35ee9359813f3151f37d049092bd1aed78a WHIRLPOOL aa0fb96ae068ec67e0e1f4ce545b4e20067eb5acf7c993b21144d0a55fc67de1afd2c00d87783f5933e015e43f83b3cf871414fea5eaf16c2643914a81d1822e
diff --git a/dev-python/txAMQP/metadata.xml b/dev-python/txAMQP/metadata.xml
new file mode 100644
index 00000000000..1b8745ab66e
--- /dev/null
+++ b/dev-python/txAMQP/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">txAMQP</remote-id>
+ <remote-id type="launchpad">txamqp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/txAMQP/txAMQP-0.6.2.ebuild b/dev-python/txAMQP/txAMQP-0.6.2.ebuild
new file mode 100644
index 00000000000..10e24fbbfca
--- /dev/null
+++ b/dev-python/txAMQP/txAMQP-0.6.2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Python library for communicating with AMQP peers using Twisted"
+HOMEPAGE="https://launchpad.net/txamqp"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/twisted-core"
diff --git a/dev-python/txaio/Manifest b/dev-python/txaio/Manifest
new file mode 100644
index 00000000000..fd0ee65dd8b
--- /dev/null
+++ b/dev-python/txaio/Manifest
@@ -0,0 +1 @@
+DIST txaio-1.0.0.zip 33656 SHA256 4b38afc5d416b23426ed4e7f582d949317df5173c50efec999f2cc97ed368a57 SHA512 7ca543721139e3da96e86d3d2feafbd0901df7a48585f43f46407a17c226e24bbd18841c50bf911c3f208d614c9e32bfc0a7bee37b03b9ddea87a8a47e940572 WHIRLPOOL d11ea36f27d26566a5dcce83751a723ac2e33c51ecc7019b95d66014850e94fc820ae44b36cbbe3c5a3f5b86de666a2b59cec29194ca3d4b9d39908bb47b2556
diff --git a/dev-python/txaio/files/util.py b/dev-python/txaio/files/util.py
new file mode 100644
index 00000000000..254df70a5aa
--- /dev/null
+++ b/dev-python/txaio/files/util.py
@@ -0,0 +1,40 @@
+try:
+ import asyncio
+ from asyncio.test_utils import run_once as _run_once
+
+ def run_once():
+ return _run_once(asyncio.get_event_loop())
+
+except ImportError as e:
+ try:
+ import trollius as asyncio
+ except ImportError:
+ asyncio = None
+
+ def run_once():
+ '''
+ copied from asyncio.testutils because trollius has no
+ "testutils"
+ '''
+ # in Twisted, this method is a no-op
+ if asyncio is None:
+ return
+
+ # just like modern asyncio.testutils.run_once does it...
+ loop = asyncio.get_event_loop()
+ loop.stop()
+ loop.run_forever()
+ asyncio.gather(*asyncio.Task.all_tasks())
+
+
+try:
+ # XXX fixme hack better way to detect twisted
+ # (has to work on py3 where asyncio exists always, though)
+ import twisted # noqa
+
+ def await(_):
+ return
+
+except ImportError:
+ def await(future):
+ asyncio.get_event_loop().run_until_complete(future)
diff --git a/dev-python/txaio/metadata.xml b/dev-python/txaio/metadata.xml
new file mode 100644
index 00000000000..c017089accf
--- /dev/null
+++ b/dev-python/txaio/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">txaio</remote-id>
+ <remote-id type="github">tavendo/txaio</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/txaio/txaio-1.0.0.ebuild b/dev-python/txaio/txaio-1.0.0.ebuild
new file mode 100644
index 00000000000..63cfaa4061e
--- /dev/null
+++ b/dev-python/txaio/txaio-1.0.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="a helper library for writing code unmodified on both Twisted and asyncio"
+HOMEPAGE="https://github.com/tavendo/txaio"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/pep8-1.6.2[${PYTHON_USEDEP}]"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/alabaster[${PYTHON_USEDEP}] )
+ test? ( >=dev-python/pytest-2.6.4[${PYTHON_USEDEP}]
+ >=dev-python/pytest-cov-1.8.1[${PYTHON_USEDEP}] )"
+
+python_prepare() {
+ # https://github.com/tavendo/txaio/issues/3
+ cp -r "${FILESDIR}"/util.py test || die
+
+ distutils-r1_python_prepare
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/txsocksx/Manifest b/dev-python/txsocksx/Manifest
new file mode 100644
index 00000000000..c249037caf5
--- /dev/null
+++ b/dev-python/txsocksx/Manifest
@@ -0,0 +1 @@
+DIST txsocksx-1.13.0.3.tar.gz 19147 SHA256 df1a9e7062c7e3693c39953705b75e0feb7b8746a05135ffb2b8cd98708c9c43 SHA512 86621ea27eb0a8f2043f0ea0746a0716ca5e03d0721adb9e733d8398f105b3a17c37057d69cb3bb929e9348a06bc4064f8fb1149dbb0a06e9fd0f07eab5898b2 WHIRLPOOL 11d87111c06665b3c9330fb548fd9b936d2d3a5c82d305872ffc482011b38ec10624aac94603af89339949e29b5023dda8aaba4596186f916b9062022c70e662
diff --git a/dev-python/txsocksx/metadata.xml b/dev-python/txsocksx/metadata.xml
new file mode 100644
index 00000000000..8ccefa5d55b
--- /dev/null
+++ b/dev-python/txsocksx/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">txsocksx</remote-id>
+ <remote-id type="github">habnabit/txsocksx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/txsocksx/txsocksx-1.13.0.3.ebuild b/dev-python/txsocksx/txsocksx-1.13.0.3.ebuild
new file mode 100644
index 00000000000..e9253f1682e
--- /dev/null
+++ b/dev-python/txsocksx/txsocksx-1.13.0.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Twisted client endpoints for SOCKS{4,4a,5}"
+HOMEPAGE="https://github.com/habnabit/txsocksx"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/vcversioner[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/parsley-1.2[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP},crypt]
+ dev-python/twisted-web[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]"
diff --git a/dev-python/tzlocal/Manifest b/dev-python/tzlocal/Manifest
new file mode 100644
index 00000000000..0fbf54813a8
--- /dev/null
+++ b/dev-python/tzlocal/Manifest
@@ -0,0 +1,2 @@
+DIST tzlocal-1.1.2.zip 22504 SHA256 4d9ddb8d5eab086e3a7c504c6e994ffa85df43e40da4d6be776218be051c677a SHA512 966b56af79238332dd3d6c730d1e0a8ab3c7caa06755d9fb148473297a6ac65133e9d554236a7d09672a663266e3214142d423c62ba3444558ae81a12d21a629 WHIRLPOOL f95f2d0e4cbeee955dbf6fdcdc928d6514c8a76446b6c52349341f54a06749c2c3fd1a25f487bcf989a11c03abe0b870305f87eee01fc0ac107070c1e5a3dbd1
+DIST tzlocal-1.2.tar.gz 16149 SHA256 438f122d684c951b22cb98aecc80fdb961b84e69542bf878c6b9a9419de09a8b SHA512 eb4d1f73983579e109249884d2a343c441942fb0d4dc76aed693c4a05100b10a2337d72794fdb9c0cd28c3b73e11dbd030bdf6dc2f75e57c958655219973c814 WHIRLPOOL 8f39abc1a07a27c4afa8116c8817a1ec37483d8f05291f29a23ea6cfaf2bb517fca7b0b8998c8d13183cc0f0b26bb718c1674c033af271460ed1add7e0ccf5d6
diff --git a/dev-python/tzlocal/metadata.xml b/dev-python/tzlocal/metadata.xml
new file mode 100644
index 00000000000..ba3614fc572
--- /dev/null
+++ b/dev-python/tzlocal/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">tzlocal</remote-id>
+ <remote-id type="github">regebro/tzlocal</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/tzlocal/tzlocal-1.1.2.ebuild b/dev-python/tzlocal/tzlocal-1.1.2.ebuild
new file mode 100644
index 00000000000..dd9a3bfc7cc
--- /dev/null
+++ b/dev-python/tzlocal/tzlocal-1.1.2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="tzinfo object for the local timezone"
+HOMEPAGE="https://github.com/regebro/tzlocal"
+SRC_URI="mirror://pypi/t/${PN}/${P}.zip"
+
+LICENSE="CC0-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+RDPEND="dev-python/pytz[${PYTHON_USEDEP}]"
+
+python_test() {
+ unset TZ
+ "${PYTHON}" -m unittest discover || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/tzlocal/tzlocal-1.2.ebuild b/dev-python/tzlocal/tzlocal-1.2.ebuild
new file mode 100644
index 00000000000..e2147501965
--- /dev/null
+++ b/dev-python/tzlocal/tzlocal-1.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="tzinfo object for the local timezone"
+HOMEPAGE="https://github.com/regebro/tzlocal"
+SRC_URI="mirror://pypi/t/${PN}/${P}.tar.gz"
+
+LICENSE="CC0-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDPEND="dev-python/pytz[${PYTHON_USEDEP}]"
+
+python_test() {
+ unset TZ
+ "${PYTHON}" -m unittest discover || die "Testing failed with ${EPYTHON}"
+}
diff --git a/dev-python/ujson/Manifest b/dev-python/ujson/Manifest
new file mode 100644
index 00000000000..aa37f161ee9
--- /dev/null
+++ b/dev-python/ujson/Manifest
@@ -0,0 +1 @@
+DIST ujson-1.33.zip 197034 SHA256 68cf825f227c82e1ac61e423cfcad923ff734c27b5bdd7174495d162c42c602b SHA512 0f1f66212fbf94c03e048ba64c3bd817c50443d1a29b87f6a3a38f697a050f38821be4ba36a3b17a96930c69ee92973ac31bdd41851dea071af14cd4bbaf8480 WHIRLPOOL d3080fcf3e979b43deb8fe099427a8311c55e7e54105626bf12b3b6fe9e8567f70501884bd24b7a26d53ddfcd98f535de4aa708801106aa4a1b76e543217835c
diff --git a/dev-python/ujson/files/ujson-1.33-test-py3.patch b/dev-python/ujson/files/ujson-1.33-test-py3.patch
new file mode 100644
index 00000000000..e497f396792
--- /dev/null
+++ b/dev-python/ujson/files/ujson-1.33-test-py3.patch
@@ -0,0 +1,38 @@
+ tests/tests.py | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/tests/tests.py b/tests/tests.py
+index d210bc6..71f8074 100644
+--- a/tests/tests.py
++++ b/tests/tests.py
+@@ -11,6 +11,7 @@ try:
+ except ImportError:
+ import simplejson as json
+ import math
++import nose
+ import platform
+ import sys
+ import time
+@@ -24,9 +25,10 @@ from functools import partial
+
+ PY3 = (sys.version_info[0] >= 3)
+
+-def _python_ver(skip_major, skip_minor=None):
++def _skip_if_python_ver(skip_major, skip_minor=None):
+ major, minor = sys.version_info[:2]
+- return major == skip_major and (skip_minor is None or minor == skip_minor)
++ if major == skip_major and (skip_minor is None or minor == skip_minor):
++ raise nose.SkipTest
+
+ json_unicode = (json.dumps if sys.version_info[0] >= 3
+ else partial(json.dumps, encoding="utf-8"))
+@@ -579,8 +581,8 @@ class UltraJSONTests(TestCase):
+ input = "-31337"
+ self.assertEquals (-31337, ujson.decode(input))
+
+- #@unittest.skipIf(_python_ver(3), "No exception in Python 3")
+ def test_encodeUnicode4BytesUTF8Fail(self):
++ _skip_if_python_ver(3)
+ input = "\xfd\xbf\xbf\xbf\xbf\xbf"
+ try:
+ enc = ujson.encode(input)
diff --git a/dev-python/ujson/metadata.xml b/dev-python/ujson/metadata.xml
new file mode 100644
index 00000000000..8ad7ebc5d6f
--- /dev/null
+++ b/dev-python/ujson/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>swegener@gentoo.org</email>
+ <name>Sven Wegener</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">ujson</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ujson/ujson-1.33.ebuild b/dev-python/ujson/ujson-1.33.ebuild
new file mode 100644
index 00000000000..aad7ca8bb93
--- /dev/null
+++ b/dev-python/ujson/ujson-1.33.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+# One test; FAIL: test_encodeToUTF8 (__main__.UltraJSONTests) under py2.5.
+# Fix and repair and re-insert if it's REALLY needed
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Ultra fast JSON encoder and decoder for Python"
+HOMEPAGE="http://pypi.python.org/pypi/ujson/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+IUSE=""
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ app-arch/unzip"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-test-py3.patch
+)
+
+python_test() {
+ # See setup.py; line 72. Again "${S}" is used for reading tests
+ # Since py3_2 is first in the queue it needs its own copy
+ # or else all py2s to follow will be reading read py3 tests
+ if [[ "${EPYTHON}" =~ 'python3' ]]; then
+ cd "${BUILD_DIR}"/lib || die
+ cp -a "${S}"/tests/ . || die
+ 2to3 -w tests/tests.py
+ "${PYTHON}" tests/tests.py || die
+ rm -rf tests/ || die
+ else
+ "${PYTHON}" tests/tests.py || die
+ fi
+}
diff --git a/dev-python/unicodecsv/Manifest b/dev-python/unicodecsv/Manifest
new file mode 100644
index 00000000000..95aa894eba0
--- /dev/null
+++ b/dev-python/unicodecsv/Manifest
@@ -0,0 +1,5 @@
+DIST unicodecsv-0.11.0.tar.gz 9196 SHA256 d7bbbed2a99c2b20db048c8a9c5291b8f6e863280d5e465ecd7a216c6282e37f SHA512 5f82c434a3092a2c4266591e9a0cee9d382c709835c5fbe04576a795024e07e7ac241ccdc09c8319d940b22eed800051a935d3a7e8d92c986c7c4825a641853a WHIRLPOOL 8412dc2e967816e034391bceca97fbccddb7c8d8a8d1e9072ad9a698af3cb13dd9aae6d7f6833cc5310720fba41b99c8957932c3aebbbbada6db7b5a63aa82de
+DIST unicodecsv-0.11.1.tar.gz 9251 SHA256 cc1f5af069588b65a05b8ef03b82f6c1b3bd7ced29f7a60c5aced42e1ea84f9c SHA512 4a1f0e0fd1f963df4719e7df7c90357faa55399fbede94e9c1858f6862e4d45266adba81e09faeae0589ddd25be873fecbec6fae305e0b2cc950b5646691368b WHIRLPOOL b4d8a70a850d92624a4065facbc2e45d0b6ae69a135cf9a072a87bf8c1d3710f49d8b8a501f87edccc21c19a2d416e3c746042001f1a7e4c3049140e78ef3aad
+DIST unicodecsv-0.12.0.tar.gz 9372 SHA256 b0b7513c33e658cf8e96a55ae18b7be0cf756ca7bfa39b3e4178a1a13edf5e04 SHA512 54a930ecfcec0ef6b91f855fae7e409618a541863953493921ec28f15e26f545c44dab779ee88acb247c28e8e981e958759716337a2ffee63df866f65e4dbd36 WHIRLPOOL 7bacf19554f12931d0f624a53787aa8d9cc394fb7b6cc115b908487419449f06e4b2789dcfd2c451f81ad1a23334e6185deffdf3876ece4c4cb53e8752854379
+DIST unicodecsv-0.13.0.tar.gz 9445 SHA256 a913fa13a26b4b25058950f8d6231abee855e8a03a0f265274b3ed30a91034a3 SHA512 c794baac1b165482733faf94bab9284f6f71a1ae999dbd802afc9c906e82e396e98c5f3291f0796c39acec9dc924ad746a94269ac535046fc671351a2db33583 WHIRLPOOL 76b22ad354e004bb970a161d4dcce37fb5373369917a881d9a01d37ac93623e948609cb12270d94f433812cd42eb3f9602c108cf5c09cd471b312ab5a1ecdaa9
+DIST unicodecsv-0.9.4.tar.gz 9070 SHA256 0272570bc2b302093d9ac6e1171fc07862f7ac938146bb6152d8dfe20eeafd9b SHA512 2b0f4a602d68bd8bcbbeb9c7cbd2c9f3b43ca87e73816c40912b75a5c265739902e67b67f9946f1ef572ee99376cecdd7ce5a343216a32a86f25e0860251d828 WHIRLPOOL d3f47eb88ee1dac3fcafc2b9cb22619d310bae9dc6ba467526e7630cea7d57e02ad1139d1e4f6152f9cefc7030aed3d9f61ffec9052f59c44dd5a0108348f638
diff --git a/dev-python/unicodecsv/metadata.xml b/dev-python/unicodecsv/metadata.xml
new file mode 100644
index 00000000000..579c66e37e3
--- /dev/null
+++ b/dev-python/unicodecsv/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">unicodecsv</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/unicodecsv/unicodecsv-0.11.0.ebuild b/dev-python/unicodecsv/unicodecsv-0.11.0.ebuild
new file mode 100644
index 00000000000..01eaab810e3
--- /dev/null
+++ b/dev-python/unicodecsv/unicodecsv-0.11.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Drop-in replacement for python stdlib csv module supporting unicode"
+HOMEPAGE="https://pypi.python.org/pypi/unicodecsv"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
diff --git a/dev-python/unicodecsv/unicodecsv-0.11.1.ebuild b/dev-python/unicodecsv/unicodecsv-0.11.1.ebuild
new file mode 100644
index 00000000000..01eaab810e3
--- /dev/null
+++ b/dev-python/unicodecsv/unicodecsv-0.11.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Drop-in replacement for python stdlib csv module supporting unicode"
+HOMEPAGE="https://pypi.python.org/pypi/unicodecsv"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
diff --git a/dev-python/unicodecsv/unicodecsv-0.12.0.ebuild b/dev-python/unicodecsv/unicodecsv-0.12.0.ebuild
new file mode 100644
index 00000000000..520eac5b3f0
--- /dev/null
+++ b/dev-python/unicodecsv/unicodecsv-0.12.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Drop-in replacement for python stdlib csv module supporting unicode"
+HOMEPAGE="https://pypi.python.org/pypi/unicodecsv"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/unicodecsv/unicodecsv-0.13.0.ebuild b/dev-python/unicodecsv/unicodecsv-0.13.0.ebuild
new file mode 100644
index 00000000000..a54770d511f
--- /dev/null
+++ b/dev-python/unicodecsv/unicodecsv-0.13.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Drop-in replacement for python stdlib csv module supporting unicode"
+HOMEPAGE="https://pypi.python.org/pypi/unicodecsv https://github.com/jdunck/python-unicodecsv"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+# not contained in the release tarball
+RESTRICT="test"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/unicodecsv/unicodecsv-0.9.4.ebuild b/dev-python/unicodecsv/unicodecsv-0.9.4.ebuild
new file mode 100644
index 00000000000..6f2290f9ed9
--- /dev/null
+++ b/dev-python/unicodecsv/unicodecsv-0.9.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Drop-in replacement for python stdlib csv module supporting unicode"
+HOMEPAGE="https://pypi.python.org/pypi/unicodecsv"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
diff --git a/dev-python/unidecode/Manifest b/dev-python/unidecode/Manifest
new file mode 100644
index 00000000000..00296f3e6f9
--- /dev/null
+++ b/dev-python/unidecode/Manifest
@@ -0,0 +1,2 @@
+DIST Unidecode-0.04.17.tar.gz 201090 SHA256 f0f8d53d39877da4849293d548eecb5e79364b573643296869dbc7f5b86709ef SHA512 297f411ab09f42cfb455279bb0accafe278d480acf6087b6596dbf4b4d4de89d45d389c5418a2dc4fe8c8f61026c92b3036e08f625e7f434abce9db335682be2 WHIRLPOOL f6fd10531da0e3b6eb14bfbeb07109490523d63151d8a26fd131506d7ead1a7b5570756ec7fa943c25e5a8ede6cbab1c9548cafbbca89301e52781621b41e513
+DIST Unidecode-0.04.18.tar.gz 206191 SHA256 f19150c74de2fe6847b13efeeaee402f2bd2c309a446346a8b5baae0315d108a SHA512 4434b147662c605829a599cb227b10599e70b9a40669b6bce490156c6679d22b49e1768667e10851eaf8d6a142a2c22df4800f0382ed74e781c247708021acd7 WHIRLPOOL 84f07583ba19f6c029128699629dc5709343520b94ea0fd3c8924d7e44910481f5b1574449eb78c2fa4dd884de4fa8b646593623dcae28b809f423c343163aa1
diff --git a/dev-python/unidecode/metadata.xml b/dev-python/unidecode/metadata.xml
new file mode 100644
index 00000000000..f84012a4838
--- /dev/null
+++ b/dev-python/unidecode/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jer@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+This is a Python port of the Text::Unidecode Perl (<pkg>dev-perl/Text-Unidecode</pkg> module
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">Unidecode</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/unidecode/unidecode-0.04.17.ebuild b/dev-python/unidecode/unidecode-0.04.17.ebuild
new file mode 100644
index 00000000000..b7c7381ec97
--- /dev/null
+++ b/dev-python/unidecode/unidecode-0.04.17.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+MY_PN=Unidecode
+MY_P=${MY_PN}-${PV}
+
+inherit distutils-r1
+
+DESCRIPTION="Module providing ASCII transliterations of Unicode text"
+HOMEPAGE="http://pypi.python.org/pypi/Unidecode"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ppc sparc x86"
+
+S=${WORKDIR}/${MY_P}
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/unidecode/unidecode-0.04.18.ebuild b/dev-python/unidecode/unidecode-0.04.18.ebuild
new file mode 100644
index 00000000000..f6a258c9dfa
--- /dev/null
+++ b/dev-python/unidecode/unidecode-0.04.18.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+MY_PN=Unidecode
+MY_P=${MY_PN}-${PV}
+
+inherit distutils-r1
+
+DESCRIPTION="Module providing ASCII transliterations of Unicode text"
+HOMEPAGE="http://pypi.python.org/pypi/Unidecode"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
+
+S=${WORKDIR}/${MY_P}
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/unittest2/Manifest b/dev-python/unittest2/Manifest
new file mode 100644
index 00000000000..c0e511aa128
--- /dev/null
+++ b/dev-python/unittest2/Manifest
@@ -0,0 +1,5 @@
+DIST unittest2-0.5.1.tar.gz 62470 SHA256 aa5de8cdf654d843379c97bd1ee240e86356d3355a97b147a6f3f4d149247a71 SHA512 3979d94fd4e1038ec134dd2342d614766383177eadd0cc3c38b964528157fbbe466800d1a7422cf647500784af8e0c2caa750a364a33c9f761dca37d7bbb598f WHIRLPOOL d66d0b37c1646280e81035fde287f14c042fb2820434b27490aca49b265340ec76636315bfc9aa413a4c1f2d3be90a9e86da54f1149425ef09f7366d295f50b4
+DIST unittest2-0.8.0.tar.gz 78312 SHA256 bb00b9c261cf3fa6b84cc3e6c3a39edf74b3140345b3f677907635a2738a7e2a SHA512 f5e3083e236ff5ad2b3149a5d31e1a0ed20e0bd3283eacec0c5d12c143afb60a92163a27c25424348872db7fcfa11d4230af468a0e67a41cb32ed9dcd5566607 WHIRLPOOL c35b23f967b30864417be11b75c29a1cb93126eb09096cc3366b4a32970af2b09e97ddd15ee32f12f6773aa9bedc89e64491516dd1f759bb35d760a18db217ff
+DIST unittest2-1.0.1.tar.gz 80516 SHA256 ccec0aa70cae02253e6dac861591043f41854b77d7d24dc606dc300769d013c1 SHA512 68e5d6609282e0b2b4134481f25357aaeaa413e83b15695072651db8c3ac32b97fd7f5f329599cb9b0fda29c7e6bd6c5dc83ed12a0a36414912779cfb6bc1899 WHIRLPOOL c4b8c59b7390000916be62c2549d5b9db7c93514166009c5c6f120cd617371f400734a7a3c231903df5fc4817ac10a7572a08b366d3e97a23bc1d7aa456203fa
+DIST unittest2-1.1.0.tar.gz 81432 SHA256 22882a0e418c284e1f718a822b3b022944d53d2d908e1690b319a9d3eb2c0579 SHA512 3fba15728905f437767416ab4fd3573d3fb2319486ef84c52a9fa930ea84aa1f2ae29d6f58993e3509083625790e17b1ef8d9ac5de0e166c254897a3e7a202fa WHIRLPOOL d375c59aed23e4fce14499df2fb64d185facc1e25378805045c66eef9c2fa14de81d7580020300c374f7842d38aaf6ccb26df4ff9a430f6ad497863e2766dc83
+DIST unittest2py3k-0.5.1.tar.gz 55493 SHA256 78249c5f1ac508a34d9d131d43a89d77bf154186f3ea5f7a6b993d3f3535d403 SHA512 d56a416355abd905f22f5bdceab8305f8f2e28b17dd1250d4c2ab637e20745836a8bc0c8ba1356122b355ba6ad43c9a7b4284699a8b54fe6d8612b9c4565be2b WHIRLPOOL 526ae793735aa5c5eaa490d3a5fbd2a11ffe9e83d22fd246dd165891c4f03733484e3bb38b68d07ec12379298f19b358181feb2ef584db9e421ed6dcbfc367cd
diff --git a/dev-python/unittest2/files/remove-argparse-dependence.patch b/dev-python/unittest2/files/remove-argparse-dependence.patch
new file mode 100644
index 00000000000..36f89fc5f8f
--- /dev/null
+++ b/dev-python/unittest2/files/remove-argparse-dependence.patch
@@ -0,0 +1,12 @@
+diff -r 8928fb47c3a9 setup.py
+--- a/setup.py Thu Mar 12 15:55:36 2015 +1300
++++ b/setup.py Sun Apr 05 09:06:44 2015 -0500
+@@ -57,7 +57,7 @@
+ # Both install and setup requires - because we read VERSION from within the
+ # package, and the package also exports all the APIs.
+ # six for compat helpers
+-REQUIRES = ['argparse', 'six>=1.4', 'traceback2'],
++REQUIRES = ['six>=1.4', 'traceback2'],
+
+ params = dict(
+ name=NAME,
diff --git a/dev-python/unittest2/files/unittest2-0.8.0-argparse.patch b/dev-python/unittest2/files/unittest2-0.8.0-argparse.patch
new file mode 100644
index 00000000000..4435511c22f
--- /dev/null
+++ b/dev-python/unittest2/files/unittest2-0.8.0-argparse.patch
@@ -0,0 +1,15 @@
+argparse is in standard library in Python 2.7 and >=3.2
+https://code.google.com/p/unittest-ext/issues/detail?id=88
+--- a/setup.py
++++ b/setup.py
+@@ -57,7 +57,9 @@
+ # Both install and setup requires - because we read VERSION from within the
+ # package, and the package also exports all the APIs.
+ # six for compat helpers
+-REQUIRES = ['argparse', 'six'],
++REQUIRES = ['six']
++if sys.version_info < (2, 7) or (3, 0) <= sys.version_info < (3, 2):
++ REQUIRES.append('argparse')
+
+ params = dict(
+ name=NAME,
diff --git a/dev-python/unittest2/metadata.xml b/dev-python/unittest2/metadata.xml
new file mode 100644
index 00000000000..d58233df979
--- /dev/null
+++ b/dev-python/unittest2/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">unittest2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/unittest2/unittest2-0.5.1-r1.ebuild b/dev-python/unittest2/unittest2-0.5.1-r1.ebuild
new file mode 100644
index 00000000000..6b08a120cb8
--- /dev/null
+++ b/dev-python/unittest2/unittest2-0.5.1-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+PY3_P=${PN}py3k-${PV}
+
+DESCRIPTION="The new features in unittest for Python 2.7 backported to Python 2.4+"
+HOMEPAGE="http://pypi.python.org/pypi/unittest2
+ http://pypi.python.org/pypi/unittest2py3k http://code.google.com/p/unittest-ext/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ mirror://pypi/${PN:0:1}/${PN}/${PY3_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 ~sh sparc x86 ~amd64-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ # Disable versioning of unit2 script to avoid collision with versioning performed by distutils_src_install().
+ sed -i -e "/'%s = unittest2:main_' % SCRIPT2,/d" setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+select_source() {
+ if [[ ${EPYTHON} == python3* ]]; then
+ cd "${WORKDIR}"/${PY3_P} || die
+ else
+ cd "${S}" || die
+ fi
+}
+
+python_compile() {
+ select_source
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # multiprocessing causes test failure with signals
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ scripts/unit2 discover -s lib || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ select_source
+ distutils-r1_python_install
+}
diff --git a/dev-python/unittest2/unittest2-0.5.1-r2.ebuild b/dev-python/unittest2/unittest2-0.5.1-r2.ebuild
new file mode 100644
index 00000000000..689b927a94d
--- /dev/null
+++ b/dev-python/unittest2/unittest2-0.5.1-r2.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+PY3_P=${PN}py3k-${PV}
+
+DESCRIPTION="The new features in unittest for Python 2.7 backported to Python 2.4+"
+HOMEPAGE="http://pypi.python.org/pypi/unittest2
+ http://pypi.python.org/pypi/unittest2py3k http://code.google.com/p/unittest-ext/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ mirror://pypi/${PN:0:1}/${PN}/${PY3_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ local d
+ for d in "${S}" "${WORKDIR}"/${PY3_P}; do
+ # Disable versioning of unit2 script to avoid collision with versioning performed by distutils_src_install().
+ sed -i -e "/'%s = unittest2:main_' % SCRIPT2,/d" \
+ "${d}"/setup.py || die
+
+ sed -i -e '/No module named/s/self.*$/pass/' \
+ "${d}"/unittest2/test/test_loader.py || die
+ done
+
+ distutils-r1_python_prepare_all
+}
+
+select_source() {
+ if [[ ${EPYTHON} == python3* ]]; then
+ cd "${WORKDIR}"/${PY3_P} || die
+ else
+ cd "${S}" || die
+ fi
+}
+
+python_compile() {
+ select_source
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # multiprocessing causes test failure with signals
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+ scripts/unit2 discover -s lib || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ select_source
+ distutils-r1_python_install
+}
diff --git a/dev-python/unittest2/unittest2-0.8.0.ebuild b/dev-python/unittest2/unittest2-0.8.0.ebuild
new file mode 100644
index 00000000000..842b6988f26
--- /dev/null
+++ b/dev-python/unittest2/unittest2-0.8.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="The new features in unittest for Python 2.7 backported to Python 2.4+"
+HOMEPAGE="http://pypi.python.org/pypi/unittest2
+ http://code.google.com/p/unittest-ext/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/unittest2-0.8.0-argparse.patch"
+)
+
+python_test() {
+ "${PYTHON}" -m unittest2 discover || die
+}
diff --git a/dev-python/unittest2/unittest2-1.0.1-r1.ebuild b/dev-python/unittest2/unittest2-1.0.1-r1.ebuild
new file mode 100644
index 00000000000..207fde610e1
--- /dev/null
+++ b/dev-python/unittest2/unittest2-1.0.1-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="The new features in unittest for Python 2.7 backported to Python 2.4+"
+HOMEPAGE="http://pypi.python.org/pypi/unittest2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc64"
+IUSE=""
+
+CDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/traceback2[${PYTHON_USEDEP}]
+"
+DEPEND="${CDEPEND}"
+RDEPEND="${CDEPEND}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/remove-argparse-dependence.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest2 discover || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/unittest2/unittest2-1.1.0.ebuild b/dev-python/unittest2/unittest2-1.1.0.ebuild
new file mode 100644
index 00000000000..00602d11bc0
--- /dev/null
+++ b/dev-python/unittest2/unittest2-1.1.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="The new features in unittest backported to Python 2.4+"
+HOMEPAGE="http://pypi.python.org/pypi/unittest2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc64"
+IUSE=""
+
+CDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/linecache2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4[${PYTHON_USEDEP}]
+ dev-python/traceback2[${PYTHON_USEDEP}]
+"
+DEPEND="${CDEPEND}"
+RDEPEND="${CDEPEND}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/remove-argparse-dependence.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest2 discover || die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/uritemplate/Manifest b/dev-python/uritemplate/Manifest
new file mode 100644
index 00000000000..7f2fa5d6512
--- /dev/null
+++ b/dev-python/uritemplate/Manifest
@@ -0,0 +1 @@
+DIST uritemplate-0.6.tar.gz 3508 SHA256 a30e230aeb7ebedbcb5da9999a17fa8a30e512e6d5b06f73d47c6e03c8e357fd SHA512 19e9d2f7cb6275c1a3bc6e287d9d3bdbed4391541f29765130a8e33825321e33fe3220adc349794d179354bcb9d77571ae20ba7836034962f3713994c7cdbfbd WHIRLPOOL 9b1b11e7da17f39f8fb6cba5ec36dd16ddef34aa29aa0fc8cd29a03fece359baffde056b9bbe29d859cac2d2ba13ccd2d112be9b07022e6f036ffadcb8acef2e
diff --git a/dev-python/uritemplate/metadata.xml b/dev-python/uritemplate/metadata.xml
new file mode 100644
index 00000000000..1d509adf1f2
--- /dev/null
+++ b/dev-python/uritemplate/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">uritemplate</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/uritemplate/uritemplate-0.6.ebuild b/dev-python/uritemplate/uritemplate-0.6.ebuild
new file mode 100644
index 00000000000..0e66a124d50
--- /dev/null
+++ b/dev-python/uritemplate/uritemplate-0.6.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of RFC6570, URI Template"
+HOMEPAGE="https://pypi.python.org/pypi/uritemplate"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ !<=dev-python/google-api-python-client-1.3"
+DEPEND="${RDEPEND}"
diff --git a/dev-python/urlgrabber/Manifest b/dev-python/urlgrabber/Manifest
new file mode 100644
index 00000000000..3f6d9c2ab5a
--- /dev/null
+++ b/dev-python/urlgrabber/Manifest
@@ -0,0 +1,2 @@
+DIST urlgrabber-3.10.1.tar.gz 83735 SHA256 06b13ff8d527dba3aee04069681b2c09c03117592d5485a80ae4b807cdf33476 SHA512 c44d32b17c5f8984d09ed46ae36b3e05dc69d041820cf979029bc325d8407bbd7e324f264be5886286cd99e123f51affec26638cab6e525f85e2a1c4247462d7 WHIRLPOOL bed47171c6b12de78d430ebaef0f46e5ce166ffa526a19d5a986dc44da5d627f84cfb303b2e2299c8f5af1ee977aad5d9e41a5a886ef26c1986aa53f388f1164
+DIST urlgrabber-3.9.1.tar.gz 72343 SHA256 4437076c8708e5754ea04540e46c7f4f233734ee3590bb8a96389264fb0650d0 SHA512 897f0bd09485c207d735a814fda7cf053c71262e31e87f358c473da770abaf7fd339ae6802df978091889c5d6fe123f74d5386d79c47f93b36cefbc22f44db47 WHIRLPOOL e0fc55804e7565d392a74fc753fcdda1be61c85164fcc00f2acc20270c8c1171e0d49211c04c79ca4e6d056a966a3d8dc48530010201c7748a125dcf54c08544
diff --git a/dev-python/urlgrabber/files/urlgrabber-3.9.1.patch b/dev-python/urlgrabber/files/urlgrabber-3.9.1.patch
new file mode 100644
index 00000000000..bdcc9cb1d46
--- /dev/null
+++ b/dev-python/urlgrabber/files/urlgrabber-3.9.1.patch
@@ -0,0 +1,26 @@
+http://yum.baseurl.org/gitweb?p=urlgrabber.git;a=commitdiff;h=f4e57ece7ded0f7ad83c8a40fe8423fab7812264
+http://yum.baseurl.org/gitweb?p=urlgrabber.git;a=commitdiff;h=89cc380a2a251a1d2d8b91cf6df170fa546597aa
+
+diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
+index f98f423..7b7f979 100644
+--- a/urlgrabber/grabber.py
++++ b/urlgrabber/grabber.py
+@@ -1532,11 +1589,14 @@
+ def _over_max_size(self, cur, max_size=None):
+
+ if not max_size:
+- max_size = self.size
+- if self.opts.size: # if we set an opts size use that, no matter what
+- max_size = self.opts.size
++ if not self.opts.size:
++ max_size = self.size
++ else:
++ max_size = self.opts.size
++
+ if not max_size: return False # if we have None for all of the Max then this is dumb
+- if cur > max_size + max_size*.10:
++
++ if cur > int(float(max_size) * 1.10):
+
+ msg = _("Downloaded more than max size for %s: %s > %s") \
+ % (self.url, cur, max_size)
diff --git a/dev-python/urlgrabber/metadata.xml b/dev-python/urlgrabber/metadata.xml
new file mode 100644
index 00000000000..10b42d6d5af
--- /dev/null
+++ b/dev-python/urlgrabber/metadata.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+ A high-level cross-protocol url-grabber.
+
+ Using urlgrabber, data can be fetched in three basic ways:
+
+ urlgrab(url) copy the file to the local filesystem
+ urlopen(url) open the remote file and return a file object (like urllib2.urlopen)
+ urlread(url) return the contents of the file as a string
+
+
+ When using these functions (or methods), urlgrabber supports the following
+ features:
+
+ * identical behavior for http://, ftp://, and file:// urls
+ * http keepalive - faster downloads of many files by using only a single
+ connection
+ * byte ranges - fetch only a portion of the file
+ * reget - for a urlgrab, resume a partial download
+ * progress meters - the ability to report download progress automatically,
+ even when using urlopen!
+ * throttling - restrict bandwidth usage
+ * retries - automatically retry a download if it fails. The number of retries
+ and failure types are configurable.
+ * authenticated server access for http and ftp
+ * proxy support - support for authenticated http and ftp proxies
+ * mirror groups - treat a list of mirrors as a single source, automatically
+ switching mirrors if there is a failure.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/urlgrabber/urlgrabber-3.10.1.ebuild b/dev-python/urlgrabber/urlgrabber-3.10.1.ebuild
new file mode 100644
index 00000000000..86c58670a70
--- /dev/null
+++ b/dev-python/urlgrabber/urlgrabber-3.10.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for downloading files"
+HOMEPAGE="http://urlgrabber.baseurl.org"
+SRC_URI="http://urlgrabber.baseurl.org/download/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-python/pycurl[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+# Entire testsuite relies on connecting to the i'net
diff --git a/dev-python/urlgrabber/urlgrabber-3.9.1-r2.ebuild b/dev-python/urlgrabber/urlgrabber-3.9.1-r2.ebuild
new file mode 100644
index 00000000000..e6fa741c3ee
--- /dev/null
+++ b/dev-python/urlgrabber/urlgrabber-3.9.1-r2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module for downloading files"
+HOMEPAGE="http://urlgrabber.baseurl.org"
+SRC_URI="http://urlgrabber.baseurl.org/download/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ppc64 x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-python/pycurl[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/${P}.patch
+ )
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/urllib3/Manifest b/dev-python/urllib3/Manifest
new file mode 100644
index 00000000000..47f86454fdf
--- /dev/null
+++ b/dev-python/urllib3/Manifest
@@ -0,0 +1,4 @@
+DIST urllib3-1.10.3.tar.gz 136894 SHA256 ce1bb9a3f103610a062ace3ae6e56ebf2fa0fbeb5c395d601c64d8a7e6df180b SHA512 d36280a29f1580565e79c58991d4ecf2cd69d2b262950bb90c1b0f89f225b6b3cee556914b6a7b3031dd074af8ae6187e6a3641ad8591c6b870203c33d40b113 WHIRLPOOL 5042b1c7e3c156d26c83a770636d9e7a9cf45b638f1b8733603afa255fe1a3ac03abb6447ba5e3f1ad98d7a449fe164c374ab5e131566b15e7c9281ba39677bc
+DIST urllib3-1.10.4.tar.gz 138538 SHA256 52131e6a561466f1206e1a648d9a73dda2a804d0f70e83782bd88494542ded09 SHA512 83118aa5bf23add5bb5dafd98d32459315d971246ac2a49f7f0d0fcad6414099885f6d4fc7847de17e983b949c8a21fa4ed71c0216e578bdfc8eb351672f7c09 WHIRLPOOL 03431b6c575f3399bf8876d7dfad126986864e3a3f09d05e7e682b5b374ed420854c776a3d7bac91538086e43a9b832975aaf0b1b2e3fcde1ba8cfe93417bdc3
+DIST urllib3-1.10.tar.gz 128200 SHA256 25b4a7fbbd9112e0190f31f8877aa0523caeab8630872ad1bbddaba01cdd6599 SHA512 32f9162f82a676146fae6bba462d21eb81635d8660ca4676b5e8dd3d18b68525a265695c646f06c099a78c24d9b108f0610d3e17f20578d473771bebd42cc52d WHIRLPOOL a8a84b79fd0edeecdd19eaef0ee809d1c5d842ff6bcf089df9a1111744a2f42bec1a366b76b6e7334a51cad83d42b166f133a4156bbbfb7be24518353ee71081
+DIST urllib3-1.9.1.tar.gz 171086 SHA256 d858379ef5988d4534bb8909432d697422100aaff272299d661339836b6dae9b SHA512 c972e4dc9dabf6378da75e0abce5e53bec29624f2dc0faff3c8ce762474d490da6aec7d2e374c57d0d18e640311845750eb257fc7829ac9d25a3d9c957c59c6f WHIRLPOOL 666b82e712939b3ff5dfe109ba0498c16dbea7f2c0f0c2e1c317cf7e6f03711ce4a9468bb72327abe7821aa75c0257d30dbce5c196ba59215df3dba4084c7360
diff --git a/dev-python/urllib3/metadata.xml b/dev-python/urllib3/metadata.xml
new file mode 100644
index 00000000000..f23a901265e
--- /dev/null
+++ b/dev-python/urllib3/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">urllib3</remote-id>
+ <remote-id type="github">shazow/urllib3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/urllib3/urllib3-1.10.3.ebuild b/dev-python/urllib3/urllib3-1.10.3.ebuild
new file mode 100644
index 00000000000..f8c38b62031
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.10.3.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/shazow/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep \
+ 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' python2_7 pypy)"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ ~www-servers/tornado-3.1.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+python_prepare_all() {
+ # Replace bundled copy of dev-python/six
+ cat > urllib3/packages/six.py <<-EOF
+ from __future__ import absolute_import
+ from six import *
+ EOF
+
+ sed -i 's:cover-min-percentage = 100::' setup.cfg || die
+ # Fix tests
+ sed -i 's/urllib3.packages.six/six/' test/test_retry.py || die
+
+ # Reset source of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'python': ('http://docs.python.org/2.7', None|'${PYTHON_DOC}': ('${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # __init__.py uses a local import requiring use of PYTHONPATH=blank to offset
+ # Failures currently occur under py2.7. After joint testing
+ # it's planned for this to have further investigation.
+ # https://github.com/shazow/urllib3/issues/621
+
+ # These tests fail with network-sandbox enable due to an arbitrary "tarpit"
+ # address (10.255.255.1) being non-routable.
+ local exclude=(
+ -e test_enhanced_timeout
+ -e test_https_timeout
+ -e test_https_proxy_pool_timeout
+ -e test_https_proxy_timeout
+ )
+
+ PYTHONPATH= nosetests "${exclude[@]}" test || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/urllib3/urllib3-1.10.4.ebuild b/dev-python/urllib3/urllib3-1.10.4.ebuild
new file mode 100644
index 00000000000..ab409c3291e
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.10.4.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/shazow/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep \
+ 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' python2_7 pypy)"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=www-servers/tornado-4.1[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+# Testsuite written requiring mock to be installed under all Cpythons
+
+python_prepare_all() {
+ # Replace bundled copy of dev-python/six
+ cat > urllib3/packages/six.py <<-EOF
+ from __future__ import absolute_import
+ from six import *
+ EOF
+
+ sed -i 's:cover-min-percentage = 100::' setup.cfg || die
+ # Fix tests
+ sed -i 's/urllib3.packages.six/six/' test/test_retry.py || die
+
+ # Reset source of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'python': ('http://docs.python.org/2.7', None|'${PYTHON_DOC}': ('${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Failures still occur under py2.7.
+ # https://github.com/shazow/urllib3/issues/621
+
+ nosetests test || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/urllib3/urllib3-1.10.ebuild b/dev-python/urllib3/urllib3-1.10.ebuild
new file mode 100644
index 00000000000..13160898c3e
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.10.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/shazow/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep \
+ 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' python2_7 pypy)"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ ~www-servers/tornado-3.1.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ dev-python/nose[${PYTHON_USEDEP}] )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+python_prepare_all() {
+ # Replace bundled copy of dev-python/six
+ cat > urllib3/packages/six.py <<-EOF
+ from __future__ import absolute_import
+ from six import *
+ EOF
+
+ sed -i 's:cover-min-percentage = 100::' setup.cfg || die
+ # Fix tests
+ sed -i 's/urllib3.packages.six/six/' test/test_retry.py || die
+
+ # Reset source of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'python': ('http://docs.python.org/2.7', None|'${PYTHON_DOC}': ('${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # https://github.com/shazow/urllib3/issues/527
+ # test_https_connection_read_timeout is found to hang and
+ # test_verified is found to fail under py2.7 and pypy.
+ # upstream by their own admission describe the tests as flakey
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/urllib3/urllib3-1.9.1.ebuild b/dev-python/urllib3/urllib3-1.9.1.ebuild
new file mode 100644
index 00000000000..873e3648b60
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.9.1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/shazow/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ppc ppc64 x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep \
+ 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' python2_7 pypy)"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ ~www-servers/tornado-3.1.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 pypy)
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ # Replace bundled copy of dev-python/six
+ cat > urllib3/packages/six.py <<-EOF
+ from __future__ import absolute_import
+ from six import *
+ EOF
+
+ sed -i 's:cover-min-percentage = 100::' setup.cfg || die
+ # Fix tests
+ sed -i 's/urllib3.packages.six/six/' test/test_retry.py || die
+
+ # Reset source of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed -i "s|'python': ('http://docs.python.org/2.7', None|'${PYTHON_DOC}': ('${PYTHON_DOC_INVENTORY}'|" docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+src_test() {
+ # multiprocessing causes tests competing for and address to fail
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ # pypy doesn't get started in suite
+ if [[ "${EPYTHON}" == pypy ]]; then
+ einfo "Tests stall under pypy"
+ else
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/urwid/Manifest b/dev-python/urwid/Manifest
new file mode 100644
index 00000000000..925335d72db
--- /dev/null
+++ b/dev-python/urwid/Manifest
@@ -0,0 +1,2 @@
+DIST urwid-1.2.2.tar.gz 585025 SHA256 e122e2dee122314f5626945af4dbe15bf3de9f318c552a4c0b68c1c480852d92 SHA512 10d0271e52b28aff3350d3342cd9b1c8fab819f3619cce77286b2545b74dd967f0466e98dfbfef1189b3ab6b38392168367d75c768b0f5b8058666b0211706a5 WHIRLPOOL 69556a721d89f6a6b82664bf5eaa10a21c49d15f9b8e6e6be4ba31ce5e2317fd0ecebfa3d93b008f9bd93f10504161d93e1827d696a6c1baa09939ac628f027d
+DIST urwid-1.3.0.tar.gz 580922 SHA256 29f04fad3bf0a79c5491f7ebec2d50fa086e9d16359896c9204c6a92bc07aba2 SHA512 2743488f2815e6abff8bf2450b2a3d5756fa026587512cf29a3850be0e585d7c2dd4d50fda7bf1589de32eed93637ac0ee88f002de4b9bee0a72dc6574ef6103 WHIRLPOOL c276c26deb557b1c4b8f9f49f7f6c10e0e5a169bc3a1b9c3933a948c313897da4ebdb0520b7fc3d0a301cbc5743a1d79a20e112d852e74b50910db6ea1a4e99e
diff --git a/dev-python/urwid/files/urwid-1.1.0-sphinx.patch b/dev-python/urwid/files/urwid-1.1.0-sphinx.patch
new file mode 100644
index 00000000000..442aeea6750
--- /dev/null
+++ b/dev-python/urwid/files/urwid-1.1.0-sphinx.patch
@@ -0,0 +1,11 @@
+--- urwid-1.1.0/docs/conf.py
++++ urwid-1.1.0/docs/conf.py
+@@ -46,7 +46,7 @@
+ # The version info for the project you're documenting, acts as replacement for
+ # |version| and |release|, also used in various other places throughout the
+ # built documents.
+-FILE_PATH = os.path.dirname(__file__).decode('utf-8')
++FILE_PATH = os.path.dirname(__file__)
+ VERSION_MODULE = os.path.abspath(os.path.join(FILE_PATH,
+ '../urwid/version.py'))
+ VERSION_VARS = {}
diff --git a/dev-python/urwid/metadata.xml b/dev-python/urwid/metadata.xml
new file mode 100644
index 00000000000..ca8f86fe735
--- /dev/null
+++ b/dev-python/urwid/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription>
+Urwid is a curses-based user interface library. It includes many features
+useful for text console application developers including:
+
+- Fluid interface resizing (xterm window resizing / fbset on Linux console)
+- Web application display mode using Apache and CGI [Live Demo]
+- Support for UTF-8, simple 8-bit and CJK encodings
+- Multiple text alignment and wrapping modes built-in
+- Ability create user-defined text layout classes
+- Simple markup for setting text attributes
+- Powerful list box that handles scrolling between different widget types
+- List box contents may be managed with a user-defined class
+- Flexible edit box for editing many different types of text
+- Buttons, check boxes and radio boxes
+- Customizable layout for all widgets
+- Easy interface for creating HTML screen shots
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">urwid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/urwid/urwid-1.2.2.ebuild b/dev-python/urwid/urwid-1.2.2.ebuild
new file mode 100644
index 00000000000..259acf4d3eb
--- /dev/null
+++ b/dev-python/urwid/urwid-1.2.2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1
+
+DESCRIPTION="Urwid is a curses-based user interface library for Python"
+HOMEPAGE="http://urwid.org/ http://pypi.python.org/pypi/urwid/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ia64 ~mips ppc ppc64 ~sparc x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux"
+IUSE="doc examples test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/twisted-core )"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.1.0-sphinx.patch )
+
+python_compile_all() {
+ if use doc ; then
+ if [[ ${EPYTHON} == python3* ]] ; then
+ 2to3 -nw --no-diffs docs/conf.py || die
+ fi
+ cd docs
+ sphinx-build . _build/html || die
+ fi
+}
+
+python_compile() {
+ if [[ ${EPYTHON} == python2* ]] ; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/urwid/urwid-1.3.0.ebuild b/dev-python/urwid/urwid-1.3.0.ebuild
new file mode 100644
index 00000000000..3fe11d89307
--- /dev/null
+++ b/dev-python/urwid/urwid-1.3.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1
+
+DESCRIPTION="Curses-based user interface library for Python"
+HOMEPAGE="http://urwid.org/ http://pypi.python.org/pypi/urwid/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux"
+IUSE="doc examples"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.1.0-sphinx.patch )
+
+python_compile_all() {
+ if use doc ; then
+ if [[ ${EPYTHON} == python3* ]] ; then
+ 2to3 -nw --no-diffs docs/conf.py || die
+ fi
+ cd docs
+ sphinx-build . _build/html || die
+ fi
+}
+
+python_compile() {
+ if [[ ${EPYTHON} == python2* ]] ; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ export CFLAGS
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/utidylib/Manifest b/dev-python/utidylib/Manifest
new file mode 100644
index 00000000000..5b63101a758
--- /dev/null
+++ b/dev-python/utidylib/Manifest
@@ -0,0 +1 @@
+DIST uTidylib-0.2.zip 17575 SHA256 0385b29b0e636fa1cc6eb86ecb5428cf399f9474c8f343af038afce59720a333 SHA512 02f6611f1c7dd42db96012f7067ada8ccd841532744a569492a2f1c0524a3f1777b8f997a716b9bb18f69f31cb922dc89328d0bd284830620a930a038b303893 WHIRLPOOL 7d1509c36dccf8d7bd22f82d5a6cd95e8b7e422fb6aeab49e7316aaa98e18f771d9c7140897086da61d03b0df5fb3d4291c0b49acfbf8a8633498a837fbc2c2d
diff --git a/dev-python/utidylib/files/utidylib-0.2-fix_tests.patch b/dev-python/utidylib/files/utidylib-0.2-fix_tests.patch
new file mode 100644
index 00000000000..b55a15119ba
--- /dev/null
+++ b/dev-python/utidylib/files/utidylib-0.2-fix_tests.patch
@@ -0,0 +1,48 @@
+diff -uNr uTidylib-0.2.orig/tidy/test_tidy.py uTidylib-0.2/tidy/test_tidy.py
+--- uTidylib-0.2.orig/tidy/test_tidy.py 2004-02-24 08:53:52.000000000 +0000
++++ uTidylib-0.2/tidy/test_tidy.py 2009-07-25 15:50:56.000000000 +0000
+@@ -4,6 +4,10 @@
+
+ class TidyTestCase(unittest.TestCase):
+ def __init__(self, *args, **kwargs):
++ super(unittest.TestCase, self).__init__(*args, **kwargs)
++ self._shared = False
++ self._parents = []
++
+ foo = u'''<html>
+ <h1>woot</h1>
+ <hr>
+@@ -13,13 +17,13 @@
+ </body>
+ </html>
+ '''.encode('utf8')
+- file('foo.htm', 'w').write(foo)
++ file('foo.htm', 'w').write(foo)
+ self.input1 = "<html><script>1>2</script>"
+ self.input2 = "<html>\n" + "<p>asdkfjhasldkfjhsldjas\n" * 100
+ def defaultDocs(self):
+ doc1 = tidy.parseString(self.input1)
+ doc2 = tidy.parseString(self.input2)
+- doc3 = tidy.parse("foo.htm")
++ doc3 = tidy.parse("../foo.htm")
+ doc4 = tidy.parse("bar.htm") # doesn't exist
+ return (doc1, doc2, doc3, doc4)
+ def test_badOptions(self):
+@@ -33,7 +37,7 @@
+ self.fail("Invalid option %s should have raised an error" %
+ repr(dct))
+ def test_encodings(self):
+- foo = file('foo.htm').read().decode('utf8').encode('ascii',
++ foo = file('../foo.htm').read().decode('utf8').encode('ascii',
+ 'xmlcharrefreplace')
+ doc1u = tidy.parseString(foo, input_encoding='ascii',
+ output_encoding='latin1')
+@@ -58,7 +62,7 @@
+ ## self.failIf(len(doc2.errors)>1) # FIXME - tidylib doesn't
+ ## # support this?
+ self.failUnless(str(doc2).find('\n')<0)
+- doc3 = tidy.parse('foo.htm', char_encoding='utf8',
++ doc3 = tidy.parse('../foo.htm', char_encoding='utf8',
+ alt_text='foo')
+ self.failUnless(str(doc3).find('alt="foo"')>=0)
+ self.failUnless(str(doc3).find('\xc3\xa9')>=0)
diff --git a/dev-python/utidylib/files/utidylib-0.2-no-docs-in-site-packages.patch b/dev-python/utidylib/files/utidylib-0.2-no-docs-in-site-packages.patch
new file mode 100644
index 00000000000..761c4947dfa
--- /dev/null
+++ b/dev-python/utidylib/files/utidylib-0.2-no-docs-in-site-packages.patch
@@ -0,0 +1,11 @@
+--- uTidylib-0.2-orig/setup.py 2005-12-01 00:48:14.000000000 +0100
++++ uTidylib-0.2/setup.py 2005-12-01 01:10:33.000000000 +0100
+@@ -54,7 +54,7 @@
+
+
+ setup_data = dict(packages=['tidy', ],
+- data_files=data_files,
++# data_files=data_files,
+ cmdclass=dict(install_data=install_data_utidylib,
+ bdist_wininst=bdist_wininst_utidylib,
+ install=install_utidylib,
diff --git a/dev-python/utidylib/metadata.xml b/dev-python/utidylib/metadata.xml
new file mode 100644
index 00000000000..ee7e8b2450a
--- /dev/null
+++ b/dev-python/utidylib/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/utidylib/utidylib-0.2-r2.ebuild b/dev-python/utidylib/utidylib-0.2-r2.ebuild
new file mode 100644
index 00000000000..82db8e4a70b
--- /dev/null
+++ b/dev-python/utidylib/utidylib-0.2-r2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="uTidylib-${PV}"
+
+DESCRIPTION="TidyLib Python wrapper"
+HOMEPAGE="http://sourceforge.net/projects/utidylib/"
+SRC_URI="mirror://berlios/${PN}/${MY_P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE="doc test"
+
+RDEPEND="app-text/htmltidy"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ doc? ( dev-python/epydoc[${PYTHON_USEDEP}] )
+ test? ( dev-python/twisted-core[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${P}-no-docs-in-site-packages.patch"
+ "${FILESDIR}/${P}-fix_tests.patch"
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" gendoc.py || die
+ fi
+}
+
+python_test() {
+ trial tidy || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( apidoc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/utmp/Manifest b/dev-python/utmp/Manifest
new file mode 100644
index 00000000000..35ad0f0fa93
--- /dev/null
+++ b/dev-python/utmp/Manifest
@@ -0,0 +1 @@
+DIST utmp-0.4.tar.gz 4300 SHA256 c8fb6fbed754744764b24ffffabb62c56b27fd8cb51decbb3dc616d740835b2b SHA512 802345227a9de972a7ae1127a006aab6bb51e1a7e81772a58b9c19bee74c79c4f5219519743133e8c02b90f8a72f52e22ab668c8a78a898c00e0a9a147a68472 WHIRLPOOL ce3fd0b9c4f6c499c81e72a6b6874e8c1d87d9b242e2454d5cb7cef39f260b37c6f021add8674b59e0802022110c140a7b2b137ed4ea7f704d1fad05772f43aa
diff --git a/dev-python/utmp/metadata.xml b/dev-python/utmp/metadata.xml
new file mode 100644
index 00000000000..d6f7bb315c7
--- /dev/null
+++ b/dev-python/utmp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">utmp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/utmp/utmp-0.4.ebuild b/dev-python/utmp/utmp-0.4.ebuild
new file mode 100644
index 00000000000..d5afacee73e
--- /dev/null
+++ b/dev-python/utmp/utmp-0.4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="utmp/wtmp reader"
+HOMEPAGE="https://pypi.python.org/pypi/utmp http://srcco.de/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ !sys-apps/utempter"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ sed "s:'flake8'::g" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/vatnumber/Manifest b/dev-python/vatnumber/Manifest
new file mode 100644
index 00000000000..ebed027565b
--- /dev/null
+++ b/dev-python/vatnumber/Manifest
@@ -0,0 +1 @@
+DIST vatnumber-1.1.tar.gz 22032 SHA256 ff7017420e137609a74ce0dbe6ba16c86ea5317d50ca398f8f423141c07fae18 SHA512 286be890f37dc3ea97beea22f6e34402a9e40738b33a94f98e16a09801656f64fde9f290ed857c5df1fd44896a9e0fbcbfcc8f1dbe2f1314015e473dadc0ebbe WHIRLPOOL 1791946de17a03909b7f3dd3bb20a6cdd08ab552e5413319044e9978bb27ecfc0659636785b86917f4e76dbfb8b2fee379c0df6ac796e290b4109677b99fa7b7
diff --git a/dev-python/vatnumber/files/vatnumber-1.0-skiptest.patch b/dev-python/vatnumber/files/vatnumber-1.0-skiptest.patch
new file mode 100644
index 00000000000..9c99901cd45
--- /dev/null
+++ b/dev-python/vatnumber/files/vatnumber-1.0-skiptest.patch
@@ -0,0 +1,18 @@
+Remove test that accesses network, bug 440964
+diff -ur vatnumber-1.0.orig/vatnumber/tests.py vatnumber-1.0/vatnumber/tests.py
+--- vatnumber/tests.py 2011-09-28 18:32:09.000000000 +0800
++++ vatnumber/tests.py 2012-11-26 12:32:46.177509425 +0800
+@@ -198,13 +198,6 @@
+ test = self.assertFalse
+ test(vatnumber.check_vat(code + number), code + number)
+
+- def test_vies(self):
+- '''
+- Test vies
+- '''
+- for vat in VIES_NUMBERS:
+- self.assert_(vatnumber.check_vies(vat))
+-
+ def test_countries(self):
+ '''
+ Test countries
diff --git a/dev-python/vatnumber/metadata.xml b/dev-python/vatnumber/metadata.xml
new file mode 100644
index 00000000000..06bf5f53bf5
--- /dev/null
+++ b/dev-python/vatnumber/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ Python module to validate VAT numbers
+ </longdescription>
+ <use>
+ <flag name="vies">Enable VIES</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/dev-python/vatnumber/vatnumber-1.1.ebuild b/dev-python/vatnumber/vatnumber-1.1.ebuild
new file mode 100644
index 00000000000..023f9bdc556
--- /dev/null
+++ b/dev-python/vatnumber/vatnumber-1.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Module to validate VAT numbers"
+HOMEPAGE="http://code.google.com/p/vatnumber/"
+SRC_URI="http://vatnumber.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test vies"
+
+RDEPEND="vies? ( dev-python/suds )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/suds )"
+
+PARCHES=( "${FILESDIR}"/${P}-skiptest.patch )
+
+python_test() {
+ esetup.py test
+}
+
+src_install() {
+ distutils-r1_src_install
+ dodoc COPYRIGHT README CHANGELOG
+}
diff --git a/dev-python/vcrpy/Manifest b/dev-python/vcrpy/Manifest
new file mode 100644
index 00000000000..9a8b1c540b5
--- /dev/null
+++ b/dev-python/vcrpy/Manifest
@@ -0,0 +1 @@
+DIST vcrpy-1.5.2.tar.gz 299525 SHA256 ef3216e91ab3a51b67c44e0e4a8c50f6edcc812658da4c73ff32b1eb36a8a9bf SHA512 2eccc061a1e90b03fb0688aac5566bdf96a7bfd6ffc34aa71af8395665cde8f183d02c5107572f1bbca0388c865c913f1b2a9c7b295c11be395dce20c4d5b761 WHIRLPOOL 49a0eb2d582003bebb788129d5f03a8d120d9752867d439a7394e7ed664b6a1b296d59d5a501e861cf3e78e4679c7a6e683843d75a0e512d0e4185da196f6081
diff --git a/dev-python/vcrpy/metadata.xml b/dev-python/vcrpy/metadata.xml
new file mode 100644
index 00000000000..a412719a4e4
--- /dev/null
+++ b/dev-python/vcrpy/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">kevin1024/vcrpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/vcrpy/vcrpy-1.5.2.ebuild b/dev-python/vcrpy/vcrpy-1.5.2.ebuild
new file mode 100644
index 00000000000..abf12d4135a
--- /dev/null
+++ b/dev-python/vcrpy/vcrpy-1.5.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python{2_7,3_3})
+
+inherit distutils-r1
+
+DESCRIPTION="Automatically mock your HTTP interactions to simplify and speed up testing"
+HOMEPAGE="https://github.com/kevin1024/vcrpy"
+SRC_URI="https://github.com/kevin1024/vcrpy/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND="dev-python/contextlib2[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ dev-python/wrapt[${PYTHON_USEDEP}]"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}] )
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ py.test || die
+}
diff --git a/dev-python/vcversioner/Manifest b/dev-python/vcversioner/Manifest
new file mode 100644
index 00000000000..58a1f0aa08f
--- /dev/null
+++ b/dev-python/vcversioner/Manifest
@@ -0,0 +1 @@
+DIST vcversioner-2.14.0.0.tar.gz 9015 SHA256 acd43686e92e6c8bbeb4f2eef54408567a7adea9692fa72d591eec5357c03b86 SHA512 0d474910f9d0f0dd0c0d0b824bcdf5da7bbb5d2b55691f18107bb0b8a237213a83d8f51f719d4761e1dae9db70e84ef8c264c388ec1995ed0a55a838575e377e WHIRLPOOL b146f1d008b635fc337c2256a7bb9bd0534ecd3a335c349a0518e36ee21e807de1b43ea52dd6a581fa4de64ad6cdb2dca53646051a93afe752a28d4a25bcbec8
diff --git a/dev-python/vcversioner/metadata.xml b/dev-python/vcversioner/metadata.xml
new file mode 100644
index 00000000000..6f3bf88d95d
--- /dev/null
+++ b/dev-python/vcversioner/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">vcversioner</remote-id>
+ <remote-id type="github">habnabit/vcversioner</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/vcversioner/vcversioner-2.14.0.0.ebuild b/dev-python/vcversioner/vcversioner-2.14.0.0.ebuild
new file mode 100644
index 00000000000..5638db24770
--- /dev/null
+++ b/dev-python/vcversioner/vcversioner-2.14.0.0.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Use version control tags to discover version numbers"
+HOMEPAGE="https://github.com/habnabit/vcversioner"
+SRC_URI="mirror://pypi/v/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-python/venusian/Manifest b/dev-python/venusian/Manifest
new file mode 100644
index 00000000000..dbc9dc565d2
--- /dev/null
+++ b/dev-python/venusian/Manifest
@@ -0,0 +1,2 @@
+DIST venusian-1.0.tar.gz 45747 SHA256 1720cff2ca9c369c840c1d685a7c7a21da1afa687bfe62edd93cae4bf429ca5a SHA512 770780c4e4532b16e119365d3c9531e85aede9c2be2e3a333cfe43856271c7b232ce1b27c1379f677a7191c24e8736bf5307be7a926b613f7b81644d404e8453 WHIRLPOOL 1eedda1a8d6e15caf4af136ddd08298c7201342a841b267a489b8fb483d3d97b330e3adbe75e5bd28fcd3b62d6b6b5de57f5a520923d05195560afbfb682315d
+DIST venusian-1.0a8.tar.gz 42845 SHA256 a1b054d4ccf0859a76d900c49f419645279298d5316be3a65a1c00a40719bce0 SHA512 d10577aa8c439fed3d689538695d6e0f8db299ddcefef75e3d224b637398489e55853d124be3edffc168db485df25180fe0c4685172d64587ae07c5b80ca3f6f WHIRLPOOL a3a62d29b0a8246b4e6fe3b429a6ef6c2deb294d868dac3ce1cc3544e23e63303cced09a81aa49bc5146ebb21572e561d0c0e8e0920485bc7012f02a4b08da5a
diff --git a/dev-python/venusian/metadata.xml b/dev-python/venusian/metadata.xml
new file mode 100644
index 00000000000..c789269653b
--- /dev/null
+++ b/dev-python/venusian/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">venusian</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/venusian/venusian-1.0.ebuild b/dev-python/venusian/venusian-1.0.ebuild
new file mode 100644
index 00000000000..c9129cf2413
--- /dev/null
+++ b/dev-python/venusian/venusian-1.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+#RESTRICT="test"
+
+inherit distutils-r1
+
+DESCRIPTION="A library for deferring decorator actions"
+HOMEPAGE="http://www.pylonsproject.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ ~dev-python/nose-exclude-0.1.9[${PYTHON_USEDEP}] )
+ "
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/venusian/venusian-1.0_alpha8.ebuild b/dev-python/venusian/venusian-1.0_alpha8.ebuild
new file mode 100644
index 00000000000..18149244c6c
--- /dev/null
+++ b/dev-python/venusian/venusian-1.0_alpha8.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+RESTRICT="test"
+
+inherit distutils-r1
+
+MY_P="${PN}-1.0a8" # Sigh
+
+DESCRIPTION="A library for deferring decorator actions"
+HOMEPAGE="http://www.pylonsproject.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="repoze"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+ "
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/verboselogs/Manifest b/dev-python/verboselogs/Manifest
new file mode 100644
index 00000000000..9609f064ddf
--- /dev/null
+++ b/dev-python/verboselogs/Manifest
@@ -0,0 +1 @@
+DIST verboselogs-1.0.1.tar.gz 4619 SHA256 0a1fa58d6c4bdf7249f04d502cb25c9926f6d1abb834448f27c533728db4d8ac SHA512 51f6509b6e5b5f624c0e21a6f517908a2d4bbb90c3e885488e148731a2f37202bba1de4edf7c1d4ac686b262c172d56f2e8374866d84e4020641fe7ea42e2fbc WHIRLPOOL ea800560ad7ea216e3e54325674836ca7b5258ddec452261b23c1b61d52fdb7088f8ce079ba782e1b0b09c674019393aa081be349f06675da95c607ccbfdcb39
diff --git a/dev-python/verboselogs/metadata.xml b/dev-python/verboselogs/metadata.xml
new file mode 100644
index 00000000000..1bc1f2c7e9e
--- /dev/null
+++ b/dev-python/verboselogs/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">verboselogs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/verboselogs/verboselogs-1.0.1.ebuild b/dev-python/verboselogs/verboselogs-1.0.1.ebuild
new file mode 100644
index 00000000000..d88293f82b9
--- /dev/null
+++ b/dev-python/verboselogs/verboselogs-1.0.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Verbose logging for Python's logging module"
+HOMEPAGE="https://pypi.python.org/pypi/verboselogs"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/versiontools/Manifest b/dev-python/versiontools/Manifest
new file mode 100644
index 00000000000..607d4a8f3c3
--- /dev/null
+++ b/dev-python/versiontools/Manifest
@@ -0,0 +1 @@
+DIST versiontools-1.9.1.tar.gz 19089 SHA256 a969332887a18a9c98b0df0ea4d4ca75972f24ca94f06fb87d591377e83414f6 SHA512 f062eecc9998bf194dcac7c52065757ef546aa94bbe7d5b6786ba10f1e44486df997e9a314ff60a0d4e88a2620824217c8add516011baa2ee4e26ec19f762892 WHIRLPOOL a191e18b8ecc9994b2508abe5259aada09eb23906e589b68b23588a1743cfda88048b9199d5e8627a7bb35019ea0f8fa4f09a01595cb18f8c15cb0a6fb9712fe
diff --git a/dev-python/versiontools/metadata.xml b/dev-python/versiontools/metadata.xml
new file mode 100644
index 00000000000..0832c3b21c8
--- /dev/null
+++ b/dev-python/versiontools/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">versiontools</remote-id>
+ <remote-id type="launchpad">versiontools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/versiontools/versiontools-1.9.1-r1.ebuild b/dev-python/versiontools/versiontools-1.9.1-r1.ebuild
new file mode 100644
index 00000000000..5244b0f0902
--- /dev/null
+++ b/dev-python/versiontools/versiontools-1.9.1-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Smart replacement for plain tuple used in __version__"
+HOMEPAGE="http://pypi.python.org/pypi/versiontools/ https://launchpad.net/versiontools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+LICENSE="GPL-2"
+SLOT="0"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ # Expexted failure
+ sed -e s':test_cant_import:_&:' -i versiontools/tests.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/vertex/Manifest b/dev-python/vertex/Manifest
new file mode 100644
index 00000000000..3f61cece6eb
--- /dev/null
+++ b/dev-python/vertex/Manifest
@@ -0,0 +1,2 @@
+DIST Vertex-0.3.0.tar.gz 84997 SHA256 f397b48c76289f658dc042f6978fcc1c5e7a059ec507df39b91aec2da6753ea5 SHA512 206d142cc72b2d77ed8c8fe222770eabc1a8c179238f46554abc5d833669f27bd286565e20ccaf5594d456b23b54455b23ab0eca5b8b4f72a7961924e7167676 WHIRLPOOL a0bca99a89d40d34c2afef3a1b361e07fe54b6c47663bc79c41a790d2c16be017be3ff02540eb481d554cffb7aaf196ca20f8a792c5a89f188a83a653d8598d4
+DIST Vertex-0.3.1.tar.gz 89909 SHA256 2a81a33bb21392ae2c068399d6a720c6c5fef8b3591528ba7300749d1a054c43 SHA512 7e9b96a7ba493254ff58e8f75da6517c09c4502c21702a96c29525a78569ff7d988cd7278dd87983485b6da30a607820a7edb28375e37d5e059d6f0638a1b1c9 WHIRLPOOL 8827e68c7ce778bf8ece84e7002721e32ded3c9c1af699c5ab690595be0126e84f8a4d3cb280b2f358fa78e2f10f228c5cf785e76923bbd8aaf889085c7a1cc2
diff --git a/dev-python/vertex/metadata.xml b/dev-python/vertex/metadata.xml
new file mode 100644
index 00000000000..ee44d1cd050
--- /dev/null
+++ b/dev-python/vertex/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Vertex is an implementation of the Q2Q protocol (sort of like P2P,
+ but one better). There are a few moving parts in Vertex: PTCP is a
+ protocol which is nearly identical to TCP, but which runs over
+ UDP. This lets Q2Q penetrate most NAT configurations. JUICE
+ ([JU]ice [I]s [C]oncurrent [E]vents) is a very simple but immensely
+ flexible protocol which forms the basis of the high-level aspects of
+ Q2Q. vertex is a command line tool which exposes a few features
+ useful in many situations (such as registration and authentication).</longdescription>
+ <upstream>
+ <remote-id type="pypi">Vertex</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/vertex/vertex-0.3.0-r1.ebuild b/dev-python/vertex/vertex-0.3.0-r1.ebuild
new file mode 100644
index 00000000000..b836da595d8
--- /dev/null
+++ b/dev-python/vertex/vertex-0.3.0-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="An implementation of the Q2Q protocol"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodVertex http://pypi.python.org/pypi/Vertex"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-libs/openssl
+ >=dev-python/epsilon-0.6.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13-r1[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc NAME.txt
+}
diff --git a/dev-python/vertex/vertex-0.3.1.ebuild b/dev-python/vertex/vertex-0.3.1.ebuild
new file mode 100644
index 00000000000..748f789d56c
--- /dev/null
+++ b/dev-python/vertex/vertex-0.3.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit twisted-r1
+
+DESCRIPTION="An implementation of the Q2Q protocol"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodVertex http://pypi.python.org/pypi/Vertex"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-libs/openssl
+ >=dev-python/epsilon-0.6.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13-r1[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodoc NAME.txt
+}
diff --git a/dev-python/virtualenv-clone/Manifest b/dev-python/virtualenv-clone/Manifest
new file mode 100644
index 00000000000..8c7437a7fd9
--- /dev/null
+++ b/dev-python/virtualenv-clone/Manifest
@@ -0,0 +1,3 @@
+DIST virtualenv-clone-0.2.4.tar.gz 6192 SHA256 6797e96bc2a1ab41995bcabdfe08ac1b02c55c719c62036ccf53a0ed5430b935 SHA512 0cfcbd32cbffe4c913fabd3f8e609112920f3952cfdc9b8e25080f39d2e3e1062246c04035ad0989d5fce313f1eea228449cd428ea0eda70da1124ef9a4c3c17 WHIRLPOOL 2e71196caeb30d5e6e2c6a15512425b5736a9f7086c340c9d54a5f18864be92bf18c28b22ff2606fce9c4c57676fc43806f26db5104ecbc45d529e63859e5e84
+DIST virtualenv-clone-0.2.5.tar.gz 5311 SHA256 7087ba4eb48acfd5209a3fd03e15d072f28742619127c98333057e32748d91c4 SHA512 be3e6a5497e776a127612d248be07fbf43d974b9d8b8c65f35c60c7edc05cf7b717fdba79b5590cef4feda37ba10ba7fbc1efd72096f8deb4318822f7564e2a4 WHIRLPOOL 4c2f1b2dc5ebce0e1eabe04c6bffbacb2140152fec72d8b2b7e1d5fc1797fa056c121159e596e2e154f03963fd9805a3924f34fd75a6a5ad6623c6aa6c5f03c8
+DIST virtualenv-clone-0.2.6.tar.gz 5691 SHA256 6b3be5cab59e455f08c9eda573d23006b7d6fb41fae974ddaa2b275c93cc4405 SHA512 e4963532a8f954ab9840f9f950ccb9c5a8c2bb863c6b0bc72576e5f464b321ef098f199192dbdbb342a232223be9d47b170ea6222d3ecb5848f965cb5ddf8256 WHIRLPOOL 317737e6c38bf0a55280371b9001e55409990814161b7433df78d1017b50264927946d51eb26dea5e1ae8d2aab7ec5325ef9e04d29a64acba7d91060ebeebea8
diff --git a/dev-python/virtualenv-clone/metadata.xml b/dev-python/virtualenv-clone/metadata.xml
new file mode 100644
index 00000000000..2d5b6be2978
--- /dev/null
+++ b/dev-python/virtualenv-clone/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">virtualenv-clone</remote-id>
+ <remote-id type="github">edwardgeorge/virtualenv-clone</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/virtualenv-clone/virtualenv-clone-0.2.4-r2.ebuild b/dev-python/virtualenv-clone/virtualenv-clone-0.2.4-r2.ebuild
new file mode 100644
index 00000000000..f5d18da0b7e
--- /dev/null
+++ b/dev-python/virtualenv-clone/virtualenv-clone-0.2.4-r2.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A script for cloning a non-relocatable virtualenv"
+HOMEPAGE="http://github.com/edwardgeorge/virtualenv-clone"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
diff --git a/dev-python/virtualenv-clone/virtualenv-clone-0.2.5.ebuild b/dev-python/virtualenv-clone/virtualenv-clone-0.2.5.ebuild
new file mode 100644
index 00000000000..ea114b1c9a3
--- /dev/null
+++ b/dev-python/virtualenv-clone/virtualenv-clone-0.2.5.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A script for cloning a non-relocatable virtualenv"
+HOMEPAGE="http://github.com/edwardgeorge/virtualenv-clone"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
diff --git a/dev-python/virtualenv-clone/virtualenv-clone-0.2.6.ebuild b/dev-python/virtualenv-clone/virtualenv-clone-0.2.6.ebuild
new file mode 100644
index 00000000000..ea114b1c9a3
--- /dev/null
+++ b/dev-python/virtualenv-clone/virtualenv-clone-0.2.6.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A script for cloning a non-relocatable virtualenv"
+HOMEPAGE="http://github.com/edwardgeorge/virtualenv-clone"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
new file mode 100644
index 00000000000..ba6d96226d2
--- /dev/null
+++ b/dev-python/virtualenv/Manifest
@@ -0,0 +1,2 @@
+DIST virtualenv-12.0.5.tar.gz 1805752 SHA256 ebb7a01e7fb7a9b3586692f623da4e13d50351f3733d8bbc83aaecd654c5f955 SHA512 b5fd46aa8a34f42d3db46c48ac751e5c22d8fcddc83edd4230838549d549ddfd47e56ef784677d8d17471ed2bbde168e3db6d48ca6a9c2d2ae757caac5768a10 WHIRLPOOL 6a0e568a9954473c6ab2b4f4d814ddd42a4c92d6543b3ec005bbd42d9c25a775dc421c5e8491269fc77fba6c37e8dea9773c644eaa44128b9f2bf7f0db6bdea0
+DIST virtualenv-13.1.0.tar.gz 1705046 SHA256 504e705d73251a7f248e0e88d9054a1b4baf5f276a237f8de0830fd0e1661d63 SHA512 9361b4a44e57c9e2d2138092b0f0b32f7d0209f383f5b0c5f001b2a4e5a886acdacee0317551f6e4722b7fc669604debdcaa50864285ff3326c34a2b9ecb13f4 WHIRLPOOL dc6ff2b2fca481686f56b7f719a417c6b8bd2f115284aa7cc2d6a3541434db107638be97aca51407f9bec819254972606bf57ec233909e86bbd9f7673e0e5936
diff --git a/dev-python/virtualenv/files/virtualenv-1.8.2-no-versioned-script.patch b/dev-python/virtualenv/files/virtualenv-1.8.2-no-versioned-script.patch
new file mode 100644
index 00000000000..040e36794ba
--- /dev/null
+++ b/dev-python/virtualenv/files/virtualenv-1.8.2-no-versioned-script.patch
@@ -0,0 +1,10 @@
+--- pypa-virtualenv-350c45d/setup.py
++++ pypa-virtualenv-350c45d/setup.py
+@@ -9,7 +9,6 @@
+ 'entry_points': {
+ 'console_scripts': [
+ 'virtualenv=virtualenv:main',
+- 'virtualenv-%s.%s=virtualenv:main' % sys.version_info[:2]
+ ],
+ },
+ 'zip_safe': False,
diff --git a/dev-python/virtualenv/files/virtualenv-12.0-skip-broken-test.patch b/dev-python/virtualenv/files/virtualenv-12.0-skip-broken-test.patch
new file mode 100644
index 00000000000..a7485e43d39
--- /dev/null
+++ b/dev-python/virtualenv/files/virtualenv-12.0-skip-broken-test.patch
@@ -0,0 +1,18 @@
+--- virtualenv-12.0/tests/test_virtualenv.py
++++ virtualenv-12.0/tests/test_virtualenv.py
+@@ -5,6 +5,7 @@
+ import sys
+ import tempfile
+ from mock import patch, Mock
++import unittest
+
+
+ def test_version():
+@@ -123,6 +124,7 @@
+ shutil.rmtree(tmp_virtualenv)
+
+
++@unittest.skip("Running create environment while testing is broken")
+ def test_always_copy_option():
+ """Should be no symlinks in directory tree"""
+ tmp_virtualenv = tempfile.mkdtemp()
diff --git a/dev-python/virtualenv/files/virtualenv-12.1.1-skip-broken-test.patch b/dev-python/virtualenv/files/virtualenv-12.1.1-skip-broken-test.patch
new file mode 100644
index 00000000000..5c14c3e2285
--- /dev/null
+++ b/dev-python/virtualenv/files/virtualenv-12.1.1-skip-broken-test.patch
@@ -0,0 +1,19 @@
+--- virtualenv-12.1.1/tests/test_virtualenv.py
++++ virtualenv-12.1.1/tests/test_virtualenv.py
+@@ -6,6 +6,7 @@
+ import tempfile
+ import pytest
+ import platform # noqa
++import unittest
+
+ from mock import patch, Mock
+
+@@ -126,7 +127,7 @@
+ shutil.rmtree(tmp_virtualenv)
+
+
+-@pytest.mark.skipif("platform.python_implementation() == 'PyPy'")
++@unittest.skip("Running create environment while testing is broken")
+ def test_always_copy_option():
+ """Should be no symlinks in directory tree"""
+ tmp_virtualenv = tempfile.mkdtemp()
diff --git a/dev-python/virtualenv/metadata.xml b/dev-python/virtualenv/metadata.xml
new file mode 100644
index 00000000000..9252bf6fa92
--- /dev/null
+++ b/dev-python/virtualenv/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">virtualenv</remote-id>
+ <remote-id type="github">pypa/virtualenv</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/virtualenv/virtualenv-12.0.5.ebuild b/dev-python/virtualenv/virtualenv-12.0.5.ebuild
new file mode 100644
index 00000000000..8ea255a7e70
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-12.0.5.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="http://www.virtualenv.org/ http://pypi.python.org/pypi/virtualenv"
+SRC_URI="https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+SLOT="0"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( docs/index.rst docs/changes.rst )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.8.2-no-versioned-script.patch
+ "${FILESDIR}"/${PN}-12.0-skip-broken-test.patch
+)
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${S}"/docs/_build/html/. )
+ distutils-r1_python_install_all
+}
+
+python_test() {
+ py.test || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/virtualenv/virtualenv-13.1.0.ebuild b/dev-python/virtualenv/virtualenv-13.1.0.ebuild
new file mode 100644
index 00000000000..bf26c2810f5
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-13.1.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="http://www.virtualenv.org/ http://pypi.python.org/pypi/virtualenv https://github.com/pypa/virtualenv/"
+SRC_URI="https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+SLOT="0"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( docs/index.rst docs/changes.rst )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.8.2-no-versioned-script.patch
+ "${FILESDIR}"/${PN}-12.1.1-skip-broken-test.patch
+)
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${S}"/docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/virtualenvwrapper/Manifest b/dev-python/virtualenvwrapper/Manifest
new file mode 100644
index 00000000000..80825cad1ed
--- /dev/null
+++ b/dev-python/virtualenvwrapper/Manifest
@@ -0,0 +1,4 @@
+DIST virtualenvwrapper-4.3.1.tar.gz 86086 SHA256 e6228aea4e76ba6a628455313eff4a6e2cf003010b23399c3a7dabd8798beb08 SHA512 182cc2a236af7984686b0820e6032a70aef884efdf9832eb90196b3622be54c447d67148d944d513ab12e58749e5cdff8ef0af36cb5bf5cee9d9547a41c96f68 WHIRLPOOL 11ec5ac397d5354fd1b93edb3e01cacf0c6cfa5b3512d7f954fdede00d2d2f62d1089650f42f04ecd8370b3d21a72cde81c0c54d24f393cfd2490654cd03e847
+DIST virtualenvwrapper-4.3.2.tar.gz 86495 SHA256 ee545ade2e6bc5433284388afde6ec6417a4d819ba7b0d65d0ce8c4d3fcc11fd SHA512 91d93739be1b378c15ea57a325f891762d6b4afcff84b7f4a4401d0090afeef45991ae3339fc6c99a793963f17bef4457715482a1e8f62186dcaf440120093b3 WHIRLPOOL 9889d6c9ab171ace506962df7e294e688749202f94a723b91bfce8ebc751d614ad3ebfe2b58669b5a585ef248de03d727302d5609ea93c54dddcc3a33a82665e
+DIST virtualenvwrapper-4.5.1.tar.gz 89268 SHA256 ac0b09ce7409ec9d5b8ec90d073641b86bbafc3161f844347b89cc25b2e3a3d9 SHA512 de925da1cf0ec8d25a55c2cc430ea0a2840eaf5e53f0395d925c13c12601db394aeb0b14a15b16b47f4673214ce726df1572e87a28f96d6a6ccc13b3fe43b966 WHIRLPOOL 6773359ae6a9608b7b0fc76db9f9640a66d78d72e7fb0e7f377eb1e8daece862cfc48685050832b79c0153a207517cead7b2ecef716d95f4e7137da802f59620
+DIST virtualenvwrapper-4.6.0.tar.gz 89516 SHA256 f3c73c3a5436f4d040505e5fb45401abdc4be267a80fa071878cfaa685e685e1 SHA512 a7f64a7ae3aad6038b12c3bfca976772fa6a36c3420194f88b87fdd5eb80b036d331ef35b60c8ffaa4b152eaefeddf161283c9f79cf7dbbc8a5f806bdeed51a2 WHIRLPOOL 7eb764171f2ec40e02e9b383f23c1d4d22c12c15d5df65e6022251b5b96ab9fe09273f62d073e10eb54b6998ad92b3c2127504a6d03672ab90184973c853fd24
diff --git a/dev-python/virtualenvwrapper/files/tox.ini b/dev-python/virtualenvwrapper/files/tox.ini
new file mode 100644
index 00000000000..70380f6e1fc
--- /dev/null
+++ b/dev-python/virtualenvwrapper/files/tox.ini
@@ -0,0 +1,3 @@
+[testenv]
+commands = bash ./tests/run_tests {envdir} []
+deps = virtualenv
diff --git a/dev-python/virtualenvwrapper/metadata.xml b/dev-python/virtualenvwrapper/metadata.xml
new file mode 100644
index 00000000000..5d6829fbe8e
--- /dev/null
+++ b/dev-python/virtualenvwrapper/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">virtualenvwrapper</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/virtualenvwrapper/virtualenvwrapper-4.3.1.ebuild b/dev-python/virtualenvwrapper/virtualenvwrapper-4.3.1.ebuild
new file mode 100644
index 00000000000..ce19c11506b
--- /dev/null
+++ b/dev-python/virtualenvwrapper/virtualenvwrapper-4.3.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenvwrapper is a set of extensions to Ian Bicking's virtualenv tool"
+HOMEPAGE="http://www.doughellmann.com/projects/virtualenvwrapper http://pypi.python.org/pypi/virtualenvwrapper"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+# testsuite doesn't work out of the box. Demand of a virtualenv outstrips setup by the exlass
+RESTRICT=test
+
+RDEPEND="dev-python/virtualenv[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.15-r1[${PYTHON_USEDEP}]
+ dev-python/virtualenv-clone[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? ( dev-python/tox[${PYTHON_USEDEP}] )"
+
+src_prepare() {
+ sed -e 's:-o shwordsplit::' -i tests/run_tests || die
+}
+
+python_test() {
+ bash ./tests/run_tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/virtualenvwrapper/virtualenvwrapper-4.3.2.ebuild b/dev-python/virtualenvwrapper/virtualenvwrapper-4.3.2.ebuild
new file mode 100644
index 00000000000..12eee27f5db
--- /dev/null
+++ b/dev-python/virtualenvwrapper/virtualenvwrapper-4.3.2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenvwrapper is a set of extensions to Ian Bicking's virtualenv tool"
+HOMEPAGE="http://www.doughellmann.com/projects/virtualenvwrapper http://pypi.python.org/pypi/virtualenvwrapper"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+# testsuite doesn't work out of the box. Demand of a virtualenv outstrips setup by the eclass
+RESTRICT=test
+
+RDEPEND="dev-python/virtualenv[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.15-r1[${PYTHON_USEDEP}]
+ dev-python/virtualenv-clone[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]"
+
+# Keep just in case
+src_prepare() {
+ sed -e 's:-o shwordsplit::' -i tests/run_tests || die
+}
+
+python_test() {
+ bash ./tests/run_tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/virtualenvwrapper/virtualenvwrapper-4.5.1.ebuild b/dev-python/virtualenvwrapper/virtualenvwrapper-4.5.1.ebuild
new file mode 100644
index 00000000000..12eee27f5db
--- /dev/null
+++ b/dev-python/virtualenvwrapper/virtualenvwrapper-4.5.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenvwrapper is a set of extensions to Ian Bicking's virtualenv tool"
+HOMEPAGE="http://www.doughellmann.com/projects/virtualenvwrapper http://pypi.python.org/pypi/virtualenvwrapper"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+# testsuite doesn't work out of the box. Demand of a virtualenv outstrips setup by the eclass
+RESTRICT=test
+
+RDEPEND="dev-python/virtualenv[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.15-r1[${PYTHON_USEDEP}]
+ dev-python/virtualenv-clone[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]"
+
+# Keep just in case
+src_prepare() {
+ sed -e 's:-o shwordsplit::' -i tests/run_tests || die
+}
+
+python_test() {
+ bash ./tests/run_tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/virtualenvwrapper/virtualenvwrapper-4.6.0.ebuild b/dev-python/virtualenvwrapper/virtualenvwrapper-4.6.0.ebuild
new file mode 100644
index 00000000000..12eee27f5db
--- /dev/null
+++ b/dev-python/virtualenvwrapper/virtualenvwrapper-4.6.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="virtualenvwrapper is a set of extensions to Ian Bicking's virtualenv tool"
+HOMEPAGE="http://www.doughellmann.com/projects/virtualenvwrapper http://pypi.python.org/pypi/virtualenvwrapper"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+# testsuite doesn't work out of the box. Demand of a virtualenv outstrips setup by the eclass
+RESTRICT=test
+
+RDEPEND="dev-python/virtualenv[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-0.15-r1[${PYTHON_USEDEP}]
+ dev-python/virtualenv-clone[${PYTHON_USEDEP}]"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/pbr[${PYTHON_USEDEP}]"
+
+# Keep just in case
+src_prepare() {
+ sed -e 's:-o shwordsplit::' -i tests/run_tests || die
+}
+
+python_test() {
+ bash ./tests/run_tests || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/visual/Manifest b/dev-python/visual/Manifest
new file mode 100644
index 00000000000..97868d71e86
--- /dev/null
+++ b/dev-python/visual/Manifest
@@ -0,0 +1 @@
+DIST visual-5.74_release.tar.bz2 5736404 SHA256 1e480d3fd82e8172021ae0e22e8e2859f44bec9297e12ebf672270fd8e7d7099 SHA512 eff43bae66d4ca6a1b540e729b5f03e7310db8d4c49ba7a1ac271afa62688d9024f4f00b7678669433ca3f0f6e13e6c0c3de90a4a845ae5eeaa70b536a6e1193 WHIRLPOOL d0c35354e8fcaf591870dce867e60a9b54a9eb31acdd6eb05331566c031bf0a7da794e7f9dc8e013eff10583eadccefda08ef79443761129d9ca56f05626acd8
diff --git a/dev-python/visual/files/visual-5.74-boost-1.50.patch b/dev-python/visual/files/visual-5.74-boost-1.50.patch
new file mode 100644
index 00000000000..a66ded25898
--- /dev/null
+++ b/dev-python/visual/files/visual-5.74-boost-1.50.patch
@@ -0,0 +1,28 @@
+https://github.com/vpython/visual/issues/3
+
+--- dependencies/threadpool/include/threadpool/task_adaptors.hpp
++++ dependencies/threadpool/include/threadpool/task_adaptors.hpp
+@@ -135,7 +135,11 @@
+ if(m_break_s > 0 || m_break_ns > 0)
+ { // Sleep some time before first execution
+ xtime xt;
++#if BOOST_VERSION >= 105000
++ xtime_get(&xt, TIME_UTC_);
++#else
+ xtime_get(&xt, TIME_UTC);
++#endif
+ xt.nsec += m_break_ns;
+ xt.sec += m_break_s;
+ thread::sleep(xt);
+@@ -146,7 +150,11 @@
+ if(m_break_s > 0 || m_break_ns > 0)
+ {
+ xtime xt;
++#if BOOST_VERSION >= 105000
++ xtime_get(&xt, TIME_UTC_);
++#else
+ xtime_get(&xt, TIME_UTC);
++#endif
+ xt.nsec += m_break_ns;
+ xt.sec += m_break_s;
+ thread::sleep(xt);
diff --git a/dev-python/visual/metadata.xml b/dev-python/visual/metadata.xml
new file mode 100644
index 00000000000..ee7e8b2450a
--- /dev/null
+++ b/dev-python/visual/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/visual/visual-5.74.ebuild b/dev-python/visual/visual-5.74.ebuild
new file mode 100644
index 00000000000..5ac636da656
--- /dev/null
+++ b/dev-python/visual/visual-5.74.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.5 3.* *-jython 2.7-pypy-*"
+PYTHON_EXPORT_PHASE_FUNCTIONS="1"
+
+inherit eutils flag-o-matic multilib python versionator
+
+MY_P="${PN}-$(delete_version_separator 2)_release"
+
+DESCRIPTION="Real-time 3D graphics library for Python"
+HOMEPAGE="http://www.vpython.org/"
+SRC_URI="http://www.vpython.org/contents/download/${MY_P}.tar.bz2"
+
+LICENSE="HPND Boost-1.0"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="doc examples"
+
+RDEPEND=">=dev-cpp/gtkglextmm-1.2
+ dev-cpp/libglademm
+ >=dev-libs/boost-1.48[python]
+ dev-python/numpy
+ dev-python/polygon:2
+ dev-python/ttfquery"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ # Verbose build.
+ sed -i \
+ -e 's/2\?>>[[:space:]]*\$(LOGFILE).*//' \
+ src/Makefile.in || die
+
+ epatch "${FILESDIR}/${P}-boost-1.50.patch"
+
+ python_clean_py-compile_files
+ python_src_prepare
+
+ preparation() {
+ sed -i \
+ -e "s/-lboost_python/-lboost_python-${PYTHON_ABI}/" \
+ -e "s/libboost_python/libboost_python-${PYTHON_ABI}/" \
+ src/Makefile.in src/gtk2/makefile
+ }
+ python_execute_function -s preparation
+}
+
+src_configure() {
+ BOOST_PKG="$(best_version ">=dev-libs/boost-1.48")"
+ BOOST_VER="$(get_version_component_range 1-2 "${BOOST_PKG/*boost-/}")"
+ BOOST_VER="$(replace_all_version_separators _ "${BOOST_VER}")"
+ BOOST_INC="${EPREFIX}/usr/include/boost-${BOOST_VER}"
+ BOOST_LIB="${EPREFIX}/usr/$(get_libdir)/boost-${BOOST_VER}"
+
+ # Specify the include and lib directory for Boost.
+ append-cxxflags -I${BOOST_INC}
+ append-ldflags -L${BOOST_LIB}
+
+ python_src_configure \
+ --with-example-dir="${EPREFIX}/usr/share/doc/${PF}/examples" \
+ --with-html-dir="${EPREFIX}/usr/share/doc/${PF}/html" \
+ $(use_enable doc docs) \
+ $(use_enable examples)
+}
+
+src_install() {
+ python_src_install
+ python_clean_installation_image
+
+ dodoc authors.txt HACKING.txt NEWS.txt
+}
+
+pkg_postinst() {
+ python_mod_optimize vis visual
+}
+
+pkg_postrm() {
+ python_mod_cleanup vis visual
+}
diff --git a/dev-python/vo/Manifest b/dev-python/vo/Manifest
new file mode 100644
index 00000000000..e5799ad7c05
--- /dev/null
+++ b/dev-python/vo/Manifest
@@ -0,0 +1,2 @@
+DIST vo-0.8.tar.gz 1245366 SHA256 440a22bd1c805d5e0bbd0a75b26a4247d41200d9e4dc4a72621304ccaa488837 SHA512 1bfd3293ee58af1084b4a752181f6c9c3a2352ec48892cab6b679f739d95e89a6dab7e08400f6a67d179d9663fcde3ef3d9b63f7858dcc2517c5b494e3f58515 WHIRLPOOL cd53ba3acab6f29fc2fcddee824e509664d79134584b9d5722d38ef22ee90f193c59d6e3ac0d04800ac393c8fd3c1eb6dd1ba1ac753fc8b3f88c39d9d2b2763e
+DIST wfpc2_all.xml.gz 4010839 SHA256 e3315762626281adcf28913831528e40bcb09abb8c7a41e456cc44c7ce6109b7 SHA512 76ddfe7c0604a7c806f0e97ef7702b00f942e248549b3b57ad92845f5b55eb14bd13e511543c88af6bbca24a2343acc76de3557cf94d2d2bf1b7845403f12bd6 WHIRLPOOL 5663cc144e6726ca4cad9024390b675c63eac49487d4d96298fdb2baefd6d7d508c0e95c381ab5169f805626b691bffaaea54249dc14cd258f8b7a3cf8c3cb41
diff --git a/dev-python/vo/files/vo-0.6-expat.patch b/dev-python/vo/files/vo-0.6-expat.patch
new file mode 100644
index 00000000000..24157f39084
--- /dev/null
+++ b/dev-python/vo/files/vo-0.6-expat.patch
@@ -0,0 +1,19 @@
+--- defsetup.py.orig 2010-07-21 17:35:59.000000000 +0100
++++ defsetup.py 2010-07-21 17:37:06.000000000 +0100
+@@ -17,14 +17,9 @@
+
+ iterparse_ext = Extension(
+ "vo.iterparser",
+- ["src/iterparse.c",
+- "src/expat/xmlparse.c",
+- "src/expat/xmlrole.c",
+- "src/expat/xmltok.c",
+- "src/expat/xmltok_impl.c"
+- ],
++ ["src/iterparse.c"],
+ define_macros=defines,
+- include_dirs=["src", "src/expat"])
++ libraries=["expat"])
+
+ pkg = ['vo', 'vo.tests']
+ # Python < 2.6 doesn't have the json module
diff --git a/dev-python/vo/metadata.xml b/dev-python/vo/metadata.xml
new file mode 100644
index 00000000000..1fec8de53fc
--- /dev/null
+++ b/dev-python/vo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-astronomy</herd>
+<longdescription lang="en">
+ vo.table is a Python package to read and write astronomical VOTable
+ files into Numpy record arrays.
+ vo.table supports the VOTable Format Definition Version 1.1. Some
+ flexibility is provided to support the 1.0 draft version and other
+ non-standard usage in the wild.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/vo/vo-0.8-r1.ebuild b/dev-python/vo/vo-0.8-r1.ebuild
new file mode 100644
index 00000000000..1af5073133d
--- /dev/null
+++ b/dev-python/vo/vo-0.8-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python module to read VO tables into a numpy array"
+HOMEPAGE="https://trac6.assembla.com/astrolib/wiki"
+SRC_URI="http://stsdas.stsci.edu/astrolib/${P}.tar.gz
+ test? ( http://svn6.assembla.com/svn/astrolib/trunk/vo/test/wfpc2_all.xml.gz )"
+
+IUSE="examples test"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD"
+
+RDEPEND="
+ dev-libs/expat
+ !<dev-python/astropy-0.3"
+DEPEND="${RDEPEND}"
+
+# slow and buggy tests
+RESTRICT="test"
+
+python_prepare_all() {
+ epatch "${FILESDIR}"/${PN}-0.6-expat.patch
+ use test && cp "${WORKDIR}"/wfpc2_all.xml test
+}
+
+python_test() {
+ cd test || die
+ ln -s "${S}"/lib/data "${BUILD_DIR}/lib/vo/data" || die
+ PYTHONPATH="${BUILD_DIR}/lib" "${EPYTHON}" benchmarks.py || die
+}
+
+python_install_all() {
+ if use examples; then
+ insinto /usr/share/doc/${PF}/
+ doins -r examples
+ fi
+}
diff --git a/dev-python/vobject/Manifest b/dev-python/vobject/Manifest
new file mode 100644
index 00000000000..520291ec1ed
--- /dev/null
+++ b/dev-python/vobject/Manifest
@@ -0,0 +1 @@
+DIST vobject-0.8.1c.tar.gz 59925 SHA256 594113117f2017ed837c8f3ce727616f9053baa5a5463a7420c8249b8fc556f5 SHA512 3c7071e040172c8ef9e93bb818fb3c5f04912322adaaf56794b00005ff1ee787d54ad6860835be4fb123fa4215c104e1cbc4031dcdab53e96f7dbed771c0fa79 WHIRLPOOL b317c376df74532d6b1f72a64558611edb9b02a2c37c4d98064d28e478580c8138e5144c5e5585d47ea842c52f40abdac8c84095972780e7a5e239b01537ef2e
diff --git a/dev-python/vobject/metadata.xml b/dev-python/vobject/metadata.xml
new file mode 100644
index 00000000000..de483c53568
--- /dev/null
+++ b/dev-python/vobject/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/vobject/vobject-0.8.1c-r1.ebuild b/dev-python/vobject/vobject-0.8.1c-r1.ebuild
new file mode 100644
index 00000000000..606a89d2ea0
--- /dev/null
+++ b/dev-python/vobject/vobject-0.8.1c-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A full featured Python package for parsing and generating vCard and vCalendar files"
+HOMEPAGE="http://vobject.skyhouseconsulting.com/ http://pypi.python.org/pypi/vobject"
+SRC_URI="http://vobject.skyhouseconsulting.com/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/setuptools"[${PYTHON_USEDEP}]
+DEPEND="${RDEPEND}"
+
+DOCS=( ACKNOWLEDGEMENTS.txt )
+
+python_test() {
+ "${PYTHON}" test_vobject.py || die "Testing failed under ${EPYTHON}"
+}
diff --git a/dev-python/w3lib/Manifest b/dev-python/w3lib/Manifest
new file mode 100644
index 00000000000..f5373178e25
--- /dev/null
+++ b/dev-python/w3lib/Manifest
@@ -0,0 +1 @@
+DIST w3lib-1.11.0.tar.gz 12083 SHA256 826f6184232c385b7c8038ef7ae5506f1cb3f8fa470ac12ce0fb6fb0a592fb92 SHA512 421e75639291c6aec56aa28efeaf2a440c878662085a9a667bf1b89e30b2b6ce29066d524f48ad99af1563a1b886483cc81d8897975697084256588319988b37 WHIRLPOOL db05a2f4799065ad4a942f363ce45b00cb87689be049c42a35a0ef703907742fb3bd71a51b6c6a49266bb0e47adf1be6b144708beab0a03749f1c66e597cf7b2
diff --git a/dev-python/w3lib/metadata.xml b/dev-python/w3lib/metadata.xml
new file mode 100644
index 00000000000..e3fa45d6a1c
--- /dev/null
+++ b/dev-python/w3lib/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">w3lib</remote-id>
+ <remote-id type="github">scrapy/w3lib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/w3lib/w3lib-1.11.0.ebuild b/dev-python/w3lib/w3lib-1.11.0.ebuild
new file mode 100644
index 00000000000..dcfe6a3fbf8
--- /dev/null
+++ b/dev-python/w3lib/w3lib-1.11.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library of web-related functions"
+HOMEPAGE="http://github.com/scrapy/w3lib"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=dev-python/six-1.4.1[${PYTHON_USEDEP}]"
diff --git a/dev-python/waitress/Manifest b/dev-python/waitress/Manifest
new file mode 100644
index 00000000000..9954de7eef7
--- /dev/null
+++ b/dev-python/waitress/Manifest
@@ -0,0 +1,2 @@
+DIST pylons_sphinx_theme.tar.gz 607608 SHA256 d892c80fbee8845b79cb41845a89cf2f268893689a68157bc10bd0224948bb9c SHA512 fdafd77e52ff6941de5102bad521ed2a9e28cff6be385cab660a7604be12fa1d86db73fc93f84f72551458cc60b42d3354f27648b1d747b15b25d6f809df8a4d WHIRLPOOL bcf8329b35b90d65eae86a8fc910d074790f912cfe7d4bdd9065970f5c24344e57e585d8dd0b28f101b4ddd4ed0b65caa3bdf7c93fb933ddc6916e63514fa69f
+DIST waitress-0.8.9.tar.gz 121048 SHA256 826527dc9d334ed4ed76cdae672fdcbbccf614186657db71679ab58df869458a SHA512 e9459b8806389fcdbd6f7cfc4fc908c2076f1fcc306315c5375c872c1a0c43c2537347322f7becf1ad36aec0050dca7b2f713f35318fe3a371e544cc880b7d8c WHIRLPOOL f3ce347d3fa04944ebcf7b6b3734bed0ff1fb1fc1dd9479a10cc4cc77111ae250e2c652dd195b15a86c1c7b740d751d0ca539791f3b97c942737ca0be033a59a
diff --git a/dev-python/waitress/files/waitress-0.8.9-doc.patch b/dev-python/waitress/files/waitress-0.8.9-doc.patch
new file mode 100644
index 00000000000..f7ff3b01467
--- /dev/null
+++ b/dev-python/waitress/files/waitress-0.8.9-doc.patch
@@ -0,0 +1,29 @@
+diff -ur waitress-0.8.9.orig/docs/conf.py waitress-0.8.9/docs/conf.py
+--- docs/conf.py 2014-05-17 05:39:35.000000000 +0800
++++ docs/conf.py 2014-05-21 13:28:12.921485962 +0800
+@@ -21,24 +21,7 @@
+ import pkg_resources
+
+ # Add and use Pylons theme
+-if 'sphinx-build' in ' '.join(sys.argv): # protect against dumb importers
+- from subprocess import call, Popen, PIPE
+-
+- p = Popen('which git', shell=True, stdout=PIPE)
+- git = p.stdout.read().strip()
+- cwd = os.getcwd()
+- _themes = os.path.join(cwd, '_themes')
+-
+- if not os.path.isdir(_themes):
+- call([git, 'clone', 'git://github.com/Pylons/pylons_sphinx_theme.git',
+- '_themes'])
+- else:
+- os.chdir(_themes)
+- call([git, 'checkout', 'master'])
+- call([git, 'pull'])
+- os.chdir(cwd)
+-
+- sys.path.append(os.path.abspath('_themes'))
++sys.path.append(os.path.abspath('_themes'))
+
+ # General configuration
+ # ---------------------
diff --git a/dev-python/waitress/metadata.xml b/dev-python/waitress/metadata.xml
new file mode 100644
index 00000000000..913fdf59d48
--- /dev/null
+++ b/dev-python/waitress/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">waitress</remote-id>
+ <remote-id type="github">Pylons/waitress</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/waitress/waitress-0.8.9.ebuild b/dev-python/waitress/waitress-0.8.9.ebuild
new file mode 100644
index 00000000000..9838509e894
--- /dev/null
+++ b/dev-python/waitress/waitress-0.8.9.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A pure-Python WSGI server"
+HOMEPAGE="http://docs.pylonsproject.org/projects/waitress/en/latest/ https://pypi.python.org/pypi/waitress/ https://github.com/Pylons/waitress"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz \
+ doc? ( http://dev.gentoo.org/~idella4/pylons_sphinx_theme.tar.gz )"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd"
+IUSE="doc test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ if use doc; then
+ local PATCHES=( "${FILESDIR}"/${P}-doc.patch )
+ mv "${WORKDIR}"/_themes ./docs/ || die
+ fi
+
+ # Fix generation of documentation with Waitress not installed. Bug #525384
+ sed -e "s/^version = pkg_resources.get_distribution('waitress').version$/version = '${PV}'/" -i docs/conf.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/warlock/Manifest b/dev-python/warlock/Manifest
new file mode 100644
index 00000000000..99d195561fa
--- /dev/null
+++ b/dev-python/warlock/Manifest
@@ -0,0 +1,2 @@
+DIST warlock-1.0.1.tar.gz 4192 SHA256 986ccfd647f89c1c8e7ebe40d159e5633818a58754b3ffdf51c4816927977791 SHA512 7ca4b512efa9f3b112682b5120618b14616d3d7307891004aedbe6b88d66d5baaff5c02b9dfe78ea845cdc2498668f81c9dfc6a22fedab7916f49947dd3706c6 WHIRLPOOL a1e556668ca5a2589832fa177ea3260c50efc3a07924ad6ba830318985be8f8e6e70a6f24ed130e7d7d181b3060720f54eeff22bf709aee537c028d6a1d03f83
+DIST warlock-1.1.0.tar.gz 7879 SHA256 bbfb4279034ccc402723e38d2a2e67cd619988bf4802fda7ba3e8fab15762651 SHA512 57353cb21ee7245cb27f29193d8c0987971535f1bc9f7a8914738ec15cd5712cf7001eae379041c0188e489365f23b0190dc13799b57a117b0bd3ed62cc2e30a WHIRLPOOL e2e258a38770c2c2f823d343ffe8b8a75bb7e89c0bc2b5dbe1e174cd06527eaca84e3e1c90ace11acd766c87408f448c563f2cfed8740239dd0bfeac66740698
diff --git a/dev-python/warlock/metadata.xml b/dev-python/warlock/metadata.xml
new file mode 100644
index 00000000000..e99437e2e04
--- /dev/null
+++ b/dev-python/warlock/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ Python object model built on JSON schema and JSON patch.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">warlock</remote-id>
+ <remote-id type="github">bcwaldon/warlock</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/warlock/warlock-1.0.1.ebuild b/dev-python/warlock/warlock-1.0.1.ebuild
new file mode 100644
index 00000000000..533ad2ad755
--- /dev/null
+++ b/dev-python/warlock/warlock-1.0.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python object model built on JSON schema and JSON patch"
+HOMEPAGE="http://github.com/bcwaldon/warlock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-0.10[${PYTHON_USEDEP}]
+ <dev-python/jsonpatch-2[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-0.7[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3[${PYTHON_USEDEP}] )"
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-0.10[${PYTHON_USEDEP}]
+ <dev-python/jsonpatch-2[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-0.7[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test/test_core.py || die
+}
diff --git a/dev-python/warlock/warlock-1.1.0.ebuild b/dev-python/warlock/warlock-1.1.0.ebuild
new file mode 100644
index 00000000000..531cb87c8e3
--- /dev/null
+++ b/dev-python/warlock/warlock-1.1.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python{3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python object model built on JSON schema and JSON patch"
+HOMEPAGE="http://github.com/bcwaldon/warlock"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-0.10[${PYTHON_USEDEP}]
+ <dev-python/jsonpatch-2[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-0.7[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3[${PYTHON_USEDEP}] )"
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-0.10[${PYTHON_USEDEP}]
+ <dev-python/jsonpatch-2[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-0.7[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-3[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" test/test_core.py || die
+}
diff --git a/dev-python/watchdog/Manifest b/dev-python/watchdog/Manifest
new file mode 100644
index 00000000000..be8a93d137d
--- /dev/null
+++ b/dev-python/watchdog/Manifest
@@ -0,0 +1,3 @@
+DIST watchdog-0.8.1.tar.gz 154747 SHA256 d6ec6be582b244834a888c8ccc2d451816184ab104b5454b5e5cd7649e8f671c SHA512 d5915be2e2817c748c6d2ba91d8a4044938fa5665019ac7c2048e28493c0dba34189bef61cd642204f1bd62d81ef59767af5970f65543a0c981d8f31ab980856 WHIRLPOOL 94890aa9a0a19c49ce2358b694a61b456df270da3a16d5c5e91044a96e228026288c7dcb7d4597e5fddae601692f8b34cae5e2a29ad388bc08aaf86b3d59fcb8
+DIST watchdog-0.8.2.tar.gz 157936 SHA256 33a9ab3ce2e6b1aca4d2a50752231668d69bdba4ab096d9742195ccfbef1e023 SHA512 96f1fcd0d6898ce950c8768000be2f619c9a28c9d96cb1d7323f04371b065e50b38692179949255bb13fa4e3c72e6f656dbc02b4d7f77b7fb3aacdf08600cb71 WHIRLPOOL c2581e9dba65f8ffbe1fe8b21d873e0292aae6ba46012979b221b3d4ede8f74d4c2cc2efa8635e99180c3bce227f943cb5ef4fba3dd24f5dae5bfc150f643c1d
+DIST watchdog-0.8.3.tar.gz 83154 SHA256 7e65882adb7746039b6f3876ee174952f8eaaa34491ba34333ddf1fe35de4162 SHA512 61f1db886e8e9a6d78b569329f4d5944c296778a5a34f94fbf115a748fb4c3be422bf4d3cc828e22fcdcd380fdf9009f5bd91a8a5edc87089afc58297a0b946f WHIRLPOOL 54af63f60711afac83d79d8b2e67c8dd500eb73a9ea89d6341979406dce4942cec071141b6aaa98615eb7b097d82a915043cbbe8166589c805beab163e733480
diff --git a/dev-python/watchdog/metadata.xml b/dev-python/watchdog/metadata.xml
new file mode 100644
index 00000000000..378220de146
--- /dev/null
+++ b/dev-python/watchdog/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>hasufell@gentoo.org</email>
+ <name>Julian Ospald</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">watchdog</remote-id>
+ <remote-id type="github">gorakhargosh/watchdog</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/watchdog/watchdog-0.8.1.ebuild b/dev-python/watchdog/watchdog-0.8.1.ebuild
new file mode 100644
index 00000000000..9bec1111a73
--- /dev/null
+++ b/dev-python/watchdog/watchdog-0.8.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python API and shell utilities to monitor file system events"
+HOMEPAGE="http://github.com/gorakhargosh/watchdog"
+SRC_URI="mirror://pypi/w/watchdog/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ dev-python/argh[${PYTHON_USEDEP}]
+ dev-python/pathtools[${PYTHON_USEDEP}]"
+
+pkg_postinst() {
+ optfeature "Bash completion" dev-python/argcomplete
+}
diff --git a/dev-python/watchdog/watchdog-0.8.2.ebuild b/dev-python/watchdog/watchdog-0.8.2.ebuild
new file mode 100644
index 00000000000..e6bb2c46960
--- /dev/null
+++ b/dev-python/watchdog/watchdog-0.8.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy)
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python API and shell utilities to monitor file system events"
+HOMEPAGE="http://github.com/gorakhargosh/watchdog"
+SRC_URI="mirror://pypi/w/watchdog/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]"
+RDEPEND="${CDEPEND}
+ dev-python/argh[${PYTHON_USEDEP}]
+ dev-python/pathtools[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ test? (
+ dev-python/pytest
+ dev-python/pytest-cov
+ >=dev-python/pytest-timeout-0.3
+ )"
+
+python_test() {
+ esetup.py test
+}
+
+pkg_postinst() {
+ optfeature "Bash completion" dev-python/argcomplete
+}
diff --git a/dev-python/watchdog/watchdog-0.8.3.ebuild b/dev-python/watchdog/watchdog-0.8.3.ebuild
new file mode 100644
index 00000000000..1d7ccc3a7ce
--- /dev/null
+++ b/dev-python/watchdog/watchdog-0.8.3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy)
+
+inherit distutils-r1 eutils
+
+DESCRIPTION="Python API and shell utilities to monitor file system events"
+HOMEPAGE="http://github.com/gorakhargosh/watchdog"
+SRC_URI="mirror://pypi/w/watchdog/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+
+CDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]"
+RDEPEND="${CDEPEND}
+ dev-python/argh[${PYTHON_USEDEP}]
+ dev-python/pathtools[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ >=dev-python/pytest-timeout-0.3[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ esetup.py test
+}
+
+pkg_postinst() {
+ optfeature "Bash completion" dev-python/argcomplete
+}
diff --git a/dev-python/wcsaxes/Manifest b/dev-python/wcsaxes/Manifest
new file mode 100644
index 00000000000..df3441cbc88
--- /dev/null
+++ b/dev-python/wcsaxes/Manifest
@@ -0,0 +1 @@
+DIST wcsaxes-0.3.tar.gz 773984 SHA256 012861678afa3c05700c4dd94a73bbd0534dae7ef8d9dc215fb01d6e5a60477f SHA512 597494609e2add782dcf84a6163b7093d1a467ffb6321d6d25064f9f87dcb0f7e5e076818b0707b9f10d0894a26ce240cda9598f035364832efe57d6ec51d76a WHIRLPOOL 1d05ce40460a2477c43107f33a68de08cdeb66ee395d3311ee74c9e7d354b675584f3e5d79ea91303a1808ab767df6f54bb5c65993009edfa67b416057c459fe
diff --git a/dev-python/wcsaxes/metadata.xml b/dev-python/wcsaxes/metadata.xml
new file mode 100644
index 00000000000..6ec9ee7ad1a
--- /dev/null
+++ b/dev-python/wcsaxes/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-astronomy</herd>
+ <longdescription lang="en">
+ Framework for plotting astronomical and geospatial data
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">wcsaxes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wcsaxes/wcsaxes-0.3.ebuild b/dev-python/wcsaxes/wcsaxes-0.3.ebuild
new file mode 100644
index 00000000000..ffa13430688
--- /dev/null
+++ b/dev-python/wcsaxes/wcsaxes-0.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Framework for plotting astronomical and geospatial data"
+HOMEPAGE="http://wcsaxes.readthedocs.org https://pypi.python.org/pypi/wcsaxes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/astropy[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_compile() {
+ distutils-r1_python_compile --use-system-libraries --offline
+}
+
+python_compile_all() {
+ use doc && esetup.py build_sphinx --offline
+}
+
+python_test() {
+ esetup.py --offline test
+}
+
+python_install() {
+ distutils-r1_python_install --offline
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/ )
+ distutils-r1_python_install_all --offline
+}
diff --git a/dev-python/wcwidth/Manifest b/dev-python/wcwidth/Manifest
new file mode 100644
index 00000000000..769ea035842
--- /dev/null
+++ b/dev-python/wcwidth/Manifest
@@ -0,0 +1 @@
+DIST wcwidth-0.1.4.tar.gz 19584 SHA256 906d3123045d77027b49fe912458e1a1e1d6ca1a51558a4bd9168d143b129d2b SHA512 3882d7a4309b868593586e7bc52ce5328504db2f37a4152d53a8b7b8632375866cc07900965d1dd9c84d22c4e2b5cb161b3091c6b3ce4a37d51aeca9c76fe36d WHIRLPOOL 432cff1f6e206c9daf35406d485436c9f7b9a3e7c48f14384f9804d69c6a39099bb9ca4ee99547504c4fa2db8f70259796019f008d1c678c6b73c7de9c09cf60
diff --git a/dev-python/wcwidth/metadata.xml b/dev-python/wcwidth/metadata.xml
new file mode 100644
index 00000000000..6272360d494
--- /dev/null
+++ b/dev-python/wcwidth/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">wcwidth</remote-id>
+ <remote-id type="github">jquast/wcwidth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wcwidth/wcwidth-0.1.4.ebuild b/dev-python/wcwidth/wcwidth-0.1.4.ebuild
new file mode 100644
index 00000000000..5367f2c4467
--- /dev/null
+++ b/dev-python/wcwidth/wcwidth-0.1.4.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Measures number of Terminal column cells of wide-character codes"
+HOMEPAGE="https://pypi.python.org/pypi/wcwidth/ https://github.com/jquast/wcwidth"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
diff --git a/dev-python/weasyprint/Manifest b/dev-python/weasyprint/Manifest
new file mode 100644
index 00000000000..e939e65d774
--- /dev/null
+++ b/dev-python/weasyprint/Manifest
@@ -0,0 +1,3 @@
+DIST WeasyPrint-0.21.tar.gz 333898 SHA256 312af72805fd5207ccd58d1c59022bf1e9cf8e6c839825e654bb0d0789d66048 SHA512 6455e17c317e8d25f33e6e497e232b96e907ba569d15d333e7b3d3de2b41af7d593e385c24a8ad3f6877c1a3af4266f95e723277e3ca3194cc884c04c58374e3 WHIRLPOOL 165a3194e9fb92699dd9b00d3f0539d686322f09a3a4d2fa395b1070140bbec4a535648d86d70632ba5b094aa16969491ddd42a5711a4d9e56833dc25aea61d1
+DIST WeasyPrint-0.22.tar.gz 342786 SHA256 78874291649d8013b60462c39456fea8d1097e55bb45907f6c3e30ffe4822bf1 SHA512 f5b7189a9c5408d052cde995a9ff6aa2df04cbf97297c8f2c03d8f12aa84833f7a82b63eac700032570c289a8ce0dbab687d0127518b6743fd95dfb60cbf5993 WHIRLPOOL e2f6efc58a3344c655814b0fcb9b6541e8a3f8e8e4e82240ea34580517095d7622f434bd83da6071184270df6c94cc7771376b87743439a1c3e9a357d72520a6
+DIST WeasyPrint-0.23.tar.gz 343614 SHA256 4c3539b8bf6145f6ae9de657eb4b008ccf29066d876f948ecbcfa753a5b0eae4 SHA512 bd9e4da6bd9ffc63e6acedbf821d2fa7b791f9d28c61e465effa0596665b5b76fec1a4bef2dd8f2c98ee768884ef84f842fc67664b41f84d4a0c22d86e032d71 WHIRLPOOL 1a9f0e0d442b7487ffa039c726f41fa80fdce06df4f3d2d931eda3974ce4b4da69dea929d018c9c95a9dc02ff0d5cf9158059bc7ce3293a4997fa2550d5f755f
diff --git a/dev-python/weasyprint/metadata.xml b/dev-python/weasyprint/metadata.xml
new file mode 100644
index 00000000000..1009a336b00
--- /dev/null
+++ b/dev-python/weasyprint/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">WeasyPrint</remote-id>
+ <remote-id type="github">Kozea/WeasyPrint</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/weasyprint/weasyprint-0.21-r1.ebuild b/dev-python/weasyprint/weasyprint-0.21-r1.ebuild
new file mode 100644
index 00000000000..b8ddec5fec3
--- /dev/null
+++ b/dev-python/weasyprint/weasyprint-0.21-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Visual rendering engine for HTML and CSS that can export to PDF"
+MY_PN="WeasyPrint"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="http://weasyprint.org"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# Note: specific subslot of pango since it inlines some of pango headers.
+RDEPEND="x11-libs/pango:0/0
+ media-gfx/cairosvg
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ dev-python/tinycss[${PYTHON_USEDEP}]
+ dev-python/cssselect[${PYTHON_USEDEP}]
+ dev-python/pyphen[${PYTHON_USEDEP}]
+ "
+ # x11-libs/gdk-pixbuf # optional dep
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
diff --git a/dev-python/weasyprint/weasyprint-0.22.ebuild b/dev-python/weasyprint/weasyprint-0.22.ebuild
new file mode 100644
index 00000000000..1881977e94c
--- /dev/null
+++ b/dev-python/weasyprint/weasyprint-0.22.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Visual rendering engine for HTML and CSS that can export to PDF"
+MY_PN="WeasyPrint"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="http://weasyprint.org https://github.com/Kozea/WeasyPrint"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# Note: specific subslot of pango since it inlines some of pango headers.
+RDEPEND="x11-libs/pango:0/0
+ >=media-gfx/cairosvg-1.0.7[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-0.999[${PYTHON_USEDEP}]
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+ >=dev-python/lxml-3.0[${PYTHON_USEDEP}]
+ >=dev-python/cairocffi-0.5[${PYTHON_USEDEP}]
+ ~dev-python/tinycss-0.3[${PYTHON_USEDEP}]
+ >=dev-python/cssselect-0.6[${PYTHON_USEDEP}]
+ >=dev-python/pyphen-0.8[${PYTHON_USEDEP}]"
+# x11-libs/gdk-pixbuf # optional dep
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ media-fonts/ahem )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ py.test || die "testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/weasyprint/weasyprint-0.23.ebuild b/dev-python/weasyprint/weasyprint-0.23.ebuild
new file mode 100644
index 00000000000..1881977e94c
--- /dev/null
+++ b/dev-python/weasyprint/weasyprint-0.23.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Visual rendering engine for HTML and CSS that can export to PDF"
+MY_PN="WeasyPrint"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+HOMEPAGE="http://weasyprint.org https://github.com/Kozea/WeasyPrint"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# Note: specific subslot of pango since it inlines some of pango headers.
+RDEPEND="x11-libs/pango:0/0
+ >=media-gfx/cairosvg-1.0.7[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-0.999[${PYTHON_USEDEP}]
+ dev-python/cffi:=[${PYTHON_USEDEP}]
+ >=dev-python/lxml-3.0[${PYTHON_USEDEP}]
+ >=dev-python/cairocffi-0.5[${PYTHON_USEDEP}]
+ ~dev-python/tinycss-0.3[${PYTHON_USEDEP}]
+ >=dev-python/cssselect-0.6[${PYTHON_USEDEP}]
+ >=dev-python/pyphen-0.8[${PYTHON_USEDEP}]"
+# x11-libs/gdk-pixbuf # optional dep
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ media-fonts/ahem )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ py.test || die "testsuite failed under ${EPYTHON}"
+}
diff --git a/dev-python/webassets/Manifest b/dev-python/webassets/Manifest
new file mode 100644
index 00000000000..7f4f797484b
--- /dev/null
+++ b/dev-python/webassets/Manifest
@@ -0,0 +1 @@
+DIST webassets-0.10.1.tar.gz 171666 SHA256 8e7dedd8032a963ef7e55e670cc109927e1f153b35cf8e9634617d0c6ee93329 SHA512 2879630608c3bd6904bc9f7ab6eceae899df967856e6d7b6dd125106ca27635993bf34309e320a0deacdb3b31020b69d59b4f85afdeae259b4915557c5ae6134 WHIRLPOOL 315e0a0e836683d4750e176ce89fb929e4027f8a32dcf941d0c5faf3c356923ff7db9b8b19d41bd6741ba41c68fd9c96a8f16d7af98b8efdabcf2afeadbd4953
diff --git a/dev-python/webassets/metadata.xml b/dev-python/webassets/metadata.xml
new file mode 100644
index 00000000000..4fa00587b82
--- /dev/null
+++ b/dev-python/webassets/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>yngwin@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">miracle2k/webassets</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/webassets/webassets-0.10.1.ebuild b/dev-python/webassets/webassets-0.10.1.ebuild
new file mode 100644
index 00000000000..d9652ad22f1
--- /dev/null
+++ b/dev-python/webassets/webassets-0.10.1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+inherit distutils-r1
+
+DESCRIPTION="Asset management for Python web development"
+HOMEPAGE="https://github.com/miracle2k/webassets"
+SRC_URI="https://github.com/miracle2k/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/weberror/Manifest b/dev-python/weberror/Manifest
new file mode 100644
index 00000000000..bee7719f4d7
--- /dev/null
+++ b/dev-python/weberror/Manifest
@@ -0,0 +1,2 @@
+DIST WebError-0.10.3.tar.gz 81126 SHA256 a6cb354ff921aad008336599b5e56622ebbe8c76d86985e22af262e6f7242f3b SHA512 a0540429ca602e56c746887fb481e2ed7f8116318267457ded7cfb2b094bb5090be874c4b13fe369c7dc41ba602dea8af444e97c6825ae33b2976d97cf00defe WHIRLPOOL 6fc0179fc8cc05606ca1c79d88d9cb928cf66b65612fbc0de2308a647c3393ceb457b2ddf70af8054d90e2b5ded41c7a898d5ba5332eb287eecd43a0641cd2e3
+DIST WebError-0.11.tar.gz 91520 SHA256 b9d93480d28439a168098215a499b3789d08fcba3c6d24675d4c1f5e16e196cb SHA512 9e2cb470b1bc92a4d6344e4a5577504cc899184f0a53a9d0714fa00adb30e6b33d8568a26df735f6a71856ff2fba1ec6ed73c7d307a8a308e06e9d5c88813cb4 WHIRLPOOL 1af754a3b1a0346d9a55b5477ea644ab0f05a1a62705c52d232eb6a2418d5dc790183177dfbe3d916eb297c6507e02138bb3d849d1de0e1287bb2aab541a727f
diff --git a/dev-python/weberror/metadata.xml b/dev-python/weberror/metadata.xml
new file mode 100644
index 00000000000..1b97c1c396c
--- /dev/null
+++ b/dev-python/weberror/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">WebError</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/weberror/weberror-0.10.3-r1.ebuild b/dev-python/weberror/weberror-0.10.3-r1.ebuild
new file mode 100644
index 00000000000..d537b5e859e
--- /dev/null
+++ b/dev-python/weberror/weberror-0.10.3-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="WebError"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Web Error handling and exception catching"
+HOMEPAGE="http://pypi.python.org/pypi/WebError"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/paste-1.7.1[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/tempita[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/webtest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/weberror/weberror-0.11.ebuild b/dev-python/weberror/weberror-0.11.ebuild
new file mode 100644
index 00000000000..34ae811f7a2
--- /dev/null
+++ b/dev-python/weberror/weberror-0.11.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="WebError"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Web Error handling and exception catching"
+HOMEPAGE="http://pypi.python.org/pypi/WebError"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/paste-1.7.1[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/tempita[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/webtest[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ nosetests -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/webhelpers/Manifest b/dev-python/webhelpers/Manifest
new file mode 100644
index 00000000000..70d41d31b93
--- /dev/null
+++ b/dev-python/webhelpers/Manifest
@@ -0,0 +1 @@
+DIST WebHelpers-1.3.tar.gz 729963 SHA256 ea86f284e929366b77424ba9a89341f43ae8dee3cbeb8702f73bcf86058aa583 SHA512 ff1f19c5b878bdcb05664523d16fce1abb012957f00a97c06b3b5db581c6a361a2db5516b47a0e2b107bc9ba73270ccb323afb240cc67a34d6f15ce9462fad77 WHIRLPOOL dfc67dd1c8ac955bf9cc7584db9b629a3d7525a98e8f75e2f8fe5042c5d2cd2d5f70f694ce69aba8eaa87571ead558ef31501768b1515e0af931a6c9c145437f
diff --git a/dev-python/webhelpers/files/mime9ad434b.patch b/dev-python/webhelpers/files/mime9ad434b.patch
new file mode 100644
index 00000000000..5e37216f384
--- /dev/null
+++ b/dev-python/webhelpers/files/mime9ad434b.patch
@@ -0,0 +1,14 @@
+https://bitbucket.org/bbangert/webhelpers/commits/9ad434bec9a16c06c1cfeed38cde02f00a95685d
+diff -ur WebHelpers-1.3.orig/webhelpers/mimehelper.py WebHelpers-1.3/webhelpers/mimehelper.py
+--- webhelpers/mimehelper.py 2010-11-18 12:34:33.000000000 +0800
++++ webhelpers/mimehelper.py 2013-06-17 15:45:40.603257640 +0800
+@@ -110,8 +110,7 @@
+ if '.' in last_part:
+ has_extension = True
+ if 'HTTP_ACCEPT' in self.env:
+- possible_from_accept_header = webob.acceptparse.MIMEAccept('ACCEPT',
+- self.env['HTTP_ACCEPT'])
++ possible_from_accept_header = webob.acceptparse.MIMEAccept(self.env['HTTP_ACCEPT'])
+ if has_extension == False:
+ if possible_from_accept_header is None:
+ return self._set_response_content_type(content_type)
diff --git a/dev-python/webhelpers/metadata.xml b/dev-python/webhelpers/metadata.xml
new file mode 100644
index 00000000000..b1cf2fcc4fd
--- /dev/null
+++ b/dev-python/webhelpers/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">WebHelpers</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/webhelpers/webhelpers-1.3-r1.ebuild b/dev-python/webhelpers/webhelpers-1.3-r1.ebuild
new file mode 100644
index 00000000000..8f3b4a5b6dc
--- /dev/null
+++ b/dev-python/webhelpers/webhelpers-1.3-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="WebHelpers"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Web Helpers"
+HOMEPAGE="http://webhelpers.groovie.org/ http://pypi.python.org/pypi/WebHelpers"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+RDEPEND=">=dev-python/markupsafe-0.9.2[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/routes[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # https://bitbucket.org/bbangert/webhelpers/issue/67
+ sed \
+ -e '/import datetime/a import os' \
+ -e 's:"/tmp/feed":os.environ.get("TMPDIR", "/tmp") + "/feed":' \
+ -i tests/test_feedgenerator.py || die "sed failed"
+
+ epatch "${FILESDIR}"/mime9ad434b.patch
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake html -C docs
+}
+
+python_test() {
+ nosetests || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ if use doc; then
+ pushd docs/_build/html > /dev/null
+ docinto html
+ insinto /usr/share/doc/${PF}/html
+ doins -r [a-z]* _static || die "Installation of documentation failed"
+ popd > /dev/null
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webob/Manifest b/dev-python/webob/Manifest
new file mode 100644
index 00000000000..f50f79d7357
--- /dev/null
+++ b/dev-python/webob/Manifest
@@ -0,0 +1,2 @@
+DIST WebOb-1.4.1.tar.gz 671495 SHA256 12f8b98390befc47336d2c0e5bad9cc48609d808eabb3f8675dc1027a3a9e9db SHA512 71be0389018289884158c5f3b99d1e1185bd29ab975ea59008fd71bf1188d25130e1852422dcedf7ffe3303d87caf02d62a143229b9ae196dd62f64deb7f7328 WHIRLPOOL d2803552592813c4b5ea4291e9a3aac6aa26397b903a8372f8e1fd601d46fb5f7105dcfd42e14de974a352e75945bf61945e0f36928d6a3fd8afa8bdd195d35b
+DIST WebOb-1.4.tar.gz 633302 SHA256 0819838204e2a6823e42bf2227898fdf3f306f7619bf328e25855a0d1ca20399 SHA512 0cf1a21b7d863c355e445f0e9f898ffb1c4c39099532a86d830c1be5d84efc0c6f3e8151a283cfd1cb5bebcb1fe78a2b6b269cbc130863679a017565a2539a37 WHIRLPOOL abfc696b7f50a74edd3d84099365f802f5be0eddf56a1c128f6e026c30bdeddc1b58c6bb45d4281ee4fb3d7937888d8065b01f93a363c82cd9cd1834eb2378da
diff --git a/dev-python/webob/files/webob-1.0.7-tests.patch b/dev-python/webob/files/webob-1.0.7-tests.patch
new file mode 100644
index 00000000000..a86f88c69a9
--- /dev/null
+++ b/dev-python/webob/files/webob-1.0.7-tests.patch
@@ -0,0 +1,27 @@
+https://bitbucket.org/ianb/webob/issue/11
+https://bitbucket.org/ianb/webob/changeset/145b64e724eb
+
+--- tests/test_misc.py
++++ tests/test_misc.py
+@@ -130,7 +130,8 @@
+
+
+ def test_multidict_cgi():
+- fs = cgi.FieldStorage()
++ env = {'QUERY_STRING': ''}
++ fs = cgi.FieldStorage(environ=env)
+ fs.filename = '\xc3\xb8'
+ plain = MultiDict(key='\xc3\xb8', fs=fs)
+ ua = UnicodeMultiDict(multi=plain, encoding='utf-8')
+--- tests/test_multidict.py
++++ tests/test_multidict.py
+@@ -187,7 +187,8 @@
+ d = self._get_instance()
+ d.decode_keys = True
+
+- fs = cgi.FieldStorage()
++ env = {'QUERY_STRING': ''}
++ fs = cgi.FieldStorage(environ=env)
+ fs.name = 'a'
+ self.assertEqual(d._decode_value(fs).name, 'a')
+
diff --git a/dev-python/webob/files/webob-1.2.3-tests.patch b/dev-python/webob/files/webob-1.2.3-tests.patch
new file mode 100644
index 00000000000..4fc3fbab7c3
--- /dev/null
+++ b/dev-python/webob/files/webob-1.2.3-tests.patch
@@ -0,0 +1,24 @@
+From 3a2c16f2f72dbca5ddfce7f649daf426c2125fed Mon Sep 17 00:00:00 2001
+From: Aaron DeVore <aaron.devore@gmail.com>
+Date: Tue, 30 Oct 2012 11:55:30 -0700
+Subject: [PATCH] Fix issue #75: depending on dict order in test_headers2
+
+---
+ tests/test_request.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_request.py b/tests/test_request.py
+index f219d36..3e38e7a 100644
+--- a/tests/test_request.py
++++ b/tests/test_request.py
+@@ -2662,7 +2662,7 @@ def test_headers2(self):
+ self.assertTrue(i in r.headers and
+ 'HTTP_'+i.upper().replace('-', '_') in r.environ)
+ r.headers = {'Server':'Apache'}
+- self.assertEqual(list(r.environ.keys()), ['a', 'HTTP_SERVER'])
++ self.assertEqual(set(r.environ.keys()), set(['a', 'HTTP_SERVER']))
+
+ def test_host_url(self):
+ # Request has a read only property host_url that combines several
+--
+1.8.1.6
diff --git a/dev-python/webob/metadata.xml b/dev-python/webob/metadata.xml
new file mode 100644
index 00000000000..b66579ea54e
--- /dev/null
+++ b/dev-python/webob/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">WebOb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/webob/webob-1.4.1.ebuild b/dev-python/webob/webob-1.4.1.ebuild
new file mode 100644
index 00000000000..0fa903e3a6c
--- /dev/null
+++ b/dev-python/webob/webob-1.4.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN=WebOb
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="WSGI request and response object"
+HOMEPAGE="http://webob.org/ http://pypi.python.org/pypi/WebOb"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" setup.py build_sphinx || die
+ fi
+}
+
+python_test() {
+ nosetests -w tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webob/webob-1.4.ebuild b/dev-python/webob/webob-1.4.ebuild
new file mode 100644
index 00000000000..819a069df05
--- /dev/null
+++ b/dev-python/webob/webob-1.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN=WebOb
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="WSGI request and response object"
+HOMEPAGE="http://webob.org/ http://pypi.python.org/pypi/WebOb"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" setup.py build_sphinx || die
+ fi
+}
+
+python_test() {
+ nosetests -w tests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/sphinx/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webpy/Manifest b/dev-python/webpy/Manifest
new file mode 100644
index 00000000000..a47e989306e
--- /dev/null
+++ b/dev-python/webpy/Manifest
@@ -0,0 +1 @@
+DIST web.py-0.37.tar.gz 90232 SHA256 748c7e99ad9e36f62ea19f7965eb7dd7860b530e8f563ed60ce3e53e7409a550 SHA512 766e24d9df6ab1c3a214156794a19c23fcb16ca7a4ee7586a7723f802eab2ba0b8cda4653c2504ef63f773609436ac12dfd40bbe6cf20e2f93bf95493f041628 WHIRLPOOL 4782dc9b4b894ee1787478a77c1afe193096046feeebbe5ce4f904c26d22d5814c606d2d0112614de1ab19851a2e40a78e56f74c1dc59f94ec9462fd33842110
diff --git a/dev-python/webpy/metadata.xml b/dev-python/webpy/metadata.xml
new file mode 100644
index 00000000000..6ee684afdb0
--- /dev/null
+++ b/dev-python/webpy/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ web.py provides small and simple web framework for
+ python. It is a convenient tool for small sized
+ websites.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-python/webpy/webpy-0.37-r1.ebuild b/dev-python/webpy/webpy-0.37-r1.ebuild
new file mode 100644
index 00000000000..99227579bdd
--- /dev/null
+++ b/dev-python/webpy/webpy-0.37-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="web.py"
+
+DESCRIPTION="A small and simple web framework for Python"
+HOMEPAGE="http://www.webpy.org http://pypi.python.org/pypi/web.py"
+SRC_URI="http://www.webpy.org/static/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/web.py-${PV}"
+
+python_test() {
+ local return_status="0" test tests="db http net template utils"
+ for test in ${tests}; do
+ echo "Running doctests in ${test}.py..."
+ "${PYTHON}" web/${test}.py || return_status="$?"
+ done
+ return "${return_status}"
+}
diff --git a/dev-python/webpy/webpy-0.37.ebuild b/dev-python/webpy/webpy-0.37.ebuild
new file mode 100644
index 00000000000..1380a9b3378
--- /dev/null
+++ b/dev-python/webpy/webpy-0.37.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
+
+inherit distutils
+
+MY_PN="web.py"
+
+DESCRIPTION="A small and simple web framework for Python"
+HOMEPAGE="http://www.webpy.org http://pypi.python.org/pypi/web.py"
+SRC_URI="http://www.webpy.org/static/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="amd64 hppa x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/web.py-${PV}"
+
+PYTHON_MODNAME="web"
+
+src_test() {
+ testing() {
+ local return_status="0" test tests="db http net template utils"
+ for test in ${tests}; do
+ echo "Running doctests in ${test}.py..."
+ "$(PYTHON)" web/${test}.py || return_status="$?"
+ done
+
+ return "${return_status}"
+ }
+ python_execute_function testing
+}
diff --git a/dev-python/websocket-client/Manifest b/dev-python/websocket-client/Manifest
new file mode 100644
index 00000000000..99d29e31bba
--- /dev/null
+++ b/dev-python/websocket-client/Manifest
@@ -0,0 +1,4 @@
+DIST websocket-client-0.21.0.tar.gz 190523 SHA256 0e279c371df0bc1b3a890a31e90631e03c11ea596e00fd53524f03a5fb972d3d SHA512 cd6ae58226890dd94e03d3d348a5ec83c1b7a5a0e8b353cf28db9b5a78131ecbc84755ba9925fe9c90a90388f03d6e9a535960a13c53536f6b4fe4effbbc736c WHIRLPOOL 4732ad6e839e14f68a0a2070171f724a912f00d2d76003cb23a6253560a2aab51a34525e0cf98ebd7e045e326052b8aa4c7497d384e807f493f99a125e323dd0
+DIST websocket-client-0.29.0.tar.gz 190908 SHA256 abfcb1a8dff4df1b12db4c227d3f4f38a68b42c35a8bca9d2bee10f8eae2b434 SHA512 012cb3eed454a86aa3ded2beede283600df4db0dcd4e2ce4fd25b10e1127c39e7ff7bb916f11f0349a0473eaa742a931fae0e5c86fcda23418827e29a4069dca WHIRLPOOL 0b48022bfd4718c2a033e818c82b4122644564e1c88d8cd6633ebb5e220858997e9851be48ad50f4a0a55ba7c2247e5ef07a957b85921e727c162245bdfa3bbc
+DIST websocket-client-0.31.0.tar.gz 192146 SHA256 ddbba49fe9f185dec6a80a536831fa781e10e1d946eef20ebcccd75b943c6ea6 SHA512 899fb3534f76f044b5f550282a05df7d58423b1108cc3134a7b1701c03c673c5e036435218a2931330e800b3060e287f7ad87133e54b0735db1c1581e219f222 WHIRLPOOL d440db59c5f5290e81f614eb1d68d66843b3f06b7c4d7de45c61675143d26f8b507d89c8bd76923dac09f5a117c98ed8239a4acf9ee84a9e0955850c0afe5390
+DIST websocket-client-0.32.0.tar.gz 192180 SHA256 cb3ab95617ed2098d24723e3ad04ed06c4fde661400b96daa1859af965bfe040 SHA512 648b5ea6bbf5b402004d0dcaa3d5242580efb7803a6cbadc20448fcdedb0097508d747c6ba67d4df9e289f3917ad6e09698b0fbf1330e073e14d369cfdb98bd3 WHIRLPOOL b24791a7c3eb2994f60c5743eb858dd0b02a0c3ea36a70b1c4a0434276a19a4a73893fcf1aac6cc05ea489469cdc6a9d4d4cd1be4e906817046b711e5c3d083e
diff --git a/dev-python/websocket-client/metadata.xml b/dev-python/websocket-client/metadata.xml
new file mode 100644
index 00000000000..726606ed641
--- /dev/null
+++ b/dev-python/websocket-client/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">websocket-client</remote-id>
+ <remote-id type="github">liris/websocket-client</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/websocket-client/websocket-client-0.21.0.ebuild b/dev-python/websocket-client/websocket-client-0.21.0.ebuild
new file mode 100644
index 00000000000..889ab1c8bcb
--- /dev/null
+++ b/dev-python/websocket-client/websocket-client-0.21.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 pypy )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="WebSocket client for python. hybi13 is supported"
+HOMEPAGE="https://github.com/liris/websocket-client"
+SRC_URI="https://github.com/liris/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' 'python2*' )
+"
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/websocket-client/websocket-client-0.29.0.ebuild b/dev-python/websocket-client/websocket-client-0.29.0.ebuild
new file mode 100644
index 00000000000..92d7d679d38
--- /dev/null
+++ b/dev-python/websocket-client/websocket-client-0.29.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+MY_PN=${PN//-/_}
+
+DESCRIPTION="WebSocket client for python. hybi13 is supported"
+HOMEPAGE="https://github.com/liris/websocket-client"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' 'python2*' )
+"
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/websocket-client/websocket-client-0.31.0.ebuild b/dev-python/websocket-client/websocket-client-0.31.0.ebuild
new file mode 100644
index 00000000000..92d7d679d38
--- /dev/null
+++ b/dev-python/websocket-client/websocket-client-0.31.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+MY_PN=${PN//-/_}
+
+DESCRIPTION="WebSocket client for python. hybi13 is supported"
+HOMEPAGE="https://github.com/liris/websocket-client"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' 'python2*' )
+"
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/websocket-client/websocket-client-0.32.0.ebuild b/dev-python/websocket-client/websocket-client-0.32.0.ebuild
new file mode 100644
index 00000000000..92d7d679d38
--- /dev/null
+++ b/dev-python/websocket-client/websocket-client-0.32.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+MY_PN=${PN//-/_}
+
+DESCRIPTION="WebSocket client for python. hybi13 is supported"
+HOMEPAGE="https://github.com/liris/websocket-client"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' 'python2*' )
+"
+
+python_test() {
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/websockify/Manifest b/dev-python/websockify/Manifest
new file mode 100644
index 00000000000..7d7f912b8c8
--- /dev/null
+++ b/dev-python/websockify/Manifest
@@ -0,0 +1 @@
+DIST websockify-0.6.0.zip 312980 SHA256 09fd696fc528fcc915e66d43006c4e73e4e009233724d45e365ada1f8b01251c SHA512 f7792b0140fd5170b39dd0cabdf176ea8db43b148068ec336ddf61b70e166f6f935411901675c13657efee7e9cdf4de78bc74b0e371ce91811098b16a11a2915 WHIRLPOOL 46199706a3c8988aa7aec6018ee5defe50a289023132f48bd5d48ed486e17317b7b3a1661e367b818e2cd9445eabd3672f25155f1117ddb641be9ecb9a54ca46
diff --git a/dev-python/websockify/metadata.xml b/dev-python/websockify/metadata.xml
new file mode 100644
index 00000000000..07db39f04d7
--- /dev/null
+++ b/dev-python/websockify/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ WebSockets support for any application/server
+ </longdescription>
+ <upstream>
+ <remote-id type="github">kanaka/websockify</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/websockify/websockify-0.6.0.ebuild b/dev-python/websockify/websockify-0.6.0.ebuild
new file mode 100644
index 00000000000..265d0d051f5
--- /dev/null
+++ b/dev-python/websockify/websockify-0.6.0.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+SRC_URI="https://github.com/kanaka/${PN}/archive/v${PV}.zip -> ${P}.zip"
+DESCRIPTION="WebSockets support for any application/server"
+HOMEPAGE="https://github.com/kanaka/websockify"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
diff --git a/dev-python/webtest/Manifest b/dev-python/webtest/Manifest
new file mode 100644
index 00000000000..2469a75672e
--- /dev/null
+++ b/dev-python/webtest/Manifest
@@ -0,0 +1,4 @@
+DIST WebTest-1.4.3.zip 80008 SHA256 0439d951afdf6c58d19e0a83e30855d0bb7e35ab177d9261add71fc5a724b6ab SHA512 87436f182edc3178481f4ec3d073399784e353d6480790470891a18d3605c2bb5a1f4effe0ffa0ce241f1256e99f1a4e3e5fcd2896acb8931aeb60a88fa2bfa2 WHIRLPOOL e509a71a213b9085473536afb51142c4cd9fe99b52870139498fe5b68e8326e8b23df9af3502f0d3ebffbe0076165564d38ef143d9b229bb94b23bb857ca6fe9
+DIST WebTest-2.0.16.zip 88232 SHA256 24ad0c9ee377f16df4d0bd626a64a75eec901852ac788bdb70e0261bff0026eb SHA512 da09abba8ed52c8d673acf547f47df6919b534b33b746944610fc78bd3695f36e3718f89e68f8aec7852b6cf98da0f0b5500dfe9427fd7926e5304ad216eafbb WHIRLPOOL 68d392000c8767ef9b5d4cc657bd6e99ec75eb4cb20cacdabdcca87942894b290f957854fb7dfb7c9eb8312877575c4e4d258e78c05f985e972b02ee04ec2643
+DIST WebTest-2.0.17.zip 88435 SHA256 36457f708a57e4295a2c05aaf47b620b66e25429dd9170c59d0718ff7934a0b7 SHA512 5a1e26108af1cb5fc5db10bf10a48c98815ccacb84c692ecedfc6ef02427bedaa3bdfc466a89faa51c82474da2bd393aae5f17821c516966999c5d2e5f12628d WHIRLPOOL 2c7c504fd6087cc116f28de8113f456901535d6d098845bc1b3551264ee9ea5c7bc9fad4699015eecb974a0423edf60e0715d93025ed3d05da91a6235dc6e1fb
+DIST WebTest-2.0.18.zip 88440 SHA256 beb569e6d707cb4cd82c226c97b7e1f41cd62bae656d89e687107eef8376c7fd SHA512 98f61325a2cb0db3c0aec317f3acf8a741531fece33fa359615cdee8738cb2c4523156971c1fd420c900b0d3ece4adc15f2e77975f40376f0e58370ff7b5fe79 WHIRLPOOL 5057d1c1518656f4869a6baa41617815972044b91b2dbc8d56b2adcb379fefcf01de57b90cd7ee98664c004619f2170d5a6f0fd9a175a83ef758af0ee7d5c48c
diff --git a/dev-python/webtest/files/webtest-1.3-doctest-ellipsis.patch b/dev-python/webtest/files/webtest-1.3-doctest-ellipsis.patch
new file mode 100644
index 00000000000..38b01ae215b
--- /dev/null
+++ b/dev-python/webtest/files/webtest-1.3-doctest-ellipsis.patch
@@ -0,0 +1,38 @@
+diff --git a/docs/index.txt b/docs/index.txt
+index f472102..1edf711 100644
+--- a/docs/index.txt
++++ b/docs/index.txt
+@@ -271,7 +271,7 @@ Then you can submit:
+ >>> res = form.submit()
+ >>> # Or submit a button:
+ >>> res = form.submit('submit')
+- >>> print(res)
++ >>> print(res) # doctest:+ELLIPSIS
+ Response: 200 OK
+ Content-Type: text/plain
+ ...
+@@ -331,7 +331,7 @@ Examples:
+ <class 'BeautifulSoup.BeautifulSoup'>
+ >>> res.html.body.div.string
+ u'hey!'
+- >>> res.lxml
++ >>> res.lxml # doctest:+ELLIPSIS
+ <Element html at ...>
+ >>> res.lxml.xpath('//body/div')[0].text
+ 'hey!'
+@@ -343,13 +343,13 @@ Examples:
+ >>> res = TestResponse(content_type='application/xml',
+ ... body='<xml><message>hey!</message></xml>')
+ >>> res.request = TestRequest.blank('/')
+- >>> res.xml
++ >>> res.xml # doctest:+ELLIPSIS
+ <Element ...>
+ >>> res.xml[0].tag
+ 'message'
+ >>> res.xml[0].text
+ 'hey!'
+- >>> res.lxml
++ >>> res.lxml # doctest:+ELLIPSIS
+ <Element xml at ...>
+ >>> res.lxml[0].tag
+ 'message' \ No newline at end of file
diff --git a/dev-python/webtest/files/webtest-1.3.4-index_fixt.patch b/dev-python/webtest/files/webtest-1.3.4-index_fixt.patch
new file mode 100644
index 00000000000..5cb75c7ea13
--- /dev/null
+++ b/dev-python/webtest/files/webtest-1.3.4-index_fixt.patch
@@ -0,0 +1,13 @@
+--- /dev/null 2012-05-03 18:34:53.288000099 +0800
++++ docs/index_fixt.py 2012-05-07 00:07:55.392854158 +0800
+@@ -0,0 +1,10 @@
++# -*- coding: utf-8 -*-
++from doctest import ELLIPSIS
++
++
++def setup_test(test):
++ for example in test.examples:
++ example.options.setdefault(ELLIPSIS, 1)
++
++setup_test.__test__ = False
++
diff --git a/dev-python/webtest/files/webtest-1.4.3-doctest.patch b/dev-python/webtest/files/webtest-1.4.3-doctest.patch
new file mode 100644
index 00000000000..15b65c51707
--- /dev/null
+++ b/dev-python/webtest/files/webtest-1.4.3-doctest.patch
@@ -0,0 +1,15 @@
+This doctest relies on dictionary key order, so remove it.
+--- a/docs/index.txt
++++ b/docs/index.txt
+@@ -321,11 +321,6 @@
+ <Element html at ...>
+ >>> res.lxml.xpath('//body/div')[0].text
+ 'hey!'
+- >>> res = TestResponse(content_type='application/json',
+- ... body=b'{"a":1,"b":2}')
+- >>> res.request = TestRequest.blank('/')
+- >>> list(res.json.values())
+- [1, 2]
+ >>> res = TestResponse(content_type='application/xml',
+ ... body=b'<xml><message>hey!</message></xml>')
+ >>> res.request = TestRequest.blank('/')
diff --git a/dev-python/webtest/metadata.xml b/dev-python/webtest/metadata.xml
new file mode 100644
index 00000000000..3fcee65b5fb
--- /dev/null
+++ b/dev-python/webtest/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">WebTest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/webtest/webtest-1.4.3-r1.ebuild b/dev-python/webtest/webtest-1.4.3-r1.ebuild
new file mode 100644
index 00000000000..89f842048e9
--- /dev/null
+++ b/dev-python/webtest/webtest-1.4.3-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+MY_PN="WebTest"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Helper to test WSGI applications"
+HOMEPAGE="http://pythonpaste.org/webtest/ http://pypi.python.org/pypi/WebTest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ~ppc64 s390 sh sparc x86 ~x86-fbsd"
+IUSE="doc test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND=">=dev-python/webob-0.9.2[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyquery[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+PATCHES=( "${FILESDIR}/webtest-1.4.3-doctest.patch" )
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build docs html || die
+ fi
+}
+
+src_test() {
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ # Tests raise ImportErrors with our default PYTHONPATH.
+ unset PYTHONPATH
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ if [[ ${EPYTHON} == python3* ]]; then
+ rm -f "${D}$(python_get_sitedir)"/webtest/lint3.py
+ fi
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webtest/webtest-2.0.16.ebuild b/dev-python/webtest/webtest-2.0.16.ebuild
new file mode 100644
index 00000000000..d23c11372d0
--- /dev/null
+++ b/dev-python/webtest/webtest-2.0.16.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="WebTest"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Helper to test WSGI applications"
+HOMEPAGE="http://pythonpaste.org/webtest/ http://pypi.python.org/pypi/WebTest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ppc ppc64 x86"
+IUSE="doc test"
+
+#nose<1.3.0
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/waitress-0.8.5[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyquery[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/wsgiproxy2[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 )
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+# Makes testing easier; otherwise we get errors from pkg_resources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -s 's:intersphinx_mapping:_&:' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build docs html || die
+ fi
+}
+
+src_test() {
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ # Tests raise ImportErrors with our default PYTHONPATH.
+ local -x PYTHONPATH=
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webtest/webtest-2.0.17.ebuild b/dev-python/webtest/webtest-2.0.17.ebuild
new file mode 100644
index 00000000000..55993921182
--- /dev/null
+++ b/dev-python/webtest/webtest-2.0.17.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="WebTest"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Helper to test WSGI applications"
+HOMEPAGE="http://pythonpaste.org/webtest/ http://pypi.python.org/pypi/WebTest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+
+# nose<1.3.0 appears a leftover never updated in requires.txt. tests pass fine with latest
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/waitress-0.8.5[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyquery[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/wsgiproxy2[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 )
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+# Makes testing easier; otherwise we get errors from pkg_resources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -s 's:intersphinx_mapping:_&:' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build docs html || die
+ fi
+}
+
+python_test() {
+ # Tests raise ImportErrors with our default PYTHONPATH.
+ local -x PYTHONPATH=
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webtest/webtest-2.0.18.ebuild b/dev-python/webtest/webtest-2.0.18.ebuild
new file mode 100644
index 00000000000..0b9b7cadff0
--- /dev/null
+++ b/dev-python/webtest/webtest-2.0.18.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="WebTest"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Helper to test WSGI applications"
+HOMEPAGE="http://pythonpaste.org/webtest/ http://pypi.python.org/pypi/WebTest"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+
+# nose<1.3.0 appears a leftover never updated in requires.txt. tests pass fine with latest
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/waitress-0.8.5[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pyquery[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ dev-python/wsgiproxy2[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 )
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+# Makes testing easier; otherwise we get errors from pkg_resources.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Prevent un-needed d'loading during doc build
+ sed -s 's:intersphinx_mapping:_&:' -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ sphinx-build docs html || die
+ fi
+}
+
+python_test() {
+ # Tests raise ImportErrors with our default PYTHONPATH.
+ local -x PYTHONPATH=
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webut/Manifest b/dev-python/webut/Manifest
new file mode 100644
index 00000000000..8f0a74d26bc
--- /dev/null
+++ b/dev-python/webut/Manifest
@@ -0,0 +1 @@
+DIST webut_0.1-0.2.tar.gz 11142 SHA256 e133b6d8cd8d0c46290a2de3f59cb8f8ffb17301bf86fb5d318ad0ad21fea73b SHA512 14801e3546e17f07328faee1df6708050702de75454e4eb2ad1fca2d72faf9a3228082f3d82a01a2810ba0fe15dacaee8fb556adff811596a1349eea61faeaed WHIRLPOOL 6d2455c75ce02f9aecc9f182e7b209b3df76a70a9b0518f11d5c4d9f7147a35b511f63fab9ced584938511a3c7cb8918bb670f12c2ec8e0654475a4ddf6eb939
diff --git a/dev-python/webut/metadata.xml b/dev-python/webut/metadata.xml
new file mode 100644
index 00000000000..301d2207cc2
--- /dev/null
+++ b/dev-python/webut/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+</pkgmetadata>
diff --git a/dev-python/webut/webut-0.1.0.2-r1.ebuild b/dev-python/webut/webut-0.1.0.2-r1.ebuild
new file mode 100644
index 00000000000..7bef4ed2520
--- /dev/null
+++ b/dev-python/webut/webut-0.1.0.2-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 versionator
+
+MY_P=${PN}_$(replace_version_separator 2 '-')
+
+DESCRIPTION="Miscellaneous utilities for nevow and twisted.web programming"
+HOMEPAGE="http://www.inoi.fi/open/trac/webut"
+SRC_URI="mirror://debian/pool/main/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND=">=dev-python/nevow-0.9.18[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-2[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-3.0.1[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${PN}-$(get_version_component_range 1-2)"
+
+python_install_all() {
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/webut/webut-0.1.0.2.ebuild b/dev-python/webut/webut-0.1.0.2.ebuild
new file mode 100644
index 00000000000..4031e1365a0
--- /dev/null
+++ b/dev-python/webut/webut-0.1.0.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+
+inherit distutils versionator
+
+MY_P=${PN}_$(replace_version_separator 2 '-')
+
+DESCRIPTION="Miscellaneous utilities for nevow and twisted.web programming"
+HOMEPAGE="http://www.inoi.fi/open/trac/webut"
+SRC_URI="mirror://debian/pool/main/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc sparc x86"
+IUSE="examples"
+
+RDEPEND=">=dev-python/nevow-0.9.18
+ >=dev-python/twisted-core-2
+ >=dev-python/zope-interface-3.0.1"
+DEPEND="${RDEPEND}"
+RESTRICT_PYTHON_ABIS="3.*"
+
+S="${WORKDIR}/${PN}-$(get_version_component_range 1-2)"
+
+src_install() {
+ distutils_src_install
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+
+ rm -rf "${D}/examples"
+}
diff --git a/dev-python/wehjit/Manifest b/dev-python/wehjit/Manifest
new file mode 100644
index 00000000000..f2e26987233
--- /dev/null
+++ b/dev-python/wehjit/Manifest
@@ -0,0 +1 @@
+DIST wehjit-0.2.2.tar.gz 100515 SHA256 71e16919ff816bc06492647a7e3eda9619bb04ba8fb729f97106131126e9d1fb SHA512 f8fb2edeeb9e90315d3c8f1e9e7d73d556fcad780c4dea637599291b2094e292a42b6f3671407f3d9d88733894501796484fa05ac52f3c1f3e1cb29d376a87fb WHIRLPOOL a1909009f0445de5d7c323ee05ab39a76f127ab89d3c9a96205f125b88277e3068ea3e2b3548cbadb69ddab7c5cc17dd87d8895c948bdd4adc00cf06bd949009
diff --git a/dev-python/wehjit/files/wehjit-0.2.2-SkipTest.patch b/dev-python/wehjit/files/wehjit-0.2.2-SkipTest.patch
new file mode 100644
index 00000000000..057d70747e7
--- /dev/null
+++ b/dev-python/wehjit/files/wehjit-0.2.2-SkipTest.patch
@@ -0,0 +1,23 @@
+diff -ur wehjit-0.2.2.orig/wehjit/collection.py wehjit-0.2.2/wehjit/collection.py
+--- wehjit/collection.py 2010-02-11 16:26:14.000000000 +0800
++++ wehjit/collection.py 2012-11-08 14:24:40.326482713 +0800
+@@ -22,6 +22,11 @@
+ Collect widget plugins together in a `Collection`.
+ """
+
++import sys
++if sys.version_info[:2] == (2, 7):
++ import unittest
++else:
++ import unittest2 as unittest
+ import inspect
+ import os
+ from os import path
+@@ -130,6 +135,7 @@
+ """
+ return name in self.__plugins
+
++ @unittest.skip("Plugin not in gentoo")
+ def __getitem__(self, name):
+ """
+ Return the plugin named ``name``.
diff --git a/dev-python/wehjit/metadata.xml b/dev-python/wehjit/metadata.xml
new file mode 100644
index 00000000000..a0dee8239a9
--- /dev/null
+++ b/dev-python/wehjit/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<herd>python</herd>
+<maintainer>
+ <email>andreis.vinogradovs@gmail.com</email>
+</maintainer>
+<maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+</maintainer>
+<longdescription>
+ wehjit is a Python library for for building XHTML widgets for web
+ applications and web pages. It encapsulates the XHTML
+ (a Genshi XML template), CSS, and JavaScript for each widget into a plugin
+</longdescription>
+</pkgmetadata>
diff --git a/dev-python/wehjit/wehjit-0.2.2-r1.ebuild b/dev-python/wehjit/wehjit-0.2.2-r1.ebuild
new file mode 100644
index 00000000000..41f5f303bcb
--- /dev/null
+++ b/dev-python/wehjit/wehjit-0.2.2-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python web-widget library"
+HOMEPAGE="http://jderose.fedorapeople.org/wehjit"
+SRC_URI="http://jderose.fedorapeople.org/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="test"
+
+RDEPEND="dev-python/genshi
+ dev-python/assets[${PYTHON_USEDEP}]
+ dev-python/paste[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}"
+
+DOCS=( README NEWS )
+
+PATCHES=( "${FILESDIR}"/${P}-SkipTest.patch )
+
+python_test() {
+ if [[ "${EPYTHON:6:3}" == '2.6' ]]; then
+ nosetests -I test_app* -e=*getitem
+ else
+ nosetests
+ fi
+}
diff --git a/dev-python/werkzeug/Manifest b/dev-python/werkzeug/Manifest
new file mode 100644
index 00000000000..f0d48f5a2d0
--- /dev/null
+++ b/dev-python/werkzeug/Manifest
@@ -0,0 +1,5 @@
+DIST Werkzeug-0.10.1.tar.gz 1134481 SHA256 9cf783990b1a99173e707a5768610800aa87775e9d86e211d17180d5b6c245ab SHA512 f7175d03f564385c7556e6f9f4195c0c2643510490f28a3a33fd4e2c4f3f2fcc408c3dd6b56644a6fa5cd4e22639cb3f51ce71081c36704f90ce3cbfa0083cdc WHIRLPOOL 19bdaa872f1032bc43d069d167da15f5094054caa02ac3b3971600a27a9bdb0f83bcede720360cb4da36db10fe0c1ed48d4e8a2051cdb2e63df07a5d37d8b9ac
+DIST Werkzeug-0.10.4.tar.gz 1137282 SHA256 9d2771e4c89be127bc4bac056ab7ceaf0e0064c723d6b6e195739c3af4fd5c1d SHA512 d1285521f144a569f86e8f4089fe8001f60dd4ffd87856f761338be81bc328adc5eca5bb7cd06b4f9c96e6e46dc1a283198f37a70033ca78183915c3da2c4f47 WHIRLPOOL c3f3a21550e26407db28470cf539c8060c01359724613993b387f0a54435dcefc14cfbf7e4b12839e8f9b3a1421e34183f20d2d1e36a4106544ac76cd2ac22b1
+DIST Werkzeug-0.10.tar.gz 1133931 SHA256 9a97a6fcf87390172748da9e5250710b352dff18e979db925d276112cdcfa7ac SHA512 fc9872892ce02b3501a0edc0ea25a1edd793af61e0c268de80e465fb6ecee6f95c323a624fb2f71903c28a4b743012e3a48d23652172e7c4bc7305c797d4fee5 WHIRLPOOL 77a6a71a9c8d8ea55970f8a30569bf2964ebdb762c97fd8d92516a08aac1a53efcb115ad0ee10ee952be93b4732067680844a463d33ff69207454f2046594b3f
+DIST Werkzeug-0.9.4.tar.gz 1126353 SHA256 c1baf7a3e8be70f34d931ee173283f406877bd3d17f372bbe82318a5b3c510cc SHA512 3d43ecac7c4a710bb22a0b829925d0913ac36b98e63ee1000221b724f9f06d92f98716194f26fb762b2ba99cbb82b9d23ff4d23dbf9ac154063452c56f6290dd WHIRLPOOL 649336fdfdf6da0ebf2ea906faf9f40a1d13dabf31ecfe189fd7646cf32ba1f73aabbccfb6574502465347d70d2612f75ea20eb1c9b19602317c64279112990b
+DIST Werkzeug-0.9.6.tar.gz 1128428 SHA256 7f11e7e2e73eb22677cac1b11113eb6106f66cedef13d140e83cf6563c90b79c SHA512 0b36df25d5f69a0353f7a9321b9197ace2926b6d8e983a91ef372c270ff51462f7d86184447a5f74b4ad05ffdc6411098f77b45a4f1c906dd525d7edf220399c WHIRLPOOL db153036e9dc36c70239001a6b451adeaafa3819f4903bb8c297bb4313c9a064926a2aad6e4457810b53796b3e492228a9ee1ec165fe5dce0522ab0d2c7407f9
diff --git a/dev-python/werkzeug/metadata.xml b/dev-python/werkzeug/metadata.xml
new file mode 100644
index 00000000000..ae3c03dafb1
--- /dev/null
+++ b/dev-python/werkzeug/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>python</herd>
+<longdescription>
+ Werkzeug is a WSGI utility library. It can serve as the basis for a
+ custom framework.
+</longdescription>
+<upstream>
+ <remote-id type="pypi">Werkzeug</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-python/werkzeug/werkzeug-0.10.1.ebuild b/dev-python/werkzeug/werkzeug-0.10.1.ebuild
new file mode 100644
index 00000000000..3f47a9c45ce
--- /dev/null
+++ b/dev-python/werkzeug/werkzeug-0.10.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Werkzeug"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Collection of various utilities for WSGI applications"
+HOMEPAGE="http://werkzeug.pocoo.org/ http://pypi.python.org/pypi/Werkzeug"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/requests[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/werkzeug/werkzeug-0.10.4.ebuild b/dev-python/werkzeug/werkzeug-0.10.4.ebuild
new file mode 100644
index 00000000000..3f47a9c45ce
--- /dev/null
+++ b/dev-python/werkzeug/werkzeug-0.10.4.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Werkzeug"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Collection of various utilities for WSGI applications"
+HOMEPAGE="http://werkzeug.pocoo.org/ http://pypi.python.org/pypi/Werkzeug"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/requests[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/werkzeug/werkzeug-0.10.ebuild b/dev-python/werkzeug/werkzeug-0.10.ebuild
new file mode 100644
index 00000000000..3f47a9c45ce
--- /dev/null
+++ b/dev-python/werkzeug/werkzeug-0.10.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Werkzeug"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Collection of various utilities for WSGI applications"
+HOMEPAGE="http://werkzeug.pocoo.org/ http://pypi.python.org/pypi/Werkzeug"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/requests[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/werkzeug/werkzeug-0.9.4.ebuild b/dev-python/werkzeug/werkzeug-0.9.4.ebuild
new file mode 100644
index 00000000000..ebddfdc7c2d
--- /dev/null
+++ b/dev-python/werkzeug/werkzeug-0.9.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Werkzeug"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Collection of various utilities for WSGI applications"
+HOMEPAGE="http://werkzeug.pocoo.org/ http://pypi.python.org/pypi/Werkzeug"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/werkzeug/werkzeug-0.9.6.ebuild b/dev-python/werkzeug/werkzeug-0.9.6.ebuild
new file mode 100644
index 00000000000..64675839e40
--- /dev/null
+++ b/dev-python/werkzeug/werkzeug-0.9.6.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Werkzeug"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Collection of various utilities for WSGI applications"
+HOMEPAGE="http://werkzeug.pocoo.org/ http://pypi.python.org/pypi/Werkzeug"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND="dev-python/simplejson[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/wheel/Manifest b/dev-python/wheel/Manifest
new file mode 100644
index 00000000000..be4417b944e
--- /dev/null
+++ b/dev-python/wheel/Manifest
@@ -0,0 +1 @@
+DIST wheel-0.24.0.tar.gz 50597 SHA256 ef832abfedea7ed86b6eae7400128f88053a1da81a37c00613b1279544d585aa SHA512 9990e6bb6e42eebdac26ce75cee13e3b3da293520b2b25fad6dd328b920ce484bcf238ab7f9092d4ac565e26833b164b1ad5b8b258c824ff07daede127b17283 WHIRLPOOL faf13ddf756910558fd13d3b9eae399e488cd1938998c58a1ac3117aa7843480da5aab7c8454d67596cac8f524e23c4465e0ee9d2499a6af4afd2017c6b5314d
diff --git a/dev-python/wheel/metadata.xml b/dev-python/wheel/metadata.xml
new file mode 100644
index 00000000000..5f34195aa2a
--- /dev/null
+++ b/dev-python/wheel/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">wheel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wheel/wheel-0.24.0.ebuild b/dev-python/wheel/wheel-0.24.0.ebuild
new file mode 100644
index 00000000000..9d7951f0b55
--- /dev/null
+++ b/dev-python/wheel/wheel-0.24.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A built-package format for Python"
+HOMEPAGE="https://pypi.python.org/pypi/wheel"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
diff --git a/dev-python/whirlpool/Manifest b/dev-python/whirlpool/Manifest
new file mode 100644
index 00000000000..9c9c4c88559
--- /dev/null
+++ b/dev-python/whirlpool/Manifest
@@ -0,0 +1 @@
+DIST Whirlpool-0.3.tar.gz 34508 SHA256 27702b350b0cb6ea944cbe048419b48e0a66186fd89e0ef1b293d92dbd05f551 SHA512 d9fed84ff0af885534e70f537c0c17f19ad46d31b2b1d77749328e6cba37a805bb8e178539d09a479b0d7a7e93d11f69858db5b3fdc6c3fad9a89fc727004770 WHIRLPOOL 6c25f8fbeec916e65b594da51a28cabbc6a982e82eea3a0d76e71b8a9b46d98cef0f8d733e5c43d0716f878c9a86177918ebba6612d4007777362e53956604ca
diff --git a/dev-python/whirlpool/files/tests.py b/dev-python/whirlpool/files/tests.py
new file mode 100644
index 00000000000..521148b33ed
--- /dev/null
+++ b/dev-python/whirlpool/files/tests.py
@@ -0,0 +1,96 @@
+import unittest
+
+import whirlpool
+
+from binascii import b2a_hex
+
+
+results = {
+ 'empty' : '19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3',
+ 'tqbfjotld' : 'b97de512e91e3828b40d2b0fdce9ceb3c4a71f9bea8d88e75c4fa854df36725fd2b52eb6544edcacd6f8beddfea403cb55ae31f03ad62a5ef54e42ee82c3fb35',
+ 'tqbfjotle' : 'c27ba124205f72e6847f3e19834f925cc666d0974167af915bb462420ed40cc50900d85a1f923219d832357750492d5c143011a76988344c2635e69d06f2d38c',
+ 'tqbf' : '317edc3c5172ea5987902aa9c4f1defedf4d5aa59209bdf7574cc6da0039852c24b8da70ecb07997ff83e86d32d2851215d3dcbd6bb9736bdef21c349d483e6d',
+}
+
+
+class TestWhirlpool(unittest.TestCase):
+
+ def test_hash_empty(self):
+ self.assertEqual(b2a_hex(whirlpool.hash('')), results['empty'])
+
+ def test_hash_fox(self):
+ self.assertEqual(
+ b2a_hex(whirlpool.hash('The quick brown fox jumps over the lazy dog')),
+ results['tqbfjotld'])
+ self.assertEqual(
+ b2a_hex(whirlpool.hash('The quick brown fox jumps over the lazy eog')),
+ results['tqbfjotle'])
+
+ def test_new_empty(self):
+ wp = whirlpool.new()
+ self.assertEqual(b2a_hex(wp.digest()), results['empty'])
+ self.assertEqual(wp.hexdigest(), results['empty'])
+
+ def test_new_fox(self):
+ wp1 = whirlpool.new('The quick brown fox jumps over the lazy dog')
+ self.assertEqual(b2a_hex(wp1.digest()), results['tqbfjotld'])
+ self.assertEqual(wp1.hexdigest(), results['tqbfjotld'])
+
+ wp2 = whirlpool.new('The quick brown fox jumps over the lazy eog')
+ self.assertEqual(b2a_hex(wp2.digest()), results['tqbfjotle'])
+ self.assertEqual(wp2.hexdigest(), results['tqbfjotle'])
+
+ def test_update_copy(self):
+ wp1 = whirlpool.new()
+ wp2 = wp1.copy()
+ wp1.update('The quick brown fox')
+ wp3 = wp1.copy()
+
+ self.assertEqual(b2a_hex(wp1.digest()), results['tqbf'])
+ self.assertEqual(wp1.hexdigest(), results['tqbf'])
+
+ self.assertEqual(b2a_hex(wp2.digest()), results['empty'])
+ self.assertEqual(wp2.hexdigest(), results['empty'])
+
+ self.assertEqual(b2a_hex(wp3.digest()), results['tqbf'])
+ self.assertEqual(wp3.hexdigest(), results['tqbf'])
+
+ wp1.update(' jumps over the lazy dog')
+
+ self.assertEqual(b2a_hex(wp1.digest()), results['tqbfjotld'])
+ self.assertEqual(wp1.hexdigest(), results['tqbfjotld'])
+
+ self.assertEqual(b2a_hex(wp2.digest()), results['empty'])
+ self.assertEqual(wp2.hexdigest(), results['empty'])
+
+ self.assertEqual(b2a_hex(wp3.digest()), results['tqbf'])
+ self.assertEqual(wp3.hexdigest(), results['tqbf'])
+
+ wp3.update(' jumps over the lazy eog')
+
+ self.assertEqual(b2a_hex(wp1.digest()), results['tqbfjotld'])
+ self.assertEqual(wp1.hexdigest(), results['tqbfjotld'])
+
+ self.assertEqual(b2a_hex(wp2.digest()), results['empty'])
+ self.assertEqual(wp2.hexdigest(), results['empty'])
+
+ self.assertEqual(b2a_hex(wp3.digest()), results['tqbfjotle'])
+ self.assertEqual(wp3.hexdigest(), results['tqbfjotle'])
+
+ def test_digest_size(self):
+ wp = whirlpool.new()
+ self.assertEqual(wp.digest_size, 64)
+ with self.assertRaisesRegexp(AttributeError,
+ 'digest_size.*not writable'):
+ wp.digest_size = 32
+
+ def test_block_size(self):
+ wp = whirlpool.new()
+ self.assertEqual(wp.block_size, 64)
+ with self.assertRaisesRegexp(AttributeError,
+ 'block_size.*not writable'):
+ wp.block_size = 32
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dev-python/whirlpool/metadata.xml b/dev-python/whirlpool/metadata.xml
new file mode 100644
index 00000000000..67014b12f25
--- /dev/null
+++ b/dev-python/whirlpool/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">Whirlpool</remote-id>
+ <remote-id type="github">radiosilence/python-whirlpool</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/whirlpool/whirlpool-0.3-r1.ebuild b/dev-python/whirlpool/whirlpool-0.3-r1.ebuild
new file mode 100644
index 00000000000..bbf016d5c6d
--- /dev/null
+++ b/dev-python/whirlpool/whirlpool-0.3-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="Whirlpool"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Bindings for whirlpool hash reference implementation"
+HOMEPAGE="https://pypi.python.org/pypi/Whirlpool https://github.com/radiosilence/python-whirlpool"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="public-domain"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}"/${MY_P}
+
+python_prepare_all() {
+ sed \
+ -e "/data_files/s:whirlpool:share/whirlpool:g" \
+ -i setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ ${PYTHON} "${FILESDIR}"/tests.py || die
+}
diff --git a/dev-python/whisper/Manifest b/dev-python/whisper/Manifest
new file mode 100644
index 00000000000..73445e31e2c
--- /dev/null
+++ b/dev-python/whisper/Manifest
@@ -0,0 +1 @@
+DIST whisper-0.9.13.tar.gz 14028 SHA256 6ba106b7271a69ead72b63f6dd5192aa1816cbec376caa491b4e63af28c17262 SHA512 b4b46bb7f31ecb766495f5f592fb2f9a754f5f38f83f071b533d4302b95808b9b4046bf7769bfa0d7713633344c7c693b57dd550b52acec4617257eba68634c1 WHIRLPOOL c9fdffdcd1bb539037a2e880a82335020c05d2196033842b2da1eb84809184747e7454b3696b11cf3fe9877bf313dea27cac47f7d784b01e9c8fc06796e1e499
diff --git a/dev-python/whisper/metadata.xml b/dev-python/whisper/metadata.xml
new file mode 100644
index 00000000000..ddac9f5cb8f
--- /dev/null
+++ b/dev-python/whisper/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">whisper</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/whisper/whisper-0.9.13.ebuild b/dev-python/whisper/whisper-0.9.13.ebuild
new file mode 100644
index 00000000000..fae73fe869f
--- /dev/null
+++ b/dev-python/whisper/whisper-0.9.13.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Fixed size round-robin style database"
+HOMEPAGE="http://graphite.wikidot.com/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 x86"
+SLOT="0"
+IUSE=""
diff --git a/dev-python/whoosh/Manifest b/dev-python/whoosh/Manifest
new file mode 100644
index 00000000000..f842eddb744
--- /dev/null
+++ b/dev-python/whoosh/Manifest
@@ -0,0 +1,2 @@
+DIST Whoosh-2.6.0.zip 1193541 SHA256 7de7bc4d00a6d051dbb360b48eb7f3cd002373d87252fb0b284a3c9c453a7677 SHA512 e50e47ec0d1c65ad3c7d657586f5380a1be748945c1ce964305fa68b99379f0da676faef6f0ca45ef151df7be71150601162ee966f3aaf84047a20bca36f7e37 WHIRLPOOL c42e9760833db7186f3df5946f6dd071288cfccf2eaefba95520a2415ca377c49cf74307b3fa2c9e655f134b086ae637e5db06330248b4a27e12175920f3c7b8
+DIST Whoosh-2.7.0.zip 1080985 SHA256 733df1ad4142fcd1e8f3259070de0521d272d7685e2febc0f4fdd1668cfe0d48 SHA512 5126a9ed5ef50af391905347c7aa1c1cc7d100213c29f5a5f67fcfabab9cdcfcd14a6b75735df8e343f61254d1fec8610f0e1260167a321ab303a0a55b02673f WHIRLPOOL 6a35448280e3c6382b8a4b50432d5def3a910d9af95d35afc11544030b69f0103aae910bbf91cb5942ec80f10a848bbd32dbd828c71482f5e2fc15a9cd29c249
diff --git a/dev-python/whoosh/metadata.xml b/dev-python/whoosh/metadata.xml
new file mode 100644
index 00000000000..861b39a466e
--- /dev/null
+++ b/dev-python/whoosh/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <maintainer>
+ <email>bugs@bergstroem.nu</email>
+ <name>Johan Bergström</name>
+ </maintainer>
+ <longdescription lang="en">
+ Whoosh is a fast, featureful full-text indexing and searching
+ library implemented in pure Python. Programmers can use it to
+ easily add search functionality to their applications and websites.
+ Every part of how Whoosh works can be extended or replaced to meet
+ your needs exactly.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">Whoosh</remote-id>
+ <remote-id type="bitbucket">mchaput/whoosh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/whoosh/whoosh-2.6.0.ebuild b/dev-python/whoosh/whoosh-2.6.0.ebuild
new file mode 100644
index 00000000000..4363ff49035
--- /dev/null
+++ b/dev-python/whoosh/whoosh-2.6.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+MY_PN="Whoosh"
+
+inherit distutils-r1
+
+DESCRIPTION="Fast, pure-Python full text indexing, search and spell checking library"
+HOMEPAGE="http://bitbucket.org/mchaput/whoosh/wiki/Home/ http://pypi.python.org/pypi/Whoosh/"
+SRC_URI="mirror://pypi/W/${MY_PN}/${MY_PN}-${PV}.zip"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_prepare_all() {
+ # (backport from upstream)
+ sed -i -e '/cmdclass/s:pytest:PyTest:' setup.py || die
+
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # https://bitbucket.org/mchaput/whoosh/issue/403/
+ use doc && sphinx-build -b html -c docs/source/ docs/source/ docs/source/build/html
+}
+
+# Restrict to test phase; a few random tests fail without it
+src_test() {
+ local DISTUTILS_NO_PARALLEL_BUILD=1
+ distutils-r1_src_test
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ local DOCS=( README.txt )
+ use doc && local HTML_DOCS=( docs/source/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/whoosh/whoosh-2.7.0.ebuild b/dev-python/whoosh/whoosh-2.7.0.ebuild
new file mode 100644
index 00000000000..b91a78f509c
--- /dev/null
+++ b/dev-python/whoosh/whoosh-2.7.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+MY_PN="Whoosh"
+
+inherit distutils-r1
+
+DESCRIPTION="Fast, pure-Python full text indexing, search and spell checking library"
+HOMEPAGE="http://bitbucket.org/mchaput/whoosh/wiki/Home/ http://pypi.python.org/pypi/Whoosh/"
+SRC_URI="mirror://pypi/W/${MY_PN}/${MY_PN}-${PV}.zip"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_prepare_all() {
+ # (backport from upstream)
+ sed -i -e '/cmdclass/s:pytest:PyTest:' setup.py || die
+
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # https://bitbucket.org/mchaput/whoosh/issue/403/
+ use doc && sphinx-build -b html -c docs/source/ docs/source/ docs/source/build/html
+}
+
+python_test() {
+ # https://bitbucket.org/mchaput/whoosh/issue/412/tarball-of-whoosh-270-pypi-missing-english
+ # tarball missing a file english-words.10.gz which when added sees all tests pass.
+ esetup.py test
+}
+
+python_install_all() {
+ local DOCS=( README.txt )
+ use doc && local HTML_DOCS=( docs/source/build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/winpdb/Manifest b/dev-python/winpdb/Manifest
new file mode 100644
index 00000000000..c0977f339ad
--- /dev/null
+++ b/dev-python/winpdb/Manifest
@@ -0,0 +1 @@
+DIST winpdb-1.4.8.tar.gz 145184 SHA256 daa146446d0a04fec93ee951ba3432016c6b63108711c036124902928968776e SHA512 b393e8054783238235847138a36ab764779d703d2e544da494a65e97f55928080bbb3955334c8eb478f5f1bf8e1c9079d898d663b08b9572c65c81b1a65df059 WHIRLPOOL 0f5b6552a38ba5c1a1a5b38208963c78ad64876f386e17e7739012057b51eb3a1ab6ba301a80ad7396208132085cf8cbdc4b2d208692dc3e2e91768347b354f9
diff --git a/dev-python/winpdb/metadata.xml b/dev-python/winpdb/metadata.xml
new file mode 100644
index 00000000000..4625e849e17
--- /dev/null
+++ b/dev-python/winpdb/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="google-code">winpdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/winpdb/winpdb-1.4.8-r1.ebuild b/dev-python/winpdb/winpdb-1.4.8-r1.ebuild
new file mode 100644
index 00000000000..07821ed97f2
--- /dev/null
+++ b/dev-python/winpdb/winpdb-1.4.8-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Graphical Python debugger"
+HOMEPAGE="http://winpdb.org/ http://code.google.com/p/winpdb/ http://pypi.python.org/pypi/winpdb"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~x86"
+IUSE="+wxwidgets"
+
+DEPEND=">=dev-python/pycrypto-2.0.1[${PYTHON_USEDEP}]
+ wxwidgets? ( dev-python/wxpython:2.8[$(python_gen_usedep 'python2*')] )"
+RDEPEND="${DEPEND}"
+
+REQUIRED_USE="wxwidgets? ( $(python_gen_useflags 'python2*') )"
+
+python_install() {
+ distutils-r1_python_install
+
+ if ! use wxwidgets || python_is_python3; then
+ find "${D%/}$(python_get_sitedir)" -name 'winpdb*.py*' -delete || die
+ rm "${D%/}$(python_get_scriptdir)"/winpdb || die
+ if ! use wxwidgets; then
+ rm "${ED%/}"/usr/bin/winpdb || die
+ fi
+ fi
+}
diff --git a/dev-python/winpdb/winpdb-1.4.8.ebuild b/dev-python/winpdb/winpdb-1.4.8.ebuild
new file mode 100644
index 00000000000..3d1a6633d06
--- /dev/null
+++ b/dev-python/winpdb/winpdb-1.4.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="*"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="*-jython"
+
+inherit distutils
+
+DESCRIPTION="Graphical Python debugger"
+HOMEPAGE="http://winpdb.org/ http://code.google.com/p/winpdb/ http://pypi.python.org/pypi/winpdb"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 x86"
+IUSE="+wxwidgets"
+
+DEPEND=">=dev-python/pycrypto-2.0.1
+ wxwidgets? ( dev-python/wxpython:2.8 )"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ distutils_src_install
+
+ if use wxwidgets; then
+ PYTHON_MODNAME="rpdb2.py winpdb.py"
+ else
+ PYTHON_MODNAME="rpdb2.py"
+
+ rm -f "${ED}usr/bin/winpdb"*
+
+ delete_winpdb() {
+ rm -f "${ED}$(python_get_sitedir)/winpdb.py"
+ }
+ python_execute_function -q delete_winpdb
+ fi
+}
diff --git a/dev-python/workerpool/Manifest b/dev-python/workerpool/Manifest
new file mode 100644
index 00000000000..502f1e21d63
--- /dev/null
+++ b/dev-python/workerpool/Manifest
@@ -0,0 +1,2 @@
+DIST workerpool-0.9.2.tar.gz 7747 SHA256 ab2eaf05e236140c62c7411d13ecc4ddedc365966282719a35afc53043c00f82 SHA512 d5ce36ff48b297adb40baf40a53823cc8b6e39b0c7eb880541dffb5ea1d0849e50c344e63f1ac3089d51fc1fe6e73ff2a26df03f9d68f24980222fe3ef7f01c5 WHIRLPOOL 093221fb442abe017591fa79b85abbd1824b63ec89aaf62eb87cb50975dd5164cd3a1ef36c51336e2dcb97aef3fdd18695691e73bfaaa168077172bcc5a49db3
+DIST workerpool-0.9.4.tar.gz 5409 SHA256 ab455db0de007723cee44c86d37c2575747f158768289bf02e2791f3b1e006fd SHA512 cf8092fa369b9767a8aaf88f22a7edc334f3e337ca9b3fdb1ea8cd50713a9ff9b94e5324452a2f3f4f37d5a2ca8b1b34abd3210452437e2911c66045221c74b3 WHIRLPOOL 4414bad49a1d897a5aa79e67278ed780a2063604ac13d0dc12c8917d0b1b8fc1d986f559f13e40dc2c20a7d3e97342c7b479f7b7fac554239db1b62e2074948b
diff --git a/dev-python/workerpool/metadata.xml b/dev-python/workerpool/metadata.xml
new file mode 100644
index 00000000000..ee323bf45a9
--- /dev/null
+++ b/dev-python/workerpool/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">workerpool</remote-id>
+ <remote-id type="github">shazow/workerpool</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/workerpool/workerpool-0.9.2-r1.ebuild b/dev-python/workerpool/workerpool-0.9.2-r1.ebuild
new file mode 100644
index 00000000000..deec8cf0f79
--- /dev/null
+++ b/dev-python/workerpool/workerpool-0.9.2-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for distributing jobs to a pool of worker threads"
+HOMEPAGE="http://github.com/shazow/workerpool"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test examples"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ nosetests -v test || die
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x usr/share/doc/${P}/samples
+ insinto usr/share/doc/${P}/
+ doins -r samples
+ fi
+}
diff --git a/dev-python/workerpool/workerpool-0.9.4.ebuild b/dev-python/workerpool/workerpool-0.9.4.ebuild
new file mode 100644
index 00000000000..deec8cf0f79
--- /dev/null
+++ b/dev-python/workerpool/workerpool-0.9.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Module for distributing jobs to a pool of worker threads"
+HOMEPAGE="http://github.com/shazow/workerpool"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test examples"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_test() {
+ nosetests -v test || die
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x usr/share/doc/${P}/samples
+ insinto usr/share/doc/${P}/
+ doins -r samples
+ fi
+}
diff --git a/dev-python/wrapt/Manifest b/dev-python/wrapt/Manifest
new file mode 100644
index 00000000000..2d0bce46be1
--- /dev/null
+++ b/dev-python/wrapt/Manifest
@@ -0,0 +1,2 @@
+DIST wrapt-1.10.4.tar.gz 102325 SHA256 c77f39270a9438a9429f6b2330e44ab6105aa760bbe00402765bac4dc51925d2 SHA512 759c43d18b2538912b30930a9ac192ba53921d5f353da07587e0ebb5236b255c87d1eb216a122b4455e16ed4973b39402f7057adfaf83775515d80b944c691af WHIRLPOOL 753ad039bc92ae9f2e785f57b21f9323f137bcefda8999decbac1c7adf85a9b0c7f00b147c62f4da1616b509423d54c9f2c6fa4d4ccf15b708d6fc13b0f48153
+DIST wrapt-1.10.5.tar.gz 119157 SHA256 4fd82193b23f60e1a39f3e10c81143c1e29e26cd5fc9afe1a7dc0f5e4b4a67d7 SHA512 450b32eea67774081d23c0e020ed7eea3c8ac458925a16cd606a4f95ee5b7631bda5ff00ceb914e9ccc28a5e0a7302534b6711bb23d637c77327a8a9d228cb55 WHIRLPOOL 7cfa9477f525e60f16a7b1689ba43b327192837bea34e96977442b9cd143a63fafdfa7d0b3895c93052b0e6f426e76fa439b155ee4e481dd5e922c529676691c
diff --git a/dev-python/wrapt/metadata.xml b/dev-python/wrapt/metadata.xml
new file mode 100644
index 00000000000..e014da76be3
--- /dev/null
+++ b/dev-python/wrapt/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">GrahamDumpleton/wrapt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wrapt/wrapt-1.10.4.ebuild b/dev-python/wrapt/wrapt-1.10.4.ebuild
new file mode 100644
index 00000000000..2fd4fc88f60
--- /dev/null
+++ b/dev-python/wrapt/wrapt-1.10.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Module for decorators, wrappers and monkey patching."
+HOMEPAGE="https://github.com/GrahamDumpleton/wrapt"
+SRC_URI="https://github.com/GrahamDumpleton/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ local WRAPT_EXTENSIONS=true
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ py.test || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wrapt/wrapt-1.10.5.ebuild b/dev-python/wrapt/wrapt-1.10.5.ebuild
new file mode 100644
index 00000000000..2fd4fc88f60
--- /dev/null
+++ b/dev-python/wrapt/wrapt-1.10.5.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Module for decorators, wrappers and monkey patching."
+HOMEPAGE="https://github.com/GrahamDumpleton/wrapt"
+SRC_URI="https://github.com/GrahamDumpleton/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+
+DEPEND="
+ test? ( dev-python/pytest[${PYTHON_USEDEP}] )
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_compile() {
+ local WRAPT_EXTENSIONS=true
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ py.test || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ws4py/Manifest b/dev-python/ws4py/Manifest
new file mode 100644
index 00000000000..faabfe0a735
--- /dev/null
+++ b/dev-python/ws4py/Manifest
@@ -0,0 +1 @@
+DIST ws4py-0.3.4.tar.gz 65467 SHA256 5aedb5663ee1e5fb4334615cc6582f4f2e97cf967d8dc4c6c3627515d16afa90 SHA512 32cd2eb9df7367e2bf42e354766a0ca407715a863be6b51b7701ec6e0537a2ecf7c2a59423f56ae093855b075c30a4065c7f7efe3b0227915639223b9ba7a55f WHIRLPOOL 77f6c56ab1c2bbcd628f0d1773c1c9659ddc68d976ca8af55804d04e16ec6e9e06e87f5a6a3167670d8c0898dde657f3b3b1fdc4d4a94029f74d71ca2ee50e1b
diff --git a/dev-python/ws4py/files/ws4py-0.2-cherrypy_test.patch b/dev-python/ws4py/files/ws4py-0.2-cherrypy_test.patch
new file mode 100644
index 00000000000..e1d55afa0a6
--- /dev/null
+++ b/dev-python/ws4py/files/ws4py-0.2-cherrypy_test.patch
@@ -0,0 +1,24 @@
+db23aff2ea commit 4ec8638c268ecdb710d97176a55cc5b818aa1a18
+https://github.com/Lawouach/WebSocket-for-Python/issues/72
+diff -ur ws4py-0.2.4.orig/test/test_cherrypy.py ws4py-0.2.4/test/test_cherrypy.py
+--- test/test_cherrypy.py 2012-12-14 03:35:48.000000000 +0800
++++ test/test_cherrypy.py 2013-01-11 16:56:37.555534011 +0800
+@@ -4,6 +4,7 @@
+ import cherrypy
+ from ws4py.server.cherrypyserver import WebSocketPlugin, WebSocketTool
+ from ws4py.websocket import EchoWebSocket
++from ws4py.compat import py3k
+
+ class FakeSocket(object):
+ def settimeout(self, timeout):
+@@ -65,7 +66,10 @@
+ h = EchoWebSocket(s, [], [])
+ cherrypy.engine.publish('handle-websocket', h, ('127.0.0.1', 0))
+ self.assertEquals(len(cherrypy.engine.websocket.pool), 1)
+- k = cherrypy.engine.websocket.pool.keys()[0]
++ if py3k:
++ k = list(cherrypy.engine.websocket.pool.keys())[0]
++ else:
++ k = cherrypy.engine.websocket.pool.keys()[0]
+ self.assertTrue(k is h)
+ self.assertEquals(cherrypy.engine.websocket.pool[k][1], ('127.0.0.1', 0))
diff --git a/dev-python/ws4py/files/ws4py-0.2.1-process-data.patch b/dev-python/ws4py/files/ws4py-0.2.1-process-data.patch
new file mode 100644
index 00000000000..5476f2d2862
--- /dev/null
+++ b/dev-python/ws4py/files/ws4py-0.2.1-process-data.patch
@@ -0,0 +1,27 @@
+From 38cf669e27fab9de187eb11dabd7d85d73d5f470 Mon Sep 17 00:00:00 2001
+From: Jon Salz <jsalz@chromium.org>
+Date: Fri, 20 Apr 2012 02:22:46 +0800
+Subject: [PATCH] Process remaining bytes in the body, if any.
+
+https://github.com/Lawouach/WebSocket-for-Python/issues/46
+---
+ ws4py/client/__init__.py | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/ws4py/client/__init__.py b/ws4py/client/__init__.py
+index aa4c8f2..29b1357 100644
+--- a/ws4py/client/__init__.py
++++ b/ws4py/client/__init__.py
+@@ -71,6 +71,9 @@ class WebSocketBaseClient(WebSocket):
+
+ self.handshake_ok()
+
++ if body != '':
++ self.process(body)
++
+ @property
+ def handshake_headers(self):
+ parts = urlsplit(self.url)
+--
+1.7.3.4
+
diff --git a/dev-python/ws4py/metadata.xml b/dev-python/ws4py/metadata.xml
new file mode 100644
index 00000000000..6a2af9d51e7
--- /dev/null
+++ b/dev-python/ws4py/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ <description>make whatever changes you want</description>
+ </maintainer>
+ <use>
+ <flag name="client">Install client modules</flag>
+ <flag name="server">Install server modules</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">Lawouach/WebSocket-for-Python</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/ws4py/ws4py-0.3.4.ebuild b/dev-python/ws4py/ws4py-0.3.4.ebuild
new file mode 100644
index 00000000000..fabf578d972
--- /dev/null
+++ b/dev-python/ws4py/ws4py-0.3.4.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# We could depend on dev-python/cherrypy when USE=server, but
+# that is an optional component ...
+# Same for www-servers/tornado and USE=client ... so why not???
+# pypy is viable but better with a cutdown set of deps
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="threads?"
+
+inherit distutils-r1
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/Lawouach/WebSocket-for-Python.git"
+ inherit git-2
+else
+ inherit vcs-snapshot
+ SRC_URI="https://github.com/Lawouach/WebSocket-for-Python/tarball/v${PV} -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm x86"
+fi
+
+DESCRIPTION="WebSocket client and server library for Python 2 and 3 as well as PyPy"
+HOMEPAGE="https://github.com/Lawouach/WebSocket-for-Python"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+client +server test +threads"
+# doc build requires sphinxcontrib ext packages absent from portage
+
+RDEPEND=">=dev-python/greenlet-0.4.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/gevent[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/cython-0.19.1[${PYTHON_USEDEP}]
+ client? ( >=www-servers/tornado-3.1[${PYTHON_USEDEP}] )
+ server? ( >=dev-python/cherrypy-3.2.4[${PYTHON_USEDEP}] )"
+DEPEND="test? (
+ >=dev-python/cherrypy-3.2.4[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ # testsuite displays an issue with mock under py3 but is non fatal
+ "${PYTHON}" -m unittest discover || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+ use client || rm -rf "${D}$(python_get_sitedir)"/ws4py/client
+ use server || rm -rf "${D}$(python_get_sitedir)"/ws4py/server
+}
diff --git a/dev-python/ws4py/ws4py-9999.ebuild b/dev-python/ws4py/ws4py-9999.ebuild
new file mode 100644
index 00000000000..7b17719d187
--- /dev/null
+++ b/dev-python/ws4py/ws4py-9999.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# We could depend on dev-python/cherrypy when USE=server, but
+# that is an optional component ...
+# Same for www-servers/tornado and USE=client ... so why not???
+# pypy is viable but better with a cutdown set of deps
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="threads?"
+
+inherit distutils-r1
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/Lawouach/WebSocket-for-Python.git"
+ inherit git-2
+else
+ inherit vcs-snapshot
+ SRC_URI="https://github.com/Lawouach/WebSocket-for-Python/tarball/v${PV} -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="WebSocket client and server library for Python 2 and 3 as well as PyPy"
+HOMEPAGE="https://github.com/Lawouach/WebSocket-for-Python"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+client +server test +threads"
+# doc build requires sphinxcontrib ext packages absent from portage
+
+RDEPEND=">=dev-python/greenlet-0.4.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/gevent[${PYTHON_USEDEP}]' python2_7)
+ >=dev-python/cython-0.19.1[${PYTHON_USEDEP}]
+ client? ( >=www-servers/tornado-3.1[${PYTHON_USEDEP}] )
+ server? ( >=dev-python/cherrypy-3.2.4[${PYTHON_USEDEP}] )"
+DEPEND="test? (
+ >=dev-python/cherrypy-3.2.4[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ )"
+
+python_test() {
+ # testsuite displays an issue with mock under py3 but is non fatal
+ "${PYTHON}" -m unittest discover || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+ use client || rm -rf "${D}$(python_get_sitedir)"/ws4py/client
+ use server || rm -rf "${D}$(python_get_sitedir)"/ws4py/server
+}
diff --git a/dev-python/wsaccel/Manifest b/dev-python/wsaccel/Manifest
new file mode 100644
index 00000000000..433cb423ae0
--- /dev/null
+++ b/dev-python/wsaccel/Manifest
@@ -0,0 +1 @@
+DIST wsaccel-0.6.2.tar.gz 35773 SHA256 425706acf0724d2f6bfa391ec37b4ef121d3432c956029de3cea4e101c218e0c SHA512 fbc59803cbb6b113a3e412390eb02f41a68513b9fda6e4408d5e2e3c976a3f62eacc6bf87adf9295a63238390cce00f4abe13daf397a28ce8f3ed3e3bff622ee WHIRLPOOL 2c66ff720fcaecaa8c7fe29d93bb8f32e620898b0ccf31d3dc3f4dbfe4b1623dde6484e3c347649cd4140ec51b52c9a8c0e81b0c24e6135481ebae7a26c09063
diff --git a/dev-python/wsaccel/metadata.xml b/dev-python/wsaccel/metadata.xml
new file mode 100644
index 00000000000..8db9521249a
--- /dev/null
+++ b/dev-python/wsaccel/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">wsaccel</remote-id>
+ <remote-id type="github">methane/wsaccel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wsaccel/wsaccel-0.6.2.ebuild b/dev-python/wsaccel/wsaccel-0.6.2.ebuild
new file mode 100644
index 00000000000..72890f83f2b
--- /dev/null
+++ b/dev-python/wsaccel/wsaccel-0.6.2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Accelerator for ws4py, AutobahnPython and tornado"
+HOMEPAGE="https://pypi.python.org/pypi/wsaccel https://github.com/methane/wsaccel"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="Apache-2.0"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+#RDEPEND=""
+#DEPEND="
+# test? ( dev-python/nose )"
+
+_python_test() {
+ cd tests || die
+ nosetests || die
+}
diff --git a/dev-python/wsgiintercept/Manifest b/dev-python/wsgiintercept/Manifest
new file mode 100644
index 00000000000..e852e02a1af
--- /dev/null
+++ b/dev-python/wsgiintercept/Manifest
@@ -0,0 +1,4 @@
+DIST wsgi_intercept-0.10.0.tar.gz 30017 SHA256 0f2eb4757c6cdefa4499aff4b6b080e223d416fa9c535634b2891e916ea45161 SHA512 749424c1f27366cfaf996767b8b05ee6bfd2422bde0e374e5a0bf0f2fc6366883807a0cf5a97daf53a1fe910d0492eac8cb0438286fa0c98e33e24d80f991f67 WHIRLPOOL 72e401ed7f1113160231bfabf1d89fd74530b2bcd429ff36d9d9af33c174ba5255f6b2666d3fdc4b33fd5f43188c0a136bb26b940017c5a668f41583d294c601
+DIST wsgi_intercept-0.10.2.tar.gz 30369 SHA256 0294469aa07bbfcf3a490cace2ce54cecda947c9e243559feccb7ea57c0644c7 SHA512 bfcb759e6933279588164e14067017ec0d44524c29cc4e4203b438a9bb253153edb9417c3eadc84bc8a6004bbe9a98eefee25227bc179096002d3167492db945 WHIRLPOOL a536a80d5c51e2f47c43323e81d9b6745157a83bf8c246b0a131824e26280f187d1df5589c88c2157fa67441415d432e83a52f1921617f71c4700975adc12953
+DIST wsgi_intercept-0.9.0.tar.gz 28865 SHA256 55b01e89a8752625ee94c13f2d125a73a61ee924f4cfd982983ca28c0a7addeb SHA512 3964fec587408b44d5ea0371b279d7686edaa98591438e5d679f8b954396f93408df13a33c809b6d0338a26da2ad3bad666bf66646da585ca73461a0beb1e439 WHIRLPOOL 090a9e607dcd9c56442ec0aa2f0f4c4aeb6c8764777fa29febf89c53e1fd687c2477db5e818480b4d90b9f846205a592125913f4ac0fdac5ce199a16dedb10b1
+DIST wsgi_intercept-0.9.1.tar.gz 29391 SHA256 4eab9fc11fd6abaf74791b6a5a6dd81bdc599d1c385fac834340868489a61d22 SHA512 12c1abb3c88831f90c15e11f8ab45d1262b3547a15192a1fe8ad766bbe36959a3bb4cbdb33cf303ccfd4425e8a355fd73ae6aef4afbf1a1d10f7b753e74a7b1f WHIRLPOOL e901b1719f0cbef675c2b7a0fe73b91a28d1d1efc373c99494c9648d77f1b8145e194d37eaacbbfdffa6f599ea365ef456b9c6fe5ee5d5f32a214628300db660
diff --git a/dev-python/wsgiintercept/metadata.xml b/dev-python/wsgiintercept/metadata.xml
new file mode 100644
index 00000000000..4af2fbaae63
--- /dev/null
+++ b/dev-python/wsgiintercept/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+Testing a WSGI application normally involves starting a server at a local host
+and port, then pointing your test code to that address. Instead, this library
+lets you intercept calls to any specific host/port combination and redirect
+them into a WSGI application importable by your test program. Thus, you can
+avoid spawning multiple processes or threads to test your Web app.
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">wsgi_intercept</remote-id>
+ <bugs-to>https://code.google.com/p/wsgi-intercept/issues/list</bugs-to>
+ <remote-id type="github">cdent/python3-wsgi-intercept</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wsgiintercept/wsgiintercept-0.10.0.ebuild b/dev-python/wsgiintercept/wsgiintercept-0.10.0.ebuild
new file mode 100644
index 00000000000..36682a08bd3
--- /dev/null
+++ b/dev-python/wsgiintercept/wsgiintercept-0.10.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="wsgi_intercept"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="WSGI application in place of a real URI for testing"
+HOMEPAGE="https://github.com/cdent/python3-wsgi-intercept"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mechanize[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # .pyc files cause failure of tests
+ rm -rf test/__pycache__/ || die
+
+ # Req'd to avoid file collisions
+ sed -e s":find_packages():find_packages(exclude=['test']):" \
+ -i setup.py || die
+
+ # Disable tests connecting to the network; Bug #550710
+ sed -e 's:test_http_not_intercepted:_&:' \
+ -e 's:test_https_not_intercepted:_&:' \
+ -i test/{test_urllib.py,test_http_client.py,test_requests.py} || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html//. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wsgiintercept/wsgiintercept-0.10.2.ebuild b/dev-python/wsgiintercept/wsgiintercept-0.10.2.ebuild
new file mode 100644
index 00000000000..36682a08bd3
--- /dev/null
+++ b/dev-python/wsgiintercept/wsgiintercept-0.10.2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="wsgi_intercept"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="WSGI application in place of a real URI for testing"
+HOMEPAGE="https://github.com/cdent/python3-wsgi-intercept"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mechanize[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # .pyc files cause failure of tests
+ rm -rf test/__pycache__/ || die
+
+ # Req'd to avoid file collisions
+ sed -e s":find_packages():find_packages(exclude=['test']):" \
+ -i setup.py || die
+
+ # Disable tests connecting to the network; Bug #550710
+ sed -e 's:test_http_not_intercepted:_&:' \
+ -e 's:test_https_not_intercepted:_&:' \
+ -i test/{test_urllib.py,test_http_client.py,test_requests.py} || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html//. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wsgiintercept/wsgiintercept-0.9.0.ebuild b/dev-python/wsgiintercept/wsgiintercept-0.9.0.ebuild
new file mode 100644
index 00000000000..e793b0eb412
--- /dev/null
+++ b/dev-python/wsgiintercept/wsgiintercept-0.9.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="wsgi_intercept"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="WSGI application in place of a real URI for testing"
+HOMEPAGE="https://github.com/cdent/python3-wsgi-intercept"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mechanize[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # .pyc files cause failure of tests
+ rm -rf test/__pycache__/ || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html//. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wsgiintercept/wsgiintercept-0.9.1.ebuild b/dev-python/wsgiintercept/wsgiintercept-0.9.1.ebuild
new file mode 100644
index 00000000000..ac664fe855e
--- /dev/null
+++ b/dev-python/wsgiintercept/wsgiintercept-0.9.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+MY_PN="wsgi_intercept"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="WSGI application in place of a real URI for testing"
+HOMEPAGE="https://github.com/cdent/python3-wsgi-intercept"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+RDEPEND=""
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/mechanize[${PYTHON_USEDEP}]' python2_7 pypy)
+ )"
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # .pyc files cause failure of tests
+ rm -rf test/__pycache__/ || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html//. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wsgilog/Manifest b/dev-python/wsgilog/Manifest
new file mode 100644
index 00000000000..5db221edf90
--- /dev/null
+++ b/dev-python/wsgilog/Manifest
@@ -0,0 +1 @@
+DIST wsgilog-0.3.tar.gz 4299 SHA256 2193c7eadb7c341970c50b2607f48f12c8031cbd2ce19803c50c55d84417a68f SHA512 be6788c059f1901b21d272b53b6f9ba4096d1f02f244635c5661f75ce40b3f778ca1b72df76c070b50cab3c44a0cefe0044bae75541b20769da61c9d4fe0863b WHIRLPOOL 1f58cadb78746d4ac34ed3500276b7cbfffc90034b80e62eeb2c31bb78c9ebfe86aead7a4511b4982aaa7ce8c4df92cfbe7157cb65f04cfc0fe8cef905c9b133
diff --git a/dev-python/wsgilog/metadata.xml b/dev-python/wsgilog/metadata.xml
new file mode 100644
index 00000000000..9e4c7edfa1c
--- /dev/null
+++ b/dev-python/wsgilog/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>jo@opteamax.de</email>
+ <name>Jens Ott</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="pypi">wsgilog</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wsgilog/wsgilog-0.3-r1.ebuild b/dev-python/wsgilog/wsgilog-0.3-r1.ebuild
new file mode 100644
index 00000000000..755fb6371d7
--- /dev/null
+++ b/dev-python/wsgilog/wsgilog-0.3-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Class for logging in WSGI-applications"
+HOMEPAGE="http://pypi.python.org/pypi/wsgilog/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+DOCS="PKG-INFO"
diff --git a/dev-python/wsgiproxy2/Manifest b/dev-python/wsgiproxy2/Manifest
new file mode 100644
index 00000000000..22f8f8424cd
--- /dev/null
+++ b/dev-python/wsgiproxy2/Manifest
@@ -0,0 +1,2 @@
+DIST WSGIProxy2-0.4.1.zip 18437 SHA256 70232dd33ffc742b2c1e8d7573a61035a1b7fcd92dc0c761e283de515ab94f69 SHA512 794cf74d47366ab80f03ef311cd77258b4152f266cabf662b3eccb0f706f246d6d4407f495432ed32520ed69ecf3cb5ae05ef8a50e7f59062c6ef7395d8c9eec WHIRLPOOL 08c784bb15a7a1da21ea38201781e502ad3f5515658a441f7671f2ba2c971966f320e52f223b6d47feedb35cefb4c513be454114f5d2635a78ec991b2e1a288f
+DIST WSGIProxy2-0.4.2.zip 18817 SHA256 a4b236fac5d4a2b51d9b3ed34cbe0d01aae173dce0ab9877f225b1dcdb4a6e8e SHA512 3dd750263485ceb644373d8ea9692c9a46126a1ed7cd640feba7d42b0fe618e290dcae2f76dc83be77de34211ac473f5a1496a8309e3fcc64982e9642af786fb WHIRLPOOL e585abf60d7f3bfe60d700dca99887efe0616f4cdb43de2edabe3b53b8b4f7eaf730c465d1a95618ac4ff0c99b488fa241400eaecd69ca8cd7c2e2012fbbcd51
diff --git a/dev-python/wsgiproxy2/metadata.xml b/dev-python/wsgiproxy2/metadata.xml
new file mode 100644
index 00000000000..e486c156d32
--- /dev/null
+++ b/dev-python/wsgiproxy2/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">WSGIProxy2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wsgiproxy2/wsgiproxy2-0.4.1.ebuild b/dev-python/wsgiproxy2/wsgiproxy2-0.4.1.ebuild
new file mode 100644
index 00000000000..3351e85514b
--- /dev/null
+++ b/dev-python/wsgiproxy2/wsgiproxy2-0.4.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="WSGIProxy2"
+
+DESCRIPTION="HTTP proxying tools for WSGI apps"
+HOMEPAGE="http://pythonpaste.org/wsgiproxy/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ppc ppc64 x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}]
+ dev-python/socketpool[${PYTHON_USEDEP}]
+ dev-python/restkit[$(python_gen_usedep python2_7)] )"
+# Tests needing restkit are skipped under py3
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_compile_all() {
+ if use doc; then
+ cd docs || die
+ sphinx-build -b html -d _build/doctrees . _build/html
+ fi
+}
+
+# this was always possible
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wsgiproxy2/wsgiproxy2-0.4.2.ebuild b/dev-python/wsgiproxy2/wsgiproxy2-0.4.2.ebuild
new file mode 100644
index 00000000000..71e767f91db
--- /dev/null
+++ b/dev-python/wsgiproxy2/wsgiproxy2-0.4.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+MY_PN="WSGIProxy2"
+
+DESCRIPTION="HTTP proxying tools for WSGI apps"
+HOMEPAGE="http://pythonpaste.org/wsgiproxy/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-python/urllib3[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ >=dev-python/webtest-2.0.17[${PYTHON_USEDEP}]
+ dev-python/socketpool[${PYTHON_USEDEP}]
+ dev-python/restkit[$(python_gen_usedep python2_7)] )"
+# Tests needing restkit are skipped under py3
+# Testing also revealed the suite needs latest webtest
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_compile_all() {
+ if use doc; then
+ cd docs || die
+ sphinx-build -b html -d _build/doctrees . _build/html
+ fi
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wstools/Manifest b/dev-python/wstools/Manifest
new file mode 100644
index 00000000000..31db4bd0c00
--- /dev/null
+++ b/dev-python/wstools/Manifest
@@ -0,0 +1 @@
+DIST wstools-0.4.3.tar.gz 148878 SHA256 578b53e98bc8dadf5a55dfd1f559fd9b37a594609f1883f23e8646d2d30336f8 SHA512 e735e2ae63aa410a56c79bef0bec7196393bb8f52d8521001d298b6290a75662f7262b6cd3c3238eeaf33263036cc6dabf8435ebd2fd1c98481cea524d0382ed WHIRLPOOL fa5ca24db23d99337cb08f3317327f6076f230c787477275e54d2322931d4e86831357043df6e8c12f3a62bac95eda13f614120588e9d3265ba40251c68b2881
diff --git a/dev-python/wstools/metadata.xml b/dev-python/wstools/metadata.xml
new file mode 100644
index 00000000000..34ca344eaee
--- /dev/null
+++ b/dev-python/wstools/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">wstools</remote-id>
+ <remote-id type="github">kiorky/wstools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wstools/wstools-0.4.3.ebuild b/dev-python/wstools/wstools-0.4.3.ebuild
new file mode 100644
index 00000000000..275085e514e
--- /dev/null
+++ b/dev-python/wstools/wstools-0.4.3.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="WSDL parsing services package for Web Services for Python"
+HOMEPAGE="https://github.com/kiorky/wstools http://pypi.python.org/pypi/wstools"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/wtf-peewee/Manifest b/dev-python/wtf-peewee/Manifest
new file mode 100644
index 00000000000..2291282d74f
--- /dev/null
+++ b/dev-python/wtf-peewee/Manifest
@@ -0,0 +1 @@
+DIST wtf-peewee-0.2.3.tar.gz 60654 SHA256 d64bab9c8b9b247f21534e87a94b988afd9655d7abaa14dc7d2af0bea3a3b9da SHA512 0a8e4a6586a4521d99c35b907935286c20b9106214a9826960073e710fc0a91c68402b9812d2b0119263786f8e48bdcacf999044ade9f3a27afa9bc7fd058926 WHIRLPOOL b44d3480d274f26ff84993c8941c473e6104bab8cd65bd8befb903dc9f2d6fad16299d6b4fc5f3b8af822dbc6aa9781dbe9ba43da6fb2f2dcf929578d3eac7ea
diff --git a/dev-python/wtf-peewee/metadata.xml b/dev-python/wtf-peewee/metadata.xml
new file mode 100644
index 00000000000..f95712add1a
--- /dev/null
+++ b/dev-python/wtf-peewee/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="github">coleifer/wtf-peewee</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wtf-peewee/wtf-peewee-0.2.3.ebuild b/dev-python/wtf-peewee/wtf-peewee-0.2.3.ebuild
new file mode 100644
index 00000000000..53e3fca64dc
--- /dev/null
+++ b/dev-python/wtf-peewee/wtf-peewee-0.2.3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Small python ORM"
+HOMEPAGE="https://github.com/coleifer/peewee/"
+SRC_URI="https://github.com/coleifer/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+
+RDEPEND=">=dev-python/peewee-2.0.0[${PYTHON_USEDEP}]
+ dev-python/wtforms[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( "${RDEPEND}" )"
+
+python_prepare_all() {
+ # https://github.com/coleifer/peewee/issues/361
+ sed -e s':test_null_form_saving:_&:' -i "${PN/\-/}"/tests.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" ./runtests.py || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && local EXAMPLES=( example/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wtforms/Manifest b/dev-python/wtforms/Manifest
new file mode 100644
index 00000000000..c99e93c4df4
--- /dev/null
+++ b/dev-python/wtforms/Manifest
@@ -0,0 +1,3 @@
+DIST WTForms-1.0.4.zip 345261 SHA256 15e1c114cd32c8be2d08585f5b158c941e2193d19b0a16194d1fde53e4291eef SHA512 0f0bda1e225a1132784814d6129039ba964aeef8d2ca8509e6d9be9ecf83fbf76f6a71f18fbb43772dbe64802e9a2038c53e2098ec25ec8cd2ebb223206ab880 WHIRLPOOL edf9ad35c44d149fa08e2c47a5a69662545fa22743c004ec36d76593c73ecfb7975bd93ae92018c0e4fa425edf0c7f1cea30f4f452331b3e09c0722e5fa6a91a
+DIST WTForms-2.0.1.zip 444489 SHA256 62859c74be4683601b5265ba83b9babd8a8f1cdd0ba31600fa1e70d295cd4ed2 SHA512 abae7adb1c7ab46abf401a536a248bf3703be2f0be9f5d8d49191f18855a6989e4c7acb232b006d5809fc13428a9e6214f734be5b917648778169c7dd258eaab WHIRLPOOL d6177e7f9ff5e53085081fb4580d728c08ac19230470435a85a0735745f303b010540ce01e4071735a49f32bb3321d17557511f958452457a882705c3139da9b
+DIST WTForms-2.0.2.zip 449167 SHA256 10737758ceae03b53021f3aa7e81bfc8dd6f679c879ffeb5e64ac6570facb6c1 SHA512 35d52b2991588d1aef2ed7df5713f5cdd7d64affb0879ccf6b40b9194c3b9492af8f853353df55f833bec268d4332d49cf4c8e0592c21a11cccddaddb3650c52 WHIRLPOOL 7664b533174b44922e8ce733b6d284a1c8814190bab631cf094e0e7f841152502329f203e34638bb6aea2386b74a1afa7e5de09ada06188a39989f4f860e875e
diff --git a/dev-python/wtforms/metadata.xml b/dev-python/wtforms/metadata.xml
new file mode 100644
index 00000000000..e93485a616e
--- /dev/null
+++ b/dev-python/wtforms/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">WTForms</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wtforms/wtforms-1.0.4.ebuild b/dev-python/wtforms/wtforms-1.0.4.ebuild
new file mode 100644
index 00000000000..e48bf7dbde1
--- /dev/null
+++ b/dev-python/wtforms/wtforms-1.0.4.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+MY_PN="WTForms"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Flexible forms validation and rendering library for python web development"
+HOMEPAGE="http://wtforms.simplecodes.com/ http://pypi.python.org/pypi/WTForms"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+DEPEND="app-arch/unzip
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+DOCS="AUTHORS.txt CHANGES.txt README.txt"
+
+python_compile_all() {
+ if use doc; then
+ einfo "Generation of documentation"
+ cd docs
+ PYTHONPATH=".." emake html || die "Building of documentation failed"
+ fi
+}
+
+python_install_all() {
+ if use doc; then
+ dohtml -r docs/_build/html/* || die "Installation of documentation failed"
+ fi
+}
diff --git a/dev-python/wtforms/wtforms-2.0.1.ebuild b/dev-python/wtforms/wtforms-2.0.1.ebuild
new file mode 100644
index 00000000000..34afac6dc1f
--- /dev/null
+++ b/dev-python/wtforms/wtforms-2.0.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="WTForms"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Flexible forms validation and rendering library for python web development"
+HOMEPAGE="http://wtforms.simplecodes.com/ http://pypi.python.org/pypi/WTForms"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test || die "Tests failed for ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wtforms/wtforms-2.0.2.ebuild b/dev-python/wtforms/wtforms-2.0.2.ebuild
new file mode 100644
index 00000000000..3f0da0256c1
--- /dev/null
+++ b/dev-python/wtforms/wtforms-2.0.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="WTForms"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Flexible forms validation and rendering library for python web development"
+HOMEPAGE="http://wtforms.simplecodes.com/ http://pypi.python.org/pypi/WTForms"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+DEPEND="app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( >=dev-python/sphinx-0.6[${PYTHON_USEDEP}] )"
+RDEPEND=""
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test || die "Tests failed for ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/wxpython/Manifest b/dev-python/wxpython/Manifest
new file mode 100644
index 00000000000..1381f3bed3e
--- /dev/null
+++ b/dev-python/wxpython/Manifest
@@ -0,0 +1,13 @@
+DIST wxPython-demo-2.8.12.1.tar.bz2 3906851 SHA256 252282193a80590b9eab436bef322701b21d35ad03b4b6ebb4824241ff947b5a SHA512 aab71cf4e4fb6632afd4607cbe5cdef6785c4ed3f1c7f67d6cef5487d1caee2f7652bfd974ba95a6a03e8d7809c94e291aca00c2fdf74ea29e118e1e30c947d5 WHIRLPOOL e9eb0803350e3dac8c5f2228a3f4d54a26ae4c4307c924729bbdff712747419fdfaa155d83ef1bea7dcb849dbacf9f48c323bf7997ed1df85f182ba3878d1324
+DIST wxPython-demo-2.9.4.0.tar.bz2 3992754 SHA256 c1a57ef7c71ea1a332df98b80cfa7ba178ef6dcd24a31393dff905a145ba8b7b SHA512 dac61d9bb09deffd54c89c1a09803968a4c4b2951a00ebb4d618a2a1b48775c62e3ddf2c642e9005d7362fdeab44c07bc2a38bc96dc94a5c891982847d0c19fe WHIRLPOOL 2093d3d0f81c15b7ca1a346fae29429952d299f8e33d5c2e356846bd98df890b731fe4ef0311ec32b7a913a4038aa8881396d9878dde98322136ccb5244a867b
+DIST wxPython-demo-3.0.0.0.tar.bz2 3991989 SHA256 426aaf20c7b01f5e9fbd7bd41455441bb126585f5544a848a5fa060e07f7b443 SHA512 4fe8a87faacac99c54c4fcbdb707c9790b49f485186e1741cc1ba05e955e474ca4ea31ff704a57e73b32b4fad310ef490066743d1c6ad4339191cde2daec255d WHIRLPOOL c6a2b12111572164474083f66dd0e2eff12e4faea5ce880767bfba3de493e8d56e6747c659ff1a3d533d0f6bcde1d5c9daabb9bccb2148278cdce074f5ddcbae
+DIST wxPython-demo-3.0.1.1.tar.bz2 3991248 SHA256 bb264db3369c7228f0356f1ad64f6a9ca3000b167bc1ce3fee94d3d2fa20d069 SHA512 b75ca80b5a247f5c97691c4c77c36d64ebe82d94803cd8d687b2110e9de290067c7da893797ae13d0a9f42a4da83170b630dcdeb9460657355c43005dfeac89a WHIRLPOOL 3db15c676252f4f96b585271d0ef005b84cbb4538f01db53e18c587b33fdfc5b57da40d9ba2f2c467063de79c81ed6440982fe5e21547a21fbe2d7d4e252f69c
+DIST wxPython-demo-3.0.2.0.tar.bz2 3992212 SHA256 8bf195138744898b4b6fbe11f52f7ee2f6319c2e3adf832917769b2e2d4994f3 SHA512 361ecaa7dfe5bae0757e04215c564370eaf8e5260ead45007f9d70439c15701725c3cbcd76691a5191258bef24fd200ebd61347a3fd920d888137bfc98a16702 WHIRLPOOL a944790a4c7b38dc8d8d28c7def50f765cd5566118d801cb576a0ab9d8370a803f8feedbf3211d0352dd838c92d9d4f092eaf6d78354a1974f2345304dd7b2e1
+DIST wxPython-docs-2.8.12.1.tar.bz2 2331363 SHA256 1dfae3a74b91e2003856eed51698c51094f1a4e6688633ae61af7a22fa8a0ddb SHA512 88591ef4f61bcbac29050d7dfecc230f7338cc006e7c3abc072b15da478e4fd994ab73ee5d072cb8b84f9de62ce182f1774354b0a7a4502ea639e59fdf965358 WHIRLPOOL 97bc66c8f781b5092e2274edc0b9bac35c21c91a66e4c0da75d543dc471f25d02334b28a5afe4ad0681b7a018a93f08b6ef5d3c6afd127ccfc24da208252cd89
+DIST wxPython-newdocs-2.8.9.2.tar.bz2 1503913 SHA256 890b6b7ca37ba7aaa27f9716ea9992ac75ed8150e83939506e3c47f86e7f37a8 SHA512 e114b2b44a7fd3ac292ca9735fb2e075459211384bc98d62ff2ba49e45111825101e74abd4af2ab0e5e52ede7b831641367c11a5c80e79f2da6ada3442463bfc WHIRLPOOL 91ccbe19e8311f0404fb0096efff68750fa0c3b505d05c9278e0488e138788dc399ff2345e13c712126475957a1c1fcc53556d70cd9c835524207be5758a6e2b
+DIST wxPython-src-2.8.12.1.tar.bz2 31311482 SHA256 1f3f153d9f1504c6ce2d2c4b23e940b8f58b81f4cba35cda1a5bb31142243cd0 SHA512 4f826ccb57d5f4fc03fe7cae67499be70c727a99aebf9d153ea1060a21641642606d44d079ba897c38b176846336aeaebc21d30d5c7a0abec3934d65cf4529f3 WHIRLPOOL 94f91d359f755a0f805588303e8507b2f1404a7f4af73777f85366265df9f76ca89ac29bff491cffd752b707645952a4f7f2bb12fa7e30f3e7d3728147a9c99d
+DIST wxPython-src-2.9.4.0.tar.bz2 50827671 SHA256 78c35c19e85a17cb9c730b86b49d6a479198d76d19e0b13e86db0b55707004be SHA512 100dd4474bc2508e9a80aed6f08d295e2697926e29c5789e1f6aa7c303921e1c5de2574c3eddde568804da8fc670d0214ef225d46f34a3006d0a947423d01fbf WHIRLPOOL feff68600a40a8f02492e91049ecdd1a1865ee6db8024112aa3a85a7eff616f26653c418a8ffde77121e2bf7d2c7090c5b91896f9a2de8eb980573af2ca65507
+DIST wxPython-src-2.9.4.1.patch 3768 SHA256 075e3a7b1cf69dd2bb20010717505d2508c74bc81658540f3e6d8c4fbf0a6b85 SHA512 4a5254a5bb9c246b75095e3cc0b849073e3cc71ff15ab7fb1db6ecfe71359800b9e1a5493bc39ce5b1f338cdc1d142ce84641611d458a8da4315f3c8a6aef3ba WHIRLPOOL 9bec06da4824fe56c172f4f417966681d1ffbf173dcb54f1579e9a484377bc76c45b4f2389911bbb17eff2476cfca786d68d9524856b21accc64b4dffafb1811
+DIST wxPython-src-3.0.0.0.tar.bz2 57831792 SHA256 af88695e820dd914e8375dc91ecb736f6fb605979bb38460ace61bbea494dc11 SHA512 9328f46817e0c1670a6be5d10347c8a7110c42a5332c5c35eb11ed0412d8dddeb15727d98606bb6c699af961cee171c41b82b1f24f3de25463259106660f7387 WHIRLPOOL 7865997e22db366a41bae8a5d5c47e4f46b20d17871377243abced3a6550c46588ea1d5a426d826ccf011c62898f87d6a55a14ac9b4153af4e0795d5f180a647
+DIST wxPython-src-3.0.1.1.tar.bz2 58139645 SHA256 d51463fe760e2fc00271678700c216809f9db32a6081a1808bd4b7c884dc0a32 SHA512 71f75c1e36c9ac27c15d768f69662b18ff1c66ad111ef6ef8579dfdb5296d7c37ffce9f60000afeac289cd6288980037d3a7eb3ea8d6d25e619d8692cf41b914 WHIRLPOOL bb03b78048b368b1c2f5a8b8689aecf412953ff789b2a8d2ef4826112fdc6bff8ed881255d05859ac07f915dd1070f6147d6bfdd97b0ab4b0939c024df3b855a
+DIST wxPython-src-3.0.2.0.tar.bz2 58304944 SHA256 d54129e5fbea4fb8091c87b2980760b72c22a386cb3b9dd2eebc928ef5e8df61 SHA512 a3798e89ff19344253aac7d771971e519f7fa9723e82bd97e98f16fd7f1572e513170b02295b872dae0b1ae3fa95efc4ef34d078045b839694b4fdad3a27c9e4 WHIRLPOOL 89cdef12c9ef96044adba0340d47b699e685eaec581a4e7d68f3b95a0890715e29b1f5362027df0f3f8b5b1587e8fe404a7fa88049ece9677dd8316fbdf2e41d
diff --git a/dev-python/wxpython/files/wxpython-2.8-cache-writable.patch b/dev-python/wxpython/files/wxpython-2.8-cache-writable.patch
new file mode 100644
index 00000000000..57f26b37c2e
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8-cache-writable.patch
@@ -0,0 +1,20 @@
+Use /tmp for cache files since the user won't have
+write permissions on ${DOCDIR}.
+
+diff -Naurp docs-orig/viewdocs.py docs/viewdocs.py
+--- docs-orig/viewdocs.py 2008-09-28 15:59:16.000000000 -0600
++++ docs/viewdocs.py 2009-01-18 00:16:27.000000000 -0600
+@@ -16,11 +16,11 @@ if not basePath:
+
+
+ # test for write access
+-if os.access(basePath, os.W_OK):
++if os.access('/tmp', os.W_OK):
+
+ # setup the args
+ args = ['',
+- '--cache='+basePath,
++ '--cache=/tmp',
+ os.path.join(basePath, 'wx.zip'),
+ ]
+
diff --git a/dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch b/dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch
new file mode 100644
index 00000000000..5e4221d5150
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch
@@ -0,0 +1,16 @@
+Portage preserve-libs removes the linker name (.so) of a library but leaves
+the soname (.so.4) and realname (.so.4.0) installed. findLib searches for
+mywxlibname.* and returns true if anything is found. Disaster ensues.
+
+
+--- a/wxPython/config.py
++++ b/wxPython/config.py
+@@ -612,7 +612,7 @@ def findLib(name, libdirs):
+ dirs = libdirs[:]
+ for d in dirs:
+ p = os.path.join(d, name)
+- if glob.glob(p+'*') != []:
++ if glob.glob(p+'*.so') != []:
+ return True
+ return False
+
diff --git a/dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch b/dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch
new file mode 100644
index 00000000000..97829198a0b
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch
@@ -0,0 +1,10 @@
+--- demo/demo.org 2005-04-28 03:00:13.431583384 +0000
++++ demo/demo.py 2005-04-28 03:00:31.886777768 +0000
+@@ -1,4 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("2.8")
++
+ import Main
+ Main.main()
diff --git a/dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch b/dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch
new file mode 100644
index 00000000000..9555bb57ef4
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch
@@ -0,0 +1,48 @@
+--- a/wxPython/setup.py
++++ b/wxPython/setup.py
+@@ -887,13 +887,6 @@ WX_PKGLIST = [ 'wx',
+ 'wx.tools',
+ 'wx.tools.XRCed',
+ 'wx.tools.XRCed.plugins',
+- 'wx.tools.Editra',
+- 'wx.tools.Editra.src',
+- 'wx.tools.Editra.src.autocomp',
+- 'wx.tools.Editra.src.eclib',
+- 'wx.tools.Editra.src.ebmlib',
+- 'wx.tools.Editra.src.extern',
+- 'wx.tools.Editra.src.syntax',
+ ]
+
+ if not EGGing:
+@@ -920,7 +913,6 @@ else:
+ opj('scripts/pywrap'),
+ opj('scripts/pywxrc'),
+ opj('scripts/xrced'),
+- opj('scripts/editra'),
+ ]
+ if os.name == 'nt':
+ SCRIPTS.append( opj('scripts/genaxmodule') )
+@@ -934,15 +926,6 @@ DATA_FILES += find_data_files('wx/tools/XRCed', '*.txt', '*.xrc', '*.htb')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins', '*.crx')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins/bitmaps', '*.png')
+
+-DATA_FILES += find_data_files('wx/tools/Editra/docs', '*.txt')
+-DATA_FILES += find_data_files('wx/tools/Editra/locale', '*.mo')
+-DATA_FILES += find_data_files('wx/tools/Editra/pixmaps',
+- '*.png', '*.icns', '*.ico', 'README', 'AUTHORS', 'COPYING')
+-DATA_FILES += find_data_files('wx/tools/Editra/plugins', '*.egg')
+-DATA_FILES += find_data_files('wx/tools/Editra/src', 'README')
+-DATA_FILES += find_data_files('wx/tools/Editra/styles', '*.ess')
+-DATA_FILES += find_data_files('wx/tools/Editra/tests/syntax', '*')
+-DATA_FILES += find_data_files('wx/tools/Editra', '[A-Z]*', recursive=False)
+
+
+ ## import pprint
+@@ -993,7 +976,6 @@ if EGGing:
+ 'pyshell = wx.py.PyShell:main',
+ 'pywrap = wx.py.PyWrap:main',
+ 'helpviewer = wx.tools.helpviewer:main',
+- 'editra = wx.tools.Editra.launcher:main',
+ 'xrced = wx.tools.XRCed.xrced:main',
+ ],
+ },
diff --git a/dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch b/dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch
new file mode 100644
index 00000000000..d860238e94d
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch
@@ -0,0 +1,37 @@
+Fix QA issue wrt Bug 457586
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/PyAlaMode.desktop wxPython-src-2.8.12.1/wxPython/distrib/PyAlaMode.desktop
+--- distrib/PyAlaMode.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/PyAlaMode.desktop 2013-03-04 13:48:51.737419595 +0800
+@@ -5,4 +5,4 @@
+ Icon=PyCrust.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/PyCrust.desktop wxPython-src-2.8.12.1/wxPython/distrib/PyCrust.desktop
+--- distrib/PyCrust.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/PyCrust.desktop 2013-03-04 13:49:12.209418445 +0800
+@@ -5,4 +5,4 @@
+ Icon=PyCrust.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/PyShell.desktop wxPython-src-2.8.12.1/wxPython/distrib/PyShell.desktop
+--- distrib/PyShell.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/PyShell.desktop 2013-03-04 13:49:28.713417518 +0800
+@@ -5,4 +5,4 @@
+ Icon=PyCrust.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/XRCed.desktop wxPython-src-2.8.12.1/wxPython/distrib/XRCed.desktop
+--- distrib/XRCed.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/XRCed.desktop 2013-03-04 13:49:46.345416526 +0800
+@@ -5,4 +5,4 @@
+ Icon=XRCed.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
diff --git a/dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch b/dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch
new file mode 100644
index 00000000000..4b49f30a138
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch
@@ -0,0 +1,55 @@
+--- a/wxPython/setup.py
++++ b/wxPython/setup.py
+@@ -887,20 +887,6 @@ WX_PKGLIST = [ 'wx',
+ 'wx.tools',
+ 'wx.tools.XRCed',
+ 'wx.tools.XRCed.plugins',
+- 'wx.tools.Editra',
+- 'wx.tools.Editra.src',
+- 'wx.tools.Editra.src.autocomp',
+- 'wx.tools.Editra.src.eclib',
+- 'wx.tools.Editra.src.ebmlib',
+- 'wx.tools.Editra.src.extern',
+- 'wx.tools.Editra.src.extern.aui',
+- 'wx.tools.Editra.src.extern.dexml',
+- 'wx.tools.Editra.src.extern.pygments',
+- 'wx.tools.Editra.src.extern.pygments.filters',
+- 'wx.tools.Editra.src.extern.pygments.formatters',
+- 'wx.tools.Editra.src.extern.pygments.lexers',
+- 'wx.tools.Editra.src.extern.pygments.styles',
+- 'wx.tools.Editra.src.syntax',
+ ]
+
+ if not EGGing:
+@@ -927,7 +913,6 @@ else:
+ opj('scripts/pywrap'),
+ opj('scripts/pywxrc'),
+ opj('scripts/xrced'),
+- opj('scripts/editra'),
+ ]
+ if os.name == 'nt':
+ SCRIPTS.append( opj('scripts/genaxmodule') )
+@@ -941,15 +926,6 @@ DATA_FILES += find_data_files('wx/tools/XRCed', '*.txt', '*.xrc', '*.htb')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins', '*.crx')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins/bitmaps', '*.png')
+
+-DATA_FILES += find_data_files('wx/tools/Editra/docs', '*.txt')
+-DATA_FILES += find_data_files('wx/tools/Editra/locale', '*.mo')
+-DATA_FILES += find_data_files('wx/tools/Editra/pixmaps',
+- '*.png', '*.icns', '*.ico', 'README', 'AUTHORS', 'COPYING')
+-DATA_FILES += find_data_files('wx/tools/Editra/plugins', '*.egg')
+-DATA_FILES += find_data_files('wx/tools/Editra/src', 'README')
+-DATA_FILES += find_data_files('wx/tools/Editra/styles', '*.ess')
+-DATA_FILES += find_data_files('wx/tools/Editra/tests/syntax', '*')
+-DATA_FILES += find_data_files('wx/tools/Editra', '[A-Z]*', recursive=False)
+
+
+ ## import pprint
+@@ -1000,7 +976,6 @@ if EGGing:
+ 'pyshell = wx.py.PyShell:main',
+ 'pywrap = wx.py.PyWrap:main',
+ 'helpviewer = wx.tools.helpviewer:main',
+- 'editra = wx.tools.Editra.launcher:main',
+ 'xrced = wx.tools.XRCed.xrced:main',
+ ],
+ },
diff --git a/dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch b/dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch
new file mode 100644
index 00000000000..1497a2c7076
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch
@@ -0,0 +1,34 @@
+From c4072ed7bc923039e544319f52d0761b7a4600a4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 22 Apr 2013 18:02:37 +0200
+Subject: [PATCH] Trigger 'EGGing' mode only by 'bdist_egg' and not 'egg_info'.
+
+We use the 'egg_info' command to explicitly enforce temporary EGG file
+location outside the source tree on Gentoo. As a result, our build
+command activates the 'EGGing' mode and wxPython is not installed
+properly.
+
+I believe that the 'EGGing' mode should be activated only by an explicit
+call to 'bdist_egg' command where the expected files are actually
+created. The 'egg_info' command is a more broad one and is often used
+implicitly, e.g. by the 'install' command.
+---
+ config.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config.py b/config.py
+index 4fbd83f..b45707d 100644
+--- a/config.py
++++ b/config.py
+@@ -23,7 +23,7 @@
+ import sys, os, glob, fnmatch, tempfile
+ import subprocess
+
+-EGGing = 'bdist_egg' in sys.argv or 'egg_info' in sys.argv
++EGGing = 'bdist_egg' in sys.argv
+ if not EGGing:
+ from distutils.core import setup, Extension
+ else:
+--
+1.8.1.5
+
diff --git a/dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch b/dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch
new file mode 100644
index 00000000000..6a456781230
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch
@@ -0,0 +1,191 @@
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/PyAlaMode.desktop wxPython-src-2.8.9.2/wxPython/distrib/PyAlaMode.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/PyAlaMode.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/PyAlaMode.desktop 2009-02-21 15:04:55.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyAlaMode
++Name=PyAlaMode (2.8)
+ Comment=GUI Python Shell with Filling and editor windows
+-Exec=pyalamode
+-Icon=PyCrust.png
++Exec=pyalamode-2.8
++Icon=/usr/share/pixmaps/PyCrust.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/PyCrust.desktop wxPython-src-2.8.9.2/wxPython/distrib/PyCrust.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/PyCrust.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/PyCrust.desktop 2009-02-21 15:06:42.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyCrust
++Name=PyCrust (2.8)
+ Comment=GUI Python Shell with Filling
+-Exec=pycrust
+-Icon=PyCrust.png
++Exec=pycrust-2.8
++Icon=/usr/share/pixmaps/PyCrust.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/PyShell.desktop wxPython-src-2.8.9.2/wxPython/distrib/PyShell.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/PyShell.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/PyShell.desktop 2009-02-21 15:08:19.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyShell
++Name=PyShell (2.8)
+ Comment=GUI Python Shell
+-Exec=pyshell
+-Icon=PyCrust.png
++Exec=pyshell-2.8
++Icon=/usr/share/pixmaps/PyCrust.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/XRCed.desktop wxPython-src-2.8.9.2/wxPython/distrib/XRCed.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/XRCed.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/XRCed.desktop 2009-02-21 15:09:22.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=XRCed
++Name=XRCed (2.8)
+ Comment=wxPython XRC resource editor
+-Exec=xrced
+-Icon=XRCed.png
++Exec=xrced-2.8
++Icon=/usr/share/pixmaps/XRCed.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/editra wxPython-src-2.8.9.2/wxPython/scripts/editra
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/editra 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/editra 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.Editra.launcher import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/genaxmodule wxPython-src-2.8.9.2/wxPython/scripts/genaxmodule
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/genaxmodule 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/genaxmodule 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.genaxmodule import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/helpviewer wxPython-src-2.8.9.2/wxPython/scripts/helpviewer
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/helpviewer 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/helpviewer 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.helpviewer import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/img2png wxPython-src-2.8.9.2/wxPython/scripts/img2png
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/img2png 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/img2png 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.img2png import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/img2py wxPython-src-2.8.9.2/wxPython/scripts/img2py
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/img2py 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/img2py 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.img2py import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/img2xpm wxPython-src-2.8.9.2/wxPython/scripts/img2xpm
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/img2xpm 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/img2xpm 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.img2xpm import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalacarte wxPython-src-2.8.9.2/wxPython/scripts/pyalacarte
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalacarte 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pyalacarte 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyAlaCarte import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalamode wxPython-src-2.8.9.2/wxPython/scripts/pyalamode
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalamode 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pyalamode 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyAlaMode import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pycrust wxPython-src-2.8.9.2/wxPython/scripts/pycrust
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pycrust 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pycrust 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyCrust import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pyshell wxPython-src-2.8.9.2/wxPython/scripts/pyshell
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pyshell 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pyshell 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyShell import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pywrap wxPython-src-2.8.9.2/wxPython/scripts/pywrap
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pywrap 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pywrap 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyWrap import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pywxrc wxPython-src-2.8.9.2/wxPython/scripts/pywxrc
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pywxrc 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pywxrc 2009-02-21 15:09:58.000000000 -0600
+@@ -1,5 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("2.8")
+ from wx.tools.pywxrc import main
+ main()
+
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/xrced wxPython-src-2.8.9.2/wxPython/scripts/xrced
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/xrced 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/xrced 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.XRCed.xrced import main
+ main()
diff --git a/dev-python/wxpython/files/wxpython-2.9-wxversion-demo.patch b/dev-python/wxpython/files/wxpython-2.9-wxversion-demo.patch
new file mode 100644
index 00000000000..c928ae27d85
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.9-wxversion-demo.patch
@@ -0,0 +1,10 @@
+--- demo/demo.org
++++ demo/demo.py
+@@ -1,4 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("2.9")
++
+ import Main
+ Main.main()
diff --git a/dev-python/wxpython/files/wxpython-2.9-wxversion-scripts.patch b/dev-python/wxpython/files/wxpython-2.9-wxversion-scripts.patch
new file mode 100644
index 00000000000..d037cc95dec
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.9-wxversion-scripts.patch
@@ -0,0 +1,221 @@
+--- a/distrib/PyAlaMode.desktop
++++ b/distrib/PyAlaMode.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyAlaMode
++Name=PyAlaMode (2.9)
+ Comment=GUI Python Shell with Filling and editor windows
+-Exec=pyalamode
+-Icon=PyCrust.png
++Exec=pyalamode-2.9
++Icon=/usr/share/pixmaps/PyCrust-2.9.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+--- a/distrib/PyCrust.desktop
++++ b/distrib/PyCrust.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyCrust
++Name=PyCrust (2.9)
+ Comment=GUI Python Shell with Filling
+-Exec=pycrust
+-Icon=PyCrust.png
++Exec=pycrust-2.9
++Icon=/usr/share/pixmaps/PyCrust-2.9.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+--- a/distrib/PyShell.desktop
++++ b/distrib/PyShell.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyShell
++Name=PyShell (2.9)
+ Comment=GUI Python Shell
+-Exec=pyshell
+-Icon=PyCrust.png
++Exec=pyshell-2.9
++Icon=/usr/share/pixmaps/PyCrust-2.9.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+--- a/distrib/PySlices.desktop
++++ b/distrib/PySlices.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PySlices
++Name=PySlices (2.9)
+ Comment=GUI Python Shell with Filling
+-Exec=pyslices
+-Icon=PySlices.png
++Exec=pyslices-2.9
++Icon=/usr/share/pixmaps/PySlices-2.9.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+--- a/distrib/PySlicesShell.desktop
++++ b/distrib/PySlicesShell.desktop
+@@ -1,9 +1,9 @@
+
+ [Desktop Entry]
+-Name=PySlicesShell
++Name=PySlicesShell (2.9)
+ Comment=GUI Python Shell
+-Exec=pysliceshell
+-Icon=PySlices.png
++Exec=pysliceshell-2.9
++Icon=/usr/share/pixmaps/PySlices-2.9.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+--- a/distrib/XRCed.desktop
++++ b/distrib/XRCed.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=XRCed
++Name=XRCed (2.9)
+ Comment=wxPython XRC resource editor
+-Exec=xrced
+-Icon=XRCed.png
++Exec=xrced-2.9
++Icon=/usr/share/pixmaps/XRCed-2.9.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+--- a/scripts/editra
++++ b/scripts/editra
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.Editra.launcher import main
+ main()
+--- a/scripts/genaxmodule
++++ b/scripts/genaxmodule
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.genaxmodule import main
+ main()
+--- a/scripts/helpviewer
++++ b/scripts/helpviewer
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.helpviewer import main
+ main()
+--- a/scripts/img2png
++++ b/scripts/img2png
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.img2png import main
+ main()
+--- a/scripts/img2py
++++ b/scripts/img2py
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.img2py import main
+ main()
+--- a/scripts/img2xpm
++++ b/scripts/img2xpm
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.img2xpm import main
+ main()
+--- a/scripts/pyalacarte
++++ b/scripts/pyalacarte
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyAlaCarte import main
+ main()
+--- a/scripts/pyalamode
++++ b/scripts/pyalamode
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyAlaMode import main
+ main()
+--- a/scripts/pycrust
++++ b/scripts/pycrust
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyCrust import main
+ main()
+--- a/scripts/pyshell
++++ b/scripts/pyshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyShell import main
+ main()
+--- a/scripts/pyslices
++++ b/scripts/pyslices
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PySlices import main
+ main()
+--- a/scripts/pysliceshell
++++ b/scripts/pysliceshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PySlicesShell import main
+ main()
+--- a/scripts/pywrap
++++ b/scripts/pywrap
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyWrap import main
+ main()
+--- a/scripts/pywxrc
++++ b/scripts/pywxrc
+@@ -1,5 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("2.9")
+ from wx.tools.pywxrc import main
+ main()
+
+--- a/scripts/xrced
++++ b/scripts/xrced
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.XRCed.xrced import main
+ main()
diff --git a/dev-python/wxpython/files/wxpython-2.9.4.1-wxversion-scripts.patch b/dev-python/wxpython/files/wxpython-2.9.4.1-wxversion-scripts.patch
new file mode 100644
index 00000000000..7067af9eee7
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.9.4.1-wxversion-scripts.patch
@@ -0,0 +1,211 @@
+--- a/distrib/PyAlaMode.desktop
++++ b/distrib/PyAlaMode.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyAlaMode
++Name=PyAlaMode (2.9)
+ Comment=GUI Python Shell with Filling and editor windows
+-Exec=pyalamode
+-Icon=PyCrust
++Exec=pyalamode-2.9
++Icon=PyCrust-2.9
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PyCrust.desktop
++++ b/distrib/PyCrust.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyCrust
++Name=PyCrust (2.9)
+ Comment=GUI Python Shell with Filling
+-Exec=pycrust
+-Icon=PyCrust
++Exec=pycrust-2.9
++Icon=PyCrust-2.9
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PyShell.desktop
++++ b/distrib/PyShell.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyShell
++Name=PyShell (2.9)
+ Comment=GUI Python Shell
+-Exec=pyshell
+-Icon=PyCrust
++Exec=pyshell-2.9
++Icon=PyCrust-2.9
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PySlices.desktop
++++ b/distrib/PySlices.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PySlices
++Name=PySlices (2.9)
+ Comment=GUI Python Shell with Filling
+-Exec=pyslices
+-Icon=PySlices
++Exec=pyslices-2.9
++Icon=PySlices-2.9
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PySlicesShell.desktop
++++ b/distrib/PySlicesShell.desktop
+@@ -1,9 +1,8 @@
+-
+ [Desktop Entry]
+-Name=PySlicesShell
++Name=PySlicesShell (2.9)
+ Comment=GUI Python Shell
+-Exec=pysliceshell
+-Icon=PySlices
++Exec=pysliceshell-2.9
++Icon=PySlices-2.9
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/XRCed.desktop
++++ b/distrib/XRCed.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=XRCed
++Name=XRCed (2.9)
+ Comment=wxPython XRC resource editor
+-Exec=xrced
+-Icon=XRCed
++Exec=xrced-2.9
++Icon=XRCed-2.9
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/scripts/genaxmodule
++++ b/scripts/genaxmodule
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.genaxmodule import main
+ main()
+--- a/scripts/helpviewer
++++ b/scripts/helpviewer
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.helpviewer import main
+ main()
+--- a/scripts/img2png
++++ b/scripts/img2png
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.img2png import main
+ main()
+--- a/scripts/img2py
++++ b/scripts/img2py
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.img2py import main
+ main()
+--- a/scripts/img2xpm
++++ b/scripts/img2xpm
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.img2xpm import main
+ main()
+--- a/scripts/pyalacarte
++++ b/scripts/pyalacarte
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyAlaCarte import main
+ main()
+--- a/scripts/pyalamode
++++ b/scripts/pyalamode
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyAlaMode import main
+ main()
+--- a/scripts/pycrust
++++ b/scripts/pycrust
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyCrust import main
+ main()
+--- a/scripts/pyshell
++++ b/scripts/pyshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyShell import main
+ main()
+--- a/scripts/pyslices
++++ b/scripts/pyslices
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PySlices import main
+ main()
+--- a/scripts/pysliceshell
++++ b/scripts/pysliceshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PySlicesShell import main
+ main()
+--- a/scripts/pywrap
++++ b/scripts/pywrap
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.py.PyWrap import main
+ main()
+--- a/scripts/pywxrc
++++ b/scripts/pywxrc
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.pywxrc import main
+ main()
+--- a/scripts/xrced
++++ b/scripts/xrced
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.9")
+
+ from wx.tools.XRCed.xrced import main
+ main()
diff --git a/dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch b/dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch
new file mode 100644
index 00000000000..a4f6b0b07a3
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch
@@ -0,0 +1,10 @@
+--- demo/demo.org
++++ demo/demo.py
+@@ -1,4 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("3.0")
++
+ import Main
+ Main.main()
diff --git a/dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch b/dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch
new file mode 100644
index 00000000000..9f0cb892226
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch
@@ -0,0 +1,211 @@
+--- a/distrib/PyAlaMode.desktop
++++ b/distrib/PyAlaMode.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyAlaMode
++Name=PyAlaMode (3.0)
+ Comment=GUI Python Shell with Filling and editor windows
+-Exec=pyalamode
+-Icon=PyCrust
++Exec=pyalamode-3.0
++Icon=PyCrust-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PyCrust.desktop
++++ b/distrib/PyCrust.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyCrust
++Name=PyCrust (3.0)
+ Comment=GUI Python Shell with Filling
+-Exec=pycrust
+-Icon=PyCrust
++Exec=pycrust-3.0
++Icon=PyCrust-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PyShell.desktop
++++ b/distrib/PyShell.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyShell
++Name=PyShell (3.0)
+ Comment=GUI Python Shell
+-Exec=pyshell
+-Icon=PyCrust
++Exec=pyshell-3.0
++Icon=PyCrust-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PySlices.desktop
++++ b/distrib/PySlices.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PySlices
++Name=PySlices (3.0)
+ Comment=GUI Python Shell with Filling
+-Exec=pyslices
+-Icon=PySlices
++Exec=pyslices-3.0
++Icon=PySlices-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PySlicesShell.desktop
++++ b/distrib/PySlicesShell.desktop
+@@ -1,9 +1,8 @@
+-
+ [Desktop Entry]
+-Name=PySlicesShell
++Name=PySlicesShell (3.0)
+ Comment=GUI Python Shell
+-Exec=pysliceshell
+-Icon=PySlices
++Exec=pysliceshell-3.0
++Icon=PySlices-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/XRCed.desktop
++++ b/distrib/XRCed.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=XRCed
++Name=XRCed (3.0)
+ Comment=wxPython XRC resource editor
+-Exec=xrced
+-Icon=XRCed
++Exec=xrced-3.0
++Icon=XRCed-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/scripts/genaxmodule
++++ b/scripts/genaxmodule
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.genaxmodule import main
+ main()
+--- a/scripts/helpviewer
++++ b/scripts/helpviewer
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.helpviewer import main
+ main()
+--- a/scripts/img2png
++++ b/scripts/img2png
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.img2png import main
+ main()
+--- a/scripts/img2py
++++ b/scripts/img2py
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.img2py import main
+ main()
+--- a/scripts/img2xpm
++++ b/scripts/img2xpm
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.img2xpm import main
+ main()
+--- a/scripts/pyalacarte
++++ b/scripts/pyalacarte
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyAlaCarte import main
+ main()
+--- a/scripts/pyalamode
++++ b/scripts/pyalamode
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyAlaMode import main
+ main()
+--- a/scripts/pycrust
++++ b/scripts/pycrust
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyCrust import main
+ main()
+--- a/scripts/pyshell
++++ b/scripts/pyshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyShell import main
+ main()
+--- a/scripts/pyslices
++++ b/scripts/pyslices
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PySlices import main
+ main()
+--- a/scripts/pysliceshell
++++ b/scripts/pysliceshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PySlicesShell import main
+ main()
+--- a/scripts/pywrap
++++ b/scripts/pywrap
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyWrap import main
+ main()
+--- a/scripts/pywxrc
++++ b/scripts/pywxrc
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.pywxrc import main
+ main()
+--- a/scripts/xrced
++++ b/scripts/xrced
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.XRCed.xrced import main
+ main()
diff --git a/dev-python/wxpython/metadata.xml b/dev-python/wxpython/metadata.xml
new file mode 100644
index 00000000000..a9a6cc28e75
--- /dev/null
+++ b/dev-python/wxpython/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>wxwidgets</herd>
+ <herd>python</herd>
+ <use>
+ <flag name="examples">Install interactive demo module browser and sample applets.</flag>
+ <flag name="doc">Install HTML wxWidgets docs and wxpython API reference.</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">wxpython</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild b/dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild
new file mode 100644
index 00000000000..9862c009da1
--- /dev/null
+++ b/dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild
@@ -0,0 +1,195 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER="2.8"
+
+inherit alternatives distutils-r1 eutils fdo-mime flag-o-matic wxwidgets
+
+MY_P="${P/wxpython-/wxPython-src-}"
+
+DESCRIPTION="A blending of the wxWindows C++ class library with Python"
+HOMEPAGE="http://www.wxpython.org/"
+SRC_URI="
+ mirror://sourceforge/wxpython/${MY_P}.tar.bz2
+ doc? (
+ mirror://sourceforge/wxpython/wxPython-docs-${PV}.tar.bz2
+ mirror://sourceforge/wxpython/wxPython-newdocs-2.8.9.2.tar.bz2 )
+ examples? ( mirror://sourceforge/wxpython/wxPython-demo-${PV}.tar.bz2 )"
+
+LICENSE="wxWinLL-3"
+SLOT="2.8"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="cairo doc examples opengl"
+
+RDEPEND="
+ dev-lang/python-exec:2[${PYTHON_USEDEP}]
+ >=x11-libs/wxGTK-${PV}:${WX_GTK_VER}[opengl?,tiff,X]
+ dev-libs/glib:2
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/tiff:0
+ virtual/jpeg
+ x11-libs/gtk+:2
+ x11-libs/pango[X]
+ cairo? ( >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}/wxPython"
+DOC_S="${WORKDIR}/wxPython-${PV}"
+
+# The hacky build system seems to be broken with out-of-source builds,
+# and installs 'wx' package globally.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
+
+ if use doc; then
+ cd "${DOC_S}" || die
+ epatch "${FILESDIR}"/${PN}-${SLOT}-cache-writable.patch
+ fi
+
+ if use examples; then
+ cd "${DOC_S}" || die
+ epatch "${FILESDIR}"/${PN}-${SLOT}-wxversion-demo.patch
+ fi
+
+ cd "${S}" || die
+
+ local PATCHES=(
+ "${FILESDIR}"/${PN}-2.8.9-wxversion-scripts.patch
+ # drop editra - we have it as a separate package now
+ "${FILESDIR}"/${PN}-2.8.12-drop-editra.patch
+ "${FILESDIR}"/${PN}-2.8.12-drop-categories.patch
+ "${FILESDIR}"/${PN}-2.8-no-preservatives-added.patch
+ # fix handling egg_info command
+ "${FILESDIR}"/${PN}-2.8.12.1-disable-egging-mode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+ # Workaround, buildsystem uses CFLAGS as CXXFLAGS
+ export CFLAGS="${CXXFLAGS}"
+ need-wxwidgets unicode
+
+ mydistutilsargs=(
+ WX_CONFIG="${WX_CONFIG}"
+ WXPORT=gtk2
+ UNICODE=1
+ BUILD_GLCANVAS=$(usex opengl 1 0)
+ )
+}
+
+python_compile() {
+ # We need to have separate libdirs due to hackery, bug #455332.
+ distutils-r1_python_compile \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+}
+
+python_install() {
+ distutils-r1_python_install \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+
+ # adjust the filenames for wxPython slots.
+ local file
+ for file in "${D}$(python_get_sitedir)"/wx{version.*,.pth}; do
+ mv "${file}" "${file}-${SLOT}" || die
+ done
+ cd "${ED}"usr/lib/python-exec/"${EPYTHON}" || die
+ for file in *; do
+ mv "${file}" "${file}-${SLOT}" || die
+
+ # wrappers are common to all impls, so a parallel run may
+ # move it for us. ln+rm is more failure-proof.
+ ln -fs ../lib/python-exec/python-exec2 "${ED}usr/bin/${file}-${SLOT}" || die
+ rm -f "${ED}usr/bin/${file}"
+ done
+}
+
+python_install_all() {
+ dodoc docs/{CHANGES,PyManual,README,wxPackage,wxPythonManual}.txt
+
+ domenu distrib/{Py{AlaMode,Crust,Shell},XRCed}.desktop
+ newicon wx/py/PyCrust_32.png PyCrust.png
+ newicon wx/tools/XRCed/XRCed_32.png XRCed.png
+
+ docdir=${D}usr/share/doc/${PF}
+
+ if use doc; then
+ docinto docs
+ dodoc -r "${DOC_S}"/docs/.
+ # For some reason newer API docs aren't available so use 2.8.9.2's
+ dodoc -r "${WORKDIR}"/wxPython-2.8.9.2/docs/.
+
+ docompress -x /usr/share/doc/${PF}/docs
+ fi
+
+ if use examples; then
+ docinto demo
+ dodoc -r "${DOC_S}"/demo/.
+ docinto samples
+ dodoc -r "${DOC_S}"/samples/.
+
+ [[ -e ${docdir}/samples/embedded/embedded ]] \
+ && rm -f "${docdir}"/samples/embedded/embedded
+
+ docompress -x /usr/share/doc/${PF}/{demo,samples}
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+
+ create_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl create_symlinks
+
+ echo
+ elog "Gentoo uses the Multi-version method for SLOT'ing."
+ elog "Developers, see this site for instructions on using"
+ elog "2.6 or 2.8 with your apps:"
+ elog "http://wiki.wxpython.org/index.cgi/MultiVersionInstalls"
+ if use doc; then
+ echo
+ elog "To access the general wxWidgets documentation, run"
+ elog "/usr/share/doc/${PF}/docs/viewdocs.py"
+ echo
+ elog "wxPython documentation is available by pointing a browser"
+ elog "at /usr/share/doc/${PF}/docs/api/index.html"
+ fi
+ if use examples; then
+ echo
+ elog "The demo.py app which contains hundreds of demo modules"
+ elog "with documentation and source code has been installed at"
+ elog "/usr/share/doc/${PF}/demo/demo.py"
+ echo
+ elog "Many more example apps and modules can be found in"
+ elog "/usr/share/doc/${PF}/samples/"
+ fi
+ echo
+ elog "Editra is not packaged with wxpython in Gentoo."
+ elog "You can find it in the tree as app-editors/editra"
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+
+ update_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}
diff --git a/dev-python/wxpython/wxpython-2.9.4.1-r2.ebuild b/dev-python/wxpython/wxpython-2.9.4.1-r2.ebuild
new file mode 100644
index 00000000000..cd309a63085
--- /dev/null
+++ b/dev-python/wxpython/wxpython-2.9.4.1-r2.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER="2.9"
+
+inherit alternatives distutils-r1 eutils fdo-mime flag-o-matic wxwidgets
+
+MY_PN="wxPython-src"
+
+DESCRIPTION="A blending of the wxWindows C++ class library with Python"
+HOMEPAGE="http://www.wxpython.org/"
+SRC_URI="
+ mirror://sourceforge/wxpython/${MY_PN}-2.9.4.0.tar.bz2
+ examples? ( mirror://sourceforge/wxpython/wxPython-demo-2.9.4.0.tar.bz2 )
+ mirror://sourceforge/wxpython/${MY_PN}-2.9.4.1.patch"
+
+LICENSE="wxWinLL-3"
+SLOT="2.9"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="cairo examples opengl"
+
+RDEPEND="
+ dev-lang/python-exec:2[${PYTHON_USEDEP}]
+ >=x11-libs/wxGTK-${PV}:${WX_GTK_VER}[opengl?,tiff,X]
+ dev-libs/glib:2
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/tiff:0
+ virtual/jpeg
+ x11-libs/gtk+:2
+ x11-libs/pango[X]
+ cairo? ( >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-2.9.4.0/wxPython"
+DOC_S="${WORKDIR}/wxPython-2.9.4.0"
+
+# The hacky build system seems to be broken with out-of-source builds,
+# and installs 'wx' package globally.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
+
+ cd .. || die
+ epatch "${DISTDIR}"/${MY_PN}-${PV}.patch
+
+ if use examples; then
+ cd "${DOC_S}"
+ epatch "${FILESDIR}"/${PN}-${SLOT}-wxversion-demo.patch
+ fi
+
+ cd "${S}" || die
+ local PATCHES=(
+ "${FILESDIR}"/${P}-wxversion-scripts.patch
+ # drop editra - we have it as a separate package now
+ "${FILESDIR}"/${PN}-2.8.11-drop-editra.patch
+ "${FILESDIR}"/${PN}-2.8-no-preservatives-added.patch
+ # fix handling egg_info command
+ "${FILESDIR}"/${PN}-2.8.12.1-disable-egging-mode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+ need-wxwidgets unicode
+
+ mydistutilsargs=(
+ WX_CONFIG="${WX_CONFIG}"
+ WXPORT=gtk2
+ UNICODE=1
+ BUILD_GLCANVAS=$(usex opengl 1 0)
+ )
+}
+
+python_compile() {
+ # We need to have separate libdirs due to hackery, bug #455332.
+ distutils-r1_python_compile \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+}
+
+python_install() {
+ distutils-r1_python_install \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+
+ # adjust the filenames for wxPython slots.
+ local file
+ for file in "${D}$(python_get_sitedir)"/wx{version.*,.pth}; do
+ mv "${file}" "${file}-${SLOT}" || die
+ done
+ cd "${ED}"usr/lib/python-exec/"${EPYTHON}" || die
+ for file in *; do
+ mv "${file}" "${file}-${SLOT}" || die
+
+ # wrappers are common to all impls, so a parallel run may
+ # move it for us. ln+rm is more failure-proof.
+ ln -fs ../lib/python-exec/python-exec2 "${ED}usr/bin/${file}-${SLOT}" || die
+ rm -f "${ED}usr/bin/${file}"
+ done
+}
+
+python_install_all() {
+ dodoc docs/{CHANGES,PyManual,README,wxPackage,wxPythonManual}.txt
+
+ for x in {Py{AlaMode,Crust,Shell},XRCed}; do
+ newmenu distrib/${x}.desktop ${x}-${SLOT}.desktop
+ done
+ newicon wx/py/PyCrust_32.png PyCrust-${SLOT}.png
+ newicon wx/py/PySlices_32.png PySlices-${SLOT}.png
+ newicon wx/tools/XRCed/XRCed_32.png XRCed-${SLOT}.png
+
+ if use examples; then
+ docinto demo
+ dodoc -r "${DOC_S}"/demo/.
+ docinto samples
+ dodoc -r "${DOC_S}"/samples/.
+
+ [[ -e ${docdir}/samples/embedded/embedded ]] \
+ && rm -f "${docdir}"/samples/embedded/embedded
+
+ docompress -x /usr/share/doc/${PF}/{demo,samples}
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+
+ create_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl create_symlinks
+
+ echo
+ elog "Gentoo uses the Multi-version method for SLOT'ing."
+ elog "Developers, see this site for instructions on using"
+ elog "2.8 or 2.9 with your apps:"
+ elog "http://wiki.wxpython.org/index.cgi/MultiVersionInstalls"
+ if use examples; then
+ echo
+ elog "The demo.py app which contains demo modules with"
+ elog "documentation and source code has been installed at"
+ elog "/usr/share/doc/${PF}/demo/demo.py"
+ echo
+ elog "More example apps and modules can be found in"
+ elog "/usr/share/doc/${PF}/samples/"
+ fi
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+
+ update_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}
diff --git a/dev-python/wxpython/wxpython-3.0.0.0.ebuild b/dev-python/wxpython/wxpython-3.0.0.0.ebuild
new file mode 100644
index 00000000000..e318a4067d3
--- /dev/null
+++ b/dev-python/wxpython/wxpython-3.0.0.0.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER="3.0"
+
+inherit alternatives distutils-r1 eutils fdo-mime flag-o-matic wxwidgets
+
+MY_PN="wxPython-src"
+
+DESCRIPTION="A blending of the wxWindows C++ class library with Python"
+HOMEPAGE="http://www.wxpython.org/"
+SRC_URI="
+ mirror://sourceforge/wxpython/${MY_PN}-${PV}.tar.bz2
+ examples? ( mirror://sourceforge/wxpython/wxPython-demo-${PV}.tar.bz2 )"
+
+LICENSE="wxWinLL-3"
+SLOT="3.0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="cairo examples libnotify opengl"
+
+RDEPEND="
+ dev-lang/python-exec:2[${PYTHON_USEDEP}]
+ >=x11-libs/wxGTK-${PV}:${WX_GTK_VER}=[libnotify=,opengl?,tiff,X]
+ dev-libs/glib:2
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/tiff:0
+ virtual/jpeg
+ x11-libs/gtk+:2
+ x11-libs/pango[X]
+ cairo? ( >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}/wxPython"
+DOC_S="${WORKDIR}/wxPython-${PV}"
+
+# The hacky build system seems to be broken with out-of-source builds,
+# and installs 'wx' package globally.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
+
+ if use examples; then
+ cd "${DOC_S}"
+ epatch "${FILESDIR}"/${PN}-${SLOT}-wxversion-demo.patch
+ fi
+
+ cd "${S}"
+ local PATCHES=(
+ "${FILESDIR}"/${P}-wxversion-scripts.patch
+ # drop editra - we have it as a separate package now
+ "${FILESDIR}"/${PN}-2.8.11-drop-editra.patch
+ "${FILESDIR}"/${PN}-2.8-no-preservatives-added.patch
+ # fix handling egg_info command
+ "${FILESDIR}"/${PN}-2.8.12.1-disable-egging-mode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ need-wxwidgets unicode
+
+ mydistutilsargs=(
+ WX_CONFIG="${WX_CONFIG}"
+ WXPORT=gtk2
+ UNICODE=1
+ BUILD_GLCANVAS=$(usex opengl 1 0)
+ )
+}
+
+python_compile() {
+ # We need to have separate libdirs due to hackery, bug #455332.
+ distutils-r1_python_compile \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+}
+
+python_install() {
+ distutils-r1_python_install \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+
+ # adjust the filenames for wxPython slots.
+ local file
+ for file in "${D}$(python_get_sitedir)"/wx{version.*,.pth}; do
+ mv "${file}" "${file}-${SLOT}" || die
+ done
+ cd "${ED}"usr/lib/python-exec/"${EPYTHON}" || die
+ for file in *; do
+ mv "${file}" "${file}-${SLOT}" || die
+
+ # wrappers are common to all impls, so a parallel run may
+ # move it for us. ln+rm is more failure-proof.
+ ln -fs ../lib/python-exec/python-exec2 "${ED}usr/bin/${file}-${SLOT}" || die
+ rm -f "${ED}usr/bin/${file}"
+ done
+}
+
+python_install_all() {
+ dodoc docs/{CHANGES,PyManual,README,wxPackage,wxPythonManual}.txt
+
+ for x in {Py{AlaMode,Crust,Shell},XRCed}; do
+ newmenu distrib/${x}.desktop ${x}-${SLOT}.desktop
+ done
+ newicon wx/py/PyCrust_32.png PyCrust-${SLOT}.png
+ newicon wx/py/PySlices_32.png PySlices-${SLOT}.png
+ newicon wx/tools/XRCed/XRCed_32.png XRCed-${SLOT}.png
+
+ if use examples; then
+ docinto demo
+ dodoc -r "${DOC_S}"/demo/.
+ docinto samples
+ dodoc -r "${DOC_S}"/samples/.
+
+ [[ -e ${docdir}/samples/embedded/embedded ]] \
+ && rm -f "${docdir}"/samples/embedded/embedded
+
+ docompress -x /usr/share/doc/${PF}/{demo,samples}
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+
+ create_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl create_symlinks
+
+ echo
+ elog "Gentoo uses the Multi-version method for SLOT'ing."
+ elog "Developers, see this site for instructions on using"
+ elog "it with your apps:"
+ elog "http://wiki.wxpython.org/index.cgi/MultiVersionInstalls"
+ if use examples; then
+ echo
+ elog "The demo.py app which contains demo modules with"
+ elog "documentation and source code has been installed at"
+ elog "/usr/share/doc/${PF}/demo/demo.py"
+ echo
+ elog "More example apps and modules can be found in"
+ elog "/usr/share/doc/${PF}/samples/"
+ fi
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+
+ update_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}
diff --git a/dev-python/wxpython/wxpython-3.0.1.1.ebuild b/dev-python/wxpython/wxpython-3.0.1.1.ebuild
new file mode 100644
index 00000000000..fe6a82dce9a
--- /dev/null
+++ b/dev-python/wxpython/wxpython-3.0.1.1.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER="3.0"
+
+inherit alternatives distutils-r1 eutils fdo-mime flag-o-matic wxwidgets
+
+MY_PN="wxPython-src"
+
+DESCRIPTION="A blending of the wxWindows C++ class library with Python"
+HOMEPAGE="http://www.wxpython.org/"
+SRC_URI="
+ mirror://sourceforge/wxpython/${MY_PN}-${PV}.tar.bz2
+ examples? ( mirror://sourceforge/wxpython/wxPython-demo-${PV}.tar.bz2 )"
+
+LICENSE="wxWinLL-3"
+SLOT="3.0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="cairo examples libnotify opengl"
+
+RDEPEND="
+ dev-lang/python-exec:2[${PYTHON_USEDEP}]
+ >=x11-libs/wxGTK-${PV}:${WX_GTK_VER}=[libnotify=,opengl?,tiff,X]
+ dev-libs/glib:2
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/tiff:0
+ virtual/jpeg
+ x11-libs/gtk+:2
+ x11-libs/pango[X]
+ cairo? ( >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}/wxPython"
+DOC_S="${WORKDIR}/wxPython-${PV}"
+
+# The hacky build system seems to be broken with out-of-source builds,
+# and installs 'wx' package globally.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
+
+ if use examples; then
+ cd "${DOC_S}"
+ epatch "${FILESDIR}"/${PN}-${SLOT}-wxversion-demo.patch
+ fi
+
+ cd "${S}"
+ local PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.0.0-wxversion-scripts.patch
+ # drop editra - we have it as a separate package now
+ "${FILESDIR}"/${PN}-2.8.11-drop-editra.patch
+ "${FILESDIR}"/${PN}-2.8-no-preservatives-added.patch
+ # fix handling egg_info command
+ "${FILESDIR}"/${PN}-2.8.12.1-disable-egging-mode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ need-wxwidgets unicode
+
+ mydistutilsargs=(
+ WX_CONFIG="${WX_CONFIG}"
+ WXPORT=gtk2
+ UNICODE=1
+ BUILD_GLCANVAS=$(usex opengl 1 0)
+ )
+}
+
+python_compile() {
+ # We need to have separate libdirs due to hackery, bug #455332.
+ distutils-r1_python_compile \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+}
+
+python_install() {
+ distutils-r1_python_install \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+
+ # adjust the filenames for wxPython slots.
+ local file
+ for file in "${D}$(python_get_sitedir)"/wx{version.*,.pth}; do
+ mv "${file}" "${file}-${SLOT}" || die
+ done
+ cd "${ED}"usr/lib/python-exec/"${EPYTHON}" || die
+ for file in *; do
+ mv "${file}" "${file}-${SLOT}" || die
+
+ # wrappers are common to all impls, so a parallel run may
+ # move it for us. ln+rm is more failure-proof.
+ ln -fs ../lib/python-exec/python-exec2 "${ED}usr/bin/${file}-${SLOT}" || die
+ rm -f "${ED}usr/bin/${file}"
+ done
+}
+
+python_install_all() {
+ dodoc docs/{CHANGES,PyManual,README,wxPackage,wxPythonManual}.txt
+
+ for x in {Py{AlaMode,Crust,Shell},XRCed}; do
+ newmenu distrib/${x}.desktop ${x}-${SLOT}.desktop
+ done
+ newicon wx/py/PyCrust_32.png PyCrust-${SLOT}.png
+ newicon wx/py/PySlices_32.png PySlices-${SLOT}.png
+ newicon wx/tools/XRCed/XRCed_32.png XRCed-${SLOT}.png
+
+ if use examples; then
+ docinto demo
+ dodoc -r "${DOC_S}"/demo/.
+ docinto samples
+ dodoc -r "${DOC_S}"/samples/.
+
+ [[ -e ${docdir}/samples/embedded/embedded ]] \
+ && rm -f "${docdir}"/samples/embedded/embedded
+
+ docompress -x /usr/share/doc/${PF}/{demo,samples}
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+
+ create_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl create_symlinks
+
+ echo
+ elog "Gentoo uses the Multi-version method for SLOT'ing."
+ elog "Developers, see this site for instructions on using"
+ elog "it with your apps:"
+ elog "http://wiki.wxpython.org/index.cgi/MultiVersionInstalls"
+ if use examples; then
+ echo
+ elog "The demo.py app which contains demo modules with"
+ elog "documentation and source code has been installed at"
+ elog "/usr/share/doc/${PF}/demo/demo.py"
+ echo
+ elog "More example apps and modules can be found in"
+ elog "/usr/share/doc/${PF}/samples/"
+ fi
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+
+ update_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}
diff --git a/dev-python/wxpython/wxpython-3.0.2.0.ebuild b/dev-python/wxpython/wxpython-3.0.2.0.ebuild
new file mode 100644
index 00000000000..dc0329cfc5d
--- /dev/null
+++ b/dev-python/wxpython/wxpython-3.0.2.0.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER="3.0"
+
+inherit alternatives distutils-r1 eutils fdo-mime flag-o-matic wxwidgets
+
+MY_PN="wxPython-src"
+
+DESCRIPTION="A blending of the wxWindows C++ class library with Python"
+HOMEPAGE="http://www.wxpython.org/"
+SRC_URI="
+ mirror://sourceforge/wxpython/${MY_PN}-${PV}.tar.bz2
+ examples? ( mirror://sourceforge/wxpython/wxPython-demo-${PV}.tar.bz2 )"
+
+LICENSE="wxWinLL-3"
+SLOT="3.0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="cairo examples libnotify opengl"
+
+RDEPEND="
+ dev-lang/python-exec:2[${PYTHON_USEDEP}]
+ >=x11-libs/wxGTK-${PV}:${WX_GTK_VER}=[libnotify=,opengl?,tiff,X]
+ dev-libs/glib:2
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/tiff:0
+ virtual/jpeg
+ x11-libs/gtk+:2
+ x11-libs/pango[X]
+ cairo? ( >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}/wxPython"
+DOC_S="${WORKDIR}/wxPython-${PV}"
+
+# The hacky build system seems to be broken with out-of-source builds,
+# and installs 'wx' package globally.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
+
+ if use examples; then
+ cd "${DOC_S}"
+ epatch "${FILESDIR}"/${PN}-${SLOT}-wxversion-demo.patch
+ fi
+
+ cd "${S}"
+ local PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.0.0-wxversion-scripts.patch
+ # drop editra - we have it as a separate package now
+ "${FILESDIR}"/${PN}-2.8.11-drop-editra.patch
+ "${FILESDIR}"/${PN}-2.8-no-preservatives-added.patch
+ # fix handling egg_info command
+ "${FILESDIR}"/${PN}-2.8.12.1-disable-egging-mode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ need-wxwidgets unicode
+
+ mydistutilsargs=(
+ WX_CONFIG="${WX_CONFIG}"
+ WXPORT=gtk2
+ UNICODE=1
+ BUILD_GLCANVAS=$(usex opengl 1 0)
+ )
+}
+
+python_compile() {
+ # We need to have separate libdirs due to hackery, bug #455332.
+ distutils-r1_python_compile \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+}
+
+python_install() {
+ distutils-r1_python_install \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+
+ # adjust the filenames for wxPython slots.
+ local file
+ for file in "${D}$(python_get_sitedir)"/wx{version.*,.pth}; do
+ mv "${file}" "${file}-${SLOT}" || die
+ done
+ cd "${ED}"usr/lib/python-exec/"${EPYTHON}" || die
+ for file in *; do
+ mv "${file}" "${file}-${SLOT}" || die
+
+ # wrappers are common to all impls, so a parallel run may
+ # move it for us. ln+rm is more failure-proof.
+ ln -fs ../lib/python-exec/python-exec2 "${ED}usr/bin/${file}-${SLOT}" || die
+ rm -f "${ED}usr/bin/${file}"
+ done
+}
+
+python_install_all() {
+ dodoc docs/{CHANGES,PyManual,README,wxPackage,wxPythonManual}.txt
+
+ for x in {Py{AlaMode,Crust,Shell},XRCed}; do
+ newmenu distrib/${x}.desktop ${x}-${SLOT}.desktop
+ done
+ newicon wx/py/PyCrust_32.png PyCrust-${SLOT}.png
+ newicon wx/py/PySlices_32.png PySlices-${SLOT}.png
+ newicon wx/tools/XRCed/XRCed_32.png XRCed-${SLOT}.png
+
+ if use examples; then
+ docinto demo
+ dodoc -r "${DOC_S}"/demo/.
+ docinto samples
+ dodoc -r "${DOC_S}"/samples/.
+
+ [[ -e ${docdir}/samples/embedded/embedded ]] \
+ && rm -f "${docdir}"/samples/embedded/embedded
+
+ docompress -x /usr/share/doc/${PF}/{demo,samples}
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+
+ create_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl create_symlinks
+
+ echo
+ elog "Gentoo uses the Multi-version method for SLOT'ing."
+ elog "Developers, see this site for instructions on using"
+ elog "it with your apps:"
+ elog "http://wiki.wxpython.org/MultiVersionInstalls"
+ if use examples; then
+ echo
+ elog "The demo.py app which contains demo modules with"
+ elog "documentation and source code has been installed at"
+ elog "/usr/share/doc/${PF}/demo/demo.py"
+ echo
+ elog "More example apps and modules can be found in"
+ elog "/usr/share/doc/${PF}/samples/"
+ fi
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+
+ update_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}
diff --git a/dev-python/xcffib/Manifest b/dev-python/xcffib/Manifest
new file mode 100644
index 00000000000..e10d0feaa73
--- /dev/null
+++ b/dev-python/xcffib/Manifest
@@ -0,0 +1,6 @@
+DIST xcffib-0.1.10.tar.gz 69476 SHA256 32265750c67df13dec50b4fe4d72187cb9e38ae303a1b3b2c146ace56a225f69 SHA512 261dcf7fd7b650beba04deafd37d995ba43f0136f779230ec176c6988883d48ebb6c3bf1c79fa695822612cc8767a54f05d55206dfa8ee12f20272210d722ee1 WHIRLPOOL 5722397105a445d5e0a50af0e38f60372fc8b16658a6bf761226bee452e1e30bb689fd3ea652b4c57fa2e4131a7331efc0ac56ffcef05f7430b9021661d29aad
+DIST xcffib-0.2.0.tar.gz 69466 SHA256 160aae442f42f42ce080e7390a1ba567aedac18f7f4e09ae08a062d3d2e59774 SHA512 d81b37aea7f9805b225a46c1a2a65f3ff1b6bca0080bb60cda5511b88f1ddadb14a77507fac0cf442e73bd72179411d9a9edd528a5706cbeeb866d638d062cd8 WHIRLPOOL 26f89e0b51192197037d1ae426aacd7d2d2622c560d9d16baa90fb0e971399c9539779b9c122cdbd6536ef45f2cecaad9fa9e66c9b0fc8f0ac3f1382cf428d71
+DIST xcffib-0.2.1.tar.gz 69465 SHA256 ce4c1fc87d2c875de834a35450970ae8ea2a9f2354c25f0addc03af7d5589a6a SHA512 7d8eab6f2a782f591d898799cdf805f419d33b5736c8c90b858262600adb34eefef8944d57bea7414684cc71da7adf2924e993fd1edfa2c5ea86ff195da1d128 WHIRLPOOL 01578b0ef7fd5466dcdffeded2dd4406a9bfad4d5a53fe48e4582524045d2c4337072cbbc315a5c954456b6276d6b949d421489195e7ce4366c2aaf60e4b6bca
+DIST xcffib-0.2.5.tar.gz 72026 SHA256 7f2ff0923d27f76b04cc546729f9d106da84b7214c25ae1cf71502dda4fff988 SHA512 5323e983f5e400675a656a92b89551c80b4fe62ab29028799c63ef26f3cbfa9b2338935a57068d410f90f8afe2c31797987fbe33d68350a88db12df6701fb98a WHIRLPOOL eb0ff753ee595ac3bb12c9e9de036739577ad0926fdce22bafee6ab4b3b5e670df633d6f351ede2e65eff9051302594b97b8aaa9f7b432801266cce197032a82
+DIST xcffib-0.3.2.tar.gz 65445 SHA256 a84eecd5a1bb7570e26c83aca87a2016578ca4e353e1fa56189e95bdef063e6a SHA512 5a4c1ad2ae415a3e97af5b94267fbda56e560a27719ef6b20983f5aa8a6fe80522db9c46cc621a74988d7337cc0aad98505e68ab93699240ae91c4294284dc4d WHIRLPOOL 03e1f37a5b3861e74f93e4376cc45a26b6ca03908c2e39cf64d8a5458ebe778c46cafb460e4fa0838aa282b34c856c704fbd3c67d121feccfe230212124d04c2
+DIST xcffib-0.3.4.tar.gz 65481 SHA256 9c54f835351a1622495322f314ee58ca5cb498fe8a2123a3905a25c1fd66850b SHA512 7c70dc6ae37531e6e9649a9055e4740872fc071620825d647525a236cad95e24e2c5f950e5f916b3742588a3c79363fe56431aba0488d939930398022c832be2 WHIRLPOOL 9b99ae6959bea33df013f21f897edba89d0b66b775ed1c019f5c2a61a23293fb26a0bf3311aa225a05e862bac95ac3d4bcad50023a56dde83a2b12b968b4a987
diff --git a/dev-python/xcffib/metadata.xml b/dev-python/xcffib/metadata.xml
new file mode 100644
index 00000000000..51ccadcfeb4
--- /dev/null
+++ b/dev-python/xcffib/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">xcffib</remote-id>
+ <remote-id type="github">tych0/xcffib</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xcffib/xcffib-0.1.10.ebuild b/dev-python/xcffib/xcffib-0.1.10.ebuild
new file mode 100644
index 00000000000..481f7ea8a17
--- /dev/null
+++ b/dev-python/xcffib/xcffib-0.1.10.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://github.com/tych0/xcffib"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+COMMON_DEPEND="x11-libs/libxcb"
+
+RDEPEND="
+ >=dev-python/cffi-0.8.2:=[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
diff --git a/dev-python/xcffib/xcffib-0.2.0.ebuild b/dev-python/xcffib/xcffib-0.2.0.ebuild
new file mode 100644
index 00000000000..1b041dbccf4
--- /dev/null
+++ b/dev-python/xcffib/xcffib-0.2.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://github.com/tych0/xcffib"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+COMMON_DEPEND="x11-libs/libxcb"
+
+RDEPEND="
+ >=dev-python/cffi-0.8.2:=[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
diff --git a/dev-python/xcffib/xcffib-0.2.1.ebuild b/dev-python/xcffib/xcffib-0.2.1.ebuild
new file mode 100644
index 00000000000..1b041dbccf4
--- /dev/null
+++ b/dev-python/xcffib/xcffib-0.2.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://github.com/tych0/xcffib"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+COMMON_DEPEND="x11-libs/libxcb"
+
+RDEPEND="
+ >=dev-python/cffi-0.8.2:=[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
diff --git a/dev-python/xcffib/xcffib-0.2.5.ebuild b/dev-python/xcffib/xcffib-0.2.5.ebuild
new file mode 100644
index 00000000000..86b41e48622
--- /dev/null
+++ b/dev-python/xcffib/xcffib-0.2.5.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://github.com/tych0/xcffib"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+COMMON_DEPEND="x11-libs/libxcb"
+
+RDEPEND="
+ >=dev-python/cffi-0.8.2:=[${PYTHON_USEDEP}]
+ <dev-python/cffi-1:=[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests -d -v || die
+}
diff --git a/dev-python/xcffib/xcffib-0.3.2.ebuild b/dev-python/xcffib/xcffib-0.3.2.ebuild
new file mode 100644
index 00000000000..03452f1ddfb
--- /dev/null
+++ b/dev-python/xcffib/xcffib-0.3.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://github.com/tych0/xcffib"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+COMMON_DEPEND="x11-libs/libxcb"
+
+RDEPEND="
+ >=dev-python/cffi-0.1.1:=[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests -d -v || die
+}
diff --git a/dev-python/xcffib/xcffib-0.3.4.ebuild b/dev-python/xcffib/xcffib-0.3.4.ebuild
new file mode 100644
index 00000000000..03452f1ddfb
--- /dev/null
+++ b/dev-python/xcffib/xcffib-0.3.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="http://github.com/tych0/xcffib"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+COMMON_DEPEND="x11-libs/libxcb"
+
+RDEPEND="
+ >=dev-python/cffi-0.1.1:=[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${COMMON_DEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests -d -v || die
+}
diff --git a/dev-python/xhtml2pdf/Manifest b/dev-python/xhtml2pdf/Manifest
new file mode 100644
index 00000000000..f23a4bfe679
--- /dev/null
+++ b/dev-python/xhtml2pdf/Manifest
@@ -0,0 +1,2 @@
+DIST xhtml2pdf-0.0.5.tar.gz 97399 SHA256 1f108c09d0939025069e71e099ec88fb477076bdc781e54215d28a8d42fe5868 SHA512 7c737e8c7ac1018f6f355488a2762a2b448383bb868a34a69e1012fc1c6dc4559d2eb4de1117ee3957712990f5837d7289dc9291a5b1ecb391be0aea53f9b64d WHIRLPOOL fbe3ab0cff346a695edaeeedd7f2256a8fc471ec5a23b9e25ae733b075f931b3de78addc236d091e818f02dff4c62243737fe8c00edfe08f7ac78d0b0da9c5aa
+DIST xhtml2pdf-0.0.6.tar.gz 100628 SHA256 29dbf7da8943ccef4afb958747cd0084762821546e3cc62d23115fd7470d95f0 SHA512 b79f3a1c465ddda20e6b8ac28324d78bbb100a764d1ecd9eaec80f22f67d9266112b93ddfde067a077754058969f09e9ebed227369c3e718693d35cf451b43e9 WHIRLPOOL 1ee4d093cc8c28431d208e7496af155f1b0cb92e45a754c87dc5367aa71332239df216ec3a2045b913d0b237e92ca379c0501c1f5654af5ed491e6ba96d010f9
diff --git a/dev-python/xhtml2pdf/metadata.xml b/dev-python/xhtml2pdf/metadata.xml
new file mode 100644
index 00000000000..c670146f07b
--- /dev/null
+++ b/dev-python/xhtml2pdf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">xhtml2pdf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xhtml2pdf/xhtml2pdf-0.0.5-r1.ebuild b/dev-python/xhtml2pdf/xhtml2pdf-0.0.5-r1.ebuild
new file mode 100644
index 00000000000..46663da507d
--- /dev/null
+++ b/dev-python/xhtml2pdf/xhtml2pdf-0.0.5-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="PDF generator using HTML and CSS"
+HOMEPAGE="http://www.xhtml2pdf.com/ http://pypi.python.org/pypi/xhtml2pdf/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/html5lib[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/pyPdf[${PYTHON_USEDEP}]
+ dev-python/reportlab[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
diff --git a/dev-python/xhtml2pdf/xhtml2pdf-0.0.6-r1.ebuild b/dev-python/xhtml2pdf/xhtml2pdf-0.0.6-r1.ebuild
new file mode 100644
index 00000000000..8e8b9a77dad
--- /dev/null
+++ b/dev-python/xhtml2pdf/xhtml2pdf-0.0.6-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="PDF generator using HTML and CSS"
+HOMEPAGE="http://www.xhtml2pdf.com/ http://pypi.python.org/pypi/xhtml2pdf/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/html5lib[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ dev-python/PyPDF2[${PYTHON_USEDEP}]
+ >=dev-python/reportlab-2.2[${PYTHON_USEDEP}]
+ <dev-python/reportlab-3[${PYTHON_USEDEP}]"
+# on testing, this version fails under reportlab-3.*
+# which was still new and likely untested at time of release; Bug #530134
+RDEPEND="${DEPEND}"
diff --git a/dev-python/xlrd/Manifest b/dev-python/xlrd/Manifest
new file mode 100644
index 00000000000..37dcff2333b
--- /dev/null
+++ b/dev-python/xlrd/Manifest
@@ -0,0 +1 @@
+DIST xlrd-0.9.3.tar.gz 178490 SHA256 933a35e27da7ed7712985486b53b5cfb8dd88e076e2a0bd531373d0001d2939c SHA512 8b1480b1b0eb40435c33e6494e3f1c960d97a4e5a7f5a30d1b418485a88e4c6d2721501646eb129d9fce0bcd775aee50b866807b26da77b5c2d35d977bb247d0 WHIRLPOOL fcfb06859d79e8695d04504cf7e0a7e1eefaca856605f5ca5ae4d36073bdb67759e1edf6c0208ce726090ff63c6ad47f3daa7b783c38397be39ed5400c20c7ab
diff --git a/dev-python/xlrd/files/xlrd-0.9.3-column.patch b/dev-python/xlrd/files/xlrd-0.9.3-column.patch
new file mode 100644
index 00000000000..0a9c2749d87
--- /dev/null
+++ b/dev-python/xlrd/files/xlrd-0.9.3-column.patch
@@ -0,0 +1,59 @@
+From 6c2c1057d2780c079218fe988d1d5243eefec159 Mon Sep 17 00:00:00 2001
+From: Konstantin Lopuhin <kostia.lopuhin@gmail.com>
+Date: Wed, 18 Jun 2014 12:43:04 +0400
+Subject: [PATCH] fix parsing of bad dimensions
+
+---
+ xlrd/xlsx.py | 24 ++++++++++++++++++------
+ 1 file changed, 18 insertions(+), 6 deletions(-)
+
+diff --git a/xlrd/xlsx.py b/xlrd/xlsx.py
+index 53fbb89..763df0c 100644
+--- a/xlrd/xlsx.py
++++ b/xlrd/xlsx.py
+@@ -73,7 +73,8 @@ def augment_keys(adict, uri):
+ _UPPERCASE_1_REL_INDEX[_x] = 0
+ del _x
+
+-def cell_name_to_rowx_colx(cell_name, letter_value=_UPPERCASE_1_REL_INDEX):
++def cell_name_to_rowx_colx(cell_name, letter_value=_UPPERCASE_1_REL_INDEX,
++ allow_no_col=False):
+ # Extract column index from cell name
+ # A<row number> => 0, Z =>25, AA => 26, XFD => 16383
+ colx = 0
+@@ -85,9 +86,18 @@ def cell_name_to_rowx_colx(cell_name, letter_value=_UPPERCASE_1_REL_INDEX):
+ if lv:
+ colx = colx * 26 + lv
+ else: # start of row number; can't be '0'
+- colx = colx - 1
+- assert 0 <= colx < X12_MAX_COLS
+- break
++ if charx == 0:
++ # there was no col marker
++ if allow_no_col:
++ colx = None
++ break
++ else:
++ raise Exception(
++ 'Missing col in cell name %r', cell_name)
++ else:
++ colx = colx - 1
++ assert 0 <= colx < X12_MAX_COLS
++ break
+ except KeyError:
+ raise Exception('Unexpected character %r in cell name %r' % (c, cell_name))
+ rowx = int(cell_name[charx:]) - 1
+@@ -562,9 +572,11 @@ def do_dimension(self, elem):
+ if ref:
+ # print >> self.logfile, "dimension: ref=%r" % ref
+ last_cell_ref = ref.split(':')[-1] # example: "Z99"
+- rowx, colx = cell_name_to_rowx_colx(last_cell_ref)
++ rowx, colx = cell_name_to_rowx_colx(
++ last_cell_ref, allow_no_col=True)
+ self.sheet._dimnrows = rowx + 1
+- self.sheet._dimncols = colx + 1
++ if colx is not None:
++ self.sheet._dimncols = colx + 1
+
+ def do_merge_cell(self, elem):
+ # The ref attribute should be a cell range like "B1:D5".
diff --git a/dev-python/xlrd/metadata.xml b/dev-python/xlrd/metadata.xml
new file mode 100644
index 00000000000..22c6fed2a1b
--- /dev/null
+++ b/dev-python/xlrd/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Extract data from new and old Excel spreadsheets on any platform. Pure
+ Python (2.1 to 2.6). Strong support for Excel dates. Unicode-aware.</longdescription>
+ <upstream>
+ <remote-id type="pypi">xlrd</remote-id>
+ <remote-id type="github">python-excel/xlrd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xlrd/xlrd-0.9.3-r1.ebuild b/dev-python/xlrd/xlrd-0.9.3-r1.ebuild
new file mode 100644
index 00000000000..1a71d0916bc
--- /dev/null
+++ b/dev-python/xlrd/xlrd-0.9.3-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library for developers to extract data from Microsoft Excel (tm) spreadsheet files"
+HOMEPAGE="http://www.python-excel.org/
+ https://github.com/python-excel/xlrd/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~ppc-aix ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+
+PATCHES=( "${FILESDIR}"/${P}-column.patch )
+
+python_prepare_all() {
+ # Remove this if examples get reintroduced
+ sed -i -e "s/test_names_demo/_&/" tests/test_open_workbook.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Test failed with ${EPYTHON}"
+}
diff --git a/dev-python/xlrd/xlrd-0.9.3.ebuild b/dev-python/xlrd/xlrd-0.9.3.ebuild
new file mode 100644
index 00000000000..34a2aa012a9
--- /dev/null
+++ b/dev-python/xlrd/xlrd-0.9.3.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Library for developers to extract data from Microsoft Excel (tm) spreadsheet files"
+HOMEPAGE="http://www.python-excel.org/
+ https://github.com/python-excel/xlrd/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~ppc-aix ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+
+python_prepare_all() {
+ # Remove this if examples get reintroduced
+ sed -i -e "s/test_names_demo/_&/" tests/test_open_workbook.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Test failed with ${EPYTHON}"
+}
diff --git a/dev-python/xlsxwriter/Manifest b/dev-python/xlsxwriter/Manifest
new file mode 100644
index 00000000000..036cc3423eb
--- /dev/null
+++ b/dev-python/xlsxwriter/Manifest
@@ -0,0 +1 @@
+DIST XlsxWriter-0.7.3.tar.gz 231999 SHA256 2fa0f2d633bfbbc55a48abd4089820c744ed7a40e11c5c1580196a2c129eb8c6 SHA512 b85ef49fb6d5c6a6454292a7cdbc3fdff9674578f2e535aab7b08f671180f59934616fd78e89e007e8a662539dbbd9b0b9571b02df049a0e5f70f706d9acde35 WHIRLPOOL 7124119bd0151c76689b08fd4da74b5e5876f1047cbd63c960ff7728ed70bcc82ebcf1c44f4c08a4fe5ddcb9aca6441a5c428eab5f793028e3ef65ba3494ec85
diff --git a/dev-python/xlsxwriter/metadata.xml b/dev-python/xlsxwriter/metadata.xml
new file mode 100644
index 00000000000..6955a1f97fe
--- /dev/null
+++ b/dev-python/xlsxwriter/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">XlsxWriter</remote-id>
+ <remote-id type="github">jmcnamara/XlsxWriter</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xlsxwriter/xlsxwriter-0.7.3.ebuild b/dev-python/xlsxwriter/xlsxwriter-0.7.3.ebuild
new file mode 100644
index 00000000000..214958d30cf
--- /dev/null
+++ b/dev-python/xlsxwriter/xlsxwriter-0.7.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="XlsxWriter"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python module for creating Excel XLSX files"
+HOMEPAGE="https://pypi.python.org/pypi/XlsxWriter https://github.com/jmcnamara/XlsxWriter"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+S="${WORKDIR}"/${MY_P}
+
+python_test() {
+ nosetests --verbosity=3 || die
+}
diff --git a/dev-python/xlutils/Manifest b/dev-python/xlutils/Manifest
new file mode 100644
index 00000000000..9e88b96b753
--- /dev/null
+++ b/dev-python/xlutils/Manifest
@@ -0,0 +1 @@
+DIST xlutils-1.5.2.tar.gz 48579 SHA256 5b8f2bc41983722a63009c0ab6216227d6bbc0a0f945c9cab33cd1ebac7666d0 SHA512 5611b08516ebcfc08f43b7b5a793c0d53c9e0dfe12b597ea318f10e794d323f87b07df0f96f58b1d4542feb7339ab7c6527c956c7a7af7d8554e41dad85c63d8 WHIRLPOOL 7a1cc3ac03fbcd1c768de6a259adaaf33ca7827af8afc3d11fe03ba462797c0e173071214fbb791d497afb6ffe6577c9eca7a41577da2c51acdc88014d4587d4
diff --git a/dev-python/xlutils/metadata.xml b/dev-python/xlutils/metadata.xml
new file mode 100644
index 00000000000..d9516ac33b1
--- /dev/null
+++ b/dev-python/xlutils/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">xlutils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xlutils/xlutils-1.5.2-r1.ebuild b/dev-python/xlutils/xlutils-1.5.2-r1.ebuild
new file mode 100644
index 00000000000..f393872d036
--- /dev/null
+++ b/dev-python/xlutils/xlutils-1.5.2-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="provides a collection of utilities for working with Excel files"
+HOMEPAGE="http://pypi.python.org/pypi/xlutils"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=">=dev-python/xlwt-0.7.3[${PYTHON_USEDEP}]
+ >=dev-python/xlrd-0.7.7[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/errorhandler[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/testfixtures-1.6.1[${PYTHON_USEDEP}] )"
+
+DOCS="xlutils/readme.txt xlutils/docs/*.txt"
+
+python_test() {
+ py.test xlutils/tests
+}
diff --git a/dev-python/xlwt/Manifest b/dev-python/xlwt/Manifest
new file mode 100644
index 00000000000..846ec8b8ca8
--- /dev/null
+++ b/dev-python/xlwt/Manifest
@@ -0,0 +1,2 @@
+DIST xlwt-0.7.5.tar.gz 115100 SHA256 9478bd70b86590b9ac2697967c8a10a4917d900636349ca73eeb362a3227423c SHA512 d385c36c80002998891dd93d4ebcdd962239463ee089965961d3b8955d4783bbcdec96920891a252ee6cb076eab6b13ffad83e7758c179dcbc684e82fa8dfe35 WHIRLPOOL 46d01a1bcfc5f01585082bf3ff8750cecd7ce87b5ebe279a3d9377c8c7e272f070cb28d430285c900d0e2389469097088b6126932c76f3778b274b86696f6adc
+DIST xlwt-1.0.0.tar.gz 129588 SHA256 ac432939eec8daa9f88af994ff53f009e607a4e1102772ec0be0b2a86b2c1cf9 SHA512 45788a506635f1ef6380d46aa0af724e511e401e8347dcf48dbf4e2d90e7f4c7f66838cd9616cf58807ffb939daba1f47b0d2cf449f8cb528db41fba84cc8866 WHIRLPOOL d3d344faae89fad012f05fe5b19e5ce16dd144016abf7ea15123a9725c77a732e85d93131c692dbcaf306cdc8d1b06efcaf39227265c612200107d2c20541132
diff --git a/dev-python/xlwt/files/docbuild.patch b/dev-python/xlwt/files/docbuild.patch
new file mode 100644
index 00000000000..9468d91de78
--- /dev/null
+++ b/dev-python/xlwt/files/docbuild.patch
@@ -0,0 +1,17 @@
+diff -ur xlwt-1.0.0.orig/docs/conf.py xlwt-1.0.0/docs/conf.py
+--- docs/conf.py 2015-04-16 04:43:57.000000000 +0800
++++ docs/conf.py 2015-05-11 11:13:22.320470128 +0800
+@@ -4,7 +4,7 @@
+ on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
+ pkg_info = pkginfo.Develop(os.path.join(os.path.dirname(__file__), os.pardir))
+
+-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx']
++extensions = ['sphinx.ext.autodoc']
+ source_suffix = '.rst'
+ master_doc = 'index'
+ project = u'xlwt'
+@@ -19,4 +19,3 @@
+ html_theme = 'classic'
+
+ htmlhelp_basename = project+'doc'
+-intersphinx_mapping = {'python': ('http://docs.python.org', None)}
diff --git a/dev-python/xlwt/metadata.xml b/dev-python/xlwt/metadata.xml
new file mode 100644
index 00000000000..2d8cbb1cd75
--- /dev/null
+++ b/dev-python/xlwt/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">xlwt is a library for generating spreadsheet files that are compatible
+ with Excel 97/2000/XP/2003, OpenOffice.org Calc, and
+ Gnumeric. xlwt has full support for Unicode. Excel spreadsheets can
+ be generated on any platform without needing Excel or a COM
+ server. xlwt is a fork of pyExcelerator.</longdescription>
+ <upstream>
+ <remote-id type="pypi">xlwt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xlwt/xlwt-0.7.5.ebuild b/dev-python/xlwt/xlwt-0.7.5.ebuild
new file mode 100644
index 00000000000..6a05e5d6888
--- /dev/null
+++ b/dev-python/xlwt/xlwt-0.7.5.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to create spreadsheet files compatible with Excel"
+HOMEPAGE="http://pypi.python.org/pypi/xlwt"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+python_prepare_all() {
+ # Don't install documentation and examples in site-packages directories.
+ sed -e "/package_data/,+6d" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ local HTML_DOCS=( HISTORY.html xlwt/doc/xlwt.html )
+ use examples && local EXAMPLES=( xlwt/examples )
+ distutils-r1_python_install_all
+
+ dodoc -r tests
+ docompress -x /usr/share/doc/${PF}/tests
+}
diff --git a/dev-python/xlwt/xlwt-1.0.0.ebuild b/dev-python/xlwt/xlwt-1.0.0.ebuild
new file mode 100644
index 00000000000..37200f7dcc3
--- /dev/null
+++ b/dev-python/xlwt/xlwt-1.0.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library to create spreadsheet files compatible with Excel"
+HOMEPAGE="http://pypi.python.org/pypi/xlwt"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.3.1[${PYTHON_USEDEP}]
+ dev-python/pkginfo[${PYTHON_USEDEP}]
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+# Prevent d'loading in the doc build
+PATCHES=( "${FILESDIR}"/docbuild.patch )
+
+python_prepare_all() {
+ # Don't install documentation and examples in site-packages directories.
+ sed -e "/package_data/d" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ nosetests tests || die "tests failed under ${EPYTHON}}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ use examples && local EXAMPLES=( examples/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/xmltodict/Manifest b/dev-python/xmltodict/Manifest
new file mode 100644
index 00000000000..f747e3c28c0
--- /dev/null
+++ b/dev-python/xmltodict/Manifest
@@ -0,0 +1,2 @@
+DIST xmltodict-0.9.1.tar.gz 37721 SHA256 ba676bec7a2a2e8be0565c26807db8661f1bfd49b5fd7b2d89731270137f49f3 SHA512 4dd3ef1424f74185d37e41c6860c37c63e4d11735bd5e111025429b66ae2bff8b07a30f245dc40c85dc3e657fdfd3e91d7074adc69fc0d4b7bde1bf16d6010ac WHIRLPOOL d4dd1e1af07778757f2de80bc606656ef1488589d50f8da7d68894b9c66e7a6b3f6bc7a5ad0c35aa93e661ec9fadae028261df59dd79b9b922c274eb29d27c02
+DIST xmltodict-0.9.2.tar.gz 37875 SHA256 275d1e68c95cd7e3ee703ddc3ea7278e8281f761680d6bdd637bcd00a5c59901 SHA512 0d2bd2cce9b4484514cf16df92abdf26dfd17e222ea6a9285ca1216858bc8092bd328f39b8af851a1293e9d72f140775e12236a440004783a6bfd2321efec0c5 WHIRLPOOL 909460169cd3948dfc231040cc7f827436aafe0bd89b246e1cbf15699c84356e2947c704a555f62d4e378481b5acd5893a67bf31a9d97cb4b8f7a01fe378f76c
diff --git a/dev-python/xmltodict/metadata.xml b/dev-python/xmltodict/metadata.xml
new file mode 100644
index 00000000000..0ceb52bcca5
--- /dev/null
+++ b/dev-python/xmltodict/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">xmltodict</remote-id>
+ <remote-id type="github">martinblech/xmltodict</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xmltodict/xmltodict-0.9.1.ebuild b/dev-python/xmltodict/xmltodict-0.9.1.ebuild
new file mode 100644
index 00000000000..3c120889969
--- /dev/null
+++ b/dev-python/xmltodict/xmltodict-0.9.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+inherit distutils-r1
+
+DESCRIPTION="Makes working with XML feel like you are working with JSON"
+HOMEPAGE="https://github.com/martinblech/xmltodict/ https://pypi.python.org/pypi/xmltodict/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # avoid setuptools sandbox issues, bug #489726
+ sed -i '/setup_requires/d' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/xmltodict/xmltodict-0.9.2.ebuild b/dev-python/xmltodict/xmltodict-0.9.2.ebuild
new file mode 100644
index 00000000000..5450c5d635f
--- /dev/null
+++ b/dev-python/xmltodict/xmltodict-0.9.2.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="Makes working with XML feel like you are working with JSON"
+HOMEPAGE="https://github.com/martinblech/xmltodict/ https://pypi.python.org/pypi/xmltodict/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+python_test() {
+ nosetests || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/xmpppy/Manifest b/dev-python/xmpppy/Manifest
new file mode 100644
index 00000000000..e3eacd47791
--- /dev/null
+++ b/dev-python/xmpppy/Manifest
@@ -0,0 +1 @@
+DIST xmpppy-0.5.0-rc1.tar.gz 84993 SHA256 96d9230be2a130ce8ba4cfd09ee9487de0fa7cfe21639977b596c637b267d094 SHA512 53a37d1a8adcdc8a652e4a6efce2a7c35b4c5ef79ee7ae93134ab6d5a74f96647efbd0954eac60c26a2b507fdb7ee3e607427b11fbd1e22290a23793f03b4699 WHIRLPOOL d2a7fa4c526e6d55ffd1e7b633aafacd862d5efbe1db448ec92abfa8f9ff52af0fa726bad1da8b8d3351e483ff3180496f6eb7a9645a278c0f18039a94dee13a
diff --git a/dev-python/xmpppy/files/xmpppy-hashlib_ssl_deprecation.patch b/dev-python/xmpppy/files/xmpppy-hashlib_ssl_deprecation.patch
new file mode 100644
index 00000000000..489de037a48
--- /dev/null
+++ b/dev-python/xmpppy/files/xmpppy-hashlib_ssl_deprecation.patch
@@ -0,0 +1,69 @@
+--- xmpp/auth.py
++++ xmpp/auth.py
+@@ -21,11 +21,16 @@
+
+ from protocol import *
+ from client import PlugIn
+-import sha,base64,random,dispatcher,re
++import base64,random,dispatcher,re
+
+-import md5
+-def HH(some): return md5.new(some).hexdigest()
+-def H(some): return md5.new(some).digest()
++try:
++ from hashlib import md5, sha1
++except ImportError:
++ from md5 import new as md5
++ from sha import new as sha1
++
++def HH(some): return md5(some).hexdigest()
++def H(some): return md5(some).digest()
+ def C(some): return ':'.join(some)
+
+ class NonSASL(PlugIn):
+@@ -54,15 +59,15 @@
+
+ if query.getTag('digest'):
+ self.DEBUG("Performing digest authentication",'ok')
+- query.setTagData('digest',sha.new(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest())
++ query.setTagData('digest',sha1(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest())
+ if query.getTag('password'): query.delChild('password')
+ method='digest'
+ elif query.getTag('token'):
+ token=query.getTagData('token')
+ seq=query.getTagData('sequence')
+ self.DEBUG("Performing zero-k authentication",'ok')
+- hash = sha.new(sha.new(self.password).hexdigest()+token).hexdigest()
+- for foo in xrange(int(seq)): hash = sha.new(hash).hexdigest()
++ hash = sha1(sha1(self.password).hexdigest()+token).hexdigest()
++ for foo in xrange(int(seq)): hash = sha1(hash).hexdigest()
+ query.setTagData('hash',hash)
+ method='0k'
+ else:
+@@ -81,7 +86,7 @@
+ def authComponent(self,owner):
+ """ Authenticate component. Send handshake stanza and wait for result. Returns "ok" on success. """
+ self.handshake=0
+- owner.send(Node(NS_COMPONENT_ACCEPT+' handshake',payload=[sha.new(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest()]))
++ owner.send(Node(NS_COMPONENT_ACCEPT+' handshake',payload=[sha1(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest()]))
+ owner.RegisterHandler('handshake',self.handshakeHandler,xmlns=NS_COMPONENT_ACCEPT)
+ while not self.handshake:
+ self.DEBUG("waiting on handshake",'notify')
+--- xmpp/transports.py
++++ xmpp/transports.py
+@@ -31,6 +31,7 @@
+ from simplexml import ustr
+ from client import PlugIn
+ from protocol import *
++import warnings
+
+ # determine which DNS resolution library is available
+ HAVE_DNSPYTHON = False
+@@ -312,6 +313,7 @@
+ """ Immidiatedly switch socket to TLS mode. Used internally."""
+ """ Here we should switch pending_data to hint mode."""
+ tcpsock=self._owner.Connection
++ warnings.filterwarnings("ignore", "socket\.ssl.*ssl\.wrap_socket", DeprecationWarning)
+ tcpsock._sslObj = socket.ssl(tcpsock._sock, None, None)
+ tcpsock._sslIssuer = tcpsock._sslObj.issuer()
+ tcpsock._sslServer = tcpsock._sslObj.server()
diff --git a/dev-python/xmpppy/metadata.xml b/dev-python/xmpppy/metadata.xml
new file mode 100644
index 00000000000..c91ec5457f5
--- /dev/null
+++ b/dev-python/xmpppy/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ xmpppy is a Python library that is targeted to provide easy scripting with
+ Jabber. Similar projects are Twisted Words and jabber.py. This library was
+ not designed from scratch. It inherits some code from jabberpy and have very
+ similar API in many places. Though it is separate project since it have almost
+ completely different architecture and primarily aims to work with jabberd2 -
+ the new Open Source Jabber Server.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">xmpppy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xmpppy/xmpppy-0.5.0_rc1-r1.ebuild b/dev-python/xmpppy/xmpppy-0.5.0_rc1-r1.ebuild
new file mode 100644
index 00000000000..22a0bfba010
--- /dev/null
+++ b/dev-python/xmpppy/xmpppy-0.5.0_rc1-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Python library providing easy scripting with Jabber"
+HOMEPAGE="http://xmpppy.sourceforge.net/"
+SRC_URI="mirror://sourceforge/xmpppy/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
+IUSE="doc"
+
+RDEPEND="|| (
+ dev-python/dnspython[${PYTHON_USEDEP}]
+ dev-python/pydns[${PYTHON_USEDEP}]
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-hashlib_ssl_deprecation.patch"
+)
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dohtml -A py -r doc/.
+}
diff --git a/dev-python/xmpppy/xmpppy-0.5.0_rc1.ebuild b/dev-python/xmpppy/xmpppy-0.5.0_rc1.ebuild
new file mode 100644
index 00000000000..49104c845a0
--- /dev/null
+++ b/dev-python/xmpppy/xmpppy-0.5.0_rc1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils eutils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Python library providing easy scripting with Jabber"
+HOMEPAGE="http://xmpppy.sourceforge.net/"
+SRC_URI="mirror://sourceforge/xmpppy/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ia64 ~ppc ~ppc64 x86"
+IUSE="doc"
+
+RDEPEND="|| (
+ dev-python/dnspython
+ dev-python/pydns
+ )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools"
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_MODNAME="xmpp"
+
+src_prepare() {
+ distutils_src_prepare
+ epatch "${FILESDIR}/${PN}-hashlib_ssl_deprecation.patch"
+}
+
+src_install() {
+ distutils_src_install
+ use doc && dohtml -A py -r doc/.
+}
diff --git a/dev-python/xvfbwrapper/Manifest b/dev-python/xvfbwrapper/Manifest
new file mode 100644
index 00000000000..a154158ceaa
--- /dev/null
+++ b/dev-python/xvfbwrapper/Manifest
@@ -0,0 +1,2 @@
+DIST xvfbwrapper-0.2.2.tar.gz 3421 SHA256 58934508285c43aafac4179f26c34735b46c0bcb96b66198a4dbc68468e3cbb4 SHA512 ac71ec9a08189456c40e493f57802e872c03c0c5caf84493d77bf2e379853afe79099bcf5e5c7c0eb66ff1bf64e44bf37687a82b49864bc63a237f767752eed4 WHIRLPOOL cf3d39ff9eb68b3665c84c87cd7306134ca6d98734111855a777fe53a0528b5a212f3f082fe4d7734a460325875039511fa832e0ff9983c02c9dfc6b2bb54d90
+DIST xvfbwrapper-0.2.4.tar.gz 3215 SHA256 a7f52aefaf2e18c1aee302eb295ba9ca53ae6d3ba36df76794945a338a4b579c SHA512 26b14fd64c00ea33ad5f32dd69e59001f468ab294970ee281c81f1ae635cdea105b6057ba2e1012975fbb935ccb222585e70798e78c17f476d8b3e40f9e1346c WHIRLPOOL 791578eabe86fa9f3e6d44b9b03008fe8dbe2c9d853453afd29cfa28690d6f4cb44b948c5d991e4cdb7424a87fcce334bf7e403f2a6f781f6868f47af6a74268
diff --git a/dev-python/xvfbwrapper/metadata.xml b/dev-python/xvfbwrapper/metadata.xml
new file mode 100644
index 00000000000..ea7b0b68436
--- /dev/null
+++ b/dev-python/xvfbwrapper/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">xvfbwrapper</remote-id>
+ <remote-id type="github">cgoldberg/xvfbwrapper</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.2.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.2.ebuild
new file mode 100644
index 00000000000..4f2a0c5d716
--- /dev/null
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for running a display inside X virtual framebuffer"
+HOMEPAGE="https://github.com/cgoldberg/xvfbwrapper
+ http://pypi.python.org/pypi/xvfbwrapper"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="x11-base/xorg-server[xvfb]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/pep8[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+ unset DISPLAY
+ "${PYTHON}" test_xvfb.py || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.4.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.4.ebuild
new file mode 100644
index 00000000000..a6672d8167c
--- /dev/null
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Python wrapper for running a display inside X virtual framebuffer"
+HOMEPAGE="https://github.com/cgoldberg/xvfbwrapper
+ http://pypi.python.org/pypi/xvfbwrapper"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND="x11-base/xorg-server[xvfb]"
+DEPEND="${RDEPEND}
+ test? ( dev-python/pep8[${PYTHON_USEDEP}] )
+"
+
+python_test() {
+# "${PYTHON}" test_xvfb.py || die "Tests failed with ${EPYTHON}"
+ "${PYTHON}" -m unittest discover || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/yapps/Manifest b/dev-python/yapps/Manifest
new file mode 100644
index 00000000000..3ebfb046f2e
--- /dev/null
+++ b/dev-python/yapps/Manifest
@@ -0,0 +1 @@
+DIST Yapps-2.2.0.tar.gz 13630 SHA256 d6e16a8e22ab559ca52eab58cb0015bb088d6889fa06db795222cdccae2354af SHA512 087f99071b2615f5382f453d9b3492675704aa7e7ff54b332d7c4e337e16fbd3ab3c1b3820a7941775c0b3ecf7e255a7773cb47ea20e8adb77dc3dc8d9a49faa WHIRLPOOL 1db693327d88445657fe0a4221928bdf0b81a6c7a238ad1f15579ea853975ce1da15b31c483a6782d43576b8f32024182d131061952d8d00493ca211b2a10eb2
diff --git a/dev-python/yapps/metadata.xml b/dev-python/yapps/metadata.xml
new file mode 100644
index 00000000000..6c460c309c0
--- /dev/null
+++ b/dev-python/yapps/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">Yapps</remote-id>
+ <remote-id type="github">smurfix/yapps</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/yapps/yapps-2.2.0.ebuild b/dev-python/yapps/yapps-2.2.0.ebuild
new file mode 100644
index 00000000000..d337dee924f
--- /dev/null
+++ b/dev-python/yapps/yapps-2.2.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="Yapps"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="An easy to use parser generator"
+HOMEPAGE="https://github.com/smurfix/yapps"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_PN}-${PV}"
diff --git a/dev-python/yapsy/Manifest b/dev-python/yapsy/Manifest
new file mode 100644
index 00000000000..12bd7daa83c
--- /dev/null
+++ b/dev-python/yapsy/Manifest
@@ -0,0 +1,3 @@
+DIST Yapsy-1.10.423.tar.gz 152691 SHA256 9ba7767f63ab591c0ad3fc8b2bd11ac19a0fabb7259bcb1733858eab5bd9b1e1 SHA512 46447ac2cc2583fcb7fe1c89ded74654efc4d3c9ecc79f955db1e0e9875c9ac2f18e12de3b5f0886c34fdbcdadf601523eb2cd1d8e74b24b791f4f6900dcdcc3 WHIRLPOOL 7dbd717a40296f05da0aec09e05b40c039613d0dc8622b337aa21ddc1919c71e48d9e9ed31c8cf4b89a9c06e5752da2eb684bbdcc843c7f1e8e672920e10d20d
+DIST Yapsy-1.11.023.tar.gz 80595 SHA256 7b494e6cd62cc598d6d6f3be49dd45e9b1670b5d341627f60664d7002e4e0539 SHA512 98ce3925084119a7760ee5f8ed8904d6d4d39746918ff3eccfc64dd890a99aede0249dc3c97482fd53df441730083f790aa81d459ba4395e66f39248a5e14d79 WHIRLPOOL 91a15a51f0d4d64082202366a337ae91e433a426dca6f7c8b71470fb9f8354d36e1c45f5434a0c5a7474b2f3cfdc99c03a616402dbe1a4796519bb7a58be11a4
+DIST Yapsy-1.11.223.tar.gz 80783 SHA256 45bb39a72461913388d7f3e92ce33816e84fff59946c45e16796eb1fb1d5f2a6 SHA512 690d0ab78eafede5a75cf7b7bbcfce00b05c7b6f958980c3b67815bcaf848a8098b6e81afd1d95c5821fa4bb7affefab2cde208ff7c8ac7952615c8ddbafe305 WHIRLPOOL 05a3682f0c19a2c13ed97e9e17041f5bf7fd35a7928c4ff1bf27881a1575f1d1923c933ade7bb14569a732c6ddbcdffd3cba4ac546e8e4c1263f838876325082
diff --git a/dev-python/yapsy/metadata.xml b/dev-python/yapsy/metadata.xml
new file mode 100644
index 00000000000..9edc9cdc8ef
--- /dev/null
+++ b/dev-python/yapsy/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">yapsy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/yapsy/yapsy-1.10.423.ebuild b/dev-python/yapsy/yapsy-1.10.423.ebuild
new file mode 100644
index 00000000000..e7248ff4051
--- /dev/null
+++ b/dev-python/yapsy/yapsy-1.10.423.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="Yapsy-${PV}"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A fat-free DIY Python plugin management toolkit"
+HOMEPAGE="http://yapsy.sourceforge.net/"
+SRC_URI="mirror://sourceforge/yapsy/${MY_P}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/yapsy/yapsy-1.11.023.ebuild b/dev-python/yapsy/yapsy-1.11.023.ebuild
new file mode 100644
index 00000000000..9d0a1741b22
--- /dev/null
+++ b/dev-python/yapsy/yapsy-1.11.023.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="Yapsy-${PV}"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A fat-free DIY Python plugin management toolkit"
+HOMEPAGE="http://yapsy.sourceforge.net/"
+SRC_URI="mirror://sourceforge/yapsy/${MY_P}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable erroneous test
+ sed -e 's:test_default_plugins_place_is_parent_dir:_&:' \
+ -i test/test_PluginFileLocator.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/yapsy/yapsy-1.11.223.ebuild b/dev-python/yapsy/yapsy-1.11.223.ebuild
new file mode 100644
index 00000000000..9d0a1741b22
--- /dev/null
+++ b/dev-python/yapsy/yapsy-1.11.223.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="Yapsy-${PV}"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="A fat-free DIY Python plugin management toolkit"
+HOMEPAGE="http://yapsy.sourceforge.net/"
+SRC_URI="mirror://sourceforge/yapsy/${MY_P}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ # Disable erroneous test
+ sed -e 's:test_default_plugins_place_is_parent_dir:_&:' \
+ -i test/test_PluginFileLocator.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/yenc/Manifest b/dev-python/yenc/Manifest
new file mode 100644
index 00000000000..bbbaa742744
--- /dev/null
+++ b/dev-python/yenc/Manifest
@@ -0,0 +1 @@
+DIST yenc-0.4.0.tar.gz 63156 SHA256 075f6c4e4f43b7c6dafac579eabb17287b62d80e9147cbea0b046bc3ee8edd2f SHA512 06adf10daa3eb56d1960e48c4a42c432821b8c25fcf6c703560efb9d902dc7619b79509a409f436790506f12f172fe0f0c6c1bf6bff7ab5ce3856b272c62c4d9 WHIRLPOOL e364ae573cfe57f51b1c7a47d1fd447bbd8144bce481d530fd1cda33ec41be9a3d8b05a6a92bdf6269997e5632bbdea426a1b4f324d74c2a9c78f35b5e337fb7
diff --git a/dev-python/yenc/files/yenc-remove-cflags.patch b/dev-python/yenc/files/yenc-remove-cflags.patch
new file mode 100644
index 00000000000..27721c727db
--- /dev/null
+++ b/dev-python/yenc/files/yenc-remove-cflags.patch
@@ -0,0 +1,11 @@
+--- setup.py 2011-09-06 09:04:33.000000000 +0200
++++ setup.py.NEW 2012-07-07 15:33:13.295906002 +0200
+@@ -33,7 +33,7 @@
+ platforms = ["Unix"],
+ package_dir = { '': 'lib' },
+ py_modules = ["yenc"],
+- ext_modules = [Extension("_yenc",["src/_yenc.c"],extra_compile_args=["-O2","-g"])],
++ ext_modules = [Extension("_yenc",["src/_yenc.c"])],
+ classifiers = [
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 2.5",
diff --git a/dev-python/yenc/metadata.xml b/dev-python/yenc/metadata.xml
new file mode 100644
index 00000000000..c2318979e41
--- /dev/null
+++ b/dev-python/yenc/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jsbronder@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-python/yenc/yenc-0.4.0-r1.ebuild b/dev-python/yenc/yenc-0.4.0-r1.ebuild
new file mode 100644
index 00000000000..f5a1d157824
--- /dev/null
+++ b/dev-python/yenc/yenc-0.4.0-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Module providing raw yEnc encoding/decoding"
+HOMEPAGE="http://www.golug.it/yenc.html"
+SRC_URI="http://www.golug.it/pub/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+# Remove forced CFLAG on setup.py
+PATCHES=( "${FILESDIR}"/${PN}-remove-cflags.patch )
+DOCS=( README TODO CHANGES doc/${PN}-draft.1.3.txt )
+
+python_test() {
+ "${PYTHON}" test/test.py || die "Test failed."
+}
+
+src_test() {
+ # Tests use a constant temp file.
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
diff --git a/dev-python/yolk-portage/Manifest b/dev-python/yolk-portage/Manifest
new file mode 100644
index 00000000000..7f371124521
--- /dev/null
+++ b/dev-python/yolk-portage/Manifest
@@ -0,0 +1 @@
+DIST yolk-portage-0.1.tar.gz 2497 SHA256 32b25d2567c755d5aca2c3da3d0ce4d63b65b1d81ac1effa66444dd561134262 SHA512 e0d0ef4450276fbc5b1e6813cab63b5b2f9c2731e141d95ee23bfa3e5f78dd86c6bdda3dae4e056096be58916da406a7699c5cfea7a84f688e2721b6d8a36bb7 WHIRLPOOL a187314441a95468851554d444ec0c2df521b6f88c5c621ceb02f0bc6e97e048f15509052790ab026d1aaf49cb1e41a4b5fb896703e953330109faef030bb0ce
diff --git a/dev-python/yolk-portage/metadata.xml b/dev-python/yolk-portage/metadata.xml
new file mode 100644
index 00000000000..ceb949fbbb3
--- /dev/null
+++ b/dev-python/yolk-portage/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ yolk-portage is a plugin for dev-python/yolk
+ You can use yolk -l --portage to see which Python packages were
+ installed by portage or directly by setuptools, easy_install
+ or distutils (python &gt;=2.5)
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">yolk-portage</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/yolk-portage/yolk-portage-0.1-r1.ebuild b/dev-python/yolk-portage/yolk-portage-0.1-r1.ebuild
new file mode 100644
index 00000000000..aa95633a4d6
--- /dev/null
+++ b/dev-python/yolk-portage/yolk-portage-0.1-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Gentoo Portage plugin for yolk"
+HOMEPAGE="http://pypi.python.org/pypi/yolk-portage"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=">=app-portage/portage-utils-0.1.23"
diff --git a/dev-python/yolk/Manifest b/dev-python/yolk/Manifest
new file mode 100644
index 00000000000..75bbdab3124
--- /dev/null
+++ b/dev-python/yolk/Manifest
@@ -0,0 +1 @@
+DIST yolk-0.4.3.tar.gz 86100 SHA256 1c07eb4001dc133c08e66e38c5d58faa7616ae804f8d0ab02dd44a1044e7ddb8 SHA512 ad707f4bff0cbcd3e77d9dec0734bb4d743dcada706ab1e296edafc51e1d511ab4565de64c9828275cbe0c82f35bd3f50316b74f140670f0af8276a49733f9ad WHIRLPOOL 573a2ff7e063fb91ae58f20787c081e36949707100052e2101c3fc15436e6ea752fa645f3e51f5e11bf0b1768dec396b00e1ce59052d346552a9c44c43909c19
diff --git a/dev-python/yolk/files/yolk-0.4.1_entry_map.patch b/dev-python/yolk/files/yolk-0.4.1_entry_map.patch
new file mode 100644
index 00000000000..2eec2de97ad
--- /dev/null
+++ b/dev-python/yolk/files/yolk-0.4.1_entry_map.patch
@@ -0,0 +1,20 @@
+#Patch by Jesus Rivero <neurogeek@gentoo.org>
+#Sent upstream on 2011-07-20
+diff -uNr yolk-0.4.1.orig/yolk/cli.py yolk-0.4.1/yolk/cli.py
+--- yolk-0.4.1.orig/yolk/cli.py 2008-08-11 10:36:54.000000000 -0400
++++ yolk-0.4.1/yolk/cli.py 2011-07-20 10:53:26.000000000 -0400
+@@ -830,10 +830,12 @@
+ """
+ pprinter = pprint.PrettyPrinter()
+ try:
+- pprinter.pprint(pkg_resources.get_entry_map(self.options.entry_map))
++ entry_map = pkg_resources.get_entry_map(self.options.show_entry_map)
++ if entry_map:
++ pprinter.pprint(entry_map)
+ except pkg_resources.DistributionNotFound:
+ self.logger.error("Distribution not found: %s" \
+- % self.options.entry_map)
++ % self.options.show_entry_map)
+ return 1
+ return 0
+
diff --git a/dev-python/yolk/metadata.xml b/dev-python/yolk/metadata.xml
new file mode 100644
index 00000000000..2e151cd9aaf
--- /dev/null
+++ b/dev-python/yolk/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">
+ yolk-portage is a plugin for dev-python/yolk
+ You can use yolk -l --portage to see which Python packages were
+ installed by portage or directly by setuptools, easy_install
+ or distutils (python &gt;=2.5)
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">yolk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/yolk/yolk-0.4.3-r1.ebuild b/dev-python/yolk/yolk-0.4.3-r1.ebuild
new file mode 100644
index 00000000000..6cdf2414c2d
--- /dev/null
+++ b/dev-python/yolk/yolk-0.4.3-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Tool and library for querying PyPI and locally installed Python packages"
+HOMEPAGE="http://pypi.python.org/pypi/yolk"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples"
+
+DEPEND="dev-python/setuptools
+ dev-python/yolk-portage"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ if use examples; then
+ docinto examples/plugins
+ dodoc -r examples/plugins/*
+ fi
+}
diff --git a/dev-python/yubiotp/Manifest b/dev-python/yubiotp/Manifest
new file mode 100644
index 00000000000..d459a33c17b
--- /dev/null
+++ b/dev-python/yubiotp/Manifest
@@ -0,0 +1 @@
+DIST YubiOTP-0.2.1.tar.gz 17493 SHA256 458b6db6e9988740766dc47ca5583ac4c4db8b7483ffa7e3bc82101e6b07075c SHA512 3b505fed17ed27d1ef325598a5899d4ed4ae5ed7938d1ae71155f889a6533a969e07e1172661e411cdbf23a2060e8f521cd90779c314524c4a564fbf852a670c WHIRLPOOL 99697e6886a6757c09bac9d9d64ef04b3721f4d2f20b227f246015f7d214a32b1a646a5da40d9bf9e4bd5f3e3688424885ceb7b76f6f04e82ece919c6d84650d
diff --git a/dev-python/yubiotp/metadata.xml b/dev-python/yubiotp/metadata.xml
new file mode 100644
index 00000000000..100ebaca37d
--- /dev/null
+++ b/dev-python/yubiotp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ercpe@gentoo.org</email>
+ <name>Johann Schmitz (ercpe)</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">YubiOTP</remote-id>
+ <remote-id type="bitbucket">psagers/yubiotp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/yubiotp/yubiotp-0.2.1.ebuild b/dev-python/yubiotp/yubiotp-0.2.1.ebuild
new file mode 100644
index 00000000000..9026d3040f1
--- /dev/null
+++ b/dev-python/yubiotp/yubiotp-0.2.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils distutils-r1
+
+MY_PN="YubiOTP"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python library for verifying YubiKey OTP tokens, both locally and through a Yubico web service"
+HOMEPAGE="https://bitbucket.org/psagers/yubiotp"
+SRC_URI="mirror://pypi/Y/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="test"
+
+S="${WORKDIR}/${MY_P}"
+
+CDEPEND="dev-python/six[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]"
+
+RDEPEND="${CDEPEND}"
+DEPEND="test? ( ${CDEPEND} )"
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/zake/Manifest b/dev-python/zake/Manifest
new file mode 100644
index 00000000000..19bc446915e
--- /dev/null
+++ b/dev-python/zake/Manifest
@@ -0,0 +1 @@
+DIST zake-0.2.1.tar.gz 12972 SHA256 2e5bcb215e366e682fd05dd1df4f2e6affceefa5d3781c2987a21fd597659a21 SHA512 a9f7ddeb202e16355680d8aeb39af920eeb4280352cf746c630d208567c948efe78036032d4a6ca7b1f719093eaeb1ffa071c66975bd8036a9015706d64a76d2 WHIRLPOOL 411ea1d8463b68633e3ee4717524c0b316476b060b3b3177016a4c8fe0f539361f920c516cf5f25592a46b40fd88978840fe820161314e4aa0744cc9f01fbe00
diff --git a/dev-python/zake/metadata.xml b/dev-python/zake/metadata.xml
new file mode 100644
index 00000000000..e02601cd545
--- /dev/null
+++ b/dev-python/zake/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>openstack</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ A python package that works to provide a nice set of testing utilities for the kazoo library.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">zake</remote-id>
+ <remote-id type="github">yahoo/Zake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/zake/zake-0.2.1.ebuild b/dev-python/zake/zake-0.2.1.ebuild
new file mode 100644
index 00000000000..9a197203e6b
--- /dev/null
+++ b/dev-python/zake/zake-0.2.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+
+inherit distutils-r1
+
+DESCRIPTION="A python package that works to provide a nice set of testing utilities for the kazoo library."
+HOMEPAGE=" https://github.com/yahoo/Zake"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/kazoo[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+
+python_test() {
+ ${EPYTHON} -m nose || die
+}
diff --git a/dev-python/zbase32/Manifest b/dev-python/zbase32/Manifest
new file mode 100644
index 00000000000..4d855af358e
--- /dev/null
+++ b/dev-python/zbase32/Manifest
@@ -0,0 +1 @@
+DIST zbase32-1.1.5.tar.gz 21745 SHA256 9b25c34ba586cbbad4517af516e723599a6f38fc560f4797855a5f3051e6422f SHA512 b2b049cdbc312cb56656b611d726527cdb0f598e5c8e0a646d1a144f863698404d8784d477f64402b0e3efd2d0ef5927a74ff0370a1742c1b7a5ad257bdc4f11 WHIRLPOOL f5ef0464dd41e5baa44bff6470b935a0684051656cad37d79faf8510ae62a530d492ffffa1bf886e7773e5f72b29fb078cef4fc1633c8ce6b5725ac4b8b40e97
diff --git a/dev-python/zbase32/metadata.xml b/dev-python/zbase32/metadata.xml
new file mode 100644
index 00000000000..7dd145330d0
--- /dev/null
+++ b/dev-python/zbase32/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">zbase32</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/zbase32/zbase32-1.1.5.ebuild b/dev-python/zbase32/zbase32-1.1.5.ebuild
new file mode 100644
index 00000000000..060f89c55c6
--- /dev/null
+++ b/dev-python/zbase32/zbase32-1.1.5.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="base32 encoder/decoder (not RFC 3548 compliant)"
+HOMEPAGE="http://pypi.python.org/pypi/zbase32"
+SRC_URI="mirror://pypi/z/zbase32/zbase32-${PV}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/pyutil[${PYTHON_USEDEP}]"
diff --git a/dev-python/zc-buildout/Manifest b/dev-python/zc-buildout/Manifest
new file mode 100644
index 00000000000..983f9ccaca5
--- /dev/null
+++ b/dev-python/zc-buildout/Manifest
@@ -0,0 +1 @@
+DIST zc.buildout-2.3.1.tar.gz 292209 SHA256 3295b8944c637f65db3d6c2ded239b7b41a7f2df0e0bceb8b092247edf1866fb SHA512 cb741f02ccb119349e9e734667a64bec3248bbddc58a0e3d9ba10b1d2459e084170713be24051a529996fbc641ca8162d86c1c3ad3efdb2a95d2dd705616b73d WHIRLPOOL c391a6c62b72ce4bd56d12616df8580ab6c247e9bef74cf198bb777846ce7a450a31b7bd2088271d9a3faabd4b0388fb8e5b432b4c0f15e5b921c95c7e33e298
diff --git a/dev-python/zc-buildout/metadata.xml b/dev-python/zc-buildout/metadata.xml
new file mode 100644
index 00000000000..cca1f992b28
--- /dev/null
+++ b/dev-python/zc-buildout/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>tupone@gentoo.org</email>
+ <name>Alfredo Tupone</name>
+ </maintainer>
+ <longdescription lang="en">Buildout is a system for managing development buildouts. While often identified as a Zope project,
+and indeed licensed under the ZPL by Zope creator Jim Fulton, buildout is useful for configurations
+beyond Zope, and even, in rare cases, a few that have nothing to do with Python.
+The Buildout project provides support for creating applications, especially Python applications. It
+provides tools for assembling applications from multiple parts, Python or otherwise. An application
+may actually contain multiple programs, processes, and configuration settings.
+The word .buildout. refers to a description of a set of parts and the software to create and assemble
+them. It is often used informally to refer to an installed system based on a buildout definition. For
+example, if we are creating an application named .Foo., then .the Foo buildout. is the collection of
+configuration and application-specific software that allows an instance of the application to be
+created. We may refer to such an instance of the application informally as .a Foo buildout..</longdescription>
+ <upstream>
+ <remote-id type="pypi">zc.buildout</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/zc-buildout/zc-buildout-2.3.1.ebuild b/dev-python/zc-buildout/zc-buildout-2.3.1.ebuild
new file mode 100644
index 00000000000..38a148cfd4a
--- /dev/null
+++ b/dev-python/zc-buildout/zc-buildout-2.3.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy pypy3 )
+
+inherit distutils-r1
+
+MY_PN="${PN/-/.}"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="System for managing development buildouts"
+HOMEPAGE="http://pypi.python.org/pypi/zc.buildout"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/setuptools-3.3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MY_P}
+
+DOCS=( README.rst doc/tutorial.txt )
+# Tests require zope packages absent from portage
+
+# Prevent incorrect installation of data file
+python_prepare_all() {
+ sed -e '/^ include_package_data/d' -i setup.py || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/zfec/Manifest b/dev-python/zfec/Manifest
new file mode 100644
index 00000000000..56543f02247
--- /dev/null
+++ b/dev-python/zfec/Manifest
@@ -0,0 +1 @@
+DIST zfec-1.4.24.tar.gz 175884 SHA256 e3e99e6e67ac9af72c0f918f03d2051e17d41f48ee0134d0d2c81e7fe92749cf SHA512 ec213912eea054c954ddda67a401b1538fb2f02c2b56cdfb610df5f4852b79305ef72e9919c578d46a268ea4c5912a60422117326f633c7e9b8a7977561fa1f5 WHIRLPOOL ffbfda6ea69ece90b33ed8d6e39372c373e32c287cbc1fd7fda25f07b851e17fb85386ed2514f4326f8a3e190577dc7280fc26ebe4eb3a50fa0487642a785247
diff --git a/dev-python/zfec/metadata.xml b/dev-python/zfec/metadata.xml
new file mode 100644
index 00000000000..0924b9d9b1c
--- /dev/null
+++ b/dev-python/zfec/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ Generate redundant blocks of information such that if some of
+ the blocks are lost then the original data can be recovered from
+ the remaining blocks. This package includes command-line tools,
+ C API, Python API, and Haskell API.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">zfec</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/zfec/zfec-1.4.24.ebuild b/dev-python/zfec/zfec-1.4.24.ebuild
new file mode 100644
index 00000000000..2b51590f3a9
--- /dev/null
+++ b/dev-python/zfec/zfec-1.4.24.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="Fast erasure codec which can be used with the command-line, C, Python, or Haskell"
+HOMEPAGE="https://pypi.python.org/pypi/zfec"
+SRC_URI="mirror://pypi/z/zfec/zfec-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+COMMON_DEPEND=""
+RDEPEND="${COMMON_DEPEND}
+ dev-python/pyutil[${PYTHON_USEDEP}]
+ dev-python/zbase32[${PYTHON_USEDEP}]"
+DEPEND="${COMMON_DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_install() {
+ distutils-r1_src_install
+
+ rm -rf "${ED%/}"/usr/share/doc/${PN}
+}
diff --git a/dev-python/zope-interface/Manifest b/dev-python/zope-interface/Manifest
new file mode 100644
index 00000000000..626a2c5e41f
--- /dev/null
+++ b/dev-python/zope-interface/Manifest
@@ -0,0 +1,2 @@
+DIST zope.interface-4.1.1.tar.gz 864139 SHA256 91cba7b7cd7cb82f6f4e023fe77f94dc3df4ae5287fd55def2148dc232d0c7da SHA512 77d8c978522e95063bb5a1feb5b20af341bcf447d393ceb1ea229f0db02408f0e8981226621c04988936730b265cdba0bab88aaacd7fdf1006281c297e8e1ca1 WHIRLPOOL 5ba337bcd3eb5c55cdb78ddbbd9843eb04c7b36c31819be4359849bc8cd453514fca38aa05fd78090cca80061b373e26d7a7cee1230fbf888c74f202b179c4b2
+DIST zope.interface-4.1.2.tar.gz 919277 SHA256 441fefcac1fbac57c55239452557d3598571ab82395198b2565a29d45d1232f6 SHA512 b51f651ced7eb070db104e057a910b05a985999830551a6a7f83dcd2a565d637352b2dcf3b8517c682bed9365b31baf364f1863ff0e5b40df76668ea0b23a61e WHIRLPOOL 14729bacea73848508d67124d26eb966ec1ccdb14aeb9aa4ef0a0349d7241319f5f1b684fc9a6f4d6efdbed6ae120051c383aad67525dad2b4fca40fced2927d
diff --git a/dev-python/zope-interface/metadata.xml b/dev-python/zope-interface/metadata.xml
new file mode 100644
index 00000000000..71902eb87c9
--- /dev/null
+++ b/dev-python/zope-interface/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <upstream>
+ <remote-id type="pypi">zope.interface</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/zope-interface/zope-interface-4.1.1.ebuild b/dev-python/zope-interface/zope-interface-4.1.1.ebuild
new file mode 100644
index 00000000000..1bb5c05b2f1
--- /dev/null
+++ b/dev-python/zope-interface/zope-interface-4.1.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN=${PN/-/.}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Interfaces for Python"
+HOMEPAGE="http://pypi.python.org/pypi/zope.interface"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
+
+# until all deps are in the tree (bug #442794)
+RESTRICT="test"
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/zope-interface/zope-interface-4.1.2.ebuild b/dev-python/zope-interface/zope-interface-4.1.2.ebuild
new file mode 100644
index 00000000000..e7e0f2912ac
--- /dev/null
+++ b/dev-python/zope-interface/zope-interface-4.1.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1 flag-o-matic
+
+MY_PN=${PN/-/.}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Interfaces for Python"
+HOMEPAGE="http://pypi.python.org/pypi/zope.interface"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P}
+
+# until all deps are in the tree (bug #442794)
+RESTRICT="test"
+
+python_compile() {
+ if ! python_is_python3; then
+ local CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
+ append-flags -fno-strict-aliasing
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ esetup.py test
+}
diff --git a/dev-python/zsi/Manifest b/dev-python/zsi/Manifest
new file mode 100644
index 00000000000..b284bbba10d
--- /dev/null
+++ b/dev-python/zsi/Manifest
@@ -0,0 +1 @@
+DIST ZSI-2.1-a1.tar.gz 932958 SHA256 253cd6968bc52e66121ee370831b93be385d65563a0e71c9c704db83901bf244 SHA512 13f8734a5b09caa83786e776bc1104061812d05543b1412cda02dd904d6cd926042a4a882ffac71081a5275879d79927ea225ae2753936e0d026aee074f07974 WHIRLPOOL 36eaa489579be09559c158cc2484cc63d628bfe5ac6239b6b00ea27760281c4ddc1b59cb01c6d551fcedadfd4d39bad8e9fa0ed86789222193052843fb87b963
diff --git a/dev-python/zsi/metadata.xml b/dev-python/zsi/metadata.xml
new file mode 100644
index 00000000000..3f075e5dae5
--- /dev/null
+++ b/dev-python/zsi/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>angelos@gentoo.org</email>
+ <name>Christoph Mende</name>
+ </maintainer>
+ <use>
+ <flag name="twisted">add support for <pkg>dev-python/twisted</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">pywebsvcs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/zsi/zsi-2.1_alpha1-r1.ebuild b/dev-python/zsi/zsi-2.1_alpha1-r1.ebuild
new file mode 100644
index 00000000000..21837dca243
--- /dev/null
+++ b/dev-python/zsi/zsi-2.1_alpha1-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_PN="ZSI"
+MY_P="${MY_PN}-${PV/_alpha/-a}"
+
+DESCRIPTION="Web Services for Python"
+HOMEPAGE="http://pywebsvcs.sourceforge.net/zsi.html"
+SRC_URI="mirror://sourceforge/pywebsvcs/${MY_P}.tar.gz"
+
+LICENSE="BSD MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="doc examples twisted"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ twisted? (
+ dev-python/twisted-core
+ dev-python/twisted-web
+ )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+python_prepare_all() {
+ if ! use twisted; then
+ sed -i \
+ -e "/version_info/d"\
+ -e "/ZSI.twisted/d"\
+ setup.py || die "sed failed"
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use doc; then
+ dohtml doc/*.{html,css,png}
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins -r doc/examples/* samples/*
+ fi
+}