satcfdi.create.pld.fep   F
last analyzed

Complexity

Total Complexity 67

Size/Duplication

Total Lines 1590
Duplicated Lines 13.21 %

Importance

Changes 0
Metric Value
eloc 793
dl 210
loc 1590
rs 2.847
c 0
b 0
f 0
wmc 67

67 Methods

Rating   Name   Duplication   Size   Complexity  
A DatosEscindidasType.__init__() 0 8 1
A TipoPersonaSimpleType.__init__() 0 10 1
A DatosAcreedorType.__init__() 0 6 1
A DatosInmuebleType.__init__() 0 12 1
A PatrimonioInmuebleType.__init__() 0 12 1
A DatosGarantiaType.__init__() 0 10 1
A PersonaMoralSimpleType.__init__() 0 12 1
A DatosFideicomitenteType.__init__() 0 10 1
A DatosFusionadaType.__init__() 0 20 1
A PatrimonioOtroBienType.__init__() 0 8 1
A FideicomisoType.__init__() 0 10 1
A DatosAccionista1Type.__init__() 0 8 1
A DatosCompradorType.__init__() 0 8 1
A ConstitucionPersonasMoralesType.__init__() 28 28 1
A DatosModificacionType.__init__() 18 18 1
A DatosEscindenteType.__init__() 24 24 1
A DatosCedenteType.__init__() 0 6 1
A DatosPropietarioType.__init__() 0 8 1
A PersonaFisicaType.__init__() 0 20 1
A PersonaFisicaGaranteType.__init__() 0 16 1
A DatosCesionType.__init__() 0 6 1
A DatosLiquidacionSimpleType.__init__() 0 8 1
A TipoPersonaType.__init__() 0 10 1
A ArchivoType.__init__() 0 6 1
A DatosComiteTecnicoType.__init__() 0 8 1
A FusionType.__init__() 0 10 1
A DatosAccionistaType.__init__() 0 10 1
A InformeType.__init__() 10 10 1
A PersonaAvisoType.__init__() 0 16 1
A PersonaMoralType.__init__() 0 14 1
A PersonaMoralAccionesType.__init__() 0 20 1
A TipoPersona1Type.__init__() 0 12 1
A CapitalSocialType.__init__() 0 8 1
A FusionanteType.__init__() 24 24 1
A DatosCesionarioType.__init__() 0 6 1
A TipoActividadType.__init__() 0 24 1
A CesionDerechosType.__init__() 0 18 1
A AvisoType.__init__() 0 16 1
A DatosVendedorType.__init__() 0 8 1
A DatosDeudorType.__init__() 0 6 1
A ModificacionPatrimonialType.__init__() 0 8 1
A PatrimonioMonetariaType.__init__() 0 8 1
A DatosFideicomisarioType.__init__() 0 8 1
A DetalleOperacionesType.__init__() 0 6 1
A SujetoObligadoType.__init__() 0 12 1
A DatosTipoPatrimonioType.__init__() 0 10 1
A TipoPersonaGaranteType.__init__() 0 10 1
A ConstModFideicomisoType.__init__() 0 24 1
A DatosFusionanteType.__init__() 0 8 1
A DatosFusionadasType.__init__() 0 6 1
A DatosPoderdanteType.__init__() 0 6 1
A PersonaMoralGaranteType.__init__() 0 10 1
A DatosOtroType.__init__() 0 6 1
A ContratoMutuoCredType.__init__() 0 14 1
A EscindidaType.__init__() 24 24 1
A DatosLiquidacionType.__init__() 0 12 1
A DatosApoderadoType.__init__() 0 8 1
A AlertaType.__init__() 0 8 1
A EscisionType.__init__() 0 8 1
A PersonaMoralModificaType.__init__() 0 20 1
A DatosBienMutuoType.__init__() 0 8 1
A CompraVentaAccionesType.__init__() 0 10 1
A PersonaFisicaSimpleType.__init__() 0 18 1
A AvaluoType.__init__() 0 12 1
A ModificatorioType.__init__() 0 8 1
A DatosOperacionType.__init__() 0 10 1
A OtorgamientoPoderType.__init__() 0 8 1

How to fix   Duplicated Code    Complexity   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

Complexity

 Tip:   Before tackling complexity, make sure that you eliminate any duplication first. This often can reduce the size of classes significantly.

Complex classes like satcfdi.create.pld.fep often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
"""fep http://www.uif.shcp.gob.mx/recepcion/fep"""
2
from decimal import Decimal
3
from datetime import datetime, date, time
4
from collections.abc import Sequence
5
from ...cfdi import CFDI
6
from ...xelement import XElement
7
from ...utils import ScalarMap
8
9
10
class DatosComiteTecnicoType(ScalarMap):
11
    """
12
    
13
    :param comite_tecnico:
14
    :param modificacion_comite_tecnico:
15
    """
16
    
17
    def __init__(
18
            self,
19
            comite_tecnico: str,
20
            modificacion_comite_tecnico: str,
21
    ): 
22
        super().__init__({
23
            'ComiteTecnico': comite_tecnico,
24
            'ModificacionComiteTecnico': modificacion_comite_tecnico,
25
        })
26
        
27
28
class DatosPropietarioType(ScalarMap):
29
    """
30
    
31
    :param propietario_solicita:
32
    :param tipo_persona:
33
    """
34
    
35
    def __init__(
36
            self,
37
            propietario_solicita: str,
38
            tipo_persona: TipoPersonaSimpleType | dict = None,
39
    ): 
40
        super().__init__({
41
            'PropietarioSolicita': propietario_solicita,
42
            'TipoPersona': tipo_persona,
43
        })
44
        
45
46
class AvaluoType(ScalarMap):
47
    """
48
    
49
    :param tipo_bien:
50
    :param valor_avaluo:
51
    :param datos_propietario:
52
    :param descripcion:
53
    """
54
    
55
    def __init__(
56
            self,
57
            tipo_bien: str,
58
            valor_avaluo: str,
59
            datos_propietario: DatosPropietarioType | dict,
60
            descripcion: str = None,
61
    ): 
62
        super().__init__({
63
            'TipoBien': tipo_bien,
64
            'ValorAvaluo': valor_avaluo,
65
            'DatosPropietario': datos_propietario,
66
            'Descripcion': descripcion,
67
        })
68
        
69
70
class DatosLiquidacionSimpleType(ScalarMap):
71
    """
72
    
73
    :param moneda:
74
    :param monto_operacion:
75
    """
76
    
77
    def __init__(
78
            self,
79
            moneda: str,
80
            monto_operacion: str,
81
    ): 
82
        super().__init__({
83
            'Moneda': moneda,
84
            'MontoOperacion': monto_operacion,
85
        })
86
        
87
88
class PersonaMoralGaranteType(ScalarMap):
89
    """
90
    
91
    :param denominacion_razon:
92
    :param fecha_constitucion:
93
    :param rfc:
94
    """
95
    
