mirror of
https://github.com/janishutz/BiogasControllerApp.git
synced 2025-11-25 22:04:24 +00:00
Features: - Added a new settings page - Laid out some backend stuff to integrate some new features - prepared backend to include an option to have the previous values also displayed when updating them both screens where you may change configuration of the microcontroller
123 lines
5.2 KiB
Python
123 lines
5.2 KiB
Python
"""@package docstring
|
|
This is a simplification of the csv module"""
|
|
|
|
import csv
|
|
|
|
|
|
class CsvRead:
|
|
"""This is a class that reads csv files and depending on the module selected does do different things with it"""
|
|
def __init__(self):
|
|
self.__imp = ""
|
|
self.__raw = ""
|
|
self.__raw_list = ""
|
|
|
|
def importing(self, path):
|
|
"""Returns a list of the imported csv-file, requires path, either direct system path or relative path"""
|
|
self.__imp = open(path)
|
|
self.__raw = csv.reader(self.__imp, delimiter=',')
|
|
self.__raw_list = list(self.__raw)
|
|
self.__imp.close()
|
|
return self.__raw_list
|
|
|
|
|
|
class CsvWrite:
|
|
"""This is a class that modifies csv files"""
|
|
def __init__(self):
|
|
self.__impl = []
|
|
self.__strpop = []
|
|
self.__removed = []
|
|
self.__removing = 0
|
|
self.__change = 0
|
|
self.__appending = 0
|
|
self.__imp = []
|
|
self.__raw = []
|
|
|
|
def rem_str(self, path, row):
|
|
"""Opens the csv-file in write mode which is specified as an argument either as direct or relative path"""
|
|
self.__imp = open(path)
|
|
self.__raw = csv.reader(self.__imp, delimiter=',')
|
|
self.__impl = list(self.__raw)
|
|
self.__removed = self.__impl.pop(row + 1)
|
|
with open(path, "w") as removedata:
|
|
self.__removing = csv.writer(removedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__removing.writerow(self.__impl.pop(0))
|
|
while len(self.__impl) > 0:
|
|
with open(path, "a") as removedata:
|
|
self.__removing = csv.writer(removedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__removing.writerow(self.__impl.pop(0))
|
|
self.__imp.close()
|
|
removedata.close()
|
|
|
|
|
|
def chg_str(self, path, row, pos, new_value):
|
|
"""Opens the csv-file in write mode to change a value, e.g. if a recipes is changed."""
|
|
self.__imp = open(path)
|
|
self.__raw = csv.reader(self.__imp, delimiter=',')
|
|
self.__impl = list(self.__raw)
|
|
self.__strpop = self.__impl.pop(row)
|
|
self.__strpop.pop(pos)
|
|
self.__strpop.insert(pos, new_value)
|
|
self.__impl.insert(row, self.__strpop)
|
|
with open(path, "w") as changedata:
|
|
self.__change = csv.writer(changedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__change.writerow(self.__impl.pop(0))
|
|
while len(self.__impl) > 0:
|
|
with open(path, "a") as changedata:
|
|
self.__removing = csv.writer(changedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__removing.writerow(self.__impl.pop(0))
|
|
self.__imp.close()
|
|
changedata.close()
|
|
|
|
def chg_str_rem(self, path, row, pos):
|
|
"""Opens the csv-file in write mode to change a value, e.g. if a recipes is changed."""
|
|
self.__imp = open(path)
|
|
self.__raw = csv.reader(self.__imp, delimiter=',')
|
|
self.__impl = list(self.__raw)
|
|
self.__strpop = self.__impl.pop(row)
|
|
self.__strpop.pop(pos)
|
|
self.__strpop.pop(pos)
|
|
self.__impl.insert(row, self.__strpop)
|
|
with open(path, "w") as changedata:
|
|
self.__change = csv.writer(changedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__change.writerow(self.__impl.pop(0))
|
|
while len(self.__impl) > 0:
|
|
with open(path, "a") as changedata:
|
|
self.__removing = csv.writer(changedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__removing.writerow(self.__impl.pop(0))
|
|
self.__imp.close()
|
|
changedata.close()
|
|
|
|
def chg_str_add(self, path, row, new_value1, new_value2):
|
|
"""Opens the csv-file in write mode to change a value, e.g. if a recipes is changed."""
|
|
self.__imp = open(path)
|
|
self.__raw = csv.reader(self.__imp, delimiter=',')
|
|
self.__impl = list(self.__raw)
|
|
self.__strpop = self.__impl.pop(row)
|
|
self.__strpop.append(new_value1)
|
|
self.__strpop.append(new_value2)
|
|
self.__impl.insert(row, self.__strpop)
|
|
with open(path, "w") as changedata:
|
|
self.__change = csv.writer(changedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__change.writerow(self.__impl.pop(0))
|
|
while len(self.__impl) > 0:
|
|
with open(path, "a") as changedata:
|
|
self.__removing = csv.writer(changedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__removing.writerow(self.__impl.pop(0))
|
|
self.__imp.close()
|
|
changedata.close()
|
|
|
|
def app_str(self, path, value):
|
|
"""Opens the csv-file in append mode and writes given input. CsvWrite.app_str(path, value).
|
|
Path can be specified both as direct or relative. value is a list. Will return an error if type of value is
|
|
not a list."""
|
|
with open(path, "a") as appenddata:
|
|
self.__appending = csv.writer(appenddata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__appending.writerow(value)
|
|
appenddata.close()
|
|
|
|
def write_str(self, path, value):
|
|
with open(path, "w") as writedata:
|
|
self.__change = csv.writer(writedata, delimiter=',', quoting=csv.QUOTE_MINIMAL)
|
|
self.__change.writerow(value)
|
|
writedata.close()
|