3 ܓi@ @ s` d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlZd dl m Z d dl mZ d dl mZ d dlZd dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d d lmZ d dlZd d l m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. ej/ej0fZ1dddZ2dd Z3dddgZ4ddddddhZ5G dd deZ6dS ) N)datetime)ThreadPoolExecutor)TimeoutError)rmtree)ImporterHelperSoSTimeoutErrorboldsos_get_command_outputTIMEOUT_DEFAULTlistdir is_executablescrub_url_credential)_sos)__version__)SoSComponent) ReportSectionCommand CopiedFileCreatedFileAlertNotePlainTextReport JSONReport HTMLReport) SoSCleaner) SoSUploadF, 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 )lenappend)Z first_lineitemsindentseplineslinenewlineitem r* /usr/lib/python3.6/__init__.py_format_list. s r, c C s t j| ddS )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- autoalwaysZneverZ http_proxyZhttps_proxyZ HTTP_PROXYZHTTPS_PROXYZNO_PROXYZ ALL_PROXYc @ s e Zd ZdZdZdZdddddddddg g g dddg dg dg ddddd dd g g g ddddddg deeg dddg ddddddddddddddddddd?Z fd dZe dd Z e dd Zdd Zdd Z dd Zdd Zdd Zdd Zdd Zd!d" Zd#d$ Zdd%d&Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zed7d8 Zdd9d:Z d;d<