@wudawufanfan
2016-12-28T03:30:48.000000Z
字数 2969
阅读 479
未分类
在此输入正文
from __future__ import print_functionimport osimport versioneerfrom setuptools import setup, Extension, find_packagesfrom os.path import relpath, joinDOCLINES = __doc__.split("\n")CLASSIFIERS = """\Development Status :: 3 - AlphaIntended Audience :: Science/ResearchIntended Audience :: DevelopersLicense :: OSI Approved :: Open BSD clause 2 (OpenBSD)Programming Language :: PythonTopic :: Scientific/Engineering :: Bio-InformaticsTopic :: Scientific/Engineering :: ChemistryTopic :: Scientific/Engineering :: PhysicsOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixOperating System :: MacOS"""################################################################################# USEFUL SUBROUTINES################################################################################def find_package_data(data_root, package_root):files = []for root, dirnames, filenames in os.walk(data_root):for fn in filenames:files.append(relpath(join(root, fn), package_root))return files################################################################################# EXTENSIONS################################################################################def extensions():from numpy import get_include as np_incfrom scipy import get_include as sc_incnp_inc = np_inc()sc_inc = sc_inc()from Cython.Build import cythonizeexts = [Extension('variational.estimators.covar_c.covartools',sources = ['./variational/estimators/covar_c/covartools.pyx','./variational/estimators/covar_c/_covartools.c'],include_dirs = ['./variational/estimators/covar_c/', np_inc],extra_compile_args=['-std=c99','-O3']),Extension('variational.solvers.eig_qr.eig_qr',sources=['./variational/solvers/eig_qr/eig_qr.pyx'],include_dirs=['./variational/solvers/eig_qr/', np_inc, sc_inc],extra_compile_args=['-std=c99','-O3'])]return cythonize(exts)class lazy_cythonize(list):"""evaluates extension list lazyly.pattern taken from http://tinyurl.com/qb8478q"""def __init__(self, callback):self._list, self.callback = None, callbackdef c_list(self):if self._list is None: self._list = self.callback()return self._listdef __iter__(self):for e in self.c_list(): yield edef __getitem__(self, ii): return self.c_list()[ii]def __len__(self): return len(self.c_list())################################################################################# SETUP################################################################################metadata=dict(name = 'variational',author = 'Frank Noe, Fabian Paul and Feliks Nueske',author_email = 'frank.noe@fu-berlin.de',description = DOCLINES[0],long_description = "\n".join(DOCLINES[2:]),version=versioneer.get_version(),cmdclass=versioneer.get_cmdclass(),license='OpenBSD',url='https://github.com/markovmodel/variational',platforms=['Linux', 'Mac OS-X', 'Unix', 'Windows'],classifiers=CLASSIFIERS.splitlines(),#package_dir={'variational': 'variational'},packages=find_packages(),package_data={'variational.basisset':['ResiduesEigenvectors/*']},zip_safe=False,install_requires=['numpy','scipy','six',],setup_requires=['cython>=0.24','numpy',],ext_modules=lazy_cythonize(extensions),)setup(**metadata)