Defer tempfile
import to sites of use
#328
Open
+8
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of #326.
tempfile
is a relatively heavy import that's only used in a few routines, and they aren't always called when usingimportlib_resources
, especially in the common case ofas_file()
being passed apathlib.Path
object. Thus, I think it's worthwhile to defer importing it until it's actually used.This PR effectively inlines the one function using
tempfile
at module-level scope to avoid an import-time dependency ontempfile
. It then "inlines" the necessary import in the two functions that use it.Based on local testing, doing so improves the upfront import time of
importlib_resources
by about ~30% on supported CPython versions and ~50% on PyPy3.10.