xmlclass/xmlclass.py
changeset 1744 69dfdb26f600
parent 1743 c3c3d1318130
child 1749 d73b64672238
equal deleted inserted replaced
1743:c3c3d1318130 1744:69dfdb26f600
    79 
    79 
    80 class xml_timezone(datetime.tzinfo):
    80 class xml_timezone(datetime.tzinfo):
    81 
    81 
    82     def SetOffset(self, offset):
    82     def SetOffset(self, offset):
    83         if offset == "Z":
    83         if offset == "Z":
    84             self.__offset = timedelta(minutes = 0)
    84             self.__offset = timedelta(minutes=0)
    85             self.__name = "UTC"
    85             self.__name = "UTC"
    86         else:
    86         else:
    87             sign = {"-": -1, "+": 1}[offset[0]]
    87             sign = {"-": -1, "+": 1}[offset[0]]
    88             hours, minutes = [int(val) for val in offset[1:].split(":")]
    88             hours, minutes = [int(val) for val in offset[1:].split(":")]
    89             self.__offset = timedelta(minutes=sign * (hours * 60 + minutes))
    89             self.__offset = timedelta(minutes=sign * (hours * 60 + minutes))
   241     """
   241     """
   242     Function that generates an extraction function for float
   242     Function that generates an extraction function for float
   243     @param type: name of the type of float
   243     @param type: name of the type of float
   244     @return: function generated
   244     @return: function generated
   245     """
   245     """
   246     def GetFloat(attr, extract = True):
   246     def GetFloat(attr, extract=True):
   247         """
   247         """
   248         Function that extracts a float from a tree node or a string
   248         Function that extracts a float from a tree node or a string
   249         @param attr: tree node containing data to extract or data as a string
   249         @param attr: tree node containing data to extract or data as a string
   250         @param extract: attr is a tree node or not
   250         @param extract: attr is a tree node or not
   251         @return: data as a float
   251         @return: data as a float
  1058                         self.ComputedClassesLookUp[name] = parents
  1058                         self.ComputedClassesLookUp[name] = parents
  1059                     parents[equivalent_parent] = computed_class
  1059                     parents[equivalent_parent] = computed_class
  1060 
  1060 
  1061         return self.ComputedClasses
  1061         return self.ComputedClasses
  1062 
  1062 
  1063     def CreateClass(self, name, parent, classinfos, baseclass = False):
  1063     def CreateClass(self, name, parent, classinfos, baseclass=False):
  1064         if parent is not None:
  1064         if parent is not None:
  1065             classname = "%s_%s" % (parent, name)
  1065             classname = "%s_%s" % (parent, name)
  1066         else:
  1066         else:
  1067             classname = name
  1067             classname = name
  1068 
  1068 
  1840     parser = XMLClassParser(
  1840     parser = XMLClassParser(
  1841         factory.NSMAP,
  1841         factory.NSMAP,
  1842         factory.etreeNamespaceFormat,
  1842         factory.etreeNamespaceFormat,
  1843         BaseClass[0] if len(BaseClass) == 1 else None,
  1843         BaseClass[0] if len(BaseClass) == 1 else None,
  1844         etree.XMLSchema(etree.fromstring(xsdstring)),
  1844         etree.XMLSchema(etree.fromstring(xsdstring)),
  1845         strip_cdata = False, remove_blank_text=True)
  1845         strip_cdata=False, remove_blank_text=True)
  1846     class_lookup = XMLElementClassLookUp(factory.ComputedClassesLookUp)
  1846     class_lookup = XMLElementClassLookUp(factory.ComputedClassesLookUp)
  1847     parser.set_element_class_lookup(class_lookup)
  1847     parser.set_element_class_lookup(class_lookup)
  1848 
  1848 
  1849     return parser
  1849     return parser