mirror of
https://gitlab.os-k.eu/neox/CNIRevelator.git
synced 2023-08-25 14:03:10 +02:00
756 lines
18 KiB
Python
756 lines
18 KiB
Python
|
"""
|
|||
|
********************************************************************************
|
|||
|
* CNIRevelator *
|
|||
|
* *
|
|||
|
* Desc: MRZ data dictionnary for CNIRevelator analyzer and *
|
|||
|
* functions to analyze these data *
|
|||
|
* *
|
|||
|
* Copyright © 2018-2019 Adrien Bourmault (neox95) *
|
|||
|
* *
|
|||
|
* This file is part of CNIRevelator. *
|
|||
|
* *
|
|||
|
* CNIRevelator is free software: you can redistribute it and/or modify *
|
|||
|
* it under the terms of the GNU General Public License as published by *
|
|||
|
* the Free Software Foundation, either version 3 of the License, or *
|
|||
|
* any later version. *
|
|||
|
* *
|
|||
|
* CNIRevelator is distributed in the hope that it will be useful, *
|
|||
|
* but WITHOUT ANY WARRANTY*without even the implied warranty of *
|
|||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|||
|
* GNU General Public License for more details. *
|
|||
|
* *
|
|||
|
* You should have received a copy of the GNU General Public License *
|
|||
|
* along with CNIRevelator. If not, see <https:*www.gnu.org/licenses/>. *
|
|||
|
********************************************************************************
|
|||
|
"""
|
|||
|
|
|||
|
## SEX CODES
|
|||
|
sexcode = {'M':'Homme', 'F':'Femme', 'X':'Non spécifié'}
|
|||
|
|
|||
|
## COUNTRY CODES
|
|||
|
landcode2 =
|
|||
|
{
|
|||
|
AW: "Aruba",
|
|||
|
AF: "Afghanistan",
|
|||
|
AO: "Angola",
|
|||
|
AI: "Anguilla",
|
|||
|
AL: "Albanie",
|
|||
|
AD: "Andorre",
|
|||
|
AE: "Emirats arabes unis",
|
|||
|
AR: "Argentine",
|
|||
|
AM: "Arménie",
|
|||
|
AS: "Samoa américaines",
|
|||
|
AQ: "Antarctique",
|
|||
|
TF: "Terres australes et antarctiques françaises",
|
|||
|
AG: "Antigua-et-Barbuda",
|
|||
|
AU: "Australie",
|
|||
|
AT: "Autriche",
|
|||
|
AZ: "Azerbaidjan",
|
|||
|
BI: "Burundi",
|
|||
|
BE: "Belgique",
|
|||
|
BJ: "Benin",
|
|||
|
BQ: "Pays-Bas caribéens",
|
|||
|
BF: "Burkina Faso",
|
|||
|
BD: "Bangladesh",
|
|||
|
BG: "Bulgarie",
|
|||
|
BH: "Bahrein",
|
|||
|
BS: "Bahamas",
|
|||
|
BA: "Bosnie-Herzegovine",
|
|||
|
BL: "Saint-Barthélemy",
|
|||
|
BY: "Bielorussie",
|
|||
|
BZ: "Belize",
|
|||
|
BM: "Bermudes",
|
|||
|
BO: "Bolivie",
|
|||
|
BR: "Brésil",
|
|||
|
BB: "Barbade",
|
|||
|
BN: "Brunei",
|
|||
|
BT: "Bhoutan",
|
|||
|
BW: "Botswana",
|
|||
|
CF: "République Centrafricaine",
|
|||
|
CA: "Canada",
|
|||
|
CC: "Îles Cocos",
|
|||
|
CH: "Suisse",
|
|||
|
CL: "Chili",
|
|||
|
CN: "Chine",
|
|||
|
CI: "Côte d'Ivoire",
|
|||
|
CM: "Cameroun",
|
|||
|
CD: "Congo (République démocratique)",
|
|||
|
CG: "Congo (République)",
|
|||
|
CK: "Îles Cook",
|
|||
|
CO: "Colombie",
|
|||
|
KM: "Comores",
|
|||
|
CV: "Cap-Vert",
|
|||
|
CR: "Costa Rica",
|
|||
|
CU: "Cuba",
|
|||
|
CW: "Curaçao",
|
|||
|
CX: "Île Christmas",
|
|||
|
KY: "Caimans",
|
|||
|
CY: "Chypre",
|
|||
|
CZ: "Tchéquie",
|
|||
|
DE: "Allemagne",
|
|||
|
DJ: "Djibouti",
|
|||
|
DM: "Dominique",
|
|||
|
DK: "Danemark",
|
|||
|
DO: "République dominicaine",
|
|||
|
DZ: "Algérie",
|
|||
|
EC: "Equateur",
|
|||
|
EG: "Egypte",
|
|||
|
ER: "Erythrée",
|
|||
|
EH: "Sahara occidental",
|
|||
|
ES: "Espagne",
|
|||
|
EE: "Estonie",
|
|||
|
ET: "Ethiopie",
|
|||
|
FI: "Finlande",
|
|||
|
FJ: "Fidji",
|
|||
|
FK: "Îles Malouines",
|
|||
|
FR: "France",
|
|||
|
FO: "Féroé",
|
|||
|
FM: "Micronésie",
|
|||
|
GA: "Gabon",
|
|||
|
GB: "Royaume-Uni",
|
|||
|
GE: "Géorgie",
|
|||
|
GG: "Guernesey",
|
|||
|
GH: "Ghana",
|
|||
|
GI: "Gibraltar",
|
|||
|
GN: "Guinée",
|
|||
|
GP: "Guadeloupe",
|
|||
|
GM: "Gambie",
|
|||
|
GW: "Guinée-Bissau",
|
|||
|
GQ: "Guinée équatoriale",
|
|||
|
GR: "Grèce",
|
|||
|
GD: "Grenade",
|
|||
|
GL: "Groenland",
|
|||
|
GT: "Guatemala",
|
|||
|
GF: "Guyane",
|
|||
|
GU: "Guam",
|
|||
|
GY: "Guyana",
|
|||
|
HK: "Hong Kong",
|
|||
|
HN: "Honduras",
|
|||
|
HR: "Croatie",
|
|||
|
HT: "Haïti",
|
|||
|
HU: "Hongrie",
|
|||
|
ID: "Indonésie",
|
|||
|
IM: "Île de Man",
|
|||
|
IN: "Inde",
|
|||
|
IO: "Territoire britannique de l'océan Indien",
|
|||
|
IE: "Irlande",
|
|||
|
IR: "Irak",
|
|||
|
IQ: "Iran",
|
|||
|
IS: "Islande",
|
|||
|
IL: "Israël",
|
|||
|
IT: "Italie",
|
|||
|
JM: "Jamaïque",
|
|||
|
JE: "Jersey",
|
|||
|
JO: "Jordanie",
|
|||
|
JP: "Japon",
|
|||
|
KZ: "Kazakhstan",
|
|||
|
KE: "Kenya",
|
|||
|
KG: "Kirghizistan",
|
|||
|
KH: "Cambodge",
|
|||
|
KI: "Kiribati",
|
|||
|
KN: "Saint-Christophe-et-Niévès",
|
|||
|
KR: "Corée du Sud",
|
|||
|
KW: "Koweït",
|
|||
|
LA: "Laos",
|
|||
|
LB: "Liban",
|
|||
|
LR: "Liberia",
|
|||
|
LY: "Libye",
|
|||
|
LC: "Sainte-Lucie",
|
|||
|
LI: "Liechtenstein",
|
|||
|
LK: "Sri Lanka",
|
|||
|
LS: "Lesotho",
|
|||
|
LT: "Lituanie",
|
|||
|
LU: "Luxembourg",
|
|||
|
LV: "Lettonie",
|
|||
|
MO: "Macao",
|
|||
|
MF: "Sint-Maarten",
|
|||
|
MA: "Maroc",
|
|||
|
MC: "Monaco",
|
|||
|
MD: "Moldavie",
|
|||
|
MG: "Madagascar",
|
|||
|
MV: "Maldives",
|
|||
|
MX: "Mexique",
|
|||
|
MH: "Marshall",
|
|||
|
MK: "Macedoine",
|
|||
|
ML: "Mali",
|
|||
|
MT: "Malte",
|
|||
|
MM: "Birmanie",
|
|||
|
ME: "Monténégro",
|
|||
|
MN: "Mongolie",
|
|||
|
MP: "Îles Mariannes du Nord",
|
|||
|
MZ: "Mozambique",
|
|||
|
MR: "Mauritanie",
|
|||
|
MS: "Montserrat",
|
|||
|
MQ: "Martinique",
|
|||
|
MU: "Maurice",
|
|||
|
MW: "Malawi",
|
|||
|
MY: "Malaisie",
|
|||
|
YT: "Mayotte",
|
|||
|
NA: "Namibie",
|
|||
|
NC: "Nouvelle-Calédonie",
|
|||
|
NE: "Niger",
|
|||
|
NF: "Île Norfolk",
|
|||
|
NG: "Nigeria",
|
|||
|
NI: "Nicaragua",
|
|||
|
NU: "Niue",
|
|||
|
NL: "Pays-Bas",
|
|||
|
NO: "Norvège",
|
|||
|
NP: "Nepal",
|
|||
|
NR: "Nauru",
|
|||
|
NZ: "Nouvelle-Zélande",
|
|||
|
OM: "Oman",
|
|||
|
PK: "Pakistan",
|
|||
|
PA: "Panama",
|
|||
|
PN: "Îles Pitcairn",
|
|||
|
PE: "Pérou",
|
|||
|
PH: "Philippines",
|
|||
|
PW: "Palaos",
|
|||
|
PG: "Papouasie-Nouvelle-Guinée",
|
|||
|
PL: "Pologne",
|
|||
|
PR: "Porto Rico",
|
|||
|
KP: "Corée du Nord",
|
|||
|
PT: "Portugal",
|
|||
|
PY: "Paraguay",
|
|||
|
PS: "Palestine",
|
|||
|
PF: "Polynésie française",
|
|||
|
QA: "Qatar",
|
|||
|
RE: "Réunion",
|
|||
|
RO: "Roumanie",
|
|||
|
RU: "Russie",
|
|||
|
RW: "Rwanda",
|
|||
|
SA: "Arabie saoudite",
|
|||
|
SD: "Soudan",
|
|||
|
SN: "Sénégal",
|
|||
|
SG: "Singapour",
|
|||
|
GS: "Georgie du Sud-et-les iles Sandwich du Sud",
|
|||
|
SH: "Sainte-Hélène, Ascension et Tristan da Cunha",
|
|||
|
SJ: "Svalbard et île Jan Mayen",
|
|||
|
SB: "Salomon",
|
|||
|
SL: "Sierra Leone",
|
|||
|
SV: "Salvador",
|
|||
|
SM: "Saint-Marin",
|
|||
|
SO: "Somalie",
|
|||
|
PM: "Saint-Pierre-et-Miquelon",
|
|||
|
RS: "Serbie",
|
|||
|
SS: "Soudan du Sud",
|
|||
|
ST: "Sao Tomé-et-Principe",
|
|||
|
SR: "Suriname",
|
|||
|
SK: "Slovaquie",
|
|||
|
SI: "Slovénie",
|
|||
|
SE: "Suède",
|
|||
|
SZ: "eSwatani",
|
|||
|
SX: "Saint-Martin ",
|
|||
|
SC: "Seychelles",
|
|||
|
SY: "Syrie",
|
|||
|
TC: "Îles Turques-et-Caïques",
|
|||
|
TD: "Tchad",
|
|||
|
TG: "Togo",
|
|||
|
TH: "Thaïlande",
|
|||
|
TJ: "Tadjikistan",
|
|||
|
TK: "Tokelau",
|
|||
|
TM: "Turkmenistan",
|
|||
|
TL: "Timor oriental",
|
|||
|
TO: "Tonga",
|
|||
|
TT: "Trinité-et-Tobago",
|
|||
|
TN: "Tunisie",
|
|||
|
TR: "Turquie",
|
|||
|
TV: "Tuvalu",
|
|||
|
TW: "Taiwan",
|
|||
|
TZ: "Tanzanie",
|
|||
|
UG: "Ouganda",
|
|||
|
UA: "Ukraine",
|
|||
|
UY: "Uruguay",
|
|||
|
US: "Etats-Unis",
|
|||
|
UZ: "Ouzbékistan",
|
|||
|
VA: "Saint-Siège (État de la Cité du Vatican)",
|
|||
|
VC: "Saint-Vincent-et-les-Grenadines",
|
|||
|
VE: "Venezuela",
|
|||
|
VG: "Îles Vierges britanniques",
|
|||
|
VI: "Îles Vierges des États-Unis",
|
|||
|
VN: "Viêt Nam",
|
|||
|
VU: "Vanuatu",
|
|||
|
WF: "Wallis-et-Futuna",
|
|||
|
WS: "Samoa",
|
|||
|
XK: "Kosovo",
|
|||
|
YE: "Yémen",
|
|||
|
ZA: "Afrique du Sud",
|
|||
|
ZM: "Zambie",
|
|||
|
ZW: "Zimbabwe"
|
|||
|
}
|
|||
|
|
|||
|
landcode3 =
|
|||
|
{
|
|||
|
ABW: "Aruba",
|
|||
|
AFG: "Afghanistan",
|
|||
|
AGO: "Angola",
|
|||
|
AIA: "Anguilla",
|
|||
|
ALB: "Albanie",
|
|||
|
AND: "Andorre",
|
|||
|
ARE: "Emirats arabes unis",
|
|||
|
ARG: "Argentine",
|
|||
|
ARM: "Arménie",
|
|||
|
ASM: "Samoa américaines",
|
|||
|
ATA: "Antarctique",
|
|||
|
ATF: "Terres australes et antarctiques françaises",
|
|||
|
ATG: "Antigua-et-Barbuda",
|
|||
|
AUS: "Australie",
|
|||
|
AUT: "Autriche",
|
|||
|
AZE: "Azerbaidjan",
|
|||
|
BDI: "Burundi",
|
|||
|
BEL: "Belgique",
|
|||
|
BEN: "Benin",
|
|||
|
BES: "Pays-Bas caribéens",
|
|||
|
BFA: "Burkina Faso",
|
|||
|
BGD: "Bangladesh",
|
|||
|
BGR: "Bulgarie",
|
|||
|
BHR: "Bahrein",
|
|||
|
BHS: "Bahamas",
|
|||
|
BIH: "Bosnie-Herzegovine",
|
|||
|
BLM: "Saint-Barthélemy",
|
|||
|
BLR: "Bielorussie",
|
|||
|
BLZ: "Belize",
|
|||
|
BMU: "Bermudes",
|
|||
|
BOL: "Bolivie",
|
|||
|
BRA: "Brésil",
|
|||
|
BRB: "Barbade",
|
|||
|
BRN: "Brunei",
|
|||
|
BTN: "Bhoutan",
|
|||
|
BWA: "Botswana",
|
|||
|
CAF: "République Centrafricaine",
|
|||
|
CAN: "Canada",
|
|||
|
CCK: "Îles Cocos",
|
|||
|
CHE: "Suisse",
|
|||
|
CHL: "Chili",
|
|||
|
CHN: "Chine",
|
|||
|
CIV: "Côte d'Ivoire",
|
|||
|
CMR: "Cameroun",
|
|||
|
COD: "Congo (République démocratique)",
|
|||
|
COG: "Congo (République)",
|
|||
|
COK: "Îles Cook",
|
|||
|
COL: "Colombie",
|
|||
|
COM: "Comores",
|
|||
|
CPV: "Cap-Vert",
|
|||
|
CRI: "Costa Rica",
|
|||
|
CUB: "Cuba",
|
|||
|
CUW: "Curaçao",
|
|||
|
CXR: "Île Christmas",
|
|||
|
CYM: "Caimans",
|
|||
|
CYP: "Chypre",
|
|||
|
CZE: "Tchéquie",
|
|||
|
DEU: "Allemagne",
|
|||
|
DJI: "Djibouti",
|
|||
|
DMA: "Dominique",
|
|||
|
DNK: "Danemark",
|
|||
|
DOM: "République dominicaine",
|
|||
|
DZA: "Algérie",
|
|||
|
ECU: "Equateur",
|
|||
|
EGY: "Egypte",
|
|||
|
ERI: "Erythrée",
|
|||
|
ESH: "Sahara occidental",
|
|||
|
ESP: "Espagne",
|
|||
|
EST: "Estonie",
|
|||
|
ETH: "Ethiopie",
|
|||
|
FIN: "Finlande",
|
|||
|
FJI: "Fidji",
|
|||
|
FLK: "Îles Malouines",
|
|||
|
FRA: "France",
|
|||
|
FRO: "Féroé",
|
|||
|
FSM: "Micronésie",
|
|||
|
GAB: "Gabon",
|
|||
|
GBR: "Royaume-Uni",
|
|||
|
GEO: "Géorgie",
|
|||
|
GGY: "Guernesey",
|
|||
|
GHA: "Ghana",
|
|||
|
GIB: "Gibraltar",
|
|||
|
GIN: "Guinée",
|
|||
|
GLP: "Guadeloupe",
|
|||
|
GMB: "Gambie",
|
|||
|
GNB: "Guinée-Bissau",
|
|||
|
GNQ: "Guinée équatoriale",
|
|||
|
GRC: "Grèce",
|
|||
|
GRD: "Grenade",
|
|||
|
GRL: "Groenland",
|
|||
|
GTM: "Guatemala",
|
|||
|
GUF: "Guyane",
|
|||
|
GUM: "Guam",
|
|||
|
GUY: "Guyana",
|
|||
|
HKG: "Hong Kong",
|
|||
|
HND: "Honduras",
|
|||
|
HRV: "Croatie",
|
|||
|
HTI: "Haïti",
|
|||
|
HUN: "Hongrie",
|
|||
|
IDN: "Indonésie",
|
|||
|
IMN: "Île de Man",
|
|||
|
IND: "Inde",
|
|||
|
IOT: "Territoire britannique de l'océan Indien",
|
|||
|
IRL: "Irlande",
|
|||
|
IRN: "Irak",
|
|||
|
IRQ: "Iran",
|
|||
|
ISL: "Islande",
|
|||
|
ISR: "Israël",
|
|||
|
ITA: "Italie",
|
|||
|
JAM: "Jamaïque",
|
|||
|
JEY: "Jersey",
|
|||
|
JOR: "Jordanie",
|
|||
|
JPN: "Japon",
|
|||
|
KAZ: "Kazakhstan",
|
|||
|
KEN: "Kenya",
|
|||
|
KGZ: "Kirghizistan",
|
|||
|
KHM: "Cambodge",
|
|||
|
KIR: "Kiribati",
|
|||
|
KNA: "Saint-Christophe-et-Niévès",
|
|||
|
KOR: "Corée du Sud",
|
|||
|
KWT: "Koweït",
|
|||
|
LAO: "Laos",
|
|||
|
LBN: "Liban",
|
|||
|
LBR: "Liberia",
|
|||
|
LBY: "Libye",
|
|||
|
LCA: "Sainte-Lucie",
|
|||
|
LIE: "Liechtenstein",
|
|||
|
LKA: "Sri Lanka",
|
|||
|
LSO: "Lesotho",
|
|||
|
LTU: "Lituanie",
|
|||
|
LUX: "Luxembourg",
|
|||
|
LVA: "Lettonie",
|
|||
|
MAC: "Macao",
|
|||
|
MAF: "Sint-Maarten",
|
|||
|
MAR: "Maroc",
|
|||
|
MCO: "Monaco",
|
|||
|
MDA: "Moldavie",
|
|||
|
MDG: "Madagascar",
|
|||
|
MDV: "Maldives",
|
|||
|
MEX: "Mexique",
|
|||
|
MHL: "Marshall",
|
|||
|
MKD: "Macedoine",
|
|||
|
MLI: "Mali",
|
|||
|
MLT: "Malte",
|
|||
|
MMR: "Birmanie",
|
|||
|
MNE: "Monténégro",
|
|||
|
MNG: "Mongolie",
|
|||
|
MNP: "Îles Mariannes du Nord",
|
|||
|
MOZ: "Mozambique",
|
|||
|
MRT: "Mauritanie",
|
|||
|
MSR: "Montserrat",
|
|||
|
MTQ: "Martinique",
|
|||
|
MUS: "Maurice",
|
|||
|
MWI: "Malawi",
|
|||
|
MYS: "Malaisie",
|
|||
|
MYT: "Mayotte",
|
|||
|
NAM: "Namibie",
|
|||
|
NCL: "Nouvelle-Calédonie",
|
|||
|
NER: "Niger",
|
|||
|
NFK: "Île Norfolk",
|
|||
|
NGA: "Nigeria",
|
|||
|
NIC: "Nicaragua",
|
|||
|
NIU: "Niue",
|
|||
|
NLD: "Pays-Bas",
|
|||
|
NOR: "Norvège",
|
|||
|
NPL: "Nepal",
|
|||
|
NRU: "Nauru",
|
|||
|
NZL: "Nouvelle-Zélande",
|
|||
|
OMN: "Oman",
|
|||
|
PAK: "Pakistan",
|
|||
|
PAN: "Panama",
|
|||
|
PCN: "Îles Pitcairn",
|
|||
|
PER: "Pérou",
|
|||
|
PHL: "Philippines",
|
|||
|
PLW: "Palaos",
|
|||
|
PNG: "Papouasie-Nouvelle-Guinée",
|
|||
|
POL: "Pologne",
|
|||
|
PRI: "Porto Rico",
|
|||
|
PRK: "Corée du Nord",
|
|||
|
PRT: "Portugal",
|
|||
|
PRY: "Paraguay",
|
|||
|
PSE: "Palestine",
|
|||
|
PYF: "Polynésie française",
|
|||
|
QAT: "Qatar",
|
|||
|
REU: "Réunion",
|
|||
|
ROU: "Roumanie",
|
|||
|
RUS: "Russie",
|
|||
|
RWA: "Rwanda",
|
|||
|
SAU: "Arabie saoudite",
|
|||
|
SDN: "Soudan",
|
|||
|
SEN: "Sénégal",
|
|||
|
SGP: "Singapour",
|
|||
|
SGS: "Georgie du Sud-et-les iles Sandwich du Sud",
|
|||
|
SHN: "Sainte-Hélène, Ascension et Tristan da Cunha",
|
|||
|
SJM: "Svalbard et île Jan Mayen",
|
|||
|
SLB: "Salomon",
|
|||
|
SLE: "Sierra Leone",
|
|||
|
SLV: "Salvador",
|
|||
|
SMR: "Saint-Marin",
|
|||
|
SOM: "Somalie",
|
|||
|
SPM: "Saint-Pierre-et-Miquelon",
|
|||
|
SRB: "Serbie",
|
|||
|
SSD: "Soudan du Sud",
|
|||
|
STP: "Sao Tomé-et-Principe",
|
|||
|
SUR: "Suriname",
|
|||
|
SVK: "Slovaquie",
|
|||
|
SVN: "Slovénie",
|
|||
|
SWE: "Suède",
|
|||
|
SWZ: "eSwatani",
|
|||
|
SXM: "Saint-Martin ",
|
|||
|
SYC: "Seychelles",
|
|||
|
SYR: "Syrie",
|
|||
|
TCA: "Îles Turques-et-Caïques",
|
|||
|
TCD: "Tchad",
|
|||
|
TGO: "Togo",
|
|||
|
THA: "Thaïlande",
|
|||
|
TJK: "Tadjikistan",
|
|||
|
TKL: "Tokelau",
|
|||
|
TKM: "Turkmenistan",
|
|||
|
TLS: "Timor oriental",
|
|||
|
TON: "Tonga",
|
|||
|
TTO: "Trinité-et-Tobago",
|
|||
|
TUN: "Tunisie",
|
|||
|
TUR: "Turquie",
|
|||
|
TUV: "Tuvalu",
|
|||
|
TWN: "Taiwan",
|
|||
|
TZA: "Tanzanie",
|
|||
|
UGA: "Ouganda",
|
|||
|
UKR: "Ukraine",
|
|||
|
URY: "Uruguay",
|
|||
|
USA: "Etats-Unis",
|
|||
|
UZB: "Ouzbékistan",
|
|||
|
VAT: "Saint-Siège (État de la Cité du Vatican)",
|
|||
|
VCT: "Saint-Vincent-et-les-Grenadines",
|
|||
|
VEN: "Venezuela",
|
|||
|
VGB: "Îles Vierges britanniques",
|
|||
|
VIR: "Îles Vierges des États-Unis",
|
|||
|
VNM: "Viêt Nam",
|
|||
|
VUT: "Vanuatu",
|
|||
|
WLF: "Wallis-et-Futuna",
|
|||
|
WSM: "Samoa",
|
|||
|
XKX: "Kosovo",
|
|||
|
YEM: "Yémen",
|
|||
|
ZAF: "Afrique du Sud",
|
|||
|
ZMB: "Zambie",
|
|||
|
ZWE: "Zimbabwe",
|
|||
|
NTZ: "Zone neutre",
|
|||
|
UNO: "Fonctionnaire des Nations Unies",
|
|||
|
UNA: "Fonctionnaire d'une organisation affiliée aux Nations Unies",
|
|||
|
UNK: "Représentant des Nations Unies au Kosovo",
|
|||
|
XXA: "Apatride Convention 1954",
|
|||
|
XXB: "Réfugié Convention 1954",
|
|||
|
XXC: "Réfugié autre",
|
|||
|
XXX: "Résident Légal de Nationalité Inconnue",
|
|||
|
D: "Allemagne",
|
|||
|
EUE: "Union Européenne",
|
|||
|
GBD: "Citoyen Britannique d'Outre-mer (BOTC)",
|
|||
|
GBN: "British National (Overseas)",
|
|||
|
GBO: "British Overseas Citizen",
|
|||
|
GBP: "British Protected Person",
|
|||
|
GBS: "British Subject",
|
|||
|
XBA: "Banque Africaine de Développement",
|
|||
|
XIM: "Banque Africaine d'Export–Import",
|
|||
|
XCC: "Caribbean Community or one of its emissaries",
|
|||
|
XCO: "Common Market for Eastern and Southern Africa",
|
|||
|
XEC: "Economic Community of West African States",
|
|||
|
XPO: "International Criminal Police Organization",
|
|||
|
XOM: "Sovereign Military Order of Malta",
|
|||
|
RKS: "Kosovo",
|
|||
|
WSA: "World Service Authority World Passport"
|
|||
|
}
|
|||
|
|
|||
|
## DOCUMENTS TYPES
|
|||
|
P = [
|
|||
|
"11222333333333333333333333333333333333333333|444444444566677777789AAAAAABCCCCCCCCCCCCCCDE",
|
|||
|
{
|
|||
|
"1": "2|CODE|P*",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "39|NOM|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
|
|||
|
"4": "9|NO|*********",
|
|||
|
"5": "1|CTRL|4",
|
|||
|
"6": "3|NAT|AAA",
|
|||
|
"7": "6|BDATE|000000",
|
|||
|
"8": "1|CTRL|7",
|
|||
|
"9": "1|SEX|A",
|
|||
|
"A": "6|EDATE|000000",
|
|||
|
"B": "1|CTRL|A",
|
|||
|
"C": "14|FACULT|**************",
|
|||
|
"D": "1|CTRLF|C",
|
|||
|
"E": "1|CTRL|4578ABCD"
|
|||
|
},
|
|||
|
"Passeport"
|
|||
|
]
|
|||
|
|
|||
|
IP = [
|
|||
|
"112223333333334555555555555555|66666678999999ABBBCCCCCCCCCCCD",
|
|||
|
{
|
|||
|
"1": "2|CODE|IP",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "9|NO|*********",
|
|||
|
"4": "1|CTRL|3",
|
|||
|
"5": "15|FACULT|***************",
|
|||
|
"6": "6|BDATE|000000",
|
|||
|
"7": "1|CTRL|6",
|
|||
|
"8": "1|SEX|A",
|
|||
|
"9": "6|EDATE|000000",
|
|||
|
"A": "1|CTRL|9",
|
|||
|
"B": "3|NAT|AAA",
|
|||
|
"C": "11|FACULT|***********",
|
|||
|
"D": "1|CTRL|345679AC"
|
|||
|
},
|
|||
|
"Carte-passeport"
|
|||
|
]
|
|||
|
|
|||
|
I_ = [
|
|||
|
"112223333333334555555555555555|66666678999999ABBBCCCCCCCCCCCD",
|
|||
|
{
|
|||
|
"1": "2|CODE|I*",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "9|NO|*********",
|
|||
|
"4": "1|CTRL|3",
|
|||
|
"5": "15|FACULT|***************",
|
|||
|
"6": "6|BDATE|000000",
|
|||
|
"7": "1|CTRL|6",
|
|||
|
"8": "1|SEX|A",
|
|||
|
"9": "6|EDATE|000000",
|
|||
|
"A": "1|CTRL|9",
|
|||
|
"B": "3|NAT|AAA",
|
|||
|
"C": "11|FACULT|***********",
|
|||
|
"D": "1|CTRL|345679AC"
|
|||
|
},
|
|||
|
"Titre d'identité/de voyage"
|
|||
|
]
|
|||
|
|
|||
|
AC = [
|
|||
|
"112223333333334EEE555555555555|66666678999999ABBBCCCCCCCCCCCD",
|
|||
|
{
|
|||
|
"1": "2|CODE|AC",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "9|NO|*********",
|
|||
|
"4": "1|CTRL|3",
|
|||
|
"5": "15|FACULT|***************",
|
|||
|
"6": "6|BDATE|000000",
|
|||
|
"7": "1|CTRL|6",
|
|||
|
"8": "1|SEX|A",
|
|||
|
"9": "6|EDATE|000000",
|
|||
|
"A": "1|CTRL|9",
|
|||
|
"B": "3|NAT|AAA",
|
|||
|
"C": "11|FACULT|***********",
|
|||
|
"D": "1|CTRL|345679AC",
|
|||
|
"E": "3|INDIC|AA&"
|
|||
|
},
|
|||
|
"Certificat de membre d'équipage"
|
|||
|
]
|
|||
|
|
|||
|
VA = [
|
|||
|
"11222333333333333333333333333333333333333333|444444444566677777789AAAAAABCCCCCCCCCCCCCCDE",
|
|||
|
{
|
|||
|
"1": "2|CODE|V*",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "39|NOM|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
|
|||
|
"4": "9|NO|*********",
|
|||
|
"5": "1|CTRL|4",
|
|||
|
"6": "3|NAT|AAA",
|
|||
|
"7": "6|BDATE|000000",
|
|||
|
"8": "1|CTRL|7",
|
|||
|
"9": "1|SEX|A",
|
|||
|
"A": "6|EDATE|000000",
|
|||
|
"B": "1|CTRL|A",
|
|||
|
"C": "14|FACULT|**************"
|
|||
|
},
|
|||
|
"Visa de type A"
|
|||
|
]
|
|||
|
|
|||
|
VB = [
|
|||
|
"112223333333333333333333333333333333|444444444566677777789AAAAAABCCCCCC",
|
|||
|
{
|
|||
|
"1": "2|CODE|V*",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "31|NOM|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
|
|||
|
"4": "9|NO|*********",
|
|||
|
"5": "1|CTRL|4",
|
|||
|
"6": "3|NAT|AAA",
|
|||
|
"7": "6|BDATE|000000",
|
|||
|
"8": "1|CTRL|7",
|
|||
|
"9": "1|SEX|A",
|
|||
|
"A": "6|EDATE|000000",
|
|||
|
"B": "1|CTRL|A",
|
|||
|
"C": "8|FACULT|********"
|
|||
|
},
|
|||
|
"Visa de type B"
|
|||
|
]
|
|||
|
|
|||
|
I__ = [
|
|||
|
"112223333333333333333333333333333333|444444444566677777789AAAAAABCCCCCCCD",
|
|||
|
{
|
|||
|
"1": "2|CODE|I*",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "31|NOM|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
|
|||
|
"4": "9|NO|*********",
|
|||
|
"5": "1|CTRL|4",
|
|||
|
"6": "3|NAT|AAA",
|
|||
|
"7": "6|BDATE|000000",
|
|||
|
"8": "1|CTRL|7",
|
|||
|
"9": "1|SEX|A",
|
|||
|
"A": "6|EDATE|000000",
|
|||
|
"B": "1|CTRL|A",
|
|||
|
"C": "7|FACULT|*******",
|
|||
|
"D": "1|CTRL|4578ABC"
|
|||
|
},
|
|||
|
"Pièce d'identité/de voyage"
|
|||
|
]
|
|||
|
|
|||
|
ID = [
|
|||
|
"112223333333333333333333333333444444|555566677777899999999999999AAAAAABCD",
|
|||
|
{
|
|||
|
"1": "2|CODE|ID",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "25|NOM|&&&&&&&&&&&&&&&&&&&&&&&&&",
|
|||
|
"4": "6|NOINT|000***",
|
|||
|
"5": "4|DDATE|0000",
|
|||
|
"6": "3|NOINT2|000",
|
|||
|
"7": "5|NOINT3|00000",
|
|||
|
"8": "1|CTRL|567",
|
|||
|
"9": "14|PRENOM|A",
|
|||
|
"A": "6|BDATE|000000",
|
|||
|
"B": "1|CTRL|A",
|
|||
|
"C": "1|SEX|A",
|
|||
|
"D": "1|CTRL|123456789ABC"
|
|||
|
},
|
|||
|
"Pièce d'identité FR"
|
|||
|
]
|
|||
|
|
|||
|
DL = [
|
|||
|
"112223333333334555555666666667|",
|
|||
|
{
|
|||
|
"1": "2|CODE|D1",
|
|||
|
"2": "3|PAYS|AAA",
|
|||
|
"3": "9|NO|00AA00000",
|
|||
|
"4": "1|CTRL|123",
|
|||
|
"5": "6|EDATE|000000",
|
|||
|
"6": "8|NOM|&&&&&&&&",
|
|||
|
"7": "1|CTRL|123456"
|
|||
|
},
|
|||
|
"Permis de conduire"
|
|||
|
]
|
|||
|
|
|||
|
TYPES = [ID, I__, VB, VA, AC, I_, IP, P, DL]
|
|||
|
|
|||
|
## THE ROOT OF THIS PROJECT !
|
|||
|
def MRZ(code):
|
|||
|
"""
|
|||
|
This function computes a control sum for a range of characters
|
|||
|
"""
|
|||
|
resultat = 0
|
|||
|
i = -1
|
|||
|
facteur = [7, 3, 1]
|
|||
|
for car in code:
|
|||
|
if car == '<' or car == '|':
|
|||
|
valeur = 0
|
|||
|
i += 1
|
|||
|
else:
|
|||
|
if car in '0123456789':
|
|||
|
valeur = int(car)
|
|||
|
i += 1
|
|||
|
else:
|
|||
|
if car in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
|
|||
|
valeur = ord(car) - 55
|
|||
|
i += 1
|
|||
|
else:
|
|||
|
break
|
|||
|
resultat += valeur * facteur[(i % 3)]
|
|||
|
|
|||
|
return resultat % 10
|