def deserializeDerivateGroup(str0_ : 'ByteArrayWrapper', dg : 'DerivateGroup') -> None: attr = str0_.deserializeShort() if (((attr & 1)) != 0): dg.is_dummy = True if (((attr & 2)) != 0): dg.not_generate = True if (((attr & 4)) != 0): dg.m_transitive = 0 if (((attr & 8)) != 0): dg.m_transitive = 1 dg.prefix = str0_.deserializeString() cou = str0_.deserializeShort() while cou > 0: w = DerivateWord(dg) w.spelling = str0_.deserializeString() w.class0_ = MorphClass() w.class0_.value = (str0_.deserializeShort()) w.lang = MorphLang._new5(str0_.deserializeShort()) w.attrs.value = (str0_.deserializeShort()) dg.words.append(w) cou -= 1 cou = str0_.deserializeShort() while cou > 0: pref = Utils.ifNotNull(str0_.deserializeString(), "") cas = MorphCase() cas.value = (str0_.deserializeShort()) if (dg.nexts is None): dg.nexts = dict() dg.nexts[pref] = cas cou -= 1
def deserialize(self, stream : io.IOBase) -> bool: vers = 0 b = Utils.readByteIO(stream) if (b == (0xAA)): b = (Utils.readByteIO(stream)) vers = (b) else: stream.seek(stream.tell() - (1), io.SEEK_SET) self.__m_sofa = SourceOfAnalysis(None) self.__m_sofa.deserialize(stream) self.base_language = MorphLang._new5(SerializerHelper.deserializeInt(stream)) self.__m_entities = list() cou = SerializerHelper.deserializeInt(stream) i = 0 while i < cou: typ = SerializerHelper.deserializeString(stream) r = ProcessorService.createReferent(typ) if (r is None): r = Referent("UNDEFINED") self.__m_entities.append(r) i += 1 i = 0 while i < cou: self.__m_entities[i].deserialize(stream, self.__m_entities, self.__m_sofa) i += 1 self.first_token = SerializerHelper.deserializeTokens(stream, self, vers) self.__createStatistics() return True