Git Product home page Git Product logo

vin's People

Contributors

davidpeckham avatar

Stargazers

 avatar  avatar

Watchers

 avatar

vin's Issues

Accept and decode a few 2024 Genesis G80 vehicles with incorrect check digit

Due to a production issue, Hyundai produced the following 2024 Hyundai Genesis vehicles with incorrect check digits. NHTSA granted an exception for these vehicles and vPIC decodes them correctly:

  • KMTGA4SCDRU227656
  • KMTGA4SCDRU227658
  • KMTGA4SCDRU227662
  • KMTGA4SCDRU227668
  • KMTGA4SCDRU227669
  • KMTGA4SCDRU227676
  • KMTGA4SCDRU227680
  • KMTGA4SCDRU227694
  • KMTGA4SCDRU227695
  • KMTGA4SCDRU227696
  • KMTGA4SCDRU227697
  • KMTGA4SCDRU227698
  • KMTGA4SCDRU227700
  • KMTGA4SCDRU227702
  • KMTGA4SCDRU227708
  • KMTGA4SCDRU227711
  • KMTGA4SCDRU227720
  • KMTGA4SCDRU227724
  • KMTGA4SCDRU227727
  • KMTGA4SCDRU227736
  • KMTGA4SCDRU227737
  • KMTGA4SCDRU227738
  • KMTGA4SCDRU227745
  • KMTGA4SCDRU227746
  • KMTGA4SCDRU227747
  • KMTGA4SCDRU227748
  • KMTGA4SCDRU227749
  • KMTGA4SCDRU227750
  • KMTGA4SCDRU227751
  • KMTGA4SCDRU227754
  • KMTGA4SCDRU227755
  • KMTGA4SCDRU227756
  • KMTGA4SCDRU227757
  • KMTGA4SCDRU227758
  • KMTGA4SCDRU227855
  • KMTGA4SCDRU227857
  • KMTGA4SCDRU227862
  • KMTGA4SCDRU227864
  • KMTGA4SCDRU227869
  • KMTGA4SCDRU227870
  • KMTGA4SCDRU227871
  • KMTGA4SCDRU227876
  • KMTGA4SCDRU227877
  • KMTGA4SCDRU227887
  • KMTGA4SCDRU227893
  • KMTGA4SCDRU227894
  • KMTGA4SCDRU227896
  • KMTGA4SCDRU227904
  • KMTGA4SCDRU227905
  • KMTGA4SCDRU227906
  • KMTGA4SCDRU227907
  • KMTGA4SCDRU227910
  • KMTGA4SCDRU227914
  • KMTGA4SCDRU227915
  • KMTGA4SCDRU227919
  • KMTGA4SCDRU227920
  • KMTGA4SCDRU228016
  • KMTGA4SCDRU228018
  • KMTGA4SCDRU228019
  • KMTGA4SCDRU228020
  • KMTGA4SCDRU228028
  • KMTGA4SCDRU228045
  • KMTGA4SCDRU228048
  • KMTGA4SCDRU228054
  • KMTGB4SCDRU227654
  • KMTGB4SCDRU227660
  • KMTGB4SCDRU227677
  • KMTGB4SCDRU227678
  • KMTGB4SCDRU227679
  • KMTGB4SCDRU227701
  • KMTGB4SCDRU227713
  • KMTGB4SCDRU227719
  • KMTGB4SCDRU227726
  • KMTGB4SCDRU227739
  • KMTGB4SCDRU227820
  • KMTGB4SCDRU227821
  • KMTGB4SCDRU227825
  • KMTGB4SCDRU227826
  • KMTGB4SCDRU227827
  • KMTGB4SCDRU227828
  • KMTGB4SCDRU227829
  • KMTGB4SCDRU227836
  • KMTGB4SCDRU227837
  • KMTGB4SCDRU227838
  • KMTGB4SCDRU227839
  • KMTGB4SCDRU227844
  • KMTGB4SCDRU227849
  • KMTGB4SCDRU227850
  • KMTGB4SCDRU227851
  • KMTGB4SCDRU227852
  • KMTGB4SCDRU227853
  • KMTGB4SCDRU227861
  • KMTGB4SCDRU227865
  • KMTGB4SCDRU227878
  • KMTGB4SCDRU227879
  • KMTGB4SCDRU227882
  • KMTGB4SCDRU227895
  • KMTGB4SCDRU227912
  • KMTGB4SCDRU228015
  • KMTGB4SCDRU228021
  • KMTGB4SCDRU228023
  • KMTGB4SCDRU228032
  • KMTGB4SCDRU228033
  • KMTGB4SCDRU228036
  • KMTGB4SCDRU228037
  • KMTGB4SCDRU228038
  • KMTGB4SCDRU228040
  • KMTGB4SCDRU228049
  • KMTGB4SCDRU228050
  • KMTGB4SCDRU228052
  • KMTGB4SCDRU228057
  • KMTGB4SDDRU227655
  • KMTGB4SDDRU227657
  • KMTGB4SDDRU227659
  • KMTGB4SDDRU227661
  • KMTGB4SDDRU227663
  • KMTGB4SDDRU227664
  • KMTGB4SDDRU227665
  • KMTGB4SDDRU227666
  • KMTGB4SDDRU227667
  • KMTGB4SDDRU227670
  • KMTGB4SDDRU227671
  • KMTGB4SDDRU227672
  • KMTGB4SDDRU227674
  • KMTGB4SDDRU227675
  • KMTGB4SDDRU227681
  • KMTGB4SDDRU227682
  • KMTGB4SDDRU227683
  • KMTGB4SDDRU227684
  • KMTGB4SDDRU227685
  • KMTGB4SDDRU227687
  • KMTGB4SDDRU227688
  • KMTGB4SDDRU227689
  • KMTGB4SDDRU227690
  • KMTGB4SDDRU227691
  • KMTGB4SDDRU227692
  • KMTGB4SDDRU227693
  • KMTGB4SDDRU227703
  • KMTGB4SDDRU227704
  • KMTGB4SDDRU227705
  • KMTGB4SDDRU227706
  • KMTGB4SDDRU227709
  • KMTGB4SDDRU227710
  • KMTGB4SDDRU227712
  • KMTGB4SDDRU227714
  • KMTGB4SDDRU227715
  • KMTGB4SDDRU227716
  • KMTGB4SDDRU227717
  • KMTGB4SDDRU227718
  • KMTGB4SDDRU227721
  • KMTGB4SDDRU227722
  • KMTGB4SDDRU227723
  • KMTGB4SDDRU227725
  • KMTGB4SDDRU227728
  • KMTGB4SDDRU227729
  • KMTGB4SDDRU227730
  • KMTGB4SDDRU227731
  • KMTGB4SDDRU227732
  • KMTGB4SDDRU227733
  • KMTGB4SDDRU227734
  • KMTGB4SDDRU227735
  • KMTGB4SDDRU227740
  • KMTGB4SDDRU227741
  • KMTGB4SDDRU227742
  • KMTGB4SDDRU227743
  • KMTGB4SDDRU227744
  • KMTGB4SDDRU227753
  • KMTGB4SDDRU227819
  • KMTGB4SDDRU227822
  • KMTGB4SDDRU227823
  • KMTGB4SDDRU227824
  • KMTGB4SDDRU227830
  • KMTGB4SDDRU227831
  • KMTGB4SDDRU227832
  • KMTGB4SDDRU227833
  • KMTGB4SDDRU227834
  • KMTGB4SDDRU227835
  • KMTGB4SDDRU227840
  • KMTGB4SDDRU227841
  • KMTGB4SDDRU227842
  • KMTGB4SDDRU227843
  • KMTGB4SDDRU227845
  • KMTGB4SDDRU227846
  • KMTGB4SDDRU227847
  • KMTGB4SDDRU227848
  • KMTGB4SDDRU227854
  • KMTGB4SDDRU227856
  • KMTGB4SDDRU227858
  • KMTGB4SDDRU227859
  • KMTGB4SDDRU227860
  • KMTGB4SDDRU227863
  • KMTGB4SDDRU227866
  • KMTGB4SDDRU227867
  • KMTGB4SDDRU227868
  • KMTGB4SDDRU227872
  • KMTGB4SDDRU227873
  • KMTGB4SDDRU227874
  • KMTGB4SDDRU227875
  • KMTGB4SDDRU227880
  • KMTGB4SDDRU227881
  • KMTGB4SDDRU227883
  • KMTGB4SDDRU227884
  • KMTGB4SDDRU227885
  • KMTGB4SDDRU227886
  • KMTGB4SDDRU227888
  • KMTGB4SDDRU227889
  • KMTGB4SDDRU227890
  • KMTGB4SDDRU227891
  • KMTGB4SDDRU227892
  • KMTGB4SDDRU227897
  • KMTGB4SDDRU227898
  • KMTGB4SDDRU227899
  • KMTGB4SDDRU227900
  • KMTGB4SDDRU227901
  • KMTGB4SDDRU227902
  • KMTGB4SDDRU227903
  • KMTGB4SDDRU227908
  • KMTGB4SDDRU227909
  • KMTGB4SDDRU227911
  • KMTGB4SDDRU227913
  • KMTGB4SDDRU227916
  • KMTGB4SDDRU227917
  • KMTGB4SDDRU227918
  • KMTGB4SDDRU228011
  • KMTGB4SDDRU228012
  • KMTGB4SDDRU228013
  • KMTGB4SDDRU228014
  • KMTGB4SDDRU228017
  • KMTGB4SDDRU228022
  • KMTGB4SDDRU228024
  • KMTGB4SDDRU228025
  • KMTGB4SDDRU228026
  • KMTGB4SDDRU228027
  • KMTGB4SDDRU228029
  • KMTGB4SDDRU228030
  • KMTGB4SDDRU228031
  • KMTGB4SDDRU228034
  • KMTGB4SDDRU228035
  • KMTGB4SDDRU228039
  • KMTGB4SDDRU228041
  • KMTGB4SDDRU228042
  • KMTGB4SDDRU228043
  • KMTGB4SDDRU228044
  • KMTGB4SDDRU228046
  • KMTGB4SDDRU228047
  • KMTGB4SDDRU228051
  • KMTGB4SDDRU228053
  • KMTGB4SDDRU228055
  • KMTGB4SDDRU228056
  • KMTGB4SDDRU228058
  • KMTGB4SDDRU228059
  • KMTGB4SDDRU228060
  • KMTGB4SDDRU228061
  • KMTGE4S1PRU008142
  • KMTGE4S1PRU008143
  • KMTGE4S1PRU008144
  • KMTGE4S1PRU008145
  • KMTGE4S1PRU008146
  • KMTGE4S1PRU008147
  • KMTGE4S1PRU008148
  • KMTGE4S1PRU008149
  • KMTGE4S1PRU008150
  • KMTGE4S1PRU008151
  • KMTGE4S1PRU008152
  • KMTGE4S1PRU008153
  • KMTGE4S1PRU008154
  • KMTGE4S1PRU008155
  • KMTGE4S1PRU008156
  • KMTGE4S1PRU008157
  • KMTGE4S1PRU008158
  • KMTGE4S1PRU008159
  • KMTGE4S1PRU008160
  • KMTGE4S1PRU008161
  • KMTGE4S1PRU008162
  • KMTGE4S1PRU008163
  • KMTGE4S1PRU008164
  • KMTGE4S1PRU008165
  • KMTGE4S1PRU008166
  • KMTGE4S1PRU008167
  • KMTGE4S1PRU008168
  • KMTGE4S1PRU008169
  • KMTGE4S1PRU008170
  • KMTGE4S1PRU008171
  • KMTGE4S1PRU008172
  • KMTGE4S1PRU008173
  • KMTGE4S1PRU008174
  • KMTGE4S1PRU008175
  • KMTGE4S1PRU008176
  • KMTGE4S1PRU008177
  • KMTGE4S1PRU008178
  • KMTGE4S1PRU008179
  • KMTGE4S1PRU008180
  • KMTGE4S1PRU008181
  • KMTGE4S1PRU008183
  • KMTGE4S1PRU008184
  • KMTGE4S1PRU008185
  • KMTGE4S1PRU008186
  • KMTGE4S1PRU008187
  • KMTGE4S1PRU008188

