1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-10 06:46:15 +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):
""" Decodes the given object if obj is not a string
based on the chardet module if possible
"""
"""Decode the given object.
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
else:
try:
import chardet
return obj.decode(chardet.detect(obj)['encoding'])
except:
try:
import locale
return obj.decode(locale.getlocale()[1])
except:
return obj.decode('utf-8')
except UnicodeDecodeError:
return obj.decode('latin-1')