##// END OF EJS Templates
packaging: make rpm relocatable...
packaging: make rpm relocatable This makes it possible to install multiple Mercurial rpms on the same machine in different locations. Differential Revision: https://phab.mercurial-scm.org/D11768

File last commit:

r44605:5e84a96d default
r49155:5d08b289 6.0 stable
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 )