
    'YHh                     p    d Z ddlmZ ddlZddlZddZd Zd Z	d Z
ddZd	 Zd
 Zd Zd Zd Zd Zd Zy)z7
Compatibility tools for various data structure inputs
    )NP_LT_2Nc                 J   ddl m}m} t        | j                  ||f      st        d      | j                  j                  | j                  j                  }nt        j                  | j                        }|j                  |      st        dj                  ||            y )Nr   )DatetimeIndexPeriodIndexz0The index must be a DatetimeIndex or PeriodIndexzExpected frequency {}. Got {})pandasr   r   
isinstanceindex
ValueErrorfreqfreqstrpd
infer_freq
startswithformat)xr   r   r   inferred_freqs        O/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/tools/data.py_check_period_indexr   
   s    1agg{;<KLLww||agg.##D)8??@MO P 	P *    c                 6    t        | t        j                        S N)r   r   	DataFrameobjs    r   is_data_framer      s    c2<<((r   c                 &    ddl m} t        | |      S )Nr   )DesignMatrix)patsyr   r   )r   r   s     r   is_design_matrixr      s    "c<((r   c                 j    t        | t        j                        xr | j                  j                  d uS r   )r   npndarraydtypenamesr   s    r   _is_structured_ndarrayr%   !   s%    c2::&F399??$+FFr   c                 p   t        | t        j                        r@t        j                  |       }|t	        |j
                  d         D cg c]  }d|z  	 }}nnt        |       r5| j                         } | j                  }| j                  }| j                  }n.t        dj                  t        |       j                              t        |t              st        |      }t!        |      |j
                  d   k7  rt#        d      |"t!        |      t!        |      k7  rt#        d      |||fS c c}w )aA  
    Convert passed data structure to form required by estimation classes

    Parameters
    ----------
    data : array_like
    colnames : sequence or None
        May be part of data structure
    rownames : sequence or None

    Returns
    -------
    (values, colnames, rownames) : (homogeneous ndarray, list)
       zY_%dzCannot handle input type {typ})typz;length of colnames does not match number of columns in dataz8length of rownames does not match number of rows in data)r   r!   r"   asarrayrangeshaper   dropnavaluescolumnsr	   	TypeErrorr   type__name__listlenr
   )datacolnamesrownamesr-   is        r   interpret_datar8   %   s    $

#D!,1&,,q/,BCq
CHC	t	{{}<<::8DJ$7$78: 	: h%> 8}Q' . / 	/ HV < + , 	, 8X%%/ Ds   D3c                     | j                  t        t        | j                  j                        fft
        j                        S )N)r0   )viewfloatr3   r#   r$   r!   r"   )arrs    r   struct_to_ndarrayr=   R   s.    88US1342::8FFr   c                 ~    t        |       t        j                  u xr! t        |      t        j                  u xs |d u S r   )r0   r!   r"   endogexogs     r   _is_using_ndarray_typerB   V   s5    K2::% 7$Z2::%58r   c                 z    t        | t        j                        xr  t        |t        j                        xs |d u S r   )r   r!   r"   r?   s     r   _is_using_ndarrayrD   [   s1    ubjj) ;bjj)9TT\<r   c                 B    ddl m} t        | |      xs t        ||      S )Nr   )data_klasses)statsmodels.compat.pandasrF   r   )r@   rA   klassess      r   _is_using_pandasrI   `   s    Aug&C*T7*CDr   c                 h    	 t        j                  |       } t        j                  |      }y#  Y yxY w)NTF)r!   r)   r?   s     r   _is_array_likerK   e   s0    

5!zz$s   *- 1c                 >    t        |       xr t        |      xs |d u S r   )r   r?   s     r   _is_using_patsyrM   n   s%    U# 5d#3tt|6r   c                     t         r$t        | t        j                  j                        S t        | t        j
                  j                        S )z,
    Returns true if data is a recarray
    )r   r   r!   corerecarrayrec)r4   s    r   _is_recarrayrR   t   s3     $ 0 011$00r   )M)NN)__doc__statsmodels.compat.numpyr   numpyr!   r   r   r   r   r   r%   r8   r=   rB   rD   rI   rK   rM   rR    r   r   <module>rX      sV    -  P))
G*&ZG8
<
E
61r   