1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-03-01 05:32:13 +01:00

Merge pull request #803 from marcus-h/remove_chardet_decoding

Do not use the chardet module in util.helper.decode_it
This commit is contained in:
Marco Strigl 2020-06-04 15:00:37 +02:00 committed by GitHub
commit 869772f054
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -56,21 +56,18 @@ def decode_list(ilist):
def decode_it(obj): def decode_it(obj):
""" Decodes the given object if obj is not a string """Decode the given object.
based on the chardet module if possible
"""
if obj is None or isinstance(obj, str): If the given object has no decode method, the object itself is
returned. Otherwise, try to decode the object using utf-8. If this
fails due to a UnicodeDecodeError, try to decode the object using
latin-1.
"""
if not hasattr(obj, 'decode'):
return obj return obj
else:
try: try:
import chardet return obj.decode('utf-8')
return obj.decode(chardet.detect(obj)['encoding']) except UnicodeDecodeError:
except:
try:
import locale
return obj.decode(locale.getlocale()[1])
except:
return obj.decode('latin-1') return obj.decode('latin-1')