diff --git a/src/pypdevs/tracers/tracerXML.py b/src/pypdevs/tracers/tracerXML.py index 1be3564..97af3cb 100644 --- a/src/pypdevs/tracers/tracerXML.py +++ b/src/pypdevs/tracers/tracerXML.py @@ -35,6 +35,12 @@ class TracerXML(object): self.server = server self.uid = uid + def write_py23(self, string): + try: + self.xml_file.write(string) + except TypeError: + self.xml_file.write(string.encode()) + def startTracer(self, recover): """ Starts up the tracer @@ -48,13 +54,13 @@ class TracerXML(object): self.xml_file = open(self.filename, 'a+') else: self.xml_file = open(self.filename, 'w') - self.xml_file.write(("\n" + "\n").encode()) + self.write_py23("\n" + "\n") def stopTracer(self): """ Stop the tracer """ - self.xml_file.write("") + self.write_py23("") self.xml_file.flush() def trace(self, model_name, timestamp, event_kind, port_info, xml_state, str_state): @@ -68,13 +74,13 @@ class TracerXML(object): :param xml_state: XML representation of the state :param str_state: normal string representation of the state """ - self.xml_file.write(("\n" + self.write_py23("\n" + "" + model_name + "\n" + "\n" + "" + event_kind + "\n" + port_info + "\n"+ xml_state + "\n\n" - + "\n").encode()) + + "\n") def traceInternal(self, aDEVS): """