Skip to main content

Una librería Python para validar y trabajar con patentes vehiculares chilenas

Project description

Patentes Vehiculares Chile

Una librería Python para validar y trabajar con patentes vehiculares chilenas.

Instalación

pip install patentes-vehiculares-chile

Uso

Validación de Patentes

from patentes_vehiculares_chile import validar_patente, detectar_tipo_patente, limpiar_patente

# Validar una patente
es_valida = validar_patente("ABCD12")
print(es_valida)  # True

# Detectar tipo de patente
tipo = detectar_tipo_patente("AB1234")
print(tipo)  # TipoPatente.ANTIGUA

# Limpiar una patente
patente_limpia = limpiar_patente("  ab-12.34  ")
print(patente_limpia)  # "AB1234"

Detección de Tipos de Vehículos

from patentes_vehiculares_chile import detectar_tipo_vehiculo, TipoVehiculo

# Detectar tipo específico de vehículo
tipo = detectar_tipo_vehiculo("AB1234")
print(tipo)  # TipoVehiculo.VEHICULO_ANTIGUO

tipo = detectar_tipo_vehiculo("CD1234")
print(tipo)  # TipoVehiculo.DIPLOMATICO

tipo = detectar_tipo_vehiculo("RP5678")
print(tipo)  # TipoVehiculo.CARABINEROS

tipo = detectar_tipo_vehiculo("EJTO12")
print(tipo)  # TipoVehiculo.EJERCITO

tipo = detectar_tipo_vehiculo("CB9876")
print(tipo)  # TipoVehiculo.BOMBEROS

Validación de RUT

from patentes_vehiculares_chile import validar_rut, calcular_dv

# Validar un RUT
es_valido = validar_rut("12345678-5")
print(es_valido)  # True o False

# Calcular dígito verificador
dv = calcular_dv("12345678")
print(dv)  # "5"

Generación de Patentes y RUT

from patentes_vehiculares_chile import (
    generar_patente_vehiculo_antiguo,
    generar_patente_vehiculo_nuevo,
    generar_patente_motocicleta_antigua,
    generar_patente_motocicleta_nueva,
    generar_rut
)

# Generar patentes
patente_antigua = generar_patente_vehiculo_antiguo()
print(patente_antigua)  # "AB1234"

patente_nueva = generar_patente_vehiculo_nuevo()
print(patente_nueva)  # "BCDF12"

moto_antigua = generar_patente_motocicleta_antigua()
print(moto_antigua)  # "BC123"

moto_nueva = generar_patente_motocicleta_nueva()
print(moto_nueva)  # "BCD12"

# Generar RUT
rut = generar_rut()
print(rut)  # "12345678-5"

Características

  • Validación de patentes vehiculares chilenas

    • Soporte para formatos antiguos (AB1234) y nuevos (ABCD12)
    • Validación de motocicletas (formatos antiguos y nuevos)
    • Detección automática del tipo de patente
    • Nuevo: Identificación de tipos específicos de vehículos (particulares, diplomáticos, carabineros, ejército, bomberos)
  • Validación de RUT chileno

    • Validación completa con dígito verificador
    • Cálculo de dígito verificador
  • Generación de datos

    • Generación de patentes válidas (vehículos y motocicletas)
    • Generación de RUT válidos
  • Utilidades

    • Limpieza y normalización de patentes
    • Tipos de datos bien definidos

Formatos Soportados

Patentes de Vehículos Particulares

  • Antiguo (1845-2007): 2 letras + 4 números (ej: AB1234)
  • Nuevo (2008-2023): 4 consonantes + 2 números (ej: BCDF12)

Patentes de Motocicletas

  • Antiguo: 2 letras + 3 números (ej: BC123)
  • Nuevo: 3 letras + 2 números (ej: BCD12)

Patentes Especiales

  • Diplomático: CD/OI + 4 números (ej: CD1234, OI5678)
  • Carabineros: Código + 4 números (ej: RP1234, M5678)
  • Ejército: EJTO + 2 números (ej: EJTO12)
  • Bomberos: CB + 4 números (ej: CB1234)

RUT Chileno

  • Formato: 1-8 dígitos + guión + dígito verificador (ej: 12345678-5)

API Reference

Funciones de Validación

  • validar_patente(patente: str) -> bool
  • es_formato_valido(patente: str) -> bool
  • detectar_tipo_patente(patente: str) -> Optional[TipoPatente]
  • detectar_tipo_vehiculo(patente: str) -> TipoVehiculoNuevo en v0.3.0
  • validar_rut(rut: str) -> bool
  • calcular_dv(rut_num: str) -> str

Funciones de Generación

  • generar_patente_vehiculo_antiguo() -> str
  • generar_patente_vehiculo_nuevo() -> str
  • generar_patente_motocicleta_antigua() -> str
  • generar_patente_motocicleta_nueva() -> str
  • generar_rut() -> str

Utilidades

  • limpiar_patente(patente: str) -> str

Tipos de Datos

  • TipoPatente: Enum con valores ANTIGUA y NUEVA
  • TipoVehiculo: Enum con valores VEHICULO_ANTIGUO, VEHICULO_NUEVO, MOTOCICLETA_ANTIGUA, MOTOCICLETA_NUEVA, DIPLOMATICO, CARABINEROS, EJERCITO, BOMBEROS, DESCONOCIDONuevo en v0.3.0
  • FormatoPatente: Estructura que define formatos de patentes
  • FormatoRut: Estructura que define formato de RUT

Contribuir

Las contribuciones son bienvenidas. Por favor, abre un issue primero para discutir los cambios que te gustaría hacer.

Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

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

patentes_vehiculares_chile-0.3.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

patentes_vehiculares_chile-0.3.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file patentes_vehiculares_chile-0.3.0.tar.gz.

File metadata

File hashes

Hashes for patentes_vehiculares_chile-0.3.0.tar.gz
Algorithm Hash digest
SHA256 bc4a7be903600e48c7d92ccc12b149f204cd8d6823c0e3bb5f0414356578d8cc
MD5 aac1ed3c9f6012cd6aa5814ff05109c4
BLAKE2b-256 1fe0d2132f0d34242d87444794c07269921e0b1f600746f4b1c09aab41b490e2

See more details on using hashes here.

File details

Details for the file patentes_vehiculares_chile-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for patentes_vehiculares_chile-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 054da758f13e6bb68c62d6acc60e24b0714bc04d48059487ecc0d6c555953035
MD5 adc32d16a0f26e5c85265e02ffd0531c
BLAKE2b-256 9184908967187d008e38e4c6e896febd7d758585d65ec4779f9245bdc2dce223

See more details on using hashes here.

Supported by

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