mirror of
https://github.com/python/cpython.git
synced 2025-08-22 01:35:16 +00:00
gh-67224: Show source lines in tracebacks when using the -c option when running Python (#111200)
This commit is contained in:
parent
3f84a19e62
commit
90a1b2859f
13 changed files with 104 additions and 36 deletions
|
@ -5,10 +5,8 @@ is not found, it will look down the module search path for a file by
|
|||
that name.
|
||||
"""
|
||||
|
||||
import functools
|
||||
import sys
|
||||
import os
|
||||
import tokenize
|
||||
|
||||
__all__ = ["getline", "clearcache", "checkcache", "lazycache"]
|
||||
|
||||
|
@ -82,6 +80,8 @@ def updatecache(filename, module_globals=None):
|
|||
If something's wrong, print a message, discard the cache entry,
|
||||
and return an empty list."""
|
||||
|
||||
import tokenize
|
||||
|
||||
if filename in cache:
|
||||
if len(cache[filename]) != 1:
|
||||
cache.pop(filename, None)
|
||||
|
@ -176,11 +176,13 @@ def lazycache(filename, module_globals):
|
|||
get_source = getattr(loader, 'get_source', None)
|
||||
|
||||
if name and get_source:
|
||||
get_lines = functools.partial(get_source, name)
|
||||
def get_lines(name=name, *args, **kwargs):
|
||||
return get_source(name, *args, **kwargs)
|
||||
cache[filename] = (get_lines,)
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _register_code(code, string, name):
|
||||
cache[code] = (
|
||||
len(string),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue