<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ui_open(*files):
 """Attempts to open the given files using the preferred desktop viewer or editor. :raises :class:`OpenError`: if there is a problem opening any of the files. """

  if files:
    osname = get_os_name()
    opener = _OPENER_BY_OS.get(osname)
    if opener:
      opener(files)
    else:
      raise OpenError('Open currently not supported for ' + osname)