in azure_functions_worker/bindings/datumdef.py [0:0]
def from_typed_data(cls, td: protos.TypedData):
tt = td.WhichOneof('data')
if tt == 'http':
http = td.http
val = dict(
method=Datum(http.method, 'string'),
url=Datum(http.url, 'string'),
headers={
k: Datum(v, 'string') for k, v in http.headers.items()
},
body=(
Datum.from_typed_data(http.body)
or Datum(type='bytes', value=b'')
),
params={
k: Datum(v, 'string') for k, v in http.params.items()
},
query={
k: Datum(v, 'string') for k, v in http.query.items()
},
)
elif tt == 'string':
val = td.string
elif tt == 'bytes':
val = td.bytes
elif tt == 'json':
val = td.json
elif tt == 'collection_bytes':
val = td.collection_bytes
elif tt == 'collection_string':
val = td.collection_string
elif tt == 'collection_sint64':
val = td.collection_sint64
elif tt == 'model_binding_data':
val = td.model_binding_data
elif tt == 'collection_model_binding_data':
val = td.collection_model_binding_data
elif tt is None:
return None
else:
raise NotImplementedError(
'unsupported TypeData kind: {!r}'.format(tt)
)
return cls(val, tt)