U
    Kvfu                     @   sZ  d dl mZ d dlZd dlmZmZ d dlZd dl	m
Z
mZmZmZ ddddd	d
dddddddddddddddddddgZeejZeedk Zeedk Zeed k Zeed!k Zeed"k Zzd d#lmZ W n  ek
r   d d#lmZ Y nX zd d$lmZ W n" ek
r$   d d%lmZ Y nX ejejfZzd dl m!Z! W n( ek
rj   d dl"m#  m!Z! Y nX e!j$Z$e!j%Z%e!j&Z&ej'e(d&d'dZ)ej'e(d&d(dZ*zd d)l+m,Z- W n0 ek
r   d dl.Z.d<d+d,Z/d-d Z-Y nX ejej0d.d/dZ1d0d Z2d1d Z3ee4 d2d3dZ5er$d4nd5Z6er2d6nd7Z7er@d8nd9Z8erNi nd:d;iZ9dS )=    )OptionalN)Versionparse)AppenderSubstitutioncache_readonlydeprecate_kwargassert_frame_equalassert_index_equalassert_series_equaldata_klassesfrequenciesis_numeric_dtypetestingr   r   r   r   is_int_indexis_float_indexmake_dataframeto_numpyPD_LT_1_0_0get_cached_funcget_cached_doccall_cached_func	PD_LT_1_4PD_LT_2	MONTH_ENDQUARTER_ENDYEAR_ENDFUTURE_STACKz2.1.99z2.0.99z0.99.0z1.3.99z1.9.99)r   )offsets)r   )indexreturnc                 C   s*   t | tjo(t | jtjo(t| jtjS )z
    Check if an index is integral

    Parameters
    ----------
    index : pd.Index
        Any numeric index

    Returns
    -------
    bool
        True if is an index with a standard integral type
    )
isinstancepdIndexdtypenp
issubdtypeintegerr    r)   =/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/compat/pandas.pyr   G   s
    c                 C   s*   t | tjo(t | jtjo(t| jtjS )z
    Check if an index is floating

    Parameters
    ----------
    index : pd.Index
        Any numeric index

    Returns
    -------
    bool
        True if an index with a standard numpy floating dtype
    )r!   r"   r#   r$   r%   r&   Zfloatingr(   r)   r)   r*   r   \   s
    )makeDataFrameOc                 C   sf   t jttjtj t jdfd}t jj|| t 	| d
t j| f|}|dkrX|S ||S dS )z4
        Generate an array of byte strings.
           )r$   )sizeN)r%   arrayliststringascii_lettersdigitsZstr_randomchoiceprodviewZreshapeZastype)ncharsr.   r$   Zrands_charsretvalr)   r)   r*   rands_arrayv   s     r:   c                     sF   dd} t jtdddd  fddtjd|  D }t |S )	z@
        Simple verion of pandas._testing.makeDataFrame
              
   )r8   r.   N)namec                    s$   i | ]}|t jtj d qS )r(   )r"   Seriesr%   r4   Zrandn).0cr   nr)   r*   
<dictcomp>   s    z"make_dataframe.<locals>.<dictcomp>)r"   r#   r:   r1   ascii_uppercase	DataFrame)kdatar)   rB   r*   r      s    )por    c                 C   s*   z
|   W S  tk
r$   | j Y S X dS )z
    Workaround legacy pandas lacking to_numpy

    Parameters
    ----------
    po : Pandas obkect

    Returns
    -------
    ndarray
        A numpy array
    N)r   AttributeErrorvalues)rI   r)   r)   r*   r      s    
c                 C   s(   z| j W S  tk
r"   | j Y S X d S N)fgetrJ   funccached_propr)   r)   r*   r      s    c                 O   s   t | }|||S rL   )r   )rP   argskwargsfr)   r)   r*   r      s    )r    c                 C   s
   t | jS rL   )r   __doc__rO   r)   r)   r*   r      s    MZMEQZQEYZYEZfuture_stackT)r,   ):typingr   Znumpyr%   Zpackaging.versionr   r   Zpandasr"   Zpandas.util._decoratorsr   r   r   r   __all____version__versionZPD_LT_2_2_0ZPD_LT_2_1_0r   r   r   Zpandas.api.typesr   ImportErrorZpandas.core.commonZpandas.tseriesr   r   r?   rF   r   Zpandas.testingr   Zpandas.util.testingutilr	   r
   r   r#   boolr   r   Zpandas._testingr+   r   r1   r:   Zndarrayr   r   r   strr   r   r   r   r   r)   r)   r)   r*   <module>   s   

