Skip to content

Commit a4bb4a0

Browse files
committed
Adición carpeta temporales
1 parent adcd6dd commit a4bb4a0

File tree

3 files changed

+12
-41
lines changed

3 files changed

+12
-41
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ dist/
4747
*.swp
4848
*.swo
4949
.DS_Store
50+
temp/
5051

5152
# Package files
5253
*.egg

pyproject.toml

-2
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,3 @@ addopts = "--import-mode=importlib"
1818
requires = ["poetry-core>=1.0.0"]
1919
build-backend = "poetry.core.masonry.api"
2020

21-
[tool.poetry.classifiers]
22-
Development Status = "5 - Production/Stable"

rutificador/main.py

+11-39
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99

1010
class RutInvalidoError(Exception):
11-
"""Lanzada cuando el formato del RUT ingresado es inválido."""
11+
"""Lanzada cuando el RUT ingresado es inválido."""
1212

1313

1414
class RutBase:
@@ -75,38 +75,26 @@ class Rut:
7575
PATRON_RUT = re.compile(RUT_REGEX)
7676

7777
def __init__(self, rut: str):
78-
"""
79-
Inicializa un objeto Rut.
80-
81-
Args:
82-
rut (str): El RUT en formato string o numérico.
83-
84-
Raises:
85-
RutInvalidoError: Si el formato del RUT ingresado es inválido.
86-
"""
8778
self.rut_string = str(rut).strip()
8879
self._validar_formato_rut()
80+
self._validar_digito_verificador()
8981
self.base = RutBase(self.base_string)
9082
self.digito_verificador = RutDigitoVerificador(self.base_string)
9183

9284
def _validar_formato_rut(self):
93-
"""Valida el formato del RUT ingresado."""
9485
match = Rut.PATRON_RUT.fullmatch(self.rut_string)
9586
if not match:
9687
raise RutInvalidoError(
9788
f"El formato del RUT '{self.rut_string}' es inválido."
9889
)
99-
10090
self.base_string = match.group(1)
91+
92+
def _validar_digito_verificador(self):
93+
match = Rut.PATRON_RUT.fullmatch(self.rut_string)
10194
digito_verificador_input = match.group(3).lower() if match.group(3) else None
102-
digito_verificador_calculado = RutDigitoVerificador(
103-
self.base_string
104-
).digito_verificador
105-
106-
if (
107-
digito_verificador_input
108-
and digito_verificador_input != digito_verificador_calculado
109-
):
95+
digito_verificador_calculado = RutDigitoVerificador(self.base_string).digito_verificador
96+
97+
if digito_verificador_input and digito_verificador_input != digito_verificador_calculado:
11098
raise RutInvalidoError(
11199
f"El dígito verificador '{digito_verificador_input}' no coincide con "
112100
f"el dígito verificador calculado '{digito_verificador_calculado}'."
@@ -116,16 +104,7 @@ def __str__(self):
116104
return f"{self.base}-{self.digito_verificador}"
117105

118106
def formatear(self, separador_miles=False, mayusculas=False):
119-
"""
120-
Formatea el RUT según las opciones especificadas.
121-
122-
Args:
123-
separador_miles (bool, opcional): Si se deben agregar separadores de miles (puntos).
124-
mayusculas (bool, opcional): Si el D.V. debe ser mayúscula cuando este sea 'k'.
125-
126-
Returns:
127-
str: El RUT formateado según las opciones especificadas.
128-
"""
107+
"""Formatea el RUT según las opciones especificadas."""
129108
rut = str(self)
130109
if separador_miles:
131110
rut = (
@@ -153,11 +132,8 @@ def validar_lista_ruts(ruts):
153132
ruts (List[str]): Una lista de RUTs en formato string o numérico.
154133
155134
Returns:
156-
dict: Un diccionario con dos claves: 'validos' y 'invalidos',
135+
dict: Un diccionario con dos claves: 'validos' e 'invalidos',
157136
cada una conteniendo una lista de RUTs válidos e inválidos respectivamente.
158-
159-
Raises:
160-
RutInvalidoError: Si alguno de los RUTs en la lista es inválido.
161137
"""
162138
validos = []
163139
invalidos = []
@@ -201,15 +177,11 @@ def formatear_lista_ruts(
201177
ruts (List[str]): Una lista de RUTs en formato string o numérico.
202178
separador_miles (bool): Si se deben agregar separadores de miles (puntos).
203179
mayusculas (bool): Si los RUTs deben estar en mayúsculas.
204-
formato (str, opcional): El formato de salida deseado (csv, json, xml, etc.).
180+
formato (str, opcional): El formato de salida deseado (csv, json, xml, None).
205181
206182
Returns:
207183
str: Una cadena con los RUTs válidos e inválidos formateados según las opciones
208184
especificadas.
209-
210-
Raises:
211-
RutInvalidoError: Si alguno de los RUTs en la lista es inválido.
212-
ValueError: Si se especifica un formato no válido.
213185
"""
214186
formato_salida = {
215187
"csv": Rut._formatear_csv,

0 commit comments

Comments
 (0)