[关闭]
@wudawufanfan 2016-12-28T03:30:48.000000Z 字数 2969 阅读 428

在此处输入标题

未分类


在此输入正文

  1. from __future__ import print_function
  2. import os
  3. import versioneer
  4. from setuptools import setup, Extension, find_packages
  5. from os.path import relpath, join
  6. DOCLINES = __doc__.split("\n")
  7. CLASSIFIERS = """\
  8. Development Status :: 3 - Alpha
  9. Intended Audience :: Science/Research
  10. Intended Audience :: Developers
  11. License :: OSI Approved :: Open BSD clause 2 (OpenBSD)
  12. Programming Language :: Python
  13. Topic :: Scientific/Engineering :: Bio-Informatics
  14. Topic :: Scientific/Engineering :: Chemistry
  15. Topic :: Scientific/Engineering :: Physics
  16. Operating System :: Microsoft :: Windows
  17. Operating System :: POSIX
  18. Operating System :: Unix
  19. Operating System :: MacOS
  20. """
  21. ################################################################################
  22. # USEFUL SUBROUTINES
  23. ################################################################################
  24. def find_package_data(data_root, package_root):
  25. files = []
  26. for root, dirnames, filenames in os.walk(data_root):
  27. for fn in filenames:
  28. files.append(relpath(join(root, fn), package_root))
  29. return files
  30. ################################################################################
  31. # EXTENSIONS
  32. ################################################################################
  33. def extensions():
  34. from numpy import get_include as np_inc
  35. from scipy import get_include as sc_inc
  36. np_inc = np_inc()
  37. sc_inc = sc_inc()
  38. from Cython.Build import cythonize
  39. exts = [Extension('variational.estimators.covar_c.covartools',
  40. sources = ['./variational/estimators/covar_c/covartools.pyx',
  41. './variational/estimators/covar_c/_covartools.c'],
  42. include_dirs = ['./variational/estimators/covar_c/', np_inc],
  43. extra_compile_args=['-std=c99','-O3']),
  44. Extension('variational.solvers.eig_qr.eig_qr',
  45. sources=['./variational/solvers/eig_qr/eig_qr.pyx'],
  46. include_dirs=['./variational/solvers/eig_qr/', np_inc, sc_inc],
  47. extra_compile_args=['-std=c99','-O3'])
  48. ]
  49. return cythonize(exts)
  50. class lazy_cythonize(list):
  51. """evaluates extension list lazyly.
  52. pattern taken from http://tinyurl.com/qb8478q"""
  53. def __init__(self, callback):
  54. self._list, self.callback = None, callback
  55. def c_list(self):
  56. if self._list is None: self._list = self.callback()
  57. return self._list
  58. def __iter__(self):
  59. for e in self.c_list(): yield e
  60. def __getitem__(self, ii): return self.c_list()[ii]
  61. def __len__(self): return len(self.c_list())
  62. ################################################################################
  63. # SETUP
  64. ################################################################################
  65. metadata=dict(
  66. name = 'variational',
  67. author = 'Frank Noe, Fabian Paul and Feliks Nueske',
  68. author_email = 'frank.noe@fu-berlin.de',
  69. description = DOCLINES[0],
  70. long_description = "\n".join(DOCLINES[2:]),
  71. version=versioneer.get_version(),
  72. cmdclass=versioneer.get_cmdclass(),
  73. license='OpenBSD',
  74. url='https://github.com/markovmodel/variational',
  75. platforms=['Linux', 'Mac OS-X', 'Unix', 'Windows'],
  76. classifiers=CLASSIFIERS.splitlines(),
  77. #package_dir={'variational': 'variational'},
  78. packages=find_packages(),
  79. package_data={'variational.basisset':['ResiduesEigenvectors/*']
  80. },
  81. zip_safe=False,
  82. install_requires=[
  83. 'numpy',
  84. 'scipy',
  85. 'six',
  86. ],
  87. setup_requires=[
  88. 'cython>=0.24',
  89. 'numpy',
  90. ],
  91. ext_modules=lazy_cythonize(extensions),
  92. )
  93. setup(**metadata)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注