
    gSo                     l   g d Z ddlZddlmZ ddlZddlmZ 	 ddlZda	t        xr	  eed      Zt        sdZnS eed	      rd
 ZnF eed      r eej                  j                   dd      Zn eej"                  j$                  dd      ZeduZ	  ej(                  dg      j+                  d       dZeddfdZd Zd;dZd Zd Zd Zd Zd ZdD ]  Z  eee       s eee       Z! n J dD ]  Z" eee"      s eee"      Z# n J d Z$d Z%d Z& G d de'      Z(d Z) G d de'      Z*d  Z+d! Z,g fd"Z-d# Z. G d$ d%e'      Z/d& Z0d' Z1 ejd                  e1e3g(      Z4d) Z5d* Z6d+ Z7d, Z8d- Z9d. Z:d/ Z;d0 Z<d1 Z=d2 Z>d3 Z?d4 Z@d5 ZAd6 ZBd7 ZCd8 ZDd9 ZEd: ZFy# e
$ r da	Y w xY w# e$ r dZY w xY w)<)atleast_2d_column_defaultuniqueify_listwidest_floatwidest_complexwide_dtype_forwidenrepr_pretty_delegaterepr_pretty_implSortAnythingKeysafe_scalar_isnan
safe_isnaniterablehave_pandashave_pandas_categoricalhave_pandas_categorical_dtypepandas_Categorical_from_codespandas_Categorical_categoriespandas_Categorical_codes safe_is_pandas_categorical_dtypesafe_is_pandas_categoricalsafe_issubdtypeno_picklingassert_no_picklingsafe_string_eq    N)StringIO   )optional_dep_okTFCategoricalCategoricalDtypec                 L    t        t        | d|       t        j                        S )Ndtype)
isinstancegetattrpandasr   xs    G/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/patsy/util.py<lambda>r(   7   s    Aw"F$;$;2
     apiis_categorical_dtypecopyc                     t         r]t        | t        j                  t        j                  f      r3i }t        | d      r| j                  |d<    | j                  | f||d|S t        j                  | |||      S )Nname)r-   r!   )r-   r!   subok)
r   r"   r$   Series	DataFramehasattrr/   	__class__nparray)ar-   r!   r0   
extra_argss        r'   asarray_or_pandasr9   O   so    a&--)9)9:; Jq&!%&VV
6"1;;qGt5GJGG88ADU;;r)   c            	      8   dd l } t        t        g d            t        j                  u sJ | j                         5 }| j                  ddt               t        t        t        j                  g dg                  t        j                  u sJ t        t        t        j                  g dg      d            t        j                  u sJ |J 	 d d d        t        j                  g d      }t        |      |u sJ t        |d      }t        j                  ||      sJ d|d<   t        j                  ||      rJ t        j                  t        g dt        	      g d
      sJ t        g dt        	      j                  t        j                  t              k(  sJ t        ||j                  	      }d|d<   |d   dk(  sJ t        r2t        j                   g ddg d      }t        |      }|j"                  dk(  sJ t        j                  |j$                  g d      sJ d|d<   |d   dk(  sJ t        |d      }|j"                  dk(  sJ t        j                  |j$                  g d      sJ t        j                  ||      sJ d|d<   t        j                  ||      rJ t        |t        	      j                  t        j                  t              k(  sJ t        ||j                  	      }|j"                  dk(  sJ t        j                  |j$                  g d      sJ d|d<   |d   dk(  sJ t        j&                  g dgg ddg      }	t        |	      }
d|
j(                  d<   t        j                  |
j*                  g d      sJ t        j                  |
j$                  dg      sJ |	j(                  d   dk(  sJ t        |	d      }t        j                  ||	      sJ t        j                  |j*                  g d      sJ t        j                  |j$                  dg      sJ d|j(                  d<   t        j                  ||	      rJ t        |	t        	      }|d   j                  t        j                  t              k(  sJ t        j                  ||	      sJ t        j                  |j*                  g d      sJ t        j                  |j$                  dg      sJ t        |	|	d   j                  	      }t        j                  |j*                  g d      sJ t        j                  |j$                  dg      sJ t        j                  |	|      sJ t        }	 dat        t        t        j                   g d                  t        j                  u sJ t        t        t        j&                  g dg                  t        j                  u sJ 	 |ay y # 1 sw Y   6xY w# |aw xY w)Nr   r         ignorethe matrix subclassT)r0   r,   d   r!   g      ?g       @g      @c   A)
         r/   indexe   rE   )rD   BC)columnsrI   )rE   rD   F)warningstyper9   r5   ndarraycatch_warningsfilterwarningsPendingDeprecationWarningmatrixr6   array_equalallclosefloatr!   r   r$   r1   r/   rI   r2   locrM   )rN   wr7   a_copya_viewss_view1s_copys_view2dfdf_view1df_copydf_converteddf_view2
