Simplify code

This commit is contained in:
Jonathan Kim 2018-07-01 11:32:16 +01:00
parent cbcaac66d0
commit 56000394c4

View File

@ -1,8 +1,4 @@
from collections import defaultdict, Mapping, OrderedDict from collections import Mapping, OrderedDict
def nested_dict():
return defaultdict(nested_dict)
def deflate(node, index=None, path=None): def deflate(node, index=None, path=None):
@ -13,24 +9,15 @@ def deflate(node, index=None, path=None):
if node and 'id' in node and '__typename' in node: if node and 'id' in node and '__typename' in node:
route = ','.join(path) route = ','.join(path)
cache_key = ':'.join([route, str(node['__typename']), str(node['id'])])
if ( if index.get(cache_key) is True:
route in index and
node['__typename'] in index[route] and
index[route][node['__typename']].get(node['id'])
):
return { return {
'__typename': node['__typename'], '__typename': node['__typename'],
'id': node['id'], 'id': node['id'],
} }
else: else:
if route not in index: index[cache_key] = True
index[route] = {}
if node['__typename'] not in index[route]:
index[route][node['__typename']] = {}
index[route][node['__typename']][node['id']] = True
field_names = node.keys() field_names = node.keys()
result = OrderedDict() result = OrderedDict()