1- from pydantic import BaseModel , ConfigDict , Field
1+ from pydantic import BaseModel , ConfigDict , Field , model_validator
22
33
44class Person (BaseModel ):
5+ lista : str = Field (alias = 'LISTA' )
6+ coincidencia : int = Field (alias = 'COINCIDENCIA' )
7+ nombrecomp : str = Field (alias = 'NOMBRECOMP' )
58 id_persona : str | None = Field (default = None , alias = 'ID_PERSONA' )
6- coincidencia : int | None = Field (default = None , alias = 'COINCIDENCIA' )
79 nombre : str | None = Field (default = None , alias = 'NOMBRE' )
810 paterno : str | None = Field (default = None , alias = 'PATERNO' )
911 materno : str | None = Field (default = None , alias = 'MATERNO' )
@@ -13,169 +15,15 @@ class Person(BaseModel):
1315 default = None , alias = 'FECHA_NACIMIENTO'
1416 )
1517 sexo : str | None = Field (default = None , alias = 'SEXO' )
16- lista : str | None = Field (default = None , alias = 'LISTA' )
17- estatus : str | None = Field (default = None , alias = 'ESTATUS' )
18- dependencia : str | None = Field (default = None , alias = 'DEPENDENCIA' )
19- puesto : str | None = Field (default = None , alias = 'PUESTO' )
20- area : str | None = Field (default = None , alias = 'AREA' )
21- iddispo : int | None = Field (default = None , alias = 'IDDISPO' )
22- idrel : str | None = Field (default = None , alias = 'IDREL' )
23- parentesco : str | None = Field (default = None , alias = 'PARENTESCO' )
24- razonsoc : str | None = Field (default = None , alias = 'RAZONSOC' )
25- rfcmoral : str | None = Field (default = None , alias = 'RFCMORAL' )
26- issste : str | None = Field (default = None , alias = 'ISSSTE' )
27- imss : str | None = Field (default = None , alias = 'IMSS' )
28- ingresos : str | None = Field (default = None , alias = 'INGRESOS' )
29- nombrecomp : str | None = Field (default = None , alias = 'NOMBRECOMP' )
30- apellidos : str | None = Field (default = None , alias = 'APELLIDOS' )
31- entidad : str | None = Field (default = None , alias = 'ENTIDAD' )
32- imagen : str | None = Field (default = None , alias = 'IMAGEN' )
33- periodo : str | None = Field (default = None , alias = 'PERIODO' )
34- expediente : str | None = Field (default = None , alias = 'EXPEDIENTE' )
35- fecha_resolucion : str | None = Field (
36- default = None , alias = 'FECHA_RESOLUCION'
37- )
38- causa_irregularidad : str | None = Field (
39- default = None , alias = 'CAUSA_IRREGULARIDAD'
40- )
41- sancion : str | None = Field (default = None , alias = 'SANCION' )
42- fecha_cargo_ini : str | None = Field (default = None , alias = 'FECHA_CARGO_INI' )
43- fecha_cargo_fin : str | None = Field (default = None , alias = 'FECHA_CARGO_FIN' )
44- duracion : str | None = Field (default = None , alias = 'DURACION' )
45- monto : str | None = Field (default = None , alias = 'MONTO' )
46- autoridad_sanc : str | None = Field (default = None , alias = 'AUTORIDAD_SANC' )
47- admon_local : str | None = Field (default = None , alias = 'ADMON_LOCAL' )
48- numord : str | None = Field (default = None , alias = 'NUMORD' )
49- rubro : str | None = Field (default = None , alias = 'RUBRO' )
50- central_obrera : str | None = Field (default = None , alias = 'CENTRAL_OBRERA' )
51- numsocios : str | None = Field (default = None , alias = 'NUMSOCIOS' )
52- fecha_vigencia : str | None = Field (default = None , alias = 'FECHA_VIGENCIA' )
53- titulo : str | None = Field (default = None , alias = 'TITULO' )
54- domicilio_a : str | None = Field (default = None , alias = 'DOMICILIO_A' )
55- domicilio_b : str | None = Field (default = None , alias = 'DOMICILIO_B' )
56- colonia : str | None = Field (default = None , alias = 'COLONIA' )
57- cp : str | None = Field (default = None , alias = 'CP' )
58- ciudad : str | None = Field (default = None , alias = 'CIUDAD' )
59- lada : str | None = Field (default = None , alias = 'LADA' )
60- telefono : str | None = Field (default = None , alias = 'TELEFONO' )
61- fax : str | None = Field (default = None , alias = 'FAX' )
62- email : str | None = Field (default = None , alias = 'EMAIL' )
63- pais : str | None = Field (default = None , alias = 'PAIS' )
64- idrequerimiento : str | None = Field (default = None , alias = 'IDREQUERIMIENTO' )
65- fechaoficio : str | None = Field (default = None , alias = 'FECHAOFICIO' )
66- buscado_en : str | None = Field (default = None , alias = 'BUSCADO_EN' )
67- ciudadania : str | None = Field (default = None , alias = 'CIUDADANIA' )
68- pasaporte : str | None = Field (default = None , alias = 'PASAPORTE' )
69- cedula : str | None = Field (default = None , alias = 'CEDULA' )
70- nss : str | None = Field (default = None , alias = 'NSS' )
71- sancion_info : str | None = Field (default = None , alias = 'SANCION_INFO' )
72- ine : str | None = Field (default = None , alias = 'INE' )
73- italian_fiscal_code : str | None = Field (
74- default = None , alias = 'ITALIAN_FISCAL_CODE'
75- )
76- registration_id : str | None = Field (default = None , alias = 'REGISTRATION_ID' )
77- national_foreign_id : str | None = Field (
78- default = None , alias = 'NATIONAL_FOREIGN_ID'
79- )
80- vat_num : str | None = Field (default = None , alias = 'VAT_NUM' )
81- serial_num : str | None = Field (default = None , alias = 'SERIAL_NUM' )
82- kenyan_id : str | None = Field (default = None , alias = 'KENYAN_ID' )
83- dni : str | None = Field (default = None , alias = 'DNI' )
84- member_eta : str | None = Field (default = None , alias = 'MEMBER_ETA' )
85- operations_in : str | None = Field (default = None , alias = 'OPERATIONS_IN' )
86- icty : str | None = Field (default = None , alias = 'ICTY' )
87- registered_charity_no : str | None = Field (
88- default = None , alias = 'REGISTERED_CHARITY_NO'
89- )
90- legal_situation : str | None = Field (default = None , alias = 'LEGAL_SITUATION' )
91- bosian_personal_id : str | None = Field (
92- default = None , alias = 'BOSIAN_PERSONAL_ID'
93- )
94- parentesco_con : str | None = Field (default = None , alias = 'PARENTESCO_CON' )
95- le_number : str | None = Field (default = None , alias = 'LE_NUMBER' )
96- ruc_number : str | None = Field (default = None , alias = 'RUC_NUMBER' )
97- certificate_no : str | None = Field (default = None , alias = 'CERTIFICATE_NO' )
98- personal_id_card : str | None = Field (
99- default = None , alias = 'PERSONAL_ID_CARD'
100- )
101- federal_id_card : str | None = Field (default = None , alias = 'FEDERAL_ID_CARD' )
102- visa_num : str | None = Field (default = None , alias = 'VISA_NUM' )
103- nuit : str | None = Field (default = None , alias = 'NUIT' )
104- nie : str | None = Field (default = None , alias = 'NIE' )
105- cif : str | None = Field (default = None , alias = 'CIF' )
106- cuip : str | None = Field (default = None , alias = 'CUIP' )
107- crn : str | None = Field (default = None , alias = 'CRN' )
108- fol_merc : str | None = Field (default = None , alias = 'FOL_MERC' )
109- cr_no : str | None = Field (default = None , alias = 'CR_NO' )
110- trukish_id_num : str | None = Field (default = None , alias = 'TRUKISH_ID_NUM' )
111- tribal_member : str | None = Field (default = None , alias = 'TRIBAL_MEMBER' )
112- refugee_id_card : str | None = Field (default = None , alias = 'REFUGEE_ID_CARD' )
113- resident_can : str | None = Field (default = None , alias = 'RESIDENT_CAN' )
114- cnp : str | None = Field (default = None , alias = 'CNP' )
115- rif : str | None = Field (default = None , alias = 'RIF' )
116- aircraft : str | None = Field (default = None , alias = 'AIRCRAFT' )
117- interpol_red_notice : str | None = Field (
118- default = None , alias = 'INTERPOL_RED_NOTICE'
119- )
120- rtn : str | None = Field (default = None , alias = 'RTN' )
121- sre : str | None = Field (default = None , alias = 'SRE' )
122- company_num : str | None = Field (default = None , alias = 'COMPANY_NUM' )
123- public_reg_num : str | None = Field (default = None , alias = 'PUBLIC_REG_NUM' )
124- chinese_commercial_code : str | None = Field (
125- default = None , alias = 'CHINESE_COMMERCIAL_CODE'
126- )
127- gov_gaz_num : str | None = Field (default = None , alias = 'GOV_GAZ_NUM' )
128- cer_incorp_num : str | None = Field (default = None , alias = 'CER_INCORP_NUM' )
129- dubai_cha_comm_mem : str | None = Field (
130- default = None , alias = 'DUBAI_CHA_COMM_MEM'
131- )
132- vessel_num : str | None = Field (default = None , alias = 'VESSEL' )
133- mmsi : str | None = Field (default = None , alias = 'MMSI' )
134- international_id : str | None = Field (
135- default = None , alias = 'INTERNATIONAL_ID'
136- )
137- identification_no : str | None = Field (
138- default = None , alias = 'IDENTIFICACION_NO'
139- )
140- residente_no : str | None = Field (default = None , alias = 'RESIDENTE_NO' )
141- licencia_cond : str | None = Field (default = None , alias = 'LICENCIA_COND' )
142- cartilla_no : str | None = Field (default = None , alias = 'CARTILLA_NO' )
143- cuit : str | None = Field (default = None , alias = 'CUIT' )
144- nit : str | None = Field (default = None , alias = 'NIT' )
145- business_reg_num : str | None = Field (
146- default = None , alias = 'BUSINESS_REG_NUM'
147- )
148- us_fein : str | None = Field (default = None , alias = 'US_FEIN' )
149- taxid : str | None = Field (default = None , alias = 'TAXID' )
150- web : str | None = Field (default = None , alias = 'WEB' )
151- matricula_merc : str | None = Field (default = None , alias = 'MATRICULA_MERC' )
152- gafi : str | None = Field (default = None , alias = 'GAFI' )
153- repife : str | None = Field (default = None , alias = 'REPIFE' )
154- oced : str | None = Field (default = None , alias = 'OCED' )
155- organismos : str | None = Field (default = None , alias = 'ORGANISMOS' )
156- nombrecompsndx : str | None = Field (default = None , alias = 'nombrecompsndx' )
157- ncampos : str | None = Field (default = None , alias = 'ncampos' )
158- relacionados : str | None = Field (default = None , alias = 'RELACIONADOS' )
159- disposicion : str | None = Field (default = None , alias = 'DISPOSICION' )
160- categoria_riesgo : str | None = Field (
161- default = None , alias = 'CATEGORIA_RIESGO'
162- )
163- cat_ingresos : str | None = Field (default = None , alias = 'CAT_INGRESOS' )
164- organo : str | None = Field (default = None , alias = 'ORGANO' )
165- texto : str | None = Field (default = None , alias = 'TEXTO' )
166- facebook_descripcion : str | None = Field (
167- default = None , alias = 'facebook_DESCRIPCION'
168- )
169- instagram_descripcion : str | None = Field (
170- default = None , alias = 'instagram_DESCRIPCION'
171- )
172- linkedin_descripcion : str | None = Field (
173- default = None , alias = 'linkedin_DESCRIPCION'
174- )
175- twitter_descripcion : str | None = Field (
176- default = None , alias = 'twitter_DESCRIPCION'
177- )
18+ metadata : dict = Field (default_factory = dict , alias = 'METADATA' )
17819
17920 model_config = ConfigDict (
18021 populate_by_name = True ,
22+ extra = 'allow' ,
18123 )
24+
25+ @model_validator (mode = 'after' )
26+ def collect_extra_fields (self ):
27+ if self .model_extra :
28+ self .metadata .update (self .model_extra )
29+ return self
0 commit comments