had_pandass                  r'   test_asarray_or_pandasrf   \   s   !),-;;;		 	 	" a+-F	
 %bii&<=>"**LLL%bii&<DIJbiiWWWyy 	AQ1$$$qt,F>>!V$$$F1I~~a(((;;(%@/RRRYe4::bhhuoMMMq0FF1IQ42::MM)#\B#A&||s"""~~gmm\:::u||"140{{c!!!~~fllL999~~fa(((r
>>&!,,, %066"((5/III#AQWW5||s"""~~gmm\:::u{{yk?2$O$R( #W~~h..@@@~~hnnrd333vvg#%%%#BT2~~gr***~~goo???~~gmmbT222"G>>'2...(59C &&"((5/999{{<,,,~~l22ODDD~~l002$777$Rr#w}}=~~h..@@@~~hnnrd333 ~~b(+++ !
	%K)&--	*BCD

RRR)&*:*:I;*GHIRZZWWW$Ki ' N %Ks   BX
A9X XXc                 b   |rQt         rKt        | t        j                        rt        j                  |       S t        | t        j                        r| S t        j                  |       } t        j                  |       } | j                  dk  r| j                  d      } | j                  dk\  sJ | S )Nr   )r   r<   )
r   r"   r$   r1   r2   r5   asarray
atleast_1dndimreshape)r7   preserve_pandass     r'   r   r      s    ;a'##A&&6++,H


