Exemplo n.º 1
0
 def writeMapToFile(f, m):
     # Size of the map, 4 bytes
     buf = pack('<i', len(m))
     f.write(buf)
     for item in m.items():
         info = item[1]
         NameHelper.writeProtoToFile(f, info)
Exemplo n.º 2
0
 def __init__(self):
     self.globalInfo = NameHelper.getInitedGlobalNameInfo()
     self.xingCharMap = {} # Family name character map object.
     self.xingMap = {} # Family name string map object.
     self.mingCharMap = {} # First name character map object.
     self.mingMap = {} # First name string map object.
     self.xingMingMap = {} # Full name string map object.
Exemplo n.º 3
0
 def readMapFromFileGenerator(f):
     # Size of the map, 4 bytes
     buf = f.read(4)
     size, = unpack('<i', buf)
     for i in range(0, size):
         info = NameHelper.readProtoFromFile(f, RawNameItemInfo)
         yield info
Exemplo n.º 4
0
    def importResultFromFile(self, fileName):
        f = open(fileName, 'r')
        self._resetTable()

        # Global infomation
        globalInfo = NameHelper.readProtoFromFile(f, GlobalNameInfo)
        self._addGlobalInfo(globalInfo)

        # Map
        self._importMapFromFile(f, self.XING_CHAR_MAP_NAME)
        log.info('XingCharMap imported...')
        self._importMapFromFile(f, self.XING_MAP_NAME)
        log.info('XingMap imported...')
        self._importMapFromFile(f, self.MING_CHAR_MAP_NAME)
        log.info('MingCharMap imported...')
        self._importMapFromFile(f, self.MING_MAP_NAME)
        log.info('MingMap imported...')
        self._importMapFromFile(f, self.XING_MING_MAP_NAME)
        log.info('XingMingMap imported...')

        # Array
        self._importRankArrayFromFile(f, self.XING_CHAR_RANK_NAME)
        log.info('XingCharArray imported...')
        self._importRankArrayFromFile(f, self.XING_RANK_NAME)
        log.info('XingArray imported...')
        self._importRankArrayFromFile(f, self.MING_CHAR_RANK_NAME)
        log.info('MingCharArray imported...')
        self._importRankArrayFromFile(f, self.MING_RANK_NAME)
        log.info('MingArray imported...')
        self._importRankArrayFromFile(f, self.XING_MING_RANK_NAME)
        log.info('XingMingArray imported...')
Exemplo n.º 5
0
 def accumulateXingMing(self, xingMing, profile):
     """Accumulate a single Name."""
     self.result.globalInfo.xing_ming_count += 1
     info = self.result.xingMingMap.get(xingMing)
     if not info:
         info = NameHelper.getInitedRawNameItemInfo(xingMing)
         self.result.xingMingMap[xingMing] = info
     self.setInfo(info, profile)
Exemplo n.º 6
0
 def accumulateMingChar(self, char, profile):
     """Accumulate a single char for Name."""
     self.result.globalInfo.ming_char_count += 1
     info = self.result.mingCharMap.get(char)
     if not info:
         info = NameHelper.getInitedRawNameItemInfo(char)
         self.result.mingCharMap[char] = info
     self.setInfo(info, profile)
Exemplo n.º 7
0
 def readMapFromFile(f):
     m = {}
     # Size of the map, 4 bytes
     buf = f.read(4)
     size, = unpack('<i', buf)
     for i in range(0, size):
         info = NameHelper.readProtoFromFile(f, RawNameItemInfo)
         assert not m.get(info.text), 'Duplicate key in the map.'
         m[info.text] = info
     return m
Exemplo n.º 8
0
    def writeToFile(self, fileName):
        f = open(fileName, 'w')
        # Global infomation 4 * 3 = 12 bytes
        NameHelper.writeProtoToFile(f, self.globalInfo)

        # Write Map
        Result.writeMapToFile(f, self.xingCharMap)
        Result.writeMapToFile(f, self.xingMap)
        Result.writeMapToFile(f, self.mingCharMap)
        Result.writeMapToFile(f, self.mingMap)
        Result.writeMapToFile(f, self.xingMingMap)

        # Write array
        Result.writeArrayToFile(f, self.xingCharSortedArray)
        Result.writeArrayToFile(f, self.xingSortedArray)
        Result.writeArrayToFile(f, self.mingCharSortedArray)
        Result.writeArrayToFile(f, self.mingSortedArray)
        Result.writeArrayToFile(f, self.xingMingSortedArray)
        f.close()
Exemplo n.º 9
0
    def readFromFile(self, fileName):
        f = open(fileName, 'r')
        # Global infomation
        self.globalInfo = NameHelper.readProtoFromFile(f, GlobalNameInfo)

        # Read Map
        self.xingCharMap = Result.readMapFromFile(f)
        self.xingMap = Result.readMapFromFile(f)
        self.mingCharMap = Result.readMapFromFile(f)
        self.mingMap = Result.readMapFromFile(f)
        self.xingMingMap = Result.readMapFromFile(f)

        # Read array
        self.xingCharSortedArray = Result.readArrayFromFile(f)
        self.xingSortedArray = Result.readArrayFromFile(f)
        self.mingCharSortedArray = Result.readArrayFromFile(f)
        self.mingSortedArray = Result.readArrayFromFile(f)
        self.xingMingSortedArray = Result.readArrayFromFile(f)
        f.close()
Exemplo n.º 10
0
 def getMingCharInfo(self, mingChar):
     """Get MingChar info, None if does not exist."""
     rawInfo = self._dataBase.getMingCharInfo(mingChar)
     if not rawInfo: return None
     globalInfo = self._dataBase.getGlobalInfo()
     return NameHelper.getMingCharInfo(rawInfo, globalInfo)
Exemplo n.º 11
0
 def getXingInfo(self, xing):
     """Get Xing info, None if does not exist."""
     rawInfo = self._dataBase.getXingInfo(xing)
     if not rawInfo: return None
     globalInfo = self._dataBase.getGlobalInfo()
     return NameHelper.getXingInfo(rawInfo, globalInfo)