a
    K56a                     @   sX   d dl Z ddlmZ ddlmZ d dlZd dl Z ddlT ddlmZ G dd deZ	dS )	    N   )utils)debbugs)*)text_uic                
   @   sf   e Zd ZdZdZdddddddejddf
d	d
Zdd Zdd Z	e
e	eZdd Zdd Zdd ZdS )	bugreportzFEncapsulates a bug report into a convenient object we can pass around.zutf-8 ZdebianTFr   Nc                 K   s   || _ | D ]\}}t| || q|| _|| _|rht|tshz|j| _W qn   t	
d tY qn0 n|| _|| _|	| _|| _|| _|| _|
| _|| _d S )NzSInvalid value for followup, it must be a debianbts.Bugreport instance or an integer)typeitemssetattrpackagesubject
isinstanceintZbug_numfollowupuilong_message	TypeErrorbodymodesystemincfilessysinfodebsumsoutputissource)selfr   r   r   r   r   r   r   r	   r   r   r   Zpropskv r   5/usr/lib/python3/dist-packages/reportbug/bugreport.py__init__*   s&    
zbugreport.__init__c                 C   s(   |dvrt d|  d| _n|| _d S )N)r   Z	launchpadz-invalid report type %s, defaulting to debbugsr   )r   r   _bugreport__type)r   valuer   r   r   tsetE   s    zbugreport.tsetc                 C   s   | j S N)r!   r   r   r   r   tgetM   s    zbugreport.tgetc                 C   s  t  }d}td}t }t }t }g }t jdd}t jdd}	t jdd}
dD ]~}|dkrr|}nZ|dkr|
r|
}q|	d q`n:d	t j||t
d
f }|	r|rd||	f }n|	p|}|	d||f  q`d|}t| dd }|rd|d }nd}t| dd }|r.|d| 7 }t| dd}| jtjk r|s| jttj| j di  vrtjd | }n|sd}n|d7 }| jrd}nd}| jstddddd D ],\}}t| |d }|r|d||f 7 }qd|| j|f }n:t| dr*| jr*|d| j d7 }d | j|| j|f }tj| j d!tj}|rd|| 7 }|d" d#kr||d$ }n|d" }|d%r|d&d  }d'||d( f }|d)kr.g }d*|d$ v rt  }|d+kr|d,| g7 }n|d+kr|d-g7 }d.|d$ v r|d.g7 }|r.d/|d0|f }|r@|d1| 7 }|rX|d2d| 7 }|rj|d3| 7 }|dkr|d4| 7 }|r|d5| 7 }|r|d6| 7 }| j rd7||| j!|f }nd8||| j!f }t| d9r|| j"7 }t| d:r|| j#7 }| j$r|d;| j$ 7 }|S )<Nr   z/bin/shLANGCLC_ALLLANGUAGE)r'   LC_CTYPEr*   zLANGUAGE not setz%s (charmap=%s)zlocale charmapz%s (ignored: LC_ALL set to %s)%s=%s, Zpseudoheaders
versionzVersion: %s
r   Zspecialsz

ZSourceZPackageZSeverityZJustificationZTagsZFile)ZseverityZjustificationtagsfilenamez%s: %s
z
%s: %s
%s
r0   zControl: tags -1 z Followup-For: Bug #%d
%s: %s
%s
infofuncr   ZGNU   zGNU/   z%s %s   ZLinuxZSMPr   zSMP w/%d CPU threadszSMP w/1 CPU threadZPREEMPTz%s (%s)z; zKernel: %s
zKernel taint flags: %s
zLocale: %s
zShell: /bin/sh linked to %s
z	Init: %s
zLSM: %s
z %s%s%s
-- System Information:
%sz%s%s%sdepinfoconfinfoz
-- debsums errors found:
%s
)%osunamer   realpathZget_init_systemZget_lsm_infoZget_kernel_taint_flagsenvirongetappend
subprocessZ	getoutputjoingetattrr   ZMODE_ADVANCEDr   listr   ZSYSTEMSr   keysZ
NEWBIELINEr   r   dictr
   hasattrr0   Zgeneric_infofunc
startswith	cpu_countr   r   r6   r7   r   )r   ZunZdebinfoZ	shellpathZinitZlsminfoZtaint_flagsZlocinfoZlangsettingZ
allsettingZlanguagesettingZsettingenvZphZheadersr/   r   ZreporttoattrnameaZreportr2   Zuname_stringZkernZkinfoZthreadsr   r   r   __unicode__Q   s    












zbugreport.__unicode__c                 C   s   |   S r$   )rK   r%   r   r   r   __str__   s    zbugreport.__str__c                    s$    fddt  D }dd| S )Nc                    s   g | ]}d | j f qS )r,   )r   ).0r   r%   r   r   
<listcomp>       z&bugreport.__repr__.<locals>.<listcomp>zbugreport(%s)r-   )dirr?   )r   paramsr   r%   r   __repr__   s    zbugreport.__repr__)__name__
__module____qualname____doc__charsetr   ZMODE_STANDARDr    r#   r&   propertyr	   rK   rL   rR   r   r   r   r   r   $   s   

 	r   )
r8   r   r   r   r>   
exceptionsr   r   objectr   r   r   r   r   <module>   s   