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:]
|
respuesta = '¡' + respuesta[1:]
|
||||||
if respuesta[0] == '?' and expecta[0] == '¿':
|
if respuesta[0] == '?' and expecta[0] == '¿':
|
||||||
respuesta = '¿' + respuesta[1:]
|
respuesta = '¿' + respuesta[1:]
|
||||||
|
expecta = re.sub(' \((irr.|pl.)\)', '', expecta)
|
||||||
respuesta = unicodedata.normalize('NFD', respuesta)
|
respuesta = unicodedata.normalize('NFD', respuesta)
|
||||||
expecta = unicodedata.normalize('NFD', expecta)
|
expecta = unicodedata.normalize('NFD', expecta)
|
||||||
if respuesta == expecta: return 0
|
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')
|
respuesta = respuesta.encode('ASCII', 'ignore').decode('ASCII')
|
||||||
expecta = expecta.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()
|
respuesta = respuesta.casefold()
|
||||||
expecta = expecta.casefold()
|
expecta = expecta.casefold()
|
||||||
if respuesta == expecta: return 2
|
|
||||||
respuesta = re.sub('\W', '', respuesta)
|
|
||||||
expecta = re.sub('\W', '', expecta)
|
|
||||||
if respuesta == expecta: return 3
|
if respuesta == expecta: return 3
|
||||||
return 4
|
return 4
|
||||||
|
|
||||||
assert vergleiche("e", "e") == 0
|
assert vergleiche("e", "e") == 0
|
||||||
assert vergleiche("é", "e") == 1
|
assert vergleiche("é", "e") == 2
|
||||||
assert vergleiche("Bien", "bien") == 2
|
assert vergleiche("Bien", "bien") == 3
|
||||||
assert vergleiche("quétal", "Qué tal") == 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:
|
class Resultado:
|
||||||
BIEN = 1
|
BIEN = 1
|
||||||
|
|
@ -128,7 +132,7 @@ def einzelne_abfrage(palabra, status):
|
||||||
return Resultado.ADIOS
|
return Resultado.ADIOS
|
||||||
return Resultado.BIEN if bien else Resultado.MAL
|
return Resultado.BIEN if bien else Resultado.MAL
|
||||||
|
|
||||||
def abfrage(parser):
|
def abfrage(parser, quiero_unidad):
|
||||||
random.seed()
|
random.seed()
|
||||||
try:
|
try:
|
||||||
with open(VOKABELN_FILE, 'r') as f:
|
with open(VOKABELN_FILE, 'r') as f:
|
||||||
|
|
@ -142,28 +146,29 @@ def abfrage(parser):
|
||||||
return
|
return
|
||||||
|
|
||||||
unidad = False
|
unidad = False
|
||||||
|
unidad_no = -1
|
||||||
paso = False
|
paso = False
|
||||||
cur_palabras = False
|
cur_palabras = False
|
||||||
bien = 0
|
bien = 0
|
||||||
mal = 0
|
mal = 0
|
||||||
for palabra in palabras:
|
for palabra in palabras:
|
||||||
if paso != palabra['paso']:
|
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]
|
c = [len(cur_palabras[x]) for x in cur_palabras]
|
||||||
print(f"{bcolors.BOLD}{unidad}{bcolors.ENDC}: {paso} (",end="")
|
print(f"{bcolors.BOLD}{unidad}{bcolors.ENDC}: {paso} (",end="")
|
||||||
print(*c, sep="/", end=")")
|
print(*c, sep="/", end=")")
|
||||||
print()
|
print()
|
||||||
for n in range(5): # 1..4, no 5
|
for n in range(5): # 1..4, no 5
|
||||||
random.shuffle(cur_palabras[n])
|
random.shuffle(cur_palabras[n])
|
||||||
for palabra in cur_palabras[n]:
|
for a_palabra in cur_palabras[n]:
|
||||||
s = status.get(palabra['id'], 0)
|
s = status.get(a_palabra['id'], 0)
|
||||||
match einzelne_abfrage(palabra, s):
|
match einzelne_abfrage(a_palabra, s):
|
||||||
case Resultado.BIEN:
|
case Resultado.BIEN:
|
||||||
status[palabra['id']] = s + 1
|
status[a_palabra['id']] = s + 1
|
||||||
bien+=1
|
bien+=1
|
||||||
case Resultado.MAL:
|
case Resultado.MAL:
|
||||||
if s > 0:
|
if s > 0:
|
||||||
status[palabra['id']] = s - 1
|
status[a_palabra['id']] = s - 1
|
||||||
mal+=1
|
mal+=1
|
||||||
continue
|
continue
|
||||||
case Resultado.ADIOS:
|
case Resultado.ADIOS:
|
||||||
|
|
@ -178,6 +183,8 @@ def abfrage(parser):
|
||||||
os.replace(STATUS_FILE + '.new', STATUS_FILE)
|
os.replace(STATUS_FILE + '.new', STATUS_FILE)
|
||||||
|
|
||||||
cur_palabras = {0: [], 1: [], 2: [], 3: [], 4: [], 5: []}
|
cur_palabras = {0: [], 1: [], 2: [], 3: [], 4: [], 5: []}
|
||||||
|
if unidad != palabra['unidad']:
|
||||||
|
unidad_no += 1
|
||||||
unidad = palabra['unidad']
|
unidad = palabra['unidad']
|
||||||
paso = palabra['paso']
|
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")
|
parser.add_argument('--import-data', type=str, help="Path to assets", metavar="DIR")
|
||||||
default_status_file = os.environ['HOME'] + '/klett/1266/vokabeltrainerData147'
|
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('--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()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.import_data:
|
if args.import_data:
|
||||||
|
|
@ -196,4 +204,4 @@ if args.import_data:
|
||||||
elif args.import_status:
|
elif args.import_status:
|
||||||
import_status(args.import_status)
|
import_status(args.import_status)
|
||||||
else:
|
else:
|
||||||
abfrage(parser)
|
abfrage(parser, args.unidad)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue