Skip to content

Extracts useful information from Vehicle Identification Number (VIN)

License

Notifications You must be signed in to change notification settings

ruguowoshiyu/vininfo

This branch is 56 commits behind idlesign/vininfo:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ca961aa · Jul 30, 2020

History

51 Commits
Jul 30, 2020
Jul 30, 2020
Jul 26, 2018
Jul 26, 2018
May 2, 2020
Jul 9, 2020
Jul 30, 2020
Jul 26, 2018
Jul 26, 2018
May 2, 2020
Jul 26, 2018
Jul 30, 2020
Jul 26, 2018
Jul 30, 2020
May 2, 2020

Repository files navigation

vininfo

https://github.com/idlesign/vininfo

LBC Python 2

release lic ci coverage

Description

Extracts useful information from Vehicle Identification Number (VIN)

  • Can be used as a standalone console application (CLI).
  • One can also use import it as any other package in your Python code.
  • Gives basic and detailed info (is available) about VIN.
  • Allows VIN checksum verification.

Additional info available for many vehicles from:

  • AvtoVAZ
  • Nissan
  • Opel
  • Renault

Requirements

  • Python 3.6+
  • click package for CLI

Usage

CLI

click package is required for CLI. You can install vininfo with click using:

$ pip install vininfo[cli]
$ vininfo --help

; Print out VIN info:
$ vininfo show XTAGFK330JY144213

; Basic:
; Country: USSR/CIS
; Manufacturer: AvtoVAZ
; Region: Europe
; Years: 2018, 1988
;
; Details:
; Body: Station Wagon, 5-Door
; Engine: 21179
; Model: Vesta
; Plant: Izhevsk
; Serial: 144213
; Transmission: Manual Renault

; Verify checksum
$ vininfo check 1M8GDM9AXKP042788
; Checksum is valid

Python

from vininfo import Vin

vin = Vin('VF1LM1B0H36666155')

vin.country  # France
vin.manufacturer  # Renault
vin.region  # Europe
vin.wmi  # VF1
vin.vds  # LM1B0H
vin.vis  # 36666155

annotated = vin.annotate()
details = vin.details

vin.verify_checksum()  # False
Vin('1M8GDM9AXKP042788').verify_checksum()  # True

Development

One can add missing WMI(s) using instructions from dicts/wmi.py: WMI dictionary, that maps WMI strings to manufacturers.

Those manufacturers may be represented by simple strings, or instances of Brand subclasses (see brands.py).

If you know how to decode additional information (model, body, engine, etc.) encoded in VIN, you may also want to create a so-called details extractor for a brand.

Details extractors are VinDetails subclasses in most cases making use of Detail descriptors to represent additional information (see details/nissan.py for example).

About

Extracts useful information from Vehicle Identification Number (VIN)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%