forked from mirrors/gecko-dev
Note that, as part of adding this packages to the automated vendoring system, some dependencies were automatically added - most notably, dependencies of `taskcluster` that become visible with Python 3.6+. Also, adds `**/.git` to the exclusions because: * `.git` is part of our `.hgignore`, but * `.git` is part of the `aiohttp` `tar.gz` file. Since the file isn't needed for `pip install`-ing `aiohttp`, and since we want `./mach vendor python` to be a no-op when there's no requirement changes, we exclude it. Differential Revision: https://phabricator.services.mozilla.com/D123122
96 lines
2.6 KiB
Python
96 lines
2.6 KiB
Python
import codecs
|
|
import os
|
|
import platform
|
|
import re
|
|
import sys
|
|
|
|
from setuptools import Extension, setup
|
|
|
|
NO_EXTENSIONS = bool(os.environ.get("MULTIDICT_NO_EXTENSIONS"))
|
|
|
|
if sys.implementation.name != "cpython":
|
|
NO_EXTENSIONS = True
|
|
|
|
CFLAGS = ["-O2"]
|
|
# CFLAGS = ['-g']
|
|
if platform.system() != "Windows":
|
|
CFLAGS.extend(
|
|
[
|
|
"-std=c99",
|
|
"-Wall",
|
|
"-Wsign-compare",
|
|
"-Wconversion",
|
|
"-fno-strict-aliasing",
|
|
"-pedantic",
|
|
]
|
|
)
|
|
|
|
extensions = [
|
|
Extension(
|
|
"multidict._multidict",
|
|
["multidict/_multidict.c"],
|
|
extra_compile_args=CFLAGS,
|
|
),
|
|
]
|
|
|
|
|
|
with codecs.open(
|
|
os.path.join(
|
|
os.path.abspath(os.path.dirname(__file__)), "multidict", "__init__.py"
|
|
),
|
|
"r",
|
|
"latin1",
|
|
) as fp:
|
|
try:
|
|
version = re.findall(r'^__version__ = "([^"]+)"\r?$', fp.read(), re.M)[0]
|
|
except IndexError:
|
|
raise RuntimeError("Unable to determine version.")
|
|
|
|
|
|
def read(f):
|
|
return open(os.path.join(os.path.dirname(__file__), f)).read().strip()
|
|
|
|
|
|
args = dict(
|
|
name="multidict",
|
|
version=version,
|
|
description=("multidict implementation"),
|
|
long_description=read("README.rst"),
|
|
classifiers=[
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Intended Audience :: Developers",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Development Status :: 5 - Production/Stable",
|
|
],
|
|
author="Andrew Svetlov",
|
|
author_email="andrew.svetlov@gmail.com",
|
|
url="https://github.com/aio-libs/multidict",
|
|
project_urls={
|
|
"Chat: Gitter": "https://gitter.im/aio-libs/Lobby",
|
|
"CI: Azure Pipelines": "https://dev.azure.com/aio-libs/multidict/_build",
|
|
"Coverage: codecov": "https://codecov.io/github/aio-libs/multidict",
|
|
"Docs: RTD": "https://multidict.readthedocs.io",
|
|
"GitHub: issues": "https://github.com/aio-libs/multidict/issues",
|
|
"GitHub: repo": "https://github.com/aio-libs/multidict",
|
|
},
|
|
license="Apache 2",
|
|
packages=["multidict"],
|
|
python_requires=">=3.6",
|
|
include_package_data=True,
|
|
)
|
|
|
|
if not NO_EXTENSIONS:
|
|
print("*********************")
|
|
print("* Accelerated build *")
|
|
print("*********************")
|
|
setup(ext_modules=extensions, **args)
|
|
else:
|
|
print("*********************")
|
|
print("* Pure Python build *")
|
|
print("*********************")
|
|
setup(**args)
|