File: //lib/python3.6/site-packages/sos/__pycache__/utilities.cpython-36.opt-1.pyc
3
G%@i�d � ( @ s� d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZd dlZd dlZd dlZd dlmZ d dlmZ yd dlmZ W n ek
r� d dlmZ Y nX ejd�ZdZyd dlZeje � d ZW nF ee!fk
�r< d d
l"m#Z# dZ$ej%de#e$d
dd�� d�� Y nX dZ&ddddddddddddddddd d!d"d#d$d%d&d'gZ'd(d)� Z(dUd*d+�Z)d,d'� Z*dVd.d�Z+d/d0� Z,d1d2� Z-d3d� Z.dWd4d�Z/d5d� Z0dXd6d�Z1e2d7�d8d9�Z3e&dddddddddddfd:d%�Z4dYd;d&�Z5dZd<d�Z6d[d>d$�Z7d\d@d�Z8e j9fdAdB�Z:dCd� Z;dDd� Z<dEd � Z=dFd!� Z>dGd� Z?e j@dH�dId"�ZAdJd� ZBg fdKd#�ZCG dLdM� dM�ZDG dNdO� dOejE�ZFG dPdQ� dQejE�ZGG dRd� d�ZHG dSd� d�ZIG dTd� deJ�ZKdS )]� N)�Popen�PIPE�STDOUT)�closing)�deque)�parse)�
parse_versionZsosFT)�fillz�WARNING: Failed to load 'magic' module version >= 0.4.20 which sos aims to use for detecting binary files. A less effective method will be used. It is recommended to install proper python3-magic package with the module.
�
�H )Zreplace_whitespacei, �TIMEOUT_DEFAULT�ImporterHelper�SoSTimeoutError�TempFileUtil�bold�file_is_binary�fileobj�find�get_human_readable�grep�
import_module�
is_executable�listdirr �path_exists�
path_isdir�path_isfile�path_islink� path_join�recursive_dict_values_by_key� shell_out�sos_get_command_output�tac_logs�tailc C s� t jd�}yB|j| dd�\}}}|s(| S t jdd|�jd�}|� d|� �}|S tk
r� } ztjd| � d |� �� | S d
}~X nX d
S )z< Convert the version into a PEP440 compliant version scheme.z2^([0-9][0-9.]*(?:(?:a|b|rc|.post|.dev)[0-9]+)*)\+?� )�maxsplitz[+~]+�.�-�+zUnable to format z to pep440 format: N)�re�compile�split�sub�strip� Exception�log�debug)�verZpublic_version_re�_ZpublicZlocalZsanitized_localZpep440_version�err� r3 �/usr/lib/python3.6/utilities.py�format_version_to_pep440P s r5 c C s |rt | �}t|�S t| �S )z6 Converts the version to PEP440 format before parsing )r5 r )r0 Zpep440Z
ver_pep440r3 r3 r4 �sos_parse_versiona s r6 c
C s<