aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2016-12-28 20:26:22 -0500
committerJason R. Coombs <jaraco@jaraco.com>2016-12-28 20:26:22 -0500
commita01cf3c234877ee6d2ff4cc0b1098cc05b53d6d1 (patch)
treea8da696d8aea60dca0045767aaecf67db79dc8d2
parenta29c9a4de0c8cf75b89582a0bf718056d58b0c10 (diff)
parent1bd827efdf08b77f8a0a29c58dfc805368466964 (diff)
downloadexternal_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.py16
-rw-r--r--setuptools/tests/test_depends.py12
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