'open([path, [encoding]])
If you do not provide any encoding, it can be detected if the file
contain a bit order mark, unless it is set to utf-8 as default.'

@classmethod
def open(cls, path='', encoding=None, error_handling=ERROR_PASS):

    (source_file, encoding) = cls._open_unicode_file(path, claimed_encoding=encoding)
    new_file = cls(path=path, encoding=encoding)
    new_file.read(source_file, error_handling=error_handling)
    source_file.close()
    return new_file
