mdedonno1337 / NIST

Legacy Python 2 library to read and write ANSI NIST files (from Type-01 to Type-99 ; fingerprint oriented).
GNU General Public License v3.0
14 stars 4 forks source link

Python 3 #4

Closed mdedonno1337 closed 3 years ago

mdedonno1337 commented 3 years ago

Hi Marco,

Ayant besoin de la version en Python 3, j’ai travaillé dessus et j’ai à présent une solution fonctionnelle pour mes cas d’utilisation (visage, trace, doigts dans type 14). J’insiste sur ce dernier point car je ne peux pas dire que le code est entièrement validé.

J’ai choisi de rester autant que possible en mode string sachant que les strings de Python 3 gère l’unicode. Je garde les données binaires (image) en binaire et je ne fais la conversion en texte (hexa) que lors de l’affichage. Si vous utilisez BeyondCompare pour voir les différences, vous verrez qu’il y en a peu. J’ai corrigé les cas d’utilisation injustifiée de list quand l’énumérateur est utilisé dans une boucle ou un test d’appartenance. Je les ai laissé dans un cas au moins où une liste est modifiée alors qu’on itère dessus: ce serait à revoir mais je n’ai pas encore réfléchi comment faire. Je suis comme vous, j’ai un peu d’autres urgences :-)

Faites-moi part de vos commentaires!

Cordialement, JEan-Pierre

Le 20 déc. 2020 à 21:13, Marco De Donno notifications@github.com a écrit :

I have a WIP branch here for python3. I will check the field 13.005. Regading the WSQ implementation, my WSQ lib does it (as least for Windows and Linux, based upon the binaries from NBIS). You have the one from IDEMIA (https://github.com/idemia/python-wsq https://github.com/idemia/python-wsq) that imports and compile the NBIS binaries. My docker version of the NBIS does it as well (https://github.com/mdedonno1337/docker-NBIS https://github.com/mdedonno1337/docker-NBIS); docker is the best way I have to share code with non Linux users, in particular the Mac users at work.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mdedonno1337/NIST/issues/3#issuecomment-748665175, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB2773TRJBJMD5YNTUWNA53SVZLHLANCNFSM4U7K64JA.

Originally posted by @Picard2200 in https://github.com/mdedonno1337/NIST/issues/3#issuecomment-750041786

mdedonno1337 commented 3 years ago

Bonjour @Picard2200 Merci bien pour cette contribution. Cette contribution ne semble pas disponible sur votre compte github. Serait-il possible d'avoir un lien vers le répo, que je me regarde ? Merci

Picard2200 commented 3 years ago

En fait, je n’ai rien fait sur mon répo GitHub. Je n’y connais pas grand chose en github (je m’en sers juste en local) et je ne voulais pas polluer votre environnement. J’ai gardé la structure de votre répertoire NIST. Ma contribution est gracieuse: c’est ma manière de vous remercier pour tout ce que vous avez fait.

Le 23 déc. 2020 à 11:34, Marco De Donno notifications@github.com a écrit :

Bonjour @Picard2200 https://github.com/Picard2200 Merci bien pour cette contribution. Cette contribution ne semble pas disponible sur votre compte github. Serait-il possible d'avoir un lien vers le répo, que je me regarde ? Merci

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mdedonno1337/NIST/issues/4#issuecomment-750111131, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB2773UBLFQDK4VTXMD5DLLSWHBS7ANCNFSM4VG2DPFQ.

mdedonno1337 commented 3 years ago

J'y jetterais bien volontiers un oeil. Deux solutions sont possibles: la première pousser votre code sur github (fork de mon dépôt, download du fork (votre version de mon code) sur votre ordi, copier-coller les modifications, commiter, et push), ou me les envoyer par mail (un zip/tar c'est super)).

Picard2200 commented 3 years ago

Je vous ai envoyé dans mon mail initial (celui de 10h39) le fichier NIST.7z en pièce jointe Vous n’avez rien reçu ?

Le 23 déc. 2020 à 12:52, Marco De Donno notifications@github.com a écrit :

J'y jetterais bien volontiers un oeil. Deux solutions sont possibles: la première pousser votre code sur github (fork de mon dépôt, download du fork (votre version de mon code) sur votre ordi, copier-coller les modifications, commiter, et push), ou me les envoyer par mail (un zip/tar c'est super)).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mdedonno1337/NIST/issues/4#issuecomment-750212379, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB2773TJFPGO3LTTDW37C5DSWHKYXANCNFSM4VG2DPFQ.

mdedonno1337 commented 3 years ago

Nope. On dirait que la réponse via mail ne supporte pas de pièces jointes. Je vous serais gréé de me le renvoyer directement par mail, merci bien.

Picard2200 commented 3 years ago

OK! Quel est votre email ? Sinon je vais essayer le fork (instructions bienvenues) mais cela me prendre un peu plus de temps.

Le 23 déc. 2020 à 13:35, Marco De Donno notifications@github.com a écrit :

Nope. On dirait que la réponse via mail ne supporte pas de pièces jointes. Je vous serais gréé de me le renvoyer directement par mail, merci bien.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mdedonno1337/NIST/issues/4#issuecomment-750267784, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB2773TNKRDCO3WLGJXITUTSWHPY5ANCNFSM4VG2DPFQ.

mdedonno1337 commented 3 years ago

mdedonno1337@gmail.com

Picard2200 commented 3 years ago

Bonjour Marco,

J’ai une nouvelle version en Python 3 gérant à présent le parsing des records NIST, fonction non opérationnelle sur la version précédente. J’ai hésité sur l’approche à suivre: une approche exploitant le champ LEN de chaque record (ce que fait BioCTS par exemple) une approche basée sur l’extraction des séparateurs de records et de champs. La première approche a l’avantage qu’on n’a pas de question à se poser sur le parsing des champs x.999. L’extraction des champs est simple en utilisant les regex. La deuxième approche a l’avantage de minimiser l’impact par rapport à votre code: elle permet aussi de déterminer tous les records pour lesquels il y aurait une erreur de longueur. Son inconvénient est que séparer les champs sur la base d’un caractère qui peut se retrouver dans une structure binaire et qui oblige donc à une approche de reconstruction.

J’ai choisi cette 2ième approche et masquer la reconstruction via l’utilisation de générateurs: 1 pour les records séparés par , 1 pour les champs séparés par

Dans ma version, je supprime l’ajout forcé de champs dépendants comme c’est le cas pour le type 14 où en l’absence d’image, certains champs ne doivent pas être renseignés. Je ne me suis pas occupé du cas spécial des records de Type-4 car pour l’instant, je n’en ai pas besoin.

Si cette version vous intéresse, faites-le moi savoir et je vous l’enverrais.

Cordialement, Jean-Pierre

Le 7 janv. 2021 à 23:32, Marco De Donno notifications@github.com a écrit :

Closed #4 https://github.com/mdedonno1337/NIST/issues/4.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mdedonno1337/NIST/issues/4#event-4181985405, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB2773UY2HMWK3TBJ3CAWH3SYYZBVANCNFSM4VG2DPFQ.