Skip to content

nighcoder/vin-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vin-parser

Library that provides functions to work with VIN strings.

Install

vin-parser is available on PyPI and can be installed using pip.

$ pip install vin-parser

Usage

All the public functions are exported to the package namespace. We'll alias it as vp in the following examples.

>>> import vin_parser as vp

The functions check_no, seq_no, wmi, vds and vis return parts of the VIN string.

>>> vin = "1GYFK63878R248711"
>>> vp.check_no(vin)
'7'

Function check_no returns the VIN check digit, i.e. position 9 in the VIN string. It returns for all VINs, even for those that don't use the check digit schema.

>>> vp.wmi(vin)
'1GY'
>>> vp.vds(vin)
'FK6387'

Lowercase VINs are accepted:

>>> vp.vis(vin.lower())
'8R248711'

check_valid, is_valid and small_manuf are predicate functions, i.e. functions that return True or False. check_valid returns True if the VIN's check digit matches the computed value. is_valid returns True if the provided VIN is valid. Because the use of VIN check digit is not adopted worldwide, the check_valid test is not performed when verifing the validity of a VIN.

Functions continent, country, year and manuf parse the VIN and return the values. year returns a positive integer, while the others return a string with their name.

>>> vp.country(vin)
'United States'
>>> vp.year(vin)
2008
>>> vp.manuf(vin)
'General Motors USA'

Function parse calls all the other functions and returns the results in a dict if the provided VIN is valid. Function online_parse queries the nhtsa api with the provided VIN. Empty values are removed from the response and the rest are returned in a python dict. No other transformations are performed on the keys or values. Note that, unlike parse, online_parse doesn't check if the VIN is valid before sending it to the remote server.

The CHARS constant is a sorted string with all the valid characters of a VIN: A to Z, 1 to 9 and 0, except for I, O and Q.

About

A python library for parsing VIN strings

Resources

License

Stars

Watchers

Forks

Packages

No packages published