stg import now extracts Message-ID header
[stgit.git] / stgit / lib / objcache.py
blobf093fece64af6cfe2b1c96d91004751ddc99bfd6
1 class ObjectCache:
2 """Cache to ensure only one Python object is created per Git object.
4 This reduces memory consumption and makes object comparison very cheap.
6 """
8 def __init__(self, create):
9 self.__objects = {}
10 self.__create = create
12 def __getitem__(self, name):
13 if name not in self.__objects:
14 self.__objects[name] = self.__create(name)
15 return self.__objects[name]
17 def __contains__(self, name):
18 return name in self.__objects
20 def __setitem__(self, name, val):
21 assert name not in self.__objects
22 self.__objects[name] = val