File: //lib/python3/dist-packages/sos/cleaner/parsers/__pycache__/mac_parser.cpython-38.pyc
U
i��dX
� @ s@ d dl mZ d dlmZ d dlZdZdZdZG dd� de�ZdS ) � )�SoSCleanerParser)� SoSMacMapNze((?<!([0-9a-fA-F\'\"]:)|::)([^:|-])?([0-9a-fA-F]{2}(:|-)){7}[0-9a-fA-F]{2}(\'|\")?(\/|\,|\-|\.|\s|$))ze((?<!([0-9a-fA-F\'\"]:)|::)(([^:\-]?[0-9a-fA-F]{4}(:|-)){3}[0-9a-fA-F]{4}(\'|\")?(\/|\,|\-|\.|\s|$)))zW((?<!([0-9a-fA-F\'\"]:)|::)(([^:\-])?(([0-9a-fA-F]{2}([:\-\_])){5,6}([0-9a-fA-F]{2}))))c sP e Zd ZdZdZeeegZdZ dgZ
dZdZ� fdd�Z
d d
� Zdd� Z� ZS )
�SoSMacParserz!Handles parsing for MAC addressesz
MAC Parser)z53:4f:53z534f:53zsos_commands/.*/modinfo.*Zmac_mapFc s t � | _tt| ��|� d S )N)r �mapping�superr �__init__)�selfZconfig�� __class__� �@/usr/lib/python3/dist-packages/sos/cleaner/parsers/mac_parser.pyr 4 s zSoSMacParser.__init__c C sT |d � � s&|d �� s&|dd� }q |d � � sL|d �� sL|dd� }q&|�� S )z�Strips away leading and trailing non-alphanum characters from any
matched string to leave us with just the bare MAC addr
r � N���)�isdigit�isalpha�strip)r �matchr r r �reduce_mac_match8 s
zSoSMacParser.reduce_mac_matchc C s| d}| j D ]h}dd� t�||tj�D �}|r
|t|�7 }|D ]4}| �|�}|�| j�rXq<| j� |�}|�
||�}q<q
||fS )Nr c S s g | ]}|d �qS )r r )�.0�mr r r �
<listcomp>F s z,SoSMacParser._parse_line.<locals>.<listcomp>)�regex_patterns�re�findall�I�lenr �
startswith�obfuscated_patternsr �get�replace)r �line�count�patternZmatchesr Zstripped_matchZ new_matchr r r �_parse_lineC s
zSoSMacParser._parse_line)�__name__�
__module__�__qualname__�__doc__�name�
IPV6_REG_8HEX�
IPV6_REG_4HEX�IPV4_REGr r Z
skip_filesZmap_file_keyZcompile_regexesr r r# �
__classcell__r r r r r ! s ��r ) Zsos.cleaner.parsersr Zsos.cleaner.mappings.mac_mapr r r) r* r+ r r r r r �<module> s ���