#!/usr/bin/env python
from os import path

from setuptools import setup
from setuptools.command.develop import develop
from setuptools.command.install import install

here = path.abspath(path.dirname(__file__))

# Get the long description from the README file
with open(path.join(here, "README.rst")) as f:
    long_description = f.read()


def _post_install():
    """Post installation nltk corpus downloads."""
    import nltk

    nltk.download("punkt")
    nltk.download("stopwords")


class PostDevelop(develop):
    """Post-installation for development mode."""

    def run(self):
        develop.run(self)
        self.execute(_post_install, [], msg="Running post installation tasks")


class PostInstall(install):
    """Post-installation for production mode."""

    def run(self):
        install.run(self)
        self.execute(_post_install, [], msg="Running post installation tasks")


# Get package and author details.
about = {}
with open(path.join(here, "rake_nltk", "__version__.py")) as f:
    exec(f.read(), about)

setup(
    # Name of the module
    name="rake_nltk",
    # Details
    version=about["__version__"],
    description=about["__description__"],
    long_description=long_description,
    # The project's main homepage.
    url=about["__url__"],
    # Author details
    author=about["__author__"],
    author_email=about["__author_email__"],
    # License
    license=about["__license__"],
    packages=["rake_nltk"],
    test_suite="tests",
    keywords="nlp text-mining algorithms development",
    classifiers=[
        # Intended Audience.
        "Intended Audience :: Developers",
        "Intended Audience :: Education",
        # License.
        "License :: OSI Approved :: MIT License",
        # Project maturity.
        "Development Status :: 3 - Alpha",
        # Operating Systems.
        "Operating System :: POSIX",
        # Supported Languages.
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3.4",
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        # Topic tags.
        "Topic :: Software Development :: Build Tools",
        "Topic :: Software Development :: Libraries :: Python Modules",
    ],
    install_requires=["nltk"],
    cmdclass={"develop": PostDevelop, "install": PostInstall},
)