Mercurial > hgrepos > Python > libs > ConfigMix
view setup.py @ 549:84657447ab39
FIX: Properly raise a UnicodeEncodeError from C
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 02 Jan 2022 01:00:10 +0100 |
| parents | adf65c31f8fc |
| children | 059260191371 |
line wrap: on
line source
#!/usr/bin/env python # -*- coding: utf-8 -*- import re import os import platform import sys try: from setuptools import setup except ImportError: from distutils.core import setup if (sys.version_info[0] < 2) or \ ((sys.version_info[0] == 2) and (sys.version_info[1] < 6)): raise ValueError("Need at least Python 2.6") pkg_root = os.path.dirname(__file__) _version_re = re.compile(br"^\s*__version__\s*=\s*(\"|')(.*)\1\s*(#.*)?$", re.MULTILINE) with open(os.path.join(pkg_root, "configmix", "__init__.py"), "rb") as vf: version = _version_re.search(vf.read()).group(2).decode("utf-8") with open(os.path.join(pkg_root, "README.txt"), "rt") as rf: long_description = rf.read() aws_requirements = [ "requests", ] yaml_requirements = [ "PyYAML>=3.0,<6", ] toml_requirements = [ "toml>=0.10", ] all_requirements = [] all_requirements.extend(aws_requirements) all_requirements.extend(yaml_requirements) all_requirements.extend(toml_requirements) cmdclass = {} ext_modules = [] # # Handle the optinal C-extension for Python3.7+ and CPython only. # PyPy does not need this. # # The C-extension uses multi-phase module initialization (PEP 489, PY 3.5+) if (platform.python_implementation() == "CPython" and (sys.version_info[0] > 3 or (sys.version_info[0] == 3 and sys.version_info[1] >= 5))): # The stable API for Python 3.7+ is used if sys.version_info[0] == 3 and sys.version_info[1] < 7: py_limited_api = False else: py_limited_api = True if py_limited_api: define_macros = [("Py_LIMITED_API", "0x03070000")] else: define_macros = [] try: from setuptools import Extension except ImportError: from distutils.core import Extension ext_modules = [ Extension( name="configmix._speedups", sources=["configmix/_speedups.c"], define_macros=define_macros, py_limited_api=py_limited_api, optional=True ), ] if py_limited_api: # # Build a wheel that is properly named using the stable API # try: import wheel.bdist_wheel except ImportError: cmdclass = {} else: class BDistWheel(wheel.bdist_wheel.bdist_wheel): def finalize_options(self): # Synchronize this with Py_LIMITED_API self.py_limited_api = 'cp37' super().finalize_options() cmdclass = {'bdist_wheel': BDistWheel} setup( name="ConfigMix", version=version, author="Franz Glasner", license='BSD 3-Clause "New" or "Revised" License', url="https://pypi.dom66.de/simple/configmix/", description="Library for extended configuration files", long_description=long_description, packages=["configmix", "configmix.extras"], include_package_data=False, zip_safe=True, platforms="any", classifiers=[ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], python_requires=">=2.6", ext_modules=ext_modules, cmdclass=cmdclass, extras_require={ "aws" : aws_requirements, "toml": toml_requirements, "yaml": yaml_requirements, "all" : all_requirements, }, tests_require=all_requirements, )
