from setuptools import setup, find_packages

from snakehouse import Multibuild, build
from setuptools import Extension

# note that you can include standard Extension classes in this list, those won't be touched
# and will be directed directly to Cython.Build.cythonize()
cython_multibuilds = [
    Multibuild('example_module', ['example_module/test.pyx', 'example_module/test2.pyx',
                                  'example_module/test3/test3.pyx',
                                  'example_module/test_n.c']),
    Extension('example', ['example.pyx'])
]

# first argument is used directly by snakehouse, the rest and **kwargs are passed to
# Cython.Build.cythonize()
ext_modules = build(cython_multibuilds,
                    compiler_directives={
                       'language_level': '3',
                    })

setup(name='example_module',
      version='0.1',
      packages=['example_module', 'example'],
      install_requires=[
            'Cython', 'snakehouse'
      ],
      zip_safe=False,
      tests_require=[
          "nose2"
      ],
      test_suite='nose2.collector.collector',
      python_requires='!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*',
      ext_modules=ext_modules
)