mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
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:
parent
a621254b26
commit
0ab6b11688
@ -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()
|
||||
|
||||
|
||||
|
13
wrapper.py
13
wrapper.py
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user