96
    def __init__(
97
            self,
98
            denominacion_razon: str,
99
            fecha_constitucion: date = None,
100
            rfc: str = None,
101
    ): 
102
        super().__init__({
103
            'DenominacionRazon': denominacion_razon,
104
            'FechaConstitucion': fecha_constitucion,
105
            'Rfc': rfc,
106
        })
107
        
108
109
class PersonaFisicaGaranteType(ScalarMap):
110
    """
111
    
112
    :param nombre:
113
    :param apellido_paterno:
114
    :param apellido_materno:
115
    :param fecha_nacimiento:
116
    :param rfc:
117
    :param curp:
118
    """
119
    
120
    def __init__(
121
            self,
122
            nombre: str,
123
            apellido_paterno: str,
124
            apellido_materno: str,
125
            fecha_nacimiento: date = None,
126
            rfc: str = None,
127
            curp: str = None,
128
    ): 
129
        super().__init__({
130
            'Nombre': nombre,
131
            'ApellidoPaterno': apellido_paterno,
132
            'ApellidoMaterno': apellido_materno,
133
            'FechaNacimiento': fecha_nacimiento,
134
            'Rfc': rfc,
135
            'Curp': curp,
136
        })
137
        
138
139
class TipoPersonaGaranteType(ScalarMap):
140
    """
141
    
142
    :param persona_fisica:
143
    :param persona_moral:
144
    :param fideicomiso:
145
    """
146
    
147
    def __init__(
148
            self,
149
            persona_fisica: PersonaFisicaGaranteType | dict = None,
150
            persona_moral: PersonaMoralGaranteType | dict = None,
151
            fideicomiso: FideicomisoType | dict = None,
152
    ): 
153
        super().__init__({
154
            'PersonaFisica': persona_fisica,
155
            'PersonaMoral': persona_moral,
156
            'Fideicomiso': fideicomiso,
157
        })
158
        
159
160
class DatosOtroType(ScalarMap):
161
    """
162
    
163
    :param descripcion_garantia:
164
    """
165
    
166
    def __init__(
167
            self,
168
            descripcion_garantia: str,
169
    ): 
170
        super().__init__({
171
            'DescripcionGarantia': descripcion_garantia,
172
        })
173
        
174
175
class DatosInmuebleType(ScalarMap):
176
    """
177
    
178
    :param tipo_inmueble:
179
    :param valor_referencia:
180
    :param codigo_postal:
181
    :param folio_real:
182
    """
183
    
184
    def __init__(
185
            self,
186
            tipo_inmueble: str,
187
            valor_referencia: str,
188
            codigo_postal: str,
189
            folio_real: str,
190
    ): 
191
        super().__init__({
192
            'TipoInmueble': tipo_inmueble,
193
            'ValorReferencia': valor_referencia,
194
            'CodigoPostal': codigo_postal,
195
            'FolioReal': folio_real,
196
        })
197
        
198
199
class DatosBienMutuoType(ScalarMap):
200
    """
201
    
202
    :param datos_inmueble:
203
    :param datos_otro:
204
    """
205
    
206
    def __init__(
207
            self,
208
            datos_inmueble: DatosInmuebleType | dict = None,
209
            datos_otro: DatosOtroType | dict = None,
210
    ): 
211
        super().__init__({
212
            'DatosInmueble': datos_inmueble,
213
            'DatosOtro': datos_otro,
214
        })
215
        
216
217
class DatosGarantiaType(ScalarMap):
218
    """
219
    
220
    :param tipo_garantia:
221
    :param datos_bien_mutuo:
222
    :param tipo_persona:
223
    """
224
    
225
    def __init__(
226
            self,
227
            tipo_garantia: str,
228
            datos_bien_mutuo: DatosBienMutuoType | dict = None,
229
            tipo_persona: TipoPersonaGaranteType | dict = None,
230
    ): 
231
        super().__init__({
232
            'TipoGarantia': tipo_garantia,
233
            'DatosBienMutuo': datos_bien_mutuo,
234
            'TipoPersona': tipo_persona,
235
        })
236
        
237
238
class DatosDeudorType(ScalarMap):
239
    """
240
    
241
    :param tipo_persona:
242
    """
243
    
244
    def __init__(
245
            self,
246
            tipo_persona: TipoPersonaType | dict,
247
    ): 
248
        super().__init__({
249
            'TipoPersona': tipo_persona,
250
        })
251
        
252
253
class DatosAcreedorType(ScalarMap):
254
    """
255
    
256
    :param tipo_persona:
257
    """
258
    
259
    def __init__(
260
            self,
261
            tipo_persona: TipoPersonaType | dict,
262
    ): 
263
        super().__init__({
264
            'TipoPersona': tipo_persona,
265
        })
266
        
267
268
class ContratoMutuoCredType(ScalarMap):
269
    """
270
    
271
    :param tipo_otorgamiento:
272
    :param datos_acreedor:
273
    :param datos_deudor:
274
    :param datos_liquidacion:
275
    :param datos_garantia:
276
    """
277
    
278
    def __init__(
279
            self,
280
            tipo_otorgamiento: str,
281
            datos_acreedor: DatosAcreedorType | dict | Sequence[DatosAcreedorType | dict],
282
            datos_deudor: DatosDeudorType | dict | Sequence[DatosDeudorType | dict],
283
            datos_liquidacion: DatosLiquidacionSimpleType | dict | Sequence[DatosLiquidacionSimpleType | dict],
284
            datos_garantia: DatosGarantiaType | dict | Sequence[DatosGarantiaType | dict] = None,
285
    ): 
286
        super().__init__({
287
            'TipoOtorgamiento': tipo_otorgamiento,
288
            'DatosAcreedor': datos_acreedor,
289
            'DatosDeudor': datos_deudor,
290
            'DatosLiquidacion': datos_liquidacion,
291
            'DatosGarantia': datos_garantia,
292
        })
293
        
294
295
class DatosCesionType(ScalarMap):
296
    """
297
    
298
    :param monto_cesion:
299
    """
300
    
301
    def __init__(
302
            self,
303
            monto_cesion: str,
304
    ): 
305
        super().__init__({
306
            'MontoCesion': monto_cesion,
307
        })
308
        
309
310
class DatosCesionarioType(ScalarMap):
311
    """
312
    
313
    :param tipo_persona:
314
    """
315
    
316
    def __init__(
317
            self,
318
            tipo_persona: TipoPersonaType | dict,
319
    ): 
320
        super().__init__({
321
            'TipoPersona': tipo_persona,
322
        })
323
        
324
325
class DatosCedenteType(ScalarMap):
326
    """
327
    
328
    :param tipo_persona:
329
    """
330
    
331
    def __init__(
332
            self,
333
            tipo_persona: TipoPersonaType | dict,
334
    ): 
335
        super().__init__({
336
            'TipoPersona': tipo_persona,
337
        })
338
        
339
340
class CesionDerechosType(ScalarMap):
341
    """
342
    
343
    :param denominacion_razon:
344
    :param tipo_cesion:
345
    :param datos_cedente:
346
    :param datos_cesionario:
347
    :param datos_cesion:
348
    :param identificador_fideicomiso:
349
    :param rfc:
350
    """
