summaryrefslogtreecommitdiff
path: root/dev-python/pyflakes
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-python/pyflakes
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-python/pyflakes')
-rw-r--r--dev-python/pyflakes/Manifest16
-rw-r--r--dev-python/pyflakes/files/1.0.0-fix-pypy-tests.patch282
-rw-r--r--dev-python/pyflakes/metadata.xml20
-rw-r--r--dev-python/pyflakes/pyflakes-0.7.2.ebuild26
-rw-r--r--dev-python/pyflakes/pyflakes-0.8.1.ebuild26
-rw-r--r--dev-python/pyflakes/pyflakes-1.0.0.ebuild25
-rw-r--r--dev-python/pyflakes/pyflakes-1.2.3.ebuild23
-rw-r--r--dev-python/pyflakes/pyflakes-1.5.0.ebuild22
-rw-r--r--dev-python/pyflakes/pyflakes-1.6.0.ebuild22
9 files changed, 462 insertions, 0 deletions
diff --git a/dev-python/pyflakes/Manifest b/dev-python/pyflakes/Manifest
new file mode 100644
index 000000000000..58024078f47d
--- /dev/null
+++ b/dev-python/pyflakes/Manifest
@@ -0,0 +1,16 @@
+AUX 1.0.0-fix-pypy-tests.patch 9242 SHA256 fe0ba7b792e54ff3208ad73f2f1350e9654689259121292c74ca3ba9709e8519 SHA512 4772c32ea90e163030953f3ade2bd2434a10cf0e3c9234f4acaf596a44a812581ba92ef1498998566a7bf78e1bb8c7051260ebf8aca4ca2cd3a04e21e307bbfc WHIRLPOOL a03c86520964ae7a2e48ccc0d532a6e1c2182792cb745438cfdeb4e8144f7a3e112723a6958ea20ce38a610299a68501783f3e3b4c1650463ae485eb94f0bb92
+DIST pyflakes-0.7.2.tar.gz 30107 SHA256 e971804569e26a120ded70ca94882cbbf360390538fc3b5861f8ccecaf291178 SHA512 9f50c78ae47f55e30ed264b351325321f6c5d889ca6b2c7509d6c5cb029e27c230849cecc729bb18664cc2eb3d003a38a2e7a20f48563b6fa72c621a783bea64 WHIRLPOOL b23d09999a550784769444fdb1f3592dd54b1938b73e1ec40951eab5d3fad3dc80c0c79fbaa31e1544d74b5c8bcd96ca2f01ee83e0e79d8bfb6228308c20ae4c
+DIST pyflakes-0.8.1.tar.gz 32981 SHA256 3fa80a10b36d51686bf7744f5dc99622cd5c98ce8ed64022e629868aafc17769 SHA512 b9843637891f3e82a8430121395ceb4ec5df48b5ba73b96a307ebcb4a393e8cebee1681e094ee1f71a85b58bd2f32562b78fbd61d3fa85634f3ac448b1244637 WHIRLPOOL 0939b6ded3659e53316e6707ca5bf57a6702073c376df611a6a473c43ada36ee8822c9bbf2e106cc1836b46f04ce90612f4ebc73c6cb2d557aa6edb89d0eb949
+DIST pyflakes-1.0.0.tar.gz 35365 SHA256 f39e33a4c03beead8774f005bd3ecf0c3f2f264fa0201de965fce0aff1d34263 SHA512 89a9ee2e5be87d32d5c259c0cb88bbeadb96d27a3bc5eb3cf6f86afa51907ea01107a5336decbf003679b7de65ed9a16d7fbf55a457e0c9bbb1b53500f719bcb WHIRLPOOL c4700fcb9f9a62ed8e38db5c2fb7376b1d03e85b1e1f9fb7d570eb905249337f204664fd87a94b32701c0c67fa8624749d36b64721cb0425bad36ded5da26cdb
+DIST pyflakes-1.2.3.tar.gz 44776 SHA256 2e4a1b636d8809d8f0a69f341acf15b2e401a3221ede11be439911d23ce2139e SHA512 e0b49b4cd388b39c4f4f5ab836520cfc2ee940ce24de084fbeca0a2f13beca23b3ca89741e297a6f450d211ec27ebd91a7d23a80105e50d14960a3888d7693f2 WHIRLPOOL adf0d723bf79591d9cd321925bf3974a4456c864bbe7144260c6c99efa76399c0ba3bb25d7322a9e16621b2226a58899731a19b9971f55c27cb19757c5c6781e
+DIST pyflakes-1.5.0.tar.gz 47526 SHA256 aa0d4dff45c0cc2214ba158d29280f8fa1129f3e87858ef825930845146337f4 SHA512 32a676bab3ee7e528b7425b4b9dd5f4e5bdf57c983e2eac9e46f029b98683a55a5281b08886a0ced464db5b5d52213a00822ee86096098a4c55828ffa229b501 WHIRLPOOL 7a1b5ef9632d92eaab931e254a99df755dcf72811b13418cfd31785505defb5c36036bae2a73536dde1d70bbe1395b894b9c9ac85b0b0d00f506d213ba365b08
+DIST pyflakes-1.6.0.tar.gz 48184 SHA256 8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805 SHA512 7e9c2aad6ebed638a1354cef51c7e1f68b25e59f8caf4694997a9afecd7cd8baa629a9363297ac0d961430f007fd22dcae7dae1bcbd7838a3b5d4285063bc7c5 WHIRLPOOL 403008f6e047a0ed365be383da0224697fc06dce5078c1e284ae30d15b92fccdb43fcf65af8fb5b372511344b5c0a83b67aba184eabba9165bfdd2c552c81046
+EBUILD pyflakes-0.7.2.ebuild 718 SHA256 d44c00a8b5177c117d7038a50f8783768c75bbccf8045ecb54f7e7200c585fdc SHA512 5e57b51f4370dd6b1f23e269dd17548424058e80e340d7e75d915188dd8fdf002c3f54be6df4c2c911a7ff51abe9fa8bb439127c3c4d37e30e69d117117848ab WHIRLPOOL 84abbeba1878e5df81f5ced0e4e5a50e7eb535353badb8a1ae702877f48665baece77e208fda87bce0f95352056c602f57380262094e5e1be5a9f0a97d1b260b
+EBUILD pyflakes-0.8.1.ebuild 736 SHA256 5d217b8bf0a72329987d904ca54f790ebbd11b13f4155cbbae75400bb06f2bf1 SHA512 4e3b513ee627ccdfd3a23efee00e6622c9b150b29ec88ab4589d76fe8f13bc7c602d74f505484eac92cdbe65c386c2c92ed00d998a02c0628fb6aefbf8673bb5 WHIRLPOOL 4f5e93d1597cc285a74cad74b0a917b9b5a05fcfca0907cc22d889ce618bd279fcc7e20d847e201d53fc7de51703852a0da9eddcaf8f5c59cc66bd7ce9b09722
+EBUILD pyflakes-1.0.0.ebuild 767 SHA256 5c129da5867218f4e16882396c80ee0d821078ccbe321f7429cb4eea82068e65 SHA512 98b81862a97d297990feefdab5d2aaec5fac235b7a723a292b7ff41631e1c2144e3ee681b4970c5eb931f2fa0e2ea24ca7d85832d56dc54899a33905e0eadf73 WHIRLPOOL 48dc57ed640c99deb4a4d7173cca1da01af5607064bc9bd830c32acd42361f7785edbb05cbdb8a75db9fd0f622a02861ad04d3a8dfd5db9c2790fbaa2c38eb33
+EBUILD pyflakes-1.2.3.ebuild 709 SHA256 007c1973daa456034826455f2096b83697e322c66e0c58a44f24cd1234f452b1 SHA512 24d34c8c7530f19c76d5a75c72126748b42b5a0eaed26c4fc21a6d2a901499f0fb09f6ceb8aeaa0fe0e2c1e6212611c0d9907ed39589374ef6b473643b9c1fdd WHIRLPOOL 1261a984c57140e7acbe01204d68de9083e92945d21e6180c46f59898fb37c616251d79c2c1c2bab9c959876c2b5e475c9d91d034213fd1e504920769c2344cb
+EBUILD pyflakes-1.5.0.ebuild 717 SHA256 49be12d715363bcace7305941621b02e699c582b68b568fb400c95729ab5ba0f SHA512 5cffe6808c05eceb56a75e9342f526d973ebd9a5008ed758cfa0deb156e671712b4e90dd720a161082fb84103b7086e5aabc2ab11d6405942736edd4dde97e2b WHIRLPOOL 2bc33cf0f36a7ac728bf467d05430f72dc8b9315b38cb75432e4d2aef5bde9c5815e7881162ec2b24aefbd5891ba1eb1bd0277d8c0aa5308eaadc0e13837d917
+EBUILD pyflakes-1.6.0.ebuild 720 SHA256 4a21b03eca9c137105cdcdaa6fa5472b57bdfa5df20b744a4776bfe8f6c1e89d SHA512 04cc9198347eed5b153a793b12a64c7cad24fcf19395cbe238d416771829099a439ca8c15295f9e822900d5b482148294c1e2879948804f63843b4a7ae280508 WHIRLPOOL 0d288961ac0ceae827780c607566c066803b589ffd21ba2b69879bf358ca6c11cf2825b91ebb526fab0f5ca45e0b2832ca8a011086df10d285103375fcec24e5
+MISC ChangeLog 5089 SHA256 819ca1642ab7a9ead72f88aa9b6fc32564a3e9e84e6cde15d8966fe691d3085b SHA512 537999ec9dc0708b07dd2c35935fbd9740d774268c6549a33633b8aaddc309d967e7fbf9327b68019984a740dc1c9d6c3607a4d0785a6c88a102b8b1131e110a WHIRLPOOL 989383545aeb6e292b94f568d4b8329291150b38c478b6c9ac01a3300e2e34dcb5ec463ddf4f1eb4ceaba95b1f5738378812c83091a8d4c2cbf4d35d8b54be7d
+MISC ChangeLog-2015 7279 SHA256 b8c0cf5b4b6aa2161fb3479721495248780a975febcacbbe5741163fb49d6b29 SHA512 8edef4e7ef1dd626b972b39b3483f0af4e6b6b55b21e9cc479904f5124091e417357b1f050cf6a99ec853716721055dac35d5dda4cfd14e5008fb1a289f39d68 WHIRLPOOL e1fd24feb36b9288832ce8142a8163c0c8091fc4f061e1c4aa7adce749975e73707cbd16e4c7bcfb3d43c3fd373b429a63141b0db29f4d38e5a31f1e00b8cfba
+MISC metadata.xml 738 SHA256 7aa2ef6c33d3aaf502b07157e6fac3f6eeb492893e0c9ebe95c987a81a666606 SHA512 6ac45c3c5d1fd3eeae5c8ad9950a2c97ef31d0bb72e6034a1f8b75d2a28e997660df20719431ee138a76544942bc20d609fb6e4a26a77f0ef30f912c6d2c0257 WHIRLPOOL 867ff1a503f3c1ed84cb8696689a7c1cfa96f9d18ed638f43cc5d0573392f414f31a1097e8ce097141374a8e677de67d282428c92759e562f7650dc013a6fbdc
diff --git a/dev-python/pyflakes/files/1.0.0-fix-pypy-tests.patch b/dev-python/pyflakes/files/1.0.0-fix-pypy-tests.patch
new file mode 100644
index 000000000000..41d1fa8ca86d
--- /dev/null
+++ b/dev-python/pyflakes/files/1.0.0-fix-pypy-tests.patch
@@ -0,0 +1,282 @@
+#https://github.com/jayvdb/pyflakes/commit/3088ffbd6256521e0213b361bc2294c1e218e6fb
+diff --git a/pyflakes/api.py b/pyflakes/api.py #index 3bc2330..2a46a0d 100644
+--- a/pyflakes/api.py
++++ b/pyflakes/api.py
+@@ -41,6 +41,18 @@ def check(codeString, filename, reporter=None):
+
+ (lineno, offset, text) = value.lineno, value.offset, value.text
+
++ if checker.PYPY:
++ if text is None:
++ lines = codeString.splitlines()
++ if len(lines) >= lineno:
++ text = lines[lineno - 1]
++ if sys.version_info >= (3, ) and isinstance(text, bytes):
++ try:
++ text = text.decode('ascii')
++ except UnicodeDecodeError:
++ text = None
++ offset -= 1
++
+ # If there's an encoding problem with the file, the text is None.
+ if text is None:
+ # Avoid using msg, since for the only known case, it contains a
+diff --git a/pyflakes/checker.py b/pyflakes/checker.py
+index 753fa9b..f538d3f 100644
+--- a/pyflakes/checker.py
++++ b/pyflakes/checker.py
+@@ -11,6 +11,12 @@
+ PY2 = sys.version_info < (3, 0)
+ PY32 = sys.version_info < (3, 3) # Python 2.5 to 3.2
+ PY33 = sys.version_info < (3, 4) # Python 2.5 to 3.3
++try:
++ sys.pypy_version_info
++ PYPY = True
++except AttributeError:
++ PYPY = False
++
+ builtin_vars = dir(__import__('__builtin__' if PY2 else 'builtins'))
+
+ try:
+@@ -594,8 +600,13 @@ def getDocstring(self, node):
+ node = node.value
+ if not isinstance(node, ast.Str):
+ return (None, None)
+- # Computed incorrectly if the docstring has backslash
+- doctest_lineno = node.lineno - node.s.count('\n') - 1
++
++ if PYPY:
++ doctest_lineno = node.lineno - 1
++ else:
++ # Computed incorrectly if the docstring has backslash
++ doctest_lineno = node.lineno - node.s.count('\n') - 1
++
+ return (node.s, doctest_lineno)
+
+ def handleNode(self, node, parent):
+@@ -642,6 +653,8 @@ def handleDoctests(self, node):
+ tree = compile(example.source, "<doctest>", "exec", ast.PyCF_ONLY_AST)
+ except SyntaxError:
+ e = sys.exc_info()[1]
++ if PYPY:
++ e.offset += 1
+ position = (node_lineno + example.lineno + e.lineno,
+ example.indent + 4 + (e.offset or 0))
+ self.report(messages.DoctestSyntaxError, node, position)
+diff --git a/pyflakes/test/test_api.py b/pyflakes/test/test_api.py
+index 34a59bc..d2a5036 100644
+--- a/pyflakes/test/test_api.py
++++ b/pyflakes/test/test_api.py
+@@ -23,6 +23,14 @@
+ from io import StringIO
+ unichr = chr
+
++try:
++ sys.pypy_version_info
++ PYPY = True
++except AttributeError:
++ PYPY = False
++
++ERROR_HAS_COL_NUM = ERROR_HAS_LAST_LINE = sys.version_info >= (3, 2) or PYPY
++
+
+ def withStderrTo(stderr, f, *args, **kwargs):
+ """
+@@ -312,18 +320,25 @@ def evaluate(source):
+ evaluate(source)
+ except SyntaxError:
+ e = sys.exc_info()[1]
+- self.assertTrue(e.text.count('\n') > 1)
++ if not PYPY:
++ self.assertTrue(e.text.count('\n') > 1)
+ else:
+ self.fail()
+
+ sourcePath = self.makeTempFile(source)
++
++ if PYPY:
++ message = 'EOF while scanning triple-quoted string literal'
++ else:
++ message = 'invalid syntax'
++
+ self.assertHasErrors(
+ sourcePath,
+ ["""\
+-%s:8:11: invalid syntax
++%s:8:11: %s
+ '''quux'''
+ ^
+-""" % (sourcePath,)])
++""" % (sourcePath, message)])
+
+ def test_eofSyntaxError(self):
+ """
+@@ -331,13 +346,22 @@ def test_eofSyntaxError(self):
+ syntax error reflects the cause for the syntax error.
+ """
+ sourcePath = self.makeTempFile("def foo(")
+- self.assertHasErrors(
+- sourcePath,
+- ["""\
++ if PYPY:
++ result = """\
++%s:1:7: parenthesis is never closed
++def foo(
++ ^
++""" % (sourcePath,)
++ else:
++ result = """\
+ %s:1:9: unexpected EOF while parsing
+ def foo(
+ ^
+-""" % (sourcePath,)])
++""" % (sourcePath,)
++
++ self.assertHasErrors(
++ sourcePath,
++ [result])
+
+ def test_eofSyntaxErrorWithTab(self):
+ """
+@@ -345,13 +369,16 @@ def test_eofSyntaxErrorWithTab(self):
+ syntax error reflects the cause for the syntax error.
+ """
+ sourcePath = self.makeTempFile("if True:\n\tfoo =")
++ column = 5 if PYPY else 7
++ last_line = '\t ^' if PYPY else '\t ^'
++
+ self.assertHasErrors(
+ sourcePath,
+ ["""\
+-%s:2:7: invalid syntax
++%s:2:%s: invalid syntax
+ \tfoo =
+-\t ^
+-""" % (sourcePath,)])
++%s
++""" % (sourcePath, column, last_line)])
+
+ def test_nonDefaultFollowsDefaultSyntaxError(self):
+ """
+@@ -364,8 +391,8 @@ def foo(bar=baz, bax):
+ pass
+ """
+ sourcePath = self.makeTempFile(source)
+- last_line = ' ^\n' if sys.version_info >= (3, 2) else ''
+- column = '8:' if sys.version_info >= (3, 2) else ''
++ last_line = ' ^\n' if ERROR_HAS_LAST_LINE else ''
++ column = '8:' if ERROR_HAS_COL_NUM else ''
+ self.assertHasErrors(
+ sourcePath,
+ ["""\
+@@ -383,8 +410,8 @@ def test_nonKeywordAfterKeywordSyntaxError(self):
+ foo(bar=baz, bax)
+ """
+ sourcePath = self.makeTempFile(source)
+- last_line = ' ^\n' if sys.version_info >= (3, 2) else ''
+- column = '13:' if sys.version_info >= (3, 2) else ''
++ last_line = ' ^\n' if ERROR_HAS_LAST_LINE else ''
++ column = '13:' if ERROR_HAS_COL_NUM or PYPY else ''
+
+ if sys.version_info >= (3, 5):
+ message = 'positional argument follows keyword argument'
+@@ -407,8 +434,15 @@ def test_invalidEscape(self):
+ sourcePath = self.makeTempFile(r"foo = '\xyz'")
+ if ver < (3,):
+ decoding_error = "%s: problem decoding source\n" % (sourcePath,)
++ elif PYPY:
++ # pypy3 only
++ decoding_error = """\
++%s:1:6: %s: ('unicodeescape', b'\\\\xyz', 0, 2, 'truncated \\\\xXX escape')
++foo = '\\xyz'
++ ^
++""" % (sourcePath, 'UnicodeDecodeError')
+ else:
+- last_line = ' ^\n' if ver >= (3, 2) else ''
++ last_line = ' ^\n' if ERROR_HAS_LAST_LINE else ''
+ # Column has been "fixed" since 3.2.4 and 3.3.1
+ col = 1 if ver >= (3, 3, 1) or ((3, 2, 4) <= ver < (3, 3)) else 2
+ decoding_error = """\
+@@ -474,8 +508,21 @@ def test_misencodedFileUTF8(self):
+ x = "%s"
+ """ % SNOWMAN).encode('utf-8')
+ sourcePath = self.makeTempFile(source)
++
++ if PYPY and sys.version_info < (3, ):
++ message = ('\'ascii\' codec can\'t decode byte 0xe2 '
++ 'in position 21: ordinal not in range(128)')
++ result = """\
++%s:0:0: %s
++x = "\xe2\x98\x83"
++ ^\n""" % (sourcePath, message)
++
++ else:
++ message = 'problem decoding source'
++ result = "%s: problem decoding source\n" % (sourcePath,)
++
+ self.assertHasErrors(
+- sourcePath, ["%s: problem decoding source\n" % (sourcePath,)])
++ sourcePath, [result])
+
+ def test_misencodedFileUTF16(self):
+ """
+diff --git a/pyflakes/test/test_doctests.py b/pyflakes/test/test_doctests.py
+index f15acb8..6793da9 100644
+--- a/pyflakes/test/test_doctests.py
++++ b/pyflakes/test/test_doctests.py
+@@ -1,3 +1,4 @@
++import sys
+ import textwrap
+
+ from pyflakes import messages as m
+@@ -11,6 +12,12 @@
+ from pyflakes.test.test_undefined_names import Test as TestUndefinedNames
+ from pyflakes.test.harness import TestCase, skip
+
++try:
++ sys.pypy_version_info
++ PYPY = True
++except AttributeError:
++ PYPY = False
++
+
+ class _DoctestMixin(object):
+
+@@ -273,12 +280,22 @@ def doctest_stuff():
+ exc = exceptions[0]
+ self.assertEqual(exc.lineno, 4)
+ self.assertEqual(exc.col, 26)
++
++ # PyPy error column offset is 0,
++ # for the second and third line of the doctest
++ # i.e. at the beginning of the line
+ exc = exceptions[1]
+ self.assertEqual(exc.lineno, 5)
+- self.assertEqual(exc.col, 16)
++ if PYPY:
++ self.assertEqual(exc.col, 13)
++ else:
++ self.assertEqual(exc.col, 16)
+ exc = exceptions[2]
+ self.assertEqual(exc.lineno, 6)
+- self.assertEqual(exc.col, 18)
++ if PYPY:
++ self.assertEqual(exc.col, 13)
++ else:
++ self.assertEqual(exc.col, 18)
+
+ def test_indentationErrorInDoctest(self):
+ exc = self.flakes('''
+@@ -289,7 +306,10 @@ def doctest_stuff():
+ """
+ ''', m.DoctestSyntaxError).messages[0]
+ self.assertEqual(exc.lineno, 5)
+- self.assertEqual(exc.col, 16)
++ if PYPY:
++ self.assertEqual(exc.col, 13)
++ else:
++ self.assertEqual(exc.col, 16)
+
+ def test_offsetWithMultiLineArgs(self):
+ (exc1, exc2) = self.flakes(
+
diff --git a/dev-python/pyflakes/metadata.xml b/dev-python/pyflakes/metadata.xml
new file mode 100644
index 000000000000..e863869c3e50
--- /dev/null
+++ b/dev-python/pyflakes/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 type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <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="github">PyCQA/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 000000000000..b63540d566e5
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-0.7.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=(python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes https://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.8.1.ebuild b/dev-python/pyflakes/pyflakes-0.8.1.ebuild
new file mode 100644
index 000000000000..9b0e88b8032e
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-0.8.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes https://pypi.python.org/pypi/pyflakes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ppc ppc64 sparc 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-1.0.0.ebuild b/dev-python/pyflakes/pyflakes-1.0.0.ebuild
new file mode 100644
index 000000000000..0b5513325c1c
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-1.0.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes https://pypi.python.org/pypi/pyflakes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~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}"
+
+PATCHES=( "${FILESDIR}"/${PV}-fix-pypy-tests.patch )
+
+python_test() {
+ esetup.py test --quiet
+}
diff --git a/dev-python/pyflakes/pyflakes-1.2.3.ebuild b/dev-python/pyflakes/pyflakes-1.2.3.ebuild
new file mode 100644
index 000000000000..89265903f844
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-1.2.3.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes https://pypi.python.org/pypi/pyflakes"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ppc ppc64 sparc 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/pyflakes/pyflakes-1.5.0.ebuild b/dev-python/pyflakes/pyflakes-1.5.0.ebuild
new file mode 100644
index 000000000000..9a96c68de75a
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-1.5.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://launchpad.net/pyflakes https://pypi.python.org/pypi/pyflakes"
+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-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ esetup.py test --quiet
+}
diff --git a/dev-python/pyflakes/pyflakes-1.6.0.ebuild b/dev-python/pyflakes/pyflakes-1.6.0.ebuild
new file mode 100644
index 000000000000..8cb89ccd8342
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-1.6.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="https://github.com/PyCQA/pyflakes https://pypi.python.org/pypi/pyflakes"
+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-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_test() {
+ esetup.py test --quiet
+}