blob: 3e8a19f25c8ac52d293955894ef92e013f0ca1a8 [file] [log] [blame]
#!/usr/bin/env python
# Copyright (c) 2006, 2009-2013 LOGILAB S.A. (Paris, FRANCE) <contact@logilab.fr>
# Copyright (c) 2014-2016 Claudiu Popa <pcmanticore@gmail.com>
# Copyright (c) 2014 Google, Inc.
# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
# pylint: disable=W0404,W0622,W0704,W0613
"""Setup script for astroid."""
import os
from setuptools import setup, find_packages
from setuptools.command import easy_install
from setuptools.command import install_lib
real_path = os.path.realpath(__file__)
astroid_dir = os.path.dirname(real_path)
pkginfo = os.path.join(astroid_dir, 'astroid', '__pkginfo__.py')
with open(pkginfo, 'rb') as fobj:
exec(compile(fobj.read(), pkginfo, 'exec'), locals())
with open(os.path.join(astroid_dir, 'README.rst')) as fobj:
long_description = fobj.read()
class AstroidInstallLib(install_lib.install_lib):
def byte_compile(self, files):
test_datadir = os.path.join('astroid', 'tests', 'testdata')
files = [f for f in files if test_datadir not in f]
install_lib.install_lib.byte_compile(self, files)
class AstroidEasyInstallLib(easy_install.easy_install):
# override this since pip/easy_install attempt to byte compile
# test data files, some of them being syntactically wrong by design,
# and this scares the end-user
def byte_compile(self, files):
test_datadir = os.path.join('astroid', 'tests', 'testdata')
files = [f for f in files if test_datadir not in f]
easy_install.easy_install.byte_compile(self, files)
def install():
return setup(name = distname,
version = version,
license = license,
description = description,
long_description = long_description,
classifiers = classifiers,
author = author,
author_email = author_email,
url = web,
include_package_data = True,
install_requires = install_requires,
extras_require=extras_require,
packages = find_packages(),
cmdclass = {'install_lib': AstroidInstallLib,
'easy_install': AstroidEasyInstallLib}
)
if __name__ == '__main__' :
install()