parameters: (*args, **kwargs)
docstring: a portable min() for python2 which takes a default value when
      the iterable is empty
  
      >>> portable_min([1], default=42)
      1
      >>> portable_min([], default=42)
      42
      >>> portable_min(iter(()), default=43) # empty iterable
      43
docstring_summary: a portable min() for python2 which takes a default value when
      the iterable is empty
docstring_tokens: a portable min () for python2 which takes a default value when the iterable is empty
function: def portable_min(*args, **kwargs):
      """
      a portable min() for python2 which takes a default value when
      the iterable is empty
  
      >>> portable_min([1], default=42)
      1
      >>> portable_min([], default=42)
      42
      >>> portable_min(iter(()), default=43) # empty iterable
      43
  
      """
      if PY2:
          default = kwargs.pop('default', None)
          try:
              return min(*args, **kwargs)
          except ValueError:
              return default
          except Exception:
              raise
      if PY3:
          return min(*args, **kwargs)
function_tokens: def portable_min ( * args , * * kwargs ) : if PY2 : default = kwargs . pop ( 'default' , None ) try : return min ( * args , * * kwargs ) except ValueError : return default except Exception : raise if PY3 : return min ( * args , * * kwargs )