# -*- coding: utf-8 -*-
#
# Copyright © 2012 Pierre Raybaut
# Licensed under the terms of the MIT License
# (see winpython/__init__.py for details)

"""
WinPython
=========

The WinPython distribution tools (wppm, ...)
"""

# for wheels creation
import setuptools

from distutils.core import setup
import os
import os.path as osp


def get_package_data(name, extlist):
    """Return data files for package *name* with extensions in *extlist*"""
    flist = []
    # Workaround to replace os.path.relpath (not available until Python 2.6):
    offset = len(name) + len(os.pathsep)
    for dirpath, _dirnames, filenames in os.walk(name):
        for fname in filenames:
            if (
                not fname.startswith('.')
                and osp.splitext(fname)[1] in extlist
            ):
                flist.append(
                    osp.join(dirpath, fname)[offset:]
                )
    return flist


def get_subpackages(name):
    """Return subpackages of package *name*"""
    splist = []
    for dirpath, _dirnames, _filenames in os.walk(name):
        if osp.isfile(osp.join(dirpath, '__init__.py')):
            splist.append(".".join(dirpath.split(os.sep)))
    return splist


NAME = LIBNAME = 'winpython'
from winpython import __version__, __project_url__

PROJECT_NAME = 'WinPython'

setup(
    name=NAME,
    version=__version__,
    description='%s distribution tools, including WPPM'
    % PROJECT_NAME,
    long_description="""%s is a portable distribution of the Python programming language
for Windows. It is a full-featured Python-based scientific environment, :
including a package manager, WPPM."""
    % PROJECT_NAME,
    download_url='%s/files/%s-%s.zip'
    % (__project_url__, NAME, __version__),
    author="Pierre Raybaut",
    author_email='pierre.raybaut@gmail.com',
    url=__project_url__,
    license='MIT',
    keywords='PyQt5 PyQt4 PySide',
    platforms=['any'],
    packages=get_subpackages(LIBNAME),
    package_data={
        LIBNAME: get_package_data(
            LIBNAME,
            (
                '.mo',
                '.svg',
                '.png',
                '.css',
                '.html',
                '.js',
                '.ini',
            ),
        )
    },
    # requires=["PyQt4 (>=4.5)"],
    scripts=[
        osp.join('scripts', fname)
        for fname in (
            'register_python',
            'register_python.bat',
        )
    ],
    # use setuptools functionalities
    entry_points={
        'console_scripts': [
            'wpcp = winpython.controlpanel:main',
            'wppm = winpython.wppm:main',
        ]
    },
    classifiers=[
        'License :: OSI Approved :: MIT License',
        'Operating System :: MacOS',
        'Operating System :: Microsoft :: Windows',
        'Operating System :: OS Independent',
        'Operating System :: POSIX',
        'Operating System :: Unix',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Development Status :: 5 - Production/Stable',
        'Topic :: Scientific/Engineering',
        'Topic :: Software Development :: Widget Sets',
    ],
)
