import os from setuptools import setup # Monkey patch to prevent bdist_msi from incorrectly overwriting the value of # build-lib specified on the command line. # See http://bugs.python.org/issue1109963 # This patch works by returning False the first time that the # 'has_ext_modules' method is called in bdist_msi.run, which is where the # replacement of build_lib happens. Subsequent calls to 'has_ext_modules' # should use the correct value so that the resulting installer is specific to # this Python version. Known to affect Python versions 2.6 through 3.7. If # this bug is ever fixed, this patch should be made conditional on the Python # version. if os.name == 'nt': from distutils.command.bdist_msi import bdist_msi bdist_run_orig = bdist_msi.run def bdist_run_new(self): has_ext_modules_orig = self.distribution.has_ext_modules self._first_call = True def has_ext_modules(): if self._first_call: self._first_call = False return False else: return has_ext_modules_orig() self.distribution.has_ext_modules = has_ext_modules return bdist_run_orig(self) bdist_msi.run = bdist_run_new # Monkey patch to resolve https://bugs.python.org/issue34251 # (Affects Python 3.7.0) if os.name == 'nt': import msilib msilib.Win64 = msilib.AMD64 # Copy the long_description from docs/sphinx/index.rst long_description = """ Cantera is a suite of object-oriented software tools for problems involving chemical kinetics, thermodynamics, and/or transport processes. Cantera provides types (or classes) of objects representing phases of matter, interfaces between these phases, reaction managers, time-dependent reactor networks, and steady one-dimensional reacting flows. Cantera is currently used for applications including combustion, detonations, electrochemical energy conversion and storage, fuel cells, batteries, aqueous electrolyte solutions, plasmas, and thin film deposition. Cantera can be used from Python and Matlab, or in applications written in C++ and Fortran 90. """ setup( name="Cantera", version="@cantera_version@", description="The Cantera Python Interface", long_description=long_description, author="Raymond Speth", author_email="speth@mit.edu", url="http://www.cantera.org", packages = [ 'cantera', 'cantera.data', 'cantera.test', 'cantera.test.data', 'cantera.examples', ], entry_points={ 'console_scripts': [ 'ck2cti=cantera.ck2cti:script_entry_point', 'ctml_writer=cantera.ctml_writer:main', ], }, classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Education', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: BSD License', 'Operating System :: MacOS :: MacOS X', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX :: Linux', 'Programming Language :: C++', 'Programming Language :: Fortran', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Topic :: Scientific/Engineering :: Chemistry', ], package_data = { 'cantera.data': ['*.*'], 'cantera.test.data': ['*.*'], 'cantera.examples': ['*/*.*'], 'cantera': ["@py_extension@", '*.pxd'], }, )