Open
Description
When the response comes back, there is no destination_type
field, meaning that it fails to deserialize.
KeyError Traceback (most recent call last)
Cell In[46], line 1
----> 1 res = s.destinations.list_destinations(request=api.ListDestinationsRequest(
2 workspace_ids=[
3 workspace_id
4 ],
5 ))
File ~/envs/default/lib/python3.11/site-packages/airbyte_api/destinations.py:223, in Destinations.list_destinations(self, request)
220 if http_res.status_code == 200:
221 # pylint: disable=no-else-return
222 if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
--> 223 out = utils.unmarshal_json(http_res.text, Optional[models.DestinationsResponse])
224 res.destinations_response = out
225 else:
File ~/envs/default/lib/python3.11/site-packages/airbyte_api/utils/utils.py:825, in unmarshal_json(data, typ, decoder)
823 json_dict = json.loads(data)
824 try:
--> 825 out = unmarshal.from_dict({"res": json_dict})
826 except AttributeError as attr_err:
827 raise AttributeError(
828 f"unable to unmarshal {data} as {typ} - {attr_err}"
829 ) from attr_err
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/api.py:70, in DataClassJsonMixin.from_dict(cls, kvs, infer_missing)
65 @classmethod
66 def from_dict(cls: Type[A],
67 kvs: Json,
68 *,
69 infer_missing=False) -> A:
---> 70 return _decode_dataclass(cls, kvs, infer_missing)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:221, in _decode_dataclass(cls, kvs, infer_missing)
219 init_kwargs[field.name] = value
220 elif _is_supported_generic(field_type) and field_type != str:
--> 221 init_kwargs[field.name] = _decode_generic(field_type,
222 field_value,
223 infer_missing)
224 else:
225 init_kwargs[field.name] = _support_extended_types(field_type,
226 field_value)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:323, in _decode_generic(type_, value, infer_missing)
321 elif _is_optional(type_) and len(_args) == 2: # Optional
322 type_arg = _get_type_arg_param(type_, 0)
--> 323 res = _decode_type(type_arg, value, infer_missing)
324 else: # Union (already decoded or try to decode a dataclass)
325 type_options = _get_type_args(type_)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:235, in _decode_type(type_, value, infer_missing)
233 return _get_decoder_in_global_config(type_)(value)
234 if _is_supported_generic(type_):
--> 235 return _decode_generic(type_, value, infer_missing)
236 if is_dataclass(type_) or is_dataclass(value):
237 return _decode_dataclass(type_, value, infer_missing)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:315, in _decode_generic(type_, value, infer_missing)
313 elif _is_generic_dataclass(type_):
314 origin = _get_type_origin(type_)
--> 315 res = _decode_dataclass(origin, value, infer_missing)
316 else: # Optional or Union
317 _args = _get_type_args(type_)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:221, in _decode_dataclass(cls, kvs, infer_missing)
219 init_kwargs[field.name] = value
220 elif _is_supported_generic(field_type) and field_type != str:
--> 221 init_kwargs[field.name] = _decode_generic(field_type,
222 field_value,
223 infer_missing)
224 else:
225 init_kwargs[field.name] = _support_extended_types(field_type,
226 field_value)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:303, in _decode_generic(type_, value, infer_missing)
301 xs = dict(zip(_decode_items(_get_type_arg_param(type_, 0), value.keys(), infer_missing), value.values()))
302 else:
--> 303 xs = _decode_items(_get_type_arg_param(type_, 0), value, infer_missing)
305 # get the constructor if using corresponding generic type in `typing`
306 # otherwise fallback on constructing using type_ itself
307 materialize_type = type_
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:402, in _decode_items(type_args, xs, infer_missing)
397 else:
398 raise TypeError(f"Number of types specified in the collection type {str(type_args)} "
399 f"does not match number of elements in the collection. In case you are working with tuples"
400 f"take a look at this document "
401 f"docs.python.org/3/library/typing.html#annotating-tuples.")
--> 402 return list(_decode_type(type_args, x, infer_missing) for x in xs)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:402, in <genexpr>(.0)
397 else:
398 raise TypeError(f"Number of types specified in the collection type {str(type_args)} "
399 f"does not match number of elements in the collection. In case you are working with tuples"
400 f"take a look at this document "
401 f"docs.python.org/3/library/typing.html#annotating-tuples.")
--> 402 return list(_decode_type(type_args, x, infer_missing) for x in xs)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:235, in _decode_type(type_, value, infer_missing)
233 return _get_decoder_in_global_config(type_)(value)
234 if _is_supported_generic(type_):
--> 235 return _decode_generic(type_, value, infer_missing)
236 if is_dataclass(type_) or is_dataclass(value):
237 return _decode_dataclass(type_, value, infer_missing)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:315, in _decode_generic(type_, value, infer_missing)
313 elif _is_generic_dataclass(type_):
314 origin = _get_type_origin(type_)
--> 315 res = _decode_dataclass(origin, value, infer_missing)
316 else: # Optional or Union
317 _args = _get_type_args(type_)
File ~/envs/default/lib/python3.11/site-packages/dataclasses_json/core.py:173, in _decode_dataclass(cls, kvs, infer_missing)
170 if not field.init:
171 continue
--> 173 field_value = kvs[field.name]
174 field_type = types[field.name]
175 if field_value is None:
KeyError: 'destination_type'
These operations work fine if I just use the public api.
Metadata
Metadata
Assignees
Labels
No labels