1
# -*- coding: utf-8 -*-
4
# Copyright 2011 Hiroshi Miura <miurahr@linux.com>
5
from cPickle import load
7
from zlib import decompress
10
import calibre.utils.resources as resources
21
def __new__(cls, *p, **k):
22
self = object.__new__(cls, *p, **k)
23
self.__dict__ = cls._shared_state
27
if self.kanwadict is None:
28
dictpath = resources.get_path(os.path.join('localization','pykakasi','kanwadict2.db'))
29
self.kanwadict = anydbm.open(dictpath,'r')
30
if self.itaijidict is None:
31
itaijipath = resources.get_path(os.path.join('localization','pykakasi','itaijidict2.pickle'))
32
itaiji_pkl = open(itaijipath, 'rb')
33
self.itaijidict = load(itaiji_pkl)
34
if self.kanadict is None:
35
kanadictpath = resources.get_path(os.path.join('localization','pykakasi','kanadict2.pickle'))
36
kanadict_pkl = open(kanadictpath, 'rb')
37
self.kanadict = load(kanadict_pkl)
39
def load_jisyo(self, char):
41
key = "%04x"%ord(unicode(char))
43
key = "%04x"%ord(char)
46
table = self.jisyo_table[key]
49
table = self.jisyo_table[key] = marshal.loads(decompress(self.kanwadict[key]))