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__()

View file

@ -21,7 +21,6 @@ from synapse.api.events.room import (
)
from synapse.util.logutils import log_function
from synapse.util.frozenutils import FrozenEncoder
from .directory import DirectoryStore
from .feedback import FeedbackStore
@ -177,7 +176,7 @@ class DataStore(RoomMemberStore, RoomStore,
"event_id": event.event_id,
"type": event.type,
"room_id": event.room_id,
"content": json.dumps(event.content, cls=FrozenEncoder),
"content": json.dumps(event.get_dict()["content"]),
"processed": True,
"outlier": outlier,
"depth": event.depth,