Files
Guido.Tech/hpcsim/__pycache__/enrichment.cpython-312.pyc

56 lines
7.8 KiB
Plaintext
Raw Normal View History

2025-10-18 19:15:41 -05:00
<EFBFBD>
2025-10-18 21:38:44 -05:00
<00>+<2B>hd<00><01>~<00>ddlmZddlmZmZddlmZmZmZddl Z ddddd d
2025-10-18 19:15:41 -05:00
<EFBFBD>Z
eGd <0B>d <0C><00>Z Gd <0A>d<0E>Z y)<0F>)<01> annotations)<02> dataclass<73>field)<03>Dict<63>Any<6E>OptionalNg<4E>~j<>t<EFBFBD><74>?g<><67><EFBFBD><EFBFBD>Mb<4D>?g<>~j<>t<EFBFBD>x?g<><1E><>Q<EFBFBD><51>?g{<14>G<EFBFBD>z<EFBFBD>?)<05>soft<66>medium<75>hard<72>inter<65>wetc<01>b<00>eZdZUdZded<ee<06><04>Zded<ee<06><04>Zded<dZ d ed
<y) <0B> EnricherStateNz Optional[int]<5D>last_lap)<01>default_factoryzDict[int, float]<5D>
lap_speeds<EFBFBD>lap_throttle_avg<76><00>float<61>cumulative_wear)
<EFBFBD>__name__<5F>
__module__<EFBFBD> __qualname__r<00>__annotations__r<00>dictrrr<00><00><00>:/Users/karandubey/projects/hpcsimsite/hpcsim/enrichment.pyrr+s7<00><00>"<22>H<EFBFBD>m<EFBFBD>"<22>#(<28><14>#><3E>J<EFBFBD> <20>><3E>).<2E>t<EFBFBD>)D<><14>&<26>D<> <20>O<EFBFBD>U<EFBFBD> rrc<01>V<00>eZdZdZd<02>Zd d<03>Zd d<04>Zdd<05>Zdd<06>Zdd<07>Z dd<08>Z
dd <09>Z dd
<EFBFBD>Z y )<14>Enricherz<72>Heuristic enrichment engine to simulate HPC analytics on telemetry.
Stateless inputs are enriched with stateful estimates (wear, consistency, etc.).
Designed for predictable, dependency-free behavior.
c<01>"<00>t<00>|_y)N)r<00>state)<01>selfs r<00>__init__zEnricher.__init__:s <00><00>"<22>_<EFBFBD><04>
rc <01>D<00>t|jdd<02><00>}t|jdd<04><00>}t|jdd<04><00>}t|jdd<04><00>}t|jdd<08><00>j <00>}t|jd d
<EFBFBD><00>}|jd <0B>}|jd <0C>} |jd <0A>}
|j |||<04>|j |||<05>} |j||||| <09>} |j|||<05>} |j||<04>}|j<00>}|j|
| <09>}|t| d<0E>t| d<0E>t| d<0E>t|d<0E>t|d<0E>|d<0F>S)N<>lapr<00>speedr<00>throttle<6C>brake<6B> tire_compoundr
<00>
fuel_level<EFBFBD><00>?<3F>ers<72>
track_temp<EFBFBD>rain_probability<74>)r&<00>aero_efficiency<63>tire_degradation_index<65>
ers_charge<EFBFBD>fuel_optimization_score<72>driver_consistency<63>weather_impact) <0A>int<6E>getr<00>str<74>lower<65>_update_lap_stats<74>_compute_aero_efficiency<63>_compute_tire_degradation<6F>_compute_ers_charge<67>_compute_fuel_optimization<6F>_compute_driver_consistency<63>_compute_weather_impact<63>round)r#<00> telemetryr&r'r(r)r*r+r-r.<00> rain_prob<6F>aero_eff<66>tire_degr3<00>fuel_opt<70> consistencyr6s r<00>enrichzEnricher.enrich>s<><00><00><11>)<29>-<2D>-<2D><05>q<EFBFBD>)<29>*<2A><03><15>i<EFBFBD>m<EFBFBD>m<EFBFBD>G<EFBFBD>S<EFBFBD>1<>2<><05><18><19><1D><1D>z<EFBFBD>3<EFBFBD>7<>8<><08><15>i<EFBFBD>m<EFBFBD>m<EFBFBD>G<EFBFBD>S<EFBFBD>1<>2<><05><1B>I<EFBFBD>M<EFBFBD>M<EFBFBD>/<2F>8<EFBFBD>D<>E<>K<>K<>M<> <0A><1A>9<EFBFBD>=<3D>=<3D><1C>s<EFBFBD>;<3B><<3C>
<EFBFBD><17>m<EFBFBD>m<EFBFBD>E<EFBFBD>"<22><03><1E>]<5D>]<5D><<3C>0<>
<EFBFBD><1D>M<EFBFBD>M<EFBFBD>"4<>5<> <09> <0A><1E><1E>s<EFBFBD>E<EFBFBD>8<EFBFBD>4<><18>0<>0<><15><08>%<25>H<><08><17>1<>1<>#<23>u<EFBFBD>h<EFBFBD> <0A>Wa<57>b<><08><19>-<2D>-<2D>c<EFBFBD>8<EFBFBD>U<EFBFBD>C<>
<EFBFBD><17>2<>2<>:<3A>x<EFBFBD>H<><08><1A>6<>6<>8<> <0B><1D>5<>5<>i<EFBFBD><1A>L<><0E><17>$<24>X<EFBFBD>q<EFBFBD>1<>&+<2B>H<EFBFBD>a<EFBFBD>&8<><1F>
<EFBFBD>A<EFBFBD>.<2E>',<2C>X<EFBFBD>q<EFBFBD>'9<>"'<27> <0B>Q<EFBFBD>"7<>,<2C>
<EFBFBD>
rc<01><><00>|dkry||jj|<d|jjj||<03>zd|zz|jj|<||j_y)Nrg<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?皙<><E79A99><EFBFBD><EFBFBD><EFBFBD>?)r"rrr8r)r#r&r'r(s rr;zEnricher._update_lap_stats_sj<00><00> <0E>!<21>8<EFBFBD> <12>%*<2A><04>
<EFBFBD>
<EFBFBD><1D><1D>c<EFBFBD>"<22>+.<2E><14><1A><1A>1L<31>1L<31>1P<31>1P<31>QT<51>V^<5E>1_<31>+_<>be<62>hp<68>bp<62>+p<><04>
<EFBFBD>
<EFBFBD>#<23>#<23>C<EFBFBD>(<28>!<21><04>
<EFBFBD>
<EFBFBD>rc<01><><00>tdtd|dz <00><00>}d|z}d|z}d|z|z|z
}tdtd|<07><00>S)Nr<00><00>?g<00>t@皙<><E79A99><EFBFBD><EFBFBD><EFBFBD>?rKr,)<02>max<61>min)r#r'r(r)<00>speed_n<5F> brake_penalty<74>throttle_bonus<75>bases rr<z!Enricher._compute_aero_efficiencygsS<00><00><16>c<EFBFBD>3<EFBFBD>s<EFBFBD>E<EFBFBD>E<EFBFBD>M<EFBFBD>2<>3<><07><1B>e<EFBFBD> <0B> <0A><1C>x<EFBFBD><1E><0E><12>W<EFBFBD>}<7D>~<7E>-<2D> <0A>=<3D><04><12>3<EFBFBD><03>C<EFBFBD><14><0E>'<27>'rc<01>f<00>tj|td<00>}d}t|ttf<02>r|dkDrd}n|dkrd}dd|zzdt d |d
z
d z <00>zz}||z|z} t d|jj| z<00>|j_|jjS) Nr
rM<00>*g<00>?<3F>g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?r,rKrg@o@gY@) <09>_TIRES_BASE_WEARr8<00>
isinstancer7rrOrPr"r)
r#r&r'r(r*r.<00> base_wear<61> temp_factor<6F>stress<73> wear_this_laps
rr=z"Enricher._compute_tire_degradationps<><00><00>$<24>(<28>(<28><1D>8H<38><18>8R<38>S<> <09><19> <0B> <15>j<EFBFBD>3<EFBFBD><05>,<2C> /<2F><19>B<EFBFBD><EFBFBD>"<22> <0B><1B>b<EFBFBD><1F>!<21> <0B><14>s<EFBFBD>X<EFBFBD>~<7E>%<25><03>c<EFBFBD>#<23><05><05> <0A><15>7N<37>.O<>(O<>O<><06>!<21>F<EFBFBD>*<2A>[<5B>8<> <0A>%(<28><13>d<EFBFBD>j<EFBFBD>j<EFBFBD>.H<>.H<>=<3D>.X<>%Y<><04>
<EFBFBD>
<EFBFBD>"<22><13>z<EFBFBD>z<EFBFBD>)<29>)<29>)rc<01><><00>t|ttf<02>rt|<01>d|zzd|zz
}ndd|zzd|zz
}tdt d|<04><00>S)Ng<4E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>333333<33>?g<><1E><>Q<EFBFBD><51>?rrM)rYr7rrOrP)r#r-r(r)<00> ers_levels rr>zEnricher._compute_ers_charge~sX<00><00> <15>c<EFBFBD>C<EFBFBD><15><<3C> (<28><1D>c<EFBFBD>
<EFBFBD>S<EFBFBD>5<EFBFBD>[<5B>0<>4<EFBFBD>(<28>?<3F>B<>I<EFBFBD><1C>d<EFBFBD>U<EFBFBD>l<EFBFBD>*<2A>T<EFBFBD>H<EFBFBD>_<EFBFBD><<3C>I<EFBFBD><12>3<EFBFBD><03>C<EFBFBD><19>+<2B>,<2C>,rc<01><><00>tdtd|<01><00>}dd|zz}t||z
<00>}d|z
}tdtd|<06><00>S)NrrMr,rN)rOrP<00>abs)r#r+r(<00>fuel_n<5F>ideal_throttle<6C>penalty<74>scores rr?z#Enricher._compute_fuel_optimization<6F>sN<00><00><14>S<EFBFBD>#<23>c<EFBFBD>:<3A>.<2E>/<2F><06><1C>s<EFBFBD>V<EFBFBD>|<7C>+<2B><0E><15>h<EFBFBD><1E>/<2F>0<><07><13>g<EFBFBD> <0A><05><12>3<EFBFBD><03>C<EFBFBD><15><0F>(<28>(rc<01>j<00><06>t|jjj<00><00>dd}|sy|D<00>cgc]}|jj|<00><02>}}t |<03>t |<03>z <00>t <00>fd<03>|D<00><00>t |<03>z }t d|dz <00>}tdd|z
<00>Scc}w)N<><4E><EFBFBD><EFBFBD><EFBFBD>r,c3<01>.<00>K<00>|] }|<01>z
dz<00><01><00>y<01>w)<02>Nr)<03>.0<EFBFBD>s<>means <20>r<00> <genexpr>z7Enricher._compute_driver_consistency.<locals>.<genexpr><3E>s<00><><00><><00>2<>6<EFBFBD>a<EFBFBD>1<EFBFBD>t<EFBFBD>8<EFBFBD><01>/<2F>6<EFBFBD>s<00>rMg <20>@r)<08>sortedr"r<00>keys<79>sum<75>lenrPrO)r#<00>laps<70>l<>speeds<64>var<61>normrms @rr@z$Enricher._compute_driver_consistency<63>s<><00><><00><15>d<EFBFBD>j<EFBFBD>j<EFBFBD>+<2B>+<2B>0<>0<>2<>3<>B<EFBFBD>C<EFBFBD>8<><04><13><16>48<34>9<>D<EFBFBD>q<EFBFBD>$<24>*<2A>*<2A>'<27>'<27><01>*<2A>D<EFBFBD><06>9<><12>6<EFBFBD>{<7B>S<EFBFBD><16>[<5B>(<28><04><11>2<>6<EFBFBD>2<>2<>S<EFBFBD><16>[<5B>@<40><03><12>3<EFBFBD><03>y<EFBFBD>)<29>*<2A><04><12>3<EFBFBD><03>d<EFBFBD>
<EFBFBD>#<23>#<23><> :s<00> B0c<01><><00>d}t|ttf<02>r|dt|<01>zz }t|ttf<02>r|dkr|dz }|dkDr|dz }|dkry|dkry y
) Nrgffffff<66>?<3F> rK<00>-g333333<33>?<3F>lowr_r
<00>high)rYr7r)r#rDr.rfs rrAz Enricher._compute_weather_impact<63>sn<00><00><13><05> <15>i<EFBFBD>#<23>u<EFBFBD><1C> .<2E> <11>S<EFBFBD>5<EFBFBD><19>+<2B>+<2B> +<2B>E<EFBFBD> <15>j<EFBFBD>3<EFBFBD><05>,<2C> /<2F><19>B<EFBFBD><EFBFBD><15><13> <0C><05><19>B<EFBFBD><EFBFBD><15><13> <0C><05> <10>3<EFBFBD>;<3B><18> <10>3<EFBFBD>;<3B><1B>rN)rC<00>Dict[str, Any]<5D>returnr})r&r7r'rr(rr~<00>None)r'rr(rr)rr~r) r&r7r'rr(rr*r9r.<00>Optional[float]r~r)r-r<>r(rr)rr~r)r+rr(rr~r)r~r)rDr<>r.r<>r~r9) rrr<00>__doc__r$rIr;r<r=r>r?r@rArrrr r 3s5<00><00><08> %<25>
<EFBFBD>B"<22>(<28> *<2A>-<2D>)<29>
$<24> rr ) <0A>
__future__r<00> dataclassesrr<00>typingrrr<00>mathrXrr rrr<00><module>r<>sR<00><01>"<22>(<28>&<26>&<26> <0B>< <12><13> <11> <12> <0F> <02><10> <0B>!<21>!<21> <0B>!<21>u<16>ur