U
    KvfÑ  ã                	   @   sº   d Z ddlZddlmZ ejdd… dkZdd„ Zdd	d
ddddddg	Zdd
„ Zdd	„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zejdkr˜ddlmZ nerªddlmZ nddlmZ dS )z<
Compatibility tools for differences between Python 2 and 3
é    N)ÚTYPE_CHECKINGé   )é   é   c                 C   s   t | ƒS ©N)Ústr)ÚxÚ_© r
   ú=/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/compat/python.pyÚ<lambda>	   ó    r   Ú	asunicodeÚasstrÚasbytesÚLiteralÚlmapÚlzipÚlrangeÚlfilterÚwith_metaclassc                 C   s   t | tƒr| S |  d¡S ©NÚlatin1)Ú
isinstanceÚbytesÚencode©Úsr
   r
   r   r      s    
c                 C   s   t | tƒr| S |  d¡S r   )r   r   Údecoder   r
   r
   r   r      s    
c                  O   s   t t| |ŽƒS r   )ÚlistÚrange©ÚargsÚkwargsr
   r
   r   r   &   s    c                  O   s   t t| |ŽƒS r   )r   Úzipr!   r
   r
   r   r   *   s    c                  O   s   t t| |ŽƒS r   )r   Úmapr!   r
   r
   r   r   .   s    c                  O   s   t t| |ŽƒS r   )r   Úfilterr!   r
   r
   r   r   2   s    c                    s&   G ‡ ‡fdd„dˆƒ}t  |ddi ¡S )z%Create a base class with a metaclass.c                       s   e Zd Z‡ ‡fdd„ZdS )z!with_metaclass.<locals>.metaclassc                    s   ˆ|ˆ |ƒS r   r
   )ÚclsÚnameÚ
this_basesÚd©ÚbasesÚmetar
   r   Ú__new__<   s    z)with_metaclass.<locals>.metaclass.__new__N)Ú__name__Ú
__module__Ú__qualname__r.   r
   r+   r
   r   Ú	metaclass;   s   r2   Útemporary_classr
   )Útyper.   )r-   r,   r2   r
   r+   r   r   6   s    )r   é   )r   )ÚAny)Ú__doc__ÚsysÚtypingr   Úversion_infoZPY37r   Ú__all__r   r   r   r   r   r   r   r   Ztyping_extensionsr6   r
   r
   r
   r   Ú<module>   s4   ÷
