Skip to content
Snippets Groups Projects
setup.py 3.23 KiB
"""
// (c) University of Southampton IT Innovation Centre, 2018
//
// Copyright in this software belongs to University of Southampton
// IT Innovation Centre of Gamma House, Enterprise Road,
// Chilworth Science Park, Southampton, SO16 7NS, UK.
//
// This software may not be used, sold, licensed, transferred, copied
// or reproduced in whole or in part in any manner or form or in or
// on any media by any person other than in accordance with the terms
// of the Licence Agreement supplied with the software, or otherwise
// without the prior written consent of the copyright owners.
//
// This software is distributed WITHOUT ANY WARRANTY, without even the
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE, except where stated in the Licence Agreement supplied with
// the software.
//
//      Created By :            Nikolay Stanchev
//      Created Date :          15-05-2018
//      Created for Project :   FLAME
"""


# Python standard libs
import os
import os.path
from setuptools import setup, find_packages


def get_version(*relative_path):
    """
    Reads and parses a version file.

    :param relative_path: iterable representing the relative path to the version file
    :return:
    """

    fname = os.path.join(os.path.dirname(__file__), *relative_path)

    if os.path.isfile(fname):
        with open(fname) as f:  # Use context managers when opening files, otherwise file handlers might not be properly closed
            version = {}
            # execute the version file and put its content in the version dictionary
            exec(f.read(), version)
            # extract the __version__ variable from the dictionary, if not found use default value "SNAPSHOT"
            git_revision = version.get("__version__", "SNAPSHOT")
    else:
        git_revision = "SNAPSHOT"

    return git_revision


requires = [
    'ipython==6.5.0',
    'jupyter_console==5.2.0',
    'plaster_pastedeploy==0.6',
    'pyramid==1.9.2',
    'pyramid_debugtoolbar==4.5',
    'pyramid_exclog==1.0',
    'waitress==1.1.0',
    'sqlalchemy==1.2.12',
    'zope.sqlalchemy==1.0',
    'psycopg2==2.7.5',
    'influxdb==5.2.0',
    'neo4j-driver==1.6.2',
    'py2neo==4.1.0',
    'pyyaml==3.13',
    'tosca-parser==1.1.0',
    'schema==0.6.8',
    'requests==2.19.1'
]

tests_require = [
    'pytest==3.8.1',
    'pytest-cov==2.6.0'
]

setup(
    name="clmcservice",
    version=get_version("VERSION"),
    author="Michael Boniface",
    author_email="mjb@it-innovation.soton.ac.uk",
    description="FLAME CLMC Service Module",
    long_description="FLAME CLMC Service",
    license="https://gitlab.it-innovation.soton.ac.uk/FLAME/flame-clmc/blob/integration/LICENSE",
    keywords="FLAME CLMC service",
    url='https://gitlab.it-innovation.soton.ac.uk/FLAME/flame-clmc',
    packages=find_packages(),
    include_package_data=True,
    install_requires=requires,
    extras_require={
        'testing': tests_require,
    },
    classifiers=[
        "Development Status :: Alpha",
        "Topic :: FLAME CLMC Service",
        "License :: ",
    ],
    entry_points={
        'paste.app_factory': [
            'main = clmcservice:main',
        ],
        'console_scripts': [
            'initialize_clmcservice_db = clmcservice.initialize_db:main',
        ]
    },
)