Am nevoie să fac integrare cu euplatesc.ro într-un proiect scris în Flask, aşa că mi-am pus ambiţia să fac calculul pentru fp_hash într-o singură linie. Probabil după câteva zile n-o să înţeleg nici eu ce naiba face codul ăla
Nu ştiu cum se numeşte construcţia aia inline a array-ului, dar e un syntactic sugar foarte cool.
Poți scoate parantezele drepte și (1) o să meargă și (2) o să fie ceva mai eficient că nu trebuie sa aloci o lista nouă. Creezi un iterator cum ar veni cu o expresie de tipul comprehension.
TBF, nu-i cod deosebit de greoi. As zice poate chiar idiomatic pentru Python. După ce te obișnuiești ceva cu limbajul, că altfel arata ascii-art-ish.
Aaa, interesant, deci ăla e un tip de fapt. Iniţial mă gândeam că aş putea construi direct un string în felul ăsta (fără să fac array la care să fac join), dar aparent ceream pare mult.
L.E.
Ca să înţeleagă şi cei care citesc în viitor despre ce vorbim, expresia ar arăta aşa:
fp_hash = hmac.new(bytes.fromhex(key), "".join(str(len(item)) + item if item else "-" for item in data.values()).encode("utf-8"), "md5").hexdigest().upper()