Skip to main content

Esta librería proporciona una implementación en Python para validar y formatear el Rol Único Tributario (RUT) utilizado en Chile.

Project description

Python License Code Style

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 *****

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: 
# 12.345.678-5
# 12.345.670-K
# 98.765.432-1
# En caso de que hayan RUTs inválidos, el método validar_lista_ruts creará un diccionario dos listas:
# una lista con los RUTs válidos (en el formato especificado) y otra con los inválidos.


# 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>

# Formato predeterminado (formato = None)
ruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']
sin_formato_ruts = Rut.formatear_lista_ruts(ruts, formato=None)
print(sin_formato_ruts)
# Salida
RUTs válidos:
12345678-5
9876543-3
1234567-4
18005183-k

Contribuciones

Las contribuciones son bienvenidas. Para colaborar solo debes abrir un 'issue' con el aporte deseado.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rutificador-0.0.2.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

rutificador-0.0.2-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file rutificador-0.0.2.tar.gz.

File metadata

  • Download URL: rutificador-0.0.2.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for rutificador-0.0.2.tar.gz
Algorithm Hash digest
SHA256 01a04f4310f925bf2858487a483a3d6ff99aff7d441f5aa9724e8910c1c705b7
MD5 81e53233271f05e3b85f68e98070f4c3
BLAKE2b-256 bf718d246fd7f4b4f4b6d4b2c417d70d23c335d7ce6e2270670f4a5e28995697

See more details on using hashes here.

File details

Details for the file rutificador-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: rutificador-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for rutificador-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 077a3788346f8755bcaf021b49642cf41bb709f5dd7712ea1b4e93a333bf0bc2
MD5 4d74d2f9a846e91816efe8a0eb04ce7d
BLAKE2b-256 d02a8575cbc6116bc5fb238d12bd6b98d2677921938d6ae8986f9cffccd25d1b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page