summaryrefslogtreecommitdiffstats
path: root/third_party/python/frozenlist/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/frozenlist/setup.py')
-rw-r--r--third_party/python/frozenlist/setup.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/third_party/python/frozenlist/setup.py b/third_party/python/frozenlist/setup.py
new file mode 100644
index 0000000000..9d0e26fcb5
--- /dev/null
+++ b/third_party/python/frozenlist/setup.py
@@ -0,0 +1,90 @@
+import os
+import pathlib
+import re
+import sys
+
+from setuptools import Extension, setup
+
+if sys.version_info < (3, 6):
+ raise RuntimeError("frozenlist 1.x requires Python 3.6+")
+
+
+NO_EXTENSIONS = (
+ bool(os.environ.get('FROZENLIST_NO_EXTENSIONS')) or
+ sys.implementation.name != "cpython"
+)
+
+here = pathlib.Path(__file__).parent
+
+if NO_EXTENSIONS:
+ print("*********************")
+ print("* Pure Python build *")
+ print("*********************")
+ ext_modules = None
+else:
+ print("**********************")
+ print("* Accellerated build *")
+ print("**********************")
+ ext_modules = [
+ Extension('frozenlist._frozenlist', ['frozenlist/_frozenlist.c'])
+ ]
+
+
+txt = (here / 'frozenlist' / '__init__.py').read_text('utf-8')
+try:
+ version = re.findall(r"^__version__ = '([^']+)'\r?$",
+ txt, re.M)[0]
+except IndexError:
+ raise RuntimeError('Unable to determine version.')
+
+install_requires = []
+
+
+def read(f):
+ return (here / f).read_text('utf-8').strip()
+
+
+setup(
+ name='frozenlist',
+ version=version,
+ description=(
+ 'A list-like structure which implements '
+ 'collections.abc.MutableSequence'
+ ),
+ long_description='\n\n'.join((read('README.rst'), read('CHANGES.rst'))),
+ long_description_content_type="text/x-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',
+ 'Operating System :: POSIX',
+ 'Operating System :: MacOS :: MacOS X',
+ 'Operating System :: Microsoft :: Windows',
+ ],
+ author='Nikolay Kim',
+ author_email='fafhrd91@gmail.com',
+ maintainer='Martijn Pieters <mj@zopatista.com>',
+ maintainer_email='aio-libs@googlegroups.com',
+ url='https://github.com/aio-libs/frozenlist',
+ project_urls={
+ 'Chat: Gitter': 'https://gitter.im/aio-libs/Lobby',
+ 'CI: Github Actions':
+ 'https://github.com/aio-libs/frozenlist/actions',
+ 'Coverage: codecov': 'https://codecov.io/github/aio-libs/frozenlist',
+ 'Docs: RTD': 'https://frozenlist.readthedocs.io',
+ 'GitHub: issues': 'https://github.com/aio-libs/frozenlist/issues',
+ 'GitHub: repo': 'https://github.com/aio-libs/frozenlist',
+ },
+ license='Apache 2',
+ packages=['frozenlist'],
+ ext_modules=ext_modules,
+ python_requires='>=3.6',
+ install_requires=install_requires,
+ include_package_data=True,
+)