Files
Guido.Tech/hpcsim/__pycache__/api.cpython-313.pyc

37 lines
4.7 KiB
Plaintext
Raw Normal View History

2025-10-18 23:56:53 -05:00
<EFBFBD>
ڣ<>hD <00><01><><00>%SSKJr SSKrSSKJrJrJrJr SSKJ r J
2025-10-18 23:56:53 -05:00
r
J r SSK J r SSKJr SSKrSSKJr SS KJr \ "S
S S 9r\"5q/rS \S'Sr\R4"S5r"SS\5r\R;S5\
"S54SSjj5r\R;S5SSj5r\RAS5SS Sjj5r!\RAS5S5r"\R;S5S5r#g)!<21>)<01> annotationsN)<04>Any<6E>Dict<63>List<73>Optional)<03>FastAPI<50>Body<64> HTTPException)<01> JSONResponse)<01> BaseModel<65>)<01>Enricher)<01>normalize_telemetryzHPCSim Enrichment APIz0.1.0)<02>title<6C>versionzList[Dict[str, Any]]<5D>_recent<6E><74><00>NEXT_STAGE_CALLBACK_URLc<01>V<00>\rSrSr%SrS\S'S\S'S\S'S\S 'S
\S 'S\S 'S rg)<0F>EnrichedRecord<72>z#Lap-level enriched telemetry model.<2E>int<6E>lap<61>float<61>tire_degradation_rate<74>str<74>
pace_trend<EFBFBD>tire_cliff_riskz List[int]<5D>optimal_pit_window<6F>performance_delta<74>N)<07>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__<5F>__annotations__<5F>__static_attributes__r!<00><00>//Users/adipu/Documents/HPCSimSite/hpcsim/api.pyrrs'<00><00>-<2D> <0C>H<EFBFBD> <20> <20><13>O<EFBFBD><1A><1A>!<21>!<21><1C>r)rz/ingest/telemetry.c<00><01>P# <00>[U5n[RU5nUSnUSn[
R U5 [[
2025-10-18 23:56:53 -05:00
5[:<3A>a[
S[[
2025-10-18 23:56:53 -05:00
5[-
2 [(aJ[R"SS9IShv<01>N nUR[US 9IShv<01>N SSS5IShv<01>N [U5$![an[ SSU3S9eSnAff=fNZN@N2!,IShv<01>N (df  NG=f![a NVf=f7f)
z<EFBFBD>Receive raw lap-level telemetry (from Pi), normalize, enrich, return enriched with race context.
2025-10-18 23:56:53 -05:00
Optionally forwards to NEXT_STAGE_CALLBACK_URL if set.
<EFBFBD>enriched_telemetry<72> race_contexti<74>zFailed to enrich: )<02> status_code<64>detailNg@)<01>timeout)<01>json)r<00> _enricher<65>enrich_lap_data<74> Exceptionr
r<00>append<6E>len<65> _MAX_RECENT<4E> _CALLBACK_URL<52>httpx<70> AsyncClient<6E>postr )<07>payload<61>
normalized<EFBFBD>result<6C>enrichedr-<00>e<>clients r*<00>ingest_telemetryrB%s<00><00><00> N<01>(<28><17>1<>
<EFBFBD><1A>*<2A>*<2A>:<3A>6<><06><19>.<2E>/<2F><08><1D>n<EFBFBD>-<2D> <0C>
 <0C>N<EFBFBD>N<EFBFBD>8<EFBFBD><1C>
<EFBFBD>7<EFBFBD>|<7C>k<EFBFBD>!<21> <13>0<>c<EFBFBD>'<27>l<EFBFBD>[<5B>0<>0<> 1<><15>}<7D> <11><1C>(<28>(<28><13>5<>5<><16><1C>k<EFBFBD>k<EFBFBD>-<2D>f<EFBFBD>k<EFBFBD>=<3D>=<3D>=<3D>6<>5<> <18><06> <1F><1F><>% <15>N<01><1B><03>6H<36><11><03>4L<34>M<>M<><4D>N<01><>6<>=<3D>6<>5<>5<>5<><35><18> <11> <10> <11>s<EFBFBD><00>D&<01>*C<00>AD&<01>D<00>C6<06>D<00>C<<03>7C8<06>8C<<03>< D<00>C:<04>D<00> D&<01>
C3<03>! C.<03>.C3<03>3D&<01>6D<00>8C<<03>:D<00><D<07>D <0C> D<07>D<00>D&<01>D<00>
D#<03> D&<01>"D#<03>#D&z /enrichedc<00><01><># <00>UR5n[RU5 [[5[:<3A>a[S[[5[-
2025-10-18 23:56:53 -05:00
2 [ U5$7f)zEAllow posting externally enriched records (bypass local computation).N)<06>
model_dumprr5r6r7r )r?<00>recs r*<00> post_enrichedrFEsO<00><00><00> <13>
2025-10-18 23:56:53 -05:00
<1D>
<1D>
<1F>C<EFBFBD> <0B>N<EFBFBD>N<EFBFBD>3<EFBFBD><17>
<EFBFBD>7<EFBFBD>|<7C>k<EFBFBD>!<21> <13>0<>c<EFBFBD>'<27>l<EFBFBD>[<5B>0<>0<> 1<> <17><03> <1C><1C>s<00>A%A'c<00><01>\# <00>[S[SU55n[[U*S5$7f)Nr r)<04>max<61>minr r)<01>limits r*<00> list_enrichedrKOs+<00><00><00> <0F><01>3<EFBFBD>s<EFBFBD>E<EFBFBD>?<3F> #<23>E<EFBFBD> <17><07><15><06><07>(<28> )<29>)<29>s<00>*,z/healthzc<00><01>.# <00>S[[5S.$7f)N<>ok)<02>status<75>stored)r6rr!r)r*<00>healthzrPUs<00><00><00><1A>c<EFBFBD>'<27>l<EFBFBD> 3<>3<>s<00>z/resetc<00><01>P# <00>[5q[R5 SSS.$7f)z,Reset enricher state for a new session/race.<2E>resetz!Enricher state and buffer cleared)rN<00>message)rr2r<00>clearr!r)r*<00>reset_enricherrUZs#<00><00><00><19>
<EFBFBD>I<EFBFBD> <0B>M<EFBFBD>M<EFBFBD>O<EFBFBD><1D>*M<> N<>N<>s<00>$&)r<zDict[str, Any])r?r)<01>2)rJr)$<24>
2025-10-18 23:56:53 -05:00
__future__r<00>os<6F>typingrrrr<00>fastapirr r
<00>fastapi.responsesr <00>pydanticr r9<00>
enrichmentr<00>adapterr<00>appr2rr'r7<00>getenvr8rr;rBrF<00>getrKrPrUr!r)r*<00><module>rbs<00><01>"<22> <09>,<2C>,<2C>0<>0<>*<2A><1E> <0C> <20>(<28> <0A>+<2B>W<EFBFBD>=<3D><03> <15>J<EFBFBD> <09>!#<23><07> <1D>"<22><11> <0B><13> <09> <09>3<>4<> <0A><1D>Y<EFBFBD><1D><05><18><18>
<1D><1E>59<35>#<23>Y<EFBFBD> <20><1F> <20>><05><18><18>+<2B><16><1D><17><1D><05><17><17><1B><15>*<2A><16>*<2A>
<05><17><17><1A><14>4<><15>4<><05><18><18>(<28><13>O<01><14>Or)