3 �f�; � @ s8 d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlZd dl m Z mZmZm Z mZmZmZ d dlmZ d dlZd dlmZmZ d dlZd dlmZ d dlmZ d dlmZ d dlZd d lmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d d l)m*Z* ej+ej,fZ-dd d�Z.dd� Z/dddgZ0G dd� de�Z1dS )� N)�datetime)�ImporterHelper�SoSTimeoutError�bold�sos_get_command_output�TIMEOUT_DEFAULT�listdir� is_executable)�rmtree)�ThreadPoolExecutor�TimeoutError)�_sos)�__version__)�SoSComponent) �Report�Section�Command� CopiedFile�CreatedFile�Alert�Note�PlainTextReport� JSONReport� HTMLReport)� SoSCleanerF�, c C s� g }| }|rt | �d }nd}xB|D ]:}t |�t |� t |� dkrR|j|� |}|| | }q$W |t |� d � |kr�|d t |� � }|j|� |S )N� � �H )�len�append)Z first_line�items�indent�sep�lines�line�newline�item� r( �/usr/lib/python3.6/__init__.py�_format_list) s r* c C s t j| d�d�S )z� This function will format --since arg to append 0s if enduser didn't. It's used in the _get_parser. This will also be a good place to add human readable and relative date parsing (like '2 days ago') in the future z<014sz%Y%m%d%H%M%S)r Zstrptime)Zdater( r( r) � _format_since; s r+ �auto�alwaysZneverc >