Rutificador


NameRutificador JSON
Version 0.0.2 PyPI version JSON
download
home_pagehttps://
SummaryEsta librería proporciona una implementación en Python para validar y formatear el Rol Único Tributario (RUT) utilizado en Chile.
upload_time2024-05-02 20:31:29
maintainerNone
docs_urlNone
authorCarlos Ortega González
requires_python<4.0,>=3.9
licenseMIT
keywords rut chile validación formateo
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Python](https://img.shields.io/badge/Python-3.9%2B-blue)](https://www.python.org/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

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

```python
!pip install *****
```

## Uso

### Importar la clase Rut

```python
from rutificador import Rut
```

## Crear Un Objeto

```python
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

```python
from rutificador import RutDigitoVerificador

digito_verificador = RutDigitoVerificador('12345678').digito_verificador
print(digito_verificador)  # Salida: 5
```

## Formatear un RUT

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

```python
# 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](https://github.com/gevalenz/rut-chile) de [gevalenz](https://github.com/gevalenz), que es un módulo Python que proporciona funcionalidades comunes relacionadas con el RUT chileno.


            

Raw data

            {
    "_id": null,
    "home_page": "https://",
    "name": "Rutificador",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "RUT, Chile, validaci\u00f3n, formateo",
    "author": "Carlos Ortega Gonz\u00e1lez",
    "author_email": "carlosortega77@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/bf/71/8d246fd7f4b4f4b6d4b2c417d70d23c335d7ce6e2270670f4a5e28995697/rutificador-0.0.2.tar.gz",
    "platform": null,
    "description": "[![Python](https://img.shields.io/badge/Python-3.9%2B-blue)](https://www.python.org/)\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n# Rutificador\n\nUna biblioteca Python para validar y formatear RUTs (Rol \u00danico Tributario) chilenos.\n\n## Caracter\u00edsticas\n\n- Validaci\u00f3n del formato del RUT.\n- C\u00e1lculo del d\u00edgito verificador del RUT.\n- Formateo del RUT con diferentes opciones (separador de miles, may\u00fasculas, formato de salida).\n- Validaci\u00f3n y formateo de listas de RUTs.\n- Manejo de excepciones personalizadas.\n- **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.\n- **Separaci\u00f3n de resultados:** Los resultados de los lotes se entregan por separado, mostrando RUTs v\u00e1lidos e inv\u00e1lidos, y pueden exportarse en varios formatos, incluidos CSV, XML y JSON.\n\n## Instalaci\u00f3n\n\nPuedes instalar la librer\u00eda utilizando pip:\n\n```python\n!pip install *****\n```\n\n## Uso\n\n### Importar la clase Rut\n\n```python\nfrom rutificador import Rut\n```\n\n## Crear Un Objeto\n\n```python\nrut1 = Rut('12345678-5')\nrut2 = Rut('12.345.670')\n```\n\n## Validar un RUT\n\nLa validaci\u00f3n del RUT se realiza autom\u00e1ticamente al crear un objeto `Rut`. La clase 'Rut' acepta RUTs con y sin d\u00edgito verificador as\u00ed como RUTs con y sin separador de miles. Si el RUT ingresado no es v\u00e1lido, se lanzar\u00e1 una excepci\u00f3n `RutInvalidoError`.\n\n## Calcular el D\u00edgito Verificador de un RUT\n\n```python\nfrom rutificador import RutDigitoVerificador\n\ndigito_verificador = RutDigitoVerificador('12345678').digito_verificador\nprint(digito_verificador)  # Salida: 5\n```\n\n## Formatear un RUT\n\n```python\n# Formato predeterminado\nprint(rut1.formatear())  # Salida: 12345678-5\n\n# Con separador de miles\nprint(rut1.formatear(separador_miles=True))  # Salida: 12.345.678-5\n\n# Formato predeterminado (Rut con d\u00edgito verificador = 'k')\nprint(rut2.formatear())  # Salida: 12345670-k\n\n# Con separador de miles y en may\u00fasculas\nprint(rut2.formatear(separador_miles=True, mayusculas=True))  # Salida: 12.345.670-K\n```\n\n## Validar y Formatear una lista de RUTs con y sin formato\n\n```python\n# Sin formato\nruts = ['12345678-5', '12345670-k', '98765432-1']\nruts_validos = Rut.validar_lista_ruts(ruts)\nprint(Rut.formatear_lista_ruts(ruts_validos, separador_miles=True, mayusculas=True))\n# Salida: \n# 12.345.678-5\n# 12.345.670-K\n# 98.765.432-1\n# En caso de que hayan RUTs inv\u00e1lidos, el m\u00e9todo validar_lista_ruts crear\u00e1 un diccionario dos listas:\n# una lista con los RUTs v\u00e1lidos (en el formato especificado) y otra con los inv\u00e1lidos.\n\n\n# En formato csv\nruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']\ncsv_ruts = Rut.formatear_lista_ruts(ruts, formato='csv')\nprint(csv_ruts)\n# Salida\nRUTs v\u00e1lidos:\nrut\n12345678-5\n9876543-3\n1234567-4\n18005183-k\n\n# En formato json\nruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']\njson_ruts = Rut.formatear_lista_ruts(ruts, formato='json')\nprint(json_ruts)\n# Salida\nRUTs v\u00e1lidos:\n[{\"rut\": \"12345678-5\"}, {\"rut\": \"9876543-3\"}, {\"rut\": \"1234567-4\"}, {\"rut\": \"18005183-k\"}]\n\n# En formato xml\nruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']\nxml_ruts = Rut.formatear_lista_ruts(ruts, formato='xml')\nprint(xml_ruts)\n# Salida\nRUTs v\u00e1lidos:\n<root>\n    <rut>12345678-5</rut>\n    <rut>9876543-3</rut>\n    <rut>1234567-4</rut>\n    <rut>18005183-k</rut>\n</root>\n\n# Formato predeterminado (formato = None)\nruts = ['12.345.678', '9876543', '1.234.567-4', '18005183']\nsin_formato_ruts = Rut.formatear_lista_ruts(ruts, formato=None)\nprint(sin_formato_ruts)\n# Salida\nRUTs v\u00e1lidos:\n12345678-5\n9876543-3\n1234567-4\n18005183-k\n```\n\n## Contribuciones\n\nLas contribuciones son bienvenidas. Para colaborar solo debes abrir un 'issue' con el aporte deseado.\n\n## Licencia\n\nEste proyecto est\u00e1 licenciado bajo la Licencia MIT.\n\n## Cr\u00e9ditos\n\nEste paquete fue creado por Carlos Ortega y se inspir\u00f3 en el proyecto [rut-chile](https://github.com/gevalenz/rut-chile) de [gevalenz](https://github.com/gevalenz), que es un m\u00f3dulo Python que proporciona funcionalidades comunes relacionadas con el RUT chileno.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Esta librer\u00eda proporciona una implementaci\u00f3n en Python para validar y formatear el Rol \u00danico Tributario (RUT) utilizado en Chile.",
    "version": "0.0.2",
    "project_urls": {
        "Homepage": "https://",
        "Repository": "https://github.com/cortega26/Rutificador"
    },
    "split_keywords": [
        "rut",
        " chile",
        " validaci\u00f3n",
        " formateo"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d02a8575cbc6116bc5fb238d12bd6b98d2677921938d6ae8986f9cffccd25d1b",
                "md5": "4d74d2f9a846e91816efe8a0eb04ce7d",
                "sha256": "077a3788346f8755bcaf021b49642cf41bb709f5dd7712ea1b4e93a333bf0bc2"
            },
            "downloads": -1,
            "filename": "rutificador-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4d74d2f9a846e91816efe8a0eb04ce7d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 6117,
            "upload_time": "2024-05-02T20:31:28",
            "upload_time_iso_8601": "2024-05-02T20:31:28.980908Z",
            "url": "https://files.pythonhosted.org/packages/d0/2a/8575cbc6116bc5fb238d12bd6b98d2677921938d6ae8986f9cffccd25d1b/rutificador-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bf718d246fd7f4b4f4b6d4b2c417d70d23c335d7ce6e2270670f4a5e28995697",
                "md5": "81e53233271f05e3b85f68e98070f4c3",
                "sha256": "01a04f4310f925bf2858487a483a3d6ff99aff7d441f5aa9724e8910c1c705b7"
            },
            "downloads": -1,
            "filename": "rutificador-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "81e53233271f05e3b85f68e98070f4c3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 5554,
            "upload_time": "2024-05-02T20:31:29",
            "upload_time_iso_8601": "2024-05-02T20:31:29.962144Z",
            "url": "https://files.pythonhosted.org/packages/bf/71/8d246fd7f4b4f4b6d4b2c417d70d23c335d7ce6e2270670f4a5e28995697/rutificador-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-02 20:31:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cortega26",
    "github_project": "Rutificador",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rutificador"
}
        
Elapsed time: 0.23407s