351
    
352
    def __init__(
353
            self,
354
            denominacion_razon: str,
355
            tipo_cesion: str,
356
            datos_cedente: DatosCedenteType | dict,
357
            datos_cesionario: DatosCesionarioType | dict,
358
            datos_cesion: DatosCesionType | dict,
359
            identificador_fideicomiso: str = None,
360
            rfc: str = None,
361
    ): 
362
        super().__init__({
363
            'DenominacionRazon': denominacion_razon,
364
            'TipoCesion': tipo_cesion,
365
            'DatosCedente': datos_cedente,
366
            'DatosCesionario': datos_cesionario,
367
            'DatosCesion': datos_cesion,
368
            'IdentificadorFideicomiso': identificador_fideicomiso,
369
            'Rfc': rfc,
370
        })
371
        
372
373
class DatosFideicomisarioType(ScalarMap):
374
    """
375
    
376
    :param datos_fideicomisarios_determinados:
377
    :param tipo_persona:
378
    """
379
    
380
    def __init__(
381
            self,
382
            datos_fideicomisarios_determinados: str,
383
            tipo_persona: TipoPersona1Type | dict | Sequence[TipoPersona1Type | dict] = None,
384
    ): 
385
        super().__init__({
386
            'DatosFideicomisariosDeterminados': datos_fideicomisarios_determinados,
387
            'TipoPersona': tipo_persona,
388
        })
389
        
390
391
class PatrimonioOtroBienType(ScalarMap):
392
    """
393
    
394
    :param descripcion:
395
    :param valor_bien:
396
    """
397
    
398
    def __init__(
399
            self,
400
            descripcion: str,
401
            valor_bien: str,
402
    ): 
403
        super().__init__({
404
            'Descripcion': descripcion,
405
            'ValorBien': valor_bien,
406
        })
407
        
408
409
class PatrimonioInmuebleType(ScalarMap):
410
    """
411
    
412
    :param tipo_inmueble:
413
    :param codigo_postal:
414
    :param folio_real:
415
    :param importe_garantia:
416
    """
417
    
418
    def __init__(
419
            self,
420
            tipo_inmueble: str,
421
            codigo_postal: str,
422
            folio_real: str,
423
            importe_garantia: str,
424
    ): 
425
        super().__init__({
426
            'TipoInmueble': tipo_inmueble,
427
            'CodigoPostal': codigo_postal,
428
            'FolioReal': folio_real,
429
            'ImporteGarantia': importe_garantia,
430
        })
431
        
432
433
class PatrimonioMonetariaType(ScalarMap):
434
    """
435
    
436
    :param moneda:
437
    :param monto_operacion:
438
    """
439
    
440
    def __init__(
441
            self,
442
            moneda: str,
443
            monto_operacion: str,
444
    ): 
445
        super().__init__({
446
            'Moneda': moneda,
447
            'MontoOperacion': monto_operacion,
448
        })
449
        
450
451
class DatosTipoPatrimonioType(ScalarMap):
452
    """
453
    
454
    :param patrimonio_monetario:
455
    :param patrimonio_inmueble:
456
    :param patrimonio_otro_bien:
457
    """
458
    
459
    def __init__(
460
            self,
461
            patrimonio_monetario: PatrimonioMonetariaType | dict = None,
462
            patrimonio_inmueble: PatrimonioInmuebleType | dict = None,
463
            patrimonio_otro_bien: PatrimonioOtroBienType | dict = None,
464
    ): 
465
        super().__init__({
466
            'PatrimonioMonetario': patrimonio_monetario,
467
            'PatrimonioInmueble': patrimonio_inmueble,
468
            'PatrimonioOtroBien': patrimonio_otro_bien,
469
        })
470
        
471
472
class DatosFideicomitenteType(ScalarMap):
473
    """
474
    
475
    :param tipo_movimiento_fideicomitente:
476
    :param tipo_persona:
477
    :param datos_tipo_patrimonio:
478
    """
479
    
480
    def __init__(
481
            self,
482
            tipo_movimiento_fideicomitente: str,
483
            tipo_persona: TipoPersonaType | dict,
484
            datos_tipo_patrimonio: DatosTipoPatrimonioType | dict | Sequence[DatosTipoPatrimonioType | dict] = None,
485
    ): 
486
        super().__init__({
487
            'TipoMovimientoFideicomitente': tipo_movimiento_fideicomitente,
488
            'TipoPersona': tipo_persona,
489
            'DatosTipoPatrimonio': datos_tipo_patrimonio,
490
        })
491
        
492
493
class ConstModFideicomisoType(ScalarMap):
494
    """
495
    
496
    :param tipo_movimiento:
497
    :param tipo_fideicomiso:
498
    :param denominacion_razon:
499
    :param monto_patrimonio:
500
    :param datos_fideicomitente:
501
    :param descripcion:
502
    :param rfc:
503
    :param identificador_fideicomiso:
504
    :param datos_fideicomisarios:
505
    :param datos_miembro_comite_tecnico:
506
    """
507
    
508
    def __init__(
509
            self,
510
            tipo_movimiento: str,
511
            tipo_fideicomiso: str,
512
            denominacion_razon: str,
513
            monto_patrimonio: str,
514
            datos_fideicomitente: DatosFideicomitenteType | dict | Sequence[DatosFideicomitenteType | dict],
515
            descripcion: str = None,
516
            rfc: str = None,
517
            identificador_fideicomiso: str = None,
518
            datos_fideicomisarios: DatosFideicomisarioType | dict | Sequence[DatosFideicomisarioType | dict] = None,
519
            datos_miembro_comite_tecnico: DatosComiteTecnicoType | dict = None,
520
    ): 
521
        super().__init__({
522
            'TipoMovimiento': tipo_movimiento,
523
            'TipoFideicomiso': tipo_fideicomiso,
524
            'DenominacionRazon': denominacion_razon,
525
            'MontoPatrimonio': monto_patrimonio,
526
            'DatosFideicomitente': datos_fideicomitente,
527
            'Descripcion': descripcion,
528
            'Rfc': rfc,
529
            'IdentificadorFideicomiso': identificador_fideicomiso,
530
            'DatosFideicomisarios': datos_fideicomisarios,
531
            'DatosMiembroComiteTecnico': datos_miembro_comite_tecnico,
532
        })
533
        
534
535
class DatosLiquidacionType(ScalarMap):
536
    """
537
    
538
    :param fecha_pago:
539
    :param moneda:
540
    :param monto_operacion:
541
    :param instrumento_monetario:
542
    """
543
    
544
    def __init__(
545
            self,
546
            fecha_pago: date,
547
            moneda: str,
548
            monto_operacion: str,
549
            instrumento_monetario: str = None,
550
    ): 
551
        super().__init__({
552
            'FechaPago': fecha_pago,
553
            'Moneda': moneda,
554
            'MontoOperacion': monto_operacion,
555
            'InstrumentoMonetario': instrumento_monetario,
556
        })
