
    LpjR                       S SK Jr  S SKJr  S SKJr  S SKJrJrJ	r	  S SK
r
S SK
Jr  S SKJrJrJrJrJrJrJrJrJr  S SKJr  S S	KJrJrJrJrJrJrJr  S S
K J!r!  S SK"J#r#  \(       a  S SK$J%r%J&r&J'r'J(r(  S SK)J*r*  S SK+J,r,  S SK-J.r.  S SK/r0S SK1r2S SK
J3r3  S SK4J5r5J6r6  S SK7J8r8  S SK9J:r:  S SK;J<r<  S SK=J>r>  S SK?J@r@  S SKJArA  S SKBJCrC  S SKJDrD  S SKEJFrF  S SKGJHrH  S SKIJJrK  S SKLJMrMJNrNJOrO   " S S\S    \5      rPg)!    )annotations)reduce)and_)TYPE_CHECKINGAnyLiteralN)StarExpression)	DeferredTimeZoneFcatch_duckdb_exceptioncolevaluate_exprs_and_aliasesjoin_column_nameslitnative_to_narwhals_dtypewindow_expression)SQLLazyFrame)ImplementationValidateBackendVersionVersionextend_boolgenerate_temporary_column_nameparse_columns_to_droprequires
get_duckdb)InvalidOperationError)IterableIteratorMappingSequence)BytesIO)Path)
ModuleType)
Expression)SelfTypeIs)CompliantDataFrameAny)
DuckDBExprDuckDBGroupByDuckDBNamespaceDuckDBInterchangeSeries)duckdb_dtypes)_EagerAllowedImpl)_LimitedContext)	LazyFrame)DType	DataFrame)AsofJoinStrategyJoinStrategyUniqueKeepStrategyc                     \ rS rSr\R
                  rSS.       S.S jjr\S/S j5       r	\
