diff --git a/setup.py b/setup.py index adb436c..04ea42c 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ class CMakeExtension(Extension): - def __init__(self, name, sourcedir=''): + def __init__(self, name, sourcedir=""): Extension.__init__(self, name, sources=[]) self.sourcedir = os.path.abspath(sourcedir) @@ -15,57 +15,74 @@ def __init__(self, name, sourcedir=''): class CMakeBuild(build_ext): def run(self): try: - out = subprocess.check_output(['cmake', '--version']) + out = subprocess.check_output(["cmake", "--version"]) except OSError: - raise RuntimeError("CMake must be installed to build the following extensions: " + - ", ".join(e.name for e in self.extensions)) + raise RuntimeError( + "CMake must be installed to build the following extensions: " + + ", ".join(e.name for e in self.extensions) + ) for ext in self.extensions: self.build_extension(ext) def build_extension(self, ext): env = os.environ.copy() - env['CXXFLAGS'] = '{} -DVERSION_INFO=\\"{}\\"'.format(env.get('CXXFLAGS', ''), - self.distribution.get_version()) + env["CXXFLAGS"] = '{} -DVERSION_INFO=\\"{}\\"'.format( + env.get("CXXFLAGS", ""), self.distribution.get_version() + ) extdir = os.path.abspath(os.path.dirname(self.get_ext_fullpath(ext.name))) - cmake_args = ['-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=' + extdir, - '-DPYTHON_EXECUTABLE=' + sys.executable] + cmake_args = [ + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=" + extdir, + "-DPYTHON_EXECUTABLE=" + sys.executable, + ] - cfg = 'Debug' if self.debug else 'RelWithDebInfo' - build_args = ['--config', cfg] + cfg = "Debug" if self.debug else "RelWithDebInfo" + build_args = ["--config", cfg] - cmake_args += ['-DCMAKE_BUILD_TYPE=' + cfg] + cmake_args += ["-DCMAKE_BUILD_TYPE=" + cfg] if "TF_BUILD" not in env: - build_args += ['--', '-j8'] + build_args += ["--", "-j8"] if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) - if 'CMAKE_VERBOSE_MAKEFILE' in env or 'TF_BUILD' in env: - cmake_args += ['-DCMAKE_VERBOSE_MAKEFILE=1'] - subprocess.check_call(['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env) - subprocess.check_call(['cmake', '--build', '.'] + build_args, cwd=self.build_temp) + if "CMAKE_VERBOSE_MAKEFILE" in env or "TF_BUILD" in env: + cmake_args += ["-DCMAKE_VERBOSE_MAKEFILE=1"] + subprocess.check_call( + ["cmake", ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env + ) + subprocess.check_call( + ["cmake", "--build", "."] + build_args, cwd=self.build_temp + ) -with open("README.rst", 'r') as fh: +with open("README.rst", "r") as fh: long_description = fh.read() setup( - name='batoid', + name="batoid", use_scm_version=True, - setup_requires=['setuptools_scm'], - author='Josh Meyers', - author_email='jmeyers314@gmail.com', - url='https://github.com/jmeyers314/batoid', + setup_requires=["setuptools_scm"], + author="Josh Meyers", + author_email="jmeyers314@gmail.com", + url="https://github.com/jmeyers314/batoid", description="Optics raytracer", long_description=long_description, long_description_content_type="text/markdown", - packages=find_packages(exclude=['batoid/data', 'batoid/data/*']), - package_dir={'batoid': 'batoid'}, - package_data={'batoid' : ['data/**/*']}, - ext_modules=[CMakeExtension('batoid._batoid')], - install_requires=['pybind11', 'numpy', 'pyyaml', 'scipy', 'galsim', 'matplotlib', 'astropy'], - python_requires='>=3.9', + packages=find_packages(exclude=["batoid/data", "batoid/data/*"]), + package_dir={"batoid": "batoid"}, + package_data={"batoid": ["data/**/*"]}, + ext_modules=[CMakeExtension("batoid._batoid")], + install_requires=[ + "pybind11", + "numpy", + "pyyaml", + "scipy", + "galsim", + "matplotlib", + "astropy", + ], + python_requires=">=3.9", cmdclass=dict(build_ext=CMakeBuild), zip_safe=False, include_package_data=True, @@ -79,8 +96,8 @@ def build_extension(self, ext): "Topic :: Scientific/Engineering :: Physics", ], project_urls={ - 'Documentation': "https://jmeyers314.github.io/batoid/overview.html", - 'Source': "https://github.com/jmeyers314/batoid", - 'Tracker': "https://github.com/jmeyers314/batoid/issues" - } + "Documentation": "https://jmeyers314.github.io/batoid/overview.html", + "Source": "https://github.com/jmeyers314/batoid", + "Tracker": "https://github.com/jmeyers314/batoid/issues", + }, )