# #%L
# Copyright (c) 2016-2017 Cell Migration Standardisation Organization
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# #L%

from setuptools import setup, find_packages
from setuptools.command.build_py import build_py as BaseBuildPy
from distutils.errors import DistutilsSetupError
from distutils.dep_util import newer

VERSION_FILE = "VERSION"
PY_VERSION_FILE = "biotracks/version.py"


def get_version_string():
    try:
        with open(VERSION_FILE) as f:
            return f.read().strip()
    except IOError:
        raise DistutilsSetupError("failed to read version info")


def write_version():
    if newer(VERSION_FILE, PY_VERSION_FILE):
        with open(PY_VERSION_FILE, "w") as f:
            f.write("# GENERATED BY setup.py\n")
            f.write("version = '%s'\n" % (get_version_string()))


class BuildPy(BaseBuildPy):

    def run(self):
        write_version()
        BaseBuildPy.run(self)


with open('README.rst') as f:
    readme = f.read()


setup(
    name='biotracks',
    version=get_version_string(),
    description='Data package representation for cell migration tracking data',
    long_description=readme,
    author='paola masuzzo',
    author_email='paola.masuzzo@ugent.be',
    url='https://github.com/CellMigStandOrg/biotracks',
    license="BSD",
    cmdclass={"build_py": BuildPy},
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: BSD License",
        "Topic :: Scientific/Engineering :: Bio-Informatics",
        "Intended Audience :: Science/Research",
    ],
    install_requires=[
        "datapackage<1.0",
        "jsontableschema",
        "jsontableschema-pandas"],
    packages=find_packages(exclude=('tests', 'docs'))
)
