|
|
|
@ -15,7 +15,6 @@
|
|
|
|
|
# 02110-1301 USA
|
|
|
|
|
######################### END LICENSE BLOCK #########################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from .compat import PY2, PY3
|
|
|
|
|
from .universaldetector import UniversalDetector
|
|
|
|
|
from .version import __version__, VERSION
|
|
|
|
@ -25,15 +24,28 @@ def detect(byte_str):
|
|
|
|
|
"""
|
|
|
|
|
Detect the encoding of the given byte string.
|
|
|
|
|
|
|
|
|
|
This function uses the UniversalDetector class to determine the encoding
|
|
|
|
|
of a given byte string. It creates a new UniversalDetector instance,
|
|
|
|
|
feeds the byte string to it, and then returns the detected encoding.
|
|
|
|
|
|
|
|
|
|
:param byte_str: The byte sequence to examine.
|
|
|
|
|
:type byte_str: ``bytes`` or ``bytearray``
|
|
|
|
|
:return: The detected encoding.
|
|
|
|
|
"""
|
|
|
|
|
# Check if the input is of the correct type
|
|
|
|
|
if not isinstance(byte_str, bytearray):
|
|
|
|
|
if not isinstance(byte_str, bytes):
|
|
|
|
|
raise TypeError('Expected object of type bytes or bytearray, got: '
|
|
|
|
|
'{0}'.format(type(byte_str)))
|
|
|
|
|
else:
|
|
|
|
|
# If the input is of type bytes, convert it to bytearray
|
|
|
|
|
byte_str = bytearray(byte_str)
|
|
|
|
|
|
|
|
|
|
# Create a new UniversalDetector instance
|
|
|
|
|
detector = UniversalDetector()
|
|
|
|
|
|
|
|
|
|
# Feed the byte string to the detector
|
|
|
|
|
detector.feed(byte_str)
|
|
|
|
|
return detector.close()
|
|
|
|
|
|
|
|
|
|
# Close the detector and return the detected encoding
|
|
|
|
|
return detector.close()
|