Skip to content

Commit

Permalink
Added defaultweakobjectmap type
Browse files Browse the repository at this point in the history
  • Loading branch information
danpascu committed Dec 30, 2015
1 parent fe6d132 commit 921505c
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion application/python/weakref.py
Expand Up @@ -10,7 +10,7 @@
from threading import local


__all__ = ["weakobjectmap"]
__all__ = ["weakobjectmap", "defaultweakobjectmap"]


class objectref(weakref.ref):
Expand Down Expand Up @@ -153,6 +153,15 @@ def popitem(self):
return object, value


class defaultweakobjectmap(weakobjectmap):
def __init__(self, factory, *args, **kw):
self.default_factory = factory
super(defaultweakobjectmap, self).__init__(*args, **kw)

def __missing__(self, key):
return self.setdefault(key.object, self.default_factory())


class _ReprGuard(object):
__local__ = local()

Expand Down

0 comments on commit 921505c

Please sign in to comment.