satcfdi.create.cfd.ine11   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 58
Duplicated Lines 44.83 %

Importance

Changes 0
Metric Value
eloc 32
dl 26
loc 58
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A INE.__init__() 13 13 1
A Entidad.__init__() 0 10 1

How to fix   Duplicated Code   

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:

1
"""ine http://www.sat.gob.mx/ine"""
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 Entidad(ScalarMap):
11
    """
12
    Nodo condicional para expresar los datos correspondientes a las entidades federativas o circunscripciones en las que se va a aplicar el gasto.
13
    
14
    :param clave_entidad: Atributo requerido para registrar la clave de la entidad o circunscripción a la que aplica el gasto.
15
    :param ambito: Atributo condicional para registrar el tipo de ámbito de un proceso de tipo Campaña o Precampaña. este atributo no se debe registrar para los procesos de tipo Ordinario.
16
    :param contabilidad: Nodo para expresar la clave de contabilidad de aspirantes precandidatos, candidatos y concentradoras.
17
    """
18
    
19
    def __init__(
20
            self,
21
            clave_entidad: str,
22
            ambito: str = None,
23
            contabilidad: int | Sequence[int] = None,
24
    ): 
25
        super().__init__({
26
            'ClaveEntidad': clave_entidad,
27
            'Ambito': ambito,
28
            'Contabilidad': contabilidad,
29
        })
30
        
31
32 View Code Duplication
class INE(CFDI):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
33
    """
34
    Complemento al Comprobante Fiscal Digital por Internet (CFDI) para incluir los datos que identifiquen el tipo de proceso al que van dirigidos los gastos que realizan los partidos o las Asociaciones Civiles.
35
    
36
    :param tipo_proceso: Atributo requerido para expresar el tipo de proceso de que se trate.
37
    :param tipo_comite: Atributo condicional para expresar el tipo de comité de que se trate.
38
    :param id_contabilidad: Atributo opcional para registrar la clave de contabilidad de aspirantes precandidatos, candidatos y concentradoras, si se trata de un tipo de proceso ordinario y un comité ejecutivo nacional.Para los otros casos, la clave de contabilidad se registra en el atributo ine:Entidad:Contabilidad:IdContabilidad.
39
    :param entidad: Nodo condicional para expresar los datos correspondientes a las entidades federativas o circunscripciones en las que se va a aplicar el gasto.
40
    """
41
    
42
    tag = '{http://www.sat.gob.mx/ine}INE'
43
    version = '1.1'
44
    
45
    def __init__(
46
            self,
47
            tipo_proceso: str,
48
            tipo_comite: str = None,
49
            id_contabilidad: int = None,
50
            entidad: Entidad | dict | Sequence[Entidad | dict] = None,
51
    ): 
52
        super().__init__({
53
            'Version': self.version,
54
            'TipoProceso': tipo_proceso,
55
            'TipoComite': tipo_comite,
56
            'IdContabilidad': id_contabilidad,
57
            'Entidad': entidad,
58
        })
59
        
60
61