Missing values raise DecodingRequiredError

There are some VINs I've ran across where the make is not available after decoding, which would raise this exception. But even more prevalent is if you are decoding a gasoline car, electrification level will be None raising this:

vin/src/vin/__init__.py

Lines 261 to 263 in c79f282

if self._electrification_level is None:
raise DecodingRequiredError()
return self._electrification_level

Match vpic-api behavior

Or have it match this library's behavior, so it is more of a drop-in replacement. I thought a formal issue would be a good idea to track this and for discussion.

  • For example, invalid or foreign (format, check digit, and/or model year character bad) VINs throw an immediate exception instead of returning an object where you can check an error code/text field. I think it is best if you can parse as much of the VIN that VPIC lets you (even if just make), with some error field

  • Standardize return values: does None for electrification_level mean unknown or no electrification?

    In [11]: TypedClient().decode_vin('5FNRL6H4X').electrification_level
    Out[11]: ''
  • Partial decoding would be nice, but not required

    In [16]: TypedClient().decode_vin('4T1C31AK').electrification_level
    Out[16]: 'HEV (Hybrid Electric Vehicle) - Level Unknown'
    
    In [17]: VIN('4T1C31AK').electrification_level
    ValueError: VIN must be exactly 17 characters long
  • Model year is an int in this library, and a string in vpic-api

SQLite Multithread Error

I'm receiving the following Error message when decoding a VIN using a Flask App served by Waitress:

sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 8083607552 and this is thread id 11711803392.

From my understanding, it's a simple issue of the check_same_thread option upon opening the SQLite connection.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.