Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/cchardet/__init__.py: 47%

30 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-07 06:52 +0000

1from cchardet import _cchardet 

2from .version import __version__ 

3 

4 

5def detect(msg): 

6 """ 

7 Args: 

8 msg: str 

9 Returns: 

10 { 

11 "encoding": str, 

12 "confidence": float 

13 } 

14 """ 

15 encoding, confidence = _cchardet.detect_with_confidence(msg) 

16 if isinstance(encoding, bytes): 

17 encoding = encoding.decode() 

18 return {"encoding": encoding, "confidence": confidence} 

19 

20 

21class UniversalDetector(object): 

22 def __init__(self): 

23 self._detector = _cchardet.UniversalDetector() 

24 

25 def __enter__(self): 

26 return self 

27 

28 def __exit__(self, exception_type, exception_value, traceback): 

29 self.close() 

30 return False 

31 

32 def reset(self): 

33 self._detector.reset() 

34 

35 def feed(self, data): 

36 self._detector.feed(data) 

37 

38 def close(self): 

39 self._detector.close() 

40 

41 @property 

42 def done(self): 

43 return self._detector.done 

44 

45 @property 

46 def result(self): 

47 encoding, confidence = self._detector.result 

48 if isinstance(encoding, bytes): 

49 encoding = encoding.decode() 

50 return {"encoding": encoding, "confidence": confidence}