557
        
558
559
class DatosCompradorType(ScalarMap):
560
    """
561
    
562
    :param numero_acciones_compradas:
563
    :param tipo_persona:
564
    """
565
    
566
    def __init__(
567
            self,
568
            numero_acciones_compradas: str,
569
            tipo_persona: TipoPersonaSimpleType | dict,
570
    ): 
571
        super().__init__({
572
            'NumeroAccionesCompradas': numero_acciones_compradas,
573
            'TipoPersona': tipo_persona,
574
        })
575
        
576
577
class DatosVendedorType(ScalarMap):
578
    """
579
    
580
    :param numero_acciones_vendidas:
581
    :param tipo_persona:
582
    """
583
    
584
    def __init__(
585
            self,
586
            numero_acciones_vendidas: str,
587
            tipo_persona: TipoPersonaSimpleType | dict,
588
    ): 
589
        super().__init__({
590
            'NumeroAccionesVendidas': numero_acciones_vendidas,
591
            'TipoPersona': tipo_persona,
592
        })
593
        
594
595
class PersonaMoralAccionesType(ScalarMap):
596
    """
597
    
598
    :param denominacion_razon:
599
    :param pais_nacionalidad:
600
    :param valor_nominal:
601
    :param numero_acciones:
602
    :param datos_vendedor:
603
    :param datos_comprador:
604
    :param fecha_constitucion:
605
    :param rfc:
606
    """
607
    
608
    def __init__(
609
            self,
610
            denominacion_razon: str,
611
            pais_nacionalidad: str,
612
            valor_nominal: str,
613
            numero_acciones: str,
614
            datos_vendedor: DatosVendedorType | dict | Sequence[DatosVendedorType | dict],
615
            datos_comprador: DatosCompradorType | dict | Sequence[DatosCompradorType | dict],
616
            fecha_constitucion: date = None,
617
            rfc: str = None,
618
    ): 
619
        super().__init__({
620
            'DenominacionRazon': denominacion_razon,
621
            'PaisNacionalidad': pais_nacionalidad,
622
            'ValorNominal': valor_nominal,
623
            'NumeroAcciones': numero_acciones,
624
            'DatosVendedor': datos_vendedor,
625
            'DatosComprador': datos_comprador,
626
            'FechaConstitucion': fecha_constitucion,
627
            'Rfc': rfc,
628
        })
629
        
630
631
class CompraVentaAccionesType(ScalarMap):
632
    """
633
    
634
    :param tipo_operacion:
635
    :param persona_moral_acciones:
636
    :param datos_liquidacion:
637
    """
638
    
639
    def __init__(
640
            self,
641
            tipo_operacion: str,
642
            persona_moral_acciones: PersonaMoralAccionesType | dict | Sequence[PersonaMoralAccionesType | dict],
643
            datos_liquidacion: DatosLiquidacionType | dict | Sequence[DatosLiquidacionType | dict],
644
    ): 
645
        super().__init__({
646
            'TipoOperacion': tipo_operacion,
647
            'PersonaMoralAcciones': persona_moral_acciones,
648
            'DatosLiquidacion': datos_liquidacion,
649
        })
650
        
651
652 View Code Duplication
class EscindidaType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
653
    """
654
    
655
    :param denominacion_razon:
656
    :param pais_nacionalidad:
657
    :param giro_mercantil:
658
    :param capital_social_fijo:
659
    :param numero_total_acciones:
660
    :param datos_accionista:
661
    :param fecha_constitucion:
662
    :param rfc:
663
    :param capital_social_variable:
664
    :param folio_mercantil:
665
    """
666
    
667
    def __init__(
668
            self,
669
            denominacion_razon: str,
670
            pais_nacionalidad: str,
671
            giro_mercantil: str,
672
            capital_social_fijo: str,
673
            numero_total_acciones: str,
674
            datos_accionista: DatosAccionista1Type | dict | Sequence[DatosAccionista1Type | dict],
675
            fecha_constitucion: date = None,
676
            rfc: str = None,
677
            capital_social_variable: str = None,
678
            folio_mercantil: str = None,
679
    ): 
680
        super().__init__({
681
            'DenominacionRazon': denominacion_razon,
682
            'PaisNacionalidad': pais_nacionalidad,
683
            'GiroMercantil': giro_mercantil,
684
            'CapitalSocialFijo': capital_social_fijo,
685
            'NumeroTotalAcciones': numero_total_acciones,
686
            'DatosAccionista': datos_accionista,
687
            'FechaConstitucion': fecha_constitucion,
688
            'Rfc': rfc,
689
            'CapitalSocialVariable': capital_social_variable,
690
            'FolioMercantil': folio_mercantil,
691
        })
692
        
693
694
class DatosEscindidasType(ScalarMap):
695
    """
696
    
697
    :param escindidas_determinadas:
698
    :param dato_escindida:
699
    """
700
    
701
    def __init__(
702
            self,
703
            escindidas_determinadas: str,
704
            dato_escindida: EscindidaType | dict | Sequence[EscindidaType | dict] = None,
705
    ): 
706
        super().__init__({
707
            'EscindidasDeterminadas': escindidas_determinadas,
708
            'DatoEscindida': dato_escindida,
709
        })
710
        
711
712 View Code Duplication
class DatosEscindenteType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
713
    """
714
    
715
    :param denominacion_razon:
716
    :param pais_nacionalidad:
717
    :param giro_mercantil:
718
    :param capital_social_fijo:
719
    :param escindente_subsiste:
720
    :param fecha_constitucion:
721
    :param rfc:
722
    :param capital_social_variable:
723
    :param folio_mercantil:
724
    :param datos_accionista_escindente:
725
    """
726
    
727
    def __init__(
728
            self,
729
            denominacion_razon: str,
730
            pais_nacionalidad: str,
731
            giro_mercantil: str,
732
            capital_social_fijo: str,
733
            escindente_subsiste: str,
734
            fecha_constitucion: date = None,
735
            rfc: str = None,
736
            capital_social_variable: str = None,
737
            folio_mercantil: str = None,
738
            datos_accionista_escindente: DatosAccionista1Type | dict | Sequence[DatosAccionista1Type | dict] = None,
739
    ): 
740
        super().__init__({
741
            'DenominacionRazon': denominacion_razon,
742
            'PaisNacionalidad': pais_nacionalidad,
743
            'GiroMercantil': giro_mercantil,
744
            'CapitalSocialFijo': capital_social_fijo,
745
            'EscindenteSubsiste': escindente_subsiste,
746
            'FechaConstitucion': fecha_constitucion,
747
            'Rfc': rfc,
748
            'CapitalSocialVariable': capital_social_variable,
749
            'FolioMercantil': folio_mercantil,
750
            'DatosAccionistaEscindente': datos_accionista_escindente,
751
        })
752
        
753
754
class EscisionType(ScalarMap):
755
    """
756
    
757
    :param datos_escindente:
758
    :param datos_escindidas:
759
    """
