o
    i©¹d'  ã                   @   s4   d dl Z d dlmZ d dlmZ G dd„ deƒZdS )é    N)ÚSoSCleanerParser)ÚSoSHostnameMapc                       s2   e Zd ZdZdZdgZ‡ fdd„Zdd„ Z‡  ZS )ÚSoSHostnameParserzHostname ParserÚhostname_mapz5(((\b|_)[a-zA-Z0-9-\.]{1,200}\.[a-zA-Z]{1,63}(\b|_)))c                    s   t ƒ | _tt| ƒ |¡ d S )N)r   ÚmappingÚsuperr   Ú__init__)ÚselfÚconfig©Ú	__class__© úE/usr/lib/python3/dist-packages/sos/cleaner/parsers/hostname_parser.pyr      s   zSoSHostnameParser.__init__c                 C   sf   d}| j D ]}t ||tj¡r||f  S q|  |¡\}}||7 }| jr/|  |¡\}}||7 }||fS )a  This 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   )Úskip_line_patternsÚreÚmatchÚIÚ_parse_lineÚcompile_regexesÚ!_parse_line_with_compiled_regexes)r	   ÚlineÚcountÚskip_patternÚ_countÚ_rcountr   r   r   Ú
parse_line   s   
ÿzSoSHostnameParser.parse_line)	Ú__name__Ú
__module__Ú__qualname__ÚnameÚmap_file_keyÚregex_patternsr   r   Ú__classcell__r   r   r   r   r      s    ÿr   )r   Úsos.cleaner.parsersr   Ú!sos.cleaner.mappings.hostname_mapr   r   r   r   r   r   Ú<module>   s   
