U
    8d                     @   sv   d dl Z d dlZd dlZd dlmZ d dlmZ e e d dlZdd Z	dddZ
d	d
 Zdd Zdd Zdd ZdS )    N)Report)implc                 C   s&   t  | }t|tr|dS |S d S )NzUTF-8)gettext
isinstancebytesdecode)strZtrans r	   1/usr/lib/python3/dist-packages/apport/__init__.pyunicode_gettext   s    


r   Fc                 C   s&   |rt jdtd  t|  dS )z>Log the given string to stdout. Prepend timestamp if requestedz%s: z%x %XN)sysstdoutwritetimestrftimeprint)messageZ	timestampr	   r	   r
   log   s    r   c                 G   s   t | f|  td dS )z0Print out an error message and exit the program.   N)errorr   exitmsgargsr	   r	   r
   fatal    s    r   c                 G   s2   t jr.t jd t j| |  t jd dS )zPrint out an error message.zERROR: 
Nr   stderrr   r   r	   r	   r
   r   '   s    r   c                 G   s2   t jr.t jd t j| |  t jd dS )zPrint out an warning message.z	WARNING: r   Nr   r   r	   r	   r
   warning0   s    r   c              	   C   s   dt jkstjsdS i }td@}|D ]4}|dr&| \}}}t|d ||dd < q&W 5 Q R X tjd|d |d	 |d
 | f  dS )zSPrint current memory usage.

    This is only done if $APPORT_MEMDEBUG is set.
    ZAPPORT_MEMDEBUGNz/proc/self/statusZVmg      @z/Size: %.1f MB, RSS: %.1f MB, Stk: %.1f MB @ %s
ZVmSizeZVmRSSZVmStk)	osenvironr   r   open
startswithsplitintr   )Z
checkpointZmemstatflineZfieldsizeZunitr	   r	   r
   memdbg9   s    

$r)   )F)r   r    r   apport.reportr   Zapport.packaging_implr   Z	packagingr   r   r   r   r   r   r)   r	   r	   r	   r
   <module>   s   
		