760
    
761
    def __init__(
762
            self,
763
            datos_escindente: DatosEscindenteType | dict,
764
            datos_escindidas: DatosEscindidasType | dict,
765
    ): 
766
        super().__init__({
767
            'DatosEscindente': datos_escindente,
768
            'DatosEscindidas': datos_escindidas,
769
        })
770
        
771
772 View Code Duplication
class FusionanteType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
773
    """
774
    
775
    :param denominacion_razon:
776
    :param pais_nacionalidad:
777
    :param giro_mercantil:
778
    :param capital_social_fijo:
779
    :param numero_total_acciones:
780
    :param datos_accionista:
781
    :param fecha_constitucion:
782
    :param rfc:
783
    :param capital_social_variable:
784
    :param folio_mercantil:
785
    """
786
    
787
    def __init__(
788
            self,
789
            denominacion_razon: str,
790
            pais_nacionalidad: str,
791
            giro_mercantil: str,
792
            capital_social_fijo: str,
793
            numero_total_acciones: str,
794
            datos_accionista: DatosAccionista1Type | dict | Sequence[DatosAccionista1Type | dict],
795
            fecha_constitucion: date = None,
796
            rfc: str = None,
797
            capital_social_variable: str = None,
798
            folio_mercantil: str = None,
799
    ): 
800
        super().__init__({
801
            'DenominacionRazon': denominacion_razon,
802
            'PaisNacionalidad': pais_nacionalidad,
803
            'GiroMercantil': giro_mercantil,
804
            'CapitalSocialFijo': capital_social_fijo,
805
            'NumeroTotalAcciones': numero_total_acciones,
806
            'DatosAccionista': datos_accionista,
807
            'FechaConstitucion': fecha_constitucion,
808
            'Rfc': rfc,
809
            'CapitalSocialVariable': capital_social_variable,
810
            'FolioMercantil': folio_mercantil,
811
        })
812
        
813
814
class DatosFusionanteType(ScalarMap):
815
    """
816
    
817
    :param fusionante_determinadas:
818
    :param fusionante:
819
    """
820
    
821
    def __init__(
822
            self,
823
            fusionante_determinadas: str,
824
            fusionante: FusionanteType | dict = None,
825
    ): 
826
        super().__init__({
827
            'FusionanteDeterminadas': fusionante_determinadas,
828
            'Fusionante': fusionante,
829
        })
830
        
831
832
class DatosFusionadaType(ScalarMap):
833
    """
834
    
835
    :param denominacion_razon:
836
    :param pais_nacionalidad:
837
    :param giro_mercantil:
838
    :param capital_social_fijo:
839
    :param fecha_constitucion:
840
    :param rfc:
841
    :param capital_social_variable:
842
    :param folio_mercantil:
843
    """
844
    
845
    def __init__(
846
            self,
847
            denominacion_razon: str,
848
            pais_nacionalidad: str,
849
            giro_mercantil: str,
850
            capital_social_fijo: str,
851
            fecha_constitucion: date = None,
852
            rfc: str = None,
853
            capital_social_variable: str = None,
854
            folio_mercantil: str = None,
855
    ): 
856
        super().__init__({
857
            'DenominacionRazon': denominacion_razon,
858
            'PaisNacionalidad': pais_nacionalidad,
859
            'GiroMercantil': giro_mercantil,
860
            'CapitalSocialFijo': capital_social_fijo,
861
            'FechaConstitucion': fecha_constitucion,
862
            'Rfc': rfc,
863
            'CapitalSocialVariable': capital_social_variable,
864
            'FolioMercantil': folio_mercantil,
865
        })
866
        
867
868
class DatosFusionadasType(ScalarMap):
869
    """
870
    
871
    :param datos_fusionada:
872
    """
873
    
874
    def __init__(
875
            self,
876
            datos_fusionada: DatosFusionadaType | dict | Sequence[DatosFusionadaType | dict],
877
    ): 
878
        super().__init__({
879
            'DatosFusionada': datos_fusionada,
880
        })
881
        
882
883
class FusionType(ScalarMap):
884
    """
885
    
886
    :param tipo_fusion:
887
    :param datos_fusionadas:
888
    :param datos_fusionante:
889
    """
890
    
891
    def __init__(
892
            self,
893
            tipo_fusion: str,
894
            datos_fusionadas: DatosFusionadasType | dict,
895
            datos_fusionante: DatosFusionanteType | dict,
896
    ): 
897
        super().__init__({
898
            'TipoFusion': tipo_fusion,
899
            'DatosFusionadas': datos_fusionadas,
900
            'DatosFusionante': datos_fusionante,
901
        })
902
        
903
904
class DatosAccionista1Type(ScalarMap):
905
    """
906
    
907
    :param tipo_persona:
908
    :param numero_acciones:
909
    """
910
    
911
    def __init__(
912
            self,
913
            tipo_persona: TipoPersonaSimpleType | dict,
914
            numero_acciones: str,
915
    ): 
916
        super().__init__({
917
            'TipoPersona': tipo_persona,
918
            'NumeroAcciones': numero_acciones,
919
        })
920
        
921
922 View Code Duplication
class DatosModificacionType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
923
    """
924
    
925
    :param tipo_modificacion_capital_fijo:
926
    :param inicial_capital_fijo:
927
    :param final_capital_fijo:
928
    :param tipo_modificacion_capital_variable:
929
    :param inicial_capital_variable:
930
    :param final_capital_variable:
931
    :param datos_accionista:
932
    """
933
    
934
    def __init__(
935
            self,
936
            tipo_modificacion_capital_fijo: str,
937
            inicial_capital_fijo: str,
938
            final_capital_fijo: str,
939
            tipo_modificacion_capital_variable: str,
940
            inicial_capital_variable: str,
941
            final_capital_variable: str,
942
            datos_accionista: DatosAccionista1Type | dict | Sequence[DatosAccionista1Type | dict],
943
    ): 
944
        super().__init__({
945
            'TipoModificacionCapitalFijo': tipo_modificacion_capital_fijo,
946
            'InicialCapitalFijo': inicial_capital_fijo,
947
            'FinalCapitalFijo': final_capital_fijo,
948
            'TipoModificacionCapitalVariable': tipo_modificacion_capital_variable,
949
            'InicialCapitalVariable': inicial_capital_variable,
950
            'FinalCapitalVariable': final_capital_variable,
951
            'DatosAccionista': datos_accionista,
952
        })
953
        
954
955
class PersonaMoralModificaType(ScalarMap):
956
    """
957
    
958
    :param denominacion_razon:
959
    :param pais_nacionalidad:
960
    :param giro_mercantil:
961
    :param numero_total_acciones:
962
    :param motivo_modificacion:
963
    :param fecha_constitucion:
964
    :param rfc:
965
    :param instrumento_publico:
966
    """
967
    
