Example #1
0
 def _from_list(l):
     internal = []
     for val in l:
         if type(val) == list:
             val = _from_list(val)
         elif type(val) == dict:
             val = _from_dict(val)
         else:
             # val type is not dict, not list, and most likely it is internal data type
             converter = get_external_converter(val)
             if converter:
                 _, val = converter.to_external(None, val)
         internal.append(val)
     return internal
Example #2
0
    def _from_dict(doc):

        external = {}
        for key in doc:
            val = doc[key]
            # due to absence internal data type for geo point
            # we need to check every type whether it can be geo data.
            # Key of geo data starts with special prefix.
            converter = try_get_geopoint_external_converter(key)
            if not converter:
                if type(val) == dict:
                    val = _from_dict(val)
                elif type(val) == list:
                    val = _from_list(val)
                else:
                    # val type is not dict, not list, and most likely it is internal data type
                    converter = get_external_converter(val)
            if converter:
                key, val = converter.to_external(key, val)
            external[key] = val
        return external