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):
|
def setUp(self):
|
||||||
"""Load the wrapper module every time."""
|
"""Load the wrapper module every time."""
|
||||||
wrapper._wrapper_module = None
|
wrapper.Wrapper.cache_clear()
|
||||||
self.wrapper = wrapper.Wrapper()
|
self.wrapper = wrapper.Wrapper()
|
||||||
|
|
||||||
|
|
||||||
|
19
wrapper.py
19
wrapper.py
@ -12,6 +12,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import functools
|
||||||
import importlib.machinery
|
import importlib.machinery
|
||||||
import importlib.util
|
import importlib.util
|
||||||
import os
|
import os
|
||||||
@ -21,15 +22,11 @@ def WrapperPath():
|
|||||||
return os.path.join(os.path.dirname(__file__), 'repo')
|
return os.path.join(os.path.dirname(__file__), 'repo')
|
||||||
|
|
||||||
|
|
||||||
_wrapper_module = None
|
@functools.lru_cache(maxsize=None)
|
||||||
|
|
||||||
|
|
||||||
def Wrapper():
|
def Wrapper():
|
||||||
global _wrapper_module
|
modname = 'wrapper'
|
||||||
if not _wrapper_module:
|
loader = importlib.machinery.SourceFileLoader(modname, WrapperPath())
|
||||||
modname = 'wrapper'
|
spec = importlib.util.spec_from_loader(modname, loader)
|
||||||
loader = importlib.machinery.SourceFileLoader(modname, WrapperPath())
|
module = importlib.util.module_from_spec(spec)
|
||||||
spec = importlib.util.spec_from_loader(modname, loader)
|
loader.exec_module(module)
|
||||||
_wrapper_module = importlib.util.module_from_spec(spec)
|
return module
|
||||||
loader.exec_module(_wrapper_module)
|
|
||||||
return _wrapper_module
|
|
||||||
|
Loading…
Reference in New Issue
Block a user