Esta librería proporciona una implementación en Python para validar y formatear el Rol Único Tributario (RUT) utilizado en Chile.
Project description
Rutificador
Una biblioteca Python para validar y formatear RUTs (Rol Único Tributario) chilenos.
Características
- Validación del formato del RUT.
- Cálculo del dígito verificador del RUT.
- Formateo del RUT con diferentes opciones (separador de miles, mayúsculas, formato de salida).
- Validación y formateo de listas de RUTs.
- Manejo de excepciones personalizadas.
- Procesamiento de lotes de RUTs: Permite procesar lotes de RUTs en lugar de hacerlo individualmente, lo que agiliza el trabajo con grandes cantidades de datos.
- Separación de resultados: Los resultados de los lotes se entregan por separado, mostrando RUTs válidos e inválidos, y pueden exportarse en varios formatos, incluidos CSV, XML y JSON.
Instalación
Puedes instalar la librería utilizando pip:
pip install rutificador
Uso
Importar la clase Rut
from rutificador import Rut
Crear Un Objeto
rut1 = Rut('12345678-5')
rut2 = Rut('12.345.670')
Validar un RUT
La validación del RUT se realiza automáticamente al crear un objeto Rut
. La clase 'Rut' acepta RUTs con y sin dígito verificador así como RUTs con y sin separador de miles. Si el RUT ingresado no es válido, se lanzará una excepción RutInvalidoError
.
Calcular el Dígito Verificador de un RUT
from rutificador import RutDigitoVerificador
digito_verificador = RutDigitoVerificador('12345678').digito_verificador
print(digito_verificador) # Salida: 5
Formatear un RUT
# Formato predeterminado
print(rut1.formatear()) # Salida: 12345678-5
# Con separador de miles
print(rut1.formatear(separador_miles=True)) # Salida: 12.345.678-5
# Formato predeterminado (Rut con dígito verificador = 'k')
print(rut2.formatear()) # Salida: 12345670-k
# Con separador de miles y en mayúsculas
print(rut2.formatear(separador_miles=True, mayusculas=True)) # Salida: 12.345.670-K
Validar y Formatear una lista de RUTs con y sin formato
# Sin formato
ruts = ['12345678-5', '12345670-k', '98765432-1']
ruts_validos = Rut.validar_lista_ruts(ruts)
print(Rut.formatear_lista_ruts(ruts_validos, separador_miles=True, mayusculas=True))
# Salida:
RUTs válidos:
12.345.678-5
12.345.670-K
98.765.432-1
# En formato csv
ruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']
csv_ruts = Rut.formatear_lista_ruts(ruts, formato='csv')
print(csv_ruts)
# Salida
RUTs válidos:
rut
12345678-5
9876543-3
1234567-4
18005183-k
# En formato json
ruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']
json_ruts = Rut.formatear_lista_ruts(ruts, formato='json')
print(json_ruts)
# Salida
RUTs válidos:
[{"rut": "12345678-5"}, {"rut": "9876543-3"}, {"rut": "1234567-4"}, {"rut": "18005183-k"}]
# En formato xml
ruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']
xml_ruts = Rut.formatear_lista_ruts(ruts, formato='xml')
print(xml_ruts)
# Salida
RUTs válidos:
<root>
<rut>12345678-5</rut>
<rut>9876543-3</rut>
<rut>1234567-4</rut>
<rut>18005183-k</rut>
</root>
Problemas o Requerimientos
¿Te gustaría reportar algún error, solicitar alguna modificación o característica adicional en esta librería? Solo debes abrir un 'issue' y describir tu petición de la forma más precisa y clara posible.
Contribuciones
Las contribuciones son bienvenidas. Solo debes hacer un fork del repositorio, crear una rama nueva, hacer los cambios que consideres pertinentes con su respectiva documentación, y finalmente el push y el pull request para migrar los cambios al 'master'.
Licencia
Este proyecto está licenciado bajo la Licencia MIT.
Créditos
Este paquete fue creado por Carlos Ortega y se inspiró en el proyecto rut-chile de gevalenz, que es un módulo Python que proporciona funcionalidades comunes relacionadas con el RUT chileno.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for rutificador-0.2.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 577d5aa36bf2e55c873888a367e9e3dd3261ed92755de909e0645e37cb0edd07 |
|
MD5 | 13fdaf4af933d30787341ebca73dff28 |
|
BLAKE2b-256 | 972462cf70302183ac96a98f9555f24499728aa8e8b0bf3fcca78ffd3011c79c |