SILENT KILLERPanel

Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > > site-packages > chardet


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/cloudlinux/venv/lib64/python3.11//site-packages/chardet

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
cli Directory - -
metadata Directory - -
__init__.py File 4797 bytes April 17 2025 13:10:59.
__main__.py File 123 bytes April 17 2025 13:10:59.
big5freq.py File 31274 bytes April 17 2025 13:10:59.
big5prober.py File 1763 bytes April 17 2025 13:10:59.
chardistribution.py File 10032 bytes April 17 2025 13:10:59.
charsetgroupprober.py File 3915 bytes April 17 2025 13:10:59.
charsetprober.py File 5420 bytes April 17 2025 13:10:59.
codingstatemachine.py File 3732 bytes April 17 2025 13:10:59.
codingstatemachinedict.py File 542 bytes April 17 2025 13:10:59.
cp949prober.py File 1860 bytes April 17 2025 13:10:59.
enums.py File 1683 bytes April 17 2025 13:10:59.
escprober.py File 4006 bytes April 17 2025 13:10:59.
escsm.py File 12176 bytes April 17 2025 13:10:59.
eucjpprober.py File 3934 bytes April 17 2025 13:10:59.
euckrfreq.py File 13566 bytes April 17 2025 13:10:59.
euckrprober.py File 1753 bytes April 17 2025 13:10:59.
euctwfreq.py File 36913 bytes April 17 2025 13:10:59.
euctwprober.py File 1753 bytes April 17 2025 13:10:59.
gb2312freq.py File 20735 bytes April 17 2025 13:10:59.
gb2312prober.py File 1759 bytes April 17 2025 13:10:59.
hebrewprober.py File 14537 bytes April 17 2025 13:10:59.
jisfreq.py File 25796 bytes April 17 2025 13:10:59.
johabfreq.py File 42498 bytes April 17 2025 13:10:59.
johabprober.py File 1752 bytes April 17 2025 13:10:59.
jpcntx.py File 27055 bytes April 17 2025 13:10:59.
langbulgarianmodel.py File 104550 bytes April 17 2025 13:10:59.
langgreekmodel.py File 98472 bytes April 17 2025 13:10:59.
langhebrewmodel.py File 98184 bytes April 17 2025 13:10:59.
langhungarianmodel.py File 101351 bytes April 17 2025 13:10:59.
langrussianmodel.py File 128023 bytes April 17 2025 13:10:59.
langthaimodel.py File 102762 bytes April 17 2025 13:10:59.
langturkishmodel.py File 95360 bytes April 17 2025 13:10:59.
latin1prober.py File 5380 bytes April 17 2025 13:10:59.
macromanprober.py File 6077 bytes April 17 2025 13:10:59.
mbcharsetprober.py File 3715 bytes April 17 2025 13:10:59.
mbcsgroupprober.py File 2131 bytes April 17 2025 13:10:59.
mbcssm.py File 30391 bytes April 17 2025 13:10:59.
py.typed File 0 bytes April 17 2025 13:10:59.
resultdict.py File 402 bytes April 17 2025 13:10:59.
sbcharsetprober.py File 6400 bytes April 17 2025 13:10:59.
sbcsgroupprober.py File 4137 bytes April 17 2025 13:10:59.
sjisprober.py File 4007 bytes April 17 2025 13:10:59.
universaldetector.py File 14848 bytes April 17 2025 13:10:59.
utf1632prober.py File 8505 bytes April 17 2025 13:10:59.
utf8prober.py File 2812 bytes April 17 2025 13:10:59.
version.py File 244 bytes April 17 2025 13:10:59.

Reading File: //opt/cloudlinux/venv/lib64/python3.11//site-packages/chardet/codingstatemachine.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 #########################

import logging

from .codingstatemachinedict import CodingStateMachineDict
from .enums import MachineState


class CodingStateMachine:
    """
    A state machine to verify a byte sequence for a particular encoding. For
    each byte the detector receives, it will feed that byte to every active
    state machine available, one byte at a time. The state machine changes its
    state based on its previous state and the byte it receives. There are 3
    states in a state machine that are of interest to an auto-detector:

    START state: This is the state to start with, or a legal byte sequence
                 (i.e. a valid code point) for character has been identified.

    ME state:  This indicates that the state machine identified a byte sequence
               that is specific to the charset it is designed for and that
               there is no other possible encoding which can contain this byte
               sequence. This will to lead to an immediate positive answer for
               the detector.

    ERROR state: This indicates the state machine identified an illegal byte
                 sequence for that encoding. This will lead to an immediate
                 negative answer for this encoding. Detector will exclude this
                 encoding from consideration from here on.
    """

    def __init__(self, sm: CodingStateMachineDict) -> None:
        self._model = sm
        self._curr_byte_pos = 0
        self._curr_char_len = 0
        self._curr_state = MachineState.START
        self.active = True
        self.logger = logging.getLogger(__name__)
        self.reset()

    def reset(self) -> None:
        self._curr_state = MachineState.START

    def next_state(self, c: int) -> int:
        # for each byte we get its class
        # if it is first byte, we also get byte length
        byte_class = self._model["class_table"][c]
        if self._curr_state == MachineState.START:
            self._curr_byte_pos = 0
            self._curr_char_len = self._model["char_len_table"][byte_class]
        # from byte's class and state_table, we get its next state
        curr_state = self._curr_state * self._model["class_factor"] + byte_class
        self._curr_state = self._model["state_table"][curr_state]
        self._curr_byte_pos += 1
        return self._curr_state

    def get_current_charlen(self) -> int:
        return self._curr_char_len

    def get_coding_state_machine(self) -> str:
        return self._model["name"]

    @property
    def language(self) -> str:
        return self._model["language"]

SILENT KILLER Tool