Source code for gviz_data_table.column

import datetime

valid_types = {str:'string', int:'number', float:'number',
               bool:'boolean', datetime.date:'date', datetime.datetime:'datetime',
               datetime.time:'timeofday',}


[docs]class Column(object): """A column is a type definition""" __slots__ = ('_id', '_type', '_label', '_options') def __init__(self, id, type, label=None, options=None): self.id = id self.type = type self.label = label self.options = options @property def type(self): return self._type @type.setter def type(self, value): if not value in valid_types: raise ValueError("{0} Type not supported".format(value)) self._type = value @property def id(self): return self._id @id.setter def id(self, value): if not isinstance(value, str): raise ValueError("Column ids must be strings") self._id = value @property def label(self): return self._label or self.id @label.setter def label(self, value): if value is not None and not isinstance(value, str): raise ValueError("Labels must be strings") self._label = value @property def options(self): return self._options @options.setter def options(self, value): if value is not None and not isinstance(value, dict): raise ValueError("Options must be a dictionary") self._options = value def __iter__(self): for key in ['id', 'type', 'label', 'options']: value = getattr(self, key, None) if value: if key == 'type': value = valid_types[value] yield key, value