golden hour
/opt/cloudlinux/venv/lib/python3.11/site-packages/chardet
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
4.68 KB
Del
OK
__main__.py
123 B
Del
OK
__pycache__
-
Del
OK
big5freq.py
30.54 KB
Del
OK
big5prober.py
1.72 KB
Del
OK
chardistribution.py
9.8 KB
Del
OK
charsetgroupprober.py
3.82 KB
Del
OK
charsetprober.py
5.29 KB
Del
OK
cli
-
Del
OK
codingstatemachine.py
3.64 KB
Del
OK
codingstatemachinedict.py
542 B
Del
OK
cp949prober.py
1.82 KB
Del
OK
enums.py
1.64 KB
Del
OK
escprober.py
3.91 KB
Del
OK
escsm.py
11.89 KB
Del
OK
eucjpprober.py
3.84 KB
Del
OK
euckrfreq.py
13.25 KB
Del
OK
euckrprober.py
1.71 KB
Del
OK
euctwfreq.py
36.05 KB
Del
OK
euctwprober.py
1.71 KB
Del
OK
gb2312freq.py
20.25 KB
Del
OK
gb2312prober.py
1.72 KB
Del
OK
hebrewprober.py
14.2 KB
Del
OK
jisfreq.py
25.19 KB
Del
OK
johabfreq.py
41.5 KB
Del
OK
johabprober.py
1.71 KB
Del
OK
jpcntx.py
26.42 KB
Del
OK
langbulgarianmodel.py
102.1 KB
Del
OK
langgreekmodel.py
96.16 KB
Del
OK
langhebrewmodel.py
95.88 KB
Del
OK
langhungarianmodel.py
98.98 KB
Del
OK
langrussianmodel.py
125.02 KB
Del
OK
langthaimodel.py
100.35 KB
Del
OK
langturkishmodel.py
93.13 KB
Del
OK
latin1prober.py
5.25 KB
Del
OK
macromanprober.py
5.93 KB
Del
OK
mbcharsetprober.py
3.63 KB
Del
OK
mbcsgroupprober.py
2.08 KB
Del
OK
mbcssm.py
29.68 KB
Del
OK
metadata
-
Del
OK
py.typed
0 B
Del
OK
resultdict.py
402 B
Del
OK
sbcharsetprober.py
6.25 KB
Del
OK
sbcsgroupprober.py
4.04 KB
Del
OK
sjisprober.py
3.91 KB
Del
OK
universaldetector.py
14.5 KB
Del
OK
utf1632prober.py
8.31 KB
Del
OK
utf8prober.py
2.75 KB
Del
OK
version.py
244 B
Del
OK
Edit: escprober.py
######################## BEGIN LICENSE BLOCK ######################## # The Original Code is mozilla.org code. # # The Initial Developer of the Original Code is # Netscape Communications Corporation. # Portions created by the Initial Developer are Copyright (C) 1998 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Mark Pilgrim - port to Python # # 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 typing import Optional, Union from .charsetprober import CharSetProber from .codingstatemachine import CodingStateMachine from .enums import LanguageFilter, MachineState, ProbingState from .escsm import ( HZ_SM_MODEL, ISO2022CN_SM_MODEL, ISO2022JP_SM_MODEL, ISO2022KR_SM_MODEL, ) class EscCharSetProber(CharSetProber): """ This CharSetProber uses a "code scheme" approach for detecting encodings, whereby easily recognizable escape or shift sequences are relied on to identify these encodings. """ def __init__(self, lang_filter: LanguageFilter = LanguageFilter.NONE) -> None: super().__init__(lang_filter=lang_filter) self.coding_sm = [] if self.lang_filter & LanguageFilter.CHINESE_SIMPLIFIED: self.coding_sm.append(CodingStateMachine(HZ_SM_MODEL)) self.coding_sm.append(CodingStateMachine(ISO2022CN_SM_MODEL)) if self.lang_filter & LanguageFilter.JAPANESE: self.coding_sm.append(CodingStateMachine(ISO2022JP_SM_MODEL)) if self.lang_filter & LanguageFilter.KOREAN: self.coding_sm.append(CodingStateMachine(ISO2022KR_SM_MODEL)) self.active_sm_count = 0 self._detected_charset: Optional[str] = None self._detected_language: Optional[str] = None self._state = ProbingState.DETECTING self.reset() def reset(self) -> None: super().reset() for coding_sm in self.coding_sm: coding_sm.active = True coding_sm.reset() self.active_sm_count = len(self.coding_sm) self._detected_charset = None self._detected_language = None @property def charset_name(self) -> Optional[str]: return self._detected_charset @property def language(self) -> Optional[str]: return self._detected_language def get_confidence(self) -> float: return 0.99 if self._detected_charset else 0.00 def feed(self, byte_str: Union[bytes, bytearray]) -> ProbingState: for c in byte_str: for coding_sm in self.coding_sm: if not coding_sm.active: continue coding_state = coding_sm.next_state(c) if coding_state == MachineState.ERROR: coding_sm.active = False self.active_sm_count -= 1 if self.active_sm_count <= 0: self._state = ProbingState.NOT_ME return self.state elif coding_state == MachineState.ITS_ME: self._state = ProbingState.FOUND_IT self._detected_charset = coding_sm.get_coding_state_machine() self._detected_language = coding_sm.language return self.state return self.state
Save