diff options
Diffstat (limited to 'dev-python/astng')
-rw-r--r-- | dev-python/astng/Manifest | 1 | ||||
-rw-r--r-- | dev-python/astng/astng-0.24.3.ebuild | 46 | ||||
-rw-r--r-- | dev-python/astng/files/pypy-test.patch | 36 | ||||
-rw-r--r-- | dev-python/astng/metadata.xml | 19 |
4 files changed, 102 insertions, 0 deletions
diff --git a/dev-python/astng/Manifest b/dev-python/astng/Manifest new file mode 100644 index 000000000000..6abde44e32c1 --- /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 000000000000..b680471fe54c --- /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 000000000000..42cb3864b43b --- /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 000000000000..1b13630a68a6 --- /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> |