in connectors/source.py [0:0]
def _convert(self, value, field_type_):
cast_type = locate(field_type_)
if cast_type not in TYPE_DEFAULTS:
# unsupported type
return value
if isinstance(value, cast_type):
return value
# list requires special type casting
if cast_type is list:
if isinstance(value, str):
items = []
if value:
for item in value.split(","):
item = item.strip()
if not item:
logger.debug(
"Empty string detected in the comma-separated list. It will be skipped."
)
else:
items.append(item)
return items
elif isinstance(value, int):
return [value]
elif isinstance(value, set):
return list(value)
elif isinstance(value, dict):
return list(value.items())
else:
return [value] if value is not None else []
if value is None or value == "":
return TYPE_DEFAULTS[cast_type]
return cast_type(value)