satcfdi.render.helpers   A
last analyzed

Complexity

Total Complexity 15

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Test Coverage

Coverage 96.55%

Importance

Changes 0
Metric Value
eloc 40
dl 0
loc 57
ccs 28
cts 29
cp 0.9655
rs 10
c 0
b 0
f 0
wmc 15

3 Functions

Rating   Name   Duplication   Size   Complexity  
A format_address() 0 12 1
A desc() 0 4 2
D format_address_raw() 0 32 12
1 1
from ..models import Code
2
3
4 1
def format_address_raw(calle, num_exterior, num_interior, referencia, colonia, municipio, localidad, estado, pais, codigo_postal):
5 1
    parts = []
6
7 1
    calle_num = None
8 1
    if calle or num_exterior or num_interior:
9 1
        if num_exterior:
10 1
            calle_num = f"{calle} #{num_exterior}"
11
        else:
12 1
            calle_num = f"{calle}"
13
14 1
        if num_interior:
15 1
            calle_num = f"{calle_num}, int. #{num_interior}"
16
17 1
    if colonia:
18 1
        if calle_num:
19 1
            parts.append(f"{calle_num}, {colonia}")
20
        else:
21
            parts.append(f"{colonia}")
22
23 1
    if referencia:
24 1
        parts.append(f"{referencia}")
25
26 1
    if localidad and localidad != municipio:
27 1
        parts.append(f"{localidad}")
28
29 1
    if municipio:
30 1
        parts.append(f"{municipio}, {estado} {codigo_postal}")
31
    else:
32 1
        parts.append(f"{estado} {codigo_postal}")
33
34 1
    parts.append(f"{pais}")
35 1
    return "\n".join(parts)
36
37
38 1
def format_address(k):
39 1
    return format_address_raw(
40
        calle=k["Calle"],
41
        num_exterior=k.get("NumeroExterior"),
42
        num_interior=k.get("NumeroInterior"),
43
        referencia=desc(k.get("Referencia")),
44
        colonia=desc(k.get("Colonia")),
45
        municipio=desc(k.get("Municipio")),
46
        localidad=desc(k.get("Localidad")),
47
        estado=desc(k["Estado"]),
48
        pais=desc(k["Pais"]),
49
        codigo_postal=k["CodigoPostal"]
50
    )
51
52
53 1
def desc(s):
54 1
    if isinstance(s, Code):
55 1
        return s.description
56
    return s
57