mirror of https://github.com/python/cpython
gh-67224: Make linecache imports relative to improve startup speed (#117501)
This commit is contained in:
parent
630df37116
commit
689ada7915
|
@ -5,9 +5,6 @@ is not found, it will look down the module search path for a file by
|
|||
that name.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
__all__ = ["getline", "clearcache", "checkcache", "lazycache"]
|
||||
|
||||
|
||||
|
@ -66,6 +63,11 @@ def checkcache(filename=None):
|
|||
size, mtime, lines, fullname = entry
|
||||
if mtime is None:
|
||||
continue # no-op for files loaded via a __loader__
|
||||
try:
|
||||
# This import can fail if the interpreter is shutting down
|
||||
import os
|
||||
except ImportError:
|
||||
return
|
||||
try:
|
||||
stat = os.stat(fullname)
|
||||
except OSError:
|
||||
|
@ -76,6 +78,12 @@ def checkcache(filename=None):
|
|||
|
||||
|
||||
def updatecache(filename, module_globals=None):
|
||||
# These imports are not at top level because linecache is in the critical
|
||||
# path of the interpreter startup and importing os and sys take a lot of time
|
||||
# and slow down the startup sequence.
|
||||
import os
|
||||
import sys
|
||||
|
||||
"""Update a cache entry and return its list of lines.
|
||||
If something's wrong, print a message, discard the cache entry,
|
||||
and return an empty list."""
|
||||
|
|
Loading…
Reference in New Issue