import codecs import encodings.aliases import re import babel.core def patch_codecs(): # --------------------------------------------------------- # some charset are known by Python under a different name # --------------------------------------------------------- encodings.aliases.aliases['874'] = 'cp874' encodings.aliases.aliases['windows_874'] = 'cp874' # --------------------------------------------------------- # alias hebrew iso-8859-8-i and iso-8859-8-e on iso-8859-8 # https://bugs.python.org/issue18624 # --------------------------------------------------------- iso8859_8 = codecs.lookup('iso8859_8') iso8859_8ie_re = re.compile(r'iso[-_]?8859[-_]8[-_]?[ei]', re.IGNORECASE) codecs.register(lambda charset: iso8859_8 if iso8859_8ie_re.match(charset) else None) # To remove when corrected in Babel babel.core.LOCALE_ALIASES['nb'] = 'nb_NO'