iK dZddlmZddlZddlmZddlmZdZ ddl Z eee j j Z e edkZe edkZe ed kZe ed kZe ed kZe ed kZe ed kZe edkZe edkZe edkZe eekZn!#e$rdZdZdZdZdZdZdZdZdZdZdZYnwxYwddZdS)z-support pyarrow compatibility across versions) annotationsN)Any)Versionz13.0.0z14.0.0z14.0.1z15.0.0z16.0.0z17.0.0z18.0.0z19.0.0z20.0.0z21.0.0z22.0.0TFarrpa.Array | pa.ChunkedArray fill_valuerreturncddlmtjdv}to|ot ot }|r&t|tj tj fr ||Stj ||j tj|j rRd fd t|tj r&tjfd |jDS|St|tj r&tjfd |jDS||S)ab Safe wrapper for pyarrow.compute.fill_null with fallback for Windows + pyarrow 21. pyarrow 21.0.0 on Windows has a bug in fill_null that incorrectly fills null values. This function uses a fallback implementation for that specific case, otherwise uses the standard pyarrow.compute.fill_null. Parameters ---------- arr : pyarrow.Array | pyarrow.ChunkedArray Input array with potential null values. fill_value : Any Value to fill nulls with. Returns ------- pyarrow.Array | pyarrow.ChunkedArray Array with nulls filled with fill_value. rN)win32cygwintyperpa.Array fill_scalar pa.Scalarr c|}tjd|j}|||}|||S)Nrr )is_nullpascalarrif_else)rrmask zero_duration arr_zeroedpcs CC:\PYTHON\_runtimes\venv\Lib\site-packages\pandas/compat/pyarrow.pyfill_null_durationz+_safe_fill_null..fill_null_durationKsS::c??DIach777MD-==J::dK<< <c(g|]}|Sr).0chunkrrs r z#_safe_fill_null..Ss'PPPE##E;77PPPrcdg|],}||-Sr)rr)r r!rrs rr"z#_safe_fill_null..Ys5 W W W5RZZ 5)); > > W W Wr)rrrrr r)pyarrow.computecomputesysplatform HAS_PYARROWpa_version_under21p0pa_version_under22p0 isinstancerArray ChunkedArray fill_nullrrtypes is_duration chunked_arraychunksrr)rr is_windows use_fallbackrrrs @@@r_safe_fill_nullr5(s,!     !44JX X+?'?XDX -:j28R_2MNN-||C,,,)JSX666K xCH%% 4 = = = = = = c2? + + #PPPPPSZPPP "!#{333#r''  W W W W WCJ W W W    ::bjjoo{C 8 88r)rrrrr r)__doc__ __future__rr&typingrpandas.util.versionrPYARROW_MIN_VERSIONpyarrowr __version__ base_version_palvpa_version_under14p0pa_version_under14p1pa_version_under15p0pa_version_under16p0pa_version_under17p0pa_version_under18p0pa_version_under19p0pa_version_under20p0r)r*r( ImportErrorr5rrrrHs33"""""" '''''' GGGBN++8 9 9E 778#4#44 778#4#44 778#4#44 778#4#44 778#4#44 778#4#44 778#4#44 778#4#44 778#4#44 778#4#4477#6777KK   KKK 393939393939sCC$$DD