Skip to content

Commit

Permalink
pythongh-67224: Make linecache imports relative to improve startup sp…
Browse files Browse the repository at this point in the history
…eed (python#117501)
  • Loading branch information
pablogsal authored Apr 10, 2024
1 parent 630df37 commit 689ada7
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions Lib/linecache.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
that name.
"""

import sys
import os

__all__ = ["getline", "clearcache", "checkcache", "lazycache"]


Expand Down Expand Up @@ -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:
Expand All @@ -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."""
Expand Down

0 comments on commit 689ada7

Please sign in to comment.