diff contrib/python-zstandard/setup.py @ 37495:b1fb341d8a61

zstandard: vendor python-zstandard 0.9.0 This was just released. It features a number of goodies. More info at https://gregoryszorc.com/blog/2018/04/09/release-of-python-zstandard-0.9/. The clang-format ignore list was updated to reflect the new source of files. The project contains a vendored copy of zstandard 1.3.4. The old version was 1.1.3. One of the changes between those versions is that zstandard is now dual licensed BSD + GPLv2 and the patent rights grant has been removed. Good riddance. The API should be backwards compatible. So no changes in core should be needed. However, there were a number of changes in the library that we'll want to adapt to. Those will be addressed in subsequent commits. Differential Revision: https://phab.mercurial-scm.org/D3198
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 09 Apr 2018 10:13:29 -0700
parents e0dc40530c5a
children c0081d3e1598
line wrap: on
line diff
--- a/contrib/python-zstandard/setup.py	Sun Apr 08 01:08:43 2018 +0200
+++ b/contrib/python-zstandard/setup.py	Mon Apr 09 10:13:29 2018 -0700
@@ -5,6 +5,7 @@
 # This software may be modified and distributed under the terms
 # of the BSD license. See the LICENSE file for details.
 
+import os
 import sys
 from setuptools import setup
 
@@ -16,14 +17,32 @@
 import setup_zstd
 
 SUPPORT_LEGACY = False
+SYSTEM_ZSTD = False
+WARNINGS_AS_ERRORS = False
 
-if "--legacy" in sys.argv:
+if os.environ.get('ZSTD_WARNINGS_AS_ERRORS', ''):
+    WARNINGS_AS_ERRORS = True
+
+if '--legacy' in sys.argv:
     SUPPORT_LEGACY = True
-    sys.argv.remove("--legacy")
+    sys.argv.remove('--legacy')
+
+if '--system-zstd' in sys.argv:
+    SYSTEM_ZSTD = True
+    sys.argv.remove('--system-zstd')
+
+if '--warnings-as-errors' in sys.argv:
+    WARNINGS_AS_ERRORS = True
+    sys.argv.remote('--warning-as-errors')
 
 # Code for obtaining the Extension instance is in its own module to
 # facilitate reuse in other projects.
-extensions = [setup_zstd.get_c_extension(SUPPORT_LEGACY, 'zstd')]
+extensions = [
+    setup_zstd.get_c_extension(name='zstd',
+                               support_legacy=SUPPORT_LEGACY,
+                               system_zstd=SYSTEM_ZSTD,
+                               warnings_as_errors=WARNINGS_AS_ERRORS),
+]
 
 install_requires = []
 
@@ -31,8 +50,11 @@
     import make_cffi
     extensions.append(make_cffi.ffi.distutils_extension())
 
-    # Need change in 1.8 for ffi.from_buffer() behavior.
-    install_requires.append('cffi>=1.8')
+    # 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.
+    install_requires.append('cffi>=1.11')
 
 version = None
 
@@ -62,14 +84,13 @@
         'Intended Audience :: Developers',
         'License :: OSI Approved :: BSD License',
         'Programming Language :: C',
-        'Programming Language :: Python :: 2.6',
         'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3.3',
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
     ],
     keywords='zstandard zstd compression',
+    packages=['zstandard'],
     ext_modules=extensions,
     test_suite='tests',
     install_requires=install_requires,