瀏覽代碼

Merge pull request #1511 from c4rlo/lru-cache

helpers.py: replace memoize with functools.lru_cache
TW 8 年之前
父節點
當前提交
357f4ef72e
共有 1 個文件被更改,包括 5 次插入18 次删除
  1. 5 18
      src/borg/helpers.py

+ 5 - 18
src/borg/helpers.py

@@ -22,7 +22,7 @@ from collections import namedtuple, deque, abc
 from contextlib import contextmanager
 from contextlib import contextmanager
 from datetime import datetime, timezone, timedelta
 from datetime import datetime, timezone, timedelta
 from fnmatch import translate
 from fnmatch import translate
-from functools import wraps, partial
+from functools import wraps, partial, lru_cache
 from itertools import islice
 from itertools import islice
 from operator import attrgetter
 from operator import attrgetter
 from string import Formatter
 from string import Formatter
@@ -722,19 +722,6 @@ def format_archive(archive):
     )
     )
 
 
 
 
-def memoize(function):
-    cache = {}
-
-    def decorated_function(*args):
-        try:
-            return cache[args]
-        except KeyError:
-            val = function(*args)
-            cache[args] = val
-            return val
-    return decorated_function
-
-
 class Buffer:
 class Buffer:
     """
     """
     provide a thread-local buffer
     provide a thread-local buffer
@@ -776,7 +763,7 @@ class Buffer:
         return self._thread_local.buffer
         return self._thread_local.buffer
 
 
 
 
-@memoize
+@lru_cache(maxsize=None)
 def uid2user(uid, default=None):
 def uid2user(uid, default=None):
     try:
     try:
         return pwd.getpwuid(uid).pw_name
         return pwd.getpwuid(uid).pw_name
@@ -784,7 +771,7 @@ def uid2user(uid, default=None):
         return default
         return default
 
 
 
 
-@memoize
+@lru_cache(maxsize=None)
 def user2uid(user, default=None):
 def user2uid(user, default=None):
     try:
     try:
         return user and pwd.getpwnam(user).pw_uid
         return user and pwd.getpwnam(user).pw_uid
@@ -792,7 +779,7 @@ def user2uid(user, default=None):
         return default
         return default
 
 
 
 
-@memoize
+@lru_cache(maxsize=None)
 def gid2group(gid, default=None):
 def gid2group(gid, default=None):
     try:
     try:
         return grp.getgrgid(gid).gr_name
         return grp.getgrgid(gid).gr_name
@@ -800,7 +787,7 @@ def gid2group(gid, default=None):
         return default
         return default
 
 
 
 
-@memoize
+@lru_cache(maxsize=None)
 def group2gid(group, default=None):
 def group2gid(group, default=None):
     try:
     try:
         return group and grp.getgrnam(group).gr_gid
         return group and grp.getgrnam(group).gr_gid