3
ZR                 @   sD   d dl Z d dlZd dlZd dlZejejejd G dd dZdS )    N)Zdomain	localedirc               @   sz   e Zd ZdZdZdZededediZddd	Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )StateReason         zdialog-informationzdialog-warningzdialog-errorNc             C   s4   || _ || _d | _d | _d | _|r0|j|| j d S )N)printerreasonlevelcanonical_reason_ppdZ	fetch_ppd_got_ppd)selfr   r   Zppdcache r   //usr/share/system-config-printer/statereason.py__init__'   s    zStateReason.__init__c             C   s
   || _ d S )N)r   )r   nameresultexcr   r   r   r   0   s    zStateReason._got_ppdc             C   s   | j S )N)r   )r   r   r   r   get_printer3   s    zStateReason.get_printerc             C   sT   | j d k	r| j S | jjds&| jdkr0| j| _ n| jjdrF| j| _ n| j| _ | j S )Nz-reportconnecting-to-devicecups-ipp-missing-cancel-job#cups-ipp-missing-get-job-attributes'cups-ipp-missing-get-printer-attributescups-ipp-missing-job-historycups-ipp-missing-job-idcups-ipp-missing-job-state%cups-ipp-missing-operations-supportedcups-ipp-missing-print-job*cups-ipp-missing-printer-is-accepting-jobs&cups-ipp-missing-printer-state-reasonscups-ipp-missing-send-documentcups-ipp-missing-validate-jobcups-ipp-wrong-http-versionz-warning)r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   )r	   r   endswithREPORTWARNINGERROR)r   r   r   r   	get_level6   s,    
            

zStateReason.get_levelc             C   sh   | j r| j S | j }| j}|| jkr<|jdr<|d d }n || jkr\|jdr\|d d }|| _ | j S )Nz-warning   z-error   ii)r
   r'   r   r%   r#   r&   )r   r	   r   r   r   r   
get_reasonQ   s    zStateReason.get_reasonc             C   sF   | j   | j| jkrd}n| j| jkr,d}nd}d|| j | j f S )Nr$   r%   r&   z$<statereason.StateReason (%s,%s,%s)>)r'   r	   r$   r%   r   r*   )r   r	   r   r   r   __repr__^   s    zStateReason.__repr__c       	      C   s  t dt dft dt dft dt dft dt dft d	t d
ft dt dft dt dft dt dft dt dft dt dft dt dft dt dfd}y<|| j  \}}y|| j  }W n tk
r   Y nX W  n tk
r   | j | jkrt d}n2| j | jkr0t d}n| j | jkrHt d}| j }| j	ry`ddddg}d }x4|D ],}| j	j
| j|}|d k	rp|| d! }qpW |d kr|d d$ }W n tk
r   Y nX t d#| j |f }Y nX ||fS )%Nz	Toner lowzPrinter '%s' is low on toner.zToner emptyzPrinter '%s' has no toner left.z
Cover openz"The cover is open on printer '%s'.z	Door openz!The door is open on printer '%s'.z	Paper lowzPrinter '%s' is low on paper.zOut of paperzPrinter '%s' is out of paper.zInk lowzPrinter '%s' is low on ink.z	Ink emptyzPrinter '%s' has no ink left.zPrinter off-linez#Printer '%s' is currently off-line.zNot connected?z"Printer '%s' may not be connected.zPrinter errorz#There is a problem on printer '%s'.zPrinter configuration errorz1There is a missing print filter for printer '%s'.)z	toner-lowztoner-emptyz
cover-openz	door-openz	media-lowzmedia-emptyzmarker-supply-lowzmarker-supply-emptyZofflinezconnecting-to-deviceotherzcups-missing-filterzPrinter reportzPrinter warningtextZhttphelpfile z, r   zPrinter '%s': '%s'.)_r*   r   	TypeErrorKeyErrorr'   r$   r%   r&   r   ZlocalizeIPPReasonr   RuntimeError)	r   Zmessagestitler-   r   ZschemesZlocalized_reasonschemeZlreasonr   r   r   get_descriptionk   sj    





zStateReason.get_descriptionc             C   s   | j  | j | j fS )N)r'   r   r*   )r   r   r   r   	get_tuple   s    zStateReason.get_tuplec             C   s$   t |t | krdS | j |j kS )NF)typer'   )r   r,   r   r   r   __eq__   s    zStateReason.__eq__c             C   s$   t |t | krdS | j |j k S )NF)r:   r'   )r   r,   r   r   r   __lt__   s    zStateReason.__lt__)N)__name__
__module____qualname__r$   r%   r&   Z
LEVEL_ICONr   r   r   r'   r*   r+   r8   r9   r;   r<   r   r   r   r   r      s    
	>r   )ZcupsosconfiggettextinstallZPACKAGEr   r   r   r   r   r   <module>   s
   