log.set_threshold(loglevel)
class smart_install_data(install_data):
def run(self):
install_cmd = self.get_finalized_command('install')
self.install_dir = getattr(install_cmd, 'install_lib')
return install_data.run(self)
class build_data(Command):
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
build_py = self.get_finalized_command('build_py')
data_files = self.distribution.data_files
for f in data_files:
dir = convert_path(f[0])
dir = os.path.join(build_py.build_lib, dir)
self.mkpath(dir)
for data in f[1]:
data = convert_path(data)
self.copy_file(data, dir)
build.sub_commands.append(('build_data', lambda *a: True))
def do_setup():
kwargs = package_data.copy()
kwargs['classifiers'] = classifiers
kwargs['cmdclass'] = {'build_data': build_data,
'install_data': smart_install_data}
if sys.version_info >= (3,):
kwargs['cmdclass']['build_py'] = copy_build_py_2to3
else:
kwargs['cmdclass']['build_py'] = build_py
dist = setup(**kwargs)
return dist