Skip to content

Commit 5d79a7c

Browse files
authored
Merge pull request #58 from breezechen/master
Fix 'builtin-code' object has no attribute 'co_filename' under pypy
2 parents 5b7d384 + 8fc659b commit 5d79a7c

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

stackprinter/frame_formatting.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def hide(name):
242242
if callable(value):
243243
qualified_name, path, *_ = inspect_callable(value)
244244
is_builtin = value.__class__.__name__ == 'builtin_function_or_method'
245-
is_boring = is_builtin or (qualified_name == name)
245+
is_boring = is_builtin or (qualified_name == name) or (path is None)
246246
is_suppressed = match(path, self.suppressed_paths)
247247
return is_boring or is_suppressed
248248
return False

stackprinter/utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ def inspect_callable(f):
3232
else:
3333
return None, None, None, None
3434

35-
try:
36-
qname = f.__qualname__
37-
except AttributeError:
38-
qname = None
35+
qname = getattr(f, '__qualname__', None)
36+
37+
# under pypy, builtin code object (like: [].append.__func__.__code__)
38+
# have no co_filename and co_firstlineno
39+
filepath = getattr(code, 'co_filename', None)
40+
ln = getattr(code, 'co_firstlineno', None)
3941

40-
filepath = code.co_filename
41-
ln = code.co_firstlineno
4242
return qname, filepath, owner, ln
4343

4444

0 commit comments

Comments
 (0)