summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/astng')
-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
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>