wrapper: switch to functools.lru_cache

No need to implement our own caching logic with newer Python.

Change-Id: Idc3243b8e22ff020817b0a4f18c9b86b1222d631
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/354357
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
This commit is contained in:
Mike Frysinger 2022-12-08 01:46:45 -05:00
parent a621254b26
commit 0ab6b11688
2 changed files with 9 additions and 12 deletions

View File

@ -38,7 +38,7 @@ class RepoWrapperTestCase(unittest.TestCase):
def setUp(self):
"""Load the wrapper module every time."""
wrapper._wrapper_module = None
wrapper.Wrapper.cache_clear()
self.wrapper = wrapper.Wrapper()

View File

@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import functools
import importlib.machinery
import importlib.util
import os
@ -21,15 +22,11 @@ def WrapperPath():
return os.path.join(os.path.dirname(__file__), 'repo')
_wrapper_module = None
@functools.lru_cache(maxsize=None)
def Wrapper():
global _wrapper_module
if not _wrapper_module:
modname = 'wrapper'
loader = importlib.machinery.SourceFileLoader(modname, WrapperPath())
spec = importlib.util.spec_from_loader(modname, loader)
_wrapper_module = importlib.util.module_from_spec(spec)
loader.exec_module(_wrapper_module)
return _wrapper_module
module = importlib.util.module_from_spec(spec)
loader.exec_module(module)
return module