968
    def __init__(
969
            self,
970
            denominacion_razon: str,
971
            pais_nacionalidad: str,
972
            giro_mercantil: str,
973
            numero_total_acciones: str,
974
            motivo_modificacion: str,
975
            fecha_constitucion: date = None,
976
            rfc: str = None,
977
            instrumento_publico: str = None,
978
    ): 
979
        super().__init__({
980
            'DenominacionRazon': denominacion_razon,
981
            'PaisNacionalidad': pais_nacionalidad,
982
            'GiroMercantil': giro_mercantil,
983
            'NumeroTotalAcciones': numero_total_acciones,
984
            'MotivoModificacion': motivo_modificacion,
985
            'FechaConstitucion': fecha_constitucion,
986
            'Rfc': rfc,
987
            'InstrumentoPublico': instrumento_publico,
988
        })
989
        
990
991
class ModificacionPatrimonialType(ScalarMap):
992
    """
993
    
994
    :param persona_moral_modifica:
995
    :param datos_modificacion:
996
    """
997
    
998
    def __init__(
999
            self,
1000
            persona_moral_modifica: PersonaMoralModificaType | dict,
1001
            datos_modificacion: DatosModificacionType | dict,
1002
    ): 
1003
        super().__init__({
1004
            'PersonaMoralModifica': persona_moral_modifica,
1005
            'DatosModificacion': datos_modificacion,
1006
        })
1007
        
1008
1009
class CapitalSocialType(ScalarMap):
1010
    """
1011
    
1012
    :param capital_fijo:
1013
    :param capital_variable:
1014
    """
1015
    
1016
    def __init__(
1017
            self,
1018
            capital_fijo: str,
1019
            capital_variable: str = None,
1020
    ): 
1021
        super().__init__({
1022
            'CapitalFijo': capital_fijo,
1023
            'CapitalVariable': capital_variable,
1024
        })
1025
        
1026
1027
class DatosAccionistaType(ScalarMap):
1028
    """
1029
    
1030
    :param cargo_accionista:
1031
    :param tipo_persona:
1032
    :param numero_acciones:
1033
    """
1034
    
1035
    def __init__(
1036
            self,
1037
            cargo_accionista: str,
1038
            tipo_persona: TipoPersonaSimpleType | dict,
1039
            numero_acciones: str,
1040
    ): 
1041
        super().__init__({
1042
            'CargoAccionista': cargo_accionista,
1043
            'TipoPersona': tipo_persona,
1044
            'NumeroAcciones': numero_acciones,
1045
        })
1046
        
1047
1048 View Code Duplication
class ConstitucionPersonasMoralesType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
1049
    """
1050
    
1051
    :param tipo_persona_moral:
1052
    :param denominacion_razon:
1053
    :param giro_mercantil:
1054
    :param numero_total_acciones:
1055
    :param entidad_federativa:
1056
    :param consejo_vigilancia:
1057
    :param motivo_constitucion:
1058
    :param datos_accionista:
1059
    :param capital_social:
1060
    :param tipo_persona_moral_otra:
1061
    :param folio_mercantil:
1062
    :param instrumento_publico:
1063
    """
1064
    
1065
    def __init__(
1066
            self,
1067
            tipo_persona_moral: str,
1068
            denominacion_razon: str,
1069
            giro_mercantil: str,
1070
            numero_total_acciones: str,
1071
            entidad_federativa: str,
1072
            consejo_vigilancia: str,
1073
            motivo_constitucion: str,
1074
            datos_accionista: DatosAccionistaType | dict | Sequence[DatosAccionistaType | dict],
1075
            capital_social: CapitalSocialType | dict,
1076
            tipo_persona_moral_otra: str = None,
1077
            folio_mercantil: str = None,
1078
            instrumento_publico: str = None,
1079
    ): 
1080
        super().__init__({
1081
            'TipoPersonaMoral': tipo_persona_moral,
1082
            'DenominacionRazon': denominacion_razon,
1083
            'GiroMercantil': giro_mercantil,
1084
            'NumeroTotalAcciones': numero_total_acciones,
1085
            'EntidadFederativa': entidad_federativa,
1086
            'ConsejoVigilancia': consejo_vigilancia,
1087
            'MotivoConstitucion': motivo_constitucion,
1088
            'DatosAccionista': datos_accionista,
1089
            'CapitalSocial': capital_social,
1090
            'TipoPersonaMoralOtra': tipo_persona_moral_otra,
1091
            'FolioMercantil': folio_mercantil,
1092
            'InstrumentoPublico': instrumento_publico,
1093
        })
1094
        
1095
1096
class PersonaFisicaSimpleType(ScalarMap):
1097
    """
1098
    
1099
    :param nombre:
1100
    :param apellido_paterno:
1101
    :param apellido_materno:
1102
    :param pais_nacionalidad:
1103
    :param fecha_nacimiento:
1104
    :param rfc:
1105
    :param curp:
1106
    """
1107
    
1108
    def __init__(
1109
            self,
1110
            nombre: str,
1111
            apellido_paterno: str,
1112
            apellido_materno: str,
1113
            pais_nacionalidad: str,
1114
            fecha_nacimiento: date = None,
1115
            rfc: str = None,
1116
            curp: str = None,
1117
    ): 
1118
        super().__init__({
1119
            'Nombre': nombre,
1120
            'ApellidoPaterno': apellido_paterno,
1121
            'ApellidoMaterno': apellido_materno,
1122
            'PaisNacionalidad': pais_nacionalidad,
1123
            'FechaNacimiento': fecha_nacimiento,
1124
            'Rfc': rfc,
1125
            'Curp': curp,
1126
        })
1127
        
1128
1129
class PersonaMoralSimpleType(ScalarMap):
1130
    """
1131
    
1132
    :param denominacion_razon:
1133
    :param pais_nacionalidad:
1134
    :param fecha_constitucion:
1135
    :param rfc:
1136
    """
1137
    
1138
    def __init__(
1139
            self,
1140
            denominacion_razon: str,
1141
            pais_nacionalidad: str,
1142
            fecha_constitucion: date = None,
1143
            rfc: str = None,
1144
    ): 
1145
        super().__init__({
1146
            'DenominacionRazon': denominacion_razon,
1147
            'PaisNacionalidad': pais_nacionalidad,
1148
            'FechaConstitucion': fecha_constitucion,
1149
            'Rfc': rfc,
1150
        })
1151
        
1152
1153
class TipoPersonaSimpleType(ScalarMap):
1154
    """
1155
    
1156
    :param persona_fisica:
1157
    :param persona_moral:
1158
    :param fideicomiso:
1159
    """
1160
    
1161
    def __init__(
1162
            self,
1163
            persona_fisica: PersonaFisicaSimpleType | dict = None,
1164
            persona_moral: PersonaMoralSimpleType | dict = None,
1165
            fideicomiso: FideicomisoType | dict = None,
1166
    ): 
1167
        super().__init__({
1168
            'PersonaFisica': persona_fisica,
1169
            'PersonaMoral': persona_moral,
1170
            'Fideicomiso': fideicomiso,
1171
        })
1172
        
