from setuptools import setup, find_packages  # Always prefer setuptools over distutils
from codecs import open  # To use a consistent encoding
from os import path
from setuptools.command.install import install


class post_install(install):
    def run(self):
        from arches.setup import install as arches_install

        install.run(self)
        arches_install()


with open("arches/install/requirements.txt") as f:
    requirements = f.read().splitlines()

# Dynamically calculate the version based on arches.VERSION.
version = __import__("arches").__version__

setup(
    name="arches",
    # Versions should comply with PEP440.  For a discussion on single-sourcing
    # the version across setup.py and the project code, see
    # http://packaging.python.org/en/latest/tutorial.html#version
    version=version,
    description="Arches is an open-source, web-based, geospatial information system for cultural heritage inventory and management.",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    url="http://archesproject.org/",
    author="Farallon Geographics, Inc",
    author_email="dev@fargeo.com",
    license="GNU AGPL3",
    scripts=["arches/install/arches-project", "arches/install/arches-admin"],
    cmdclass={"install": post_install},
    install_requires=requirements,
    python_requires=">=3.8",
    # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
    classifiers=[
        # How mature is this project? Common values are
        #   3 - Alpha
        #   4 - Beta
        #   5 - Production/Stable
        "Development Status :: 5 - Production/Stable",
        "Intended Audience :: Developers",
        "Intended Audience :: Science/Research",
        "Intended Audience :: Information Technology",
        "Topic :: Software Development :: Build Tools",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Framework :: Django :: 4.2",
        "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    ],
    # What does your project relate to?
    keywords="django arches cultural heritage",
    # You can just specify the packages manually here if your project is
    # simple. Or you can use find_packages().
    packages=find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]),
    include_package_data=True,
    zip_safe=False,
    test_suite="tests.run_tests.run_all",
)
