|
1 ######################## BEGIN LICENSE BLOCK ######################## |
|
2 # The Original Code is Mozilla Universal charset detector code. |
|
3 # |
|
4 # The Initial Developer of the Original Code is |
|
5 # Netscape Communications Corporation. |
|
6 # Portions created by the Initial Developer are Copyright (C) 2001 |
|
7 # the Initial Developer. All Rights Reserved. |
|
8 # |
|
9 # Contributor(s): |
|
10 # Mark Pilgrim - port to Python |
|
11 # Shy Shalom - original C code |
|
12 # |
|
13 # This library is free software; you can redistribute it and/or |
|
14 # modify it under the terms of the GNU Lesser General Public |
|
15 # License as published by the Free Software Foundation; either |
|
16 # version 2.1 of the License, or (at your option) any later version. |
|
17 # |
|
18 # This library is distributed in the hope that it will be useful, |
|
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
21 # Lesser General Public License for more details. |
|
22 # |
|
23 # You should have received a copy of the GNU Lesser General Public |
|
24 # License along with this library; if not, write to the Free Software |
|
25 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
26 # 02110-1301 USA |
|
27 ######################### END LICENSE BLOCK ######################### |
|
28 |
|
29 import constants, sys |
|
30 from charsetgroupprober import CharSetGroupProber |
|
31 from sbcharsetprober import SingleByteCharSetProber |
|
32 from langcyrillicmodel import Win1251CyrillicModel, Koi8rModel, Latin5CyrillicModel, MacCyrillicModel, Ibm866Model, Ibm855Model |
|
33 from langgreekmodel import Latin7GreekModel, Win1253GreekModel |
|
34 from langbulgarianmodel import Latin5BulgarianModel, Win1251BulgarianModel |
|
35 from langhungarianmodel import Latin2HungarianModel, Win1250HungarianModel |
|
36 from langthaimodel import TIS620ThaiModel |
|
37 from langhebrewmodel import Win1255HebrewModel |
|
38 from hebrewprober import HebrewProber |
|
39 |
|
40 class SBCSGroupProber(CharSetGroupProber): |
|
41 def __init__(self): |
|
42 CharSetGroupProber.__init__(self) |
|
43 self._mProbers = [ \ |
|
44 SingleByteCharSetProber(Win1251CyrillicModel), |
|
45 SingleByteCharSetProber(Koi8rModel), |
|
46 SingleByteCharSetProber(Latin5CyrillicModel), |
|
47 SingleByteCharSetProber(MacCyrillicModel), |
|
48 SingleByteCharSetProber(Ibm866Model), |
|
49 SingleByteCharSetProber(Ibm855Model), |
|
50 SingleByteCharSetProber(Latin7GreekModel), |
|
51 SingleByteCharSetProber(Win1253GreekModel), |
|
52 SingleByteCharSetProber(Latin5BulgarianModel), |
|
53 SingleByteCharSetProber(Win1251BulgarianModel), |
|
54 SingleByteCharSetProber(Latin2HungarianModel), |
|
55 SingleByteCharSetProber(Win1250HungarianModel), |
|
56 SingleByteCharSetProber(TIS620ThaiModel), |
|
57 ] |
|
58 hebrewProber = HebrewProber() |
|
59 logicalHebrewProber = SingleByteCharSetProber(Win1255HebrewModel, constants.False, hebrewProber) |
|
60 visualHebrewProber = SingleByteCharSetProber(Win1255HebrewModel, constants.True, hebrewProber) |
|
61 hebrewProber.set_model_probers(logicalHebrewProber, visualHebrewProber) |
|
62 self._mProbers.extend([hebrewProber, logicalHebrewProber, visualHebrewProber]) |
|
63 |
|
64 self.reset() |