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
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:52 +0000
1from cchardet import _cchardet
2from .version import __version__
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}
21class UniversalDetector(object):
22 def __init__(self):
23 self._detector = _cchardet.UniversalDetector()
25 def __enter__(self):
26 return self
28 def __exit__(self, exception_type, exception_value, traceback):
29 self.close()
30 return False
32 def reset(self):
33 self._detector.reset()
35 def feed(self, data):
36 self._detector.feed(data)
38 def close(self):
39 self._detector.close()
41 @property
42 def done(self):
43 return self._detector.done
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}