def _loadLanguages(langs: 'MorphLang') -> None: if (langs.is_ru and not InnerMorphology.M_ENGINE_RU.language.is_ru): with InnerMorphology.M_LOCK: if (not InnerMorphology.M_ENGINE_RU.language.is_ru): if (not InnerMorphology.M_ENGINE_RU.initialize( MorphLang.RU)): raise Utils.newException( "Not found resource file m_ru.dat in Morphology", None) if (langs.is_en and not InnerMorphology.M_ENGINE_EN.language.is_en): with InnerMorphology.M_LOCK: if (not InnerMorphology.M_ENGINE_EN.language.is_en): if (not InnerMorphology.M_ENGINE_EN.initialize( MorphLang.EN)): raise Utils.newException( "Not found resource file m_en.dat in Morphology", None) if (langs.is_ua and not InnerMorphology.M_ENGINE_UA.language.is_ua): with InnerMorphology.M_LOCK: if (not InnerMorphology.M_ENGINE_UA.language.is_ua): InnerMorphology.M_ENGINE_UA.initialize(MorphLang.UA) if (langs.is_by and not InnerMorphology.M_ENGINE_BY.language.is_by): with InnerMorphology.M_LOCK: if (not InnerMorphology.M_ENGINE_BY.language.is_by): InnerMorphology.M_ENGINE_BY.initialize(MorphLang.BY) if (langs.is_kz and not InnerMorphology.M_ENGINE_KZ.language.is_kz): with InnerMorphology.M_LOCK: if (not InnerMorphology.M_ENGINE_KZ.language.is_kz): InnerMorphology.M_ENGINE_KZ.initialize(MorphLang.KZ)
def _load_languages(self, langs: 'MorphLang', lazy_load: bool) -> None: if (langs.is_ru and not self.__m_engine_ru.language.is_ru): with self.__m_lock: if (not self.__m_engine_ru.language.is_ru): if (not self.__m_engine_ru.initialize( MorphLang.RU, lazy_load)): raise Utils.newException( "Not found resource file m_ru.dat in Morphology", None) if (langs.is_en and not self.__m_engine_en.language.is_en): with self.__m_lock: if (not self.__m_engine_en.language.is_en): if (not self.__m_engine_en.initialize( MorphLang.EN, lazy_load)): raise Utils.newException( "Not found resource file m_en.dat in Morphology", None) if (langs.is_ua and not self.__m_engine_ua.language.is_ua): with self.__m_lock: if (not self.__m_engine_ua.language.is_ua): self.__m_engine_ua.initialize(MorphLang.UA, lazy_load) if (langs.is_by and not self.__m_engine_by.language.is_by): with self.__m_lock: if (not self.__m_engine_by.language.is_by): self.__m_engine_by.initialize(MorphLang.BY, lazy_load) if (langs.is_kz and not self.__m_engine_kz.language.is_kz): with self.__m_lock: if (not self.__m_engine_kz.language.is_kz): self.__m_engine_kz.initialize(MorphLang.KZ, lazy_load)
def load_languages(langs: 'MorphLang') -> None: if (langs.is_ru or langs.is_ua): if (not DerivateService.__m_der_ru.init(MorphLang.RU, True)): raise Utils.newException( "Not found resource file e_ru.dat in Enplanatory", None) if (langs.is_ua): pass
def initialize() -> None: MetaTitleInfo.initialize() try: Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True TitleItemToken.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.registerAnalyzer(TitlePageAnalyzer())
def initialize() -> None: if (OrgGlobal.GLOBAL_ORGS is not None): return OrgGlobal.GLOBAL_ORGS = IntOntologyCollection() org0_ = None oi = None with ProcessorService.create_empty_processor() as geo_proc: geo_proc.add_analyzer(GeoAnalyzer()) geos = dict() for k in range(3): lang = (MorphLang.RU if k == 0 else (MorphLang.EN if k == 1 else MorphLang.UA)) name = ("Orgs_ru.dat" if k == 0 else ("Orgs_en.dat" if k == 1 else "Orgs_ua.dat")) dat = PullentiNerOrgInternalResourceHelper.get_bytes(name) if (dat is None): raise Utils.newException("Can't file resource file {0} in Organization analyzer".format(name), None) with MemoryStream(OrgItemTypeToken._deflate(dat)) as tmp: tmp.position = 0 xml0_ = None # new XmlDocument xml0_ = Utils.parseXmlFromStream(tmp) for x in xml0_.getroot(): org0_ = OrganizationReferent() abbr = None for xx in x: if (Utils.getXmlLocalName(xx) == "typ"): org0_.add_slot(OrganizationReferent.ATTR_TYPE, Utils.getXmlInnerText(xx), False, 0) elif (Utils.getXmlLocalName(xx) == "nam"): org0_.add_slot(OrganizationReferent.ATTR_NAME, Utils.getXmlInnerText(xx), False, 0) elif (Utils.getXmlLocalName(xx) == "epo"): org0_.add_slot(OrganizationReferent.ATTR_EPONYM, Utils.getXmlInnerText(xx), False, 0) elif (Utils.getXmlLocalName(xx) == "prof"): org0_.add_slot(OrganizationReferent.ATTR_PROFILE, Utils.getXmlInnerText(xx), False, 0) elif (Utils.getXmlLocalName(xx) == "abbr"): abbr = Utils.getXmlInnerText(xx) elif (Utils.getXmlLocalName(xx) == "geo"): geo_ = None wrapgeo1767 = RefOutArgWrapper(None) inoutres1768 = Utils.tryGetValue(geos, Utils.getXmlInnerText(xx), wrapgeo1767) geo_ = wrapgeo1767.value if (not inoutres1768): ar = geo_proc.process(SourceOfAnalysis(Utils.getXmlInnerText(xx)), None, lang) if (ar is not None and len(ar.entities) == 1 and (isinstance(ar.entities[0], GeoReferent))): geo_ = (Utils.asObjectOrNull(ar.entities[0], GeoReferent)) geos[Utils.getXmlInnerText(xx)] = geo_ else: pass if (geo_ is not None): org0_.add_slot(OrganizationReferent.ATTR_GEO, geo_, False, 0) oi = org0_.create_ontology_item_ex(2, True, True) if (oi is None): continue if (abbr is not None): oi.termins.append(Termin(abbr, None, True)) if (k == 2): OrgGlobal.GLOBAL_ORGS_UA.add_item(oi) else: OrgGlobal.GLOBAL_ORGS.add_item(oi) return
def initialize() -> None: MetaBookLink.initialize2() MetaBookLinkRef.initialize() try: Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True BookLinkToken.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.registerAnalyzer(BookLinkAnalyzer())
def initialize() -> None: if (NamedEntityAnalyzer.__m_inited): return NamedEntityAnalyzer.__m_inited = True try: MetaNamedEntity.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True NamedItemToken._initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.register_analyzer(NamedEntityAnalyzer())
def loadLanguages(langs: 'MorphLang') -> None: """ Загрузить язык(и), если они ещё не загружены Args: langs(MorphLang): """ if (langs.is_ru or langs.is_ua): if (not Explanatory.__m_der_ru.init(MorphLang.RU)): raise Utils.newException( "Not found resource file e_ru.dat in Enplanatory", None) if (langs.is_ua): pass
def initialize() -> None: if (WeaponAnalyzer.__m_inited): return WeaponAnalyzer.__m_inited = True MetaWeapon.initialize() try: Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True WeaponItemToken.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.registerAnalyzer(WeaponAnalyzer())
def initialize() -> None: if (MailAnalyzer.__m_inited): return MailAnalyzer.__m_inited = True try: MetaLetter.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True MailLine.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.registerAnalyzer(MailAnalyzer())
def initialize() -> None: if (KeywordAnalyzer.M_INITIALIZED): return KeywordAnalyzer.M_INITIALIZED = True try: KeywordMeta.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True DenominationAnalyzer.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False ProcessorService.register_analyzer(KeywordAnalyzer()) except Exception as ex: raise Utils.newException(ex.__str__(), ex)
def initialize() -> None: if (PhoneAnalyzer.M_INITED): return PhoneAnalyzer.M_INITED = True MetaPhone.initialize() try: Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True PhoneHelper.initialize() PhoneItemToken.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.register_analyzer(PhoneAnalyzer())
def initialize() -> None: with GoodsAnalyzer.__m_lock: if (GoodsAnalyzer.__m_initialized): return GoodsAnalyzer.__m_initialized = True AttrMeta.initialize() GoodMeta.initialize() try: Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True GoodAttrToken.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.register_analyzer(GoodsAnalyzer())
def initialize() -> None: from pullenti.ner.instrument.internal.ParticipantToken import ParticipantToken if (InstrumentAnalyzer.__m_inited): return InstrumentAnalyzer.__m_inited = True InstrumentArtefactMeta.initialize() MetaInstrumentBlock.initialize() MetaInstrument.initialize() InstrumentParticipantMeta.initialize() try: Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True InstrToken.initialize() ParticipantToken.initialize() Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False except Exception as ex: raise Utils.newException(ex.__str__(), ex) ProcessorService.registerAnalyzer(InstrumentAnalyzer())
def initialize() -> None: if (PhoneHelper.M_PHONE_ROOT is not None): return PhoneHelper.M_PHONE_ROOT = PhoneHelper.PhoneNode() PhoneHelper.M_ALL_COUNTRY_CODES = dict() str0_ = EpNerBankInternalResourceHelper.getString( "CountryPhoneCodes.txt") if (str0_ is None): raise Utils.newException( "Can't file resource file {0} in Organization analyzer".format( "CountryPhoneCodes.txt"), None) for line0 in Utils.splitString(str0_, '\n', False): line = line0.strip() if (Utils.isNullOrEmpty(line)): continue if (len(line) < 2): continue country = line[0:0 + 2] cod = line[2:].strip() if (len(cod) < 1): continue if (not country in PhoneHelper.M_ALL_COUNTRY_CODES): PhoneHelper.M_ALL_COUNTRY_CODES[country] = cod tn = PhoneHelper.M_PHONE_ROOT i = 0 while i < len(cod): dig = cod[i] wrapnn2462 = RefOutArgWrapper(None) inoutres2463 = Utils.tryGetValue(tn.children, dig, wrapnn2462) nn = wrapnn2462.value if (not inoutres2463): nn = PhoneHelper.PhoneNode() nn.pref = cod[0:0 + i + 1] tn.children[dig] = nn tn = nn i += 1 if (tn.countries is None): tn.countries = list() tn.countries.append(country)
def initialize() -> None: if (UriAnalyzer.__m_schemes is not None): return Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True MetaUri.initialize() try: UriAnalyzer.__m_schemes = TerminCollection() obj = EpNerBankInternalResourceHelper.getString("UriSchemes.csv") if (obj is None): raise Utils.newException("Can't file resource file {0} in Organization analyzer".format("UriSchemes.csv"), None) for line0 in Utils.splitString(obj, '\n', False): line = line0.strip() if (Utils.isNullOrEmpty(line)): continue UriAnalyzer.__m_schemes.add(Termin._new678(line, MorphLang.UNKNOWN, True, 0)) for s in ["ISBN", "УДК", "ББК", "ТНВЭД", "ОКВЭД"]: UriAnalyzer.__m_schemes.add(Termin._new678(s, MorphLang.UNKNOWN, True, 1)) UriAnalyzer.__m_schemes.add(Termin._new2573("Общероссийский классификатор форм собственности", "ОКФС", 1, "ОКФС")) UriAnalyzer.__m_schemes.add(Termin._new2573("Общероссийский классификатор организационно правовых форм", "ОКОПФ", 1, "ОКОПФ")) UriAnalyzer.__m_schemes.add(Termin._new678("WWW", MorphLang.UNKNOWN, True, 2)) UriAnalyzer.__m_schemes.add(Termin._new678("HTTP", MorphLang.UNKNOWN, True, 10)) UriAnalyzer.__m_schemes.add(Termin._new678("HTTPS", MorphLang.UNKNOWN, True, 10)) UriAnalyzer.__m_schemes.add(Termin._new678("SHTTP", MorphLang.UNKNOWN, True, 10)) UriAnalyzer.__m_schemes.add(Termin._new678("FTP", MorphLang.UNKNOWN, True, 10)) t = Termin._new678("SKYPE", MorphLang.UNKNOWN, True, 3) t.addVariant("СКАЙП", True) t.addVariant("SKYPEID", True) t.addVariant("SKYPE ID", True) UriAnalyzer.__m_schemes.add(t) t = Termin._new678("SWIFT", MorphLang.UNKNOWN, True, 3) t.addVariant("СВИФТ", True) UriAnalyzer.__m_schemes.add(t) UriAnalyzer.__m_schemes.add(Termin._new678("ICQ", MorphLang.UNKNOWN, True, 4)) t = Termin._new2583("основной государственный регистрационный номер", "ОГРН", 5, "ОГРН", True) t.addVariant("ОГРН ИП", True) UriAnalyzer.__m_schemes.add(t) UriAnalyzer.__m_schemes.add(Termin._new2583("Индивидуальный идентификационный номер", "ИИН", 5, "ИИН", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("Индивидуальный номер налогоплательщика", "ИНН", 5, "ИНН", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("Код причины постановки на учет", "КПП", 5, "КПП", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("Банковский идентификационный код", "БИК", 5, "БИК", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("основной государственный регистрационный номер индивидуального предпринимателя", "ОГРНИП", 5, "ОГРНИП", True)) t = Termin._new2583("Страховой номер индивидуального лицевого счёта", "СНИЛС", 5, "СНИЛС", True) t.addVariant("Свидетельство пенсионного страхования", False) t.addVariant("Страховое свидетельство обязательного пенсионного страхования", False) t.addVariant("Страховое свидетельство", False) UriAnalyzer.__m_schemes.add(t) UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор предприятий и организаций", "ОКПО", 5, "ОКПО", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор объектов административно-территориального деления", "ОКАТО", 5, "ОКАТО", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор территорий муниципальных образований", "ОКТМО", 5, "ОКТМО", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор органов государственной власти и управления", "ОКОГУ", 5, "ОКОГУ", True)) UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор Отрасли народного хозяйства", "ОКОНХ", 5, "ОКОНХ", True)) t = Termin._new2595("РАСЧЕТНЫЙ СЧЕТ", MorphLang.UNKNOWN, True, "Р/С", 6, 20) t.addAbridge("Р.С.") t.addAbridge("Р.СЧ.") t.addAbridge("P.C.") t.addAbridge("РАСЧ.СЧЕТ") t.addAbridge("РАС.СЧЕТ") t.addAbridge("РАСЧ.СЧ.") t.addAbridge("РАС.СЧ.") t.addAbridge("Р.СЧЕТ") t.addVariant("СЧЕТ ПОЛУЧАТЕЛЯ", False) t.addVariant("СЧЕТ ОТПРАВИТЕЛЯ", False) t.addVariant("СЧЕТ", False) UriAnalyzer.__m_schemes.add(t) t = Termin._new2596("ЛИЦЕВОЙ СЧЕТ", "Л/С", 6, 20) t.addAbridge("Л.С.") t.addAbridge("Л.СЧ.") t.addAbridge("Л/С") t.addAbridge("ЛИЦ.СЧЕТ") t.addAbridge("ЛИЦ.СЧ.") t.addAbridge("Л.СЧЕТ") UriAnalyzer.__m_schemes.add(t) t = Termin._new2595("СПЕЦИАЛЬНЫЙ ЛИЦЕВОЙ СЧЕТ", MorphLang.UNKNOWN, True, "СПЕЦ/С", 6, 20) t.addAbridge("СПЕЦ.С.") t.addAbridge("СПЕЦ.СЧЕТ") t.addAbridge("СПЕЦ.СЧ.") t.addVariant("СПЕЦСЧЕТ", True) t.addVariant("СПЕЦИАЛЬНЫЙ СЧЕТ", True) UriAnalyzer.__m_schemes.add(t) t = Termin._new2595("КОРРЕСПОНДЕНТСКИЙ СЧЕТ", MorphLang.UNKNOWN, True, "К/С", 6, 20) t.addAbridge("КОРР.СЧЕТ") t.addAbridge("КОР.СЧЕТ") t.addAbridge("КОРР.СЧ.") t.addAbridge("КОР.СЧ.") t.addAbridge("К.СЧЕТ") t.addAbridge("КОР.С.") t.addAbridge("К.С.") t.addAbridge("K.C.") t.addAbridge("К-С") t.addAbridge("К/С") t.addAbridge("К.СЧ.") t.addAbridge("К/СЧ") UriAnalyzer.__m_schemes.add(t) t = Termin._new2599("КОД БЮДЖЕТНОЙ КЛАССИФИКАЦИИ", "КБК", "КБК", 6, 20, True) UriAnalyzer.__m_schemes.add(t) UriItemToken.initialize() except Exception as ex: raise Utils.newException(ex.__str__(), ex) Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False ProcessorService.registerAnalyzer(UriAnalyzer())
def initialize() -> None: OrgItemNameToken.__m_std_tails = TerminCollection() OrgItemNameToken.__m_std_names = TerminCollection() OrgItemNameToken.__m_vervot_words = TerminCollection() t = Termin("INCORPORATED") t.addAbridge("INC.") OrgItemNameToken.__m_std_tails.add(t) t = Termin("CORPORATION") t.addAbridge("CORP.") OrgItemNameToken.__m_std_tails.add(t) t = Termin("LIMITED") t.addAbridge("LTD.") OrgItemNameToken.__m_std_tails.add(t) t = Termin("AG") OrgItemNameToken.__m_std_tails.add(t) t = Termin("GMBH") OrgItemNameToken.__m_std_tails.add(t) for s in [ "ЗАКАЗЧИК", "ИСПОЛНИТЕЛЬ", "РАЗРАБОТЧИК", "БЕНЕФИЦИАР", "ПОЛУЧАТЕЛЬ", "ОТПРАВИТЕЛЬ", "ИЗГОТОВИТЕЛЬ", "ПРОИЗВОДИТЕЛЬ", "ПОСТАВЩИК", "АБОНЕНТ", "КЛИЕНТ", "ВКЛАДЧИК", "СУБЪЕКТ", "ПРОДАВЕЦ", "ПОКУПАТЕЛЬ", "АРЕНДОДАТЕЛЬ", "АРЕНДАТОР", "СУБАРЕНДАТОР", "НАЙМОДАТЕЛЬ", "НАНИМАТЕЛЬ", "АГЕНТ", "ПРИНЦИПАЛ", "ПРОДАВЕЦ", "ПОСТАВЩИК", "ПОДРЯДЧИК", "СУБПОДРЯДЧИК" ]: OrgItemNameToken.__m_std_tails.add(Termin._new117(s, s)) for s in [ "ЗАМОВНИК", "ВИКОНАВЕЦЬ", "РОЗРОБНИК", "БЕНЕФІЦІАР", "ОДЕРЖУВАЧ", "ВІДПРАВНИК", "ВИРОБНИК", "ВИРОБНИК", "ПОСТАЧАЛЬНИК", "АБОНЕНТ", "КЛІЄНТ", "ВКЛАДНИК", "СУБ'ЄКТ", "ПРОДАВЕЦЬ", "ПОКУПЕЦЬ", "ОРЕНДОДАВЕЦЬ", "ОРЕНДАР", "СУБОРЕНДАР", "НАЙМОДАВЕЦЬ", "НАЙМАЧ", "АГЕНТ", "ПРИНЦИПАЛ", "ПРОДАВЕЦЬ", "ПОСТАЧАЛЬНИК", "ПІДРЯДНИК", "СУБПІДРЯДНИК" ]: OrgItemNameToken.__m_std_tails.add( Termin._new455(s, MorphLang.UA, s)) t = Termin("РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ") t.addAbridge("РАЗРАБОТКИ ПО") OrgItemNameToken.__m_std_names.add(t) for s in ["СПЕЦИАЛЬНОСТЬ", "ДИАГНОЗ"]: OrgItemNameToken.__m_vervot_words.add(Termin(s)) for s in ["СПЕЦІАЛЬНІСТЬ", "ДІАГНОЗ"]: OrgItemNameToken.__m_vervot_words.add(Termin(s, MorphLang.UA)) OrgItemNameToken.__m_std_nouns = TerminCollection() for k in range(2): name = ("NameNouns_ru.dat" if k == 0 else "NameNouns_ua.dat") dat = EpNerOrgInternalResourceHelper.getBytes(name) if (dat is None): raise Utils.newException( "Can't file resource file {0} in Organization analyzer". format(name), None) str0_ = OrgItemTypeToken._deflate(dat).decode("UTF-8", 'ignore') for line0 in Utils.splitString(str0_, '\n', False): line = line0.strip() if (Utils.isNullOrEmpty(line)): continue if (k == 0): OrgItemNameToken.__m_std_nouns.add(Termin(line)) else: OrgItemNameToken.__m_std_nouns.add( Termin._new872(line, MorphLang.UA))
def __process2(self, kit: 'AnalysisKit', ar: 'AnalysisResult', no_log: bool) -> None: sw = Stopwatch() stop_by_timeout = False anals = list(self.__m_analyzers) ii = 0 first_pass3164 = True while True: if first_pass3164: first_pass3164 = False else: ii += 1 if (not (ii < len(anals))): break c = anals[ii] if (c.ignore_this_analyzer): continue if (self.__m_breaked): if (not no_log): msg = "Процесс прерван пользователем" self.__onMessage(msg) ar.log0_.append(msg) break if (self.timeout_seconds > 0 and not stop_by_timeout): if (int( (datetime.datetime.now() - kit._start_date).total_seconds()) > self.timeout_seconds): self.__m_breaked = True if (not no_log): msg = "Процесс прерван по таймауту" self.__onMessage(msg) ar.log0_.append(msg) stop_by_timeout = True if (stop_by_timeout): if (c.name == "INSTRUMENT"): pass else: continue if (not no_log): self._onProgressHandler( c, ProgressEventArgs(0, "Работа \"{0}\"".format(c.caption))) sw.reset() sw.start() c.process(kit) sw.stop() dat = kit.getAnalyzerData(c) if (not no_log): msg = "Анализатор \"{0}\" выделил {1} объект(ов) за {2}".format( c.caption, (0 if dat is None else len(dat.referents)), Processor.__outSecs(sw.elapsedMilliseconds)) self.__onMessage(msg) ar.log0_.append(msg) if (not no_log): self._onProgressHandler( None, ProgressEventArgs(0, "Пересчёт отношений обобщения")) try: sw.reset() sw.start() GeneralRelationHelper.refreshGenerals(self, kit) sw.stop() if (not no_log): msg = "Отношение обобщение пересчитано за {0}".format( Processor.__outSecs(sw.elapsedMilliseconds)) self.__onMessage(msg) ar.log0_.append(msg) except Exception as ex: if (not no_log): ex = Utils.newException("Ошибка пересчёта отношения обобщения", ex) self.__onMessage(ex) ar._addException(ex)