U
    h                     @   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   s   t tf| |S N)new_min_max_builtin_minargskwargs r   M/var/www/html/venv/lib/python3.8/site-packages/future/builtins/new_min_max.pynewmin   s    r   c                  O   s   t tf| |S r   )r   _builtin_maxr   r   r   r   newmax   s    r   c                 O   s6  |  D ]"\}}|tddgkrtd|qt|dkr<tt|dkr\|dttk	r\tt|dkrt|d }zt|}W nB tk
r   |dttk	r|d Y S t	d
| jY nX t|g|}|ddk	r| ||ddS | |S t|dkr2|ddk	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)Z_builtin_funcr	   r
   r   _iteratorfirstr   r   r   r      s.    	r   )r   futurer   PY2__builtin__r   r   r   r   builtinsobjectr   r   r   r   r   r   r   r   <module>   s   