mirror of
https://github.com/norohind/EDMC_SpanshRouter.git
synced 2026-10-22 18:02:08 +03:00
Use CSV header when importing a file
Make Jumps count optional
This commit is contained in:
1 parent
2a4deb87b6
commit
9aca2d1535
1 file changed
+23
-10
@@ -37,6 +37,8 @@ class SpanshRouter():
|
||||
self.jumps_left = 0
|
||||
self.error_txt = tk.StringVar()
|
||||
self.plot_error = "Error while trying to plot a route, please try again."
|
||||
self.system_header = "System Name"
|
||||
self.jumps_header = "Jumps"
|
||||
|
||||
# -- GUI part --
|
||||
def init_gui(self, parent):
|
||||
@@ -242,6 +244,9 @@ class SpanshRouter():
|
||||
def open_last_route(self):
|
||||
try:
|
||||
with open(self.save_route_path, 'r') as csvfile:
|
||||
# Check if the file has a header for compatibility with previous versions
|
||||
dict_route_reader = csv.DictReader(csvfile)
|
||||
if dict_route_reader.fieldnames[0] != self.system_header:
|
||||
route_reader = csv.reader(csvfile)
|
||||
|
||||
for row in route_reader:
|
||||
@@ -256,6 +261,7 @@ class SpanshRouter():
|
||||
self.offset = 0
|
||||
|
||||
for row in self.route[self.offset:]:
|
||||
if row[1] not in [None, "", []]:
|
||||
self.jumps_left += int(row[1])
|
||||
|
||||
self.next_stop = self.route[self.offset][0]
|
||||
@@ -282,10 +288,12 @@ class SpanshRouter():
|
||||
|
||||
def update_route(self, direction=1):
|
||||
if direction > 0:
|
||||
if self.route[self.offset][1] not in [None, "", []]:
|
||||
self.jumps_left -= int(self.route[self.offset][1])
|
||||
self.offset += 1
|
||||
else:
|
||||
self.offset -= 1
|
||||
if self.route[self.offset][1] not in [None, "", []]:
|
||||
self.jumps_left += int(self.route[self.offset][1])
|
||||
|
||||
if self.offset >= self.route.__len__():
|
||||
@@ -315,17 +323,8 @@ class SpanshRouter():
|
||||
ftype_supported = False
|
||||
if filename.endswith(".csv"):
|
||||
ftype_supported = True
|
||||
with open(filename, 'r') as csvfile:
|
||||
route_reader = csv.reader(csvfile)
|
||||
self.plot_csv(filename)
|
||||
|
||||
# Skip the header
|
||||
route_reader.next()
|
||||
|
||||
self.clear_route(False)
|
||||
for row in route_reader:
|
||||
if row not in (None, "", []):
|
||||
self.route.append([row[0], row[4]])
|
||||
self.jumps_left += int(row[4])
|
||||
elif filename.endswith(".txt"):
|
||||
ftype_supported = True
|
||||
self.plot_edts(filename)
|
||||
@@ -345,6 +344,20 @@ class SpanshRouter():
|
||||
self.enable_plot_gui(True)
|
||||
self.show_error("An error occured while reading the file.")
|
||||
|
||||
def plot_csv(self, filename):
|
||||
with open(filename, 'r') as csvfile:
|
||||
route_reader = csv.DictReader(csvfile)
|
||||
|
||||
self.clear_route(False)
|
||||
for row in route_reader:
|
||||
if row not in (None, "", []):
|
||||
self.route.append([
|
||||
row[self.system_header],
|
||||
row.get(self.jumps_header, "") # Jumps column is optional
|
||||
])
|
||||
if row.get(self.jumps_header) != None:
|
||||
self.jumps_left += int(row[self.jumps_header])
|
||||
|
||||
def plot_route(self):
|
||||
self.hide_error()
|
||||
try:
|
||||
|
||||
Reference in new issue
Block a user