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>
Contribuciones
Las contribuciones son bienvenidas. Para colaborar puedes abrir un issue o si lo deseas puedes hacer un fork del repositorio, crear una rama nueva, hacer los cambios que consideres pertinentes con su respectiva documentación, hacer el commit, el push y el pull request para migrar los cambios al 'master'. Finalmente, asegúrate de describir los cambios que realizaste y por qué crees son necesarios.
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.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74b57857928376e678b04f8a41a92727e2cdb9dbcd3922fad2a4d2bdf234a544 |
|
MD5 | 7a4b428f4069e76f247eb14a29488cde |
|
BLAKE2b-256 | 61f2c42d6f625b2aaadff887b0a7383813391b7ffc2b8d94c3927b53cabb9214 |