
    ^                     j   d Z ddlZej                  d   dk(  r4ej                  ZeZeZ	d Z
d Zd Zd Zd Zd	 Zd
 Zd Zd Zd ZeZd ZnQej                  dd ddgkD  r5ej.                  ZeefZeZ	eZ
d Zd Zd Zd Zd Zd Zd Zd Zd ZeZd Zn ed      	 ddlmZ y# e$ r ddl ZY yw xY w)z
Compatibility wrappers providing uniform behaviour for Python code required to
run under both Python 2.x and 3.x.

All operations emulate 2.x behaviour where applicable.
    N   c                     t        | d      S )NzUTF-8)bytesxs    0/usr/lib/python3/dist-packages/netaddr/compat.py<lambda>r	      s    E!W-     c                 T    t        | t        t        dj                               f      S N )
isinstancestrtypeencoder   s    r   r	   r	      s    
1sD,=&>? r
   c                 "    t        | t              S N)r   intr   s    r   r	   r	      s    
1c* r
   c                     t        | d      S )N__call__)hasattrr   s    r   r	   r	      s    '!Z0 r
   c                 4    t        | j                               S r   )listkeysr   s    r   r	   r	      s    4> r
   c                 4    t        | j                               S r   )r   itemsr   s    r   r	   r	       s    DO r
   c                 "    | j                         S r   r   r   s    r   r	   r	   "   s     r
   c                  <     dj                         j                  |  S r   )r   joinargss    r   _bytes_joinr#   $   s    ryy{&&r
   c                  $    t        t        |        S r   )r   zipr!   s    r   _zipr&   '   s    CJr
   c                  *    t        t        | i |      S r   )r   ranger"   kwargss     r   _ranger+   *   s    E4*6*++r
   c                     t        |       S r   nextr   s    r   
_iter_nextr/   /   s    Awr
      c                 "    t        | t              S r   )r   
basestringr   s    r   r	   r	   <   s    
1j1 r
   c                 .    t        | t        t        f      S r   )r   r   longr   s    r   r	   r	   >   s    
1sDk2 r
   c                     t        |       S r   )callabler   s    r   r	   r	   @   s
    (1+ r
   c                 "    | j                         S r   r   r   s    r   r	   r	   B   s    1668 r
   c                 "    | j                         S r   )r   r   s    r   r	   r	   D   s    AGGI r
   c                 4    t        | j                               S r   )iterr   r   s    r   r	   r	   F   s    QVVX r
   c                        dj                   |  S r   )r    r!   s    r   r#   r#   H   s    rww~r
   c                      t        |  S r   )r%   r!   s    r   r&   r&   K   s    Dzr
   c                      t        | i |S r   )r(   r)   s     r   r+   r+   N   s    d%f%%r
   c                 "    | j                         S r   r-   r   s    r   r/   r/   S   s    vvxr
   zAthis module only supports Python 2.4.x or higher (including 3.x)!)	resources)!__doc__sys_sysversion_infomaxsize_sys_maxintr   	_int_typer   	_str_type_bytes_type_is_str_is_int	_callable
_dict_keys_dict_items_iter_dict_keysr#   r&   r+   r(   _iter_ranger/   maxintr4   r2   xrangeRuntimeError	importlibr?   _importlib_resourcesImportErrorimportlib_resources r
   r   <module>rX      s   Q1,,KII-K?G*G0I)J+K(O' , K 
qq!f$++KdIIK1G2G%I#J%K.O& K KM M7; 767s   B& &	B21B2