From 721482c83e2b08200d5a8976dd85d45b04d8b39a Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Mon, 8 Dec 2014 09:10:12 +0000 Subject: Add forgotten file --- synapse/util/frozenutils.py | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 synapse/util/frozenutils.py (limited to 'synapse/util/frozenutils.py') diff --git a/synapse/util/frozenutils.py b/synapse/util/frozenutils.py new file mode 100644 index 0000000000..46d3ab4f7d --- /dev/null +++ b/synapse/util/frozenutils.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2014 OpenMarket Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from frozendict import frozendict + +import json + + +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 FrozenEncoder(json.JSONEncoder): + def default(self, o): + if isinstance(o, frozendict): + return dict(o) + + return json.JSONEncoder(self, o) \ No newline at end of file -- cgit 1.4.1 From bc6564bac0010cda8f75e7f5325f5dc2c49b8ebd Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Tue, 9 Dec 2014 11:01:44 +0000 Subject: Add PEP8 newlines --- synapse/util/frozenutils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'synapse/util/frozenutils.py') diff --git a/synapse/util/frozenutils.py b/synapse/util/frozenutils.py index 46d3ab4f7d..1fb67df6b9 100644 --- a/synapse/util/frozenutils.py +++ b/synapse/util/frozenutils.py @@ -53,4 +53,4 @@ class FrozenEncoder(json.JSONEncoder): if isinstance(o, frozendict): return dict(o) - return json.JSONEncoder(self, o) \ No newline at end of file + return json.JSONEncoder(self, o) -- cgit 1.4.1 From 58168498b04eb9d0e85019fe485fa6b2ee79b422 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Tue, 16 Dec 2014 13:38:38 +0000 Subject: Remove FrozenEncoder --- synapse/util/frozenutils.py | 8 -------- 1 file changed, 8 deletions(-) (limited to 'synapse/util/frozenutils.py') diff --git a/synapse/util/frozenutils.py b/synapse/util/frozenutils.py index 1fb67df6b9..1874464c8b 100644 --- a/synapse/util/frozenutils.py +++ b/synapse/util/frozenutils.py @@ -46,11 +46,3 @@ def unfreeze(o): pass return o - - -class FrozenEncoder(json.JSONEncoder): - def default(self, o): - if isinstance(o, frozendict): - return dict(o) - - return json.JSONEncoder(self, o) -- cgit 1.4.1 From 5a465b67ba5938f7a18dd5411da0e31c4e5fe71c Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Tue, 16 Dec 2014 13:41:43 +0000 Subject: Fix pyflakes --- synapse/util/frozenutils.py | 2 -- 1 file changed, 2 deletions(-) (limited to 'synapse/util/frozenutils.py') diff --git a/synapse/util/frozenutils.py b/synapse/util/frozenutils.py index 1874464c8b..fcfb38b3b4 100644 --- a/synapse/util/frozenutils.py +++ b/synapse/util/frozenutils.py @@ -15,8 +15,6 @@ from frozendict import frozendict -import json - def freeze(o): if isinstance(o, dict) or isinstance(o, frozendict): -- cgit 1.4.1