o
    ,1]                     @   s^   d dl Z d dlmZ ejrd dlmZmZ nd dl	mZmZ e
 Zdd Zdd Zdd	 ZdS )
    N)utils)maxminc                  O      t tg| R i |S N)new_min_max_builtin_minargskwargs r   =/usr/lib/python3/dist-packages/future/builtins/new_min_max.pynewmin      r   c                  O   r   r   )r   _builtin_maxr	   r   r   r   newmax   r   r   c                 O   s,  |  D ]\}}|tddgvrtd|qt|dkrtt|dkr.|dttur.tt|dkrzt|d }zt|}W n ty^   |dtturV|d Y S t	d
| jw t|g|}|ddurv| ||ddS | |S t|dkr|ddur| ||ddS | |S dS )	z
    To support the argument "default" introduced in python 3.4 for min and max
    :param _builtin_func: builtin min or builtin max
    :param args:
    :param kwargs:
    :return: returns the min or max based on the arguments passed
    keydefaultzIllegal argument %sr      z{}() arg is an empty sequenceN)r   )itemsset	TypeErrorlenget	_SENTINELiternextStopIteration
ValueErrorformat__name__	itertoolschain)_builtin_funcr
   r   r   _iteratorfirstr   r   r   r      s4   	
r   )r!   futurer   PY2__builtin__r   r   r   r   builtinsobjectr   r   r   r   r   r   r   r   <module>   s    