U
    9_R                     @   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 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 r   )r   )r   nameresultexcr   r   r   r   0   s    zStateReason._got_ppdc                 C   s   | j S r   )r   r   r   r   r   get_printer3   s    zStateReason.get_printerc                 C   sT   | j d k	r| j S | jds&| jdkr0| j| _ n| jdrF| j| _ n| j| _ | j S )Nz-report)connecting-to-devicezcups-ipp-missing-cancel-jobz#cups-ipp-missing-get-job-attributesz'cups-ipp-missing-get-printer-attributeszcups-ipp-missing-job-historyzcups-ipp-missing-job-idzcups-ipp-missing-job-statez%cups-ipp-missing-operations-supportedzcups-ipp-missing-print-jobz*cups-ipp-missing-printer-is-accepting-jobsz&cups-ipp-missing-printer-state-reasonszcups-ipp-missing-send-documentzcups-ipp-missing-validate-jobzcups-ipp-wrong-http-version-warning)r
   r	   endswithREPORTWARNINGERRORr   r   r   r   	get_level6   s    


zStateReason.get_levelc                 C   sh   | j r| j S |  }| j}|| jkr<|dr<|d d }n || jkr\|dr\|d d }|| _ | j S )Nr   iz-errori)r   r   r	   r   r   r   )r   r
   r	   r   r   r   
get_reasonQ   s    zStateReason.get_reasonc                 C   sF   |    | j| jkrd}n| j| jkr,d}nd}d||  |  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}z:||   \}}z||   }W n tk
r   Y nX W n tk
r   |  | jkrt d}n2|  | jkr.t d}n|  | jkrFt d}|  }| j	rz\ddddg}d }|D ],}| j	
| j|}|d k	rl|| d! }ql|d kr|d d" }W n tk
r   Y nX t d#|  |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offliner   otherzcups-missing-filterzPrinter reportzPrinter warningtextZhttphelpfile z, zPrinter '%s': '%s'.)_r   r   	TypeErrorKeyErrorr   r   r   r   r   ZlocalizeIPPReasonr	   RuntimeError)	r   Zmessagestitler!   r	   ZschemesZlocalized_reasonZschemeZlreasonr   r   r   get_descriptionk   s    





zStateReason.get_descriptionc                 C   s   |   |  |  fS r   )r   r   r   r   r   r   r   	get_tuple   s    zStateReason.get_tuplec                 C   s$   t |t | krdS |  | kS NFtyper   r   r    r   r   r   __eq__   s    zStateReason.__eq__c                 C   s$   t |t | krdS |  | k S r-   r.   r0   r   r   r   __lt__   s    zStateReason.__lt__)N)__name__
__module____qualname__r   r   r   Z
LEVEL_ICONr   r   r   r   r   r   r+   r,   r1   r2   r   r   r   r   r      s(      
	>r   )ZcupsosZconfiggettextinstallZPACKAGEr   r   r   r   r   r   <module>   s
   