def displayable_path(path, separator=u'; '):
 if isinstance(path, (list, tuple)):
  return separator.join((displayable_path(p) for p in path))
 elif isinstance(path, unicode):
  return path
 elif (not isinstance(path, str)):
  return unicode(path)
 try:
  return path.decode(_fsencoding(), 'ignore')
 except (UnicodeError, LookupError):
  return path.decode('utf8', 'ignore')

def displayable_path ( path , separator = u'; ' ) : if isinstance ( path , ( list , tuple ) ) : return separator . join ( ( displayable_path ( p ) for p in path ) ) elif isinstance ( path , unicode ) : return path elif ( not isinstance ( path , str ) ) : return unicode ( path ) try : return path . decode ( _fsencoding ( ) , 'ignore' ) except ( UnicodeError , LookupError ) : return path . decode ( 'utf8' , 'ignore' )
attempts to decode a bytestring path to a unicode object for the purpose of displaying it to the user .