in elasticsearch_serverless/_sync/client/utils.py [0:0]
def _escape(value: Any) -> str:
"""
Escape a single value of a URL string or a query parameter. If it is a list
or tuple, turn it into a comma-separated string first.
"""
# make sequences into comma-separated strings
if isinstance(value, (list, tuple)):
value = ",".join([_escape(item) for item in value])
# dates and datetimes into isoformat
elif isinstance(value, (date, datetime)):
value = value.isoformat()
# make bools into true/false strings
elif isinstance(value, bool):
value = str(value).lower()
elif isinstance(value, bytes):
return value.decode("utf-8", "surrogatepass")
if not isinstance(value, str):
return str(value)
return value