1173
1174
class FideicomisoType(ScalarMap):
1175
    """
1176
    
1177
    :param denominacion_razon:
1178
    :param rfc:
1179
    :param identificador_fideicomiso:
1180
    """
1181
    
1182
    def __init__(
1183
            self,
1184
            denominacion_razon: str,
1185
            rfc: str = None,
1186
            identificador_fideicomiso: str = None,
1187
    ): 
1188
        super().__init__({
1189
            'DenominacionRazon': denominacion_razon,
1190
            'Rfc': rfc,
1191
            'IdentificadorFideicomiso': identificador_fideicomiso,
1192
        })
1193
        
1194
1195
class PersonaMoralType(ScalarMap):
1196
    """
1197
    
1198
    :param denominacion_razon:
1199
    :param pais_nacionalidad:
1200
    :param giro_mercantil:
1201
    :param fecha_constitucion:
1202
    :param rfc:
1203
    """
1204
    
1205
    def __init__(
1206
            self,
1207
            denominacion_razon: str,
1208
            pais_nacionalidad: str,
1209
            giro_mercantil: str,
1210
            fecha_constitucion: date = None,
1211
            rfc: str = None,
1212
    ): 
1213
        super().__init__({
1214
            'DenominacionRazon': denominacion_razon,
1215
            'PaisNacionalidad': pais_nacionalidad,
1216
            'GiroMercantil': giro_mercantil,
1217
            'FechaConstitucion': fecha_constitucion,
1218
            'Rfc': rfc,
1219
        })
1220
        
1221
1222
class PersonaFisicaType(ScalarMap):
1223
    """
1224
    
1225
    :param nombre:
1226
    :param apellido_paterno:
1227
    :param apellido_materno:
1228
    :param pais_nacionalidad:
1229
    :param actividad_economica:
1230
    :param fecha_nacimiento:
1231
    :param rfc:
1232
    :param curp:
1233
    """
1234
    
1235
    def __init__(
1236
            self,
1237
            nombre: str,
1238
            apellido_paterno: str,
1239
            apellido_materno: str,
1240
            pais_nacionalidad: str,
1241
            actividad_economica: str,
1242
            fecha_nacimiento: date = None,
1243
            rfc: str = None,
1244
            curp: str = None,
1245
    ): 
1246
        super().__init__({
1247
            'Nombre': nombre,
1248
            'ApellidoPaterno': apellido_paterno,
1249
            'ApellidoMaterno': apellido_materno,
1250
            'PaisNacionalidad': pais_nacionalidad,
1251
            'ActividadEconomica': actividad_economica,
1252
            'FechaNacimiento': fecha_nacimiento,
1253
            'Rfc': rfc,
1254
            'Curp': curp,
1255
        })
1256
        
1257
1258
class TipoPersonaType(ScalarMap):
1259
    """
1260
    
1261
    :param persona_fisica:
1262
    :param persona_moral:
1263
    :param fideicomiso:
1264
    """
1265
    
1266
    def __init__(
1267
            self,
1268
            persona_fisica: PersonaFisicaType | dict = None,
1269
            persona_moral: PersonaMoralType | dict = None,
1270
            fideicomiso: FideicomisoType | dict = None,
1271
    ): 
1272
        super().__init__({
1273
            'PersonaFisica': persona_fisica,
1274
            'PersonaMoral': persona_moral,
1275
            'Fideicomiso': fideicomiso,
1276
        })
1277
        
1278
1279
class DatosApoderadoType(ScalarMap):
1280
    """
1281
    
1282
    :param tipo_poder:
1283
    :param tipo_persona:
1284
    """
1285
    
1286
    def __init__(
1287
            self,
1288
            tipo_poder: str,
1289
            tipo_persona: TipoPersonaSimpleType | dict,
1290
    ): 
1291
        super().__init__({
1292
            'TipoPoder': tipo_poder,
1293
            'TipoPersona': tipo_persona,
1294
        })
1295
        
1296
1297
class DatosPoderdanteType(ScalarMap):
1298
    """
1299
    
1300
    :param tipo_persona:
1301
    """
1302
    
1303
    def __init__(
1304
            self,
1305
            tipo_persona: TipoPersonaType | dict,
1306
    ): 
1307
        super().__init__({
1308
            'TipoPersona': tipo_persona,
1309
        })
1310
        
1311
1312
class OtorgamientoPoderType(ScalarMap):
1313
    """
1314
    
1315
    :param datos_poderdante:
1316
    :param datos_apoderado:
1317
    """
1318
    
1319
    def __init__(
1320
            self,
1321
            datos_poderdante: DatosPoderdanteType | dict | Sequence[DatosPoderdanteType | dict],
1322
            datos_apoderado: DatosApoderadoType | dict | Sequence[DatosApoderadoType | dict],
1323
    ): 
1324
        super().__init__({
1325
            'DatosPoderdante': datos_poderdante,
1326
            'DatosApoderado': datos_apoderado,
1327
        })
1328
        
1329
1330
class TipoActividadType(ScalarMap):
1331
    """
1332
    
1333
    :param otorgamiento_poder:
1334
    :param constitucion_personas_morales:
1335
    :param modificacion_patrimonial:
1336
    :param fusion:
1337
    :param escision:
1338
    :param compra_venta_acciones:
1339
    :param constitucion_modificacion_fideicomiso:
1340
    :param cesion_derechos_fideicomitente_fideicomisario:
1341
    :param contrato_mutuo_credito:
1342
    :param avaluo:
1343
    """
1344
    
1345
    def __init__(
1346
            self,
1347
            otorgamiento_poder: OtorgamientoPoderType | dict = None,
1348
            constitucion_personas_morales: ConstitucionPersonasMoralesType | dict = None,
1349
            modificacion_patrimonial: ModificacionPatrimonialType | dict = None,
1350
            fusion: FusionType | dict = None,
1351
            escision: EscisionType | dict = None,
1352
            compra_venta_acciones: CompraVentaAccionesType | dict = None,
1353
            constitucion_modificacion_fideicomiso: ConstModFideicomisoType | dict = None,
1354
            cesion_derechos_fideicomitente_fideicomisario: CesionDerechosType | dict = None,
1355
            contrato_mutuo_credito: ContratoMutuoCredType | dict = None,
1356
            avaluo: AvaluoType | dict = None,
1357
    ): 
1358
        super().__init__({
1359
            'OtorgamientoPoder': otorgamiento_poder,
1360
            'ConstitucionPersonasMorales': constitucion_personas_morales,
1361
            'ModificacionPatrimonial': modificacion_patrimonial,
1362
            'Fusion': fusion,
1363
            'Escision': escision,
1364
            'CompraVentaAcciones': compra_venta_acciones,
1365
            'ConstitucionModificacionFideicomiso': constitucion_modificacion_fideicomiso,
1366
            'CesionDerechosFideicomitenteFideicomisario': cesion_derechos_fideicomitente_fideicomisario,
1367
            'ContratoMutuoCredito': contrato_mutuo_credito,
1368
            'Avaluo': avaluo,
1369
        })
