"""`Dependency injector` setup script.""" import os import re from setuptools import setup, Extension # Defining setup variables: defined_macros = dict() defined_macros['CYTHON_CLINE_IN_TRACEBACK'] = 0 # Getting description: with open('README.rst') as readme_file: description = readme_file.read() # Getting requirements: with open('requirements.txt') as requirements_file: requirements = requirements_file.readlines() # Getting version: with open('src/dependency_injector/__init__.py') as init_file: version = re.search('__version__ = \'(.*?)\'', init_file.read()).group(1) # Adding debug options: if os.environ.get('DEPENDENCY_INJECTOR_DEBUG_MODE') == '1': defined_macros['CYTHON_TRACE'] = 1 defined_macros['CYTHON_TRACE_NOGIL'] = 1 defined_macros['CYTHON_CLINE_IN_TRACEBACK'] = 1 setup(name='dependency-injector', version=version, description='Dependency injection framework for Python', long_description=description, author='Roman Mogylatov', author_email='rmogilatov@gmail.com', maintainer='Roman Mogylatov', maintainer_email='rmogilatov@gmail.com', url='https://github.com/ets-labs/python-dependency-injector', download_url='https://pypi.python.org/pypi/dependency_injector', packages=[ 'dependency_injector', 'dependency_injector.ext', ], package_dir={ '': 'src', }, package_data={ 'dependency_injector': ['*.pxd', '*.pyi', 'py.typed'], }, ext_modules=[ Extension('dependency_injector.containers', ['src/dependency_injector/containers.c'], define_macros=list(defined_macros.items()), extra_compile_args=['-O2']), Extension('dependency_injector.providers', ['src/dependency_injector/providers.c'], define_macros=list(defined_macros.items()), extra_compile_args=['-O2']), ], install_requires=requirements, extras_require={ 'yaml': [ 'pyyaml', ], 'pydantic': [ 'pydantic', ], 'flask': [ 'flask', ], 'aiohttp': [ 'aiohttp', ], }, zip_safe=True, license='BSD New', platforms=['any'], keywords=[ 'Dependency injection', 'DI', 'Inversion of Control', 'IoC', 'Factory', 'Singleton', 'Design patterns', 'Flask', ], classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Framework :: AsyncIO', 'Framework :: Bottle', 'Framework :: Django', 'Framework :: Flask', 'Framework :: Pylons', 'Framework :: Pyramid', 'Framework :: Pytest', 'Framework :: TurboGears', 'Topic :: Software Development', 'Topic :: Software Development :: Libraries', 'Topic :: Software Development :: Libraries :: Python Modules', ])