https://github.com/idlesign/vininfo
Extracts useful information from Vehicle Identification Number (VIN)
https://github.com/idlesign/vininfo
car cli python python3 vin
Last synced: 9 months ago
JSON representation
Extracts useful information from Vehicle Identification Number (VIN)
- Host: GitHub
- URL: https://github.com/idlesign/vininfo
- Owner: idlesign
- License: bsd-3-clause
- Created: 2018-07-26T13:31:28.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-01-31T01:01:17.000Z (over 2 years ago)
- Last Synced: 2025-04-04T04:12:33.843Z (about 1 year ago)
- Topics: car, cli, python, python3, vin
- Language: Python
- Homepage: https://github.com/idlesign/vininfo
- Size: 137 KB
- Stars: 119
- Watchers: 13
- Forks: 40
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG
- Contributing: CONTRIBUTING
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
- awesome-tools - vininfo - VIN 解析工具。 (Utilities / Packages)
README
vininfo
=======
https://github.com/idlesign/vininfo
|release| |lic| |coverage|
.. |release| image:: https://img.shields.io/pypi/v/vininfo.svg
:target: https://pypi.python.org/pypi/vininfo
.. |lic| image:: https://img.shields.io/pypi/l/vininfo.svg
:target: https://pypi.python.org/pypi/vininfo
.. |coverage| image:: https://img.shields.io/coveralls/idlesign/vininfo/master.svg
:target: https://coveralls.io/r/idlesign/vininfo
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]
.. code-block:: bash
$ 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
~~~~~~
.. code-block:: 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).