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   úX/var/www/html/myproject/venv/lib/python3.10/site-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    