Source code for twilio.base.serialize

import datetime
import json

from twilio.base import values


[docs]def iso8601_date(d): """ Return a string representation of a date that the Twilio API understands Format is YYYY-MM-DD. Returns None if d is not a string, datetime, or date """ if d == values.unset: return d elif isinstance(d, datetime.datetime): return str(d.date()) elif isinstance(d, datetime.date): return str(d) elif isinstance(d, str): return d
[docs]def iso8601_datetime(d): """ Return a string representation of a date that the Twilio API understands Format is YYYY-MM-DD. Returns None if d is not a string, datetime, or date """ if d == values.unset: return d elif isinstance(d, datetime.datetime) or isinstance(d, datetime.date): return d.strftime('%Y-%m-%dT%H:%M:%SZ') elif isinstance(d, str): return d
[docs]def prefixed_collapsible_map(m, prefix): """ Return a dict of params corresponding to those in m with the added prefix """ if m == values.unset: return {} def flatten_dict(d, result=None, prv_keys=None): if result is None: result = {} if prv_keys is None: prv_keys = [] for k, v in d.items(): if isinstance(v, dict): flatten_dict(v, result, prv_keys + [k]) else: result['.'.join(prv_keys + [k])] = v return result if isinstance(m, dict): flattened = flatten_dict(m) return {'{}.{}'.format(prefix, k): v for k, v in flattened.items()} return {}
[docs]def object(obj): """ Return a jsonified string represenation of obj if obj is jsonifiable else return obj untouched """ if isinstance(obj, dict) or isinstance(obj, list): return json.dumps(obj) return obj
[docs]def map(lst, serialize_func): """ Applies serialize_func to every element in lst """ if not isinstance(lst, list): return lst return [serialize_func(e) for e in lst]