3 Ü““iMã@s4ddlZddlmZddlmZGdd„deƒZdS)éN)ÚSoSCleanerParser)ÚSoSHostnameMapcs6eZdZdZdZdgZgf‡fdd„ Zdd„Z‡ZS)ÚSoSHostnameParserzHostname ParserZ hostname_mapz5(((\b|_)[a-zA-Z0-9-\.]{1,200}\.[a-zA-Z]{1,63}(\b|_)))cst|ƒ|_tƒj||ƒdS)N)rÚmappingÚsuperÚ__init__)ÚselfÚconfigZworkdirZskip_cleaning_files)Ú __class__©ú%/usr/lib/python3.6/hostname_parser.pyrs zSoSHostnameParser.__init__cCsfd}x&|jD]}tj||tjƒr ||fSq W|j|ƒ\}}||7}|jr^|j|ƒ\}}||7}||fS)aThis will be called for every line in every file we process, so that every parser has a chance to scrub everything. We are overriding parent method since we need to swap ordering of _parse_line_with_compiled_regexes and _parse_line calls. r)Zskip_line_patternsÚreÚmatchÚIZ _parse_lineZcompile_regexesZ!_parse_line_with_compiled_regexes)rÚlineÚcountZ skip_patternÚ_countZ_rcountr r r Ú parse_lines  zSoSHostnameParser.parse_line) Ú__name__Ú __module__Ú __qualname__ÚnameZ map_file_keyZregex_patternsrrÚ __classcell__r r )r r rs r)r Zsos.cleaner.parsersrZ!sos.cleaner.mappings.hostname_maprrr r r r Ú s