{{cookiecutter.derived.copyright_notice}}
"""{{cookiecutter.project_name}}."""
import io
import os
import re

from setuptools import find_packages, setup

VERSION_RE = re.compile(r"""__version__ = ['"]([0-9.]+)['"]""")
HERE = os.path.abspath(os.path.dirname(__file__))


def read(*args):
    """Read complete file contents."""
    return io.open(os.path.join(HERE, *args), encoding="utf-8").read()


def get_version():
    """Read the version from this module."""
    init = read("src", "{{cookiecutter.module_name}}", "identifiers.py")
    return VERSION_RE.search(init).group(1)


def get_requirements():
    """Read the requirements file."""
    raw_requirements = read("requirements.txt")
    requirements = []
    dependencies = []

    for req in raw_requirements.splitlines():
        req = req.strip()
        if not req:
            continue
        elif req.startswith("#"):
            continue
        elif "+" in req:
            dependencies.append(req)
        else:
            requirements.append(req)

    return requirements, dependencies


install_requires, dependency_links = get_requirements()


setup(
    name="{{cookiecutter.pypi_name}}",
    version=get_version(),
    packages=find_packages("src"),
    package_dir={"": "src"},
    url="{{cookiecutter.derived.github_url}}",
    author="{{cookiecutter.author}}",
    author_email="{{cookiecutter.author_email}}",
    maintainer="{{cookiecutter.author}}",
    description="{{cookiecutter.project_description}}",
    long_description=read("README.rst"),
    keywords="{{cookiecutter.pypi_keywords}}",
    data_files=["README.rst", "CHANGELOG.rst", "LICENSE", "requirements.txt"],
    license="{{cookiecutter.license}}",
    install_requires=install_requires,
    dependency_links=dependency_links,
    classifiers=[
        "Development Status :: {{cookiecutter.development_status}}",
        "Intended Audience :: Developers",
        "Natural Language :: English",
        {%- if cookiecutter.license == "Apache 2.0" %}
        "License :: OSI Approved :: Apache Software License",
        {%- endif %}
        "Programming Language :: Python",
        {%- if cookiecutter.support_legacy_python == "yes" %}
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        {%- endif %}
        "Programming Language :: Python :: 3",
        {%- for version in cookiecutter.supported_modern_python_versions.split() %}
        "Programming Language :: Python :: {{version}}",
        {%- endfor %}
        "Programming Language :: Python :: Implementation :: CPython",
        {%- if cookiecutter.author_email == "aws-cryptools@amazon.com" %}
        "Topic :: Security",
        "Topic :: Security :: Cryptography",
        {%- endif %}
    ],
)