gh-67224: Make linecache imports relative to improve startup speed (#117501)

This commit is contained in:
Pablo Galindo Salgado 2024-04-10 20:09:25 +01:00 committed by GitHub
parent 630df37116
commit 689ada7915
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 3 deletions

View File

@ -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."""