diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2016-12-28 20:26:22 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2016-12-28 20:26:22 -0500 |
commit | a01cf3c234877ee6d2ff4cc0b1098cc05b53d6d1 (patch) | |
tree | a8da696d8aea60dca0045767aaecf67db79dc8d2 | |
parent | a29c9a4de0c8cf75b89582a0bf718056d58b0c10 (diff) | |
parent | 1bd827efdf08b77f8a0a29c58dfc805368466964 (diff) | |
download | external_python_setuptools-a01cf3c234877ee6d2ff4cc0b1098cc05b53d6d1.tar.gz external_python_setuptools-a01cf3c234877ee6d2ff4cc0b1098cc05b53d6d1.tar.bz2 external_python_setuptools-a01cf3c234877ee6d2ff4cc0b1098cc05b53d6d1.zip |
Merge proposals. Ref #866.
-rw-r--r-- | setuptools/depends.py | 16 | ||||
-rw-r--r-- | setuptools/tests/test_depends.py | 12 |
2 files changed, 5 insertions, 23 deletions
diff --git a/setuptools/depends.py b/setuptools/depends.py index c150c52b..d417fa32 100644 --- a/setuptools/depends.py +++ b/setuptools/depends.py @@ -5,6 +5,7 @@ import dis from distutils.version import StrictVersion from imp import PKG_DIRECTORY, PY_COMPILED, PY_SOURCE, PY_FROZEN + __all__ = [ 'Require', 'find_module', 'get_module_constant', 'extract_constant' ] @@ -77,14 +78,6 @@ class Require: return self.version_ok(version) -def _iter_code(code): - """Yield '(op,arg)' pair for each operation in code object 'code'""" - return ( - (op.opcode, op.arg) - for op in dis.Bytecode(code) - ) - - def find_module(module, paths=None): """Just like 'imp.find_module()', but with package support""" @@ -150,9 +143,8 @@ def extract_constant(code, symbol, default=-1): only 'STORE_NAME' and 'STORE_GLOBAL' opcodes are checked, and 'symbol' must be present in 'code.co_names'. """ - if symbol not in code.co_names: - # name's not there, can't possibly be an assigment + # name's not there, can't possibly be an assignment return None name_idx = list(code.co_names).index(symbol) @@ -163,7 +155,9 @@ def extract_constant(code, symbol, default=-1): const = default - for op, arg in _iter_code(code): + for byte_code in dis.Bytecode(code): + op = byte_code.opcode + arg = byte_code.arg if op == LOAD_CONST: const = code.co_consts[arg] diff --git a/setuptools/tests/test_depends.py b/setuptools/tests/test_depends.py index fcf2a636..e0cfa880 100644 --- a/setuptools/tests/test_depends.py +++ b/setuptools/tests/test_depends.py @@ -14,15 +14,3 @@ class TestGetModuleConstant: val = depends.get_module_constant(mod_name, 'value') assert val == 'three, sir!' assert 'setuptools.tests.mod_with_constant' not in sys.modules - - -class TestIterCode: - def test_empty(self): - code = compile('', '<string>', mode='exec') - expected = (100, 0), (83, None) - assert tuple(depends._iter_code(code)) == expected - - def test_constant(self): - code = compile('value = "three, sir!"', '<string>', mode='exec') - expected = (100, 0), (90, 0), (100, 1), (83, None) - assert tuple(depends._iter_code(code)) == expected |