in azure/Kqlmagic/parameterizer.py [0:0]
def _object_to_kql(cls, v)->str:
try:
val = (
repr(v)
if isinstance(v, str)
else "null"
if v is None
else str(v).lower()
if isinstance(v, bool)
else cls._timedelta_to_timespan(v)
if isinstance(v, timedelta)
else f"datetime({v.isoformat()})" # kql will assume utc time
if isinstance(v, datetime)
else f"dynamic({json_dumps(dict(v))})"
if isinstance(v, dict)
else f"dynamic({json_dumps(list(v))})"
if isinstance(v, (list, Series))
else f"dynamic({json_dumps(list(tuple(v)))})"
if isinstance(v, tuple)
else f"dynamic({json_dumps(list(set(v)))})"
if isinstance(v, set)
else cls._datatable(v)
if isinstance(v, DataFrame)
else "datetime(null)"
if str(v) == "NaT"
else "time(null)"
if str(v) == "nat" # does not exist
else "real(null)"
if str(v) == "nan" # missing na for long(null)
else f"'{v.decode('utf-8')}'"
if isinstance(v, bytes)
else f"long({v})"
if isinstance(v, int)
else f"real({v})"
if isinstance(v, float)
else f"decimal({v})"
if isinstance(v, Decimal)
else str(v)
)
except:
val = f"'{v}'"
return str(val)