summaryrefslogtreecommitdiff
path: root/lib/spack/external/macholib/MachOGraph.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/external/macholib/MachOGraph.py')
-rw-r--r--lib/spack/external/macholib/MachOGraph.py39
1 files changed, 21 insertions, 18 deletions
diff --git a/lib/spack/external/macholib/MachOGraph.py b/lib/spack/external/macholib/MachOGraph.py
index 5a733c3ed0..8943ed8bd3 100644
--- a/lib/spack/external/macholib/MachOGraph.py
+++ b/lib/spack/external/macholib/MachOGraph.py
@@ -8,10 +8,10 @@ import sys
from altgraph.ObjectGraph import ObjectGraph
from macholib.dyld import dyld_find
-from macholib.MachO import MachO
from macholib.itergraphreport import itergraphreport
+from macholib.MachO import MachO
-__all__ = ['MachOGraph']
+__all__ = ["MachOGraph"]
try:
unicode
@@ -25,13 +25,14 @@ class MissingMachO(object):
self.headers = ()
def __repr__(self):
- return '<%s graphident=%r>' % (type(self).__name__, self.graphident)
+ return "<%s graphident=%r>" % (type(self).__name__, self.graphident)
class MachOGraph(ObjectGraph):
"""
Graph data structure of Mach-O dependencies
"""
+
def __init__(self, debug=0, graph=None, env=None, executable_path=None):
super(MachOGraph, self).__init__(debug=debug, graph=graph)
self.env = env
@@ -41,16 +42,18 @@ class MachOGraph(ObjectGraph):
def locate(self, filename, loader=None):
if not isinstance(filename, (str, unicode)):
raise TypeError("%r is not a string" % (filename,))
- if filename.startswith('@loader_path/') and loader is not None:
+ if filename.startswith("@loader_path/") and loader is not None:
fn = self.trans_table.get((loader.filename, filename))
if fn is None:
loader_path = loader.loader_path
try:
fn = dyld_find(
- filename, env=self.env,
+ filename,
+ env=self.env,
executable_path=self.executable_path,
- loader_path=loader_path)
+ loader_path=loader_path,
+ )
self.trans_table[(loader.filename, filename)] = fn
except ValueError:
return None
@@ -60,8 +63,8 @@ class MachOGraph(ObjectGraph):
if fn is None:
try:
fn = dyld_find(
- filename, env=self.env,
- executable_path=self.executable_path)
+ filename, env=self.env, executable_path=self.executable_path
+ )
self.trans_table[filename] = fn
except ValueError:
return None
@@ -83,11 +86,11 @@ class MachOGraph(ObjectGraph):
m = self.findNode(pathname, loader=caller)
if m is None:
if not os.path.exists(pathname):
- raise ValueError('%r does not exist' % (pathname,))
+ raise ValueError("%r does not exist" % (pathname,))
m = self.createNode(MachO, pathname)
- self.createReference(caller, m, edge_data='run_file')
+ self.createReference(caller, m, edge_data="run_file")
self.scan_node(m)
- self.msgout(2, '')
+ self.msgout(2, "")
return m
def load_file(self, name, caller=None):
@@ -103,20 +106,20 @@ class MachOGraph(ObjectGraph):
self.scan_node(m)
else:
m = self.createNode(MissingMachO, name)
- self.msgout(2, '')
+ self.msgout(2, "")
return m
def scan_node(self, node):
- self.msgin(2, 'scan_node', node)
+ self.msgin(2, "scan_node", node)
for header in node.headers:
- for idx, name, filename in header.walkRelocatables():
+ for _idx, name, filename in header.walkRelocatables():
assert isinstance(name, (str, unicode))
assert isinstance(filename, (str, unicode))
m = self.load_file(filename, caller=node)
self.createReference(node, m, edge_data=name)
- self.msgout(2, '', node)
+ self.msgout(2, "", node)
- def itergraphreport(self, name='G'):
+ def itergraphreport(self, name="G"):
nodes = map(self.graph.describe_node, self.graph.iterdfs(self))
describe_edge = self.graph.describe_edge
return itergraphreport(nodes, describe_edge, name=name)
@@ -134,5 +137,5 @@ def main(args):
g.graphreport()
-if __name__ == '__main__':
- main(sys.argv[1:] or ['/bin/ls'])
+if __name__ == "__main__":
+ main(sys.argv[1:] or ["/bin/ls"])