File: //usr/lib/python3/dist-packages/sos/__pycache__/utilities.cpython-310.pyc
o
([Qha � @ 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 zd dlmZ W n eye d dlmZ Y nw e�d�ZdZz
d dlZe�e � d ZW n! ee!fy� d d
l"m#Z# dZ$e�%de#e$d
dd�� d�� Y nw dZ&g d�Z'dd� Z(dRdd�Z)dd� Z*dSdd�Z+dd� Z,dd� Z-dTdd�Z.d d!� Z/dUd"d#�Z0d$e1fd%d&�Z2e&dddddddddddfd'd(�Z3dVd)d*�Z4dUd+d,�Z5dWd.d/�Z6dXd1d2�Z7e j8fd3d4�Z9d5d6� Z:d7d8� Z;d9d:� Z<d;d<� Z=d=d>� Z>e j?d?�d@dA�Z@dBdC� ZAg fdDdE�ZBG dFdG� dG�ZCG dHdI� dIejD�ZEG dJdK� dKejD�ZFG dLdM� dM�ZGG dNdO� dO�ZHG dPdQ� dQeI�ZJdS )Y� N)�Popen�PIPE�STDOUT)�closing)�deque)�parse)�
parse_version�sosFT)�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 )�replace_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 �d�}z#|j| dd�\}}}|s| W S t �dd|��d�}|� d|� �}|W S tyG } zt�d| � d |� �� | W Y d
}~S d
}~ww )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)�ver�public_version_re�_�public�local�sanitized_local�pep440_version�err� r: �//usr/lib/python3/dist-packages/sos/utilities.py�format_version_to_pep440P s ���r<