Use frozenutils

This commit is contained in:
Erik Johnston 2014-12-15 17:31:36 +00:00
parent 009e4b5637
commit f280929a12
2 changed files with 5 additions and 34 deletions

View file

@ -15,39 +15,11 @@
from frozendict import frozendict
from synapse.util.frozenutils import freeze, unfreeze
import copy
def _freeze(o):
if isinstance(o, dict) or isinstance(o, frozendict):
return frozendict({k: _freeze(v) for k, v in o.items()})
if isinstance(o, basestring):
return o
try:
return tuple([_freeze(i) for i in o])
except TypeError:
pass
return o
def _unfreeze(o):
if isinstance(o, frozendict) or isinstance(o, dict):
return dict({k: _unfreeze(v) for k, v in o.items()})
if isinstance(o, basestring):
return o
try:
return [_unfreeze(i) for i in o]
except TypeError:
pass
return o
class _EventInternalMetadata(object):
def __init__(self, internal_metadata_dict):
self.__dict__ = copy.deepcopy(internal_metadata_dict)
@ -147,7 +119,7 @@ class FrozenEvent(EventBase):
signatures = copy.deepcopy(event_dict.pop("signatures", {}))
unsigned = copy.deepcopy(event_dict.pop("unsigned", {}))
frozen_dict = _freeze(event_dict)
frozen_dict = freeze(event_dict)
super(FrozenEvent, self).__init__(
frozen_dict,
@ -167,7 +139,7 @@ class FrozenEvent(EventBase):
def get_dict(self):
# We need to unfreeze what we return
return _unfreeze(super(FrozenEvent, self).get_dict())
return unfreeze(super(FrozenEvent, self).get_dict())
def __str__(self):
return self.__repr__()