1A
aAvv{IIg66Q;;Hr)   c                  L   dd l } t        j                  t        g d      dgdgdggk(        sJ t        d      j                  dk(  sJ t        dg      j                  dk(  sJ t        dgg      j                  dk(  sJ t        dggg      j                  dk(  sJ t        g d      j                  dk(  sJ t        dgdgdgg      j                  dk(  sJ | j                         5 }| j                  d	d
t               t        t        t        j                  d                  t        j                  k(  sJ |J 	 d d d        t        rt        t        t        j                  ddg                  t        j                  k(  sJ t        t        t        j                  dgdgg                  t        j                  k(  sJ t        t        t        j                  ddg      d            t        j                  k(  sJ t        t        t        j                  dgdgg      d            t        j                  k(  sJ t        j                  g ddg d      }t        |d      }t        |t        j                        sJ t        j                  |j                   dgk(        sJ t        j                  |j"                  g dk(        sJ | j                         5 }| j                  d	d
t               t        t        t        j                  d      d            t        j                  k(  sJ |J 	 d d d        t        t        g dd            t        j                  k(  sJ t        rt        }	 dat        t        t        j                  ddg      d            t        j                  k(  sJ t        t        t        j                  dgdgg      d            t        j                  k(  sJ 	 |ay y # 1 sw Y   xY w# 1 sw Y   xY w# |aw xY w)Nr   r;   r   r<   r=   )r   r   )r   r   r   r=   r   r>   r?   T)rm   )rE         hir7   bcrH   F)rN   r5   allr   shaperQ   rR   rS   rO   rT   rP   r   r$   r1   r2   r"   rM   rI   )rN   rY   r\   r`   re   s        r'   test_atleast_2d_column_defaultrx      s   66+I6A3aS/IJJJ$Q'--777$aS)//6999$qcU+11V;;;$seW-33y@@@$Y/55???$qcA3_5;;vEEE		 	 	" a+-F	
 -biil;<

JJJyy -fmmQF.CDESSS*6+;+;aS1#J+GHIRZZW	
W *6==!Q+@RVWX 	
  )$$qcA3Z0$
  	
  MM,TI&q$?"f..///vvbjjTF*+++vvbhh/1222		 	 	" a+-F	
 *299Q<NOzz	
 yy 	&y$GHBJJVV  
	%K-q!f-t
 :: -((1#s4d
 :: %K+ W < D %Ks'   *AP(APB P PPP#c                    t         s| j                  |      S t        | t        j                        s| j                  |      S || j
                  k(  r| S t        |      dk(  rD| j
                  d   dk(  r2|d   | j
                  d   k7  rt        d      | | j                  d      S t        d| j
                  d|      )Nr   r   zarrays have incompatible sizesz&cannot reshape a DataFrame with shape z
 to shape )	r   rl   r"   r$   r2   rw   len
ValueErrorrM   )r7   	new_shapes     r'   pandas_friendly_reshaper}     s    yy##a))*yy## AGG
9~qwwqzQQ<1771:%=>>1
BC''9U r)   c                     dd l } t        j                  t        t        j                  d      j                  dd      d      t        j                  d      j                  dd            sJ t        ret        j                  dg dig d	      }t        |d
      }t        |t        j                        sJ t        j                  |j                  g d      sJ t        j                  |j                  dg      sJ t        |d      }t        |t        j                        sJ t        j                  |j                  g d      sJ |j                  dk(  sJ | j                  t         t        |d       | j                  t         t        |d       | j                  t         t        |d       t        }	 da| j                  t"        t        |d       |ay y # |aw xY w)Nr   rE      r<   )r<   r   r&   r;   rs   )rI   ro   )r=   )   )r   r=   )r=   r=   F)pytestr5   rV   r}   arangerl   r   r$   r2   r"   rU   rI   rM   r1   r/   raisesr{   AttributeError)r   r`   noopsquozenre   s        r'   test_pandas_friendly_reshaper   &  s~    ;;		" 5 5a ;VD
		"a#   sI.oF&r62$ 0 0111~~djj/:::~~dllSE222)"d3'6==111~~gmm_===||s"""j"92tDj"92vFj"92vF 
	%K MM.*A2tL$K- , %Ks   8G Gc                 z    g }t               }| D ])  }||vs|j                  |       |j                  |       + |S N)setappendadd)seqseq_newseenobjs       r'   r   r   G  sB    G5D d?NN3HHSM Nr)   c                  |    t        g d      g dk(  sJ t        g d      g dk(  sJ t        g d      g dk(  sJ y )Nr;   )r   r=   r=   r<   r=   r   )r   r=   r<   )r=   r<   r   r   r   r<   r=   )r=   r<   r   r   )r    r)   r'   test_to_uniqueify_listr   Q  s=    )$	111,-:::/0L@@@r)   )float128float96float64)
complex256
complex196
complex128c                 L   t        j                  |       } t        | j                  t         j                        s$t        | j                  t         j
                        rt        S t        | j                  t         j                        rt        S t        d| j                        )Nz cannot widen a non-numeric type )
r5   ri   r   r!   integerfloatingr   complexfloatingr   r{   arrs    r'   r   r   e  si    
**S/Csyy"**-		2;;2 	B$6$6	7
SYYH
IIr)   c                 B    t        j                  | t        |             S )NrA   )r5   ri   r   r   s    r'   r   r   p  s    ::c!455r)   c                     t        j                  t        g d      g d      sJ t        g d      j                  t        k(  sJ t        j                  t        g d      g d      sJ t        g d      j                  t        k(  sJ t        j                  t        g d      g d      sJ t        g d      j                  t
        k(  sJ dd l} | j                  t        t        dg       y )Nr;   rB   )y      ?        r<   r=   r   rr   )	r5   rV   r   r!   r   r   r   r   r{   )r   s    r'   test_wide_dtype_for_and_widenr   t  s    ;;uY'333!!\111;;u_-y999!''<777;;u^,i888 &&.888
MM*edV,r)   c                   4    e Zd Zd Zd Zd Zd ZeZd Zd Z	y)PushbackAdapterc                      || _         g | _        y r   )_it_pushed)selfits     r'   __init__zPushbackAdapter.__init__  s    r)   c                     | S r   r   r   s    r'   __iter__zPushbackAdapter.__iter__  s    r)   c                 :    | j                   j                  |       y r   )r   r   r   r   s     r'   	push_backzPushbackAdapter.push_back  s    C r)   c                 x    | j                   r| j                   j                         S t        | j                        S r   )r   popnextr   r   s    r'   r   zPushbackAdapter.next  s,    <<<<##%% >!r)   c                 p    	 t        |       }| j                  |       |S # t        $ r t        d      w xY w)Nzno more data)r   StopIterationr{   r   r   s     r'   peekzPushbackAdapter.peek  s?    	-t*C 	s
  	-^,,	-s     5c                 D    	 | j                          y# t        $ r Y yw xY w)NTF)r   r{   r   s    r'   has_morezPushbackAdapter.has_more  s)    	IIK   		s    	N)
__name__
__module____qualname__r   r   r   r   __next__r   r   r   r)   r'   r   r     s'    !" Hr)   r   c                     t        t        g d            } | j                         sJ t        |       dk(  sJ | j	                  d       t        |       dk(  sJ t        |       dk(  sJ | j                         dk(  sJ | j	                  d       | j                         dk(  sJ | j	                  d       | j                         dk(  sJ | j                         sJ t        |       g dk(  sJ | j                         rJ y )	N)r   r<   r=   r   r   r   r<   r=   rE   rF   )rF   rE   r=   r   )r   iterr   r   r   r   list)r   s    r'   test_PushbackAdapterr     s    	l+	,B;;==8q==LLO8q==8q==779>>LL779??LL779??;;==8~%%%{{}}r)   c                   8    e Zd Zd Zd Zd	dZd Zd Zd Zd Z	y)
_MiniPPrinterc                 0    t               | _        d| _        y Nr   )r   _outindentationr   s    r'   r   z_MiniPPrinter.__init__  s    J	r)   c                 :    | j                   j                  |       y r   r   write)r   texts     r'   r   z_MiniPPrinter.text  s    		r)   c                 :    | j                   j                  |       y r   r   )r   seps     r'   	breakablez_MiniPPrinter.breakable  s    		r)   c                 &    | j                  |       y r   r   r   _r   s      r'   begin_groupz_MiniPPrinter.begin_group      		$r)   c                 &    | j                  |       y r   r   r   s      r'   	end_groupz_MiniPPrinter.end_group  r   r)   c                 v    t        |d      r|j                  | d       y | j                  t        |             y )N_repr_pretty_F)r3   r   r   reprr   s     r'   prettyz_MiniPPrinter.pretty  s,    3(dE*IId3i r)   c                 6    | j                   j                         S r   )r   getvaluer   s    r'   r   z_MiniPPrinter.getvalue  s    yy!!##r)   N) )
r   r   r   r   r   r   r   r   r   r   r   r)   r'   r   r     s%    !$r)   r   c                 X    t               }|j                  |        |j                         S r   )r   r   r   )r   printers     r'   _mini_prettyr     s$    oGNN3r)   c                 d    t         r dt        j                  v rddlm}  ||       S t        |       S )NIPythonr   )r   )r   sysmodulesIPython.lib.prettyr   r   )r   r   s     r'   r   r     s*     93-c{C  r)   c                    	 |j                   j                  } j                  t        |      dz   |d       dg	 	fd}|D ]  } |         j	                  |        |D ]\  \  }} |         j                  t        |      dz   |d        j	                  |        j                  t        |      dz   d       ^  j                  t        |      dz   d       y )Nr   (Fc                  \    d   r! j                  d        j                          dd<   y )Nr   ,T)r   r   )pstarteds   r'   new_itemz"repr_pretty_impl.<locals>.new_item  s'    1:FF3KKKM
r)   = ))r4   r   r   rz   r   r   )
r   r   argskwargsr/   r   arglabelvaluer   s
   `        @r'   r	   r	     s    ==!!DMM#d)a-$1gG  
	  (u
	c%j1nu&67		CJNB'	(
 KKD	As#r)   c                      t        d      dk(  sJ t               }  G d dt              }t        |  |       ddgddg       | j	                         d	k(  sJ y )
Nasdfz'asdf'c                       e Zd Zy)!test_repr_pretty.<locals>.MyClassNr   r   r   r   r)   r'   MyClassr         r)   r   r7   r   )foobar)r   r   z'MyClass('a', 1, foo='bar', asdf='asdf'))r   r   objectr	   r   )r   r   s     r'   test_repr_prettyr     s\    '8333oG&  Wgi#qNDT3UV!JJJJr)   c                       e Zd Zd Zd Zd Zy)r
   c                     || _         y r   r   r   s     r'   r   zSortAnythingKey.__init__7  s	    r)   c                 L    	 | j                   |k  S # t        $ r	 t        cY S w xY wr   )r   	TypeErrorNotImplemented)r   	other_objs     r'   
_python_ltzSortAnythingKey._python_lt:  s+    	"88i'' 	"!!	"s    ##c                    t        |t              sJ | j                  |j                        }|t        ur|S | j                  d      t        ury|j                  d      t        ury| j                  |j                  k(  ry| j                  j
                  j                  t        | j                        f|j                  j
                  j                  t        |j                        fk  S )Nr   TF)r"   r
   r  r   r  r4   r   id)r   otherresults      r'   __lt__zSortAnythingKey.__lt__E  s    %111+'M ??1^3An4 88uyy ""++R\:II((uyyM>
 
 	
r)   N)r   r   r   r   r  r  r   r)   r'   r
   r
   6  s    	"
r)   r
   c                  x   t        g dt              g dk(  sJ t        ddgt              ddgk(  sJ t        g dt              g dk(  sJ  G d d	t              }  G d
 dt              } G d dt              } |        } |       } |       }t               }t        ||d||gt              d||||gk(  sJ y )N)rF   rE   r      )key)r   rE   r  rF   rE   g      )rE   r7        4@rt   )rE   r  r7   rt   c                       e Zd Zy)test_SortAnythingKey.<locals>.aNr   r   r)   r'   r7   r  a  r   r)   r7   c                       e Zd Zy)test_SortAnythingKey.<locals>.bNr   r   r)   r'   rt   r  d  r   r)   rt   c                       e Zd Zy)test_SortAnythingKey.<locals>.zNr   r   r)   r'   zr  g  r   r)   r  r   )sortedr
   r   )r7   rt   r  a_objb_objz_objo_objs          r'   test_SortAnythingKeyr  \  s    /7?JJJ2t*/2tRj@@@&O<@TTTTF F F  CECECEHE5%E51G	L   r)   c                 t    	 t        j                  t        |             S # t        t        t
        f$ r Y yw xY wNF)r5   isnanrW   r  r{   NotImplementedErrorr%   s    r'   r   r   y  s4    xxa!!z#67 s     77)otypesc                     t        d      rJ t        d       rJ t        d      rJ t        d      rJ t        t        j                  g d            rJ t        t        j                  g      rJ t        t        j                        sJ t        t        j                  t        j                              sJ t        t        t        j                              sJ y )NTsadfr;   )r   r5   ri   nanfloat32rW   r   r)   r'   test_safe_scalar_isnanr&    s     &&& &&& ((( +++ I!6777 "&&***RVV$$$RZZ/000U266]+++r)   c            	      *   t        j                  t        ddd t         j                  dg      g d      sJ t        t         j                        j                  dk(  sJ t        t         j                        sJ t        d       rJ t        d      rJ y )Nr   Tr   )FFFTFr   )r5   rU   r   r$  rk   r   r)   r'   test_safe_isnanr(    s    >>AtT2666235W   bff""a'''bff$&!!!!r)   c                 :    	 t        |        y# t        $ r Y yw xY w)NFT)r   	Exceptionr  s    r'   r   r     s'    S	   s    	c                      t        d      sJ t        g       sJ t        ddi      sJ t        d      rJ t        t               rJ y )Nr   r7   r   )r   r   r)   r'   test_iterabler,    sK    FB<<S!H{?!!!!r)   c                     t         sJ t        j                  |       } t        t        j
                  d      r t        j
                  j                  | |      S t	        j
                  | |      S )N
from_codes)r   r5   ri   r3   r$   r   r.  )codes
categoriess     r'   r   r     sW    """ JJuEv!!<0!!,,UJ??!!%44r)   c                      t         sy t        g dddg      } t        j                  t        j                  |       d d g dk(        sJ t        j
                  t        j                  |       d         sJ y )Nr   r   r   rh   r7   rt   rh   )rt   rt   r7   )r   r   r5   rv   ri   r  )ru   s    r'   "test_pandas_Categorical_from_codesr3    s]    "%mc3Z@A66"**Q-$788888BJJqM"%&&&r)   c                 z    t        | d      r| j                  } t        | d      r| j                  S | j                  S )Ncatr0  )r3   r5  r0  levelsr5  s    r'   r   r     s5     sEggsL!~~zzr)   c                 z    t        | d      r| j                  } t        | d      r| j                  S | j                  S )Nr5  r/  )r3   r5  r/  labelsr7  s    r'   r   r     s5     sEggsGyyzzr)   c                     t         sy t        g dddg      } t        j                  t	        |       ddgk(        sJ t        j                  t        |       g dk(        sJ t        r`t        j                  |       }t        j                  t	        |      ddgk(        sJ t        j                  t        |      g dk(        sJ y y )Nr2  r7   rt   )	r   r   r5   rv   r   r   r   r$   r1   )ru   r\   s     r'   !test_pandas_Categorical_accessorsr;    s    "%mc3Z@A66/2sCj@AAA66*1->???$MM!vv3A63*DEEEvv.q1]BCCC %r)   c                 &    t         syt        |       S r  )r   _pandas_is_categorical_dtype)dts    r'   r   r     s    ('++r)   c                     t         syt        | t        j                        ryt	        | d      rt        | j                        S y)NFTr!   )r   r"   r$   r   r3   r   r!   )datas    r'   r   r     s7    "$**+tW/

