File: //lib/python3/dist-packages/sos/cleaner/parsers/__pycache__/mac_parser.cpython-310.pyc
o
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.*�mac_mapFc s t � | _tt| ��|� d S )N)r �mapping�superr �__init__)�self�config�� __class__� �@/usr/lib/python3/dist-packages/sos/cleaner/parsers/mac_parser.pyr 4 s zSoSMacParser.__init__c C s� |d � � s|d �� s|dd� }|d � � s|d �� r|d � � s<|d �� s<|dd� }|d � � s<|d �� r*|�� 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 ]4}dd� t�||tj�D �}|r9|t|�7 }|D ]}| �|�}|�| j�r,q| j� |�}|�
||�}qq||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�pattern�matchesr �stripped_match� new_matchr
r
r �_parse_lineC s
�zSoSMacParser._parse_line)�__name__�
__module__�__qualname__�__doc__�name�
IPV6_REG_8HEX�
IPV6_REG_4HEX�IPV4_REGr r �
skip_files�map_file_key�compile_regexesr r r( �
__classcell__r
r
r r r ! s ��r ) �sos.cleaner.parsersr �sos.cleaner.mappings.mac_mapr r r. r/ r0 r r
r
r
r �<module> s
���