Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
charsetgroupprober.py
Go to the documentation of this file.
1
27
28
from
typing
import
List, Optional, Union
29
30
from
.charsetprober
import
CharSetProber
31
from
.enums
import
LanguageFilter, ProbingState
32
33
34
class
CharSetGroupProber
(
CharSetProber
):
35
def
__init__
(self, lang_filter: LanguageFilter =
LanguageFilter.NONE
) ->
None
:
36
super
().
__init__
(lang_filter=lang_filter)
37
self.
_active_num
= 0
38
self.probers: List[CharSetProber] = []
39
self.
_best_guess_prober
: Optional[CharSetProber] =
None
40
41
def
reset
(self) -> None:
42
super
().
reset
()
43
self.
_active_num
= 0
44
for
prober
in
self.probers:
45
prober.reset
()
46
prober.active
=
True
47
self.
_active_num
+= 1
48
self.
_best_guess_prober
=
None
49
50
@property
51
def
charset_name
(self) -> Optional[str]:
52
if
not
self.
_best_guess_prober
:
53
self.
get_confidence
get_confidence
()
54
if
not
self.
_best_guess_prober
:
55
return
None
56
return
self.
_best_guess_prober
.charset_name
57
58
@property
59
def
language
(self) -> Optional[str]:
60
if
not
self.
_best_guess_prober
:
61
self.
get_confidence
get_confidence
()
62
if
not
self.
_best_guess_prober
:
63
return
None
64
return
self.
_best_guess_prober
.language
65
66
def
feed
(self, byte_str: Union[bytes, bytearray]) -> ProbingState:
67
for
prober
in
self.probers:
68
if
not
prober.active
:
69
continue
70
state =
prober.feed
(byte_str)
71
if
not
state:
72
continue
73
if
state ==
ProbingState.FOUND_IT
:
74
self.
_best_guess_prober
= prober
75
self.
_state
_state
=
ProbingState.FOUND_IT
76
return
self.
state
77
if
state ==
ProbingState.NOT_ME
:
78
prober.active
=
False
79
self.
_active_num
-= 1
80
if
self.
_active_num
<= 0:
81
self.
_state
_state
=
ProbingState.NOT_ME
82
return
self.
state
83
return
self.
state
84
85
def
get_confidence
(self) -> float:
86
state = self.
state
87
if
state ==
ProbingState.FOUND_IT
:
88
return
0.99
89
if
state ==
ProbingState.NOT_ME
:
90
return
0.01
91
best_conf = 0.0
92
self.
_best_guess_prober
=
None
93
for
prober
in
self.probers:
94
if
not
prober.active
:
95
self.
logger
.debug(
"%s not active"
,
prober.charset_name
)
96
continue
97
conf =
prober.get_confidence
()
98
self.
logger
.debug(
99
"%s %s confidence = %s"
,
prober.charset_name
,
prober.language
, conf
100
)
101
if
best_conf < conf:
102
best_conf = conf
103
self.
_best_guess_prober
= prober
104
if
not
self.
_best_guess_prober
:
105
return
0.0
106
return
best_conf
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber
Definition
charsetgroupprober.py:34
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber._active_num
_active_num
Definition
charsetgroupprober.py:37
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber._best_guess_prober
_best_guess_prober
Definition
charsetgroupprober.py:48
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
None reset(self)
Definition
charsetgroupprober.py:41
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.language
Optional[str] language(self)
Definition
charsetgroupprober.py:59
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.charset_name
Optional[str] charset_name(self)
Definition
charsetgroupprober.py:51
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.__init__
None __init__(self, LanguageFilter lang_filter=LanguageFilter.NONE)
Definition
charsetgroupprober.py:35
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.get_confidence
float get_confidence(self)
Definition
charsetgroupprober.py:85
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.feed
ProbingState feed(self, Union[bytes, bytearray] byte_str)
Definition
charsetgroupprober.py:66
pip._vendor.chardet.charsetgroupprober.CharSetGroupProber._state
_state
Definition
charsetgroupprober.py:75
pip._vendor.chardet.charsetprober.CharSetProber
Definition
charsetprober.py:40
pip._vendor.chardet.charsetprober.CharSetProber.logger
logger
Definition
charsetprober.py:48
pip._vendor.chardet.charsetprober.CharSetProber.state
ProbingState state(self)
Definition
charsetprober.py:65
pip._vendor.chardet.charsetprober.CharSetProber.get_confidence
float get_confidence(self)
Definition
charsetprober.py:68
pip._vendor.chardet.charsetprober.CharSetProber._state
_state
Definition
charsetprober.py:45
i
for i
Definition
prime_search.m:10
venv
lib
python3.12
site-packages
pip
_vendor
chardet
charsetgroupprober.py
Generated by
1.9.8