comparison contrib/python-zstandard/setup.py @ 42070:675775c33ab6

zstandard: vendor python-zstandard 0.11 The upstream source distribution from PyPI was extracted. Unwanted files were removed. The clang-format ignore list was updated to reflect the new source of files. The project contains a vendored copy of zstandard 1.3.8. The old version was 1.3.6. This should result in some minor performance wins. test-check-py3-compat.t was updated to reflect now-passing tests on Python 3.8. Some HTTP tests were updated to reflect new zstd compression output. # no-check-commit because 3rd party code has different style guidelines Differential Revision: https://phab.mercurial-scm.org/D6199
author Gregory Szorc <gregory.szorc@gmail.com>
date Thu, 04 Apr 2019 17:34:43 -0700
parents c0081d3e1598
children 69de49c4e39c
comparison
equal deleted inserted replaced
42069:668eff08387f 42070:675775c33ab6
3 # All rights reserved. 3 # All rights reserved.
4 # 4 #
5 # This software may be modified and distributed under the terms 5 # This software may be modified and distributed under the terms
6 # of the BSD license. See the LICENSE file for details. 6 # of the BSD license. See the LICENSE file for details.
7 7
8 from __future__ import print_function
9
10 from distutils.version import LooseVersion
8 import os 11 import os
9 import sys 12 import sys
10 from setuptools import setup 13 from setuptools import setup
11 14
15 # Need change in 1.10 for ffi.from_buffer() to handle all buffer types
16 # (like memoryview).
17 # Need feature in 1.11 for ffi.gc() to declare size of objects so we avoid
18 # garbage collection pitfalls.
19 MINIMUM_CFFI_VERSION = '1.11'
20
12 try: 21 try:
13 import cffi 22 import cffi
23
24 # PyPy (and possibly other distros) have CFFI distributed as part of
25 # them. The install_requires for CFFI below won't work. We need to sniff
26 # out the CFFI version here and reject CFFI if it is too old.
27 cffi_version = LooseVersion(cffi.__version__)
28 if cffi_version < LooseVersion(MINIMUM_CFFI_VERSION):
29 print('CFFI 1.11 or newer required (%s found); '
30 'not building CFFI backend' % cffi_version,
31 file=sys.stderr)
32 cffi = None
33
14 except ImportError: 34 except ImportError:
15 cffi = None 35 cffi = None
16 36
17 import setup_zstd 37 import setup_zstd
18 38
47 install_requires = [] 67 install_requires = []
48 68
49 if cffi: 69 if cffi:
50 import make_cffi 70 import make_cffi
51 extensions.append(make_cffi.ffi.distutils_extension()) 71 extensions.append(make_cffi.ffi.distutils_extension())
52 72 install_requires.append('cffi>=%s' % MINIMUM_CFFI_VERSION)
53 # Need change in 1.10 for ffi.from_buffer() to handle all buffer types
54 # (like memoryview).
55 # Need feature in 1.11 for ffi.gc() to declare size of objects so we avoid
56 # garbage collection pitfalls.
57 install_requires.append('cffi>=1.11')
58 73
59 version = None 74 version = None
60 75
61 with open('c-ext/python-zstandard.h', 'r') as fh: 76 with open('c-ext/python-zstandard.h', 'r') as fh:
62 for line in fh: 77 for line in fh:
86 'Programming Language :: C', 101 'Programming Language :: C',
87 'Programming Language :: Python :: 2.7', 102 'Programming Language :: Python :: 2.7',
88 'Programming Language :: Python :: 3.4', 103 'Programming Language :: Python :: 3.4',
89 'Programming Language :: Python :: 3.5', 104 'Programming Language :: Python :: 3.5',
90 'Programming Language :: Python :: 3.6', 105 'Programming Language :: Python :: 3.6',
106 'Programming Language :: Python :: 3.7',
91 ], 107 ],
92 keywords='zstandard zstd compression', 108 keywords='zstandard zstd compression',
93 packages=['zstandard'], 109 packages=['zstandard'],
94 ext_modules=extensions, 110 ext_modules=extensions,
95 test_suite='tests', 111 test_suite='tests',