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.
tempfileis 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.Pathobject. Thus, I think it's worthwhile to defer importing it until it's actually used.This PR effectively inlines the one function using
tempfileat 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_resourcesby about ~30% on supported CPython versions and ~50% on PyPy3.10.