;;r)   c                      t        t        j                  d            rJ t        r$t	        j
                  ddg      } t        |       sJ t        r't	        j                  ddgd      }t        |      sJ y y )NrE   r7   rt   categoryrA   )r   r5   r   r   r$   r   r   r1   )c_objs_objs     r'   test_safe_is_pandas_categoricalrE  	  sg    )"))B-888""C:.)%000$sCj
;)%000 %r)   c                 F    t        |       ryt        j                  | |      S r  )r   r5   
issubdtype)dt1dt2s     r'   r   r   !  s    ',==c""r)   c                     t        t        t        j                        sJ t        t        j                  t
              t        j                        sJ t        t        t        j                        rJ t        t        j                  t
              t        j                        rJ t        r6t        j                  ddgd      } t        | t        j                        rJ y y )Nr7   rt   rB  rA   )
r   intr5   r   r!   rW   r   r   r$   r1   )	bad_dtypes    r'   test_safe_issubdtyperM  '  s    3

+++288E?BKK888sBKK000rxx

;;;$MM3*J?	"9bjj9999 %r)   c                      t        d      )NzeSorry, pickling not yet supported. See https://github.com/pydata/patsy/issues/26 if you want to help.)r   )r   r   s     r'   r   r   2  s    
	 r)   c                 V    dd l }dd l}|j                  t        |j                  |        y r   )pickler   r   r   dumps)r   rP  r   s      r'   r   r   :  s    
