Tries to parse a given filepath or fileobj into a Bibliography instance. If
    ``validate`` is passed as keyword argument and set to ``True``, the
    Bibliography will be validated using the standard rules.

def parse_file(file_or_path, encoding='utf-8', validate=False):
    """
    Tries to parse a given filepath or fileobj into a Bibliography instance. If
    ``validate`` is passed as keyword argument and set to ``True``, the
    Bibliography will be validated using the standard rules.
    """
    try:
        is_string = isinstance(file_or_path, basestring)
    except NameError:
        is_string = isinstance(file_or_path, str)
    if is_string:
        with codecs.open(file_or_path, 'r', encoding) as file_:
            result = pattern.parseFile(file_)[0]
    else:
        result = pattern.parseFile(file_or_path)[0]
    if validate:
        result.validate()
    return result