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):
"""