Sindbad~EG File Manager
3
�uGh'� � @ s� d Z ddlmZ ddlZddlmZ ddlmZ m
Z ddlZddl
ZddlmZ ddlmZmZmZ ddlmZmZmZmZ dd lmZmZm Z m!Z!m"Z" e r�dd
l#m$Z$m%Z% ndd
l&m$Z$m%Z% dd� Zdd
lm'Z' e!r�d4dd�Z(nddlm(Z( e"�r*yddl)m*Z* W n" e+k
�r& ddl,m*Z* Y nX n4yddl-m*Z* W n" e+k
�r\ ddl.m*Z* Y nX d5dd�Z/G dd� de0�Z1G dd� de2�Z3yddlmZ ddl
m4Z4 W n e+k
�r� Y nX dd� Z5G dd� de2�Z6d d!� Z7d6d"d�Z(G d#d$� d$e%�Z8dd%lm9Z9 e9dfd&d'�Z:d(d)� Z;e3Z<e6Z=e7Z>e(Z?eZ@e5ZAe/ZBe8ZCe:ZDe;ZEejFd7k�r�dd,l#m3Z3m6Z6 ddlm(Z( dd-lGm;Z; ydd.lm7Z7 W n e+k
�r� Y nX dd/lm:Z: ejFd8k�r�ddlmZ dd1l#m5Z5 ejFd9k�r�dd2lHm/Z/ dd3l#m8Z8 dS ):a�
Miscellaneous function (re)definitions from the Py3.4+ standard library
for Python 2.6/2.7.
- math.ceil (for Python 2.7)
- collections.OrderedDict (for Python 2.6)
- collections.Counter (for Python 2.6)
- collections.ChainMap (for all versions prior to Python 3.3)
- itertools.count (for Python 2.6, with step parameter)
- subprocess.check_output (for Python 2.6)
- reprlib.recursive_repr (for Python 2.6+)
- functools.cmp_to_key (for Python 2.6)
� )�absolute_importN)�ceil)�
itemgetter�eq)�proxy)�repeat�chain�starmap)�getaddrinfo�SOCK_STREAM�error�socket)� iteritems�
itervalues�PY2�PY26�PY3)�Mapping�MutableMappingc C s t t| ��S )zZ
Return the ceiling of x as an int.
This is the smallest integral value >= x.
)�int�oldceil)�x� r �</root/tmp/pip-build-gzoz1_uw/future/future/backports/misc.pyr # s r )�islice� c c s x| V | |7 } qW d S )Nr )�start�stepr r r �count3 s r )r )� get_ident�...c s � fdd�}|S )zGDecorator to make a repr function return fillvalue for a recursive callc sL t � � �� �fdd�}t�d�|_t�d�|_t�d�|_t�di �|_|S )Nc sB t | �t� f}|�kr� S �j|� z�| �}W d �j|� X |S )N)�idr �add�discard)�self�key�result)� fillvalue�repr_running�
user_functionr r �wrapperM s
z<recursive_repr.<locals>.decorating_function.<locals>.wrapper�
__module__�__doc__�__name__�__annotations__)�set�getattrr+ r, r- r. )r) r* )r'