def prefer_first(*vals):
    """
  This idiom is used so often...
  Pick fist value unles it's None.

  Usage::
  
      >>> prefer_first( True, 42 )
      True
      >>> prefer_first( None, 42 )
      42

      ## Still pick 1st one if it's not None
      >>> prefer_first( False, 42 )
      False

      >>> prefer_first( 1, 2, 3 )
      1
      >>> prefer_first( None, 2, 3 )
      2
      >>> prefer_first( None, None, 3 )
      3
      >>> prefer_first( None, None, None ) is None
      True

  """
    for val in vals:
        if val is not None:
            return val
    return val
