'Return an `Item` read from the path.
If an item cannot be read, return `None` instead and log an
error.'

def read_item(self, path):

    try:
        return library.Item.from_path(path)
    except library.ReadError as exc:
        if isinstance(exc.reason, mediafile.FileTypeError):
            pass
        elif isinstance(exc.reason, mediafile.UnreadableFileError):
            log.warning(u'unreadable    file:    {0}', displayable_path(path))
        else:
            log.error(u'error    reading    {0}:    {1}', displayable_path(path), exc)
