p!ranha?
Server IP : 103.169.32.36  /  Your IP : 216.73.217.13
Web Server : Apache
System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python2.7/site-packages/chardet/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /lib/python2.7/site-packages/chardet/universaldetector.py
######################## BEGIN LICENSE BLOCK ########################
# The Original Code is Mozilla Universal charset detector code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 2001
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Mark Pilgrim - port to Python
#   Shy Shalom - original C code
#
# 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 . import constants
import sys
import codecs
from .latin1prober import Latin1Prober  # windows-1252
from .mbcsgroupprober import MBCSGroupProber  # multi-byte character sets
from .sbcsgroupprober import SBCSGroupProber  # single-byte character sets
from .escprober import EscCharSetProber  # ISO-2122, etc.
import re

MINIMUM_THRESHOLD = 0.20
ePureAscii = 0
eEscAscii = 1
eHighbyte = 2


class UniversalDetector:
    def __init__(self):
        self._highBitDetector = re.compile(b'[\x80-\xFF]')
        self._escDetector = re.compile(b'(\033|~{)')
        self._mEscCharSetProber = None
        self._mCharSetProbers = []
        self.reset()

    def reset(self):
        self.result = {'encoding': None, 'confidence': 0.0}
        self.done = False
        self._mStart = True
        self._mGotData = False
        self._mInputState = ePureAscii
        self._mLastChar = b''
        if self._mEscCharSetProber:
            self._mEscCharSetProber.reset()
        for prober in self._mCharSetProbers:
            prober.reset()

    def feed(self, aBuf):
        if self.done:
            return

        aLen = len(aBuf)
        if not aLen:
            return

        if not self._mGotData:
            # If the data starts with BOM, we know it is UTF
            if aBuf[:3] == codecs.BOM:
                # EF BB BF  UTF-8 with BOM
                self.result = {'encoding': "UTF-8", 'confidence': 1.0}
            elif aBuf[:4] == codecs.BOM_UTF32_LE:
                # FF FE 00 00  UTF-32, little-endian BOM
                self.result = {'encoding': "UTF-32LE", 'confidence': 1.0}
            elif aBuf[:4] == codecs.BOM_UTF32_BE:
                # 00 00 FE FF  UTF-32, big-endian BOM
                self.result = {'encoding': "UTF-32BE", 'confidence': 1.0}
            elif aBuf[:4] == b'\xFE\xFF\x00\x00':
                # FE FF 00 00  UCS-4, unusual octet order BOM (3412)
                self.result = {
                    'encoding': "X-ISO-10646-UCS-4-3412",
                    'confidence': 1.0
                }
            elif aBuf[:4] == b'\x00\x00\xFF\xFE':
                # 00 00 FF FE  UCS-4, unusual octet order BOM (2143)
                self.result = {
                    'encoding': "X-ISO-10646-UCS-4-2143",
                    'confidence': 1.0
                }
            elif aBuf[:2] == codecs.BOM_LE:
                # FF FE  UTF-16, little endian BOM
                self.result = {'encoding': "UTF-16LE", 'confidence': 1.0}
            elif aBuf[:2] == codecs.BOM_BE:
                # FE FF  UTF-16, big endian BOM
                self.result = {'encoding': "UTF-16BE", 'confidence': 1.0}

        self._mGotData = True
        if self.result['encoding'] and (self.result['confidence'] > 0.0):
            self.done = True
            return

        if self._mInputState == ePureAscii:
            if self._highBitDetector.search(aBuf):
                self._mInputState = eHighbyte
            elif ((self._mInputState == ePureAscii) and
                    self._escDetector.search(self._mLastChar + aBuf)):
                self._mInputState = eEscAscii

        self._mLastChar = aBuf[-1:]

        if self._mInputState == eEscAscii:
            if not self._mEscCharSetProber:
                self._mEscCharSetProber = EscCharSetProber()
            if self._mEscCharSetProber.feed(aBuf) == constants.eFoundIt:
                self.result = {'encoding': self._mEscCharSetProber.get_charset_name(),
                               'confidence': self._mEscCharSetProber.get_confidence()}
                self.done = True
        elif self._mInputState == eHighbyte:
            if not self._mCharSetProbers:
                self._mCharSetProbers = [MBCSGroupProber(), SBCSGroupProber(),
                                         Latin1Prober()]
            for prober in self._mCharSetProbers:
                if prober.feed(aBuf) == constants.eFoundIt:
                    self.result = {'encoding': prober.get_charset_name(),
                                   'confidence': prober.get_confidence()}
                    self.done = True
                    break

    def close(self):
        if self.done:
            return
        if not self._mGotData:
            if constants._debug:
                sys.stderr.write('no data received!\n')
            return
        self.done = True

        if self._mInputState == ePureAscii:
            self.result = {'encoding': 'ascii', 'confidence': 1.0}
            return self.result

        if self._mInputState == eHighbyte:
            proberConfidence = None
            maxProberConfidence = 0.0
            maxProber = None
            for prober in self._mCharSetProbers:
                if not prober:
                    continue
                proberConfidence = prober.get_confidence()
                if proberConfidence > maxProberConfidence:
                    maxProberConfidence = proberConfidence
                    maxProber = prober
            if maxProber and (maxProberConfidence > MINIMUM_THRESHOLD):
                self.result = {'encoding': maxProber.get_charset_name(),
                               'confidence': maxProber.get_confidence()}
                return self.result

        if constants._debug:
            sys.stderr.write('no probers hit minimum threshhold\n')
            for prober in self._mCharSetProbers[0].mProbers:
                if not prober:
                    continue
                sys.stderr.write('%s confidence = %s\n' %
                                 (prober.get_charset_name(),
                                  prober.get_confidence()))
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
December 21 2023 09:18:24
0 / 0
0755
__init__.py
1.265 KB
December 18 2013 13:54:45
0 / 0
0644
__init__.pyc
0.778 KB
August 09 2019 02:04:55
0 / 0
0644
__init__.pyo
0.778 KB
August 09 2019 02:04:55
0 / 0
0644
big5freq.py
80.658 KB
December 17 2013 18:54:19
0 / 0
0644
big5freq.pyc
111.113 KB
August 09 2019 02:04:55
0 / 0
0644
big5freq.pyo
111.113 KB
August 09 2019 02:04:55
0 / 0
0644
big5prober.py
1.645 KB
December 17 2013 18:54:19
0 / 0
0644
big5prober.pyc
1.066 KB
August 09 2019 02:04:55
0 / 0
0644
big5prober.pyo
1.066 KB
August 09 2019 02:04:55
0 / 0
0644
chardetect.py
1.093 KB
August 09 2019 02:04:54
0 / 0
0644
chardetect.pyc
1.46 KB
August 09 2019 02:04:55
0 / 0
0644
chardetect.pyo
1.46 KB
August 09 2019 02:04:55
0 / 0
0644
chardistribution.py
9.01 KB
December 17 2013 18:54:19
0 / 0
0644
chardistribution.pyc
7.349 KB
August 09 2019 02:04:55
0 / 0
0644
chardistribution.pyo
7.349 KB
August 09 2019 02:04:55
0 / 0
0644
charsetgroupprober.py
3.702 KB
December 17 2013 18:54:19
0 / 0
0644
charsetgroupprober.pyc
2.48 KB
August 09 2019 02:04:55
0 / 0
0644
charsetgroupprober.pyo
2.48 KB
August 09 2019 02:04:55
0 / 0
0644
charsetprober.py
1.857 KB
December 17 2013 18:54:19
0 / 0
0644
charsetprober.pyc
2.077 KB
August 09 2019 02:04:55
0 / 0
0644
charsetprober.pyo
2.077 KB
August 09 2019 02:04:55
0 / 0
0644
codingstatemachine.py
2.264 KB
December 17 2013 18:54:19
0 / 0
0644
codingstatemachine.pyc
1.743 KB
August 09 2019 02:04:55
0 / 0
0644
codingstatemachine.pyo
1.743 KB
August 09 2019 02:04:55
0 / 0
0644
compat.py
1.13 KB
December 17 2013 18:54:19
0 / 0
0644
compat.pyc
0.546 KB
August 09 2019 02:04:55
0 / 0
0644
compat.pyo
0.546 KB
August 09 2019 02:04:55
0 / 0
0644
constants.py
1.304 KB
December 17 2013 18:54:19
0 / 0
0644
constants.pyc
0.324 KB
August 09 2019 02:04:55
0 / 0
0644
constants.pyo
0.324 KB
August 09 2019 02:04:55
0 / 0
0644
cp949prober.py
1.74 KB
December 17 2013 18:54:19
0 / 0
0644
cp949prober.pyc
1.074 KB
August 09 2019 02:04:55
0 / 0
0644
cp949prober.pyo
1.074 KB
August 09 2019 02:04:55
0 / 0
0644
escprober.py
3.112 KB
December 17 2013 18:54:19
0 / 0
0644
escprober.pyc
2.313 KB
August 09 2019 02:04:55
0 / 0
0644
escprober.pyo
2.313 KB
August 09 2019 02:04:55
0 / 0
0644
escsm.py
7.655 KB
December 17 2013 18:54:19
0 / 0
0644
escsm.pyc
7.133 KB
August 09 2019 02:04:55
0 / 0
0644
escsm.pyo
7.133 KB
August 09 2019 02:04:55
0 / 0
0644
eucjpprober.py
3.592 KB
December 17 2013 18:54:19
0 / 0
0644
eucjpprober.pyc
2.713 KB
August 09 2019 02:04:55
0 / 0
0644
eucjpprober.pyo
2.713 KB
August 09 2019 02:04:55
0 / 0
0644
euckrfreq.py
44.9 KB
December 17 2013 18:54:19
0 / 0
0644
euckrfreq.pyc
86.69 KB
August 09 2019 02:04:55
0 / 0
0644
euckrfreq.pyo
86.69 KB
August 09 2019 02:04:55
0 / 0
0644
euckrprober.py
1.636 KB
December 17 2013 18:54:19
0 / 0
0644
euckrprober.pyc
1.075 KB
August 09 2019 02:04:55
0 / 0
0644
euckrprober.pyo
1.075 KB
August 09 2019 02:04:55
0 / 0
0644
euctwfreq.py
34.055 KB
December 17 2013 18:54:19
0 / 0
0644
euctwfreq.pyc
59.735 KB
August 09 2019 02:04:55
0 / 0
0644
euctwfreq.pyo
59.735 KB
August 09 2019 02:04:55
0 / 0
0644
euctwprober.py
1.637 KB
December 17 2013 18:54:19
0 / 0
0644
euctwprober.pyc
1.075 KB
August 09 2019 02:04:55
0 / 0
0644
euctwprober.pyo
1.075 KB
August 09 2019 02:04:55
0 / 0
0644
gb2312freq.py
35.167 KB
December 17 2013 18:54:19
0 / 0
0644
gb2312freq.pyc
67.175 KB
August 09 2019 02:04:55
0 / 0
0644
gb2312freq.pyo
67.175 KB
August 09 2019 02:04:55
0 / 0
0644
gb2312prober.py
1.642 KB
December 17 2013 18:54:19
0 / 0
0644
gb2312prober.pyc
1.082 KB
August 09 2019 02:04:55
0 / 0
0644
gb2312prober.pyo
1.082 KB
August 09 2019 02:04:55
0 / 0
0644
hebrewprober.py
13.046 KB
December 17 2013 18:54:19
0 / 0
0644
hebrewprober.pyc
3.324 KB
August 09 2019 02:04:55
0 / 0
0644
hebrewprober.pyo
3.324 KB
August 09 2019 02:04:55
0 / 0
0644
jisfreq.py
46.206 KB
December 17 2013 18:54:19
0 / 0
0644
jisfreq.pyc
82.034 KB
August 09 2019 02:04:55
0 / 0
0644
jisfreq.pyo
82.034 KB
August 09 2019 02:04:55
0 / 0
0644
jpcntx.py
18.656 KB
December 18 2013 18:37:30
0 / 0
0644
jpcntx.pyc
24.045 KB
August 09 2019 02:04:55
0 / 0
0644
jpcntx.pyo
24.045 KB
August 09 2019 02:04:55
0 / 0
0644
langbulgarianmodel.py
12.484 KB
December 17 2013 18:54:19
0 / 0
0644
langbulgarianmodel.pyc
24.302 KB
August 09 2019 02:04:55
0 / 0
0644
langbulgarianmodel.pyo
24.302 KB
August 09 2019 02:04:55
0 / 0
0644
langcyrillicmodel.py
17.31 KB
December 17 2013 18:54:19
0 / 0
0644
langcyrillicmodel.pyc
29.851 KB
August 09 2019 02:04:55
0 / 0
0644
langcyrillicmodel.pyo
29.851 KB
August 09 2019 02:04:55
0 / 0
0644
langgreekmodel.py
12.332 KB
December 17 2013 18:54:19
0 / 0
0644
langgreekmodel.pyc
23.996 KB
August 09 2019 02:04:55
0 / 0
0644
langgreekmodel.pyo
23.996 KB
August 09 2019 02:04:55
0 / 0
0644
langhebrewmodel.py
11.053 KB
December 17 2013 18:54:19
0 / 0
0644
langhebrewmodel.pyc
22.844 KB
August 09 2019 02:04:55
0 / 0
0644
langhebrewmodel.pyo
22.844 KB
August 09 2019 02:04:55
0 / 0
0644
langhungarianmodel.py
12.242 KB
December 17 2013 18:54:19
0 / 0
0644
langhungarianmodel.pyc
24.286 KB
August 09 2019 02:04:55
0 / 0
0644
langhungarianmodel.pyo
24.286 KB
August 09 2019 02:04:55
0 / 0
0644
langthaimodel.py
11.011 KB
December 17 2013 18:54:19
0 / 0
0644
langthaimodel.pyc
22.83 KB
August 09 2019 02:04:55
0 / 0
0644
langthaimodel.pyo
22.83 KB
August 09 2019 02:04:55
0 / 0
0644
latin1prober.py
5.118 KB
December 17 2013 18:54:19
0 / 0
0644
latin1prober.pyc
3.373 KB
August 09 2019 02:04:55
0 / 0
0644
latin1prober.pyo
3.373 KB
August 09 2019 02:04:55
0 / 0
0644
mbcharsetprober.py
3.191 KB
December 17 2013 18:54:19
0 / 0
0644
mbcharsetprober.pyc
2.355 KB
August 09 2019 02:04:55
0 / 0
0644
mbcharsetprober.pyo
2.355 KB
August 09 2019 02:04:55
0 / 0
0644
mbcsgroupprober.py
1.921 KB
December 17 2013 18:54:19
0 / 0
0644
mbcsgroupprober.pyc
1.217 KB
August 09 2019 02:04:55
0 / 0
0644
mbcsgroupprober.pyo
1.217 KB
August 09 2019 02:04:55
0 / 0
0644
mbcssm.py
19.148 KB
December 18 2013 18:37:30
0 / 0
0644
mbcssm.pyc
17.247 KB
August 09 2019 02:04:55
0 / 0
0644
mbcssm.pyo
17.247 KB
August 09 2019 02:04:55
0 / 0
0644
sbcharsetprober.py
4.681 KB
December 17 2013 18:54:19
0 / 0
0644
sbcharsetprober.pyc
3.22 KB
August 09 2019 02:04:55
0 / 0
0644
sbcharsetprober.pyo
3.22 KB
August 09 2019 02:04:55
0 / 0
0644
sbcsgroupprober.py
3.214 KB
December 17 2013 18:54:19
0 / 0
0644
sbcsgroupprober.pyc
1.886 KB
August 09 2019 02:04:55
0 / 0
0644
sbcsgroupprober.pyo
1.886 KB
August 09 2019 02:04:55
0 / 0
0644
sjisprober.py
3.646 KB
December 18 2013 18:37:30
0 / 0
0644
sjisprober.pyc
2.734 KB
August 09 2019 02:04:55
0 / 0
0644
sjisprober.pyo
2.734 KB
August 09 2019 02:04:55
0 / 0
0644
universaldetector.py
6.671 KB
December 18 2013 18:37:30
0 / 0
0644
universaldetector.pyc
4.024 KB
August 09 2019 02:04:55
0 / 0
0644
universaldetector.pyo
4.024 KB
August 09 2019 02:04:55
0 / 0
0644
utf8prober.py
2.59 KB
December 17 2013 18:54:19
0 / 0
0644
utf8prober.pyc
2.144 KB
August 09 2019 02:04:55
0 / 0
0644
utf8prober.pyo
2.144 KB
August 09 2019 02:04:55
0 / 0
0644