o ,1]@s^ddlZddlmZejrddlmZmZnddl mZmZe Z ddZ ddZ dd ZdS) N)utils)maxmincOttg|Ri|SN) new_min_max _builtin_minargskwargsr =/usr/lib/python3/dist-packages/future/builtins/new_min_max.pynewmin rcOrr)r _builtin_maxr r r r newmaxrrcOs,|D]\}}|tddgvrtd|qt|dkrtt|dkr.|dttur.tt|dkrzt|d}zt|}Wnty^|dtturV|dYSt d |j wt |g|}|ddurv|||ddS||St|dkr|ddur|||ddS||SdS) 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 keydefaultzIllegal argument %srz{}() arg is an empty sequenceN)r)itemsset TypeErrorlenget _SENTINELiternext StopIteration ValueErrorformat__name__ itertoolschain) _builtin_funcr r r_iteratorfirstr r r rs4        r)r!futurerPY2 __builtin__rrrrbuiltinsobjectrrrrr r r r s