MM%v||S9r)   c                 .    t        | t              r| |k(  S yr  )r"   str)r   r   s     r'   r   r   F  s    #se|r)   c                  ~    t        dd      sJ t        dd      rJ t        t        j                  d      d      rJ y )Nr   r   )r<   r<   )r   r5   emptyr   r)   r'   test_safe_string_eqrV  M  s>    %'''eU+++bhhv.6666r)   )F)G__all__r   ior   numpyr5   compatr   r$   r   ImportErrorr3   r   r=  r#   r*   typescorecommonr   r6   	__array__copy_if_neededr  r9   rf   r   rx   r}   r   r   r   
float_typer   complex_typer   r   r   r   r   r   r   r   r   r   r	   r   r
   r  r   	vectorizeboolr   r&  r(  r   r,  r   r3  r   r   r;  r   r   rE  r   rM  r   r   r   rV  r   r)   r'   <module>re     sk  6    # K
 &H'&-*H #' v)*(
$ 
	'.JJ4d(
$ (/KK 6(
$ !=D H 
BHHaSM&N -D 
<K%fM%l$%BA 5 Jr:r:.
 5> Lr<  \2
 5J6	-"f "JL$F $6!* +- $,K>#
f #
L: R\\+TF;
	,""4	5'		
D,	10#::7G  K@  Ns#   F %F) F&%F&)F32F3