[pypy-commit] cffi default: We're interested in --with-pydebug not -d

stefanor pypy.commits at gmail.com
Thu Dec 29 18:05:50 EST 2016


Author: Stefano Rivera <stefano at rivera.za.net>
Branch: 
Changeset: r2844:bd6789d993c6
Date: 2016-12-30 00:05 +0100
http://bitbucket.org/cffi/cffi/changeset/bd6789d993c6/

Log:	We're interested in --with-pydebug not -d

diff --git a/cffi/setuptools_ext.py b/cffi/setuptools_ext.py
--- a/cffi/setuptools_ext.py
+++ b/cffi/setuptools_ext.py
@@ -79,9 +79,10 @@
     CPython itself should ignore the flag in a debugging version
     (by not listing .abi3.so in the extensions it supports), but
     it doesn't so far, creating troubles.  That's why we check
-    for "not sys.flags.debug". (http://bugs.python.org/issue28401)
+    for "not hasattr(sys, 'gettotalrefcount')" (the 2.7 compatible equivalent
+    of 'd' not in sys.abiflags). (http://bugs.python.org/issue28401)
     """
-    if 'py_limited_api' not in kwds and not sys.flags.debug:
+    if 'py_limited_api' not in kwds and not hasattr(sys, 'gettotalrefcount'):
         import setuptools
         try:
             setuptools_major_version = int(setuptools.__version__.partition('.')[0])
diff --git a/testing/cffi0/test_zintegration.py b/testing/cffi0/test_zintegration.py
--- a/testing/cffi0/test_zintegration.py
+++ b/testing/cffi0/test_zintegration.py
@@ -156,20 +156,21 @@
         except ImportError as e:
             py.test.skip(str(e))
         orig_version = setuptools.__version__
+        expecting_limited_api = not hasattr(sys, 'gettotalrefcount')
         try:
             setuptools.__version__ = '26.0.0'
             from setuptools import Extension
 
             kwds = _set_py_limited_api(Extension, {})
-            assert kwds['py_limited_api'] == True
+            assert kwds.get('py_limited_api', False) == expecting_limited_api
 
             setuptools.__version__ = '25.0'
             kwds = _set_py_limited_api(Extension, {})
-            assert not kwds
+            assert kwds.get('py_limited_api', False) == False
 
             setuptools.__version__ = 'development'
             kwds = _set_py_limited_api(Extension, {})
-            assert kwds['py_limited_api'] == True
+            assert kwds.get('py_limited_api', False) == expecting_limited_api
 
         finally:
             setuptools.__version__ = orig_version


More information about the pypy-commit mailing list