Source code for highton.fields.date_field

import datetime
from xml.etree import ElementTree

from highton.fields.field import Field
from highton.fields.field_constants import FieldConstants


[docs]class DateField(Field): """ The DateField represents a field which value will be parsed to Highrise specific date format """ DATE_FORMAT = '%Y-%m-%d'
[docs] def encode(self): """ :return: :rtype: xml.etree.ElementTree.Element """ element = ElementTree.Element( self.name, attrib={'type': FieldConstants.DATE}, ) element = self._set_nil(element, lambda value: value.isoformat()) return element
[docs] def decode(self, element): """ :param element: the element which needs to be parsed :type element: xml.etree.ElementTree.Element :return: datetime.date :rtype: the parsed date object """ text = element.text if text: return datetime.datetime.strptime(text, self.DATE_FORMAT).date() else: return None