E5XML/XMLStreamReaderBase.py

changeset 575
5a008db344ea
parent 574
c45f896e4c66
child 576
ad8fdac5aff5
equal deleted inserted replaced
574:c45f896e4c66 575:5a008db344ea
50 if self.isStartElement(): 50 if self.isStartElement():
51 self._skipUnknownElement() 51 self._skipUnknownElement()
52 52
53 def _readBasics(self): 53 def _readBasics(self):
54 """ 54 """
55 Protected method to read am object of a basic Python type. 55 Protected method to read an object of a basic Python type.
56 56
57 @return Python object read 57 @return Python object read
58 """ 58 """
59 while not self.atEnd(): 59 while not self.atEnd():
60 self.readNext() 60 self.readNext()
61 if self.isStartElement(): 61 if self.isStartElement():
62 try: 62 try:
63 if self.name() == "none": 63 if self.name() == "none":
64 return None 64 val = None
65 elif self.name() == "int": 65 elif self.name() == "int":
66 return int(self.readElementText()) 66 val = int(self.readElementText())
67 elif self.name() == "bool": 67 elif self.name() == "bool":
68 b = self.readElementText() 68 b = self.readElementText()
69 if b == "True": 69 if b == "True":
70 return True 70 val = True
71 else: 71 else:
72 return False 72 val = False
73 elif self.name() == "float": 73 elif self.name() == "float":
74 return float(self.readElementText()) 74 val = float(self.readElementText())
75 elif self.name() == "complex": 75 elif self.name() == "complex":
76 real, imag = self.readElementText().split() 76 real, imag = self.readElementText().split()
77 return float(real) + float(imag)*1j 77 val = float(real) + float(imag)*1j
78 elif self.name() == "string": 78 elif self.name() == "string":
79 return self.readElementText() 79 val = self.readElementText()
80 elif self.name() == "bytes": 80 elif self.name() == "bytes":
81 by = bytes( 81 by = bytes(
82 [int(b) for b in self.readElementText().split(",")]) 82 [int(b) for b in self.readElementText().split(",")])
83 return by 83 val = by
84 elif self.name() == "bytearray": 84 elif self.name() == "bytearray":
85 by = bytearray( 85 by = bytearray(
86 [int(b) for b in self.readElementText().split(",")]) 86 [int(b) for b in self.readElementText().split(",")])
87 return by 87 val = by
88 elif self.name() == "tuple":
89 val = self.__readTuple()
88 else: 90 else:
89 self._skipUnknownElement() 91 self._skipUnknownElement()
90 except ValueError as err: 92 except ValueError as err:
91 self.raiseError(str(err)) 93 self.raiseError(str(err))
94
95 if self.isEndElement():
96 return val
97
98 def __readTuple(self):
99 """
100 Private method to read a Python tuple.
101
102 @return Python tuple
103 """
104 l = []
105 while not self.atEnd():
106 val = self._readBasics()
107 if self.isEndElement() and self.name() == "tuple":
108 return tuple(l)
109 else:
110 l.append(val)

eric ide

mercurial