ó
    ›_¨jm
  ã                   óì   • S r SSKrSr\R                  " S5      r\R                  " S\R
                  5      r\R                  " S\R
                  5      r\R                  " S\R
                  5      rS r	g)	aä  Make and model out of a free text car name (2026-09-14).

A bought car's row keeps the title the platform showed ("BMW 116D M Sport
Shadow Edition", "Mercedes A 180 D SE", "Kia c'eed 2 ISG CRDI") and,
until now, nothing else about what the car is. Dealer OS puts each due in
car under the live auction card of the same model, which needs the make
and model the card itself carries ("Bmw", "1 Series"). The sighting the
Mac already logged for the plate is the first choice (db._purchase_make_model);
this is the fallback for a car the Mac never listed, a hand added one for
instance. Same rules as bid_suggest.model_key and Dealer OS's own
know.nameToMakeModel, so all three land on the same model.

Pure: no database, no network, no clock.
é    N)zmercedes benzzmg motor ukzmg motorz
land roverz
alfa romeozaston martinz^(19|20)\d{2}$z^(\d)\d{2}[a-z]{0,2}$z^([a-z]{1,3})class$z^([a-z]{1,3})\d{3}$c                 ó¸  • [        U =(       d    S5      R                  SS5      R                  5        Vs/ s H  o(       d  M  UPM     nnU(       a"  [        R	                  US   5      (       a  USS nU(       d  gU Vs/ s H"  oR                  5       R                  SS5      PM$     nnUS   USS pT[         HX  nUS   U:X  a    ON[        UR                  5       5      nSR                  USU 5      U:X  d  MA  SR                  USU 5      X'S pT  O   U(       d  gUS   R                  5       S   nUS   R                  SS5      n	SR                  U5      n
US:X  a1  [        R	                  U	5      nU(       a  UR                  S5       S	3n
O�UR                  S
5      (       a[  [        R	                  U	5      =(       d    [        R	                  U	5      nU(       a"  UR                  S5      R                  5        S3n
OUS:X  a  U	R                  5       S:X  a  Sn
U
SS R                  5       (       a  U
SS R                  5       U
SS -   n
XJ4$ s  snf s  snf )a  ("BMW", "1 Series") for "BMW 116D M Sport"; ("Mercedes", "A Class")
for "Mercedes A180 AMG Line"; ("Kia", "Ceed 2 ISG CRDI") for "Kia c'eed
2 ISG CRDI"; ("Land Rover", "Range Rover Evoque") for the whole name.
A leading year is not the make. None when there is no model word.Ú Ú'r   é   NÚ-Ú Úbmwz SeriesÚmercedesz ClassÚvauxhallÚinsigÚInsignia)ÚstrÚreplaceÚsplitÚ_YEAR_REÚmatchÚlowerÚ_TWO_WORD_MAKESÚlenÚjoinÚ_BMW_BADGE_REÚgroupÚ
startswithÚ_MERC_CLASS_REÚ_MERC_BADGE_REÚupperÚislower)ÚnameÚwÚwordsr   ÚmakeÚrestÚtwoÚnÚmkÚfirstÚmodelÚms               Ú3/Users/stevendouglas/BidBrain/bidbrain/car_names.pyÚname_make_modelr*      s  € ô
 ˜DŸJ B›×/Ñ/°°RÓ8×>Ñ>Ô@ÓFÒ@�1ÃA�QÑ@€EÐFÞ”—‘  a¡×)Ñ)Ø�a�b�	ˆÞØñ 38Ó8²%¨Q�W‰W‹Y×Ñ˜s CÖ(±%€EÐ8Ø�q‘˜5  ˜9ˆ$ßˆØ�‰8�s‹?ÙÜ�—	‘	“ÓˆØ�8‰8�E˜"˜1�IÓ #Õ%ØŸ™ %¨¨ )Ó,¨e°B¨i�$Ùñ ö ØØ	ˆq‰�‰Ó	˜!Ñ	€BØ�‰G�O‰O˜C Ó$€EØ�H‰H�T‹N€EØ	ˆUƒ{Ü×Ñ Ó&ˆÞØ—w‘w˜q“z�l 'Ð*ˆEøØ	�‰�z×	"Ñ	"Ü× Ñ  Ó'×F¬>×+?Ñ+?ÀÓ+FˆÞØ—w‘w˜q“z×'Ñ'Ó)Ð*¨&Ð1ˆEøØ	ˆzÓ	˜eŸk™k›m¨wÓ6ØˆØˆRˆa€y×Ñ×ÑØ�b�q�	—‘Ó! E¨!¨" IÑ-ˆØˆ=ÐùòC Gùò 9s   µ
IÁIÂ )I)
Ú__doc__Úrer   Úcompiler   ÚIr   r   r   r*   © ó    r)   Ú<module>r1      sg   ðñó 
àj€Ø�:Š:Ð'Ó(€Ø—
’
Ð3°R·T±TÓ:€Ø—’Ð2°B·D±DÓ9€Ø—’Ð2°B·D±DÓ9€ó&r0   