##// END OF EJS Templates
run-tests: use the same python version for shebang lines on Windows...
run-tests: use the same python version for shebang lines on Windows The latest py3 is used if the minor number isn't specified. After running the script to install all of the build dependencies, that moved the default from 3.8 to 3.9 on the CI system. That in turn caused a bunch of tests to be skipped that were running prior, even when the test runner was invoked with `py -3.8`. While we should almost always use the latest version, we really shouldn't make it hard to test different versions or allow things to randomly break in subtle ways like that. Differential Revision: https://phab.mercurial-scm.org/D10702

File last commit:

r44605:5e84a96d default
r47953:6f976d54 default
Show More
setup.py
120 lines | 3.3 KiB | text/x-python | PythonLexer
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 #!/usr/bin/env python
# Copyright (c) 2016-present, Gregory Szorc
# All rights reserved.
#
# This software may be modified and distributed under the terms
# of the BSD license. See the LICENSE file for details.
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237 from __future__ import print_function
from distutils.version import LooseVersion
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 import os
Gregory Szorc
zstd: vendor python-zstandard 0.6.0...
r30822 import sys
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 from setuptools import setup
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237 # Need change in 1.10 for ffi.from_buffer() to handle all buffer types
# (like memoryview).
# Need feature in 1.11 for ffi.gc() to declare size of objects so we avoid
# garbage collection pitfalls.
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 MINIMUM_CFFI_VERSION = "1.11"
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 try:
import cffi
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237
# PyPy (and possibly other distros) have CFFI distributed as part of
# them. The install_requires for CFFI below won't work. We need to sniff
# out the CFFI version here and reject CFFI if it is too old.
cffi_version = LooseVersion(cffi.__version__)
if cffi_version < LooseVersion(MINIMUM_CFFI_VERSION):
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 print(
"CFFI 1.11 or newer required (%s found); "
"not building CFFI backend" % cffi_version,
file=sys.stderr,
)
Gregory Szorc
zstandard: vendor python-zstandard 0.11...
r42237 cffi = None
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 except ImportError:
cffi = None
import setup_zstd
Gregory Szorc
zstd: vendor python-zstandard 0.6.0...
r30822 SUPPORT_LEGACY = False
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 SYSTEM_ZSTD = False
WARNINGS_AS_ERRORS = False
Gregory Szorc
zstd: vendor python-zstandard 0.6.0...
r30822
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if os.environ.get("ZSTD_WARNINGS_AS_ERRORS", ""):
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 WARNINGS_AS_ERRORS = True
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if "--legacy" in sys.argv:
Gregory Szorc
zstd: vendor python-zstandard 0.6.0...
r30822 SUPPORT_LEGACY = True
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 sys.argv.remove("--legacy")
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if "--system-zstd" in sys.argv:
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 SYSTEM_ZSTD = True
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 sys.argv.remove("--system-zstd")
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if "--warnings-as-errors" in sys.argv:
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 WARNINGS_AS_ERRORS = True
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 sys.argv.remove("--warning-as-errors")
Gregory Szorc
zstd: vendor python-zstandard 0.6.0...
r30822
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 # Code for obtaining the Extension instance is in its own module to
# facilitate reuse in other projects.
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 extensions = [
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 setup_zstd.get_c_extension(
name="zstd",
support_legacy=SUPPORT_LEGACY,
system_zstd=SYSTEM_ZSTD,
warnings_as_errors=WARNINGS_AS_ERRORS,
),
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 ]
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 install_requires = []
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 if cffi:
import make_cffi
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 extensions.append(make_cffi.ffi.distutils_extension())
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 install_requires.append("cffi>=%s" % MINIMUM_CFFI_VERSION)
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 version = None
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 with open("c-ext/python-zstandard.h", "r") as fh:
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 for line in fh:
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 if not line.startswith("#define PYTHON_ZSTANDARD_VERSION"):
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 continue
version = line.split()[2][1:-1]
break
if not version:
Gregory Szorc
python-zstandard: blacken at 80 characters...
r44605 raise Exception(
"could not resolve package version; " "this should never happen"
)
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435
setup(
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 name="zstandard",
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 version=version,
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 description="Zstandard bindings for Python",
long_description=open("README.rst", "r").read(),
url="https://github.com/indygreg/python-zstandard",
author="Gregory Szorc",
author_email="gregory.szorc@gmail.com",
license="BSD",
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 classifiers=[
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 "Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Programming Language :: C",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 ],
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 keywords="zstandard zstd compression",
packages=["zstandard"],
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 ext_modules=extensions,
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 test_suite="tests",
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 install_requires=install_requires,
Gregory Szorc
zstandard: vendor python-zstandard 0.13.0...
r44446 tests_require=["hypothesis"],
Gregory Szorc
zstd: vendor python-zstandard 0.5.0...
r30435 )