diff options
-rw-r--r-- | README | 2 | ||||
-rw-r--r-- | __pkginfo__.py | 16 | ||||
-rw-r--r-- | debian.py3k/control | 28 | ||||
-rwxr-xr-x | debian.py3k/rules | 72 | ||||
-rw-r--r-- | debian.py3k/source/format | 1 | ||||
-rw-r--r-- | setup.py | 146 |
6 files changed, 146 insertions, 119 deletions
@@ -47,5 +47,3 @@ python-project@lists.logilab.org mailing list for support. See http://lists.logilab.org/mailman/listinfo/python-projects for subscription information and archives. -Sylvain Thénault -Oct 21, 2005, updated on Aug 26 2009. diff --git a/__pkginfo__.py b/__pkginfo__.py index d9961e1..7fe7c16 100644 --- a/__pkginfo__.py +++ b/__pkginfo__.py @@ -29,8 +29,6 @@ version = '.'.join([str(num) for num in numversion]) install_requires = ['logilab-common >= 0.52.1'] -pyversions = ["2.3", "2.4", "2.5", '2.6', '2.7'] - license = 'LGPL' author = 'Logilab' @@ -39,19 +37,7 @@ mailinglist = "mailto://%s" % author_email web = "http://www.logilab.org/project/%s" % distname ftp = "ftp://ftp.logilab.org/pub/%s" % modname -short_desc = "rebuild a new abstract syntax tree from Python's ast" - -long_desc = """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 rebuilds the tree generated by the compiler.ast [1] module (python <= 2.4) -or by the builtin _ast module (python >= 2.5) 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. -Furthermore, astng builds partial trees by inspecting living objects.""" - +description = "rebuild a new abstract syntax tree from Python's ast" from os.path import join include_dirs = [join('test', 'regrtest_data'), diff --git a/debian.py3k/control b/debian.py3k/control new file mode 100644 index 0000000..99fef0a --- /dev/null +++ b/debian.py3k/control @@ -0,0 +1,28 @@ +Source: logilab-astng +Section: python +Priority: optional +Maintainer: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org> +Uploaders: Sylvain Thénault <sylvain.thenault@logilab.fr>, Alexandre Fayolle <afayolle@debian.org>, Sandro Tosi <morph@debian.org> +Build-Depends: debhelper (>= 5.0.37.2), python3 +Build-Depends-Indep: python-support +XS-Python-Version: all +Standards-Version: 3.8.2 +Homepage: http://www.logilab.org/project/logilab-astng +Vcs-Svn: svn://svn.debian.org/svn/python-modules/packages/logilab-astng/trunk/ +Vcs-Browser: http://svn.debian.org/viewsvn/python-modules/packages/logilab-astng/trunk/ + +Package: python3-logilab-astng +Architecture: all +Depends: ${python:Depends}, ${misc:Depends}, python3-logilab-common (>= 0.52.1-1) +XB-Python-Version: ${python:Versions} +Description: rebuild a new abstract syntax tree from Python's ast + The aim of this module is to provide a common base representation of + Python source code for projects such as pyreverse or pylint. + . + It rebuilds the tree generated by the compiler.ast [1] module (python <= 2.4) + or by the builtin _ast module (python >= 2.5) 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. + Furthermore, astng builds partial trees by inspecting living objects. + + diff --git a/debian.py3k/rules b/debian.py3k/rules new file mode 100755 index 0000000..0e4279a --- /dev/null +++ b/debian.py3k/rules @@ -0,0 +1,72 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. +# +# adapted by Logilab for automatic generation by debianize +# (part of the devtools project, http://www.logilab.org/projects/devtools) +# +# Copyright (c) 2003-2008 LOGILAB S.A. (Paris, FRANCE). +# http://www.logilab.fr/ -- mailto:contact@logilab.fr + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +PACKAGE:=$(shell grep Package debian/control | cut -d ' ' -f2) + + +include /usr/share/python/python.mk + +build: build-stamp + +build-stamp: + dh_testdir + touch build-stamp + + +clean: + dh_testdir + dh_testroot + + NO_SETUPTOOLS=1 python setup.py clean + [ ! -d build ] || rm -rf build + find . -name "*.pyc" -delete + dh_clean build-stamp + + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + NO_SETUPTOOLS=1 python3 setup.py -q install --no-compile \ + --root=$(CURDIR)/debian/$(PACKAGE)/ \ + ${py_setup_install_args} + find $(CURDIR)/debian/$(PACKAGE)/usr/lib/python*/*-packages/ ! -path "*/test/*py" -name "*py" -exec 2to3-3.1 -wn {} \; + + # remove test directory + rm -rf debian/$(PACKAGE)/usr/lib/python*/*-packages/logilab/astng/test + rm -rf debian/$(PACKAGE)/usr/lib/python*/*-packages/logilab/__init__.py + +# Build architecture-independent files here. +binary-indep: build install + dh_testdir + dh_testroot + dh_install -i + dh_pysupport -i + dh_installchangelogs -i ChangeLog + dh_installexamples -i + dh_installdocs -i README + dh_installman -i + dh_link -i + dh_compress -i -X.py -X.ini -X.xml -Xtest/ + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: + +binary: binary-indep +.PHONY: build clean binary binary-indep binary-arch diff --git a/debian.py3k/source/format b/debian.py3k/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian.py3k/source/format @@ -0,0 +1 @@ +3.0 (quilt) @@ -1,33 +1,31 @@ #!/usr/bin/env python -# pylint: disable-msg=W0404,W0622,W0704,W0613,W0152 +# -*- coding: utf-8 -*- +# pylint: disable=W0404,W0622,W0704,W0613 # copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved. # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr -# copyright 2003-2010 Sylvain Thenault, all rights reserved. -# contact mailto:thenault@gmail.com # # This file is part of logilab-astng. # -# logilab-astng is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 2.1 of the License, or (at your -# option) any later version. +# logilab-astng is free software: you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation, either version 2.1 of the License, or (at your option) any +# later version. # -# logilab-astng is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License -# for more details. +# logilab-astng is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +# details. # # You should have received a copy of the GNU Lesser General Public License along -# with logilab-astng. If not, see <http://www.gnu.org/licenses/>. +# with logilab-astng. If not, see <http://www.gnu.org/licenses/>. """Generic Setup script, takes package info from __pkginfo__.py file. - """ __docformat__ = "restructuredtext en" import os import sys import shutil -from os.path import isdir, exists, join, walk +from os.path import isdir, exists, join try: if os.environ.get('NO_SETUPTOOLS'): @@ -35,54 +33,38 @@ try: from setuptools import setup from setuptools.command import install_lib USE_SETUPTOOLS = 1 -except ImportError: +except ImportError: from distutils.core import setup from distutils.command import install_lib USE_SETUPTOOLS = 0 - + + sys.modules.pop('__pkginfo__', None) # import required features -from __pkginfo__ import modname, version, license, short_desc, long_desc, \ +from __pkginfo__ import modname, version, license, description, \ web, author, author_email # import optional features -try: - from __pkginfo__ import distname -except ImportError: - distname = modname -try: - from __pkginfo__ import scripts -except ImportError: - scripts = [] -try: - from __pkginfo__ import data_files -except ImportError: - data_files = None -try: - from __pkginfo__ import subpackage_of -except ImportError: - subpackage_of = None -try: - from __pkginfo__ import include_dirs -except ImportError: - include_dirs = [] -try: - from __pkginfo__ import ext_modules -except ImportError: - ext_modules = None -try: - from __pkginfo__ import install_requires -except ImportError: - install_requires = None +import __pkginfo__ +distname = getattr(__pkginfo__, 'distname', modname) +scripts = getattr(__pkginfo__, 'scripts', []) +data_files = getattr(__pkginfo__, 'data_files', None) +subpackage_of = getattr(__pkginfo__, 'subpackage_of', None) +include_dirs = getattr(__pkginfo__, 'include_dirs', []) +ext_modules = getattr(__pkginfo__, 'ext_modules', None) +install_requires = getattr(__pkginfo__, 'install_requires', None) +dependency_links = getattr(__pkginfo__, 'dependency_links', []) STD_BLACKLIST = ('CVS', '.svn', '.hg', 'debian', 'dist', 'build') IGNORED_EXTENSIONS = ('.pyc', '.pyo', '.elc', '~') - +if exists('README'): + long_description = open('README').read() +else: + long_description = '' def ensure_scripts(linux_scripts): - """ - Creates the proper script names required for each platform + """Creates the proper script names required for each platform (taken from 4Suite) """ from distutils import util @@ -92,10 +74,8 @@ def ensure_scripts(linux_scripts): scripts_ = linux_scripts return scripts_ - def get_packages(directory, prefix): - """return a list of subpackages for the given directory - """ + """return a list of subpackages for the given directory""" result = [] for package in os.listdir(directory): absfile = join(directory, package) @@ -109,48 +89,7 @@ def get_packages(directory, prefix): result += get_packages(absfile, result[-1]) return result -def export(from_dir, to_dir, - blacklist=STD_BLACKLIST, - ignore_ext=IGNORED_EXTENSIONS, - verbose=True): - """make a mirror of from_dir in to_dir, omitting directories and files - listed in the black list - """ - def make_mirror(arg, directory, fnames): - """walk handler""" - for norecurs in blacklist: - try: - fnames.remove(norecurs) - except ValueError: - pass - for filename in fnames: - # don't include binary files - if filename[-4:] in ignore_ext: - continue - if filename[-1] == '~': - continue - src = join(directory, filename) - dest = to_dir + src[len(from_dir):] - if verbose: - print >> sys.stderr, src, '->', dest - if os.path.isdir(src): - if not exists(dest): - os.mkdir(dest) - else: - if exists(dest): - os.remove(dest) - shutil.copy2(src, dest) - try: - os.mkdir(to_dir) - except OSError, ex: - # file exists ? - import errno - if ex.errno != errno.EEXIST: - raise - walk(from_dir, make_mirror, None) - - -EMPTY_FILE = '''"""generated file, don\'t modify or your data will be lost""" +EMPTY_FILE = '''"""generated file, don't modify or your data will be lost""" try: __import__('pkg_resources').declare_namespace(__name__) except ImportError: @@ -180,15 +119,17 @@ class MyInstallLib(install_lib.install_lib): base = modname for directory in include_dirs: dest = join(self.install_dir, base, directory) - export(directory, dest, verbose=False) - + shutil.rmtree(dest, ignore_errors=True) + shutil.copytree(directory, dest) + def install(**kwargs): """setup entry point""" - try: - if USE_SETUPTOOLS: + if USE_SETUPTOOLS: + if '--force-manifest' in sys.argv: sys.argv.remove('--force-manifest') - except: - pass + # install-layout option was introduced in 2.5.3-1~exp1 + elif sys.version_info < (2, 5, 4) and '--install-layout=deb' in sys.argv: + sys.argv.remove('--install-layout=deb') if subpackage_of: package = subpackage_of + '.' + modname kwargs['package_dir'] = {package : '.'} @@ -200,12 +141,13 @@ def install(**kwargs): packages = [modname] + get_packages(os.getcwd(), modname) if USE_SETUPTOOLS and install_requires: kwargs['install_requires'] = install_requires + kwargs['dependency_links'] = dependency_links kwargs['packages'] = packages return setup(name = distname, version = version, license = license, - description = short_desc, - long_description = long_desc, + description = description, + long_description = long_description, author = author, author_email = author_email, url = web, @@ -215,6 +157,6 @@ def install(**kwargs): cmdclass = {'install_lib': MyInstallLib}, **kwargs ) - + if __name__ == '__main__' : install() |