diff --git a/classes/__init__.py b/classes/__init__.py
index c77b3e6..b29c676 100644
--- a/classes/__init__.py
+++ b/classes/__init__.py
@@ -1,324 +1,3 @@
-import datetime
-
-class Station:
- def __init__(self, name, sttype, extid = None, xcoord = None, ycoord = None, prodclass = None):
- self.name = name
- self.sttype = sttype
- self.extid = extid
- self.xcoord = float(xcoord)/1000000
- self.ycoord = float(ycoord)/1000000
- self.prodclass = prodclass
-
- def useId(self):
- return self.extid or self.name
-
- def lat(self):
- return self.ycoord
-
- def lon(self):
- return self.xcoord
-
- def json(self, indent = 0, name = True, extid = True, sttype = False, coords = False, prodclass = False, distance = False):
- out = " " * indent + "{\n"
-
- out += (" " * indent + " \"name\": \"%s\",\n" % self.name) if name else ""
- out += (" " * indent + " \"id\": \"%s\",\n" % self.useId()) if extid else ""
- out += (" " * indent + " \"distance\": %i,\n" % int(self.distance)) if distance else ""
- out += (" " * indent + " \"type\": \"%s\",\n" % self.sttype) if sttype else ""
-
- if coords:
- out += " " * indent + " \"coords\": {\n"
- out += " " * indent + " \"lon\": %f,\n" % self.xcoord
- out += " " * indent + " \"lat\": %f\n" % self.ycoord
- out += " " * indent + " },\n"
-
- out += (" " * indent + " \"prodclass\": \"%s\",\n" % self.prodclass) if prodclass else ""
-
- out = "".join(out.rsplit(",", 1))
-
- out += " " * indent + "}"
-
- return out
-
- def xml(self, indent = 0, name = True, extid = True, sttype = False, coords = False, prodclass = False, distance = False):
- out = " " * indent + "\n"
-
- out += (" " * indent + " %s\n" % self.name) if name else ""
- out += (" " * indent + " %s\n" % self.useId()) if extid else ""
- out += (" " * indent + " %i\n" % int(self.distance)) if distance else ""
- out += (" " * indent + " %s\n" % self.sttype) if sttype else ""
-
- if coords:
- out += " " * indent + " \n"
- out += " " * indent + " %f\n" % self.xcoord
- out += " " * indent + " %f\n" % self.ycoord
- out += " " * indent + " \n"
-
- out += (" " * indent + " %s\n" % self.prodclass) if prodclass else ""
-
- out += " " * indent + ""
-
- return out
-
-class Service:
- def __init__(self, name, depst, deptime, arrst, arrtime, dest = None, deppf = None, currdep = None, arrpf = None, curarr = None):
- self.name = name
- self.dest = dest
- self.depst = depst
- self.deptime = deptime
- self.arrst = arrst
- self.arrtime = arrtime
- self.deppf = deppf
- self.currdep = currdep
- self.arrpf = arrpf
- self.curarr = curarr
-
- def duration(self):
- return self.arrtime - self.deptime
-
- def xml(self, indent = 0, iid = False, name = True, depst = True, deptime = True, arrst = True, arrtime = True, deppf = True, currdep = True, arrpf = True, curarr = True, duration = True, dest = True, stationkwargs = {}):
- out = " " * indent + "\n" % ("" if iid is False else " id=\"%i\"" % iid)
-
- out += (" " * indent + " %s\n" % self.name) if name else ""
-
- if dest and self.dest:
- out += " " * indent + " \n"
- out += self.dest.xml(indent + 2, **stationkwargs) + "\n"
- out += " " * indent + " \n"
-
- if depst or deptime or deppf or currdep:
- out += " " * indent + " \n"
-
- out += (self.depst.xml(indent + 2, **stationkwargs) + "\n") if depst else ""
-
- if deptime:
- out += " " * indent + " %s\n" % datetime.datetime.strftime(self.deptime, "%d.%m.%Y")
- out += " " * indent + " \n" % datetime.datetime.strftime(self.deptime, "%H:%M")
-
- out += (" " * indent + " %s\n" % self.currdep) if currdep and self.currdep else ""
- out += (" " * indent + " %s\n" % self.deppf) if deppf and self.deppf else ""
-
- out += " " * indent + " \n"
-
- if arrst or arrtime or arrpf or curarr:
- out += " " * indent + " \n"
-
- out += (self.arrst.xml(indent + 2, **stationkwargs) + "\n") if arrst else ""
-
- if arrtime:
- out += " " * indent + " %s\n" % datetime.datetime.strftime(self.arrtime, "%d.%m.%Y")
- out += " " * indent + " \n" % datetime.datetime.strftime(self.arrtime, "%H:%M")
-
- out += (" " * indent + " %s\n" % self.curarr) if curarr and self.curarr else ""
- out += (" " * indent + " %s\n" % self.arrpf) if arrpf and self.arrpf else ""
-
- out += " " * indent + " \n"
-
- out += " " * indent + ""
-
- return out
-
- def json(self, indent = 0, iid = False, name = True, depst = True, deptime = True, arrst = True, arrtime = True, deppf = True, currdep = True, arrpf = True, curarr = True, duration = True, dest = True, stationkwargs = {}):
- out = " " * indent + "{\n"
-
- out += (" " * indent + " \"@id\": %i,\n" % iid) if iid is not False else ""
- out += (" " * indent + " \"name\": \"%s\",\n" % self.name) if name else ""
-
- if dest and self.dest:
- out += " " * indent + " \"destination\":\n"
- out += self.dest.json(indent + 2, **stationkwargs) + ",\n"
-
- if depst or deptime or deppf or currdep:
- dep = " " * indent + " \"departure\": {\n"
-
- if depst:
- dep += " " * indent + " \"station\":\n"
- dep += self.depst.json(indent + 3, **stationkwargs) + ",\n"
-
- if deptime:
- dep += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.deptime, "%d.%m.%Y")
- dep += " " * indent + " \"time\": \"%s\",\n" % datetime.datetime.strftime(self.deptime, "%H:%M")
-
- dep += (" " * indent + " \"current\": \"%s\",\n" % self.currdep) if currdep and self.currdep else ""
- dep += (" " * indent + " \"platform\": \"%s\",\n" % self.deppf) if deppf and self.deppf else ""
-
- dep = "".join(dep.rsplit(",", 1))
- out += dep + " " * indent + " },\n"
-
- if arrst or arrtime or arrpf or curarr:
- arr = " " * indent + " \"arrival\": {\n"
-
- if arrst:
- arr += " " * indent + " \"station\":\n"
- arr += self.arrst.json(indent + 3, **stationkwargs) + ",\n"
-
- if arrtime:
- arr += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.arrtime, "%d.%m.%Y")
- arr += " " * indent + " \"time\": \"%s\",\n" % datetime.datetime.strftime(self.arrtime, "%H:%M")
-
- arr += (" " * indent + " \"current\": \"%s\",\n" % self.curarr) if curarr and self.curarr else ""
- arr += (" " * indent + " \"platform\": \"%s\",\n" % self.arrpf) if arrpf and self.arrpf else ""
-
- arr = "".join(arr.rsplit(",", 1))
- out += arr + " " * indent + " },\n"
-
- out += " " * indent + "}"
-
- out = "".join(out.rsplit(",", 1))
-
- return out
-
-class Connection:
- def __init__(self, details = False):
- self.services = []
- self.details = details
-
- def addService(self, service):
- self.services.append(service)
-
- def depst(self):
- try:
- return self.services[0].depst
- except:
- return None
-
- def arrst(self):
- try:
- return self.services[-1].arrst
- except:
- return None
-
- def deptime(self):
- try:
- return self.services[0].deptime
- except:
- return None
-
- def arrtime(self):
- try:
- return self.services[-1].arrtime
- except:
- return None
-
- def currdep(self):
- try:
- return self.services[0].currdep
- except:
- return None
-
- def currarr(self):
- try:
- return self.services[-1].currarr
- except:
- return None
-
- def duration(self):
- try:
- return self.services[-1].arrtime - self.services[0].deptime
- except:
- return None
-
- def durationString(self):
- hrs, scs = divmod(self.duration().total_seconds(), 3600)
- mns, rmd = divmod(scs, 60)
-
- return "%i:%s" % (hrs, str(int(mns)).zfill(2))
-
- def changes(self):
- return max(len([service for service in self.services if service.name != "Walk"]) - 1, 0) if self.details else max(len([service for service in self.services[0].name.split("/") if service != "Walk"]) - 1, 0)
-
- def xml(self, indent = 0, cid = False, frm = True, to = True, deptime = True, arrtime = True, duration = True, changes = True, services = True, servicekwargs = {}, stationkwargs = {}):
- out = " " * indent + "\n" % ("" if cid is False else " id=\"%i\"" % cid)
-
- if frm:
- out += " " * indent + " \n"
- out += self.depst().xml(indent + 2, **stationkwargs) + "\n"
- out += " " * indent + " \n"
-
- if to:
- out += " " * indent + " \n"
- out += self.arrst().xml(indent + 2, **stationkwargs) + "\n"
- out += " " * indent + " \n"
-
- if deptime or arrtime or duration or changes:
- out += " " * indent + " \n"
-
- if deptime:
- out += " " * indent + " \n"
- out += " " * indent + " %s\n" % datetime.datetime.strftime(self.deptime(), "%d.%m.%Y")
- out += " " * indent + " \n" % datetime.datetime.strftime(self.deptime(), "%H:%M")
- out += " " * indent + " \n"
-
- if arrtime:
- out += " " * indent + " \n"
- out += " " * indent + " %s\n" % datetime.datetime.strftime(self.arrtime(), "%d.%m.%Y")
- out += " " * indent + " \n" % datetime.datetime.strftime(self.arrtime(), "%H:%M")
- out += " " * indent + " \n"
-
- out += (" " * indent + " %s\n" % self.durationString()) if duration else ""
- out += (" " * indent + " %i\n" % self.changes()) if changes else ""
-
- out += " " * indent + " \n"
-
- if services:
- out += " " * indent + " \n"
-
- for i in range(len(self.services)):
- out += self.services[i].xml(indent + 2, i, **servicekwargs) + "\n"
-
- out += " " * indent + " \n"
-
- out += " " * indent + ""
-
- return out
-
- def json(self, indent = 0, cid = False, frm = True, to = True, deptime = True, arrtime = True, duration = True, changes = True, services = True, servicekwargs = {}, stationkwargs = {}):
- out = " " * indent + "{\n"
-
- out += (" " * indent + " \"@id\": %i,\n" % cid) if cid is not False else ""
-
- if frm:
- out += " " * indent + " \"from\":\n"
- out += self.depst().json(indent + 2, **stationkwargs) + ",\n"
-
- if to:
- out += " " * indent + " \"to\":\n"
- out += self.arrst().json(indent + 2, **stationkwargs) + ",\n"
-
- if deptime or arrtime or duration or changes:
- det = ""
- det += " " * indent + " \"details\": {\n"
-
- if deptime:
- det += " " * indent + " \"departure\": {\n"
- det += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.deptime(), "%d.%m.%Y")
- det += " " * indent + " \"time\": \"%s\"\n" % datetime.datetime.strftime(self.deptime(), "%H:%M")
- det += " " * indent + " },\n"
-
- if arrtime:
- det += " " * indent + " \"arrival\": {\n"
- det += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.arrtime(), "%d.%m.%Y")
- det += " " * indent + " \"time\": \"%s\"\n"% datetime.datetime.strftime(self.arrtime(), "%H:%M")
- det += " " * indent + " },\n"
-
- det += (" " * indent + " \"duration\": \"%s\",\n" % self.durationString()) if duration else ""
- det += (" " * indent + " \"changes\": %i,\n" % self.changes()) if changes else ""
-
- det = "".join(det.rsplit(",", 1))
- out += det
-
- out += " " * indent + " },\n"
-
- if services:
- out += " " * indent + " \"services\": [\n"
-
- for i in range(len(self.services)):
- out += self.services[i].json(indent + 2, i, **servicekwargs) + (",\n" if not i == len(self.services) - 1 else "\n")
-
- out += " " * indent + " ],\n"
-
- out += " " * indent + "}"
-
- out = "".join(out.rsplit(",", 1))
-
- return out
+from classes.connection import Connection
+from classes.station import Station
+from classes.service import Service
diff --git a/classes/connection.py b/classes/connection.py
new file mode 100644
index 0000000..e0986d6
--- /dev/null
+++ b/classes/connection.py
@@ -0,0 +1,156 @@
+import datetime
+
+class Connection:
+ def __init__(self, details = False):
+ self.services = []
+ self.details = details
+
+ def addService(self, service):
+ self.services.append(service)
+
+ def depst(self):
+ try:
+ return self.services[0].depst
+ except:
+ return None
+
+ def arrst(self):
+ try:
+ return self.services[-1].arrst
+ except:
+ return None
+
+ def deptime(self):
+ try:
+ return self.services[0].deptime
+ except:
+ return None
+
+ def arrtime(self):
+ try:
+ return self.services[-1].arrtime
+ except:
+ return None
+
+ def currdep(self):
+ try:
+ return self.services[0].currdep
+ except:
+ return None
+
+ def currarr(self):
+ try:
+ return self.services[-1].currarr
+ except:
+ return None
+
+ def duration(self):
+ try:
+ return self.services[-1].arrtime - self.services[0].deptime
+ except:
+ return None
+
+ def durationString(self):
+ hrs, scs = divmod(self.duration().total_seconds(), 3600)
+ mns, rmd = divmod(scs, 60)
+
+ return "%i:%s" % (hrs, str(int(mns)).zfill(2))
+
+ def changes(self):
+ return max(len([service for service in self.services if service.name != "Walk"]) - 1, 0) if self.details else max(len([service for service in self.services[0].name.split("/") if service != "Walk"]) - 1, 0)
+
+ def xml(self, indent = 0, cid = False, frm = True, to = True, deptime = True, arrtime = True, duration = True, changes = True, services = True, servicekwargs = {}, stationkwargs = {}):
+ out = " " * indent + "\n" % ("" if cid is False else " id=\"%i\"" % cid)
+
+ if frm:
+ out += " " * indent + " \n"
+ out += self.depst().xml(indent + 2, **stationkwargs) + "\n"
+ out += " " * indent + " \n"
+
+ if to:
+ out += " " * indent + " \n"
+ out += self.arrst().xml(indent + 2, **stationkwargs) + "\n"
+ out += " " * indent + " \n"
+
+ if deptime or arrtime or duration or changes:
+ out += " " * indent + " \n"
+
+ if deptime:
+ out += " " * indent + " \n"
+ out += " " * indent + " %s\n" % datetime.datetime.strftime(self.deptime(), "%d.%m.%Y")
+ out += " " * indent + " \n" % datetime.datetime.strftime(self.deptime(), "%H:%M")
+ out += " " * indent + " \n"
+
+ if arrtime:
+ out += " " * indent + " \n"
+ out += " " * indent + " %s\n" % datetime.datetime.strftime(self.arrtime(), "%d.%m.%Y")
+ out += " " * indent + " \n" % datetime.datetime.strftime(self.arrtime(), "%H:%M")
+ out += " " * indent + " \n"
+
+ out += (" " * indent + " %s\n" % self.durationString()) if duration else ""
+ out += (" " * indent + " %i\n" % self.changes()) if changes else ""
+
+ out += " " * indent + " \n"
+
+ if services:
+ out += " " * indent + " \n"
+
+ for i in range(len(self.services)):
+ out += self.services[i].xml(indent + 2, i, **servicekwargs) + "\n"
+
+ out += " " * indent + " \n"
+
+ out += " " * indent + ""
+
+ return out
+
+ def json(self, indent = 0, cid = False, frm = True, to = True, deptime = True, arrtime = True, duration = True, changes = True, services = True, servicekwargs = {}, stationkwargs = {}):
+ out = " " * indent + "{\n"
+
+ out += (" " * indent + " \"@id\": %i,\n" % cid) if cid is not False else ""
+
+ if frm:
+ out += " " * indent + " \"from\":\n"
+ out += self.depst().json(indent + 2, **stationkwargs) + ",\n"
+
+ if to:
+ out += " " * indent + " \"to\":\n"
+ out += self.arrst().json(indent + 2, **stationkwargs) + ",\n"
+
+ if deptime or arrtime or duration or changes:
+ det = ""
+ det += " " * indent + " \"details\": {\n"
+
+ if deptime:
+ det += " " * indent + " \"departure\": {\n"
+ det += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.deptime(), "%d.%m.%Y")
+ det += " " * indent + " \"time\": \"%s\"\n" % datetime.datetime.strftime(self.deptime(), "%H:%M")
+ det += " " * indent + " },\n"
+
+ if arrtime:
+ det += " " * indent + " \"arrival\": {\n"
+ det += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.arrtime(), "%d.%m.%Y")
+ det += " " * indent + " \"time\": \"%s\"\n"% datetime.datetime.strftime(self.arrtime(), "%H:%M")
+ det += " " * indent + " },\n"
+
+ det += (" " * indent + " \"duration\": \"%s\",\n" % self.durationString()) if duration else ""
+ det += (" " * indent + " \"changes\": %i,\n" % self.changes()) if changes else ""
+
+ det = "".join(det.rsplit(",", 1))
+ out += det
+
+ out += " " * indent + " },\n"
+
+ if services:
+ out += " " * indent + " \"services\": [\n"
+
+ for i in range(len(self.services)):
+ out += self.services[i].json(indent + 2, i, **servicekwargs) + (",\n" if not i == len(self.services) - 1 else "\n")
+
+ out += " " * indent + " ],\n"
+
+ out += " " * indent + "}"
+
+ out = "".join(out.rsplit(",", 1))
+
+ return out
diff --git a/classes/service.py b/classes/service.py
new file mode 100644
index 0000000..4523e43
--- /dev/null
+++ b/classes/service.py
@@ -0,0 +1,110 @@
+import datetime
+
+class Service:
+ def __init__(self, name, depst, deptime, arrst, arrtime, dest = None, deppf = None, currdep = None, arrpf = None, curarr = None):
+ self.name = name
+ self.dest = dest
+ self.depst = depst
+ self.deptime = deptime
+ self.arrst = arrst
+ self.arrtime = arrtime
+ self.deppf = deppf
+ self.currdep = currdep
+ self.arrpf = arrpf
+ self.curarr = curarr
+
+ def duration(self):
+ return self.arrtime - self.deptime
+
+ def xml(self, indent = 0, iid = False, name = True, depst = True, deptime = True, arrst = True, arrtime = True, deppf = True, currdep = True, arrpf = True, curarr = True, duration = True, dest = True, stationkwargs = {}):
+ out = " " * indent + "\n" % ("" if iid is False else " id=\"%i\"" % iid)
+
+ out += (" " * indent + " %s\n" % self.name) if name else ""
+
+ if dest and self.dest:
+ out += " " * indent + " \n"
+ out += self.dest.xml(indent + 2, **stationkwargs) + "\n"
+ out += " " * indent + " \n"
+
+ if depst or deptime or deppf or currdep:
+ out += " " * indent + " \n"
+
+ out += (self.depst.xml(indent + 2, **stationkwargs) + "\n") if depst else ""
+
+ if deptime:
+ out += " " * indent + " %s\n" % datetime.datetime.strftime(self.deptime, "%d.%m.%Y")
+ out += " " * indent + " \n" % datetime.datetime.strftime(self.deptime, "%H:%M")
+
+ out += (" " * indent + " %s\n" % self.currdep) if currdep and self.currdep else ""
+ out += (" " * indent + " %s\n" % self.deppf) if deppf and self.deppf else ""
+
+ out += " " * indent + " \n"
+
+ if arrst or arrtime or arrpf or curarr:
+ out += " " * indent + " \n"
+
+ out += (self.arrst.xml(indent + 2, **stationkwargs) + "\n") if arrst else ""
+
+ if arrtime:
+ out += " " * indent + " %s\n" % datetime.datetime.strftime(self.arrtime, "%d.%m.%Y")
+ out += " " * indent + " \n" % datetime.datetime.strftime(self.arrtime, "%H:%M")
+
+ out += (" " * indent + " %s\n" % self.curarr) if curarr and self.curarr else ""
+ out += (" " * indent + " %s\n" % self.arrpf) if arrpf and self.arrpf else ""
+
+ out += " " * indent + " \n"
+
+ out += " " * indent + ""
+
+ return out
+
+ def json(self, indent = 0, iid = False, name = True, depst = True, deptime = True, arrst = True, arrtime = True, deppf = True, currdep = True, arrpf = True, curarr = True, duration = True, dest = True, stationkwargs = {}):
+ out = " " * indent + "{\n"
+
+ out += (" " * indent + " \"@id\": %i,\n" % iid) if iid is not False else ""
+ out += (" " * indent + " \"name\": \"%s\",\n" % self.name) if name else ""
+
+ if dest and self.dest:
+ out += " " * indent + " \"destination\":\n"
+ out += self.dest.json(indent + 2, **stationkwargs) + ",\n"
+
+ if depst or deptime or deppf or currdep:
+ dep = " " * indent + " \"departure\": {\n"
+
+ if depst:
+ dep += " " * indent + " \"station\":\n"
+ dep += self.depst.json(indent + 3, **stationkwargs) + ",\n"
+
+ if deptime:
+ dep += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.deptime, "%d.%m.%Y")
+ dep += " " * indent + " \"time\": \"%s\",\n" % datetime.datetime.strftime(self.deptime, "%H:%M")
+
+ dep += (" " * indent + " \"current\": \"%s\",\n" % self.currdep) if currdep and self.currdep else ""
+ dep += (" " * indent + " \"platform\": \"%s\",\n" % self.deppf) if deppf and self.deppf else ""
+
+ dep = "".join(dep.rsplit(",", 1))
+ out += dep + " " * indent + " },\n"
+
+ if arrst or arrtime or arrpf or curarr:
+ arr = " " * indent + " \"arrival\": {\n"
+
+ if arrst:
+ arr += " " * indent + " \"station\":\n"
+ arr += self.arrst.json(indent + 3, **stationkwargs) + ",\n"
+
+ if arrtime:
+ arr += " " * indent + " \"date\": \"%s\",\n" % datetime.datetime.strftime(self.arrtime, "%d.%m.%Y")
+ arr += " " * indent + " \"time\": \"%s\",\n" % datetime.datetime.strftime(self.arrtime, "%H:%M")
+
+ arr += (" " * indent + " \"current\": \"%s\",\n" % self.curarr) if curarr and self.curarr else ""
+ arr += (" " * indent + " \"platform\": \"%s\",\n" % self.arrpf) if arrpf and self.arrpf else ""
+
+ arr = "".join(arr.rsplit(",", 1))
+ out += arr + " " * indent + " },\n"
+
+ out += " " * indent + "}"
+
+ out = "".join(out.rsplit(",", 1))
+
+ return out
+
diff --git a/classes/station.py b/classes/station.py
new file mode 100644
index 0000000..ec8a33a
--- /dev/null
+++ b/classes/station.py
@@ -0,0 +1,60 @@
+class Station:
+ def __init__(self, name, sttype, extid = None, xcoord = None, ycoord = None, prodclass = None):
+ self.name = name
+ self.sttype = sttype
+ self.extid = extid
+ self.xcoord = float(xcoord)/1000000
+ self.ycoord = float(ycoord)/1000000
+ self.prodclass = prodclass
+
+ def useId(self):
+ return self.extid or self.name
+
+ def lat(self):
+ return self.ycoord
+
+ def lon(self):
+ return self.xcoord
+
+ def json(self, indent = 0, name = True, extid = True, sttype = False, coords = False, prodclass = False, distance = False):
+ out = " " * indent + "{\n"
+
+ out += (" " * indent + " \"name\": \"%s\",\n" % self.name) if name else ""
+ out += (" " * indent + " \"id\": \"%s\",\n" % self.useId()) if extid else ""
+ out += (" " * indent + " \"distance\": %i,\n" % int(self.distance)) if distance else ""
+ out += (" " * indent + " \"type\": \"%s\",\n" % self.sttype) if sttype else ""
+
+ if coords:
+ out += " " * indent + " \"coords\": {\n"
+ out += " " * indent + " \"lon\": %f,\n" % self.xcoord
+ out += " " * indent + " \"lat\": %f\n" % self.ycoord
+ out += " " * indent + " },\n"
+
+ out += (" " * indent + " \"prodclass\": \"%s\",\n" % self.prodclass) if prodclass else ""
+
+ out = "".join(out.rsplit(",", 1))
+
+ out += " " * indent + "}"
+
+ return out
+
+ def xml(self, indent = 0, name = True, extid = True, sttype = False, coords = False, prodclass = False, distance = False):
+ out = " " * indent + "\n"
+
+ out += (" " * indent + " %s\n" % self.name) if name else ""
+ out += (" " * indent + " %s\n" % self.useId()) if extid else ""
+ out += (" " * indent + " %i\n" % int(self.distance)) if distance else ""
+ out += (" " * indent + " %s\n" % self.sttype) if sttype else ""
+
+ if coords:
+ out += " " * indent + " \n"
+ out += " " * indent + " %f\n" % self.xcoord
+ out += " " * indent + " %f\n" % self.ycoord
+ out += " " * indent + " \n"
+
+ out += (" " * indent + " %s\n" % self.prodclass) if prodclass else ""
+
+ out += " " * indent + ""
+
+ return out
+