in alibabacloud_oss_v2/serde.py [0:0]
def deserialize_output_headers(result: Model, op_output: OperationOutput) -> Model:
"""deserialize output headers
"""
attributes = getattr(result, '_attribute_map')
headers = op_output.headers or {}
dict_attrs=[]
for attr, attr_desc in attributes.items():
if attr_desc.get('tag', '') != 'output':
continue
attr_key = attr_desc.get('rename', attr)
attr_type = attr_desc.get('type', 'str')
if 'dict' in attr_type:
dict_attrs.append(attr)
continue
value = _deserialize_to_any(
value=headers.get(attr_key, None), atype=attr_type)
if value is not None:
setattr(result, attr, value)
for attr in dict_attrs:
attr_desc = attributes.get(attr)
attr_key = attr_desc.get('rename', attr)
dict_value = CaseInsensitiveDict()
for k in headers.keys():
if k.lower().startswith(attr_key):
dict_value[k[len(attr_key):]] = headers.get(k)
if len(dict_value) > 0:
setattr(result, attr, dict_value)