diff options
author | Gard Spreemann <gspr@nonempty.org> | 2020-01-20 14:07:53 +0100 |
---|---|---|
committer | Gard Spreemann <gspr@nonempty.org> | 2020-01-20 14:07:53 +0100 |
commit | bdfb24ff37ea777d6e266b145047cd4e281ebac3 (patch) | |
tree | 00cbac5f3dc25a4ee76164828abd72c1cbab37cc /setup.py | |
parent | abc441b00f0fe2fa4ef0efc4e1aa67b27cca9a13 (diff) | |
parent | 5e70a77fbb2feec513f21c9ef65dcc535329ace6 (diff) |
Merge tag '0.6.0' into debian/sid
Diffstat (limited to 'setup.py')
-rwxr-xr-x | setup.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..c08e3e0 --- /dev/null +++ b/setup.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python + +from setuptools import setup, find_packages +from codecs import open +from os import path +from setuptools.extension import Extension +from Cython.Build import cythonize +import numpy +import re +import os + +here = path.abspath(path.dirname(__file__)) + +# dirty but working +__version__ = re.search( + r'__version__\s*=\s*[\'"]([^\'"]*)[\'"]', # It excludes inline comment too + open('ot/__init__.py').read()).group(1) +# The beautiful part is, I don't even need to check exceptions here. +# If something messes up, let the build process fail noisy, BEFORE my release! + +# thanks Pipy for handling markdown now +ROOT = os.path.abspath(os.path.dirname(__file__)) + +with open(os.path.join(ROOT, 'README.md'), encoding="utf-8") as f: + README = f.read() + +# add platform dependant optional compilation argument +opt_arg=["-O3"] +import platform +if platform.system()=='Darwin': + if platform.release()=='18.0.0': + opt_arg.append("-stdlib=libc++") # correspond to a compilation problem with Mojave and XCode 10 + +setup(name='POT', + version=__version__, + description='Python Optimal Transport Library', + long_description=README, + long_description_content_type='text/markdown', + author=u'Remi Flamary, Nicolas Courty', + author_email='remi.flamary@gmail.com, ncourty@gmail.com', + url='https://github.com/rflamary/POT', + packages=find_packages(), + ext_modules = cythonize(Extension( + "ot.lp.emd_wrap", # the extension name + sources=["ot/lp/emd_wrap.pyx", "ot/lp/EMD_wrapper.cpp"], # the Cython source and + # additional C++ source files + language="c++", # generate and compile C++ code, + include_dirs=[numpy.get_include(),os.path.join(ROOT,'ot/lp')], + extra_compile_args=opt_arg + )), + platforms=['linux','macosx','windows'], + download_url='https://github.com/rflamary/POT/archive/{}.tar.gz'.format(__version__), + license = 'MIT', + scripts=[], + data_files=[], + requires=["numpy","scipy","cython"], + install_requires=["numpy","scipy","cython"], + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Intended Audience :: Education', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: MIT License', + 'Environment :: Console', + 'Operating System :: OS Independent', + 'Operating System :: MacOS', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: C++', + 'Programming Language :: C', + 'Programming Language :: Cython', + 'Topic :: Utilities', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Information Analysis', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + ] + ) |