1370
        
1371
1372
class DatosOperacionType(ScalarMap):
1373
    """
1374
    
1375
    :param instrumento_publico:
1376
    :param fecha_operacion:
1377
    :param tipo_actividad:
1378
    """
1379
    
1380
    def __init__(
1381
            self,
1382
            instrumento_publico: str,
1383
            fecha_operacion: date,
1384
            tipo_actividad: TipoActividadType | dict,
1385
    ): 
1386
        super().__init__({
1387
            'InstrumentoPublico': instrumento_publico,
1388
            'FechaOperacion': fecha_operacion,
1389
            'TipoActividad': tipo_actividad,
1390
        })
1391
        
1392
1393
class DetalleOperacionesType(ScalarMap):
1394
    """
1395
    
1396
    :param datos_operacion:
1397
    """
1398
    
1399
    def __init__(
1400
            self,
1401
            datos_operacion: DatosOperacionType | dict | Sequence[DatosOperacionType | dict],
1402
    ): 
1403
        super().__init__({
1404
            'DatosOperacion': datos_operacion,
1405
        })
1406
        
1407
1408
class PersonaAvisoType(ScalarMap):
1409
    """
1410
    
1411
    :param nombre:
1412
    :param apellido_paterno:
1413
    :param apellido_materno:
1414
    :param fecha_nacimiento:
1415
    :param rfc:
1416
    :param curp:
1417
    """
1418
    
1419
    def __init__(
1420
            self,
1421
            nombre: str,
1422
            apellido_paterno: str,
1423
            apellido_materno: str,
1424
            fecha_nacimiento: date = None,
1425
            rfc: str = None,
1426
            curp: str = None,
1427
    ): 
1428
        super().__init__({
1429
            'Nombre': nombre,
1430
            'ApellidoPaterno': apellido_paterno,
1431
            'ApellidoMaterno': apellido_materno,
1432
            'FechaNacimiento': fecha_nacimiento,
1433
            'Rfc': rfc,
1434
            'Curp': curp,
1435
        })
1436
        
1437
1438
class AlertaType(ScalarMap):
1439
    """
1440
    
1441
    :param tipo_alerta:
1442
    :param descripcion_alerta:
1443
    """
1444
    
1445
    def __init__(
1446
            self,
1447
            tipo_alerta: str,
1448
            descripcion_alerta: str = None,
1449
    ): 
1450
        super().__init__({
1451
            'TipoAlerta': tipo_alerta,
1452
            'DescripcionAlerta': descripcion_alerta,
1453
        })
1454
        
1455
1456
class ModificatorioType(ScalarMap):
1457
    """
1458
    
1459
    :param folio_modificacion:
1460
    :param descripcion_modificacion:
1461
    """
1462
    
1463
    def __init__(
1464
            self,
1465
            folio_modificacion: str,
1466
            descripcion_modificacion: str,
1467
    ): 
1468
        super().__init__({
1469
            'FolioModificacion': folio_modificacion,
1470
            'DescripcionModificacion': descripcion_modificacion,
1471
        })
1472
        
1473
1474
class AvisoType(ScalarMap):
1475
    """
1476
    
1477
    :param referencia_aviso:
1478
    :param prioridad:
1479
    :param alerta:
1480
    :param persona_aviso:
1481
    :param detalle_operaciones:
1482
    :param modificatorio:
1483
    """
1484
    
1485
    def __init__(
1486
            self,
1487
            referencia_aviso: str,
1488
            prioridad: str,
1489
            alerta: AlertaType | dict,
1490
            persona_aviso: PersonaAvisoType | dict | Sequence[PersonaAvisoType | dict],
1491
            detalle_operaciones: DetalleOperacionesType | dict,
1492
            modificatorio: ModificatorioType | dict = None,
1493
    ): 
1494
        super().__init__({
1495
            'ReferenciaAviso': referencia_aviso,
1496
            'Prioridad': prioridad,
1497
            'Alerta': alerta,
1498
            'PersonaAviso': persona_aviso,
1499
            'DetalleOperaciones': detalle_operaciones,
1500
            'Modificatorio': modificatorio,
1501
        })
1502
        
1503
1504
class SujetoObligadoType(ScalarMap):
1505
    """
1506
    
1507
    :param clave_sujeto_obligado:
1508
    :param clave_actividad:
1509
    :param clave_entidad_colegiada:
1510
    :param exento:
1511
    """
1512
    
1513
    def __init__(
1514
            self,
1515
            clave_sujeto_obligado: str,
1516
            clave_actividad: str,
1517
            clave_entidad_colegiada: str = None,
1518
            exento: str = None,
1519
    ): 
1520
        super().__init__({
1521
            'ClaveSujetoObligado': clave_sujeto_obligado,
1522
            'ClaveActividad': clave_actividad,
1523
            'ClaveEntidadColegiada': clave_entidad_colegiada,
1524
            'Exento': exento,
1525
        })
1526
        
1527
1528 View Code Duplication
class InformeType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
1529
    """
1530
    
1531
    :param mes_reportado:
1532
    :param sujeto_obligado:
1533
    :param aviso:
1534
    """
1535
    
1536
    def __init__(
1537
            self,
1538
            mes_reportado: str,
1539
            sujeto_obligado: SujetoObligadoType | dict,
1540
            aviso: AvisoType | dict | Sequence[AvisoType | dict] = None,
1541
    ): 
1542
        super().__init__({
1543
            'MesReportado': mes_reportado,
1544
            'SujetoObligado': sujeto_obligado,
1545
            'Aviso': aviso,
1546
        })
1547
        
1548
1549
class ArchivoType(ScalarMap):
1550
    """
1551
    
1552
    :param informe:
1553
    """
1554
    
1555
    def __init__(
1556
            self,
1557
            informe: InformeType | dict | Sequence[InformeType | dict],
1558
    ): 
1559
        super().__init__({
1560
            'Informe': informe,
1561
        })
1562
        
1563
1564
class TipoPersona1Type(ScalarMap):
1565
    """
1566
    
1567
    :param tipo_movimiento_fideicomisario:
1568
    :param persona_fisica:
1569
    :param persona_moral:
1570
    :param fideicomiso:
1571
    """
1572
    
1573
    def __init__(
1574
            self,
1575
            tipo_movimiento_fideicomisario: str,
1576
            persona_fisica: PersonaFisicaType | dict = None,
1577
            persona_moral: PersonaMoralType | dict = None,
1578
            fideicomiso: FideicomisoType | dict = None,
1579
    ): 
1580
        super().__init__({
1581
            'TipoMovimientoFideicomisario': tipo_movimiento_fideicomisario,
1582
            'PersonaFisica': persona_fisica,
1583
            'PersonaMoral': persona_moral,
1584
            'Fideicomiso': fideicomiso,
1585
        })
1586
        
1587
1588
class Archivo(ArchivoType, XElement):
1589
    tag = '{http://www.uif.shcp.gob.mx/recepcion/fep}archivo'
1590
1591