S0S j5       r\      S1S j5       r      S2S jrS3S	 jrS3S
 jrS4S jrS5S jrS6S jrS7S jr      S8S jrS9S jrS:S jrS;S jrS;S jrS<S jrS=S>S jjrS;S jrS?S jr\S@S j5       r\SAS j5       rSBS jr SCS jr!SDS jr"SES jr#      SFS jr$SGS  jr%            SHS! jr&                SIS" jr'S@S# jr(        SJS$ jr)SKS% jr*SLS& jr+SMS' jr,SNS( jr-          SOS) jr.\/R`                  " S*5      SPS+ j5       r1SQS, jr2S-r3g)RDuckDBLazyFrame;   F)validate_backend_versionc               h    Xl         X l        S U l        S U l        U(       a  U R	                  5         g g N)_native_frame_version_cached_native_schema_cached_columns_validate_backend_version)selfdfversionr=   s       V/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_duckdb/dataframe.py__init__DuckDBLazyFrame.__init__E   s3     79SW"15#**, $    c                6    U R                   R                  5       $ r?   )_implementation_backend_versionrE   s    rH   rN    DuckDBLazyFrame._backend_versionS   s    ##4466rK   c                6    [        U [        R                  5      $ r?   )
isinstanceduckdbDuckDBPyRelation)objs    rH   
_is_nativeDuckDBLazyFrame._is_nativeW   s    #v6677rK   c              "    U " XR                   S9$ NrG   )rA   )clsdatacontexts      rH   from_nativeDuckDBLazyFrame.from_native[   s     4!1!122rK   c                    U R                   [        R                  L a  SSKJn  U" U SS9$ U R                   R                  U SS9$ )Nr   r5   interchange)levellazy)rA   r   V1narwhals.stable.v1r6   	lazyframe)rE   argskwdsDataFrameV1s       rH   to_narwhalsDuckDBLazyFrame.to_narwhalsa   s>     ==GJJ&Ct=99}}&&t6&::rK   c                Z    U R                   [        R                  La  Sn[        U5      eU $ )Nz=__narwhals_dataframe__ is not implemented for DuckDBLazyFrame)rA   r   rd   AttributeError)rE   msgs     rH   __narwhals_dataframe__&DuckDBLazyFrame.__narwhals_dataframe__j   s'    ==

*QC %%rK   c                    U $ r?    rO   s    rH   __narwhals_lazyframe__&DuckDBLazyFrame.__narwhals_lazyframe__q   s    rK   c                    [        5       $ r?   r   rO   s    rH   __native_namespace__$DuckDBLazyFrame.__native_namespace__t   s
    |rK   c                .    SSK Jn  U" U R                  S9$ )Nr   r,   rZ   )narwhals._duckdb.namespacer-   rA   )rE   r-   s     rH   __narwhals_namespace__&DuckDBLazyFrame.__narwhals_namespace__w   s    >t}}55rK   c                b    SSK Jn  U" U R                  R                  U5      U R                  S9$ )Nr   r.   rZ   )narwhals._duckdb.seriesr/   nativeselectrA   )rE   namer/   s      rH   
get_columnDuckDBLazyFrame.get_column|   s%    C&t{{'9'9$'?WWrK   c              #  L   #    U R                    H  n[        U5      v   M     g 7fr?   )columnsr   )rE   r   s     rH   _iter_columnsDuckDBLazyFrame._iter_columns   s     LLDd)O !s   "$c                4   Ub  U[         R                  L a]  SSKJn  U R                  S:  a  U R
                  R                  5       OU R
                  R                  5       nU" USU R                  SS9$ U[         R                  L a@  SSK
Jn  U" U R
                  R                  5       [         R                  SU R                  SS9$ U[         R                  L a0  SSKJn  U" U R
                  R!                  5       SU R                  S	9$ S
U 3n[#        U5      e)Nr   )ArrowDataFrame)      T)r=   rG   validate_column_names)PandasLikeDataFrame)implementationr=   rG   r   )PolarsDataFrame)r=   rG   zUnsupported `backend` value: )r   PYARROWnarwhals._arrow.dataframer   rN   r~   to_arrow_tablefetch_arrow_tablerA   PANDASnarwhals._pandas_like.dataframer   rF   POLARSnarwhals._polars.dataframer   pl
ValueError)rE   backendkwargsr   
res_nativer   r   rn   s           rH   collectDuckDBLazyFrame.collect   s    ?g)?)??@ ((F2 **,[[224 
 ")-&*	  n+++K& -44)-&*  n+++B" 4  .gY7orK   c                V    U R                  U R                  R                  U5      5      $ r?   )_with_nativer~   limit)rE   ns     rH   headDuckDBLazyFrame.head   s"      !2!21!566rK   c                R    U R                  U R                  R                  " U6 5      $ r?   )r   r~   r   )rE   column_namess     rH   simple_selectDuckDBLazyFrame.simple_select   s"      !3!3\!BCCrK   c                    [        U /UQ76  VVs/ s H  u  p#UR                  U5      PM     nnn U R                  U R                  R	                  U5      5      $ s  snnf ! [
         a  n[        XP5      S eS nAff = fr?   )r   aliasr   r~   	aggregate	Exceptionr   )rE   exprsr   val	selectiones         rH   r   DuckDBLazyFrame.aggregate   s|    -G-Uu-U
-U	CIIdO-U 	 
	<$$T[[%:%:9%EFF	

  	<(1t;	<s   A)A! !
A<+A77A<c                    S [        U /UQ76  5       n U R                  U R                  R                  " U6 5      $ ! [         a  n[        X05      S eS nAff = f)Nc              3  H   #    U  H  u  pUR                  U5      v   M     g 7fr?   r   ).0r   r   s      rH   	<genexpr>)DuckDBLazyFrame.select.<locals>.<genexpr>   s       
-U	CIIdOO-U    ")r   r   r~   r   r   r   )rE   r   r   r   s       rH   r   DuckDBLazyFrame.select   s]    
-G-Uu-U
		<$$T[[%7%7%CDD 	<(1t;	<s   '= 
AAAc                   [        XUS9nU R                   Vs/ s H  oDU;  d  M
  [        U5      PM     nnU R                  U R                  R
                  " U6 5      $ s  snf )Nstrict)r   r   r   r   r~   r   )rE   r   r   columns_to_dropr   r   s         rH   dropDuckDBLazyFrame.drop   sW    /fM+/<<W<4;VYSY<	W  !3!3Y!?@@ Xs
   	AANc                &    Ub  Sn[        U5      eU $ )Nz.`backend` argument is not supported for DuckDB)r   )rE   r   _rn   s       rH   rc   DuckDBLazyFrame.lazy   s    
 BCS/!rK   c                   [        [        U /UQ76 5      nU R                   Vs/ s H3  nX2;   a   UR                  U5      R	                  U5      O
[        U5      PM5     nnUR                  S UR                  5        5       5         U R                  U R                  R                  " U6 5      $ s  snf ! [         a  n[        XP5      S eS nAff = f)Nc              3  H   #    U  H  u  pUR                  U5      v   M     g 7fr?   r   )r   r   values      rH   r   /DuckDBLazyFrame.with_columns.<locals>.<genexpr>   s      S;RKDekk$'';Rr   )dictr   r   popr   r   extenditemsr   r~   r   r   r   )rE   r   new_columns_mapr   resultr   s         rH   with_columnsDuckDBLazyFrame.with_columns   s    9$GGH
 	
 % & %++D1T %	 	 
 	S?;P;P;RSS	<$$T[[%7%7%@AA
  	<(1t;	<s   :B/'B4 4
C>C

Cc                    U" U 5      S   n U R                  U R                  R                  U5      5      $ ! [         a  n[	        X05      UeS nAff = f)Nr   )r   r~   filterr   r   )rE   	predicatemaskr   s       rH   _filterDuckDBLazyFrame._filter   sR    q!	9$$T[[%7%7%=>> 	9(1q8	9s   )7 
AAAc           
     H   U R                   c7  [        [        U R                  U R                  R
                  SS95      U l         [        U R                  5      nU R                   R                  5        VVs0 s H  u  p#U[        X0R                  U5      _M     snn$ s  snnf )NTr   )
rB   r   zipr   r~   typesr
   r   r   rA   )rE   deferred_time_zonecolumn_nameduckdb_dtypes       rH   schemaDuckDBLazyFrame.schema   s    %%- *.DLL$++"3"3DA*D& .dkk:
 .2-G-G-M-M-O	
 .P) 1mm-?  .P	
 	
 
s   7#Bc                    U R                   c=  U R                  b  [        U R                  5      OU R                  R
                  U l         U R                   $ r?   )rC   rB   listr   r~   r   rO   s    rH   r   DuckDBLazyFrame.columns   sM    ' --9 T[[![[((  
 ###rK   c                6    U R                   R                  5       $ r?   )r~   rF   rO   s    rH   	to_pandasDuckDBLazyFrame.to_pandas  s    {{~~rK   c                p    U R                  5       R                  [        R                  5      R                  $ r?   )rc   r   r   r   r~   rO   s    rH   to_arrowDuckDBLazyFrame.to_arrow  s%    yy{"">#9#9:AAArK   c                6    U R                  U R                  US9$ rY   )	__class__r~   )rE   rG   s     rH   _with_versionDuckDBLazyFrame._with_version  s    ~~dkk7~;;rK   c                4    U R                  XR                  S9$ rY   )r   rA   )rE   rF   s     rH   r   DuckDBLazyFrame._with_native  s    ~~b--~88rK   c                   SSK Jn  U" XUS9$ )Nr   r*   )drop_null_keys)narwhals._duckdb.group_byr+   )rE   keysr   r+   s       rH   group_byDuckDBLazyFrame.group_by  s     	<TGGrK   c                   ^ U R                   nU4S jUR                   5       nU R                  U R                   R                  " U6 5      $ )Nc              3     >#    U  H3  nUT;   a  [        U5      R                  TU   5      O
[        U5      v   M5     g 7fr?   r   r   )r   r   mappings     rH   r   )DuckDBLazyFrame.rename.<locals>.<genexpr>  s8      
" /3goCIOOGDM*3t9L"s   ;>)r~   r   r   r   )rE   r   rF   r   s    `  rH   renameDuckDBLazyFrame.rename  sA    [[



	   !3!3Y!?@@rK   c                  US:X  a  SOUnUS:X  an  U R                   S:  a  SU R                    3n[        U5      eU R                  R                  S5      R	                  UR                  R                  S5      5      nOnUc   eUc   eS [        X4S	S
9 5       n	[        [        U	5      n
U R                  R                  S5      R                  UR                  R                  S5      U
US9nUS;   Ga  U R                   Vs/ s H  n[        SU S35      PM     nnUR                   H  nXR                  ;   nUS:X  a'  U(       d   UR                  [        SU S35      5        M>  US:X  d  U(       a;  Ub  X;  a3  UR                  [        SU S35      R                  U U 35      5        M  Ub  X;  d  M  UR                  [        U5      5        M     UR                  " U6 R                  U R                  R                  5      nO4UR                  S5      R                  U R                  R                  5      nU R                  U5      $ s  snf )Nfulloutercross)r   r      z;'duckdb>=1.1.4' is required for cross-join, found version: lhsrhsc              3  d   #    U  H&  u  p[        S U S35      [        SU S35      :H  v   M(     g7flhs.""rhs."Nr   r   leftrights      rH   r   'DuckDBLazyFrame.join.<locals>.<genexpr>7  s9      #FKD eD6O$eE7!,<(==#F   .0Tr   )	conditionhow>   r  r   innerr   r  r  r  lhs.*)rN   NotImplementedErrorr~   	set_aliasr   r   r   r   joinr   r   appendr   r   r   )rE   otherr  left_onright_onsuffix
native_howrn   relitr
  xr   r   
col_in_lhsress                   rH   r  DuckDBLazyFrame.join!  s    f}G# 	  $$y0STXTiTiSjk)#..++''.44U\\5K5KE5RSC &&&'''#&w#FB %+4$4I++''.33&&u-#	 4 C <<15>AcE!A,'F>#'<<#7
(MM#dV1o"67 G+H$48LMM#dV1o"6"<"<vfX=N"OP%)=MM#d), & **f%//0A0ABC**W%//0A0ABC  %% ?s   Ic          	       ^^ U R                   nUR                   n	/ n
Ub$  Ub!  U
R                  S [        XESS9 5       5        O/ =pEUS:X  a/  U
R                  [	        SU S35      [	        SU S35      :  5        OBUS:X  a/  U
R                  [	        SU S35      [	        SU S35      :*  5        OS	n[        U5      e[        [        U
5      nU	R                   Vs/ s H  oU1Uk;  d  M  UPM     nnU Vs0 s H9  nXR                  ;   d  M  U[        S
/ UR                  QU	R                  Q5      _M;     snmS/nUR                  U4S jU 5       5        SSR                  U5       SU S3n[        R                  " U5      nUR                   Vs/ s H  n[	        U5      PM     nnUR                  UU4S jU 5       5        U R                  UR                  " U6 5      $ s  snf s  snf s  snf )Nc              3  d   #    U  H&  u  p[        S U S35      [        SU S35      :H  v   M(     g7fr   r  r  s      rH   r   ,DuckDBLazyFrame.join_asof.<locals>.<genexpr>d  s9      #FKD eD6O$eE7!,<(==#Fr	  Tr   backwardr  r  r  forwardzKOnly 'backward' and 'forward' strategies are currently supported for DuckDB   r  c              3  T   >#    U  H  nUT;   a  S U STU    S3OS U S3v   M     g7f)r  z" as "r  Nrr   )r   r   	tmp_namess     rH   r   r    sJ      
 " y  D6	$02a! "s   %(z
            SELECT ,zD
            FROM lhs
            ASOF LEFT JOIN rhs
            ON 
            c              3     >#    U  H7  nUT;   a!  [        TU   5      R                  U T 35      O
[        U5      v   M9     g 7fr?   r   )r   r   r  r$  s     rH   r   r    sO      
 " y  	$ &&$x'89T "s   ?A)r~   r   r   r  r   r  r   r   r   r   r  rS   sqlr   r   )rE   r  r  r  by_leftby_rightstrategyr  r   r   
conditionsrn   r
  r   	keep_cols
rhs_selectqueryjoinedr   r$  s          `           @rH   	join_asofDuckDBLazyFrame.join_asofU  s    kkll')
8#7 #&w#F 
 "$#Gz!cE'!"45uXJa=P9QQR"cE'!"45uXJa=P9QQR_C%c** &tZ 8	 '*kkWkd(AVXAV5VTk	W "
!{{" RD04Pckk4PCKK4PQQ!
	
 Y
 
 "	
 	
HHZ() * { 	 E"(+4#d)4 
 "	
 	
   !7889 X
( 5s   G&,G&8G+)G+G0c                    U R                   $ r?   )r   rO   s    rH   collect_schemaDuckDBLazyFrame.collect_schema  s    {{rK   c               X   U=(       d    U R                   nU R                  U5      =n(       a  Ue[        SU R                   SS9nU(       a  US:X  a  [        S[	        U5      5      OS nUS:X  a)  [        [        S[        5       5      UU=(       d    SUUS	9nO[        [        S
5      UU=(       d    SUUS	9nU R                  U R                  R                  [        5       UR                  U5      5      R                  [        U5      [        S5      :H  5      5      R                  U/SS9$ )Nr"  
row_index_)prefixlastTnonecountrr   )
descending
nulls_last
row_numberr   Fr   )r   _check_columns_existr   r   lenr   r   r	   r   r~   r   r   r   r   r   r   )	rE   subsetkeeporder_bysubset_errortmp_nameflagsexprs	            rH   uniqueDuckDBLazyFrame.unique  s    (DLL--g6656K1!T\\,W4<D#h-0UY6>$'>+,B  D %,B  D   KK~/H1EFMMHQ'
 $z%$
(		)rK   c                   [        U[        U5      5      nU(       a  S [        X1SS9 5       nOS [        X1SS9 5       nU R                  U R                  R
                  " U6 5      $ )Nc              3     #    U  HN  u  pU(       d  [        U5      R                  5       O&[        U5      R                  5       R                  5       v   MP     g 7fr?   )r   r=  descr   r   rM  s      rH   r   'DuckDBLazyFrame.sort.<locals>.<genexpr>  sA      "BJD /3D	$$&D	8H8S8S8UU"B   AATr   c              3     #    U  HN  u  pU(       d  [        U5      R                  5       O&[        U5      R                  5       R                  5       v   MP     g 7fr?   )r   nulls_firstrM  rN  s      rH   r   rO    sA      "BJD 04D	%%'T9I9U9U9WW"BrP  )r   r@  r   r   r~   sort)rE   r<  r=  byr  s        rH   rS  DuckDBLazyFrame.sort  sc     SW5
"%bT"BB
"%bT"BB   !1!12!677rK   c               v   U R                   n[        U5      n[        U[        5      (       a  [	        U(       + [        U5      5      nO[        S U 5       5      n[        [        S5      UU[	        S[        U5      5      S9nU[        U5      :*  nSU S3nU R                  [        R                  " U5      5      $ )Nc              3  .   #    U  H  o(       + v   M     g 7fr?   rr   )r   revs     rH   r   (DuckDBLazyFrame.top_k.<locals>.<genexpr>  s     :'3ww's   r>  T)rC  r<  r=  z@
            SELECT *
            FROM _rel
            QUALIFY z	
        )r~   r   rR   boolr   r@  tupler   r   r   r   rS   r(  )	rE   krT  reverse_relr<  rH  r
  r/  s	            rH   top_kDuckDBLazyFrame.top_k  s    {{"Xgt$$$[#b':J:'::J lO!"4R1	
 CFN	 K  	
   E!233rK   c                    Ub  UOU R                   n[        [        S U 5       5      nU R                  U R                  R                  U5      5      $ )Nc              3  T   #    U  H  n[        U5      R                  5       v   M      g 7fr?   )r   	isnotnull)r   r   s     rH   r   -DuckDBLazyFrame.drop_nulls.<locals>.<genexpr>  s      &Qs4y':':'<'<s   &()r   r   r   r   r~   r   )rE   rA  rD  keep_conditions       rH   
drop_nullsDuckDBLazyFrame.drop_nulls  sD    ".&DLL&Q&QR  !3!3N!CDDrK   c                j  ^^ U R                   R                  nU R                  5       nT H'  nX4   nXRR                  :w  d  M  SU S3n[	        U5      e   [        T5      S:w  a  Sn[        U5      e[        TS   5      mU R                  nU R                  n[        S5      n	TR                  5       [        ST5      -  U	:  n
UR                  U
5      R                  " UU4S jU 5       6 nUR                  U
) 5      R                  " U4S jU 5       6 nU R                  UR!                  U5      5      $ )	Nz-`explode` operation not supported for dtype `z`, expected List typer   zExploding on multiple columns is not supported with DuckDB backend since we cannot guarantee that the exploded columns have matching element counts.r   r@  c              3  j   >#    U  H(  nUT;   a  [        S T5      R                  U5      OUv   M*     g7f)unnestN)r   r   )r   r   col_to_exploder   s     rH   r   *DuckDBLazyFrame.explode.<locals>.<genexpr>  s7      ,D <@7?(N+11$7PTT,s   03c              3  h   >#    U  H'  nUT;   a  [        S 5      R                  U5      OUv   M)     g 7fr?   )r   r   )r   r   r   s     rH   r   rl    s0      ,D *.D	%dB,s   /2)rA   dtypesr4  Listr   r@  r  r   r~   r   r   rc  r   r   r   r   union)rE   r   rn  r   r   dtypern   r  original_columnszeronot_null_conditionnon_null_relnull_relrk  s    `           @rH   explodeDuckDBLazyFrame.explode  s@   %%$$&DLE#CE7 K) )  ,C00  w<1^  &c**WQZkk<<1v+557!E>:RRUYYzz"45<<,
 ::11299,
   !3!3H!=>>rK   c                   Uc  / OUnUc$  U R                    Vs/ s H  ofU;  d  M
  UPM     snOUnUS:X  a  Sn[        U5      eUS:X  a  Sn[        U5      e[        U6 n	U R                  n
SU	 S[	        U5       S[	        U5       S3nU R                  [        R                  " U5      R                  " / UQUPUP6 5      $ s  snf )N z:`variable_name` cannot be empty string for duckdb backend.z7`value_name` cannot be empty string for duckdb backend.z)
            unpivot _rel
            on z'
            into
                name z
                value r&  )	r   r  r   r~   r   r   rS   r(  r   )rE   onindexvariable_name
value_nameindex_con_rn   
unpivot_onr^  r/  s               rH   unpivotDuckDBLazyFrame.unpivot  s     }%>@j$,,:,Q6/q,:bBNC%c**KC%c**&,
{{| -() *:' (   JJu$$&J&J&Jz&JK
 	
+ ;s
   	CC)r      c                    U(       d  Sn[        U5      e[        [        S5      US9[        S5      -
  R	                  U5      nU R                  U R                  R                  U[        5       5      5      $ )Nz3Must pass `order_by` to `with_row_index` for DuckDBr>  )rC  r   )		TypeErrorr   r   r   r   r   r~   r   r	   )rE   r   rC  rn   rH  s        rH   with_row_indexDuckDBLazyFrame.with_row_index/  sb    GCC. !!L/HEANUU
   !3!3D.:J!KLLrK   c                L    U R                   R                  [        U5      5        g r?   )r~   write_parquetstr)rE   files     rH   sink_parquetDuckDBLazyFrame.sink_parquet9  s    !!#d),rK   )rC   rB   r@   rA   )rF   duckdb.DuckDBPyRelationrG   r   r=   rZ  returnNone)r  ztuple[int, ...])rU   zduckdb.DuckDBPyRelation | Anyr  zTypeIs[duckdb.DuckDBPyRelation])r\   r  r]   r2   r  r&   )rg   r   rh   r   r  ILazyFrame[duckdb.DuckDBPyRelation] | DataFrameV1[duckdb.DuckDBPyRelation])r  r&   )r  r$   )r  r-   )r   r  r  r/   )r  zIterator[Expression])r   z_EagerAllowedImpl | Noner   r   r  r(   )r   intr  r&   )r   r  r  r&   )r   r)   r  r&   )r   Sequence[str]r   rZ  r  r&   r?   )r   r  r   r  r  r&   )r   r)   r  r&   )r  zdict[str, DType])r  z	list[str])r  zpd.DataFrame)r  zpa.Table)rG   r   r  r&   )rF   r  r  r&   )r   z$Sequence[str] | Sequence[DuckDBExpr]r   rZ  r  r+   )r   zMapping[str, str]r  r&   )r  r&   r  r8   r  Sequence[str] | Noner  r  r  r  r  r&   )r  r&   r  r  r  r  r)  r  r*  r  r+  r7   r  r  r  r&   )rA  r  rB  r9   rC  r  r  r&   )rT  r  r<  bool | Sequence[bool]r=  rZ  r  r&   )r\  r  rT  zIterable[str]r]  r  r  r&   )rA  r  r  r&   )r   r  r  r&   )
r{  r  r|  r  r}  r  r~  r  r  r&   )r   r  rC  r  r  r&   )r  zstr | Path | BytesIOr  r  )4__name__
__module____qualname____firstlineno__r   DUCKDBrM   rI   propertyrN   staticmethodrV   classmethodr^   rj   ro   rs   rv   rz   r   r   r   r   r   r   r   r   rc   r   r   r   r   r   r   r   r   r   r   r  r1  r4  rI  rS  r_  rf  rw  r  r   backend_versionr  r  __static_attributes__rr   rK   rH   r;   r;   ;   s    %++O */-#- 	-
 #'- 
- 7 7 8 8 3*3;J3	3 3
;;"%;	R;6
X
%/%;>%	%N7D<<A
<9 
 
  $ $ B<9H8HMQH	HA2&2& 	2&
 &2& '2& 2& 
2&hA9A9 	A9
 A9 &A9 'A9 #A9 A9 
A9F )$ ) !	 )
 ' ) 
 )D84*E
'?R
 
 $
 	

 
 

B f%M &M-rK   r;   )r)   r  r  )Q
__future__r   	functoolsr   operatorr   typingr   r   r   rS   r	   narwhals._duckdb.utilsr
   r   r   r   r   r   r   r   r   narwhals._sql.dataframer   narwhals._utilsr   r   r   r   r   r   r   narwhals.dependenciesr   narwhals.exceptionsr   collections.abcr   r   r    r!   ior"   pathlibr#   r   r$   pandaspdpyarrowpar%   typing_extensionsr&   r'   narwhals._compliant.typingr(   narwhals._duckdb.exprr)   r   r+   ry   r-   r}   r/   r0   narwhals._typingr1   r2   narwhals.dataframer3   narwhals.dtypesr4   re   r6   ri   narwhals.typingr7   r8   r9   r;   rr   rK   rH   <module>r     s    "   . .  !
 
 
 1   - 5EE !.@07:?42/,%;RR-	U
 -rK   