Exemplo n.º 1
0
def convert_str_to_keys(info):
    if isinstance(info, list):
        return [convert_keys_to_str(elem) for elem in info]
    if isinstance(info, dict):
        return {(NodeId.from_json_str(k[7:]) if k.startswith('NodeId_') else k): \
            convert_str_to_keys(v) for k, v in info.items()}
    return info
Exemplo n.º 2
0
    def object_hook(self, obj):
        if '__type' in obj:
            if obj['__type'] == 'QType':
                return QType(bits=obj['bits'], q=obj['q'], signed=obj['signed'])
            if obj['__type'] == 'MemoryDeviceInfos':
                return MemoryDeviceInfos.fromdict(obj['infos'])
            if obj['__type'] == 'NodeId':
                return NodeId.from_json_str(obj['val'])
            if obj['__type'].startswith('QuantizationRecord'):
                return QuantizationRecord.from_dict(obj)

        if 'qstats' in obj:
            # fix qstats int dictionary index. JSON converts to string.
            obj['qstats'] = {int(k):v for k, v in obj['qstats'].items()}
        return obj