4.0 Alpha (Build 19354)
This commit is contained in:
0
modules/__init__.py
Normal file
0
modules/__init__.py
Normal file
101
modules/dialog.py
Normal file
101
modules/dialog.py
Normal file
@@ -0,0 +1,101 @@
|
||||
"""
|
||||
# GeneratorCSV
|
||||
# Wersja 4.0 Experimental
|
||||
# by Mateusz Skoczek
|
||||
# luty 2019 - grudzień 2019
|
||||
# dla ZSP Sobolew
|
||||
|
||||
#
|
||||
# Moduł wywołujący okna dialogowe
|
||||
#
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ----------------------------------------------- # Kody dialogowe # ------------------------------------------------- #
|
||||
|
||||
E = [] # Błędy
|
||||
E.append(["Nie znaleziono pliku konfiguracyjnego (config.cfg).\nPrzywróć plik. (E01x0000)", True]) #0
|
||||
E.append(["Błąd pliku konfiguracyjnego (config.cfg).\nNiepoprawna ilość wierszy w pliku\nPrzywróć plik. (E01x0001)", True]) #1
|
||||
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 1\nPrzywróć plik. (E01x0011)", True]) #2
|
||||
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 2\nPrzywróć plik. (E01x0012)", True]) #3
|
||||
E.append(["Nie znaleziono pliku składowego (instruction.txt)\nPrzywróć plik. (E03x0010)", False]) #4
|
||||
E.append(["Nie znaleziono pliku formatu (format.fmt).\nPrzywróć plik (E02x0000)", True]) #5
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników klasy w formacie uczniów nie jest równa 1 (E02x0002)", False]) #6
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników oddziału w formacie uczniów nie jest równa 1 (E02x0003)", False]) #7
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników nazwiska w formacie uczniów nie jest równa 1 (E02x0004)", False]) #8
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników imienia w formacie uczniów nie jest równa 1 (E02x0005)", False]) #9
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników loginu w formacie uczniów nie jest równa 1 (E02x0006)", False]) #10
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie uczniów (E02x0001).", False]) #11
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie nauczycieli (E02x0011).", False]) #12
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników nazwiska w formacie nauczycieli nie jest równa 1 (E02x0012)", False]) #13
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników imienia w formacie nauczycieli nie jest równa 1 (E02x0013)", False]) #14
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników loginu w formacie nauczycieli nie jest równa 1 (E02x0014)", False]) #15
|
||||
E.append(["Błąd pliku formatu (format.fmt).\nNiedozwolone znaki w formacie. (E02x0020).", False]) #16
|
||||
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 4\nPrzywróć plik. (E01x0013)", True]) #17
|
||||
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 6\nPrzywróć plik. (E01x0014)", True]) #18
|
||||
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 7\nPrzywróć plik. (E01x0015)", True]) #19
|
||||
|
||||
|
||||
I = [] # Informacje
|
||||
I.append(["Pomyślnie zapisano!\nDla niektórych zmian może być wymagane ponowne uruchomienie programu", False]) #0 (I0001)
|
||||
|
||||
|
||||
|
||||
A = [] # Zapytania
|
||||
A.append("Czy na pewno chcesz rozpocząć generowanie?") #0 (A0001)
|
||||
A.append("Czy chcesz zapisać ustawienia?") #1 (A0002)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
|
||||
|
||||
# Biblioteki zewnętrzne
|
||||
import sys as SS
|
||||
|
||||
|
||||
|
||||
# Biblioteki zewnętrzne interfejsu graficznego
|
||||
from tkinter import messagebox as TKmsb
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# --------------------------------------------------- # Funkcje # ---------------------------------------------------- #
|
||||
|
||||
# Okno dialogowe błędu
|
||||
def err(ErrorIndex):
|
||||
Message = 'Wystąpił błąd!\n' + E[ErrorIndex][0]
|
||||
TKmsb.showerror('Błąd', Message)
|
||||
if E[ErrorIndex][1]:
|
||||
SS.exit(0)
|
||||
|
||||
|
||||
|
||||
# Okno dialogowe informacyjne
|
||||
def inf(InfoIndex):
|
||||
TKmsb.showinfo('Informacja', I[InfoIndex][0])
|
||||
if I[InfoIndex][1]:
|
||||
SS.exit(0)
|
||||
|
||||
|
||||
|
||||
# Okno dialogowe zapytania
|
||||
def ask(AskIndex):
|
||||
if TKmsb.askokcancel('Pytanie', A[AskIndex]):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
131
modules/load_config.py
Normal file
131
modules/load_config.py
Normal file
@@ -0,0 +1,131 @@
|
||||
"""
|
||||
# GeneratorCSV
|
||||
# Wersja 4.0 Experimental
|
||||
# by Mateusz Skoczek
|
||||
# luty 2019 - grudzień 2019
|
||||
# dla ZSP Sobolew
|
||||
|
||||
#
|
||||
# Moduł zarządzający plikiem konfiguracyjnym
|
||||
#
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
|
||||
|
||||
# Biblioteki zewnętrzne
|
||||
import sys as SS
|
||||
|
||||
|
||||
|
||||
# Moduły składowe programu
|
||||
try:
|
||||
from modules import dialog as MDdlg
|
||||
except ModuleNotFoundError:
|
||||
print('Wystąpił krytyczny błąd!')
|
||||
print('Nie znaleziono jednego z modułów programu (dialog.py). Nie można załadować programu')
|
||||
print('Kod błędu: E00x0011')
|
||||
wait = input('Naciśnij ENTER aby wyjść')
|
||||
SS.exit(0)
|
||||
except Exception as exc:
|
||||
print('Wystąpił krytyczny błąd!')
|
||||
print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.')
|
||||
print('Treść błędu: ' + exc)
|
||||
print('Kod błędu: E00x0010')
|
||||
wait = input('Naciśnij ENTER aby wyjść')
|
||||
SS.exit(0)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# --------------------------------------------------- # Funkcje # ---------------------------------------------------- #
|
||||
|
||||
# Wewnętrzna funkcja sprawdzająca błędy pliku konfiguracyjnego
|
||||
def CheckConfig(settings):
|
||||
# Ilość wierszy
|
||||
try:
|
||||
if len(settings) != 7:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(1)
|
||||
|
||||
# Linia 1 (0/1)
|
||||
try:
|
||||
check = int(settings[0])
|
||||
if 0 > check > 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(2)
|
||||
# Linia 2 (utf-8)
|
||||
|
||||
DostepneKodowanieWyjsciowe = ['utf-8']
|
||||
try:
|
||||
if settings[1] not in DostepneKodowanieWyjsciowe:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(3)
|
||||
|
||||
# Linia 4 (int)
|
||||
try:
|
||||
x = int(settings[3])
|
||||
except ValueError:
|
||||
MDdlg.err(17)
|
||||
|
||||
# Linia 6 (int)
|
||||
try:
|
||||
x = int(settings[5])
|
||||
except ValueError:
|
||||
MDdlg.err(18)
|
||||
|
||||
# Linia 7 (int)
|
||||
try:
|
||||
x = int(settings[6])
|
||||
except ValueError:
|
||||
MDdlg.err(19)
|
||||
|
||||
|
||||
# Odczytywanie ustawień z pliku konfiguracyjnego
|
||||
def read():
|
||||
try:
|
||||
check = open('.\config.cfg')
|
||||
except FileNotFoundError:
|
||||
MDdlg.err(0)
|
||||
else:
|
||||
with open('.\config.cfg', 'r') as cfg:
|
||||
config = cfg.read().split('\n')
|
||||
settings = []
|
||||
for x in config:
|
||||
settings.append(x.split(': ')[1])
|
||||
CheckConfig(settings)
|
||||
return settings
|
||||
|
||||
|
||||
|
||||
# Zapis ustawień do pliku konfiguracyjnego
|
||||
def edit(settings):
|
||||
CheckConfig(settings)
|
||||
try:
|
||||
check = open('.\config.cfg')
|
||||
except FileNotFoundError:
|
||||
MDdlg.err(0)
|
||||
else:
|
||||
SettingsToSave = []
|
||||
SettingsToSave.append('Ciemny motyw(0/1): ' + str(settings[0]) + '\n')
|
||||
SettingsToSave.append('Kodowanie wyjsciowe: ' + str(settings[1]) + '\n')
|
||||
SettingsToSave.append('Domena: ' + str(settings[2]) + '\n')
|
||||
SettingsToSave.append('Quota: ' + str(settings[3]) + '\n')
|
||||
SettingsToSave.append('Kraj: ' + str(settings[4]) + '\n')
|
||||
SettingsToSave.append('Dlugosc liceum: ' + str(settings[5]) + '\n')
|
||||
SettingsToSave.append('Dlugosc branzowej: ' + str(settings[6]))
|
||||
with open('.\config.cfg', 'w') as cfg:
|
||||
for x in SettingsToSave:
|
||||
cfg.write(x)
|
||||
229
modules/load_format.py
Normal file
229
modules/load_format.py
Normal file
@@ -0,0 +1,229 @@
|
||||
"""
|
||||
# GeneratorCSV
|
||||
# Wersja 4.0 Experimental
|
||||
# by Mateusz Skoczek
|
||||
# luty 2019 - grudzień 2019
|
||||
# dla ZSP Sobolew
|
||||
|
||||
#
|
||||
# Moduł zarządzający plikiem formatu
|
||||
#
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
|
||||
|
||||
# Biblioteki zewnętrzne
|
||||
import sys as SS
|
||||
|
||||
|
||||
|
||||
# Moduły składowe programu
|
||||
try:
|
||||
from modules import dialog as MDdlg
|
||||
except ModuleNotFoundError:
|
||||
print('Wystąpił krytyczny błąd!')
|
||||
print('Nie znaleziono jednego z modułów programu (dialog.py). Nie można załadować programu')
|
||||
print('Kod błędu: E00x0011')
|
||||
wait = input('Naciśnij ENTER aby wyjść')
|
||||
SS.exit(0)
|
||||
except Exception as exc:
|
||||
print('Wystąpił krytyczny błąd!')
|
||||
print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.')
|
||||
print('Treść błędu: ' + exc)
|
||||
print('Kod błędu: E00x0010')
|
||||
wait = input('Naciśnij ENTER aby wyjść')
|
||||
SS.exit(0)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# --------------------------------------------------- # Funkcje # ---------------------------------------------------- #
|
||||
|
||||
# Wewnętrzna funkcja sprawdzająca błędy pliku formatu
|
||||
def CheckFormat(Read, format):
|
||||
poprawne = True
|
||||
check = True
|
||||
while check:
|
||||
uczniowiefmt = ''
|
||||
for x in format[0]:
|
||||
uczniowiefmt += x
|
||||
|
||||
try:
|
||||
if format[0].count('') > 0:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(11)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if uczniowiefmt.count('K') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(6)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if uczniowiefmt.count('O') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(7)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if uczniowiefmt.count('N') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(8)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if uczniowiefmt.count('I') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(9)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if uczniowiefmt.count('L') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(10)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if format[1].count('') > 0:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(12)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
nauczycielefmt = ''
|
||||
for x in format[1]:
|
||||
nauczycielefmt += x
|
||||
|
||||
try:
|
||||
if nauczycielefmt.count('N') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(13)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if nauczycielefmt.count('I') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(14)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
try:
|
||||
if nauczycielefmt.count('L') != 1:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(15)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
|
||||
NiedozwoloneZnaki = ['1','2','3','4','5','6','7','8','9','0','W','E','R','T','Y','U','P','A','S','D','F','G','H','J','Z','C','V','B','M']
|
||||
try:
|
||||
for x in NiedozwoloneZnaki:
|
||||
if x in nauczycielefmt+uczniowiefmt:
|
||||
error = int('x')
|
||||
except ValueError:
|
||||
MDdlg.err(16)
|
||||
if Read:
|
||||
SS.exit(0)
|
||||
else:
|
||||
poprawne = False
|
||||
break
|
||||
check = False
|
||||
return poprawne
|
||||
|
||||
|
||||
|
||||
# Odczytywanie ustawień z pliku formatu
|
||||
def read():
|
||||
try:
|
||||
check = open(r'.\format.fmt')
|
||||
except FileNotFoundError:
|
||||
MDdlg.err(5)
|
||||
else:
|
||||
with open(r'.\format.fmt', 'r') as fmt:
|
||||
fmt = fmt.read().split('\n<separator>\n')
|
||||
format = []
|
||||
for x in fmt:
|
||||
format.append(x.split('\n'))
|
||||
CheckFormat(True, format)
|
||||
return format
|
||||
|
||||
|
||||
|
||||
# Zapis ustawień do pliku formatu
|
||||
def edit(format):
|
||||
xformat = []
|
||||
for x in format:
|
||||
xformat.append(x.split('\n')[:-1])
|
||||
if CheckFormat(False, xformat):
|
||||
try:
|
||||
check = open(r'.\format.fmt')
|
||||
except FileNotFoundError:
|
||||
MDdlg.err(5)
|
||||
else:
|
||||
FormatToSaveX = []
|
||||
for x in xformat:
|
||||
FormatToSaveX.append('\n'.join(x))
|
||||
FormatToSave = FormatToSaveX[0] + '\n<separator>\n' + FormatToSaveX[1]
|
||||
with open(r'.\format.fmt', 'w') as fmt:
|
||||
fmt.write(FormatToSave)
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
Reference in New Issue
Block a user