summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py83
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',
+ ]
+ )