# encoding: utf-8
from __future__ import print_function
import sys
import os
from glob import glob
from distutils.core import setup

name = 'maranet'

v = sys.version_info
if v[:2] < (2, 7) or (v[0] >= 3 and v[:2] < (3, 3)):
    error = "ERROR: %s requires Python version 2.7 or 3.3 or above." % name
    print(error, file=sys.stderr)
    sys.exit(1)

PY3 = (sys.version_info[0] >= 3)


pjoin = os.path.join
here = os.path.abspath(os.path.dirname(__file__))
pkg_root = pjoin(here, name)

packages = []
for d, _, _ in os.walk(pjoin(here, name)):
    if os.path.exists(pjoin(d, '__init__.py')):
        packages.append(d[len(here)+1:].replace(os.path.sep, '.'))

setup_args = dict(
    name            = name,
    version         = '1.0', # version_ns['__version__'],
    scripts         = glob(pjoin('scripts', '*')),
    packages        = packages,
    description     = "Mara network protocol",
    long_description= open('README.rst').read(),
    author          = 'Grupo de Investigación Microcontroladores e Internet',
    author_email    = 'microcnet3@googlegroups.com',
    # url             = 'https://jupyter.org',
    license         = 'BSD',
    platforms       = "Linux, Mac OS X, Windows",
    keywords        = ['Microcontroller', 'Network', 'Poll', ],
    classifiers     = [
    #    'Intended Audience :: Developers',
    #    'Intended Audience :: System Administrators',
    #    'Intended Audience :: Science/Research',
    #    'License :: OSI Approved :: BSD License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.7',
    #    'Programming Language :: Python :: 3',
    #    'Programming Language :: Python :: 3.3',
    ],
)

if 'develop' in sys.argv or any(a.startswith('bdist') for a in sys.argv):
    import setuptools

setuptools_args = {}
install_requires = setuptools_args['install_requires'] = [
    'construct',
    'twisted',
    # For pretty printing
    'jinja2',
]

extras_require = setuptools_args['extras_require'] = {
    'test:python_version=="2.7"': ['mock'],
    # 'test:sys_platform != "win32"': ['pexpect'],
}

setuptools_args['entry_points'] = {
        'console_scripts': [
            'mara-poll = maranet.direct:main',
        ]
}

if 'setuptools' in sys.modules:
    setup_args.update(setuptools_args)
    setup_args.pop('scripts')


if __name__ == '__main__':
    setup(**setup_args)
