Update
This commit is contained in:
parent
f05ee8709f
commit
916525e86f
1 changed files with 23 additions and 15 deletions
38
main.py
38
main.py
|
|
@ -71,25 +71,29 @@ def vergleiche(respuesta, expecta):
|
|||
respuesta = '¡' + respuesta[1:]
|
||||
if respuesta[0] == '?' and expecta[0] == '¿':
|
||||
respuesta = '¿' + respuesta[1:]
|
||||
expecta = re.sub(' \((irr.|pl.)\)', '', expecta)
|
||||
respuesta = unicodedata.normalize('NFD', respuesta)
|
||||
expecta = unicodedata.normalize('NFD', expecta)
|
||||
if respuesta == expecta: return 0
|
||||
respuesta = re.sub('[!?¿¡…. ]', '', respuesta)
|
||||
expecta = re.sub('[!?¿¡…. ]', '', expecta)
|
||||
if respuesta == expecta: return 1
|
||||
respuesta = respuesta.encode('ASCII', 'ignore').decode('ASCII')
|
||||
expecta = expecta.encode('ASCII', 'ignore').decode('ASCII')
|
||||
if respuesta == expecta: return 1
|
||||
if respuesta == expecta: return 2
|
||||
respuesta = respuesta.casefold()
|
||||
expecta = expecta.casefold()
|
||||
if respuesta == expecta: return 2
|
||||
respuesta = re.sub('\W', '', respuesta)
|
||||
expecta = re.sub('\W', '', expecta)
|
||||
if respuesta == expecta: return 3
|
||||
return 4
|
||||
|
||||
assert vergleiche("e", "e") == 0
|
||||
assert vergleiche("é", "e") == 1
|
||||
assert vergleiche("Bien", "bien") == 2
|
||||
assert vergleiche("é", "e") == 2
|
||||
assert vergleiche("Bien", "bien") == 3
|
||||
assert vergleiche("quétal", "Qué tal") == 3
|
||||
assert vergleiche("Buenas Noches", "¡Buenas noches!") == 3
|
||||
assert vergleiche("Buenas noches", "¡Buenas noches!") == 1
|
||||
assert vergleiche("ser", "ser (irr.)") == 0
|
||||
assert vergleiche("hacer algo", "hacer (irr.) algo") == 0
|
||||
assert vergleiche("padres", "padres (pl.)") == 0
|
||||
|
||||
class Resultado:
|
||||
BIEN = 1
|
||||
|
|
@ -128,7 +132,7 @@ def einzelne_abfrage(palabra, status):
|
|||
return Resultado.ADIOS
|
||||
return Resultado.BIEN if bien else Resultado.MAL
|
||||
|
||||
def abfrage(parser):
|
||||
def abfrage(parser, quiero_unidad):
|
||||
random.seed()
|
||||
try:
|
||||
with open(VOKABELN_FILE, 'r') as f:
|
||||
|
|
@ -142,28 +146,29 @@ def abfrage(parser):
|
|||
return
|
||||
|
||||
unidad = False
|
||||
unidad_no = -1
|
||||
paso = False
|
||||
cur_palabras = False
|
||||
bien = 0
|
||||
mal = 0
|
||||
for palabra in palabras:
|
||||
if paso != palabra['paso']:
|
||||
if cur_palabras != False:
|
||||
if cur_palabras != False and (quiero_unidad == None or quiero_unidad == unidad_no):
|
||||
c = [len(cur_palabras[x]) for x in cur_palabras]
|
||||
print(f"{bcolors.BOLD}{unidad}{bcolors.ENDC}: {paso} (",end="")
|
||||
print(*c, sep="/", end=")")
|
||||
print()
|
||||
for n in range(5): # 1..4, no 5
|
||||
random.shuffle(cur_palabras[n])
|
||||
for palabra in cur_palabras[n]:
|
||||
s = status.get(palabra['id'], 0)
|
||||
match einzelne_abfrage(palabra, s):
|
||||
for a_palabra in cur_palabras[n]:
|
||||
s = status.get(a_palabra['id'], 0)
|
||||
match einzelne_abfrage(a_palabra, s):
|
||||
case Resultado.BIEN:
|
||||
status[palabra['id']] = s + 1
|
||||
status[a_palabra['id']] = s + 1
|
||||
bien+=1
|
||||
case Resultado.MAL:
|
||||
if s > 0:
|
||||
status[palabra['id']] = s - 1
|
||||
status[a_palabra['id']] = s - 1
|
||||
mal+=1
|
||||
continue
|
||||
case Resultado.ADIOS:
|
||||
|
|
@ -178,6 +183,8 @@ def abfrage(parser):
|
|||
os.replace(STATUS_FILE + '.new', STATUS_FILE)
|
||||
|
||||
cur_palabras = {0: [], 1: [], 2: [], 3: [], 4: [], 5: []}
|
||||
if unidad != palabra['unidad']:
|
||||
unidad_no += 1
|
||||
unidad = palabra['unidad']
|
||||
paso = palabra['paso']
|
||||
|
||||
|
|
@ -188,6 +195,7 @@ default_data_file = os.environ['PWD'] + '/assets/amf/vokabelTrainer147.amf'
|
|||
parser.add_argument('--import-data', type=str, help="Path to assets", metavar="DIR")
|
||||
default_status_file = os.environ['HOME'] + '/klett/1266/vokabeltrainerData147'
|
||||
parser.add_argument('--import-status', type=str, help="Path to AMF File, defaults to " + default_status_file, metavar="FILE", nargs='?', const=default_status_file)
|
||||
parser.add_argument('--unidad', type=int)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.import_data:
|
||||
|
|
@ -196,4 +204,4 @@ if args.import_data:
|
|||
elif args.import_status:
|
||||
import_status(args.import_status)
|
||||
else:
|
||||
abfrage(parser)
|
||||
abfrage(parser, args.unidad)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue