1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

######################## BEGIN LICENSE BLOCK ######################## 

# This library is free software; you can redistribute it and/or 

# modify it under the terms of the GNU Lesser General Public 

# License as published by the Free Software Foundation; either 

# version 2.1 of the License, or (at your option) any later version. 

# 

# This library is distributed in the hope that it will be useful, 

# but WITHOUT ANY WARRANTY; without even the implied warranty of 

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 

# Lesser General Public License for more details. 

# 

# You should have received a copy of the GNU Lesser General Public 

# License along with this library; if not, write to the Free Software 

# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 

# 02110-1301 USA 

######################### END LICENSE BLOCK ######################### 

 

 

from .compat import PY2, PY3 

from .universaldetector import UniversalDetector 

from .version import __version__, VERSION 

 

 

def detect(byte_str): 

""" 

Detect the encoding of the given byte string. 

 

:param byte_str: The byte sequence to examine. 

:type byte_str: ``bytes`` or ``bytearray`` 

""" 

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: 

byte_str = bytearray(byte_str) 

detector = UniversalDetector() 

detector.feed(byte_str) 

return detector.close()